:root{
  --serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Jost","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --bg:#f6f1e7;--bg2:#ece5d6;--fg:#14120f;--mut:#6b655a;--ac:#FFE81F;--ac2:#0f1b3d;--tx:#0f1b3d;--on:#14120f;--line:rgba(20,18,15,.18);color-scheme:light;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-behavior:smooth;scroll-padding-top:calc(70px + env(safe-area-inset-top,0px))}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:300;font-size:1.05rem;line-height:1.7;overflow-x:hidden;transition:background .5s,color .5s}
a{color:inherit}
:focus-visible{outline:2px solid var(--ac);outline-offset:4px}
.wrap{max-width:1180px;margin:0 auto;padding:0 1.5rem}
h1,h2,h3,blockquote{font-family:var(--serif);font-weight:300;margin:0;line-height:1.05}
h2{font-size:clamp(2.3rem,5.5vw,4.2rem);margin-bottom:2rem}
h2 em,h1 em{font-style:italic;color:var(--ac);font-weight:700;font-size:1.18em;line-height:1;}
.k{font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;color:var(--tx);font-weight:500;display:block;margin-bottom:1.4rem}
.k b{font-weight:300;color:var(--mut);margin-right:.8em}
section{padding:6.5rem 0;position:relative}
p{max-width:58ch;color:var(--fg)}
.mut{color:var(--mut)}

/* En-tête */
header{position:fixed;top:0;left:0;right:0;z-index:20;padding:.9rem 1.5rem;padding-top:calc(.9rem + env(safe-area-inset-top,0px));display:flex;align-items:center;justify-content:space-between;background:rgba(246,241,231,.93);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header img{height:46px;width:auto;display:block}
.lw{display:none}.lb{display:block}
header nav{display:flex;gap:1.8rem;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase}
header nav a{text-decoration:none;opacity:.8}header nav a:hover{opacity:1;color:var(--tx)}
@media(max-width:820px){header nav{display:none}}

/* Héros */
#top{min-height:100svh;display:flex;align-items:center;padding:8rem 0 5rem;overflow:hidden}
.rays{position:absolute;right:-14vmin;top:50%;width:92vmin;height:92vmin;transform:translateY(-50%);opacity:.9;pointer-events:none}
.rays svg{width:100%;height:100%;animation:spin 120s linear infinite}
.rays line{stroke:var(--ac);stroke-width:2.2}
@keyframes spin{to{transform:rotate(360deg)}}
h1{font-size:clamp(3.1rem,9vw,8.2rem);letter-spacing:-.015em;position:relative}
h1 span{display:block;margin-left:clamp(0rem,8vw,7rem)}
.lead{max-width:44ch;margin:2.2rem 0 2.6rem;font-size:1.15rem;color:var(--mut);position:relative}
.btn{display:inline-block;text-decoration:none;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;padding:1.05rem 2.2rem;border:1px solid var(--fg);margin:0 1rem 1rem 0;transition:.3s;position:relative}
.btn.f{background:var(--ac);color:var(--on);font-weight:500}.btn.f:hover{background:transparent;color:var(--tx)}
.btn:not(.f):hover{background:var(--ac);color:var(--on)}
.cities{position:absolute;left:1.5rem;bottom:2rem;font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--mut)}

/* Bandeau */
.band{border-block:1px solid var(--line);padding:1.1rem 0;overflow:hidden;white-space:nowrap;font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--mut)}
.band div{display:inline-block;animation:slide 60s linear infinite}
.band i{font-weight:700;font-size:1.6em;color:var(--ac);font-style:normal;margin:0 1.6rem}
@keyframes slide{to{transform:translateX(-50%)}}

/* Fondateur */
.fond{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem;align-items:center}
.arch{position:relative;max-width:400px;justify-self:center;width:100%}
.arch .sun{position:absolute;right:-10px;bottom:44px;width:118px;height:118px;border-radius:50%;background:var(--ac);color:var(--on);display:grid;place-items:center;text-align:center;font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.1;box-shadow:0 12px 30px rgba(20,18,15,.2)}.arch .sun b{display:block;font-style:normal;font-weight:500;font-size:1.9rem}
.arch img{width:100%;display:block;border-radius:999px 999px 0 0;position:relative;background:#fff;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;box-shadow:0 24px 50px rgba(20,18,15,.16)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.6rem;border-top:1px solid var(--line);padding-top:1.8rem}
.stats b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4vw,3.2rem);color:var(--tx);line-height:1}
.stats b:not(.sm){color:var(--ac);}
.stats b.sm{font-size:clamp(2.3rem,4.4vw,3.3rem);line-height:1.1;margin-bottom:.45rem;color:var(--ac)}
.stats b{font-weight:700;font-size:clamp(3.4rem,8vw,5.4rem)}
.stats span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}

