/* ============================================================================
   aya.css — LE SITE EN « GLAM POP », l'identité livrée par Claude Design (handoff du 08/10,
   ~/Desktop/ideevisuel/design_handoff_glam_pop : tokens.json + README). Refait le 10/10 : la
   version précédente (crème/terracotta/nuit, Bricolage seule) ne suivait PAS ce handoff.
   - Caprasimo 400 : titres, nom « Aya », boutons, chiffres, tampons.
   - Bricolage Grotesque 500–800 : texte, pastilles, stickers, slogans, prix.
   - Palette : fond profond #123A2B, vert marque #1E5C43, succès #2E8B62, jaune Aya #FFE580
     (surlignage, bouton, anneau, nom), or #E8B949 (filets, contours fins, étoiles — jamais en
     fond de mot), hibiscus #FF6B5A (stickers, compteur), ivoire #FBF8F2, encre #14261E.
   - Contours encre 5 px, ombres DURES (0 10 0 encre), stickers inclinés de −4°.
   Une seule feuille pour l'accueil (/) et le site partenaires (/partenaires).
   ============================================================================ */
@font-face{font-family:"Caprasimo";font-weight:400;font-display:swap;src:url(/assets/site/fonts/Caprasimo-Regular.woff2) format("woff2"),url(/assets/site/fonts/Caprasimo-Regular.ttf) format("truetype")}
@font-face{font-family:"Bricolage";font-weight:500;font-display:swap;src:url(/assets/site/fonts/BricolageGrotesque-500.woff2) format("woff2"),url(/assets/site/fonts/BricolageGrotesque-500.ttf) format("truetype")}
@font-face{font-family:"Bricolage";font-weight:600;font-display:swap;src:url(/assets/site/fonts/BricolageGrotesque-600.woff2) format("woff2"),url(/assets/site/fonts/BricolageGrotesque-600.ttf) format("truetype")}
@font-face{font-family:"Bricolage";font-weight:700;font-display:swap;src:url(/assets/site/fonts/BricolageGrotesque-700.woff2) format("woff2"),url(/assets/site/fonts/BricolageGrotesque-700.ttf) format("truetype")}
@font-face{font-family:"Bricolage";font-weight:800;font-display:swap;src:url(/assets/site/fonts/BricolageGrotesque-800.woff2) format("woff2"),url(/assets/site/fonts/BricolageGrotesque-800.ttf) format("truetype")}
:root{
  --fond:#123A2B; --vert:#1E5C43; --succes:#2E8B62; --jaune:#FFE580;
  --or:#E8B949; --or-clair:#FFE9A3; --or-fonce:#B8862B; --hibiscus:#FF6B5A;
  --ivoire:#FBF8F2; --ivoire-chaud:#F5F0E6; --encre:#14261E; --alerte:#C0392B;
  --chat:#F2EBDD; --bulle-client:#D8EEDF; --bulle-aya:#FFFDF8; --bulle-aya-ombre:#E1D9C8;
  --gris:#4E5A53;
  --scene:radial-gradient(110% 70% at 50% 40%, #2E8B62 0%, #1E5C43 40%, #123A2B 100%);
  --scene-fin:radial-gradient(110% 70% at 50% 30%, #2E8B62 0%, #1E5C43 40%, #123A2B 100%);
  --trait:3px solid var(--encre); --trait-fort:5px solid var(--encre);
  --dure:0 8px 0 var(--encre); --dure-forte:0 10px 0 var(--encre);
  --titre:"Caprasimo",Georgia,serif; --texte:"Bricolage",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--ivoire);color:var(--encre);font:500 17px/1.55 var(--texte);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
a{color:inherit}
.cadre{max-width:1140px;margin:0 auto;padding-inline:20px}
h1,h2,h3{font-family:var(--titre);font-weight:400;line-height:1.1;margin:0;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.6vw,4.1rem)}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:1.35rem;line-height:1.2}
p{margin:0}
/* le mot-clé surligné : un seul par titre, fond jaune, texte vert profond */
mark{background:var(--jaune);color:var(--fond);padding:0 .22em;border-radius:.24em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.etiquette{display:inline-block;font:800 .8rem/1 var(--texte);letter-spacing:.2em;text-transform:uppercase;color:var(--vert);margin-bottom:16px}
.sous{color:var(--gris);font-size:1.12rem;max-width:36em;margin-top:16px}
.trame{background-color:var(--ivoire-chaud);background-image:radial-gradient(circle,rgba(20,38,30,.12) 4px,transparent 4.5px);background-size:44px 44px}
.etoile{position:absolute;color:var(--or-clair);text-shadow:0 0 22px rgba(255,233,163,.85);line-height:1;pointer-events:none;user-select:none}
.etoile.blanche{color:#fff}

/* ── stickers, pastilles, tampons, compteur (les composants de la pub) */
.sticker{display:inline-block;font:800 1rem/1.2 var(--texte);padding:9px 18px;border-radius:999px;border:var(--trait);box-shadow:0 6px 0 var(--encre);transform:rotate(-4deg);white-space:nowrap}
.sticker.lieu{background:var(--hibiscus);color:var(--encre)}
.sticker.jaune{background:var(--jaune);color:var(--encre);font-family:var(--titre);font-weight:400;font-size:1.15rem;border-radius:18px}
.pastille{display:inline-block;font:800 1rem/1.2 var(--texte);padding:10px 20px;border-radius:999px;background:var(--succes);color:var(--ivoire);border:3px solid var(--or);box-shadow:0 6px 0 var(--encre);transform:rotate(-4deg);white-space:nowrap}
.tampon{display:inline-block;font:400 1.5rem/1.1 var(--titre);color:var(--alerte);padding:6px 18px;border:5px solid var(--alerte);border-radius:14px;outline:2px solid var(--alerte);outline-offset:-11px;transform:rotate(-7deg);opacity:.92;white-space:nowrap;background:rgba(251,248,242,.85)}
.compteur{width:96px;height:96px;border-radius:50%;background:var(--hibiscus);border:4px solid var(--encre);box-shadow:0 6px 0 var(--encre);transform:rotate(-8deg);display:grid;place-content:center;text-align:center}
.compteur b{font:400 1.9rem/1 var(--titre)}
.compteur small{font:800 .66rem/1.1 var(--texte);letter-spacing:.04em}

/* ── barre du haut */
.haut{position:sticky;top:0;z-index:20;background:rgba(251,248,242,.94);backdrop-filter:blur(10px);border-bottom:var(--trait)}
.haut .cadre{display:flex;align-items:center;gap:22px;min-height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 1.75rem/1 var(--titre);color:var(--vert)}
.logo img{width:40px;height:40px;border-radius:50%;border:3px solid var(--jaune);box-shadow:0 0 0 2px var(--encre);background:var(--jaune)}
.haut nav{display:flex;gap:22px;margin-left:10px;font:700 .95rem var(--texte)}
.haut nav a{text-decoration:none;opacity:.85;padding:12px 0}
.haut nav a:hover{opacity:1}
.haut .droite{margin-left:auto;display:flex;gap:10px;align-items:center}

/* ── boutons : pilule jaune, contour encre, ombre dure, Caprasimo */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;font:400 1.08rem/1.1 var(--titre);text-decoration:none;border:var(--trait);cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:center}
.btn:hover{transform:translateY(-2px)}
:is(.btn,.onglet,summary,.haut nav a,footer a,.logo):focus-visible{outline:3px solid var(--jaune);outline-offset:3px;box-shadow:0 0 0 6px var(--encre)}
.haut :is(.btn,nav a,.logo):focus-visible,.fait :focus-visible,.etapes :focus-visible,.questions :focus-visible,.recit :focus-visible{outline-color:var(--vert);box-shadow:none}
::selection{background:var(--jaune);color:var(--encre)}
.btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--encre)!important}
.btn-jaune{background:var(--jaune);color:var(--encre);box-shadow:var(--dure)}
.btn-jaune:hover{box-shadow:0 10px 0 var(--encre)}
.btn-ivoire{background:var(--ivoire);color:var(--encre);box-shadow:var(--dure)}
.btn-contour{background:transparent;color:var(--ivoire);border-color:var(--ivoire)}
.btn-petit{min-height:44px;padding:9px 16px;font-size:.92rem;box-shadow:0 4px 0 var(--encre)}
.haut .btn-contour{color:var(--encre);border-color:var(--encre);box-shadow:none}

