/* ============================================================
   pages.css — composants des pages internes (services, villes)
   Reutilise les tokens et composants de styles.css
   ============================================================ */

/* ---- PAGE HERO (navy) ---- */
.page-hero{background:var(--navy);color:var(--cream);padding:calc(100px + 96px) 0 clamp(64px,9vh,110px);position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:88px 88px;pointer-events:none;mask-image:radial-gradient(ellipse at 70% 20%,#000 10%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 20%,#000 10%,transparent 70%)}
.page-hero-blob{position:absolute;top:-30%;right:-10%;width:620px;height:620px;background:var(--terra);border-radius:50%;filter:blur(90px);opacity:.18;pointer-events:none}
.page-hero .container{position:relative;z-index:2}
.page-hero .eyebrow{color:var(--yellow)}
.page-hero h1{color:var(--cream);font-size:clamp(46px,6.4vw,104px);max-width:16ch;margin:22px 0 28px}
.page-hero h1 em,.page-hero h1 .italic{color:var(--yellow);font-style:italic}
.page-hero-lead{font-size:clamp(17px,1.4vw,22px);color:rgba(245,242,234,.82);max-width:56ch;line-height:1.5;margin-bottom:40px}
.page-hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* ---- BREADCRUMB ---- */
.breadcrumb{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,242,234,.6);margin-bottom:36px;flex-wrap:wrap}
.breadcrumb a{transition:color .3s}
.breadcrumb a:hover{color:var(--yellow)}
.breadcrumb .sep{color:var(--terra)}
.breadcrumb [aria-current]{color:var(--cream)}

/* ---- DETAIL LAYOUT (2 colonnes) ---- */
.detail{background:var(--cream)}
.detail-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(40px,6vw,80px);align-items:start}
.detail-main .eyebrow{margin-bottom:18px}
.detail-main h2{font-size:clamp(34px,4vw,64px);margin-bottom:26px}
.detail-prose p{font-size:clamp(16px,1.15vw,18.5px);line-height:1.65;color:var(--text-dim);max-width:62ch;margin-bottom:22px}
.detail-prose p strong{color:var(--navy);font-weight:500}

.deliverables{margin:40px 0 8px;border-top:1.5px solid var(--navy)}
.deliverables li{padding:18px 0;border-bottom:1px solid var(--line);font-size:16px;color:var(--navy);display:flex;align-items:flex-start;gap:16px;font-weight:400}
.deliverables li::before{content:"";flex-shrink:0;margin-top:8px;width:8px;height:8px;background:var(--terra);border-radius:50%}

/* ---- ASIDE STICKY CTA ---- */
.detail-aside{position:sticky;top:120px}
.aside-card{background:var(--navy);color:var(--cream);border-radius:24px;padding:38px 34px}
.aside-card .eyebrow{color:var(--yellow)}
.aside-card h3{color:var(--cream);font-family:var(--serif);font-size:30px;margin:16px 0 14px;line-height:1.05}
.aside-card p{color:rgba(245,242,234,.75);font-size:14.5px;line-height:1.55;margin-bottom:26px}
.aside-card .btn{width:100%;justify-content:center;margin-bottom:12px}
.aside-list{margin-top:26px;padding-top:24px;border-top:1px solid rgba(245,242,234,.15)}
.aside-list li{padding:9px 0;font-size:13.5px;color:rgba(245,242,234,.82);display:flex;gap:12px;align-items:center}
.aside-list li::before{content:"";width:6px;height:6px;background:var(--yellow);border-radius:50%;flex-shrink:0}

/* ---- ZONE LOCALE (villes) ---- */
.zone{background:var(--white)}
.zone-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.zone-chip{padding:12px 22px;background:var(--cream);border:1.5px solid var(--line-strong);border-radius:999px;font-size:14px;color:var(--navy);font-weight:400;transition:all .3s var(--ease)}
.zone-chip:hover{border-color:var(--terra);color:var(--terra);transform:translateY(-2px)}

