/* FedeA : feuille de style commune (minimalisme scandinave, palette cuivre).
   Référence visuelle : la démo validée le 21 octobre 2026. */

@font-face{font-family:'Figtree';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/figtree.woff2) format('woff2')}
@font-face{font-family:'Lora';font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/lora.woff2) format('woff2')}
@font-face{font-family:'Lora';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/lora-italic.woff2) format('woff2')}

:root{--bg:#faf8f4;--bg2:#f1ede5;--surface:#ffffff;--ink:#202638;--ink2:#4f5668;--line:#dcd8ce;--primary:#b9643a;--primaryInk:#ffffff;--accent:#e9dccf;--dark:#3a4668;--darkInk:#eef0f6;--img:#d5d9e6;--imgInk:#3a4668;--link:color-mix(in srgb,var(--primary) 30%,var(--ink));--ease-out:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.65,0,.35,1)}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;scroll-padding-top:6.5rem;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.page{min-height:100vh;display:flex;flex-direction:column}
main{display:block}
img{max-width:100%;height:auto;display:block}
a{color:var(--link)}a:hover{color:var(--ink)}
h1,h2,h3{margin:0;font-weight:600;color:var(--ink)}
h1{font-size:3.25rem;line-height:1.1;letter-spacing:-.025em}
h2{font-size:2.5rem;line-height:1.16;letter-spacing:-.02em}
h3{font-size:1.438rem;line-height:1.28;letter-spacing:-.005em}
h1 em,h2 em,h3 em,.lora{font-family:'Lora',Georgia,serif;font-style:italic;font-weight:400}
p{margin:0}
.wrap{max-width:80rem;margin:0 auto;padding:0 2.5rem}
.narrow{max-width:53.75rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:1rem;top:-60px;z-index:20;background:var(--ink);color:#fff;padding:0.625rem 1rem;border-radius:0.5rem;text-decoration:none}
.skip:focus{top:0.75rem;color:#fff}
:focus-visible{outline:2px solid var(--primary);outline-offset:0.1875rem}

/* Boutons et liens */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:0.625rem;background:var(--primary);color:var(--primaryInk);text-decoration:none;padding:1rem 1.75rem;border-radius:62.44rem;font-weight:600;font-size:1rem;min-height:3rem;border:0;cursor:pointer;font-family:inherit;transition:background-color .3s ease,color .3s ease,transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.btn:hover{background:color-mix(in srgb,var(--primary) 45%,var(--ink));color:var(--primaryInk);transform:translateY(-2px);box-shadow:0 0.75rem 1.5rem -12px rgba(185,100,58,.55)}
.btn:active{transform:none}
.btn.light{background:var(--surface);color:var(--link)}
.btn.light:hover{background:var(--bg2);color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.soft{color:var(--primary);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:0.5rem}
.soft:hover{color:var(--ink);text-decoration:underline;text-underline-offset:0.25rem}
.soft svg{transition:transform .35s var(--ease-out)}
.soft:hover svg{transform:translateX(0.3125rem)}
.actions{display:flex;gap:1rem 1.75rem;align-items:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:0.5rem;background:var(--accent);color:var(--ink2);font-size:0.8125rem;font-weight:600;padding:0.5rem 0.875rem;border-radius:62.44rem;align-self:flex-start}
.todo{background:#fff3c4;color:#5c4400;border-radius:0.25rem;padding:1px 0.375rem;font-style:normal;font-family:'Figtree',system-ui,sans-serif;font-size:.85em;font-weight:500}

/* En-tête */
.site-head{position:sticky;top:0;z-index:8;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem);border-bottom:1px solid var(--line);transition:box-shadow .4s ease}
.site-head.is-scrolled{box-shadow:0 0.625rem 1.875rem -18px rgba(32,38,56,.28)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:5.25rem}
.logo{display:block;color:var(--ink);text-decoration:none}
.logo svg{height:1.75rem;width:auto;display:block}
.nav-links{display:flex;gap:0;flex-wrap:nowrap}
.nav-links a{text-decoration:none;color:var(--ink);font-size:0.875rem;font-weight:500;padding:0.5625rem 0.75rem;border-radius:62.44rem;white-space:nowrap;transition:background-color .25s ease}
.nav-links a:hover,.nav-links a.on{background:var(--accent)}
.head-cta{display:flex;align-items:center;gap:1.25rem}
.nav-tel{white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:600;font-size:0.9375rem}
.burger{display:none;width:3rem;height:3rem;border-radius:62.44rem;border:1.5px solid var(--ink);background:transparent;color:var(--ink);align-items:center;justify-content:center;cursor:pointer;padding:0}
.burger .x{display:none}
.menu-open .burger .x{display:block}.menu-open .burger .b{display:none}
.mobile-nav{display:none}

/* Fil d'Ariane */
.crumbs{padding-top:1.75rem;font-size:0.875rem;color:var(--ink2)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.375rem}
.crumbs li{display:inline-flex;align-items:center;gap:0.375rem}
.crumbs li+li::before{content:"›";color:color-mix(in srgb,var(--ink2) 60%,transparent)}
.crumbs a{color:var(--ink2);text-decoration:none}.crumbs a:hover{color:var(--primary);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* Sections */
.sec{padding:7rem 0}
.sec.tight{padding:4.5rem 0}
.sec.alt{background:var(--bg2)}
.sec.alt .pill{background:var(--surface)}
.sec-head{display:flex;flex-direction:column;gap:1.125rem;max-width:47.5rem;margin-bottom:3rem}
.sec-head.center{margin-left:auto;margin-right:auto;align-items:center;text-align:center}
.sec-head.center .pill{align-self:center}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:4.5rem;align-items:start}
.split>*,.article>*,.grid>*,.hero-grid>*,.gallery>*{min-width:0}
.split>.side{display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:7.25rem}
.flow{display:flex;flex-direction:column;gap:1.375rem;font-size:1.125rem;line-height:1.7;color:var(--ink2)}
.flow>h3{color:var(--ink);margin-top:0.875rem}
.flow strong{color:var(--ink);font-weight:600}
.flow .lead{font-size:1.25rem}
.lead{font-family:'Lora',Georgia,serif;font-size:1.312rem;line-height:1.6;color:var(--ink)}
.quote-p{font-family:'Lora',Georgia,serif;font-style:italic;font-size:1.375rem;line-height:1.55;color:var(--ink);border-left:0.1875rem solid var(--primary);padding-left:1.375rem}

/* Accueil et en-têtes de page */
.hero{padding:2.5rem 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2rem;align-items:stretch}
.hero-panel{background:var(--bg2);border-radius:1.75rem;padding:4rem;display:flex;flex-direction:column;justify-content:space-between;gap:2.25rem}
.hero-panel .pill{background:var(--surface)}
.hero-panel .stack{display:flex;flex-direction:column;gap:1.5rem}
.hero-panel h1{font-size:2.875rem;line-height:1.14;letter-spacing:-.022em}
.hero-panel .brief{font-size:0.9375rem;font-weight:600;letter-spacing:.02em;color:var(--primary);line-height:1.4}
.hero-panel p{font-size:1.125rem;line-height:1.6;color:var(--ink2)}
.hero-pic{min-height:35rem;border-radius:1.75rem}
.page-head{padding:4.5rem 0 1.5rem}
.page-head .inner{display:flex;flex-direction:column;gap:1.5rem;align-items:center;text-align:center;max-width:56.25rem;margin:0 auto}
.page-head .pill{align-self:center}
.page-head h1{font-size:3.375rem;line-height:1.08}
.page-head .chapo{font-family:'Lora',Georgia,serif;font-style:italic;font-size:1.312rem;line-height:1.6;color:var(--ink2);max-width:48.75rem}
.page-head .chapo+.chapo{margin-top:-8px}
.page-head .brief{font-size:0.9375rem;font-weight:600;letter-spacing:.02em;color:var(--primary);line-height:1.4}
.byline{display:flex;flex-wrap:wrap;justify-content:center;gap:0.375rem 1.125rem;font-size:0.875rem;color:var(--ink2)}
.byline span{display:inline-flex;align-items:center;gap:0.375rem}

/* Cartes */
.tile{background:var(--surface);border-radius:1.25rem;padding:2.25rem}
.grid{display:grid;gap:1.5rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{display:flex;flex-direction:column;gap:1.125rem}
.card h3{font-size:1.375rem}
.card .txt{display:flex;flex-direction:column;gap:0.875rem;font-size:1rem;line-height:1.65;color:var(--ink2)}
.card .txt strong{color:var(--ink)}
.card .soft{margin-top:auto}
.card .quote-p{font-size:1.125rem;padding-left:1rem}
.card.t1{background:color-mix(in srgb,var(--bg2) 70%,var(--bg))}
.card.t2{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}
.card.t3{background:var(--bg2)}
.sec.alt .card.t3,.sec.alt .card.t1{background:var(--surface)}
.card .ico{color:var(--primary)}
.num{font-family:'Lora',Georgia,serif;font-style:italic;color:var(--primary);font-size:0.9375rem}
.media-card{padding:0;overflow:hidden}
.media-card .pic{border-radius:0;aspect-ratio:16/10;min-height:0}
.media-card .body{padding:1.75rem 1.875rem 2rem;display:flex;flex-direction:column;gap:0.875rem;flex:1}
a.media-card{text-decoration:none;color:inherit;transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
a.media-card:hover{transform:translateY(-4px);box-shadow:0 1.625rem 3.125rem -30px rgba(32,38,56,.45)}

/* Listes */
.check-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0.75rem}
.check{display:flex;gap:0.75rem;align-items:flex-start;font-size:1rem;line-height:1.55;color:var(--ink2)}
.flow .check{font-size:1.062rem}
.check svg{flex:none;margin-top:0.25rem;color:var(--primary)}
.check strong{color:var(--ink)}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:0.75rem}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.5rem 1fr;gap:0.875rem;align-items:baseline;font-size:1.062rem;line-height:1.55;color:var(--ink2)}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:'Lora',Georgia,serif;font-style:italic;color:var(--primary);font-size:1rem}
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0;font-size:1rem;line-height:1.55}
.facts dt,.facts dd{padding:0.875rem 0;border-bottom:1px solid var(--line);margin:0}
.facts dt{font-weight:600;color:var(--ink);padding-right:1.75rem;white-space:nowrap}
.facts dd{color:var(--ink2)}
.facts dt:last-of-type,.facts dd:last-of-type{border-bottom:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:1.25rem}
.stat{background:var(--surface);border-radius:1.25rem;padding:1.75rem 1.75rem 1.875rem;display:flex;flex-direction:column;gap:0.625rem}
.sec.alt .stat{background:var(--surface)}
.stat b{font-size:2.5rem;line-height:1;font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.stat span{font-size:0.9375rem;line-height:1.5;color:var(--ink2)}

/* Les cinq temps (lettres) */
.letters{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0.875rem}
.letters li{display:flex;gap:1.375rem;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:1.375rem;padding:1.5rem 1.75rem}
.letters .letter{flex:none;width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--primary);color:var(--primaryInk);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.5rem}
.letters li:last-child .letter{background:var(--dark)}
.letters strong{font-size:1.188rem;color:var(--ink)}
.letters p{margin:0.375rem 0 0;color:var(--ink2);line-height:1.6;font-size:0.9688rem}
.letters p+p{margin-top:0.625rem}

/* Accordéon F E D E A (page Approche) */
.fedea-acc{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.fedea-acc>li{border-bottom:1px solid var(--line)}
.fedea-acc .row{display:grid;grid-template-columns:12.5rem minmax(0,1fr) 3rem;align-items:center;gap:2rem;padding:1.25rem 0}
.fedea-acc .big{font-weight:700;font-size:10rem;line-height:.9;letter-spacing:-.04em;display:block;color:var(--primary)}
.fedea-acc li:last-child .big{color:var(--dark)}
.fedea-acc h3{font-size:inherit;margin:0}
.word{all:unset;cursor:pointer;font-family:'Figtree',system-ui,sans-serif;font-size:3.5rem;font-weight:600;letter-spacing:-.025em;line-height:1.1;color:var(--ink)}
.word:hover{color:var(--primary)}
.word:focus-visible,.plus:focus-visible{outline:2px solid var(--primary);outline-offset:0.25rem;border-radius:0.5rem}
.plus{width:3rem;height:3rem;border-radius:62.44rem;border:1.5px solid var(--ink);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:transform .25s ease,background .2s ease,color .2s ease}
.plus:hover{background:var(--accent)}
.plus.open{transform:rotate(45deg);background:var(--primary);border-color:var(--primary);color:var(--primaryInk)}
.detail-wrap{padding:0 0 2.25rem 14.5rem}
.detail-wrap>div{background:var(--bg2);border-radius:1.5rem;padding:2.5rem 3rem;display:flex;flex-direction:column;gap:0.875rem;max-width:55rem}
.detail-wrap p{font-size:1.25rem;line-height:1.65;color:var(--ink)}
.detail-wrap .concret{font-size:1.062rem;color:var(--ink2);line-height:1.7}
.detail-wrap .concret strong{color:var(--ink)}

/* Photos */
.pic{position:relative;overflow:hidden;background:var(--img);color:var(--imgInk);border-radius:1.5rem;min-height:20rem;display:flex;align-items:flex-end}
.pic>picture,.pic>img,.pic>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pic.contain>picture>img{object-fit:contain;background:var(--surface)}
.pic .cap{position:relative;z-index:1;display:inline-block;margin:0.875rem;padding:0.4375rem 0.6875rem;background:rgba(12,16,22,.66);color:#fff;font-size:0.75rem;line-height:1.35;border-radius:0.375rem;max-width:calc(100% - 1.75rem);font-weight:500}
.pic.ph{align-items:flex-end;padding:1.5rem;font-size:0.875rem}
figure{margin:0}
.fig{display:flex;flex-direction:column;gap:0.75rem}
.fig figcaption{font-size:0.875rem;line-height:1.5;color:var(--ink2)}
.fig .pic{aspect-ratio:16/10;min-height:0}
.fig.tall .pic{aspect-ratio:3/4}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gallery .fig:first-child{grid-column:span 2;grid-row:span 2}
.gallery .fig:first-child .pic{aspect-ratio:auto;height:100%;min-height:26.25rem}

/* Citation */
.big-quote{margin:0;display:flex;flex-direction:column;gap:1.75rem;align-items:center;text-align:center}
.big-quote p{font-family:'Lora',Georgia,serif;font-style:italic;font-size:2.625rem;line-height:1.35;color:var(--ink);max-width:65rem}
.big-quote footer{font-size:0.9375rem;font-weight:600;color:var(--ink2);letter-spacing:.02em}
.big-quote footer::before{content:"";display:block;width:2.5rem;height:2px;background:var(--primary);margin:0 auto 1rem}
blockquote.inline{margin:0;padding:1.75rem 2rem;background:var(--surface);border-radius:1.25rem;border-left:0.25rem solid var(--primary)}
blockquote.inline p{font-family:'Lora',Georgia,serif;font-style:italic;font-size:1.312rem;line-height:1.55;color:var(--ink)}
blockquote.inline footer{margin-top:0.75rem;font-size:0.875rem;color:var(--ink2)}

/* Tableaux */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:1.125rem;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:0.9375rem;line-height:1.5;min-width:40rem}
th,td{text-align:left;vertical-align:top;padding:1rem 1.125rem;border-bottom:1px solid var(--line)}
th{background:var(--bg2);font-weight:600;color:var(--ink);font-size:0.875rem}
td{color:var(--ink2)}
tr:last-child td{border-bottom:0}
td:first-child{color:var(--ink);font-weight:600}

/* Questions fréquentes */
.faq{border-bottom:1px solid var(--line)}
.faq:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.625rem 0;font-size:1.188rem;font-weight:600;line-height:1.35;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:0}
.faq summary .plus{flex:none;width:2.5rem;height:2.5rem;border:0;background:var(--accent);transition:transform .25s ease}
.faq[open] summary .plus{transform:rotate(45deg);background:var(--primary);color:var(--primaryInk)}
.faq .ans{padding:0 4rem 1.75rem 0;display:flex;flex-direction:column;gap:0.75rem;font-size:1.062rem;line-height:1.7;color:var(--ink2)}

/* Articles (Repères) */
.article{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:4.5rem;align-items:start}
.toc{position:sticky;top:7.25rem;font-size:0.875rem;line-height:1.45}
.toc b{display:block;font-size:0.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:0.875rem}
.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line)}
.toc a{display:block;padding:0.4375rem 0 0.4375rem 1rem;margin-left:-1px;border-left:2px solid transparent;color:var(--ink2);text-decoration:none}
.toc a:hover{color:var(--ink)}
.toc a.on{border-left-color:var(--primary);color:var(--ink);font-weight:600}
.prose{max-width:47.5rem;display:flex;flex-direction:column;gap:1.375rem;font-size:1.125rem;line-height:1.75;color:var(--ink2)}
.prose>h2{font-size:2rem;line-height:1.22;margin-top:2.5rem;color:var(--ink)}
.prose>h2:first-child{margin-top:0}
.prose>h3{font-size:1.375rem;margin-top:0.875rem}
.prose strong{color:var(--ink);font-weight:600}
.prose .fig{margin:0.75rem 0}
.prose .faq-block{margin-top:0.75rem}
.sources{font-size:0.875rem;line-height:1.6;color:var(--ink2);padding:1.75rem 2rem;background:var(--bg2);border-radius:1.25rem;margin-top:1.25rem}
.sources h2{font-size:0.8125rem!important;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)!important;margin:0 0 0.75rem!important}
.sources ul{margin:0;padding-left:1.125rem;display:flex;flex-direction:column;gap:0.375rem}