/* ── héro : scène verte, arche jaune + filet or, Aya détourée */
.heros{position:relative;background:var(--scene);color:var(--ivoire);overflow:hidden;padding:56px 0 0}
.heros .cadre{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:end}
.heros .texte{padding-bottom:64px}
.heros .etiquette{color:var(--jaune)}
.heros h1{background:var(--ivoire);color:var(--encre);border:var(--trait-fort);border-radius:32px;padding:22px 28px 26px;display:inline-block}
.heros .sous{color:#E4EFE8;font-size:1.18rem}
.heros .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.heros .preuves{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.heros .preuves span{font:700 .9rem var(--texte);padding:7px 14px;border-radius:999px;background:rgba(18,58,43,.55);border:2px solid var(--or);color:var(--ivoire)}
/* Aya bras ouverts de part et d'autre (Nico, 10/10 : la pose de l'ancienne Aya, « Stop ! On respire… ») */
.scene-aya{position:relative;justify-self:center;width:min(500px,100%);aspect-ratio:884/973;align-self:end}
.arche{position:absolute;inset:4% 16% 0;background:var(--jaune);border-radius:999px 999px 0 0}
.arche::after{content:"";position:absolute;inset:22px 22px 0;border:4px solid var(--or);border-bottom:0;border-radius:999px 999px 0 0}
.scene-aya img.aya{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 18px 26px rgba(18,58,43,.35))}
.scene-aya .sticker.lieu{position:absolute;left:0;bottom:5%}
.scene-aya .sticker.jaune{position:absolute;right:-8%;top:2%;transform:rotate(6deg)}

/* ── le récit en trois temps (fond ivoire à trame de points) */
.recit{padding:80px 0}
.scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px}
.scene{display:grid;gap:14px;align-content:start}
.scene .num{font:800 .8rem var(--texte);letter-spacing:.2em;color:var(--vert)}
.scene p{color:var(--gris)}
.vignette{position:relative;height:400px;border:var(--trait-fort);border-radius:30px;box-shadow:var(--dure-forte);overflow:hidden}
.vignette.verte{background:var(--scene)}
.vignette.ivoire{background:var(--ivoire)}
/* 1 · le quotidien : les questions s'empilent, le client part ailleurs */
.pile{position:absolute;inset:26px 20px auto;display:grid;gap:10px}
/* ce sont les CLIENTS qui écrivent (Nico, 10/10) : toutes les bulles côté client, à droite */
.pile span{justify-self:end;font:500 .95rem/1.3 var(--texte);background:var(--bulle-client);border-radius:18px 18px 6px 18px;padding:9px 14px;color:var(--encre)}
.pile span:nth-child(odd){margin-right:14px}
.vignette .tampon{position:absolute;left:50%;top:58%;translate:-50% 0}
.vignette .compteur{position:absolute;left:18px;bottom:18px}
/* 2 · elle répond */
.vignette .tel-mini{position:absolute;inset:20px 22px -10px}
.vignette .compteur.droite{left:auto;right:14px;bottom:26px}
/* 3 · elle gère */
.portrait{position:absolute;left:50%;top:26px;translate:-50% 0;width:150px;height:150px;border-radius:50%;border:8px solid var(--jaune);box-shadow:0 0 0 3px var(--encre),0 0 60px rgba(255,229,128,.4);background:var(--jaune);overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.coches{position:absolute;left:22px;right:22px;bottom:24px;display:grid;gap:10px}
.coches span{display:flex;align-items:center;gap:10px;font:800 1rem var(--texte);background:var(--ivoire);color:var(--encre);border:var(--trait);border-radius:16px;padding:9px 14px;box-shadow:0 4px 0 var(--encre)}
.coches span::before{content:"✓";display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--succes);color:var(--ivoire);font-size:.9rem;flex:none}
.coches span:nth-child(2){transform:rotate(-2deg)}