/* Savoir-faire */
.dk{--bg:#0f1b3d;--fg:#f6f1e7;--mut:#b9c0d6;--tx:#ffd400;--line:rgba(246,241,231,.22);background:var(--bg);color:var(--fg)}
.dk h2 em,.dk .stats b{}
.dk .q{background:rgba(255,255,255,.05)}
.row{display:grid;grid-template-columns:70px 1fr 1.2fr;gap:2rem;padding:2rem 0;border-top:1px solid var(--line);align-items:baseline;transition:.3s}
.row:last-child{border-bottom:1px solid var(--line)}
.row:hover{padding-left:1rem;border-top-color:var(--tx)}
.row small{font-family:var(--serif);font-weight:500;font-size:1.6rem;color:var(--tx);letter-spacing:.04em}
.row h3{font-size:clamp(1.7rem,3vw,2.5rem)}
.row p{margin:0;color:var(--mut)}

/* Formations */
.tags{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.35rem);line-height:1.5;color:var(--fg)}
.tags span{white-space:nowrap}.tags i{color:var(--tx);font-style:normal;margin:0 .55em}
.tags em{color:var(--tx)}

.th{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:0 3.5rem;margin-top:2.6rem}.th div{border-top:1px solid var(--line);padding:1.5rem 0 1.7rem}.th h3{font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.6rem;line-height:1.5}.th p{margin:0;color:var(--mut);font-size:1rem;line-height:1.55}
/* Recommandations */
#reco{overflow:hidden}
.rail{display:flex;gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem 1.5rem 2rem;margin:0 -1.5rem;scrollbar-width:thin;scrollbar-color:var(--tx) transparent}
.q{flex:0 0 min(430px,84vw);scroll-snap-align:start;border:1px solid var(--line);padding:2.4rem 2rem;background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;gap:1.8rem;transition:.3s}
.q:hover{border-color:var(--tx);transform:translateY(-4px)}
.q::before{content:"“";font-family:var(--serif);font-size:5rem;line-height:.5;color:var(--tx);display:block}
blockquote{font-size:1.65rem;line-height:1.28;font-style:italic}
.q cite{font-style:normal;font-size:.78rem;letter-spacing:.06em;line-height:1.5;color:var(--mut)}
.q cite b{display:block;color:var(--fg);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.74rem}
.more{margin-top:1.2rem;display:inline-block;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--tx);text-decoration:none;border-bottom:3px solid var(--ac);padding-bottom:.3rem}

/* Clients */
.wall{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2.6rem;list-style:none;margin:0;padding:0;font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.4;color:var(--mut)}
.wall li{white-space:nowrap}.wall li:nth-child(odd){color:var(--fg);font-weight:500}


/* Contact */
#contact{text-align:center;background:var(--ac);color:var(--on)}
#contact h2{font-size:clamp(2.8rem,8vw,6.5rem)}#contact h2 em{color:var(--ac2);}
#contact h2 em{color:var(--on)}
#contact p{margin:0 auto 2.4rem;color:var(--on)}
#contact .btn{border-color:var(--on);color:var(--on)}#contact .btn.f{background:var(--on);color:var(--ac)}
#contact .btn:hover{background:var(--on);color:var(--ac)}#contact .btn.f:hover{background:transparent;color:var(--on)}
.soc{display:flex;justify-content:center;gap:2.4rem;flex-wrap:wrap;margin-top:2.6rem;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase}
.soc a{border-bottom:1px solid var(--on);padding-bottom:.25rem;text-decoration:none}
footer{padding:3rem 1.5rem 7rem;text-align:center;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
footer img{height:70px;margin:0 auto 1.4rem}

/* Sélecteur de palettes */
}
@media(prefers-reduced-motion:reduce){.rays svg,.band div{animation:none}html{scroll-behavior:auto}}