/* ---- LIENS SERVICES (cross-link) ---- */
.xlinks{background:var(--cream)}
.xlinks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:32px}
.xlink{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 32px;background:var(--white);border-radius:18px;border:1.5px solid transparent;transition:all .4s var(--ease)}
.xlink:hover{border-color:var(--terra);transform:translateY(-4px);box-shadow:0 22px 44px rgba(12,20,38,.08)}
.xlink h3{font-family:var(--sans);font-weight:500;font-size:18px;letter-spacing:-.01em;margin-bottom:6px}
.xlink p{font-size:14px;color:var(--text-dim);line-height:1.45}
.xlink .arrow{font-family:var(--mono);color:var(--terra);font-size:20px;flex-shrink:0;transition:transform .3s}
.xlink:hover .arrow{transform:translateX(6px)}

/* ---- MINI CTA BAND ---- */
.miniband{background:var(--terra);color:var(--white);text-align:center}
.miniband h2{color:var(--white);font-size:clamp(36px,4.6vw,76px);margin-bottom:18px}
.miniband h2 em{color:var(--navy);font-style:italic}
.miniband p{color:rgba(255,255,255,.9);max-width:48ch;margin:0 auto 36px;font-size:16px;line-height:1.55}
.miniband .btn{background:var(--white);color:var(--terra);border-color:var(--white)}
.miniband .btn:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}

/* ---- HUB SERVICES GRID ---- */
.hub{background:var(--cream)}
.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px}
.hub-card{background:var(--white);border-radius:20px;padding:40px 36px 34px;display:flex;flex-direction:column;min-height:300px;border:1.5px solid transparent;transition:all .45s var(--ease)}
.hub-card:hover{border-color:var(--terra);transform:translateY(-6px);box-shadow:0 30px 60px rgba(255,92,56,.12)}
.hub-badge{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-family:var(--mono);font-size:13px;color:var(--navy);background:var(--yellow);margin-bottom:40px}
.hub-card:nth-child(2) .hub-badge{background:var(--terra);color:var(--white)}
.hub-card:nth-child(3) .hub-badge{background:var(--navy);color:var(--yellow)}
.hub-card:nth-child(4) .hub-badge{background:var(--gold);color:var(--white)}
.hub-card h2{font-family:var(--serif);font-size:32px;line-height:1.02;margin-bottom:14px}
.hub-card p{color:var(--text-dim);font-size:15px;line-height:1.55;margin-bottom:28px}
.hub-card .link-arrow{margin-top:auto;border-color:var(--line-strong);color:var(--navy)}
.hub-card:hover .link-arrow{color:var(--terra);border-color:var(--terra)}

@media (max-width:1100px){
  .detail-layout{grid-template-columns:1fr}
  .detail-aside{position:static}
  .hub-grid,.xlinks-grid{grid-template-columns:1fr}
}

/* footer brand texte (pages internes, parite pages etudes) */
.footer-brand .brand{color:var(--cream)}
.footer-brand p{margin-top:24px}