/* ── téléphone WhatsApp (en-tête vert, avatar à anneau or, bulles) */
.tel{position:relative;width:min(320px,100%);margin-inline:auto;border:10px solid var(--encre);border-radius:44px;outline:4px solid var(--or);background:var(--chat);box-shadow:0 30px 50px rgba(18,58,43,.4);overflow:hidden}
.tel .entete{display:flex;align-items:center;gap:10px;background:var(--vert);padding:12px 14px}
.tel .entete img{width:38px;height:38px;border-radius:50%;border:3px solid var(--or);background:var(--jaune)}
.tel .entete b{display:block;font:400 1.1rem/1 var(--titre);color:var(--jaune)}
.tel .entete small{font:600 .72rem var(--texte);color:var(--ivoire)}
.tel .fil{display:grid;gap:9px;padding:14px 12px 18px}
.bulle{max-width:84%;font:500 .86rem/1.3 var(--texte);padding:9px 12px;border-radius:16px 16px 16px 5px;background:var(--bulle-aya);box-shadow:0 3px 0 var(--bulle-aya-ombre);color:var(--encre)}
.bulle.client{justify-self:end;max-width:78%;background:var(--bulle-client);border-radius:16px 16px 5px 16px;box-shadow:none}
.bulle b{font-weight:700}
.tel video{width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--fond)}
.tel.video{background:var(--fond);border-radius:40px}