/* Bandeaux photo */
.pb{position:relative;isolation:isolate;height:clamp(280px,50vh,500px);background:var(--ac);overflow:hidden;display:flex;align-items:flex-end}
.pb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--d,50% 25%);filter:grayscale(1) contrast(1.2);mix-blend-mode:multiply}
.pb::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(15,27,61,.72))}
.pb p{position:relative;z-index:1;margin:0 1.5rem 1.4rem;max-width:none;font:italic 300 clamp(2.8rem,9vw,8rem)/1 var(--serif);color:#f6f1e7}
.pb.sh img{left:auto;right:0;width:74%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%);mask-image:linear-gradient(90deg,transparent,#000 24%)}
.pb.r p{margin-left:auto;text-align:right}
.ctl{display:flex;align-items:center;gap:1.2rem;margin-top:.4rem;font-size:.78rem;letter-spacing:.24em;color:var(--mut)}
.ctl button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--fg);font-size:1.2rem;cursor:pointer;transition:.25s}
.ctl button:hover{background:var(--ac);border-color:var(--ac);color:#14120f}
.q{flex:0 0 min(400px,84vw)}blockquote{font-size:1.5rem}
.more{margin-top:1.6rem}
.cf{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:760px;margin:3rem auto 0;text-align:left}
.cf label{display:block;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on)}
.cf .w{grid-column:1/-1}
.cf input[type=text],.cf input[type=email],.cf textarea{display:block;width:100%;margin-top:.5rem;padding:1rem 1.1rem;font:300 1.05rem var(--sans);color:#14120f;background:#fffdf8;border:1px solid var(--on);border-radius:0}
.cf textarea{resize:vertical}
.cf input:focus,.cf textarea:focus{outline:3px solid var(--on);outline-offset:2px}
.cf .mini{margin:0;font-size:.85rem;max-width:none;color:var(--on)}
.cf button{justify-self:start;font-family:var(--sans);cursor:pointer;margin:0}
#contact .cf p{margin:0;max-width:none;text-align:left}
.cf .st{margin:0;min-height:1.6em;font-weight:500;max-width:none}
@media(max-width:640px){.cf{grid-template-columns:1fr}}
footer{padding-bottom:3rem}.legal{margin-top:1.2rem;letter-spacing:.14em}.legal a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}.legal a:hover{color:var(--fg);border-color:var(--fg)}
@media(max-width:640px){.pb img{object-position:var(--m,50% 30%)}.pb.sh img{width:100%;right:auto;left:0;-webkit-mask-image:none;mask-image:none}}

/* Pages légales */
.legal-page{padding:9rem 0 5rem;min-height:70vh}
.legal-page h1{font-size:clamp(2.4rem,6vw,4rem);margin-bottom:2rem}
.legal-page h2{font:500 .78rem var(--sans);letter-spacing:.2em;text-transform:uppercase;margin:2.2rem 0 .5rem}
.legal-page p{max-width:66ch;margin:0 0 1rem}
.legal-page a{border-bottom:1px solid var(--ac)}
.legal-page .mut{color:var(--mut);margin-top:2rem}
.js-hidden{opacity:0}
/* Correctif mobile : empêche les colonnes de dépasser de l'écran */
.fond>*{min-width:0}
.stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stats span{overflow-wrap:anywhere}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats b.sm{font-size:clamp(1.7rem,7.2vw,2.3rem)}.stats span{letter-spacing:.14em}}

/* Règles mobiles restaurées */
@media(max-width:820px){.fond{grid-template-columns:1fr;gap:3rem}.row{grid-template-columns:44px 1fr}.row p{grid-column:2}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rays{opacity:.45;right:-40vmin}}

/* Fondateur : sous-titre et chiffres cliquables */
.fond h2{margin-bottom:.9rem}
.sub{font:500 .8rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--tx);margin:0 0 1.8rem}
.stat-link{display:block;color:inherit;text-decoration:none}
.stat-link span::after{content:" \2197"}
.stat-link:hover span,.stat-link:focus-visible span{text-decoration:underline;text-underline-offset:.35em}

/* Chiffres clés : médaillons jaunes */
.discs{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.2rem;margin-top:2.6rem;padding-top:2rem;border-top:1px solid var(--line)}
.disc{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:min(100%,184px);aspect-ratio:1;border-radius:50%;background:var(--ac);color:#14120f;box-shadow:0 10px 24px rgba(20,18,15,.14);padding:1.3rem;text-decoration:none;transition:transform .2s}
.disc b{font:700 clamp(2.3rem,4vw,2.9rem)/1 var(--serif);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;margin-bottom:.45rem}
.disc span{font:500 .62rem/1.45 var(--sans);letter-spacing:.14em;text-transform:uppercase}
a.disc:hover,a.disc:focus-visible{transform:translateY(-4px)}
a.disc span::after{content:" \2197"}
@media(max-width:820px){.discs{justify-content:center}.disc{width:min(46%,168px)}}
