/* ================================================================
   JVMH-Agencements | Pages intérieures (prestations, présentation,
   réalisations, contact, blog, mentions légales)
   S'appuie sur les tokens de site.css
   ================================================================ */

/* ---------- entrée de page : voile marine qui se lève ---------- */
.page-veil{position:fixed;inset:0;z-index:150;background:var(--navy);pointer-events:none}

/* ---------- fil d'Ariane ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem;color:var(--muted);margin-bottom:22px}
.crumbs a:hover{color:var(--accent-strong)}
.crumbs i{font-size:.75rem;color:var(--accent)}

/* ---------- hero intérieur ---------- */
.p-hero{position:relative;padding:calc(84px + clamp(40px,6vw,80px)) 0 clamp(60px,8vw,110px);overflow:hidden;
  background:radial-gradient(60% 70% at 80% 40%,#fff 0%,var(--bg) 65%)}
.p-hero .grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(36px,5vw,90px);align-items:center}
.p-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.1;margin-bottom:24px}
.p-hero h1 .ln,.contact-page h1 .ln{display:block;overflow:hidden;padding-bottom:.05em}
.p-hero h1 .ln > span,.contact-page h1 .ln > span{display:inline-block}
.p-hero .sub{font-family:var(--display);font-size:clamp(1.15rem,1.6vw,1.45rem);color:var(--accent-strong);margin:-8px 0 18px}
.p-hero .intro p{color:var(--muted);margin-bottom:12px;max-width:60ch}
.p-hero .intro a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px}
.p-hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.p-hero.simple .grid{grid-template-columns:1fr}
.p-hero.simple h1{font-size:clamp(2.2rem,4.4vw,4rem)}

/* visuel : diaporama dans la maison du logo */
.house-show{position:relative;aspect-ratio:1/1.02}
.house-show .frame{position:absolute;inset:0;background:var(--accent);clip-path:polygon(0 100%,0 33%,50% 0,100% 33%,100% 100%)}
.house-show .win{position:absolute;inset:4px;clip-path:polygon(0 100%,0 33.2%,50% 0,100% 33.2%,100% 100%);background:var(--surface-2);overflow:hidden}
.house-show .win img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1.2s var(--ease),transform 6s linear}
.house-show .win img.on{opacity:1;transform:scale(1)}
.house-show .dots{position:absolute;left:0;right:0;bottom:-34px;display:flex;justify-content:center;gap:8px}
.house-show .dots button{width:22px;height:3px;background:var(--line);transition:background .3s,width .4s var(--ease)}
.house-show .dots button.on{background:var(--accent);width:40px}
.p-hero .duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
.p-hero .duo figure{overflow:hidden}
.p-hero .duo figure:first-child{aspect-ratio:3/4}
.p-hero .duo figure:last-child{aspect-ratio:3/4;margin-bottom:-40px}
.p-hero .duo img{width:100%;height:100%;object-fit:cover}

