@font-face{font-family:"Bricolage";src:url(/assets/fonts/bricolage-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Source Sans";src:url(/assets/fonts/source-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans";src:url(/assets/fonts/source-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --paper:#FAFAF5;--cobalt:#2448B1;--apricot:#F3B58C;--red:#D94A35;--red-text:#B8361F;--ink:#222A39;
  --cobalt-soft:#E7ECF8;--apricot-soft:#FCEBDD;--line:#E3E1D8;
  --title:"Bricolage",system-ui,sans-serif;--text:"Source Sans",system-ui,sans-serif;
  --radius:14px;--gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--text)}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--cobalt)}
h1,h2,h3{font-family:var(--title);font-weight:800;letter-spacing:-.03em;line-height:.98;margin:0 0 .4em}
h1{font-size:clamp(46px,8vw,92px)}
h2{font-size:clamp(32px,4.6vw,54px)}
h3{font-size:24px;letter-spacing:-.02em;line-height:1.1}
p{margin:0 0 1em}
em.accent,h1 em,h2 em{font-style:normal;color:var(--red)}
em.accent{color:var(--red-text)}
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:#fff;padding:8px 12px}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:12px;font:600 18px/1 var(--text);text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn--primary{background:var(--cobalt);color:#fff}
.btn--primary:hover{background:#1c3a91}
.btn--ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}

/* En-tête */
.top{position:sticky;top:0;z-index:20;background:rgba(250,250,245,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top__in{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px}
.logo{text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.logo__name{font:800 21px/1.1 var(--title);letter-spacing:-.02em}
.logo__sub{font-size:14px;line-height:1.3;opacity:.7}
.menu{display:flex;align-items:center;gap:26px}
.menu a:not(.btn){color:var(--ink);text-decoration:none;font-weight:600;font-size:18px}
.menu a[aria-current]{color:var(--red-text)}
.burger{display:none;width:48px;height:48px;border:0;background:none;cursor:pointer;position:relative}
.burger span,.burger span::before,.burger span::after{position:absolute;left:12px;width:24px;height:2px;background:var(--ink);content:""}
.burger span{top:23px}.burger span::before{top:-8px;left:0}.burger span::after{top:8px;left:0}
@media (max-width:820px){
  .top__in{min-height:64px}
  .logo{padding-block:6px}
  .logo__name{font-size:20px}
  .burger{display:block;margin-right:-8px}
  .menu{display:none;position:absolute;inset:100% 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gut) 20px;box-shadow:0 18px 30px rgba(34,42,57,.12)}
  .menu.is-open{display:flex}
  .menu a:not(.btn){padding:14px 0;border-bottom:1px solid var(--line)}
  .menu__call{margin-top:14px}
}

/* Hero */
.hero{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:24px;padding-block:28px 56px}
.kicker{font-weight:600;color:var(--cobalt);font-size:18px;margin-bottom:8px}
.lead{font-size:20px;max-width:34ch}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.facts{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px;font-size:18px}
.facts b{display:block;font:800 18px/1.3 var(--title);letter-spacing:-.01em}
.hero__art svg,.hero__art img{width:100%;max-width:440px;height:auto;margin-inline:auto;display:block;border-radius:var(--radius)}
@media (max-width:820px){
  /* Mobile : l'illustration devient un bandeau pleine largeur, recadré sur le geste. */
  .hero{grid-template-columns:1fr;gap:0;padding-block:0 48px}
  .hero__art{order:-1;margin-inline:calc(var(--gut) * -1);margin-bottom:18px;overflow:hidden}
  .hero__art svg,.hero__art img{width:100%;max-width:none;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:50% 62%;border-radius:0}
  .hero--soin .hero__art img{object-position:50% 50%}
  .hero:not(:has(.hero__art)){padding-top:20px}
  .kicker{margin-bottom:6px}
  h1{font-size:clamp(40px,11vw,52px)}
  .hero .lead{font-size:19px;margin-bottom:0}
  .ctas{margin-top:20px;gap:10px}
  .ctas .btn{flex:1 1 auto;padding-inline:18px}
  .facts{margin-top:24px;gap:12px 28px}
  .hero .map{margin-top:28px}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.dock,.dock.is-tucked{transition:none!important}}

/* Sections */
.section{padding-block:clamp(48px,8vw,96px)}
.section--tint{background:var(--cobalt-soft)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:28px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(34,42,57,.10)}
.card__art{aspect-ratio:1;background:var(--apricot-soft);border-radius:10px;margin-bottom:14px;overflow:hidden}
.card__art img{width:100%;height:100%;object-fit:cover;display:block}
.card h3{margin-bottom:6px}
.card p{font-size:18px;margin:0;opacity:.8}
/* Mobile : liste compacte, vignette + titre, toute la ligne cliquable. */
@media (max-width:600px){
  .cards{grid-template-columns:1fr;gap:10px;margin-top:20px}
  .card{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:16px;padding:10px 16px 10px 10px;min-height:96px}
  .card:hover{transform:none}
  .card__art{width:76px;margin:0;border-radius:10px}
  .card h3{margin:0;font-size:21px}
  .card p{display:none}
  .card::after{content:"→";font:800 22px/1 var(--title);color:var(--red-text)}
}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;position:relative;padding:0 0 18px 56px}
.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:40px;height:40px;border-radius:50%;background:var(--cobalt);color:#fff;display:grid;place-items:center;font:800 18px var(--title)}
.callout{background:var(--apricot-soft);border-left:6px solid var(--red);padding:18px 20px;border-radius:0 var(--radius) var(--radius) 0}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:19px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding-block:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 26px/1 var(--title);color:var(--red)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 14px}
.tags{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}
.tags li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:18px}

