/* Les GrAInes d'indépendants : feuille de style commune (version sobre, avec courbes) */
:root{
  --fond:#FFF6E6;--fond-doux:#FFFCF5;--encre:#34238A;--encre-douce:#5A4BA0;
  --pousse:#16B586;--pousse-profond:#0B7F5E;--soleil:#FFB703;--ciel:#FFD166;
  --terre:#8A6247;--filet:#F3DDB8;--corail:#FF6B3D;
  --titre:"Fraunces",Georgia,serif;--texte:"DM Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
body{margin:0;background:var(--fond);color:var(--encre);font-family:var(--texte);font-size:16px;line-height:24px}
a{color:var(--pousse-profond)}a:hover{color:var(--encre)}
a:focus-visible{outline:2px solid var(--encre);outline-offset:2px}
h1,h2,h3{font-family:var(--titre);font-weight:600;margin:0}
p{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.btn{display:inline-block;background:var(--soleil);color:var(--encre);border-radius:12px;padding:14px 24px;font-size:13px;line-height:18px;font-weight:500;letter-spacing:.02em;text-decoration:none}
.btn:hover{color:var(--encre);background:var(--corail)}
.ai{background:var(--soleil);color:var(--encre);border-radius:.25em;padding:0 3px}
.chapeau{font-size:18px;line-height:28px}
h2.titre-1{font-size:clamp(30px,4vw,40px);line-height:1.15}
h3{font-size:22px;line-height:28px}
.deco{position:absolute;pointer-events:none;display:block}
.petit{font-size:14px;line-height:20px;color:var(--encre-douce)}
.etiquette{font-size:13px;line-height:18px;font-weight:500;letter-spacing:.02em;color:var(--pousse-profond)}

/* Lien d'accès rapide */
.lien-evitement{position:absolute;left:-999px;top:8px;background:var(--encre);color:var(--fond);padding:8px 16px;border-radius:12px;z-index:10}
.lien-evitement:focus{left:16px}

/* Vagues entre les blocs */
.vague{display:block;height:64px;line-height:0}
.vague svg{display:block;width:100%;height:100%}
.vague-a{background:var(--fond)}.vague-a path{fill:var(--fond-doux)}
.vague-b{background:var(--fond-doux)}.vague-b path{fill:var(--encre)}
.vague-c{background:var(--encre)}.vague-c path{fill:var(--fond)}
.vague-d{background:var(--fond)}.vague-d path{fill:var(--fond-doux)}
.vague-e{background:var(--fond-doux)}.vague-e path{fill:var(--fond)}
.vague-f{background:var(--fond)}.vague-f path{fill:var(--encre)}

/* En-tête */
.entete-site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:24px}
.marque{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--encre)}
.marque:hover{color:var(--encre)}
.marque .nom{font-family:var(--titre);font-weight:600;font-size:22px;line-height:28px}
.menu{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}
.menu a{font-size:14px;line-height:20px;font-weight:500;text-decoration:none;color:var(--encre);padding:12px 0;border-bottom:2px solid transparent}
.menu a:hover{border-bottom-color:var(--soleil)}
.menu a[aria-current="page"]{border-bottom-color:var(--encre)}

