/* ==========================================================================
   MONPRIXTRAVAUX — SEO / LANDING PAGES v6
   Complément de style.css. Ne remplace pas style.css.
   ========================================================================== */

.seo-page{
  padding-top:clamp(1.25rem,3vw,2rem);
  padding-bottom:clamp(3rem,6vw,5rem);
}

.seo-breadcrumb{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem .55rem;
  margin:0 0 1.35rem;
  color:var(--muted,#666);
  font-size:.82rem;
  line-height:1.45;
}
.seo-breadcrumb a{text-decoration:none}
.seo-breadcrumb a:hover{text-decoration:underline;text-underline-offset:3px}

/* Hero */
.seo-hero{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(260px,.7fr);
  gap:clamp(1rem,2.5vw,2rem);
  align-items:stretch;
  margin-bottom:clamp(2.25rem,5vw,3.5rem);
}
.seo-hero-copy,
.seo-hero-card,
.seo-sticky-card,
.seo-note,
.seo-final-cta,
.seo-hub-card{
  border:1px solid var(--line,#dedee7);
  border-radius:var(--radius-lg,14px);
  background:#fff;
}
.seo-hero-copy{padding:clamp(1.5rem,4.5vw,4rem)}
.seo-hero h1,.seo-hub-hero h1{
  max-width:17ch;
  margin:.2em 0 .32em;
  font-size:clamp(2.2rem,5vw,4.75rem);
  line-height:.98;
  letter-spacing:-.045em;
}
.seo-hero-copy>p,.seo-hub-hero>p{
  max-width:66ch;
  color:var(--muted,#666);
  font-size:clamp(1rem,1.35vw,1.17rem);
  line-height:1.66;
}
.seo-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1.6rem;
}
.seo-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.75rem 1rem;
  border:1px solid currentColor;
  border-radius:5px;
  color:inherit;
  font-weight:700;
  text-align:center;
}
.seo-microcopy{
  margin-top:.9rem!important;
  color:var(--muted,#666)!important;
  font-size:.78rem!important;
}
.seo-hero-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(1.25rem,2.5vw,1.8rem);
  background:var(--soft-2,#fafafd);
}
.seo-hero-card>span{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
}
.seo-hero-card ol{
  display:grid;
  gap:1rem;
  margin:1rem 0 0;
  padding:0;
  list-style:none;
}
.seo-hero-card li{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:.65rem;
  align-items:start;
  line-height:1.42;
}
.seo-hero-card b{
  padding-top:.25rem;
  border-top:2px solid currentColor;
  font-size:.75rem;
}

/* Article + sidebar */
.seo-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:clamp(1.5rem,3.5vw,2.75rem);
  align-items:start;
}
.seo-article{min-width:0}
.seo-section{
  padding:clamp(1.65rem,3.5vw,2.2rem) 0;
  border-top:1px solid var(--line,#dedee7);
}
.seo-section:first-child{padding-top:0;border-top:0}
.seo-section h2,.seo-note h2,.seo-faq h2,.seo-final-cta h2{
  margin:0 0 1rem;
  font-size:clamp(1.55rem,3vw,2.45rem);
  letter-spacing:-.025em;
}
.seo-section p,.seo-note p,.seo-faq p,.seo-sticky-card p,.seo-final-cta p{
  line-height:1.72;
}
.seo-section p+p,.seo-note p+p{margin-top:.85rem}
.seo-checklist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.35rem 1.4rem;
  margin:1.25rem 0 0;
  padding:0;
  list-style:none;
}
.seo-checklist li{
  position:relative;
  padding:.68rem 0 .68rem 1.55rem;
  border-bottom:1px solid rgba(0,0,0,.07);
}
.seo-checklist li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--ink,#151735);
  font-weight:800;
}

.seo-sidebar{position:relative;min-width:0}
.seo-sticky-card{
  position:sticky;
  top:78px;
  padding:1.5rem;
  box-shadow:var(--shadow-sm,0 4px 18px rgba(0,0,0,.05));
}
.seo-sticky-card .primary{
  width:100%;
  margin-top:.8rem;
  text-align:center;
}