/* ── ce que fait Aya : cartes ivoire, contour encre, ombre dure */
.fait{padding:80px 0}
.liste{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}
.carte{background:var(--ivoire);border-radius:24px;padding:24px;border:var(--trait);box-shadow:var(--dure)}
.carte .coche{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--succes);color:var(--ivoire);font:400 1.05rem var(--titre);border:3px solid var(--or);margin-bottom:14px}
.carte p{color:var(--gris);margin-top:8px}

/* ── les vidéos par métier (scène verte) */
.metiers{position:relative;padding:80px 0;background:var(--scene);color:var(--ivoire);overflow:hidden}
.metiers .etiquette{color:var(--jaune)}
.metiers .sous{color:#E4EFE8}
.onglets{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 30px}
.onglet{min-height:44px;padding:9px 18px;border-radius:999px;border:3px solid var(--ivoire);background:transparent;font:700 .95rem var(--texte);color:var(--ivoire);cursor:pointer}
.onglet[aria-selected="true"]{background:var(--jaune);color:var(--encre);border-color:var(--encre);box-shadow:0 4px 0 var(--encre);transform:rotate(-2deg)}
.scene-video{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center}
.scene-video .tel{width:280px}
.scene-video p.legende{font:400 clamp(1.4rem,3vw,2rem)/1.2 var(--titre);max-width:16em;background:var(--ivoire);color:var(--encre);border:var(--trait-fort);border-radius:28px;padding:22px 26px}

/* ── comment ça marche */
.etapes{padding:80px 0}
.etapes .grille{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}
.etape{background:var(--ivoire);border-radius:24px;padding:26px;border:var(--trait);box-shadow:var(--dure)}
.etape .rond{width:58px;height:58px;border-radius:50%;background:var(--hibiscus);color:var(--encre);border:3px solid var(--encre);box-shadow:0 4px 0 var(--encre);transform:rotate(-8deg);display:grid;place-items:center;font:400 1.4rem var(--titre);margin-bottom:16px}
.etape p{color:var(--gris);margin-top:8px}

/* ── questions */
.questions{padding:70px 0}
details{background:var(--ivoire);border-radius:20px;padding:18px 22px;margin-top:14px;border:var(--trait);box-shadow:0 5px 0 var(--encre)}
summary{cursor:pointer;font:400 1.15rem/1.3 var(--titre);list-style:none;display:flex;justify-content:space-between;gap:14px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font:400 1.4rem/1 var(--titre);color:var(--vert);flex:none}
details[open] summary::after{content:"–"}
details p{margin-top:10px;color:var(--gris)}

/* ── appel final = la carte de fin de la pub */
.final{position:relative;padding:84px 0 90px;background:var(--scene-fin);color:var(--ivoire);text-align:center;overflow:hidden}
.final .portrait{position:relative;left:auto;top:auto;translate:none;margin:0 auto;width:190px;height:190px;border-width:12px;box-shadow:0 0 0 3px var(--encre),0 0 100px rgba(255,229,128,.4)}
.final .nom{font:400 clamp(4.5rem,13vw,8rem)/1 var(--titre);color:var(--jaune);text-shadow:0 8px 0 var(--or-fonce);margin-top:18px}
.final .slogan{font:700 .95rem var(--texte);letter-spacing:.28em;text-transform:uppercase;margin-top:12px}
.final h2{margin-top:30px;color:var(--ivoire)}
.final h2 em{font-style:normal;color:var(--jaune)}
.final .sous{margin-inline:auto;color:#E4EFE8}
.final .btn{margin-top:28px;font-size:1.3rem;padding:18px 34px}
.final .sticker.lieu{position:absolute;right:max(16px,calc(50% - 300px));top:70px;transform:rotate(12deg);font-size:.85rem}

/* ── pied de page */
footer{padding:34px 0 46px;font-size:.9rem;background:var(--fond);color:#CFE0D6}
footer .cadre{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
footer img{width:110px;height:auto}
footer a{text-decoration:none;color:var(--jaune);display:inline-block;padding:12px 2px;margin:-12px 0}
footer a:hover{text-decoration:underline}

/* ── calculateur (partenaires) */
.calcul{padding:80px 0}
.calcul .boite{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:32px;background:var(--ivoire);border-radius:30px;padding:32px;border:var(--trait-fort);box-shadow:var(--dure-forte)}
.curseur{margin-bottom:22px}
.curseur label{display:flex;justify-content:space-between;gap:12px;font-weight:700;margin-bottom:8px}
.curseur output{font:400 1.1rem var(--titre);color:var(--vert);white-space:nowrap}
input[type=range]{width:100%;accent-color:var(--vert)}
.resultat{display:grid;align-content:center;justify-items:center;gap:10px;text-align:center}
.resultat .gros{font:400 clamp(2.4rem,6vw,3.8rem)/1 var(--titre);background:var(--hibiscus);color:var(--encre);border:var(--trait);border-radius:20px;padding:12px 20px;box-shadow:var(--dure);transform:rotate(-3deg)}
.resultat p{color:var(--gris)}

.fait .carte .bulle{margin-top:12px}
.fait .bulle small{display:block;color:var(--gris);font:800 .72rem var(--texte);margin-bottom:2px}

/* ── formulaire (scène verte) */
.candidature{padding:84px 0;background:var(--scene);color:var(--ivoire)}
.candidature .etiquette{color:var(--jaune)}
.candidature h2{color:var(--ivoire)}
.candidature h2 em{font-style:normal;color:var(--jaune)}
.candidature .sous{color:#E4EFE8;margin-inline:auto}
form.cand{max-width:560px;margin:34px auto 0;display:grid;gap:6px;text-align:left;background:var(--ivoire);color:var(--encre);border:var(--trait-fort);border-radius:30px;padding:26px;box-shadow:var(--dure-forte)}
form.cand label{font-weight:800;font-size:.92rem;margin-top:10px}
form.cand input,form.cand select,form.cand textarea{width:100%;min-width:0;padding:13px 14px;border-radius:14px;border:var(--trait);background:#fff;font:500 1rem var(--texte);color:var(--encre)}
form.cand textarea{min-height:90px;resize:vertical}
form.cand input:focus,form.cand select:focus,form.cand textarea:focus{outline:3px solid var(--jaune);outline-offset:1px}
form.cand fieldset.activites{border:0;padding:0;margin:10px 0 0;display:grid;gap:8px}
form.cand legend{font-weight:800;font-size:.92rem;padding:0;margin-bottom:8px}
.activite{display:flex;align-items:center;gap:12px;padding:12px 14px;border:var(--trait);border-radius:16px;background:#fff;cursor:pointer;min-height:56px}
form.cand .activite input{width:22px;height:22px;min-width:22px;padding:0;margin:0;border:0;border-radius:0;background:none;accent-color:var(--vert);flex:none}
.activite span{display:grid;gap:2px;font-weight:500;flex:1;min-width:0}
.activite b{font-weight:800;font-size:1rem}
.activite .emo{display:inline-block;margin-right:8px}
.activite small{color:var(--gris);font-size:.85rem}
.activite:has(input:checked){background:var(--jaune);box-shadow:0 4px 0 var(--encre)}
.activite:has(input:focus-visible){outline:3px solid var(--jaune);outline-offset:2px}
form.cand details.plus{margin-top:14px;border:0;background:transparent;box-shadow:none;padding:0}
form.cand details.plus summary{font:700 .92rem/1.4 var(--texte);color:var(--vert);padding:10px 0}
form.cand details.plus summary::after{color:var(--vert)}
form.cand details.plus[open] summary{margin-bottom:4px}
.erreur{margin-top:12px;padding:12px 14px;border-radius:14px;background:#FDE8E4;color:var(--alerte);border:2px solid var(--alerte);font-weight:700;font-size:.95rem}
form.cand .btn{margin-top:20px;width:100%}
form.cand .btn:disabled{cursor:default;opacity:.9}
.note-form{color:var(--gris);font-size:.9rem;text-align:center;margin-top:10px}
.merci{display:none;text-align:center;font:400 1.2rem var(--titre);color:var(--vert);margin-top:16px}
.merci.faite{display:block}

@media (max-width:1040px){.haut nav{display:none}}
@media (max-width:900px){
  .heros .cadre,.scene-video,.calcul .boite{grid-template-columns:1fr}
  .heros .texte{padding-bottom:10px}
  .scene-aya{width:min(360px,92%)}
  .scenes,.liste,.etapes .grille,.main .liste{grid-template-columns:1fr}
  .haut nav{display:none}
  .scene-video .tel{width:min(280px,100%)}
  .scene-video p.legende{justify-self:center}
}
@media (max-width:560px){
  .haut .btn-contour{display:none}
  .btn-petit{white-space:nowrap}
  .heros{padding-top:30px}
  .heros h1{padding:16px 18px 20px;border-radius:24px}
  .heros .actions .btn{flex:1 1 100%}
  .vignette{height:380px}
  .calcul .boite,form.cand{padding:20px}
  .final .sticker.lieu{display:none}
  .scene-aya .sticker.jaune{top:auto;bottom:16%;right:-2%;font-size:.95rem;transform:rotate(5deg)}
  .scene-aya{margin-top:34px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
