/* ===== Pages locales : widgets natifs Elementor (titres, boutons, formulaire, barre mobile). Partagé par toutes les pages villes. ===== */

body:has(.dgc-local) { --ink:#0C0D12; --text:#3C414D; --muted:#6B7180; --sky:#EEF3FC; --line:#E4E7EE; --blue:#006BFF; --blue-deep:#0052C4;
  font-family: "Inter", "Segoe UI", system-ui, sans-serif; color: var(--text); }
body:has(.dgc-local) .elementor-heading-title { font-family: "Sora", "Segoe UI", system-ui, sans-serif !important; color: var(--ink) !important; text-transform: none !important; text-wrap: balance; }
body:has(.dgc-local) .elementor-widget-text-editor, body:has(.dgc-local) .elementor-widget-text-editor p { font-family: "Inter", "Segoe UI", system-ui, sans-serif !important; color: var(--text) !important; font-size: 16px; line-height: 1.65 !important; text-transform: none !important; }
body:has(.dgc-local) .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Haut de page */
body:has(.dgc-local) .dgc-n-crumb, body:has(.dgc-local) .dgc-n-crumb p { font-size: 14px !important; color: var(--muted) !important; }
body:has(.dgc-local) .dgc-n-crumb a { color: var(--muted) !important; text-decoration: none; text-transform: none !important; }
body:has(.dgc-local) .dgc-n-crumb a:hover { color: var(--blue); }
body:has(.dgc-local) .dgc-n-h1 .elementor-heading-title { font-size: clamp(2.6rem, 6.2vw, 4.75rem); line-height: 1.02; font-weight: 600; letter-spacing: -0.035em; }
body:has(.dgc-local) .dgc-n-h1 .elementor-heading-title span { color: var(--blue) !important; display: block; }
body:has(.dgc-local) .dgc-n-intro, body:has(.dgc-local) .dgc-n-intro p { font-size: 1.08rem !important; max-width: 560px; }
body:has(.dgc-local) .dgc-n-free, body:has(.dgc-local) .dgc-n-free p { font-size: 0.9rem !important; color: var(--muted) !important; }
body:has(.dgc-local) .dgc-n-hero-img img { width: 100%; aspect-ratio: 4 / 4.2; object-fit: cover; object-position: 45% 50%; border-radius: 6px; }
body:has(.dgc-local) .dgc-n-hero-img figcaption, body:has(.dgc-local) .dgc-n-hero-img .widget-image-caption { margin-top: 14px; font: 400 0.88rem "Inter", system-ui, sans-serif !important; font-style: normal !important; color: var(--muted) !important; text-align: left !important; }
@media (max-width: 920px) { body:has(.dgc-local) .dgc-n-hero-img img { aspect-ratio: 3 / 2; } }