.seo-note{
  margin:.75rem 0 2.5rem;
  padding:1.5rem;
  border-left:4px solid var(--yellow,#ffdf00);
  background:#faf7ef;
}

/* FAQ */
.seo-faq{margin:2.6rem 0}
.seo-faq details{
  padding:1rem 0;
  border-top:1px solid rgba(0,0,0,.13);
}
.seo-faq details:last-child{border-bottom:1px solid rgba(0,0,0,.13)}
.seo-faq summary{
  position:relative;
  padding-right:2rem;
  cursor:pointer;
  font-weight:800;
  line-height:1.42;
}
.seo-faq summary::after{
  content:"+";
  position:absolute;
  right:.2rem;
  top:0;
  font-size:1.15rem;
}
.seo-faq details[open] summary::after{content:"−"}
.seo-faq details p{max-width:72ch;margin:.7rem 0 0;color:var(--muted,#666)}

/* Related */
.seo-related{
  margin-top:clamp(2.8rem,5vw,4rem);
  padding-top:2rem;
  border-top:1px solid rgba(0,0,0,.13);
}
.seo-related .section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.seo-related .section-heading a{text-decoration:underline;text-underline-offset:3px}
.seo-related-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}
.seo-related-card{
  display:flex;
  flex-direction:column;
  gap:.65rem;
  min-height:175px;
  padding:1.2rem;
  border:1px solid var(--line,#dedee7);
  border-radius:10px;
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.seo-related-card>span,.seo-hub-card>span{
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.1em;
}
.seo-related-card strong{font-size:1.08rem;line-height:1.3}
.seo-related-card small{margin-top:auto;font-weight:800}

/* CTA final */
.seo-final-cta{
  margin-top:clamp(2.8rem,5vw,4rem);
  padding:clamp(1.6rem,4vw,3.5rem);
  text-align:center;
  background:var(--soft-2,#fafafd);
}
.seo-final-cta h2{max-width:22ch;margin:.55rem auto .8rem}
.seo-final-cta p{max-width:62ch;margin:0 auto 1.35rem;color:var(--muted,#666)}

/* Hub */
.seo-hub-hero{padding:clamp(1.6rem,4vw,3.6rem) 0 2.5rem}
.seo-hub-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.seo-hub-card{
  padding:1.35rem;
  transition:transform .16s ease,box-shadow .16s ease;
}
.seo-hub-card h2{margin:.55rem 0;font-size:1.3rem;line-height:1.24}
.seo-hub-card h2 a,.seo-hub-card>a{color:inherit}
.seo-hub-card p{color:var(--muted,#5f5f5f);line-height:1.58}
.seo-hub-card>a{display:inline-flex;min-height:44px;align-items:center;margin-top:.35rem;font-weight:800}

/* SEO local */
.local-seo-page .local-context{
  margin-block:1.1rem;
  padding:1rem 1rem 1rem 1.2rem;
  border-left:4px solid var(--yellow,#ffd400);
  border-radius:0 8px 8px 0;
  background:#fffdf1;
}

/* Commune / statut */
.geo-status{
  display:block;
  min-height:1.2em;
  margin-top:.3rem;
  color:#60657a;
  font-size:.8rem;
  line-height:1.4;
}
.geo-status[data-state="success"]{color:#176b3a}
.geo-status[data-state="error"]{color:#9a2c2c}
.geo-status[data-state="loading"]{opacity:.8}
.geo-status[data-state="info"]{color:#4d5578}

/* Consentement Google Ads */
.mpt-consent{
  position:fixed;
  left:max(12px,env(safe-area-inset-left));
  right:max(12px,env(safe-area-inset-right));
  bottom:max(12px,env(safe-area-inset-bottom));
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:min(820px,calc(100% - 24px));
  margin:0 auto;
  padding:1rem 1.1rem;
  border:1px solid var(--line,#d9dce8);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 60px rgba(12,18,46,.18);
}
.mpt-consent[hidden]{display:none!important}
.mpt-consent p{margin:.3rem 0 0;line-height:1.45}
.mpt-consent-actions{display:flex;flex:0 0 auto;gap:.55rem}

/* Hover */
@media (hover:hover){
  .seo-related-card:hover,.seo-hub-card:hover{
    transform:translateY(-2px);
    border-color:#c7c8d3;
    box-shadow:0 14px 32px rgba(0,0,0,.075);
  }
}

/* Tablette */
@media (max-width:1024px){
  .seo-hero,.seo-layout{grid-template-columns:1fr}
  .seo-sticky-card{position:static}
  .seo-sidebar{margin-top:-.5rem}
  .seo-related-grid,.seo-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mobile */
@media (max-width:680px){
  .seo-page{padding-top:1rem}
  .seo-breadcrumb{
    margin-bottom:1rem;
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
    white-space:nowrap;
  }
  .seo-breadcrumb::-webkit-scrollbar{display:none}
  .seo-hero{gap:.75rem;margin-bottom:2rem}
  .seo-hero-copy,.seo-hero-card{padding:1.2rem}
  .seo-hero h1,.seo-hub-hero h1{
    max-width:none;
    font-size:clamp(2rem,11vw,3.35rem);
  }
  .seo-actions{align-items:stretch}
  .seo-actions>*{width:100%}
  .seo-checklist,.seo-related-grid,.seo-hub-grid{grid-template-columns:1fr}
  .seo-related .section-heading{align-items:flex-start;flex-direction:column}
  .seo-related-card{min-height:150px}
  .seo-final-cta{padding:1.4rem 1rem}
  .mpt-consent{
    align-items:stretch;
    flex-direction:column;
    width:auto;
    padding:.9rem;
  }
  .mpt-consent-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .mpt-consent-actions>*{width:100%}
}

/* Petits mobiles */
@media (max-width:420px){
  .seo-hero-copy,.seo-hero-card{padding:1rem}
  .seo-note{padding:1.1rem}
  .seo-sticky-card{padding:1.15rem}
  .seo-related-card{padding:1rem}
  .mpt-consent-actions{grid-template-columns:1fr}
}

/* Réduction des animations */
@media (prefers-reduced-motion:reduce){
  .seo-related-card,.seo-hub-card{transition:none}
  .seo-related-card:hover,.seo-hub-card:hover{transform:none}
}
