:root{
    --ink:#22303c; --muted:#5b6b78; --bg:#fffaf3; --card:#ffffff;
    --accent:#ef7d57; --accent-dark:#d4623d; --teal:#2a9d8f; --sun:#f4c95d; --soft:#fdeee4;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;font-family:'Nunito',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;font-size:17px}
  h1,h2,h3{font-family:'Fraunces',Georgia,serif;line-height:1.2;margin:0 0 .6em}
  a{color:var(--accent-dark)}
  .wrap{max-width:1080px;margin:0 auto;padding:0 20px}
  header{position:sticky;top:0;background:rgba(255,250,243,.92);backdrop-filter:blur(6px);z-index:10;border-bottom:1px solid #f1e4d6}
  .nav{display:flex;align-items:center;justify-content:space-between;height:64px}
  .logo{font-family:'Fraunces',serif;font-weight:700;font-size:1.6rem;color:var(--ink);text-decoration:none}
  .logo span{color:var(--accent)}
  .nav a.btn{padding:.55em 1.1em;font-size:.95rem}
  .btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;padding:.85em 1.5em;border-radius:999px;transition:background .2s}
  .btn:hover{background:var(--accent-dark)}
  .btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
  .btn.ghost:hover{background:var(--ink);color:#fff}

  .hero{padding:72px 0 64px;position:relative;overflow:hidden}
  .hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
  .hero h1{font-size:clamp(2.1rem,5vw,3.4rem)}
  .hero p.lead{font-size:1.2rem;color:var(--muted);max-width:34em}
  .hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
  .bubble{background:var(--card);border-radius:28px;padding:28px;box-shadow:0 12px 40px rgba(34,48,60,.08);position:relative}
  .bubble .q{background:var(--soft);border-radius:18px;padding:12px 16px;margin:0 0 12px;font-style:italic}
  .bubble .q:nth-child(2){margin-left:24px;background:#e6f4f1}
  .bubble .q:nth-child(3){margin-left:8px;background:#fdf3d6}
  .bubble .a{font-weight:700;color:var(--teal);margin:16px 0 0}

  section{padding:64px 0}
  .alt{background:var(--card)}
  .kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700;color:var(--teal);margin-bottom:.4em}
  h2{font-size:clamp(1.7rem,3.5vw,2.4rem)}
  .grid{display:grid;gap:20px}
  .g4{grid-template-columns:repeat(4,1fr)}
  .g3{grid-template-columns:repeat(3,1fr)}
  .g2{grid-template-columns:repeat(2,1fr)}
  .card{background:var(--bg);border-radius:20px;padding:24px}
  .alt .card{background:var(--bg)}
  section:not(.alt) .card{background:var(--card)}
  .card .ico{font-size:1.8rem;margin-bottom:8px}
  .card h3{font-size:1.15rem}
  .card p{margin:0;color:var(--muted)}
  .big{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--accent);font-weight:700;line-height:1}
  ul.check{list-style:none;padding:0;margin:0}
  ul.check li{padding-left:1.8em;position:relative;margin:.5em 0}
  ul.check li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:700}

  .pro{background:var(--ink);color:#fff;border-radius:28px;padding:48px;display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:center}
  .pro h2{color:#fff}
  .pro p{color:#d6dde3}
  .pro .btn{background:var(--sun);color:var(--ink)}
  .pro .btn:hover{background:#fff}

  footer{padding:48px 0;text-align:center;color:var(--muted)}
  footer .contact{font-size:1.15rem;margin:.5em 0}
  footer .contact a{font-weight:700;text-decoration:none}

  @media (max-width:860px){
    .hero .wrap,.pro{grid-template-columns:1fr}
    .g4{grid-template-columns:repeat(2,1fr)}
    .g3{grid-template-columns:1fr}
    .pro{padding:32px}
  }
  @media (max-width:520px){
    .g4,.g2{grid-template-columns:1fr}
    .nav a.btn{display:none}
    section{padding:48px 0}
  }

/* ---- Navigation ---- */
.menu{display:flex;align-items:center;gap:22px}
.menu a.lnk{color:var(--ink);text-decoration:none;font-weight:700;font-size:.98rem;padding:6px 0;border-bottom:2px solid transparent}
.menu a.lnk:hover{border-bottom-color:var(--accent)}
.menu a.lnk.on{border-bottom-color:var(--accent);color:var(--accent-dark)}
.burger{display:none;background:none;border:0;font-size:1.6rem;cursor:pointer;color:var(--ink);padding:4px 8px}

/* ---- Pages intérieures ---- */
.page-hero{padding:64px 0 32px}
.page-hero h1{font-size:clamp(2rem,4.5vw,3rem)}
.page-hero p.lead{font-size:1.15rem;color:var(--muted);max-width:40em}
blockquote.big-quote{margin:28px 0 0;padding:22px 26px;background:var(--soft);border-left:5px solid var(--accent);border-radius:0 18px 18px 0;font-family:'Fraunces',serif;font-size:1.2rem}
blockquote.big-quote cite{display:block;margin-top:8px;font-family:'Nunito',sans-serif;font-style:normal;font-size:.95rem;color:var(--muted)}

.team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.member{background:var(--bg);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.member:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 22px 44px rgba(34,48,60,.16)}
.member:nth-child(2):hover{transform:translateY(-8px) rotate(.6deg)}
.member .ph{overflow:hidden}
.member img{transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .7s}
.member:hover img{transform:scale(1.07);filter:saturate(1.08) brightness(1.03)}
.member img{width:100%;aspect-ratio:4/4.3;object-fit:cover;object-position:center 25%;display:block}
.member .txt{padding:22px}
.member h3{margin-bottom:.2em}
.member .role{color:var(--teal);font-weight:700;font-size:.9rem;margin:0 0 .8em}
.member p{color:var(--muted);margin:0;font-size:.98rem}
.team-photo{width:100%;border-radius:24px;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s,filter .6s;filter:sepia(.18) saturate(.9);box-shadow:0 12px 32px rgba(34,48,60,.10)}
.team-photo:hover{transform:scale(1.03) rotate(-1deg);filter:none;box-shadow:0 24px 48px rgba(34,48,60,.18)}
@media (prefers-reduced-motion:reduce){.member,.member img,.team-photo{transition:none}.member:hover,.member:hover img,.team-photo:hover{transform:none}}

.logos{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:center;margin-top:28px}
.logos figure{margin:0;background:var(--card);border-radius:20px;padding:22px 28px;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:220px}
.logos img{height:90px;width:auto;max-width:200px;object-fit:contain}
.logos figcaption{font-size:.9rem;color:var(--muted);font-weight:700}

.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:28px}
.quote{background:var(--bg);border:1px solid #f1e4d6;border-radius:22px;padding:24px 26px;margin:0;position:relative;display:flex;flex-direction:column;justify-content:space-between}
.quote::before{content:"“";font-family:'Fraunces',serif;font-size:4rem;line-height:1;color:var(--accent);position:absolute;top:8px;left:18px;opacity:.35}
.quote p{margin:18px 0 10px;font-size:1.08rem}
.quote footer{color:var(--teal);font-weight:700;font-size:.92rem;padding:0;text-align:left}
.oral{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.oral p{margin:0;background:var(--card);border:1px solid #f1e4d6;border-radius:18px;padding:18px 20px;font-style:italic}
.alt .oral p{background:var(--bg)}

.cta-band{text-align:center}
.cta-band p{color:var(--muted);max-width:36em;margin:0 auto 22px}

@media (max-width:860px){
  .team{grid-template-columns:1fr 1fr}
  .oral{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:1fr}
}
@media (max-width:720px){
  .burger{display:block}
  .menu{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 16px;border-bottom:1px solid #f1e4d6}
  .menu.open{display:flex}
  .menu a.lnk{padding:12px 0;border-bottom:1px solid #f1e4d6}
  .menu a.btn{margin-top:12px;text-align:center;display:block}
}
@media (max-width:520px){
  .team,.oral{grid-template-columns:1fr}
  .member img{aspect-ratio:1/1;object-position:center 20%}
  .nav a.btn{display:block}
}

/* ---- Bandeau photos accueil ---- */
section.photos{padding:0 0 64px}
.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.photo-row img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:24px;display:block;box-shadow:0 12px 32px rgba(34,48,60,.10)}
@media (max-width:640px){
  .photo-row{grid-template-columns:1fr 1fr}
  .photo-row img:first-child{grid-column:1 / -1}
}

/* Contact */
.contact-sec .wrap{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:start}
.cform fieldset{border:0;padding:0;margin:0}
.cform legend{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:700;margin-bottom:16px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.pcard{position:relative;cursor:pointer}
.pcard input{position:absolute;opacity:0}
.pcard span{display:block;height:100%;background:#fff;border:2px solid #f1e4d6;border-radius:18px;padding:16px;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
.pcard b{display:block;margin-bottom:4px}
.pcard small{color:var(--muted);font-size:.88rem;line-height:1.4;display:block}
.pcard:hover span{transform:translateY(-4px);border-color:var(--sun);box-shadow:0 10px 24px rgba(34,48,60,.08)}
.pcard input:checked+span{border-color:var(--accent);background:var(--soft);box-shadow:0 10px 24px rgba(239,125,87,.18)}
.pcard input:focus-visible+span{outline:3px solid var(--teal);outline-offset:2px}
.fields{margin-top:36px;background:#fff;border-radius:24px;padding:28px;box-shadow:0 12px 32px rgba(34,48,60,.06);animation:fin .4s ease}
@keyframes fin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.fintro{color:var(--muted);margin-top:-.3em}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform .row[hidden],.cform [data-only][hidden]{display:none}
.cform label{display:block;font-weight:700;font-size:.95rem;margin:0 0 14px}
.cform label em{font-weight:400;color:var(--muted)}
.cform input:not([type=radio]):not([type=checkbox]),.cform select,.cform textarea{display:block;width:100%;margin-top:6px;font:inherit;font-weight:400;padding:.7em .9em;border:1.5px solid #e6d8c8;border-radius:12px;background:var(--bg);color:var(--ink)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(42,157,143,.15)}
.cform label.check{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.cform label.check input{margin-top:.35em;accent-color:var(--accent)}
.cform .note{background:#e6f4f1;border-radius:12px;padding:10px 14px;font-size:.92rem}
.cform .hp{position:absolute;left:-9999px}
.big-btn{font-size:1.05rem;margin-top:8px;border:0;cursor:pointer}
.status{margin-top:12px;font-weight:700;color:var(--teal)}
.status.err{color:var(--accent-dark)}
.merci{text-align:center;padding:48px 20px;background:#fff;border-radius:24px}
.direct{background:var(--ink);color:#fff;border-radius:24px;padding:24px;position:sticky;top:84px}
.direct h2{color:#fff;font-size:1.3rem}
.direct a{color:var(--sun);font-weight:700;text-decoration:none}
@media (max-width:860px){.contact-sec .wrap{grid-template-columns:1fr}.direct{position:static}}
@media (max-width:560px){.cform .row{grid-template-columns:1fr}.fields{padding:20px}}
.fields{scroll-margin-top:84px}

/* Témoignages */
.tm .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.tm .reveal.in{opacity:1;transform:none}
.tm-hero{padding:56px 0 72px;background:radial-gradient(circle at 85% 20%,#ffe3a3 0,transparent 45%),radial-gradient(circle at 10% 90%,#ffd2c2 0,transparent 40%),var(--bg);overflow:hidden}
.tm-hero-in{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.tm-hero h1{font-size:clamp(2.2rem,5vw,3.5rem)}
.hl{background:linear-gradient(90deg,var(--accent),#f4a259);-webkit-background-clip:text;background-clip:text;color:transparent}
.tm-hero-img{position:relative}
.tm-hero-img img{width:100%;height:auto;border-radius:32px;display:block;box-shadow:0 24px 60px rgba(239,125,87,.25);transform:rotate(1.5deg)}
.bubble-float{position:absolute;left:-24px;bottom:-22px;background:var(--teal);color:#fff;font-family:'Fraunces',serif;font-weight:700;font-size:1.15rem;padding:14px 20px;border-radius:20px 20px 20px 4px;box-shadow:0 12px 30px rgba(42,157,143,.35);animation:floaty 4s ease-in-out infinite}
.dot{position:absolute;border-radius:50%;animation:floaty 5s ease-in-out infinite}
.d1{width:56px;height:56px;background:var(--sun);top:-18px;right:-14px}
.d2{width:22px;height:22px;background:var(--accent);top:30%;left:-30px;animation-delay:1s}
.d3{width:34px;height:34px;background:var(--teal);bottom:20%;right:-20px;animation-delay:2s;opacity:.8}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.tm-wall{background:#fff}
.wall{columns:3 280px;column-gap:22px;margin-top:28px}
.wall>*{break-inside:avoid;margin:0 0 22px;display:block}
.tcard{border-radius:26px;padding:30px 56px 24px 28px;position:relative;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.tcard::before{content:"“";font-family:'Fraunces',serif;font-size:5rem;line-height:.8;position:absolute;top:14px;right:20px;opacity:.25}
.tcard p{font-family:'Fraunces',serif;font-size:1.3rem;line-height:1.4;margin:0 0 16px}
.tcard figcaption{font-weight:700;font-size:.95rem;opacity:.9}
.tcard:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 20px 40px rgba(34,48,60,.15)}
.c-accent{background:var(--accent);color:#fff}
.c-teal{background:var(--teal);color:#fff}
.c-sun{background:var(--sun);color:var(--ink)}
.c-ink{background:var(--ink);color:#fff}
.c-ink figcaption{color:var(--sun)}
.c-soft{background:var(--soft);color:var(--ink)}
.c-soft figcaption{color:var(--accent-dark)}
.tphoto{border-radius:26px;overflow:hidden}
.tphoto img{width:100%;height:auto;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.tphoto:hover img{transform:scale(1.06)}
.marquee{background:var(--ink);color:#fff;overflow:hidden;padding:18px 0;font-family:'Fraunces',serif;font-size:1.25rem;white-space:nowrap}
.track{display:inline-flex;gap:36px;animation:scroll 32s linear infinite;padding-left:36px}
.track span:nth-child(even){color:var(--sun)}
@keyframes scroll{to{transform:translateX(-50%)}}
.tm-change{background:linear-gradient(180deg,var(--bg),#fdf3e6)}
.change-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.change-img{position:sticky;top:96px}
.change-img img{width:100%;height:auto;border-radius:30px;display:block;box-shadow:0 20px 50px rgba(34,48,60,.15)}
.change-img .tag{position:absolute;top:20px;left:-14px;background:var(--sun);color:var(--ink);font-weight:700;padding:8px 16px;border-radius:999px;transform:rotate(-4deg);box-shadow:0 8px 20px rgba(0,0,0,.12)}
.chat{display:flex;flex-direction:column;gap:14px;margin-top:24px}
.chat p{margin:0;max-width:88%;padding:14px 20px;border-radius:22px 22px 22px 6px;background:#fff;box-shadow:0 6px 18px rgba(34,48,60,.07);font-size:1.05rem;transition:transform .3s}
.chat p:nth-child(even){align-self:flex-end;border-radius:22px 22px 6px 22px;background:#e6f4f1}
.chat p:nth-child(3n){background:var(--soft)}
.chat p:hover{transform:scale(1.03)}
.tm-cta{background:linear-gradient(120deg,var(--accent) 0%,#f4a259 55%,var(--sun) 100%);color:#fff;text-align:center;padding:80px 0}
.tm-cta h2{color:#fff;font-size:clamp(2rem,4.5vw,3rem)}
.tm-cta p{max-width:36em;margin:0 auto 24px;font-size:1.1rem}
.btn.light{background:#fff;color:var(--accent-dark)}
.btn.light:hover{background:var(--ink);color:#fff}
.tm-cta .illus{font-size:.8rem;opacity:.8;margin:28px auto 0}
@media (max-width:860px){.tm-hero-in,.change-in{grid-template-columns:1fr}.change-img{position:relative;top:0;max-width:420px}.bubble-float{left:10px}}
@media (prefers-reduced-motion:reduce){.tm .reveal{opacity:1;transform:none;transition:none}.track,.bubble-float,.dot{animation:none}}