/* ============ MENU MOBILE (burger) ============ */
.nav-row{position:relative}
.nav-burger{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%);width:30px;height:22px;background:none;border:0;cursor:pointer;padding:0;z-index:3}
.nav-burger span{position:absolute;left:0;width:100%;height:2px;background:var(--navy);border-radius:2px}
.nav-burger span:nth-child(1){top:1px}
.nav-burger span:nth-child(2){top:10px}
.nav-burger span:nth-child(3){top:19px}
.mobile-menu{position:fixed;inset:0;z-index:590;background:var(--navy);color:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,9vw,56px) clamp(24px,7vw,48px);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s}
body.menu-open .mobile-menu{opacity:1;visibility:visible;transform:none}
.mobile-menu::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse at 75% 22%,#000 18%,transparent 80%);mask-image:radial-gradient(ellipse at 75% 22%,#000 18%,transparent 80%)}
.mm-close{position:absolute;top:14px;right:clamp(20px,7vw,40px);font-size:32px;line-height:1;color:var(--cream);background:none;border:0;cursor:pointer;padding:6px;font-family:var(--sans);z-index:2}
.mobile-menu ul{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}
.mobile-menu li a{font-family:var(--serif);font-size:clamp(36px,12vw,54px);line-height:1.16;color:var(--cream);letter-spacing:-.02em;display:inline-block;padding:6px 0;transition:color .3s}
.mobile-menu li a:active,.mobile-menu li a:hover{color:var(--terra)}
.mobile-menu .mm-cta{position:relative;z-index:1;margin-top:30px;align-self:flex-start;background:var(--yellow);color:var(--navy);padding:16px 28px;border-radius:999px;font-family:var(--sans);font-weight:500;font-size:15px;display:inline-flex;gap:10px;align-items:center}
.mobile-menu .mm-foot{position:relative;z-index:1;margin-top:38px;padding-top:24px;border-top:1px solid rgba(245,242,234,.15);font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:rgba(245,242,234,.72);display:flex;flex-direction:column;gap:10px}
.mobile-menu .mm-foot a{color:rgba(245,242,234,.72)}
@media (max-width:680px){.nav-burger{display:block}.nav-cta{display:none}}
@media (min-width:681px){.mobile-menu{display:none}}

/* ============ BLOG (hub) ============ */
.blog-hub{background:var(--cream)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}
.post-card{display:flex;flex-direction:column;background:var(--white);border-radius:20px;padding:34px 30px 30px;border:1.5px solid transparent;transition:all .45s var(--ease);min-height:310px}
.post-card:hover{border-color:var(--terra);transform:translateY(-6px);box-shadow:0 28px 56px rgba(12,20,38,.1)}
.post-meta{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);font-weight:500;margin-bottom:18px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.post-meta .sep{color:var(--text-faint)}
.post-card h2{font-family:var(--serif);font-size:26px;line-height:1.08;margin-bottom:12px;color:var(--navy);letter-spacing:-.01em}
.post-card p{color:var(--text-dim);font-size:14.5px;line-height:1.55;margin-bottom:24px}
.post-card .link-arrow{margin-top:auto;border-color:var(--line-strong);color:var(--navy);font-size:11px}
.post-card:hover .link-arrow{color:var(--terra);border-color:var(--terra)}

/* ============ ARTICLE ============ */
.article{background:var(--cream)}
.article-wrap{max-width:760px;margin:0 auto}
.article-byline{display:flex;align-items:center;gap:16px;margin:0 auto 40px;max-width:760px;padding-bottom:32px;border-bottom:1.5px solid var(--line)}
.article-byline .av{width:52px;height:52px;border-radius:50%;background:var(--navy);color:var(--yellow);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:20px;flex-shrink:0}
.article-byline .who{font-size:15px;color:var(--navy);font-weight:500}
.article-byline .who span{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--text-dim);margin-top:4px;font-weight:400}
.article-byline a{color:var(--terra)}
.article-body{font-size:clamp(16.5px,1.15vw,18.5px);line-height:1.7;color:#26303f}
.article-body > p{margin-bottom:22px}
.article-body h2{font-family:var(--serif);font-size:clamp(28px,3vw,42px);margin:50px 0 18px;letter-spacing:-.02em;line-height:1.04;color:var(--navy)}
.article-body h3{font-family:var(--sans);font-weight:600;font-size:20px;margin:34px 0 12px;color:var(--navy);letter-spacing:-.01em}
.article-body ul{margin:0 0 22px;padding-left:0}
.article-body li{position:relative;padding:8px 0 8px 28px;line-height:1.6}
.article-body li::before{content:"";position:absolute;left:6px;top:16px;width:8px;height:8px;background:var(--terra);border-radius:50%}
.article-body strong{color:var(--navy);font-weight:600}
.article-body blockquote{margin:36px 0;padding:6px 0 6px 28px;border-left:3px solid var(--terra);font-family:var(--serif);font-style:italic;font-size:clamp(21px,2vw,29px);line-height:1.3;color:var(--navy)}

@media (max-width:1100px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.blog-grid{grid-template-columns:1fr}}