/* Bandeau d'appel */
.cta-band{background:var(--primary);color:var(--primaryInk);border-radius:1.75rem;padding:4.5rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:3rem;align-items:center}
.cta-band h2{color:var(--primaryInk);font-size:2.5rem}
.cta-band p{font-size:1.125rem;line-height:1.65;color:color-mix(in srgb,var(--primaryInk) 88%,transparent)}
.cta-band a:not(.btn){color:var(--primaryInk)}
.cta-band .todo{color:#5c4400}
.cta-band .contact-box{display:flex;flex-direction:column;gap:1.125rem;align-items:flex-start}
.cta-band .tel{font-size:2.25rem;font-weight:600;letter-spacing:-.01em;color:var(--primaryInk);text-decoration:none}
.cta-band .tel:hover{text-decoration:underline;text-underline-offset:0.375rem}
.cta-band .txt{display:flex;flex-direction:column;gap:1.125rem}

/* Formulaire */
.field{display:flex;flex-direction:column;gap:0.5rem}
.field label{font-size:0.875rem;font-weight:600;color:var(--ink)}
.field input,.field textarea,.field select{font:inherit;font-size:1rem;padding:0.875rem 1.125rem;border:1px solid var(--line);border-radius:0.875rem;background:var(--bg);color:var(--ink);min-height:3rem;width:100%}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23202638' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.125rem center;padding-right:2.75rem}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--primary);outline-offset:1px}
.contact-form{display:flex;flex-direction:column;gap:1.25rem;padding:3rem}
.contact-form .note{font-size:0.8125rem;line-height:1.55;color:var(--ink2)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{font-size:0.9375rem;line-height:1.5;color:var(--ink);background:var(--accent);border-radius:0.75rem;padding:0.875rem 1.125rem}
.contact-card{display:flex;flex-direction:column;gap:1.5rem}
.contact-card .tel{font-size:2.75rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.contact-card .tel:hover{color:var(--primary)}
.contact-card ul{margin:0;padding:1.5rem 0 0;border-top:1px solid var(--line);list-style:none;display:flex;flex-direction:column;gap:0.875rem;font-size:1rem;color:var(--ink2)}
.contact-card li{display:flex;gap:0.75rem;align-items:flex-start}
.contact-card li svg{flex:none;color:var(--primary);margin-top:2px}

/* Parcours */
.timeline{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line);margin-left:0.375rem}
.timeline .step{position:relative;padding:0 0 2.25rem 2rem;display:flex;flex-direction:column;gap:0.75rem}
.timeline .step::before{content:"";position:absolute;left:-8px;top:0.375rem;width:0.875rem;height:0.875rem;border-radius:50%;background:var(--bg);border:2px solid var(--primary)}
.timeline .step:first-child::before{background:var(--primary)}
.timeline .step:last-child{padding-bottom:0}
.timeline h3{font-size:1.25rem}
.timeline .when{font-size:0.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}

/* Carrousel des références */
.ref-title{font-size:4rem;line-height:1.05;font-weight:700;letter-spacing:-.03em;text-align:center}
.ref-cat{font-size:0.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);text-align:center}
.rcard:focus-visible,.arrow:focus-visible{outline:0.1875rem solid var(--primary);outline-offset:0.25rem}
.arrow{width:3rem;height:3rem;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 0.375rem 1rem -8px rgba(32,38,56,.3)}
.arrow:hover{background:var(--accent)}

/* Pied de page */
.foot{padding:4.5rem 0 2.5rem;margin-top:auto;background:var(--dark);color:var(--darkInk);font-size:0.9375rem}
.foot a{color:var(--darkInk);text-decoration:none;opacity:.85}.foot a:hover{opacity:1;text-decoration:underline;text-underline-offset:0.25rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:2.5rem}
.foot-brand{display:flex;flex-direction:column;gap:1.25rem}
.foot-logo{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;width:7rem;height:7rem;border:1.5px solid var(--darkInk);border-radius:0.375rem;padding:1.375rem 0.75rem;opacity:1!important}
.foot-logo:hover{text-decoration:none!important}
.foot-logo svg{height:1.375rem;width:auto;display:block;color:var(--darkInk)}
.foot-logo span{font-size:0.5625rem;letter-spacing:.02em;white-space:nowrap}
.foot h2{font-size:0.75rem;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--darkInk) 70%,transparent);margin:0 0 1rem;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.625rem;line-height:1.4}
.foot-base{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--darkInk) 18%,transparent);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:0.8125rem;color:color-mix(in srgb,var(--darkInk) 75%,transparent)}