/* ---------- engagements (liste du site) ---------- */
.chips{background:var(--navy);color:var(--on-dark)}
.chips ul{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgba(134,151,166,.25)}
.chips li{background:var(--navy);padding:24px 18px;display:flex;gap:12px;align-items:flex-start;font-size:.98rem;line-height:1.4}
.chips li i{color:#D99559;font-size:1.4rem;flex:none}

/* ---------- article + sommaire ---------- */
.article{padding-block:clamp(70px,9vw,130px)}
.article .grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.toc{position:sticky;top:100px;display:grid;gap:22px}
.toc nav{border-left:1px solid var(--line);display:grid}
.toc nav a{padding:7px 0 7px 18px;font-size:.95rem;color:var(--muted);line-height:1.35;position:relative;transition:color .3s}
.toc nav a::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transition:transform .4s var(--ease)}
.toc nav a:hover,.toc nav a.on{color:var(--ink)}
.toc nav a.on::before{transform:scaleY(1)}
.toc .card{background:var(--navy);color:var(--on-dark);padding:24px;display:grid;gap:14px}
.toc .card b{font-family:var(--display);font-weight:400;font-size:1.3rem}
.toc .card .tel{font-family:var(--display);font-size:1.3rem;color:#D99559}
.toc .card .btn{justify-content:center}

.prose{max-width:74ch}
.prose > * + *{margin-top:1em}
.prose h2,.article h2.h{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.15;margin-top:2.2em;margin-bottom:.2em;scroll-margin-top:110px}
.prose h3,.article h3.h{font-family:var(--display);font-weight:400;font-size:clamp(1.2rem,1.6vw,1.45rem);color:var(--accent-strong);margin-top:1.6em;scroll-margin-top:110px}
.prose h4{font-weight:600;margin-top:1.2em}
.prose p,.prose li{color:#3b3f46}
.prose ul,.prose ol{padding-left:0;list-style:none;display:grid;gap:8px}
.prose ul li{position:relative;padding-left:26px}
.prose ul li::before{content:"";position:absolute;left:2px;top:.72em;width:12px;height:1px;background:var(--accent)}
.prose ol{counter-reset:n}
.prose ol li{counter-increment:n;position:relative;padding-left:34px}
.prose ol li::before{content:counter(n);position:absolute;left:0;top:.15em;width:22px;height:22px;border:1px solid var(--accent);color:var(--accent-strong);font-size:.75rem;display:grid;place-items:center}
.prose a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a:hover{color:var(--navy)}
.prose strong{color:var(--ink);font-weight:600}
.article-body > :first-child{margin-top:0}
.article-body > .prose:first-child > h2:first-child{margin-top:0}
.article-body .btn{margin:28px 0}
.article-body figure.one{margin:40px 0;overflow:hidden;aspect-ratio:16/10;background:var(--surface-2)}
.article-body figure.one img{width:100%;height:100%;object-fit:cover}

/* galerie de réalisations (images consécutives) */
.pgal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,11vw,170px);gap:12px;margin:44px 0}
.pgal figure{position:relative;overflow:hidden;background:var(--surface-2);cursor:zoom-in;grid-column:span 2;grid-row:span 2}
.pgal figure:nth-child(5n+1){grid-column:span 4}
.pgal figure:nth-child(7n+4){grid-row:span 3}
.pgal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pgal figure:hover img{transform:scale(1.05)}
.pgal figure::after{content:"\002B";position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;background:rgba(249,247,245,.92);color:var(--ink);font-size:1.2rem;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .4s var(--ease)}
.pgal figure:hover::after{opacity:1;transform:none}
.pgal.full{grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(100px,9vw,150px)}
.pgal.full figure{grid-column:span 3;grid-row:span 2}
.pgal.full figure:nth-child(6n+1){grid-column:span 6;grid-row:span 3}
.pgal.full figure:nth-child(6n+4){grid-column:span 3;grid-row:span 3}