/* Boutons */
body:has(.dgc-local) .dgc-n-btn .elementor-button { background: var(--blue) !important; color: #fff !important; font: 600 0.98rem "Sora", system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; padding: 15px 24px !important; border-radius: 10px !important; border: 0 !important; transition: background .15s, transform .15s; }
body:has(.dgc-local) .dgc-n-btn .elementor-button:hover { background: var(--blue-deep) !important; transform: translateY(-1px); }
body:has(.dgc-local) .dgc-n-btn-line .elementor-button { background: transparent !important; color: var(--ink) !important; font: 600 0.98rem "Sora", system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; padding: 6px 4px !important; border: 0 !important; border-bottom: 1.5px solid var(--ink) !important; border-radius: 0 !important; box-shadow: none !important; }
body:has(.dgc-local) .dgc-n-btn-line .elementor-button:hover { color: var(--blue) !important; border-color: var(--blue) !important; }

/* Titres de section natifs */
body:has(.dgc-local) .dgc-n-label, body:has(.dgc-local) .dgc-n-label p { font-size: 0.78rem !important; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase !important; color: var(--muted) !important; }
body:has(.dgc-local) .dgc-n-h2 .elementor-heading-title { font-size: clamp(1.8rem, 3.4vw, 2.5rem); line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; }
body:has(.dgc-local) .dgc-n-address { padding-top: 20px; border-top: 1px solid var(--line); } body:has(.dgc-local) .dgc-n-address p { font-size: 0.95rem !important; }
body:has(.dgc-local) .dgc-n-address strong { font-family: "Sora", system-ui, sans-serif; color: var(--ink); font-weight: 600; }
body:has(.dgc-local) .dgc-n-trustindex { margin-top: 16px; max-width: 100%; overflow: hidden; }

/* Bandeau devis */
body:has(.dgc-local) .dgc-n-h2-light .elementor-heading-title { color: #fff !important; font-size: clamp(2rem, 4.4vw, 3.25rem); line-height: 1.05; font-weight: 600; letter-spacing: -0.035em; }
body:has(.dgc-local) .dgc-n-brief-text, body:has(.dgc-local) .dgc-n-brief-text p { color: #C9CDD8 !important; }
body:has(.dgc-local) .dgc-n-brief-text .dgc-n-free-light { color: #fff !important; font-weight: 500; margin-top: 12px; }
body:has(.dgc-local) .dgc-n-form .elementor-field-group > label { color: #9AA0AE !important; font: 400 0.84rem "Inter", system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; }
body:has(.dgc-local) .dgc-n-form .elementor-field-textual, body:has(.dgc-local) .dgc-n-form select { background: rgba(255,255,255,.06) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.16) !important; border-radius: 8px !important; padding: 14px !important; font: 400 1rem "Inter", system-ui, sans-serif !important; }
body:has(.dgc-local) .dgc-n-form select option { color: var(--ink); }
body:has(.dgc-local) .dgc-n-form .elementor-select-wrapper::before { color: #fff; }
body:has(.dgc-local) .dgc-n-form .elementor-button { background: var(--blue) !important; color: #fff !important; font: 600 0.98rem "Sora", system-ui, sans-serif !important; padding: 15px 24px !important; border-radius: 10px !important; border: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }
body:has(.dgc-local) .dgc-n-form .elementor-button:hover { background: var(--blue-deep) !important; }
body:has(.dgc-local) .dgc-n-form .elementor-message { color: #fff; }

/* Appel final */
body:has(.dgc-local) .dgc-n-end { border-top: 1px solid var(--line); }
body:has(.dgc-local) .dgc-n-end .dgc-n-h2 .elementor-heading-title { max-width: 20ch; }

/* Barre fixe mobile : Appeler / Devis gratuit */
body:has(.dgc-local) .dgc-n-mbar { position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 9990; background: rgba(255,255,255,.96); backdrop-filter: blur(8px);
  border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -12px rgba(12,13,18,.25); padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; }
body:has(.dgc-local) .dgc-n-mbar > .e-con-inner, body:has(.dgc-local) .dgc-n-mbar { flex-wrap: nowrap !important; }
body:has(.dgc-local) .dgc-n-mbar .elementor-widget-button { flex: 1 1 0; min-width: 0; margin: 0 !important; }
body:has(.dgc-local) .dgc-n-mbar .elementor-button { display: flex; justify-content: center; width: 100%; font: 600 0.95rem "Sora", system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; padding: 13px 10px !important; border-radius: 10px !important; border: 0 !important; }
body:has(.dgc-local) .dgc-n-mbar-call .elementor-button { background: var(--sky) !important; color: var(--ink) !important; }
body:has(.dgc-local) .dgc-n-mbar-quote .elementor-button { background: var(--blue) !important; color: #fff !important; }
@media (min-width: 768px) { body:has(.dgc-local) .dgc-n-mbar { display: none !important; } }
@media (max-width: 767px) {
  body:has(.dgc-local) { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
  body:has(.dgc-local) .grecaptcha-badge { bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* Bouton WhatsApp flottant masqué sur cette page (la barre fixe le remplace) */
body:has(.dgc-local) .e-contact-buttons { display: none !important; }

/* Ancres : ne pas finir sous l'en-tête collant */
body:has(.dgc-local) #devis, body:has(.dgc-local) #realisations { scroll-margin-top: 90px; }

/* Mobile : aucun défilement horizontal (widget Trustindex plus large que l’écran) */
.elementor:has(.dgc-local) { overflow-x: clip; }

/* Pages « création de site » : visuel du haut cadré entier */
body:has(.dgc-local) .dgc-n-hero-web img { object-fit: contain !important; background: var(--sky); padding: clamp(16px, 3vw, 32px); box-sizing: border-box; }
