/* siteartisan.fr — design system. Sobre, moderne, crédible (annuaire de référence).
   Palette clin d'œil charte Quickio (prune / magenta / cream), identité propre.
   Polices : stack système (rapide, sans cookie) ; Plus Jakarta Sans self-hosté possible plus tard. */
:root {
  /* Charte siteartisan : orange de marque, fonds clairs neutres. Le texte de
     contenu (--ink) est conservé volontairement (demande Rod). */
  --cream:#F6F5F2; --surface:#fff; --prune:#2c2a27; --prune-soft:#59544d;
  --magenta:#ED7A21; --magenta-dark:#CB640C;   /* variables réutilisées = orange */
  --ink:#241B2E; --muted:#6b6560; --line:#e8e5df;
  --radius:14px; --radius-s:9px; --pad:clamp(1.5rem,5vw,5rem);
  --shadow:0 1px 2px rgba(40,30,20,.05), 0 6px 24px rgba(40,30,20,.07);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:var(--sans); font-size:16px; line-height:1.6; color:var(--ink); background:var(--cream); overflow-x:clip; }
a { color:var(--magenta); text-decoration:none; }
a:hover { text-decoration:underline; }
h1,h2,h3 { line-height:1.2; color:var(--prune); letter-spacing:-.02em; margin:0 0 .6em; }
h1 { font-size:clamp(1.7rem,4vw,2.4rem); font-weight:800; }
h2 { font-size:1.35rem; font-weight:700; margin-top:2rem; }
h3 { font-size:1.1rem; font-weight:700; }
p { margin:0 0 1rem; }
strong { color:var(--prune); }
.sa-wrap { max-width:1900px; margin:0 auto; padding:0 var(--pad); }
.sa-muted { color:var(--muted); }