/* FAQ */
.faq{margin:48px 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--display);font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.35;transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent-strong)}
.faq summary i{flex:none;width:36px;height:36px;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);transition:transform .5s var(--ease),background .3s,color .3s}
.faq details[open] summary i{transform:rotate(45deg);background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}
.faq .a{padding:0 60px 24px 0}
.faq .a p{color:#3b3f46}

/* ---------- avis (réutilise .reviews de la home) ---------- */
.reviews.compact{padding-block:clamp(70px,9vw,120px)}

/* ---------- approche + formulaire ---------- */
.approach{position:relative;background:var(--navy-deep);color:var(--on-dark);padding-block:clamp(80px,10vw,140px);overflow:hidden}
.approach .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.12;mix-blend-mode:luminosity}
.approach .grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start}
.approach h2{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3vw,2.8rem);margin-bottom:22px}
.approach .prose p,.approach .prose li{color:rgba(249,247,245,.82)}
.approach .prose strong{color:#fff}
.approach .prose a{color:#D99559}
.approach .pics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:34px}
.approach .pics figure{aspect-ratio:4/3;overflow:hidden}
.approach .pics img{width:100%;height:100%;object-fit:cover}
.form-card{background:var(--bg);color:var(--ink);padding:clamp(28px,4vw,48px);box-shadow:0 40px 80px -40px rgba(0,0,0,.5)}
.form-card h2{color:var(--ink)}
.form-card form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-card .f{display:grid;gap:6px}
.form-card .f.wide{grid-column:1/-1}
.form-card label{font-size:.88rem;font-weight:600;color:var(--ink)}
.form-card input,.form-card textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid rgba(33,29,26,.22);padding:13px 14px;border-radius:var(--radius);transition:border-color .3s,box-shadow .3s}
.form-card input::placeholder,.form-card textarea::placeholder{color:#7a7f87}
.form-card input:focus,.form-card textarea:focus{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 3px rgba(191,121,59,.18)}
.form-card textarea{min-height:140px;resize:vertical}
.form-card .btn{grid-column:1/-1;justify-content:center;margin-top:6px}
.form-card .ok{grid-column:1/-1;display:none;padding:14px;background:#eef5ee;color:#245a2c;font-size:.95rem}
.form-card.sent .ok{display:block}

/* ---------- présentation : sections texte + images ---------- */
.split{padding-block:clamp(70px,9vw,130px)}
.split .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.split.alt{background:var(--surface)}
.split .stack{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:sticky;top:110px}
.split .stack figure{overflow:hidden;aspect-ratio:4/5;background:var(--surface-2)}
.split .stack figure:nth-child(even){margin-top:48px}
.split .stack img{width:100%;height:100%;object-fit:cover}
.split h2.h{margin-top:0}
.media-row{padding-block:clamp(70px,9vw,120px)}
.media-row h3{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.2rem);margin-bottom:36px;max-width:30ch}
.media-row .grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:16px;align-items:stretch}
.media-row figure{overflow:hidden;background:var(--surface-2);min-height:320px}
.media-row img{width:100%;height:100%;object-fit:cover}
.media-row .yt{aspect-ratio:auto;min-height:320px}

/* liens vers les prestations */
.svc-links{padding-block:clamp(70px,9vw,130px);background:var(--surface)}
.svc-links h2{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,3.1vw,3rem);margin-bottom:8px}
.svc-links .sub{font-family:var(--display);font-size:clamp(1.15rem,1.6vw,1.4rem);color:var(--accent-strong);margin-bottom:40px}
.svc-links ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.svc-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:26px 24px;background:var(--bg);font-family:var(--display);font-size:1.2rem;transition:background .4s,color .3s}
.svc-links a i{color:var(--accent);transition:transform .4s var(--ease)}
.svc-links a:hover{background:#fff;color:var(--accent-strong)}
.svc-links a:hover i{transform:translateX(6px)}

/* ---------- blog ---------- */
.posts{padding-block:clamp(60px,8vw,110px)}
.posts .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 20px}
.post{display:flex;flex-direction:column;gap:16px}
.post .ph{aspect-ratio:4/3;overflow:hidden;background:var(--surface-2)}
.post .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.post:hover .ph img{transform:scale(1.05)}
.post h3{font-family:var(--display);font-weight:400;font-size:1.25rem;line-height:1.3}
.post:hover h3{color:var(--accent-strong)}
.post .go{font-size:.9rem;color:var(--muted);display:inline-flex;gap:8px;align-items:center}
.post:first-child{grid-column:span 2}
.post:first-child .ph{aspect-ratio:16/9}
.post:first-child h3{font-size:1.7rem}