/* Formulaire */
.form{display:grid;gap:16px;max-width:560px}
.field label{display:block;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;font:400 18px/1.4 var(--text);padding:14px;border:2px solid #837e70;border-radius:10px;background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cobalt);outline:3px solid var(--cobalt);outline-offset:2px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.notice{padding:14px 18px;border-radius:10px;font-weight:600}
.notice--ok{background:#E3F1E6;color:#1E5A2C}
.notice--err{background:#FBE3DF;color:#8A2A1C}
.notice p{margin:0}.notice ul{margin:6px 0 0;padding-left:1.2em;font-weight:400}
.map{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--radius)}

/* Pied de page + barre d'appel mobile */
.foot{background:var(--ink);color:#E9E8E3;padding-block:48px 90px;margin-top:40px}
.foot a{color:#fff}
.foot__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.foot__name{font:800 22px var(--title);color:#fff}
.foot__title{font-weight:600;color:var(--apricot)}
.foot ul{list-style:none;padding:0;margin:0;line-height:2}
.foot__copy{opacity:.6;font-size:14px;margin-top:28px}
.dock{display:none}
@media (max-width:820px){
  /* Barre d'appel fixe : le corps réserve sa hauteur, rien n'est masqué dessous. */
  :root{--dock:69px}
  html{scroll-padding:76px 0 calc(var(--dock) + 16px)}
  body{padding-bottom:calc(var(--dock) + env(safe-area-inset-bottom))}
  .foot{padding-block:40px 32px}
  .foot ul{line-height:1.4}
  .foot li a{display:inline-flex;align-items:center;min-height:44px}
  .dock{display:flex;gap:8px;position:fixed;inset:auto 0 0 0;z-index:30;padding:8px var(--gut) calc(8px + env(safe-area-inset-bottom));background:rgba(250,250,245,.96);border-top:1px solid var(--line)}
  .dock .btn{flex:1;padding-inline:12px}
  /* Rangée tant que les boutons d'appel du haut de page sont visibles (site.js) : pas de doublon à l'écran. */
  .dock{transition:transform .25s ease,visibility 0s}
  .dock.is-tucked{transform:translateY(110%);visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
}