/* Header */
.sa-header { position:sticky; top:0; z-index:50; background:rgba(246,245,242,.92); backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--line); }
.sa-header-in { display:flex; align-items:center; justify-content:space-between; height:80px; }
.sa-logo { display:inline-flex; align-items:center; }
.sa-logo:hover { text-decoration:none; }
.sa-logo img { height:48px; width:auto; display:block; }
.sa-nav { display:flex; align-items:center; gap:1.4rem; }
.sa-nav a { color:var(--prune-soft); font-weight:600; font-size:.95rem; }
.sa-nav a:hover { color:var(--magenta); text-decoration:none; }
.sa-nav-cta { background:var(--magenta); color:#fff!important; padding:.5rem .95rem; border-radius:var(--radius-s); }
.sa-nav-cta:hover { background:var(--magenta-dark); text-decoration:none!important; }
/* Bouton hamburger — masqué en desktop, révélé en mobile (voir @media 640) */
.sa-burger { display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:10px; margin:-10px; cursor:pointer; border-radius:var(--radius-s); }
.sa-burger span { display:block; height:2px; width:100%; background:var(--prune); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.sa-menu-toggle:checked ~ .sa-burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.sa-menu-toggle:checked ~ .sa-burger span:nth-child(2) { opacity:0; }
.sa-menu-toggle:checked ~ .sa-burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Main / footer */
.sa-main { padding:2.2rem 0 3.5rem; }
.sa-footer { border-top:1px solid var(--line); background:#fff; padding:2rem 0; }
.sa-footer-in { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:start; }
.sa-foot-links { display:flex; flex-wrap:wrap; gap:1.2rem; }
.sa-foot-links a { color:var(--prune-soft); font-weight:600; font-size:.9rem; }

/* Fil d'ariane */
.sa-crumb { font-size:.85rem; color:var(--muted); margin-bottom:1.2rem; }
.sa-crumb a { color:var(--muted); }
.sa-crumb a:hover { color:var(--magenta); }

/* Colonnes de liens (métiers, départements, communes) */
.sa-cols { list-style:none; padding:0; margin:1rem 0; columns:230px 3; column-gap:1.5rem; }
.sa-cols li { break-inside:avoid; padding:.28rem 0; }
.sa-cols a { color:var(--prune-soft); font-weight:600; }
.sa-cols a:hover { color:var(--magenta); }
.sa-count { color:var(--muted); font-size:.78rem; font-weight:400; }

/* Liste d'entreprises */
.sa-list { list-style:none; padding:0; margin:1.2rem 0; }
.sa-item { padding:.85rem 0; border-bottom:1px solid var(--line); }
.sa-item > a { font-weight:700; color:var(--prune); }
.sa-item > a:hover { color:var(--magenta); }
.sa-addr { color:var(--muted); font-size:.88rem; margin-top:.15rem; }
.sa-web { font-size:.72rem; background:#FCEEDD; color:var(--magenta-dark); padding:.12rem .5rem; border-radius:20px; font-weight:700; margin-left:.4rem; white-space:nowrap; }
.sa-web:hover { text-decoration:none; background:#f9e2cc; }

/* Fiche */
.sa-fiche { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; box-shadow:var(--shadow); }
.sa-meta { color:var(--muted); margin:0 0 .5rem; }
.sa-siret { font-variant-numeric:tabular-nums; letter-spacing:.02em; color:var(--prune-soft); }
.sa-map { position:relative; z-index:0; height:360px; width:100%; border:1px solid var(--line); border-radius:var(--radius); }
.sa-fiche-grid { display:grid; gap:1.6rem; }
@media (min-width:720px){
  .sa-fiche-grid.sa-2col { grid-template-columns:minmax(0,1fr) 360px; align-items:stretch; }
  .sa-fiche-grid.sa-2col .sa-fiche-map { position:sticky; top:96px; }
  .sa-fiche-grid.sa-2col .sa-map { height:360px; }
}
.sa-grating { margin:.2rem 0 .6rem; display:flex; align-items:center; gap:.4rem; }
.sa-stars span { color:#d9d4cd; }
.sa-stars span.on { color:#f5a623; }
.sa-gmuted { color:var(--muted); font-size:.85rem; }
.sa-rating-btn { font:inherit; cursor:pointer; background:#FCEEDD; color:var(--magenta-dark); border:1px solid #f3dcc2; padding:.35rem .85rem; border-radius:20px; font-weight:700; font-size:.85rem; }
.sa-rating-btn:hover { background:#f9e2cc; }
.sa-gblock { margin:.2rem 0 .6rem; }
.sa-gblock .sa-grating { margin:0; }
.sa-gcontact { margin:.35rem 0 0; display:flex; flex-wrap:wrap; align-items:center; gap:.15rem .5rem; font-size:.92rem; }
.sa-gcontact a { color:var(--magenta-dark); font-weight:600; text-decoration:none; }
.sa-gcontact a:hover { text-decoration:underline; }
.sa-gtel { font-weight:700 !important; }
.sa-gsep { color:var(--muted); }
.sa-site { margin:1.3rem 0; }
.sa-site a { display:inline-block; padding:.7rem 1.2rem; background:var(--magenta); color:#fff; border-radius:var(--radius-s); font-weight:700; }
.sa-site a:hover { background:var(--magenta-dark); text-decoration:none; }

/* Pagination */
.sa-pager { display:flex; gap:1rem; align-items:center; justify-content:center; margin:1.8rem 0; }
.sa-pager a { font-weight:700; }
.sa-pager span { color:var(--muted); font-size:.9rem; }

/* Maillage interne */
.sa-related { margin:2.4rem 0; padding-top:1.4rem; border-top:1px solid var(--line); }
.sa-related h2 { font-size:1.05rem; margin-top:0; }

/* CTA Quickio */
.sa-cta { margin-top:2.4rem; padding:1.4rem 1.6rem; background:linear-gradient(135deg,#FDF4EA,#FCEEDD); border:1px solid var(--line); border-radius:var(--radius); }
.sa-cta strong { color:var(--magenta-dark); }

/* Home */
.sa-hero { text-align:center; padding:2rem 0 1rem; }
.sa-hero h1 { font-size:clamp(2rem,5vw,3rem); }
.sa-hero p { font-size:1.15rem; color:var(--prune-soft); max-width:640px; margin:0 auto 1.6rem; }
.sa-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.9rem; margin:1.6rem 0; list-style:none; padding:0; }
.sa-grid a { display:block; padding:1rem 1.1rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); font-weight:700; color:var(--prune); box-shadow:var(--shadow); transition:transform .12s ease, border-color .12s ease; }
.sa-grid a:hover { text-decoration:none; transform:translateY(-2px); border-color:var(--magenta); color:var(--magenta); }

.sa-todo { color:#b23; font-size:.8rem; font-style:italic; }

/* Blog — cartes (blog + home) */
.sa-lead { font-size:1.1rem; color:var(--prune-soft); max-width:680px; }
.sa-cards { column-width:340px; column-gap:1.5rem; margin:1.8rem 0; }
.sa-card { display:block; break-inside:avoid; margin:0 0 1.5rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:transform .14s ease, box-shadow .14s ease; }
.sa-card:hover { text-decoration:none; transform:translateY(-3px); box-shadow:0 12px 32px rgba(42,29,58,.13); }
.sa-card-img { display:block; width:100%; height:210px; object-fit:cover; background-color:#efece7; }
.sa-card:nth-child(5n+2) .sa-card-img { height:300px; }
.sa-card:nth-child(5n+3) .sa-card-img { height:175px; }
.sa-card:nth-child(5n+4) .sa-card-img { height:240px; }
.sa-card-body { display:block; padding:1.1rem 1.2rem 1.3rem; }
.sa-card-cat { display:inline-block; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--magenta-dark); background:#FCEEDD; padding:.2rem .55rem; border-radius:20px; }
.sa-card-title { display:block; font-size:1.12rem; font-weight:800; color:var(--prune); line-height:1.25; margin:.6rem 0 .4rem; letter-spacing:-.01em; }
.sa-card-excerpt { display:block; color:var(--muted); font-size:.9rem; line-height:1.5; }
.sa-card-date { display:block; color:var(--muted); font-size:.78rem; margin-top:.7rem; }

/* Home éditoriale */
.sa-home-hero { position:relative; border-radius:var(--radius); overflow:hidden; margin:.4rem 0 2.6rem; min-height:500px; display:flex; align-items:center; background:#2a2622 center/cover no-repeat; background-image:url('/img/home-hero.jpg'); box-shadow:var(--shadow); }
.sa-home-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(24,17,10,.85), rgba(24,17,10,.5) 55%, rgba(24,17,10,.28)); }
.sa-home-hero-inner { position:relative; padding:3rem 2.6rem; max-width:640px; color:#fff; }
.sa-home-hero h1 { color:#fff; font-size:clamp(2rem,4.5vw,3rem); margin-bottom:.55rem; }
.sa-home-hero p { color:rgba(255,255,255,.94); font-size:1.15rem; margin-bottom:1.5rem; }
.sa-hero-editorial { text-align:left; padding:1rem 0 .5rem; }
.sa-hero-editorial h1 { max-width:840px; }
.sa-hero-editorial p { margin:0 0 1rem; max-width:720px; }
.sa-annuaire-strip { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; margin:2.5rem 0 0; padding:1.4rem 1.6rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.sa-annuaire-strip .sa-nav-cta { white-space:nowrap; }

/* Home landing « site pour artisans » */
.sa-hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.sa-btn-light { display:inline-block; padding:.5rem .95rem; border-radius:var(--radius-s); background:rgba(255,255,255,.14); color:#fff!important; font-weight:700; border:1px solid rgba(255,255,255,.45); }
.sa-btn-light:hover { background:rgba(255,255,255,.24); text-decoration:none; }
.sa-lead-in { font-size:1.12rem; color:var(--prune-soft); max-width:72ch; }
.sa-feats { display:grid; grid-template-columns:repeat(auto-fit,minmax(238px,1fr)); gap:1rem; margin:1.3rem 0 2.2rem; list-style:none; padding:0; }
.sa-feat { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.3rem; box-shadow:var(--shadow); }
.sa-feat h3 { margin:0 0 .35rem; color:var(--prune); }
.sa-feat p { margin:0; color:var(--muted); font-size:.93rem; }
.sa-steps { counter-reset:st; list-style:none; padding:0; margin:1.3rem 0 2rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:1rem; }
.sa-steps li { counter-increment:st; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.3rem 1.2rem 3.5rem; position:relative; box-shadow:var(--shadow); }
.sa-steps li::before { content:counter(st); position:absolute; left:1.1rem; top:1.15rem; width:1.75rem; height:1.75rem; background:var(--magenta); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.95rem; }
.sa-steps strong { display:block; color:var(--prune); margin-bottom:.2rem; }
.sa-metier-grid { margin:1.3rem 0 2rem; }

/* Blog : colonne de lecture centrée (pas pleine largeur, contrairement à la home) */
.sa-blog { max-width:760px; margin:0 auto; }
/* Page article */
.sa-article { max-width:none; }
.sa-article h1 { margin:.5rem 0 .3rem; }
.sa-article-meta { color:var(--muted); font-size:.9rem; margin:0 0 1.2rem; }
.sa-article-img { width:100%; height:auto; border-radius:var(--radius); margin:.4rem 0 1.6rem; }
.sa-prose p { margin:0 0 1.1rem; }
.sa-prose h2 { font-size:1.3rem; margin:2rem 0 .7rem; }
.sa-prose ul { margin:0 0 1.2rem; padding-left:1.3rem; }
.sa-prose li { margin:.4rem 0; }
.sa-prose figure { margin:1.6rem 0; }
.sa-prose figure img { width:100%; height:auto; border-radius:var(--radius); display:block; }
.sa-prose figcaption { font-size:.82rem; color:var(--muted); margin-top:.5rem; font-style:italic; }
.sa-prose code { background:#f1efe9; padding:.1rem .35rem; border-radius:5px; font-size:.9em; }
.sa-tablewrap { overflow-x:auto; margin:1.6rem 0; }
.sa-prose table { border-collapse:collapse; width:100%; min-width:520px; font-size:.92rem; }
.sa-prose th, .sa-prose td { border:1px solid var(--line); padding:.55rem .7rem; text-align:left; vertical-align:top; }
.sa-prose thead th { background:#FCEEDD; color:var(--magenta-dark); font-weight:700; }
.sa-prose tbody td:first-child { font-weight:700; color:var(--prune); }

/* Revendication de fiche */
.sa-claim { background:linear-gradient(135deg,#FDF4EA,#FCEEDD); border:1px solid var(--line); border-radius:var(--radius-s); padding:1rem 1.2rem; margin:1.2rem 0 0; }
.sa-claim a { font-weight:700; }
.sa-claimed { color:#2e7d32; font-weight:600; margin-top:1.2rem; }
.sa-claimed.pend { color:var(--muted); }
/* Contenu ajouté par le pro (Tier 2) */
.sa-prodesc { white-space:pre-line; margin:.4rem 0 1rem; line-height:1.65; }
.sa-prohours { white-space:pre-line; }
.sa-social { display:flex; gap:.9rem; margin:.4rem 0 0; }
.sa-social a { font-weight:600; color:var(--magenta-dark); }
/* Admin revendications (/internal/claims) */
.sa-admin-card { border:1px solid var(--line); border-radius:var(--radius-s); padding:1rem 1.2rem; margin:1rem 0; }
.sa-admin-head { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.5rem; }
.sa-admin-body { display:flex; flex-direction:column; gap:.25rem; font-size:.92rem; }
.sa-badge { margin-left:auto; font-size:.75rem; font-weight:700; padding:.1rem .55rem; border-radius:20px; }
.sa-badge.pend { background:#FCEEDD; color:var(--magenta-dark); }
.sa-badge.ok { background:#e6f4ea; color:#2e7d32; }
.sa-sigs { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.3rem; }
.sa-sig { font-size:.8rem; font-weight:700; padding:.1rem .5rem; border-radius:6px; }
.sa-sig.yes { background:#e6f4ea; color:#2e7d32; }
.sa-sig.no { background:#fdecea; color:#b3261e; }
.sa-admin-btn { display:inline-block; margin-top:.7rem; background:var(--magenta); color:#fff; padding:.5rem 1rem; border-radius:var(--radius-s); font-weight:700; }
.sa-admin-btn:hover { background:var(--magenta-dark); text-decoration:none; }
.sa-admin-btn.done { background:#8a8a8a; }
.sa-copy { font:inherit; padding:.55rem .7rem; border:1px solid var(--line); border-radius:var(--radius-s); }
/* Habillage éditorial des hubs métier */
.sa-edito { margin:1.4rem 0 2rem; }
.sa-edito-intro { font-size:1.08rem; line-height:1.72; color:var(--ink); max-width:72ch; }
.sa-services { margin:1.7rem 0; }
.sa-services h2 { margin-bottom:.7rem; }
.sa-chips { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.sa-chips li { background:#FCEEDD; color:var(--magenta-dark); border:1px solid #f3dcc2; padding:.4rem .9rem; border-radius:20px; font-weight:600; font-size:.9rem; }
.sa-edito-cols { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin:1.7rem 0; }
.sa-edito-card { background:var(--cream); border:1px solid var(--line); border-radius:var(--radius-s); padding:1.1rem 1.35rem; }
.sa-edito-card h3 { margin:0 0 .5rem; font-size:1.05rem; }
.sa-edito-card p { margin:0; line-height:1.62; color:var(--muted); }
.sa-faq { margin:2rem 0; }
.sa-faq h2 { margin-bottom:.9rem; }
.sa-faq-item { border:1px solid var(--line); border-radius:var(--radius-s); margin:.55rem 0; background:var(--surface); overflow:hidden; }
.sa-faq-item summary { cursor:pointer; padding:.85rem 2.4rem .85rem 1.1rem; font-weight:700; list-style:none; position:relative; }
.sa-faq-item summary::-webkit-details-marker { display:none; }
.sa-faq-item summary::after { content:'+'; position:absolute; right:1.1rem; top:.8rem; color:var(--magenta); font-weight:700; font-size:1.2rem; }
.sa-faq-item[open] summary::after { content:'\2013'; }
.sa-faq-a { padding:0 1.1rem 1rem; line-height:1.62; color:var(--muted); }
@media(max-width:620px){ .sa-edito-cols { grid-template-columns:1fr; } }
/* Carte dynamique des entreprises (page métier à ville) */
.sa-map-wrap { margin:1.7rem 0; }
.sa-map-wrap h2 { margin-bottom:.7rem; }
.sa-map-list { height:440px; border-radius:var(--radius-s); overflow:hidden; border:1px solid var(--line); position:relative; z-index:0; }
.sa-map-list .leaflet-popup-content { margin:.7rem .9rem; line-height:1.4; }
.sa-map-list .leaflet-popup-content a { color:var(--magenta-dark); font-weight:700; }
@media(max-width:620px){ .sa-map-list { height:340px; } }
/* Page carte de recherche globale */
.sa-carte-form { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; margin:1.3rem 0 .4rem; }
.sa-carte-form select { font:inherit; padding:.6rem .75rem; border:1px solid var(--line); border-radius:var(--radius-s); background:#fff; min-width:200px; flex:1 1 200px; max-width:320px; }
.sa-carte-form select:focus { outline:2px solid var(--magenta); border-color:var(--magenta); }
.sa-carte-form button { flex:0 0 auto; }
.sa-btn-ghost { font:inherit; cursor:pointer; background:#FCEEDD; color:var(--magenta-dark); border:1px solid #f3dcc2; padding:.6rem 1.1rem; border-radius:var(--radius-s); font-weight:700; }
.sa-btn-ghost:hover { background:#f9e2cc; }
.sa-cstatus { min-height:1.4em; margin:.5rem 0 1rem; color:var(--muted); font-size:.92rem; }
.sa-map-carte { height:560px; }
@media(max-width:620px){ .sa-map-carte { height:420px; } }
.sa-showmap { font-size:.85rem; color:var(--magenta-dark); font-weight:600; text-decoration:none; white-space:nowrap; }
.sa-showmap:hover { text-decoration:underline; }
.sa-showmap::before { content:'\25CE'; margin-right:.2em; }
/* Vue scindée carte + liste (page /carte/) */
.sa-split { display:grid; grid-template-columns:1fr 360px; gap:1rem; margin:1rem 0 2rem; }
.sa-map-split { height:640px; }
.sa-split-list { height:640px; overflow-y:auto; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface); }
.sa-split-count { padding:.75rem 1rem; font-weight:700; font-size:.9rem; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--surface); z-index:1; }
.sa-split-item { padding:.7rem 1rem; border-bottom:1px solid var(--line); cursor:pointer; }
.sa-split-item:hover { background:var(--cream); }
.sa-split-name { display:inline-block; font-weight:700; color:var(--ink); text-decoration:none; }
.sa-split-name:hover { color:var(--magenta-dark); text-decoration:underline; }
.sa-split-addr { font-size:.85rem; color:var(--muted); margin-top:.15rem; }
.sa-split-more { padding:.85rem 1rem; font-size:.85rem; color:var(--muted); }
@media(max-width:860px){ .sa-split { grid-template-columns:1fr; } .sa-map-split { height:380px; } .sa-split-list { height:440px; } }
.sa-back { display:inline-block; margin:0 0 1rem; padding:.45rem .9rem; background:#FCEEDD; color:var(--magenta-dark); border:1px solid #f3dcc2; border-radius:20px; font-weight:700; font-size:.9rem; text-decoration:none; }
.sa-back:hover { background:#f9e2cc; }
.sa-form { display:flex; flex-direction:column; gap:1rem; max-width:520px; margin:1.6rem 0; }
.sa-form label { display:flex; flex-direction:column; gap:.35rem; font-weight:600; font-size:.92rem; color:var(--prune); }
.sa-form input, .sa-form textarea { font:inherit; padding:.6rem .75rem; border:1px solid var(--line); border-radius:var(--radius-s); background:#fff; width:100%; }
.sa-form input:focus, .sa-form textarea:focus { outline:2px solid var(--magenta); border-color:var(--magenta); }
.sa-form .sa-check { flex-direction:row; align-items:flex-start; gap:.5rem; font-weight:400; }
.sa-form .sa-check input { width:auto; }
.sa-form button { align-self:flex-start; border:0; cursor:pointer; font:inherit; }
.sa-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.sa-callout { background:linear-gradient(135deg,#FDF4EA,#FCEEDD); border-left:4px solid var(--magenta); padding:1rem 1.2rem; border-radius:0 var(--radius-s) var(--radius-s) 0; margin:1.6rem 0; }
.sa-callout p { margin:0; }
.sa-embed { position:relative; padding-bottom:56.25%; height:0; margin:1.6rem 0; border-radius:var(--radius); overflow:hidden; background:#000; }
.sa-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.sa-vidcap { text-align:center; color:var(--muted); margin-top:-.6rem; }
.sa-back { margin-top:2.4rem; }

@media (max-width:640px) {
  .sa-burger { display:flex; }
  /* Menu déroulant : nav cachée par défaut, révélée au clic sur le burger. */
  .sa-nav {
    position:absolute; top:80px; left:0; right:0;
    display:none; flex-direction:column; align-items:stretch; gap:0;
    background:var(--surface); border-bottom:1px solid var(--line);
    box-shadow:0 14px 30px rgba(42,29,58,.14); padding:.4rem 0;
  }
  .sa-menu-toggle:checked ~ .sa-nav { display:flex; }
  .sa-nav a { padding:.9rem var(--pad); font-size:1.02rem; border-bottom:1px solid var(--line); }
  .sa-nav a:last-child { border-bottom:0; }
  .sa-nav-cta { margin:.7rem var(--pad); padding:.8rem 1rem; text-align:center; border-radius:var(--radius-s); }
  .sa-cols { columns:1; }
  .sa-main { padding:1.5rem 0 2.5rem; }
  .sa-home-hero { min-height:400px; }
  .sa-home-hero-inner { padding:2.2rem 1.6rem; }
}

/* ═══ Observatoire des prix ═══════════════════════════════════ */
.sa-prix-hero { margin-bottom:.5rem; }
.sa-prix-hero .sa-lead { max-width:60ch; }
.sa-prix-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.1rem; margin:1rem 0 2.4rem; }
.sa-prix-cardlink { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:transform .13s ease, box-shadow .13s ease, border-color .13s ease; }
.sa-prix-cardlink:hover { text-decoration:none; transform:translateY(-3px); border-color:var(--magenta); box-shadow:0 12px 30px rgba(42,29,58,.14); }
.sa-prix-cardlink-img { display:block; }
.sa-prix-cardlink-img img { display:block; width:100%; height:150px; object-fit:cover; background:#efece7; }
.sa-prix-cardlink-body { display:flex; flex-direction:column; gap:.2rem; padding:.85rem 1.05rem 1rem; }
.sa-prix-cardlink-t { font-weight:800; color:var(--prune); font-size:1.05rem; }
.sa-prix-cardlink-s { font-size:.85rem; color:var(--magenta-dark); font-weight:600; }

/* Héros image (index + détail) */
.sa-prix-hero-img { background-size:cover; background-position:center; border-radius:var(--radius); overflow:hidden; margin-bottom:1.8rem; }
.sa-prix-hero-img .sa-prix-hero-in { padding:clamp(1.8rem,4vw,3.2rem); max-width:none; }
.sa-prix-hero-img h1 { color:#fff; }
.sa-prix-hero-img .sa-lead { color:rgba(255,255,255,.92); max-width:60ch; margin-bottom:0; }
.sa-prix-hero-img .sa-lead strong { color:#fff; }
.sa-prix-hero-photo { display:block; width:100%; height:clamp(220px,34vw,360px); object-fit:cover; border-radius:var(--radius); background:#efece7; margin:.4rem 0 1.4rem; }

/* Hero image générique (annuaire, etc.) — même traitement que le hero prix. */
.sa-hero-img { background-size:cover; background-position:center; border-radius:var(--radius); overflow:hidden; margin-bottom:1.8rem; }
.sa-hero-img .sa-hero-in { padding:clamp(1.8rem,4vw,3.2rem); }
.sa-hero-img h1 { color:#fff; margin-top:0; }
.sa-hero-img .sa-lead { color:rgba(255,255,255,.92); max-width:62ch; }
.sa-hero-img .sa-lead strong { color:#fff; }
.sa-hero-img .sa-nav-cta { display:inline-block; margin-top:.4rem; }

.sa-prix-page { max-width:900px; }
.sa-prix-updated { font-size:.82rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; font-weight:700; margin:-.3rem 0 1rem; }
.sa-prix-page .sa-lead { max-width:66ch; }

/* Tableau tarifaire */
.sa-prix-table { border-collapse:collapse; width:100%; min-width:560px; font-size:.93rem; }
.sa-prix-table thead th { text-align:right; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); padding:.5rem .7rem; border-bottom:2px solid var(--line); }
.sa-prix-table thead th:first-child { text-align:left; }
.sa-prix-table tbody th { text-align:left; font-weight:600; color:var(--prune); padding:.7rem .7rem; border-bottom:1px solid var(--line); vertical-align:top; }
.sa-prix-table tbody td { text-align:right; padding:.7rem .7rem; border-bottom:1px solid var(--line); white-space:nowrap; color:var(--prune-soft); }
.sa-prix-table tbody tr:hover { background:var(--cream); }
.sa-prix-avg { font-weight:800; color:var(--prune)!important; }
.sa-prix-unit { color:var(--muted); font-size:.85rem; }
.sa-prix-note { display:block; font-weight:400; font-size:.8rem; color:var(--muted); margin-top:.15rem; }

.sa-prix-regional { margin:1.4rem 0; padding:1rem 1.2rem; background:#FDF4EA; border:1px solid var(--line); border-left:4px solid var(--magenta); border-radius:var(--radius-s); font-size:.95rem; }
.sa-prix-sources { font-size:.8rem; color:var(--muted); margin:1rem 0 0; }
.sa-prix-sources a { color:var(--prune-soft); text-decoration:underline; }

/* Estimateur */
.sa-estim { margin:1.6rem 0 2rem; padding:1.4rem 1.5rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.sa-estim h2 { margin-top:0; font-size:1.2rem; }
.sa-estim-form { display:flex; flex-wrap:wrap; gap:1rem; margin:.8rem 0; }
.sa-estim-form label { display:flex; flex-direction:column; gap:.3rem; font-size:.82rem; font-weight:700; color:var(--prune-soft); }
.sa-estim-form select, .sa-estim-form input { font:inherit; font-weight:500; padding:.6rem .7rem; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--cream); color:var(--ink); }
.sa-estim-form select { min-width:min(360px,80vw); }
.sa-estim-form input { width:120px; }
.sa-estim-out { margin-top:.4rem; }
.sa-estim-line { font-weight:600; color:var(--prune); margin-bottom:.6rem; }
.sa-estim-unit { color:var(--muted); font-weight:400; font-size:.85rem; }
.sa-estim-range { display:flex; gap:.6rem; flex-wrap:wrap; }
.sa-estim-band { flex:1; min-width:110px; display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.7rem .5rem; background:var(--cream); border-radius:var(--radius-s); border:1px solid var(--line); }
.sa-estim-band-avg { background:linear-gradient(135deg,#FDF4EA,#FCEEDD); border-color:var(--magenta); }
.sa-estim-lab { font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:800; }
.sa-estim-band-avg .sa-estim-lab { color:var(--magenta-dark); }
.sa-estim-val { font-size:1.25rem; font-weight:800; color:var(--prune); }
.sa-estim-disc { font-size:.78rem; color:var(--muted); margin:.9rem 0 0; }

/* CTA doubles (particulier / artisan) */
.sa-prix-ctas { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2rem 0; }
.sa-prix-cta { display:flex; flex-direction:column; gap:.3rem; padding:1.2rem 1.3rem; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow); transition:transform .13s ease; }
.sa-prix-cta:hover { text-decoration:none; transform:translateY(-2px); }
.sa-prix-cta strong { color:var(--prune); font-size:1.05rem; }
.sa-prix-cta span { color:var(--muted); font-size:.9rem; }
.sa-prix-cta-pro { background:linear-gradient(135deg,#FDF4EA,#FCEEDD); }
.sa-prix-cta-pro strong { color:var(--magenta-dark); }
.sa-edito-more { margin:.6rem 0 0; font-weight:600; font-size:.9rem; }

@media (max-width:640px) {
  .sa-prix-ctas { grid-template-columns:1fr; }
  .sa-estim-form select { min-width:100%; }
}

/* ═══ Outils / calculateurs ═══════════════════════════════════ */
.sa-outil { max-width:900px; }
.sa-outil-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.1rem; margin:1.4rem 0 2rem; }
.sa-outil-card { display:flex; flex-direction:column; gap:.35rem; padding:1.3rem 1.4rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); transition:transform .13s ease, box-shadow .13s ease, border-color .13s ease; }
.sa-outil-card:hover { text-decoration:none; transform:translateY(-3px); border-color:var(--magenta); box-shadow:0 12px 30px rgba(42,29,58,.14); }
.sa-outil-ic { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:12px; background:#FCEEDD; color:var(--magenta-dark); margin-bottom:.2rem; }
.sa-outil-card-t { font-weight:800; color:var(--prune); font-size:1.1rem; }
.sa-outil-card-d { color:var(--muted); font-size:.9rem; line-height:1.5; }

/* Formulaire d'outil (réutilise l'habillage de l'estimateur) */
.sa-outil-form { display:flex; flex-wrap:wrap; gap:1rem; margin:.4rem 0 1rem; align-items:flex-end; }
.sa-outil-form label { display:flex; flex-direction:column; gap:.3rem; font-size:.82rem; font-weight:700; color:var(--prune-soft); }
.sa-outil-form input, .sa-outil-form select { font:inherit; font-weight:500; padding:.6rem .7rem; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--cream); color:var(--ink); }
.sa-outil-form input[type=number] { width:150px; }
.sa-btn { font:inherit; font-weight:700; cursor:pointer; padding:.65rem 1.2rem; border:0; border-radius:var(--radius-s); background:var(--magenta); color:#fff; }
.sa-btn:hover { background:var(--magenta-dark); }

/* TVA */
.sa-tva-rate { font-size:1.15rem; color:var(--prune); margin:.2rem 0 .3rem; }
.sa-tva-rate strong { color:var(--magenta-dark); font-size:1.4rem; }
.sa-tva-why { color:var(--muted); font-size:.92rem; margin:0 0 .8rem; max-width:60ch; }

/* Estimateur travaux (lignes du devis) */
.sa-estim-tr-form { align-items:flex-end; }
.sa-estim-tr-form select { min-width:min(280px,72vw); }
.sa-estim-tr-lines { margin:.6rem 0 1rem; }
.sa-tr-line { display:flex; align-items:center; gap:.7rem; padding:.55rem .2rem; border-bottom:1px solid var(--line); }
.sa-tr-lbl { flex:1; color:var(--prune); font-size:.95rem; }
.sa-tr-lbl .sa-estim-unit { display:block; color:var(--muted); font-weight:400; font-size:.8rem; }
.sa-tr-val { font-weight:800; color:var(--prune); white-space:nowrap; }
.sa-tr-del { font:inherit; cursor:pointer; border:0; background:#f3e6e6; color:#b23; width:26px; height:26px; border-radius:50%; line-height:1; font-size:1rem; }
.sa-tr-del:hover { background:#eccfcf; }

/* Simulateur d'aides : chip de profil de revenus */
.sa-ai-cat { display:inline-block; padding:.4rem .9rem; border-radius:20px; font-size:.95rem; margin:.2rem 0 .5rem; border:1px solid var(--line); }
.sa-ai-cat strong { font-weight:800; }
.sa-ai-bleu   { background:#e8f0fb; color:#1c4e8a; border-color:#c9ddf5; }
.sa-ai-jaune  { background:#fdf4d8; color:#8a6a12; border-color:#f2e4b0; }
.sa-ai-violet { background:#efe6f7; color:#6a3d97; border-color:#ddccee; }
.sa-ai-rose   { background:#fce8ee; color:#a83258; border-color:#f4cdd9; }
#ai-qty-wrap { display:none; }

/* ═══ Modèles téléchargeables ═══════════════════════════════════ */
.sa-dl { display:flex; flex-wrap:wrap; gap:.8rem; margin:1.2rem 0 1.6rem; }
.sa-dl-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1.2rem; border-radius:var(--radius-s); font-weight:700; background:var(--magenta); color:#fff; border:1px solid var(--magenta); }
.sa-dl-btn:hover { background:var(--magenta-dark); border-color:var(--magenta-dark); text-decoration:none; }
.sa-dl-btn svg { width:20px; height:20px; }
.sa-dl-btn-2 { background:var(--surface); color:var(--magenta-dark); border-color:var(--line); }
.sa-dl-btn-2:hover { background:#FCEEDD; color:var(--magenta-dark); border-color:var(--magenta); }
.sa-quote { margin:1rem 0; padding:1rem 1.3rem; border-left:4px solid var(--magenta); background:#FDF4EA; border-radius:var(--radius-s); font-style:italic; color:var(--prune); }

/* ═══ Guides réglementaires ═══════════════════════════════════ */
.sa-guide { max-width: 820px; }
.sa-guide-key { margin: 1.2rem 0 1.6rem; padding: 1.1rem 1.4rem; background: #FDF4EA; border: 1px solid var(--line); border-left: 4px solid var(--magenta); border-radius: var(--radius-s); }
.sa-guide-key h2 { margin: 0 0 .5rem; font-size: 1rem; color: var(--magenta-dark); }
.sa-guide-key ul { margin: 0; padding-left: 1.2rem; }
.sa-guide-key li { margin: .3rem 0; font-size: .95rem; }
.sa-guide-sec { margin: 1.6rem 0; }
.sa-guide-sec h2 { margin-bottom: .4rem; }

/* ═══ Hero image partout + centrage des pages détail ═══════════ */
/* Fil d'ariane à l'intérieur d'un hero sombre : passe en blanc. */
.sa-hero-img .sa-crumb { color:rgba(255,255,255,.8); margin:0 0 .7rem; }
.sa-hero-img .sa-crumb a { color:rgba(255,255,255,.8); }
.sa-hero-img .sa-crumb a:hover { color:#fff; }
.sa-hero-img .sa-hero-in { max-width:1000px; }
.sa-hero-img.sa-hero-metier .sa-hero-in { max-width:none; }

/* Centrage du contenu des pages DÉTAIL (choix Rod) : la colonne se place au
   milieu du wrap au lieu d'être collée à gauche. Les hubs/listings (accueil,
   /prix/, /modeles/, /guides/, annuaire) n'utilisent pas ces classes → inchangés. */
.sa-prix-page, .sa-outil, .sa-guide { margin-left:auto; margin-right:auto; }

/* ═══ Footer enrichi (multi-colonnes) ═══════════════════════════ */
.sa-footer { padding:3rem 0 1.5rem; }
.sa-footer-grid { display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:2rem; }
.sa-foot-brand .sa-logo img { height:40px; }
.sa-foot-brand p { margin:.85rem 0 1.1rem; font-size:.9rem; color:var(--muted); max-width:34ch; }
.sa-foot-brand .sa-nav-cta { display:inline-block; }
.sa-foot-col h3 { font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--prune); margin:0 0 .7rem; }
.sa-foot-col a { display:block; color:var(--prune-soft); font-size:.9rem; padding:.24rem 0; font-weight:500; }
.sa-foot-col a:hover { color:var(--magenta); text-decoration:none; }
.sa-foot-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem 1.4rem; margin-top:2.2rem; padding-top:1.2rem; border-top:1px solid var(--line); font-size:.82rem; color:var(--prune-soft); }
.sa-foot-bottom a { color:var(--prune-soft); text-decoration:underline; }
.sa-foot-bottom a:hover { color:var(--magenta); }
@media (max-width:760px){
  .sa-footer-grid { grid-template-columns:1fr 1fr; gap:1.6rem; }
  .sa-foot-brand { grid-column:1 / -1; }
}
@media (max-width:440px){ .sa-footer-grid { grid-template-columns:1fr; } }