/* Barre de lecture */
.fx-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--primary);transform-origin:0 50%;transform:scaleX(0);z-index:10;pointer-events:none}

/* Animations d'entrée et de défilement (activées seulement si JS tourne) */
html.fx .page{opacity:0}
html.fx.fx-ready .page{opacity:1;transition:opacity .5s ease}
html.fx [data-r]{opacity:0;translate:0 1.625rem;transition:opacity .9s var(--ease-out),translate 1.1s var(--ease-out)}
html.fx [data-r].in{opacity:1;translate:0 0}
html.fx .btn[data-r]{transition:opacity .9s var(--ease-out),translate 1.1s var(--ease-out),background-color .3s ease,color .3s ease,transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
html.fx a.media-card[data-r]{transition:opacity .9s var(--ease-out),translate 1.1s var(--ease-out),transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
html.fx h1[data-r],html.fx h2[data-r],html.fx .big-quote[data-r]{translate:0 2.5rem;transition-duration:1s,1.3s}
html.fx h1[data-r].in,html.fx h2[data-r].in,html.fx .big-quote[data-r].in{translate:0 0}
html.fx .pic[data-r]{opacity:1;translate:0 0;scale:1.06;clip-path:inset(9% 7% 9% 7% round 1.75rem);transition:clip-path 1.4s var(--ease-soft),scale 1.8s var(--ease-out)}
html.fx .pic[data-r].in{scale:1;clip-path:inset(0 0 0 0 round 0)}
html.fx .pill[data-r]{translate:0 0.625rem;scale:.96;transition:opacity .9s var(--ease-out),translate 1.1s var(--ease-out),scale 1.1s var(--ease-out)}
html.fx .pill[data-r].in{translate:0 0;scale:1}
html.fx [data-r] .letter,html.fx [data-r] .big{scale:.4;rotate:-12deg;opacity:0;transition:scale .9s cubic-bezier(.34,1.56,.64,1),rotate .9s cubic-bezier(.34,1.56,.64,1),opacity .4s ease;transition-delay:inherit}
html.fx [data-r].in .letter,html.fx [data-r].in .big{scale:1;rotate:0deg;opacity:1}
html.fx [data-r] .check svg path,html.fx [data-r].check svg path{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .7s var(--ease-out) .25s}
html.fx [data-r].in .check svg path,html.fx [data-r].in.check svg path{stroke-dashoffset:0}
@keyframes fx-unfold{from{opacity:0;transform:translate3d(0,-8px,0)}to{opacity:1;transform:none}}
.detail-wrap:not([hidden]),details[open]>:not(summary){animation:fx-unfold .55s var(--ease-out)}

/* Échelle : entre 1025 et 1512 px de large, toute la page se réduit en proportion
   pour garder la composition vue sur un MacBook 14 pouces (1512 px). */
@media (min-width:1025px) and (max-width:1511px){html{font-size:max(13px,calc(100vw / 94.5))}}

/* Windows affiche les graisses plus épaisses : on les allège légèrement */
html.win h1,html.win h2,html.win h3,html.win .btn,html.win .nav-tel,html.win .soft{font-weight:560}
html.win .fedea-acc .big,html.win .stat b,html.win .ref-title{font-weight:650}
html.win body{font-weight:380}

/* Tablette */
@media (max-width:1024px){
  .nav-links{display:none}
  .burger{display:inline-flex}
  .mobile-nav{display:block;position:fixed;inset:5.312rem 0 0 0;background:var(--bg);z-index:7;padding:1.5rem 1.25rem 2.5rem;overflow:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}
  .menu-open .mobile-nav{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform .3s ease}
  .mobile-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
  .mobile-nav li a{display:block;padding:1rem 0.25rem;font-size:1.375rem;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
  .mobile-nav li a.on{color:var(--primary)}
  .mobile-nav .m-extra{margin-top:1.75rem;display:flex;flex-direction:column;gap:0.875rem;align-items:flex-start}
  .mobile-nav .m-tel{font-size:1.75rem;font-weight:600;color:var(--ink);text-decoration:none}
  .menu-open{overflow:hidden}
  .split,.article{grid-template-columns:1fr;gap:2.5rem}
  .split>.side{position:static}
  .toc{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .cta-band{grid-template-columns:1fr;padding:3.5rem 3rem}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Mobile */
@media (max-width:760px){
  .wrap{padding:0 1.25rem}
  .head-in{height:4.5rem}
  .head-cta .btn{display:none}
  .mobile-nav{inset:4.562rem 0 0 0}
  h1,.page-head h1{font-size:2.125rem;letter-spacing:-.015em}
  .hero-panel h1{font-size:2rem;letter-spacing:-.01em}
  h2{font-size:1.75rem}
  h3{font-size:1.25rem}
  .sec{padding:4.5rem 0}
  .sec.tight{padding:3rem 0}
  .hero-grid,.g2,.g3,.g4,.gallery{grid-template-columns:1fr}
  .gallery .fig:first-child{grid-column:auto;grid-row:auto}
  .gallery .fig:first-child .pic{min-height:0;aspect-ratio:16/10}
  .hero-panel{padding:2rem 1.5rem}
  .hero-pic{min-height:20rem}
  .page-head{padding:2.75rem 0 0.5rem}
  .page-head .chapo{font-size:1.125rem}
  .tile{padding:1.5rem}
  .contact-form{padding:1.75rem 1.375rem}
  .flow{font-size:1.062rem}
  .prose{font-size:1.062rem}
  .prose>h2{font-size:1.625rem}
  .big-quote p{font-size:1.625rem}
  .cta-band{padding:2.5rem 1.5rem;border-radius:1.375rem}
  .cta-band h2{font-size:1.75rem}
  .cta-band .tel,.contact-card .tel{font-size:1.875rem}
  .faq .ans{padding-right:0}
  .faq summary{font-size:1.062rem}
  .facts{grid-template-columns:1fr}
  .facts dt{padding-bottom:0;border-bottom:0}
  .fedea-acc .big{font-size:4.5rem}
  .word{font-size:2rem}
  .fedea-acc .row{grid-template-columns:4.5rem minmax(0,1fr) 3rem;gap:1rem}
  .detail-wrap{padding:0 0 1.75rem 0}
  .detail-wrap>div{padding:1.75rem 1.5rem}
  .detail-wrap p{font-size:1.125rem}
  .ref-title{font-size:2.5rem}
  .foot-grid{grid-template-columns:1fr}
  .stat b{font-size:2.125rem}
}

@media (prefers-reduced-motion:reduce){
  html.fx .page,html.fx [data-r],html.fx [data-r] *{opacity:1!important;translate:none!important;scale:none!important;rotate:none!important;clip-path:none!important;transition:none!important;animation:none!important;stroke-dashoffset:0!important}
  .detail-wrap:not([hidden]),details[open]>:not(summary){animation:none}
  .btn:hover,a.media-card:hover{transform:none}
  .fx-progress{display:none}
  html{scroll-behavior:auto}
}

/* Liens SMS d'urgence */
.sms-link{display:inline-flex;align-items:center;gap:.4em;font-weight:600;text-decoration:none;color:var(--primary)}
.sms-link svg{flex:none;width:1.1em;height:1.1em}
.sms-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:.25em}
.nav-tel{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink)}
.nav-tel svg{color:var(--primary)}
.big-tel{font-size:2.25rem;letter-spacing:-.01em;color:var(--ink)}
.cta-band .tel{display:inline-flex;align-items:center;gap:.6rem}
.cta-band .tel svg{width:1.6rem;height:1.6rem}
.foot .sms-link{color:var(--darkInk);font-weight:400;opacity:.85}
.mobile-nav .m-tel{display:inline-flex;align-items:center;gap:.6rem}

/* Témoignages */
.quote-card{margin:0;display:flex;flex-direction:column;gap:1.25rem}
.quote-card blockquote{margin:0}
.quote-card blockquote p{font-family:'Lora',Georgia,serif;font-style:italic;font-size:1.25rem;line-height:1.55;color:var(--ink)}
.quote-card blockquote p::before{content:"";display:block;width:2.5rem;height:2px;background:var(--primary);margin-bottom:1.1rem}
.quote-card figcaption{display:flex;flex-direction:column;gap:.35rem;padding-top:1rem;border-top:1px solid var(--line)}
.quote-card h3{font-size:1.0625rem}
.quote-card .who{font-size:.9375rem;line-height:1.55;color:var(--ink2)}
.quote-card .actions{margin-top:auto}

/* Documents (certificats, lettres) affichés en entier */
.pic.contain{background:var(--surface)}
.media-card .pic.contain{aspect-ratio:4/3}
.media-card .pic.contain>picture>img{object-fit:contain;padding:.75rem}

/* Labels et distinctions (pied de page) */
.foot-badges{margin-top:3rem}
.badge-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.badge{display:flex!important;align-items:center;gap:.875rem;padding:1rem 1.125rem;border:1.5px solid color-mix(in srgb,var(--darkInk) 35%,transparent);border-radius:.375rem;opacity:1!important;transition:border-color .3s ease,background-color .3s ease}
.badge:hover{border-color:var(--darkInk);background:color-mix(in srgb,var(--darkInk) 6%,transparent);text-decoration:none!important}
.badge svg{flex:none;color:#d9a07f}
.badge span{display:flex;flex-direction:column;gap:.15rem;line-height:1.3}
.badge b{font-weight:600;font-size:.875rem}
.badge small{font-size:.75rem;opacity:.8}
@media (max-width:1024px){.badge-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.badge-row{grid-template-columns:1fr}.big-tel{font-size:1.75rem}}
@media (max-width:760px){.facts dt{white-space:normal;padding-right:0}}
/* Photo de chantier de l'accueil : Frédéric est à gauche du groupe */
img[src*="visite-chantier"]{object-position:10% 50%}
/* Vue aérienne du village : le titre incrusté en haut à gauche doit rester visible */
img[src*="village-olympique-paris-2024-vue-aerienne"]{object-position:0% 0%}
/* Encadré distinct (démarche RSE, hors des missions de conseil) */
.feature-box{background:color-mix(in srgb,var(--primary) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);border-radius:1.75rem;padding:2.5rem}
.feature-box .pic{min-height:20rem}
@media (max-width:760px){.feature-box{padding:1.25rem}}
/* SMS d'urgence : seulement sur mobile ; sur ordinateur, le courriel le remplace */
.d-only{display:none}
@media (hover:hover) and (pointer:fine){.d-only{display:inline}.m-only{display:none!important}}
/* Carrousel des références : cylindre de cartes courbes, glisser-déposer */
.stage{position:relative;height:32rem;perspective:110rem;perspective-origin:50% 45%;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.stage.dragging{cursor:grabbing}
.ring{position:absolute;inset:0;transform-style:preserve-3d}
.rcard{position:absolute;left:50%;top:50%;width:min(45rem,78vw);aspect-ratio:45/27.5;transform:translate(-50%,-50%);transform-style:preserve-3d;pointer-events:none;text-decoration:none;border-radius:1.5rem;padding:0;min-height:0;background:none!important;overflow:visible;-webkit-user-drag:none}
.rcard>picture{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);opacity:0}
.rcard .strip{position:absolute;left:50%;top:50%;pointer-events:auto;background-repeat:no-repeat;backface-visibility:visible;will-change:transform,opacity}
.rcard .cap{position:absolute;left:0;bottom:0;transition:opacity .3s ease;pointer-events:none;transform:translateZ(1px)}
.rcard:not(.active) .cap,.stage.moving .cap{opacity:0}
.rcard:focus-visible{outline:.1875rem solid var(--primary);outline-offset:.25rem}
@media (max-width:760px){.stage{height:calc(min(45rem,78vw) * 27.5 / 45 + 4rem)}}
@media (max-width:760px){.ref-hint{display:none}}
.contact-card a.tel[href^="mailto"]{font-size:2rem;word-break:break-word}
@media (max-width:760px){.contact-card a.tel[href^="mailto"]{font-size:1.5rem}}
.hero-panel .hero-sub{font-size:1.625rem;line-height:1.25;font-weight:500;letter-spacing:-.015em;color:var(--ink)}
@media (max-width:760px){.hero-panel .hero-sub{font-size:1.375rem}}
.form-msg.error{background:#fbe3dc;color:#7a2a12}