/* ---------- contact ---------- */
.contact-page{padding:calc(84px + clamp(40px,6vw,80px)) 0 clamp(80px,10vw,140px);background:radial-gradient(60% 70% at 80% 30%,#fff 0%,var(--bg) 65%)}
.contact-page .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:start}
.contact-page h1{font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1.1;margin-bottom:24px}
.contact-page .prose p{color:var(--muted)}
.contact-page .prose a{color:var(--accent-strong)}
.contact-page .form-card h2{font-size:clamp(1.3rem,1.9vw,1.7rem);margin-bottom:22px;font-family:var(--display);font-weight:400}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:160;background:rgba(21,43,77,.94);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.lb.on{opacity:1;visibility:visible}
.lb img{max-width:90vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb button{position:absolute;width:52px;height:52px;border:1px solid rgba(249,247,245,.35);color:var(--on-dark);display:grid;place-items:center;font-size:1.3rem}
.lb .x{top:18px;right:18px}
.lb .pv{left:18px;top:50%;translate:0 -50%}
.lb .nx{right:18px;top:50%;translate:0 -50%}
.lb .n{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:rgba(249,247,245,.7);font-size:.9rem}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .chips ul{grid-template-columns:repeat(3,1fr)}
  .posts .grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .p-hero .grid,.article .grid,.approach .grid,.split .grid,.contact-page .grid,.media-row .grid{grid-template-columns:1fr}
  .house-show{max-width:520px;width:100%;margin:0 auto 30px}
  .toc{position:relative;top:0}
  .toc nav{display:none}
  .split .stack{position:relative;top:0}
  .pgal,.pgal.full{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
  .pgal figure,.pgal.full figure{grid-column:span 1!important;grid-row:span 1!important}
  .pgal figure:nth-child(3n+1),.pgal.full figure:nth-child(3n+1){grid-column:span 2!important;grid-row:span 2!important}
  .p-hero .duo figure:last-child{margin-bottom:0}
  .faq .a{padding-right:0}
}
@media (max-width:600px){
  .chips ul{grid-template-columns:1fr 1fr}
  .form-card form{grid-template-columns:1fr}
  .posts .grid{grid-template-columns:1fr}
  .post:first-child{grid-column:auto}
}
@media (prefers-reduced-motion:reduce){
  .house-show .win img{transition:none}
  .page-veil{display:none}
}

/* ---------- pages villes : zone d'intervention + liens prestations ---------- */
.zone{padding-block:clamp(60px,8vw,110px);border-bottom:1px solid var(--line)}
.zone .grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:start}
.zone h2{font-family:var(--display);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.4rem);display:flex;gap:14px;align-items:center}
.zone h2 i{color:var(--accent);font-size:1.1em}
.zone .prose p{color:#3b3f46}
.zone .prose a,.svc-links .intro-links a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:3px}
.svc-links .intro-links{max-width:72ch;margin:6px 0 36px}
.svc-links .intro-links p{color:#3b3f46}
@media (max-width:900px){.zone .grid{grid-template-columns:1fr}}

/* ---------- tableaux comparatifs ---------- */
.prose .tbl{margin:34px 0;overflow-x:auto;border:1px solid var(--line);background:#fff;box-shadow:0 30px 60px -45px rgba(29,56,99,.35);-webkit-overflow-scrolling:touch}
.prose table{width:100%;border-collapse:collapse;min-width:620px;font-size:.96rem;line-height:1.45}
.prose thead th{background:var(--navy);color:var(--on-dark);font-family:var(--display);font-weight:400;font-size:1rem;letter-spacing:.02em;text-align:left;padding:16px 18px;vertical-align:bottom}
.prose tbody td{padding:14px 18px;border-top:1px solid var(--line);color:#3b3f46;vertical-align:top}
.prose tbody tr:nth-child(even) td{background:var(--surface)}
.prose tbody tr:hover td{background:#fbf5ef}
.prose tbody td:first-child{color:var(--ink);font-weight:600}
.prose tbody td:first-child strong{font-weight:600}
/* colonne JVMH mise en avant */
.prose table.hl-2 thead th:nth-child(2),.prose table.hl-3 thead th:nth-child(3),.prose table.hl-4 thead th:nth-child(4){background:var(--accent-strong);color:#fff;position:relative}
.prose table.hl-2 tbody td:nth-child(2),.prose table.hl-3 tbody td:nth-child(3),.prose table.hl-4 tbody td:nth-child(4){background:rgba(191,121,59,.09);color:var(--ink);font-weight:600;box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent)}
.prose table.hl-2 tbody tr:last-child td:nth-child(2),.prose table.hl-3 tbody tr:last-child td:nth-child(3),.prose table.hl-4 tbody tr:last-child td:nth-child(4){box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent),inset 0 -2px 0 var(--accent)}
.approach .prose .tbl{background:rgba(255,255,255,.04)}

/* mobile : chaque ligne devient une carte */
@media (max-width:700px){
  .prose .tbl{overflow:visible;border:0;background:none;box-shadow:none}
  .prose table{min-width:0}
  .prose thead{display:none}
  .prose table,.prose tbody,.prose tr,.prose td{display:block;width:100%}
  .prose tbody tr{border:1px solid var(--line);background:#fff;margin-bottom:12px}
  .prose tbody tr:nth-child(even) td{background:none}
  .prose tbody td{border-top:1px solid var(--line);display:grid;grid-template-columns:42% 1fr;gap:12px;padding:11px 14px}
  .prose tbody td::before{content:attr(data-label);font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
  .prose tbody td:first-child{border-top:0;display:block;background:var(--navy)!important;color:var(--on-dark);font-family:var(--display);font-weight:400;font-size:1.05rem;box-shadow:none!important}
  .prose tbody td:first-child::before{display:none}
  .prose tbody td:first-child strong{color:var(--on-dark);font-weight:400}
  .prose table[class^="hl-"] tbody td{box-shadow:none!important}
}

/* ================================================================
   ARTICLES DE BLOG
   ================================================================ */
.read-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:90;pointer-events:none}
.read-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#D99559);transform:scaleX(0);transform-origin:left}

.post-hero{padding-top:calc(84px + clamp(36px,5vw,70px));background:radial-gradient(60% 80% at 75% 20%,#fff 0%,var(--bg) 65%)}
.post-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,4vw,3.6rem);line-height:1.1;max-width:22ch;margin-bottom:24px}
.post-hero h1 .ln{display:block;overflow:hidden;padding-bottom:.05em}
.post-hero h1 .ln > span{display:inline-block}
.post-hero .crumbs span[aria-current]{max-width:42ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-meta{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--muted);font-size:.95rem}
.post-meta span{display:inline-flex;align-items:center;gap:8px}
.post-meta i{color:var(--accent);font-size:1.1rem}
.post-cover{position:relative;max-width:var(--maxw);margin:clamp(36px,5vw,60px) auto 0;padding:0 var(--gutter)}
.post-cover img{width:100%;aspect-ratio:21/9;object-fit:cover;background:var(--surface-2)}
.post-cover::after{content:"";position:absolute;right:calc(var(--gutter) - 14px);bottom:-14px;width:34%;height:42%;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);pointer-events:none}

.post-grid{display:grid;grid-template-columns:250px minmax(0,72ch) 250px;justify-content:space-between;gap:clamp(30px,4vw,64px);padding-block:clamp(60px,8vw,110px) clamp(70px,9vw,120px);align-items:start}
.post-toc,.post-side{position:sticky;top:100px}
.post-toc .lbl{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--accent-strong);margin-bottom:14px}
.post-toc nav{position:relative;display:grid;max-height:calc(100vh - 290px);overflow:auto;padding-left:18px;scrollbar-width:none;overscroll-behavior:contain}
.post-toc nav::-webkit-scrollbar{display:none}
.post-toc .rail{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
.post-toc .rail span{position:absolute;left:0;top:0;width:1px;height:100%;background:var(--accent);transform:scaleY(0);transform-origin:top}
.post-toc a,.toc-mobile nav a{display:block;color:var(--muted);line-height:1.35;transition:color .3s,transform .4s var(--ease)}
.post-toc a.l2{font-size:.93rem;padding:7px 0}
.post-toc a.l3,.toc-mobile a.l3{font-size:.84rem;padding:4px 0 4px 14px}
.post-toc .sub{display:grid;margin-bottom:4px}
.post-toc a:hover,.toc-mobile a:hover{color:var(--ink)}
.post-toc a.on,.toc-mobile a.on{color:var(--ink);transform:translateX(4px)}
.post-toc a.l2.on{font-weight:600}
.post-toc a.on::before{content:"";position:absolute;left:-2px;width:3px;height:1.1em;margin-top:.1em;background:var(--accent);border-radius:2px}
.share{display:flex;gap:8px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.share a,.share button{width:40px;height:40px;border:1px solid var(--line);display:grid;place-items:center;font-size:1.1rem;color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.share a:hover,.share button:hover,.share button.ok{background:var(--navy);color:var(--on-dark);border-color:var(--navy)}

.post-body{font-size:1.07rem}
.post-body .prose{max-width:none}
.post-body .prose > :first-child{margin-top:0}
.post-body .prose h2{font-size:clamp(1.6rem,2.4vw,2.2rem)}
.post-body .prose h2::before{content:"";display:block;width:40px;height:2px;background:var(--accent);margin-bottom:18px}
.post-body .prose p:first-of-type{font-size:1.15rem;color:var(--ink)}
.post-body figure.in{margin:34px 0}
.post-body figure.in img{width:100%;height:auto;background:var(--surface-2)}
.post-body figure.in figcaption{font-size:.88rem;color:var(--muted);margin-top:10px;padding-left:14px;border-left:2px solid var(--accent)}
.post-body blockquote{border-left:2px solid var(--accent);padding:6px 0 6px 22px;font-family:var(--display);font-size:1.3rem;color:var(--ink)}
.post-cta{margin:36px 0}
.read-also{margin-top:48px;padding:28px 30px;background:var(--surface);border-top:2px solid var(--accent)}
.read-also h3{margin-top:0!important;color:var(--ink)!important;font-size:1.2rem!important}
.read-also ul li::before{top:.8em}

.post-box{display:grid;background:var(--navy);color:var(--on-dark);overflow:hidden;position:relative;transition:transform .5s var(--ease)}
.post-box:hover{transform:translateY(-4px)}
.post-box img{width:100%;aspect-ratio:4/5;object-fit:cover;opacity:.85;transition:opacity .4s,transform 1.2s var(--ease)}
.post-box:hover img{opacity:1;transform:scale(1.04)}
.post-box .t{font-family:var(--display);font-size:1.5rem;padding:22px 22px 6px}
.post-box .d{font-size:.92rem;opacity:.8;padding:0 22px 24px;line-height:1.5}
.post-box .go{position:absolute;top:14px;right:14px;width:42px;height:42px;background:var(--accent-strong);display:grid;place-items:center;color:#fff;font-size:1.1rem}

/* sommaire mobile : barre collante sous le header, avec progression */
.toc-mobile{display:none;position:sticky;top:72px;z-index:60;background:rgba(249,247,245,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-block:1px solid var(--line);transition:top .6s var(--ease)}
.hdr.is-hidden ~ main .toc-mobile{top:0}
.toc-mobile summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px var(--gutter);position:relative}
.toc-mobile summary::-webkit-details-marker{display:none}
.toc-mobile .lbl{font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--accent-strong);flex:none}
.toc-mobile .cur{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.92rem}
.toc-mobile summary i{transition:transform .4s var(--ease)}
.toc-mobile[open] summary i{transform:rotate(180deg)}
.toc-mobile .bar{position:absolute;left:0;right:0;bottom:-1px;height:2px}
.toc-mobile .bar span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.toc-mobile nav{max-height:55vh;overflow:auto;padding:6px var(--gutter) 18px;display:grid}
.toc-mobile nav a.l2{padding:8px 0;font-size:.98rem}

.recent{background:var(--surface)}
.recent h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:36px}
.recent .post:first-child{grid-column:auto}
.recent .post:first-child .ph{aspect-ratio:4/3}
.recent .post:first-child h3{font-size:1.25rem}
.post .date{font-size:.85rem;color:var(--accent-strong)}

@media (max-width:1200px){
  .post-grid{grid-template-columns:240px minmax(0,1fr)}
  .post-side{position:relative;top:0;grid-column:2;max-width:420px}
}
@media (max-width:900px){
  .toc-mobile{display:block}
  .post-grid{grid-template-columns:1fr}
  .post-toc{display:none}
  .post-side{grid-column:auto}
  .post-cover img{aspect-ratio:16/10}
  .read-progress{display:none}
}

/* pied de tableau : conclusion sur toute la largeur */
.prose tfoot td.verdict{padding:20px 22px;background:var(--navy);color:rgba(249,247,245,.88);font-size:1rem;line-height:1.6;border-top:0}
.prose tfoot td.verdict strong{color:#D99559;font-family:var(--display);font-weight:400;font-size:1.1rem;margin-right:4px}
@media (max-width:700px){
  .prose tfoot,.prose tfoot tr{display:block}
  .prose tfoot td.verdict{display:block;border:0}
}

/* ================================================================
   PRESTATIONS & GRANDES VILLES v2 : hero plein écran + chapitres
   ================================================================ */
.c-hero{position:relative;min-height:min(88vh,820px);display:flex;align-items:flex-end;background:var(--navy-deep);color:var(--on-dark);overflow:hidden}
.c-hero .slides{position:absolute;inset:0}
.c-hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1.4s var(--ease),transform 7s linear}
.c-hero .slides img.on{opacity:1;transform:scale(1)}
.c-hero .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,43,77,.95) 0%,rgba(21,43,77,.55) 45%,rgba(21,43,77,.15) 100%),linear-gradient(90deg,rgba(21,43,77,.6) 0%,rgba(21,43,77,0) 60%)}
.c-hero-in{position:relative;z-index:2;width:100%;padding-top:140px;padding-bottom:clamp(56px,8vh,96px)}
.c-hero .crumbs{color:rgba(249,247,245,.75)}
.c-hero .crumbs a:hover{color:#fff}
.c-hero .crumbs i{color:#D99559}
.c-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,5.4vw,5rem);line-height:1.04;max-width:16ch;margin:6px 0 34px;color:#fff}
.c-hero h1 .ln{display:block;overflow:hidden;padding-bottom:.05em}
.c-hero h1 .ln > span{display:inline-block}
.c-hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.c-hero .btn-line{border-color:rgba(249,247,245,.6);color:#fff}
.c-hero .btn-line::before{background:#fff}
.c-hero .btn-line:hover{color:var(--ink)}
.c-hero .dots{position:absolute;z-index:2;right:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)));bottom:clamp(56px,8vh,96px);display:flex;gap:8px}
.c-hero .dots button{width:24px;height:3px;background:rgba(249,247,245,.35);transition:background .3s,width .4s var(--ease)}
.c-hero .dots button.on{background:#D99559;width:44px}

/* introduction en grand */
.lead-sec{padding-block:clamp(70px,9vw,130px)}
.lead{max-width:none}
.lead p{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.7;color:var(--ink);max-width:62ch}
.lead p + p{color:#4a4f57;font-size:clamp(1.05rem,1.3vw,1.2rem)}

/* barre sommaire collante, toutes tailles d'écran */
.toc-bar{display:block!important}
.toc-bar summary{max-width:var(--maxw);margin:0 auto}
.toc-bar nav{max-width:var(--maxw);margin:0 auto;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));column-gap:28px}

/* chapitres */
.chap{padding-block:clamp(70px,8vw,120px);border-top:1px solid var(--line)}
.chap:nth-child(even){background:var(--surface)}
.chap-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,96px);align-items:start}
.chap-head{position:sticky;top:150px}
.chap-head h2{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,2.8vw,2.7rem);line-height:1.15;scroll-margin-top:150px}
.chap-head h2::before{content:"";display:block;width:44px;height:2px;background:var(--accent);margin-bottom:20px}
.chap-body{font-size:1.08rem;line-height:1.8;min-width:0}
.chap-body .prose{max-width:68ch}
.chap-body .prose p,.chap-body .prose li{color:#3e434b}
.chap-body .prose h3,.chap-body h3.h{font-size:clamp(1.25rem,1.7vw,1.5rem);margin-top:1.8em}
.chap-body > :first-child,.chap-body > .prose:first-child > :first-child{margin-top:0}
.chap-body .pgal{margin:36px 0 0}
.chap-body figure.one{margin:36px 0 0}
.chap-body .faq{margin:0}
.chap-body .btn{margin-top:28px}
.chap-body .tbl{margin:30px 0}

@media (max-width:900px){
  .c-hero{min-height:78vh}
  .c-hero-in{padding-top:120px}
  .c-hero .dots{left:var(--gutter);right:auto;bottom:24px}
  .chap-grid{grid-template-columns:1fr;gap:18px}
  .chap-head{position:relative;top:0}
}

.c-hero h1{max-width:20ch}
.c-hero h1 .ln > span{display:inline}
.chap-plain{padding-block:clamp(40px,5vw,70px) clamp(60px,7vw,100px)}
.chap-plain .chap-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center}
.chap-plain .chap-body > *{margin:0!important}
.chap-plain .chap-body figure.one{grid-column:1/-1;aspect-ratio:21/8;margin-top:10px!important}
.chap-plain .chap-body .pgal{grid-column:1/-1}
@media (max-width:900px){.chap-plain .chap-body{grid-template-columns:1fr}}
