/* =========================================================
   seo-local-agence — pages agences du referencement local
   ---------------------------------------------------------
   Le chrome commun (charte, boutons, header, mega-menus,
   menu mobile, footer) vit dans assets/site.css ; les patrons
   partages (hero-points, steps, feat-list, contact-info,
   cta-band, faq) dans assets/layout.css.

   Partage par /menuiserie-vitrolles, /menuiserie-aubagne et
   le hub /zones-intervention : uniquement des regles de mise
   en page, aucun contenu propre a un showroom.
   ========================================================= */

/* ============ PLACEHOLDERS IMAGE ============ */
.ph{position:relative;overflow:hidden;border-radius:var(--radius);background:repeating-linear-gradient(135deg, rgba(248,182,138,.18) 0 14px, rgba(248,182,138,.06) 14px 28px),linear-gradient(160deg,#e9dcc9,#d8c6ad);display:flex;align-items:flex-end;min-height:200px;color:var(--navy);border:1px solid var(--line)}
.ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}

/* ============ SECTIONS GÉNÉRIQUES ============ */
.section{padding:80px 0}
.section-head{max-width:64ch;margin-bottom:40px}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.5rem);margin:12px 0}
.audience-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem;border-radius:100px;font-family:var(--font-title);font-weight:700;font-size:.82rem;background:var(--blue-light);color:var(--navy)}

/* Nom composé : sans cela, un titre se coupe au trait d'union. */
.nowrap{white-space:nowrap}

/* ============ HERO ============ */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:72px 24px 80px;position:relative;z-index:1}
.hero h1{color:#fff;font-size:clamp(2.1rem,4.4vw,3.2rem);margin:14px 0 18px;max-width:17ch}
.hero p.lead{font-size:clamp(1.02rem,1.6vw,1.16rem);color:rgba(255,255,255,.86);max-width:50ch;margin-bottom:28px}

/* ============ SECTION 1 : familles de produits ============
   Même carte que le catalogue de l'accueil (assets/pages/index.css),
   pour que le visiteur retrouve un objet connu. */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(27,51,79,.12)}
.card .ph{border-radius:0;min-height:190px;border:none;border-bottom:1px solid var(--line)}
.card-body{padding:22px;display:flex;flex-direction:column;flex:1}
.card-body h3{font-size:1.25rem;margin-bottom:8px}
.card-body p{color:var(--muted);font-size:.96rem}
/* margin-top:auto aligne les liens en bas de carte, quelle que soit
   la longueur du texte au-dessus. */
.card-body .more{margin-top:auto;padding-top:14px;color:var(--accent);font-weight:600;font-family:var(--font-title)}
.card-body .more:hover{text-decoration:underline}

/* ============ SECTION 2 : ce qui compte localement ============ */
.local{background:var(--cream-2)}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.value{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.value .ico{width:52px;height:52px;border-radius:14px;background:var(--cream-2);color:var(--accent);display:grid;place-items:center;margin-bottom:16px}
.value h3{font-size:1.16rem;margin-bottom:8px}
.value p{color:var(--muted);font-size:.95rem}

/* ============ SECTION 4 : professionnels ============ */
.pro-split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.pro-split h2{font-size:clamp(1.8rem,3.2vw,2.4rem);margin:12px 0 14px}
.pro-intro{color:var(--muted);font-size:1.05rem}
.pro-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.pro-split .feat-list{background:#fff;border:1px solid #d7e0ee;border-radius:var(--radius);padding:26px;margin-top:0}

/* ============ SECTION 5 : infos pratiques ============
   Reprend le bloc coordonnées de la page contact (classes
   contact-info / info-item / map de layout.css). */
.infos-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:stretch}
.infos-grid .btn{align-self:flex-start;margin-top:6px}
.infos-grid .map iframe{height:100%;min-height:320px}

/* ============ SECTION 6 : avis Google ============
   avis.js vide le conteneur si l'API ne répond pas. Sans cette
   règle, le titre resterait seul au-dessus d'un grand vide : la
   section ne s'affiche que lorsque des avis ont été insérés. */
#avis:has(.avis-mur:empty){display:none}

/* ============ SECTION 7 : communes desservies ============ */
.communes{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.communes li{background:#fff;border:1px solid var(--line);border-radius:100px;padding:.5rem 1rem;font-weight:500;color:var(--navy)}
.zone-autre{margin-top:24px;color:var(--muted)}
.zone-autre a{color:var(--accent);font-weight:600}
.zone-autre a:hover{text-decoration:underline}

/* ============ PAGE AUBAGNE ============
   Familles en liens courts (comme les pages communes) : les cartes
   décrites de Vitrolles, recopiées ici, en feraient un doublon. */
.fam-links{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.fam-link{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 18px;font-family:var(--font-title);font-weight:700;color:var(--navy);transition:border-color .15s ease,transform .15s ease}
.fam-link:hover{border-color:var(--accent);transform:translateY(-2px)}
.fam-link .ico{flex:none;width:42px;height:42px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center}
.local-note{margin-top:26px;max-width:72ch;color:var(--navy)}
.texte-projet{max-width:72ch;font-size:1.06rem;color:var(--muted)}
.showroom-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}

/* ============ HUB ZONES D'INTERVENTION ============ */
.zones-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.zone-carte{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:16px}
.zone-carte h2{font-size:clamp(1.5rem,2.6vw,1.9rem)}
.zone-carte .adresse{color:var(--muted);font-size:.96rem}
.zone-carte .communes{margin-top:4px}
.zone-carte .btn{align-self:flex-start;margin-top:auto}
/* Une commune dont la page existe devient un lien, signalé par l'accent. */
.communes a{color:var(--accent);font-weight:600}
.communes li:has(a){border-color:var(--accent)}
.communes a:hover{text-decoration:underline}

/* ============ SECTION 8 : bandeau CTA ============
   Le texte est plus long que sur les pages produits : sans
   flex:1, il réclame toute la largeur et renvoie le bouton à
   la ligne sur grand écran. */
.cta-band .inner > div{flex:1;min-width:280px}

/* ============ RESPONSIVE ============ */
@media (max-width:980px){
  .hero-grid,.pro-split,.infos-grid{grid-template-columns:1fr;gap:34px}
  .cards,.values,.fam-links{grid-template-columns:repeat(2,1fr)}
  .zones-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .section{padding:56px 0}
  .hero-grid{padding:44px 24px 52px}
  .cards,.values,.fam-links{grid-template-columns:1fr}
  .infos-grid .map iframe{min-height:240px}
}
