/* Maison Zen Services — feuille commune de la V2 (site figé depuis l'export Claude Design)
   Les pages gardent leurs styles inline d'origine ; ce fichier porte :
   1. la base + les animations (reprises de l'export et de mz-anim.js)
   2. la navigation responsive (menu bureau / bouton burger)
   3. le blog « digeste » BE WEB transposé sur la charte sombre */

/* ---------- 1. base + animations ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;color:#EAF1F7;background:#0B141D;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
@keyframes mzUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes mzReveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes mzWord{from{opacity:0;transform:translateY(26px) rotate(1.5deg)}to{opacity:1;transform:none}}
@keyframes mzFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes mzUnderline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.mz-reveal{opacity:0}
.mz-reveal.mz-in{animation:mzReveal .68s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--mz-d,0ms)}
.mz-word{display:inline-block;animation:mzWord .62s cubic-bezier(.22,.61,.36,1) both}
.mz-arrow{display:inline-block;transition:transform .28s ease}
.mz-btn:hover .mz-arrow{transform:translateX(6px)}
.mz-row{transition:background .28s ease,transform .28s ease}
.mz-row:hover{background:rgba(15,115,195,.07)}
.mz-plan{transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s cubic-bezier(.22,.61,.36,1),border-color .35s ease}
.mz-plan:hover{transform:translateY(-12px) scale(1.015);box-shadow:0 40px 80px rgba(0,0,0,.2)}
.mz-card{transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1)}
.mz-card:hover{transform:translateY(-8px);box-shadow:0 34px 70px rgba(0,0,0,.16)}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .mz-reveal{opacity:1 !important;transform:none !important}
  .mz-plan:hover,.mz-card:hover{transform:none !important}
}

/* ---------- 2. navigation responsive ---------- */
.mz-nav{display:block}
.mz-toggle{display:none}
@media (max-width:919px){
  .mz-nav{display:none}
  .mz-toggle{display:inline-flex}
}
[data-mz-on="f.toggle"]:focus-visible,[data-mz-on="toggleNav"]:focus-visible{outline:2px solid #4AA3E8;outline-offset:2px}

/* ---------- 3. blog ---------- */
:root{
  --color-accent:#0F73C3;
  --color-accent-dark:#4AA3E8;
  --color-text:#EAF1F7;
  --color-muted:#93A2B1;
  --color-border:rgba(255,255,255,.12);
  --color-bg:#0B141D;
  --space-1:.35rem;--space-2:.7rem;--space-3:1.1rem;--space-4:1.6rem;--space-5:2.6rem;--space-6:3.6rem;
  --radius:14px;
}

/* cartes : la grille et les cartes gardent leur style inline ; le display vient d'ici
   pour que blog-schedule.js puisse lever le display:none inline à la date prévue */
.blog-card{display:flex;flex-direction:column;height:100%}

/* en-tête d'article */
.mz-ariane{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.55);margin:0 0 22px}
.mz-ariane a{color:rgba(255,255,255,.78);text-decoration:none}
.mz-ariane a:hover{color:#4AA3E8}
.mz-pastille{display:inline-flex;align-items:center;gap:10px;padding:8px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}
.mz-pastille::before{content:'';width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,#0F73C3,#2A8FE0);box-shadow:0 0 0 6px rgba(15,115,195,.22)}
.mz-titre-article{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(32px,4.2vw,54px);line-height:1.06;letter-spacing:-.02em;color:#fff;margin:18px 0 0;max-width:24ch}

/* corps d'article */
.article-body{color:#C4D0DB;font-size:17px;line-height:1.75}
.article-body h2{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(26px,2.6vw,34px);line-height:1.15;letter-spacing:-.01em;color:#EAF1F7;margin:2.2em 0 .7em;scroll-margin-top:110px}
.article-body h3{color:#EAF1F7;font-weight:700;font-size:1.15rem;margin:1.6em 0 .6em}
.article-body p{margin:0 0 1.1em}
.article-body strong{color:#EAF1F7}
.article-body ul,.article-body ol{margin:0 0 1.3em;padding-left:1.4rem}
.article-body li{margin-bottom:.45em}
.article-body ul{list-style:none}
.article-body ul li{position:relative}
.article-body ul li::before{content:'•';position:absolute;left:-1.1rem;color:#4AA3E8;font-weight:700}
.article-body a:not(.btn):not(.reno-btn){color:#4AA3E8;text-decoration:underline;text-underline-offset:2px}
.article-body a:not(.btn):not(.reno-btn):hover{color:#fff}
.article-meta{color:#4AA3E8;font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 28px}
.publish-gate__locked{margin:0 0 var(--space-5);padding:26px 24px;border:1px dashed rgba(255,255,255,.22);border-radius:16px;color:#93A2B1;text-align:center}
.publish-gate__locked p{margin:0}

.article-brief{margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);background:rgba(15,115,195,.09);border-left:4px solid #0F73C3;border-radius:var(--radius)}
.article-brief h2{margin:0 0 var(--space-3);font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#4AA3E8}
.article-brief ul{margin:0;padding-left:1.2rem;display:grid;gap:var(--space-2)}
.article-toc{margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius);background:#101A24}
.article-toc h2{margin:0 0 var(--space-2);font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#93A2B1}
.article-toc ol{margin:0;padding-left:1.3rem}
.article-toc li{margin-bottom:6px}
.article-toc a{color:#C4D0DB !important;text-decoration:none !important}
.article-toc a:hover{color:#4AA3E8 !important}
.article-quote{margin:var(--space-5) 0;padding:var(--space-1) 0 var(--space-1) var(--space-4);border-left:4px solid #0F73C3;font-family:'Newsreader',Georgia,serif;font-size:1.4rem;line-height:1.45;font-weight:500;color:#EAF1F7}

.article-realisations{margin:var(--space-6) 0;padding:var(--space-6) var(--space-5);text-align:center;background:linear-gradient(160deg,rgba(15,115,195,.16),rgba(15,115,195,.04));border:1px solid rgba(15,115,195,.35);border-radius:22px}
.reno-eyebrow{display:inline-block;margin-bottom:var(--space-2);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#4AA3E8}
.article-realisations h3{margin:0 0 var(--space-2);font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:1.7rem;color:#EAF1F7}
.reno-sub{margin:0 auto var(--space-4);max-width:460px;color:#93A2B1;font-size:.95rem}
.reno-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center}
.article-realisations a.reno-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#0F73C3,#2A8FE0);color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;border-radius:999px;box-shadow:0 10px 24px rgba(15,115,195,.28);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.article-realisations a.reno-btn span{transition:transform .18s ease}
.article-realisations a.reno-btn:hover{color:#fff;transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 14px 30px rgba(15,115,195,.38)}
.article-realisations a.reno-btn:hover span{transform:translateX(4px)}

.article-faq{margin-top:var(--space-3)}
.faq-item{background:#16222E;border:1px solid rgba(255,255,255,.1);border-radius:16px;margin-bottom:12px;overflow:hidden}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;cursor:pointer;font-weight:700;color:#EAF1F7;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';flex:0 0 auto;color:#4AA3E8;font-size:24px;line-height:1;transition:transform .25s ease}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-answer{padding:0 22px 20px;color:#C4D0DB}
.faq-answer p{margin:0}

.article-more ul{padding-left:1.2rem}
.article-more a,.article-zones strong{color:#EAF1F7}
.article-cta{margin:var(--space-6) 0 0;padding:clamp(32px,5vw,56px) 24px;text-align:center;border-radius:28px;background:linear-gradient(135deg,#0F73C3,#2A8FE0);box-shadow:0 26px 60px rgba(15,115,195,.28)}
.article-cta h3{margin:0 0 12px;font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(26px,3vw,38px);line-height:1.1;color:#fff}
.article-cta p{margin:0 auto 22px;max-width:52ch;color:rgba(255,255,255,.85)}
.btn.btn-primary{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:14px;background:#fff;color:#0E63AD;font-weight:700;font-size:16px;text-decoration:none;box-shadow:0 16px 34px rgba(6,17,29,.2);transition:transform .2s ease}
.btn.btn-primary:hover{transform:translateY(-2px)}
.article-cta .btn.btn-primary{color:#0E63AD !important;text-decoration:none !important}
.back-to-blog{color:#4AA3E8;font-weight:700;text-decoration:none !important}
.back-to-blog:hover{color:#fff}

/* apparition douce des blocs d'article (IntersectionObserver dans mz.js ; sans JS tout est visible) */
html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
html.js .reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){html.js .reveal{opacity:1;transform:none}}
@media (max-width:640px){
  .article-body{font-size:16px}
  .article-brief,.article-toc{padding:var(--space-3) var(--space-4)}
  .article-realisations{padding:var(--space-5) var(--space-3)}
}