/* Accueil : zone du haut */
.zone-hero{position:relative;overflow:hidden}
.zone-hero .blob-1{width:420px;top:-110px;left:-150px}
.hero{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:56px;padding-top:48px;padding-bottom:72px}
.hero-texte{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:24px}
.hero h1{font-size:clamp(36px,5.2vw,56px);line-height:1.1}
.hero h1 span{color:#D9461F}
.zone-hero .blob-1 path{fill:#FFB703;fill-opacity:.35}
.fiche .deco path{stroke:#FFB703}
.fiche-chiffre{color:var(--soleil)}
.valeur:nth-child(2){border-top-color:var(--soleil)}.valeur:nth-child(3){border-top-color:var(--corail)}.valeur:nth-child(4){border-top-color:var(--encre)}
.valeur:nth-child(2) .num{color:#C98A00}.valeur:nth-child(3) .num{color:#D9461F}.valeur:nth-child(4) .num{color:var(--encre)}
.grille-cafe div{border-top-color:var(--soleil)!important}
.bande-cafe h3{color:var(--soleil)}
.hero .chapeau{max-width:540px}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.actions a.lien{font-size:13px;line-height:18px;font-weight:500;letter-spacing:.02em}

.fiche{position:relative;overflow:hidden;flex:1 1 340px;min-width:0;background:var(--encre);color:var(--fond);border-radius:24px 72px 24px 24px;padding:40px 32px;display:flex;flex-direction:column;gap:0}
.fiche .deco{right:-20px;bottom:-30px;width:260px;opacity:.55}
.fiche-titre{position:relative;font-size:13px;line-height:18px;font-weight:500;letter-spacing:.02em;margin-bottom:8px}
.fiche-ligne{position:relative;display:flex;align-items:baseline;gap:20px;padding:20px 0;border-top:1px solid var(--encre-douce)}
.fiche-ligne:first-of-type{border-top:0}
.fiche-chiffre{font-family:var(--titre);font-weight:600;font-size:40px;line-height:46px;min-width:112px}
.fiche-texte{font-size:16px;line-height:24px}

/* Pages intérieures : titre */
.section{padding:48px 0 32px}
.colonne{display:flex;flex-direction:column;gap:16px}
.texte-large{max-width:640px}
.t-page{font-size:clamp(34px,5vw,48px);line-height:1.1}
.t-section{font-size:clamp(30px,4vw,40px);line-height:1.15}
.t-carte{font-size:22px;line-height:28px}
.section .chapeau,.entete .chapeau{color:var(--encre-douce)}

/* Valeurs */
.bande-douce{background:var(--fond-doux)}
.valeurs{padding-top:24px;padding-bottom:24px;display:flex;flex-direction:column;gap:40px}
.entete{display:flex;flex-direction:column;gap:16px;max-width:640px}
.grille-valeurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.valeur{border-top:2px solid var(--pousse);padding-top:16px;display:flex;flex-direction:column;gap:8px}
.valeur .num{font-family:var(--titre);font-weight:600;font-size:28px;line-height:34px;color:var(--pousse)}
.valeur p{color:var(--encre-douce)}

/* Le café */
.bande-cafe{background:var(--encre);color:var(--fond)}
.bande-cafe h2,.bande-cafe h3,.bande-cafe p,.bande-cafe .chapeau{color:var(--fond)}
.cafe{padding-top:16px;padding-bottom:16px;display:flex;flex-direction:column;gap:40px}
.grille-cafe{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.grille-cafe div{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--encre-douce);padding-top:16px}

/* Engagements */
.engagements{padding-top:32px;padding-bottom:32px;display:flex;flex-wrap:wrap;gap:16px}
.engagements > div{flex:1 1 420px;min-width:0;padding:32px;display:flex;flex-direction:column;gap:16px}
.engagements h2{font-size:28px;line-height:34px}
.confidentialite{background:var(--ciel);color:var(--encre);border-radius:24px 56px 24px 24px}
.reciprocite{background:#FFE0D2;border:1px solid #FFC9B3;border-radius:56px 24px 24px 24px}
.reciprocite p{color:var(--encre)}

/* Rejoindre */
.rejoindre{padding-top:48px;padding-bottom:24px;position:relative}
.rejoindre-carte{position:relative;background:var(--fond);border:1px solid var(--filet);border-radius:24px 56px 24px 24px;padding:48px 32px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.rejoindre-carte .chapeau{max-width:560px;color:var(--encre-douce)}
.rejoindre-carte .feuille{width:96px;right:40px;top:32px}

/* Infos pratiques du café */
.infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.info{background:var(--fond-doux);border:1px solid var(--filet);border-radius:24px 40px 24px 24px;padding:24px;display:flex;flex-direction:column;gap:4px}
.info .etiquette{color:var(--pousse-profond)}
.info .valeur-info{font-family:var(--titre);font-weight:600;font-size:22px;line-height:28px}
.section-bas{padding:0 0 40px}

/* Agenda Cal.com */
.agenda{background:var(--fond-doux);border:1px solid var(--filet);border-radius:24px 56px 24px 24px;padding:32px;display:flex;flex-direction:column;gap:16px}
.agenda iframe{width:100%;height:720px;border:0;border-radius:12px;background:#fff}
.agenda .chapeau{color:var(--encre-douce)}

/* Charte (page complète) */
.charte{background:var(--fond-doux);border:1px solid var(--filet);border-radius:24px 56px 24px 24px;padding:40px 32px;display:flex;flex-direction:column;gap:32px}
.charte ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.charte section{display:flex;flex-direction:column;gap:12px}
.engagement{font-style:italic;color:var(--encre-douce)}

/* Contact */
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.carte{background:var(--fond-doux);border:1px solid var(--filet);border-radius:24px 40px 24px 24px;padding:24px;display:flex;flex-direction:column;gap:8px}
.carte p{color:var(--encre-douce)}

/* Pied de page */
.pied .wrap{padding-top:16px;padding-bottom:48px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}

@media (max-width:640px){
  .rejoindre-carte .feuille{display:none}
  .fiche{border-radius:24px 48px 24px 24px}
  .agenda iframe{height:820px}
  .charte,.rejoindre-carte,.agenda{padding:32px 20px}
}


/* Illustrations */
.cercle-visuel{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:0;padding-bottom:24px}
.cercle-visuel svg{width:100%;max-width:760px;height:auto}
.tasse-visuel{display:flex;justify-content:center;padding-top:8px;padding-bottom:8px}
.tasse-visuel svg{width:100%;max-width:240px;height:auto}

/* Mouvement */
@keyframes flux{to{stroke-dashoffset:-22}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes monter{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes flotter{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes derive{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(36px,24px) scale(1.08)}}
@keyframes onde{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.7)}}
@keyframes fumee{0%{transform:translateY(5px);opacity:0}40%{opacity:1}100%{transform:translateY(-9px);opacity:0}}
@keyframes scintille{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.4) rotate(25deg)}}
@keyframes balance{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}
.hero-texte > *{animation:monter .8s ease both}
.hero-texte > *:nth-child(2){animation-delay:.12s}.hero-texte > *:nth-child(3){animation-delay:.24s}.hero-texte > *:nth-child(4){animation-delay:.36s}
.fiche{animation:monter .9s .3s ease both,flotter 7s 1.4s ease-in-out infinite}
.zone-hero .blob-1{animation:derive 14s ease-in-out infinite}
.vague svg{transform-origin:50% 100%;animation:onde 10s ease-in-out infinite}
.vague-b svg{animation-duration:12s;animation-delay:-3s}.vague-c svg{animation-duration:9s;animation-delay:-5s}.vague-d svg{animation-duration:11s;animation-delay:-2s}.vague-e svg{animation-duration:13s;animation-delay:-6s}.vague-f svg{animation-duration:10s;animation-delay:-4s}
.illustration-cercle .flux{animation:flux 2.6s linear infinite}
.illustration-cercle .noeud{animation:flotter 6s ease-in-out infinite}
.illustration-cercle .noeud:nth-of-type(even){animation-delay:-3s}
.illustration-cercle .centre{transform-box:fill-box;transform-origin:center;animation:pulse 4s ease-in-out infinite}
.illustration-cercle .etincelle{transform-box:fill-box;transform-origin:center;animation:scintille 3.4s ease-in-out infinite}
.illustration-tasse{animation:flotter 6s ease-in-out infinite}
.illustration-tasse path[stroke-opacity]{transform-box:fill-box;animation:fumee 3.6s ease-in-out infinite}
.illustration-tasse path[d^="M52 70"]{transform-box:fill-box;transform-origin:center;animation:scintille 3.2s ease-in-out infinite}
.illustration-tasse path[d^="M248"]{transform-origin:248px 70px;animation:balance 4.5s ease-in-out infinite}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:none}
.btn{transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(52,35,138,.25)}
.carte,.info,.valeur,.confidentialite,.reciprocite{transition:transform .25s ease,box-shadow .25s ease}
.carte:hover,.info:hover,.confidentialite:hover,.reciprocite:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(52,35,138,.12)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}

/* Photo du cercle */
.photo-cercle{position:relative;margin:0;width:100%;max-width:960px}
.photo-cercle::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--soleil);border-radius:24px 72px 24px 24px;opacity:.55;z-index:0}
.photo-cercle img{position:relative;z-index:1;display:block;width:100%;height:auto;border-radius:24px 72px 24px 24px;box-shadow:0 18px 40px rgba(52,35,138,.18);transition:transform .6s ease}
.photo-cercle:hover img{transform:scale(1.015)}
.photo-cercle figcaption{position:relative;z-index:1;text-align:center;margin-top:32px}
@media (max-width:640px){.photo-cercle::before{inset:10px -8px -10px 8px}}

/* À l'initiative de */
.initiatrice{padding-top:32px;padding-bottom:24px}
.initiatrice-carte{display:flex;flex-wrap:wrap;align-items:center;gap:32px;background:var(--fond-doux);border:1px solid var(--filet);border-radius:56px 24px 24px 24px;padding:40px 32px}
.monogramme{flex:0 0 auto;width:104px;height:104px;border-radius:50%;background:var(--soleil);color:var(--encre);font-family:var(--titre);font-weight:600;font-size:38px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,183,3,.25)}
.initiatrice-texte{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:12px}
.initiatrice-texte p:not(.etiquette){color:var(--encre-douce);max-width:620px}