/* MCS, gabarit des pages villes. Sans dépendance au thème. */
.mcs-pv-preview { margin: 0; background: #0E0E0E; }
.mcs-pv-page {
  --mcs-pv-bg: #0E0E0E;
  --mcs-pv-panel: #1E1E1E;
  --mcs-pv-text: #E0E0E0;
  --mcs-pv-muted: #B8BDC5;
  --mcs-pv-accent: #FEB95C;
  --mcs-pv-border: #8886;
  background: var(--mcs-pv-bg);
  color: var(--mcs-pv-text);
  font: 400 16px/1.8 "DM Sans", Arial, sans-serif;
  color-scheme: dark;
  overflow-wrap: break-word;
  padding: 24px 20px 64px;
}
.mcs-pv-page *, .mcs-pv-page *::before, .mcs-pv-page *::after { box-sizing: border-box; }
.mcs-pv-page :where(h1,h2,h3,h4,p,ul,ol,dl,dd,figure) { margin: 0; }
.mcs-pv-page :where(h1,h2,h3,h4) { color: #FFF; font-family: inherit; font-weight: 500; text-wrap: balance; }
.mcs-pv-page h1 { font-size: 40px; line-height: 1.15; letter-spacing: -.035em; }
.mcs-pv-page h2 { font-size: 36px; line-height: 1.2; letter-spacing: -.025em; }
.mcs-pv-page h3 { font-size: 25px; line-height: 1.35; letter-spacing: -.015em; }
.mcs-pv-page h4 { font-size: 22px; line-height: 1.4; }
.mcs-pv-page p { max-width: 72ch; }
.mcs-pv-page a { color: var(--mcs-pv-accent); text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
.mcs-pv-page a:hover { color: #FFF; }
.mcs-pv-page :where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--mcs-pv-accent); outline-offset: 4px; }
.mcs-pv-page :where(section,[id]) { scroll-margin-top: 100px; }
.mcs-pv-page img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: cover; background: #1E1E1E; color: #E0E0E0; }
.mcs-pv-shell { width: 100%; max-width: 1160px; margin-inline: auto; }
.mcs-pv-skip { position: absolute; left: 20px; top: -200px; z-index: 50; background: #1E1E1E; padding: 12px 20px; }
.mcs-pv-skip:focus { top: 12px; }
.mcs-pv-breadcrumb { margin-bottom: 30px; font-size: 13px; line-height: 1.65; }
.mcs-pv-breadcrumb ol { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; list-style: none; padding: 0; }
.mcs-pv-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: 12px; color: var(--mcs-pv-muted); }
.mcs-pv-breadcrumb a { color: var(--mcs-pv-muted); }
.mcs-pv-breadcrumb [aria-current] { color: #FFF; }
.mcs-pv-intro-grid { display: grid; gap: 36px; }
.mcs-pv-hero { min-width: 0; }
.mcs-pv-eyebrow { color: var(--mcs-pv-accent); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.mcs-pv-accent { color: var(--mcs-pv-accent); }
.mcs-pv-hero-photo { aspect-ratio: 16/9; border-radius: 20px; margin-block: 26px; }
.mcs-pv-prose > * + * { margin-top: 18px; }
.mcs-pv-prose { max-width: 72ch; }
.mcs-pv-actions { display: flex; align-items: center; gap: 16px 24px; flex-wrap: wrap; margin-top: 26px; }
.mcs-pv-page .mcs-pv-button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 50px; padding: 13px 24px; border-radius: 999px; border: 1px solid transparent; background: var(--mcs-pv-accent); color: #0E0E0E; font: 500 14px/1.4 "DM Sans", Arial, sans-serif; text-decoration: none; cursor: pointer; }
.mcs-pv-page .mcs-pv-button:hover { background: #FFD493; color: #0E0E0E; }
.mcs-pv-shield { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mcs-pv-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 14px; font-weight: 500; }
.mcs-pv-why { margin-top: 44px; border-top: 1px solid var(--mcs-pv-border); padding-top: 30px; }
.mcs-pv-why h2 { margin-bottom: 22px; }
.mcs-pv-definitions { margin-top: 22px; }
.mcs-pv-definitions > div { padding-block: 18px; border-top: 1px solid #303030; }
.mcs-pv-definitions dt { color: #FFF; font-weight: 500; font-size: 18px; margin-bottom: 6px; }
.mcs-pv-definitions dd { max-width: 72ch; }
.mcs-pv-sidebar { display: grid; align-content: start; gap: 16px; min-width: 0; }
.mcs-pv-side-card { padding: 22px; border: 1px solid var(--mcs-pv-border); border-radius: 16px; background: #FFFFFF05; }
.mcs-pv-side-title { color: #FFF; font-size: 18px; line-height: 1.4; font-weight: 500; margin-bottom: 14px; }
.mcs-pv-side-card ul { list-style: none; padding: 0; }
.mcs-pv-side-card li + li { border-top: 1px solid #303030; }
.mcs-pv-side-card li a { display: flex; align-items: center; min-height: 44px; color: var(--mcs-pv-text); font-size: 14px; text-decoration: none; line-height: 1.5; }
.mcs-pv-side-card li a:hover { color: var(--mcs-pv-accent); text-decoration: underline; }
.mcs-pv-contact-card { border-top: 3px solid var(--mcs-pv-accent); background: #1E1E1E; }
.mcs-pv-contact-card address { font-style: normal; font-size: 14px; }
.mcs-pv-contact-card address a { display: inline-flex; min-height: 44px; align-items: center; overflow-wrap: anywhere; }
.mcs-pv-contact-card .mcs-pv-side-title { margin-bottom: 12px; }
.mcs-pv-small { font-size: 13px; line-height: 1.7; color: var(--mcs-pv-muted); }
.mcs-pv-toc { border-top: 1px solid var(--mcs-pv-border); border-bottom: 1px solid var(--mcs-pv-border); margin-top: 48px; padding-block: 12px; }
.mcs-pv-toc ul { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 16px; }
.mcs-pv-toc a { display: flex; align-items: center; min-height: 44px; color: var(--mcs-pv-text); font-size: 14px; text-decoration: none; }
.mcs-pv-toc a:hover { color: var(--mcs-pv-accent); text-decoration: underline; }
.mcs-pv-section { margin-top: 64px; }
.mcs-pv-section-heading { max-width: 760px; margin-bottom: 30px; }
.mcs-pv-section-heading h2 + p { margin-top: 20px; }
.mcs-pv-services-grid { display: grid; align-items: start; gap: 32px; }
.mcs-pv-service-photo { aspect-ratio: 16/9; border-radius: 20px; }
.mcs-pv-services-context > p { margin-top: 20px; }
.mcs-pv-service-list { display: grid; gap: 0; }
.mcs-pv-service { border-top: 1px solid var(--mcs-pv-border); padding-block: 26px; }
.mcs-pv-service:first-child { padding-top: 0; border-top: 0; }
.mcs-pv-service:last-child { padding-bottom: 0; }
.mcs-pv-service h3 { margin-bottom: 14px; }
.mcs-pv-proof { padding: 28px; border-radius: 20px; border: 1px solid var(--mcs-pv-border); background: #FFFFFF05; display: grid; align-items: center; gap: 26px; }
.mcs-pv-proof figure { min-width: 0; }
.mcs-pv-proof img { aspect-ratio: 16/9; border-radius: 12px; }
.mcs-pv-proof figcaption { margin-top: 12px; font-size: 14px; line-height: 1.65; }
.mcs-pv-proof h2 { margin-bottom: 18px; }
.mcs-pv-proof .mcs-pv-link { margin-top: 14px; }
.mcs-pv-local { padding-top: 42px; border-top: 1px solid var(--mcs-pv-border); }
.mcs-pv-local-grid { display: grid; gap: 28px; }
.mcs-pv-local-rail .mcs-pv-small { margin-top: 20px; }
.mcs-pv-local-body { min-width: 0; }
.mcs-pv-local-body > * + * { margin-top: 32px; }
.mcs-pv-local-body h3 { margin-bottom: 18px; }
.mcs-pv-case { border: 1px solid var(--mcs-pv-border); border-left: 3px solid var(--mcs-pv-accent); border-radius: 0 16px 16px 0; padding: 24px; background: #FFFFFF05; }
.mcs-pv-case .mcs-pv-small { margin-top: 14px; }
.mcs-pv-case p + p { margin-top: 16px; }
.mcs-pv-related { margin-top: 26px; }
.mcs-pv-related ul { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; padding: 0; }
.mcs-pv-related a { font-size: 14px; display: inline-flex; align-items: center; min-height: 44px; }
.mcs-pv-faq-grid { display: grid; gap: 24px; }
.mcs-pv-faq-list { min-width: 0; }
.mcs-pv-question { border-bottom: 1px solid var(--mcs-pv-border); }
.mcs-pv-question:first-child { border-top: 1px solid var(--mcs-pv-border); }
.mcs-pv-question summary { display: flex; align-items: baseline; gap: 20px; justify-content: space-between; padding-block: 23px; list-style: none; color: #FFF; font-size: 18px; line-height: 1.5; font-weight: 500; cursor: pointer; }
.mcs-pv-question summary::-webkit-details-marker { display: none; }
.mcs-pv-question summary::after { content: "+"; color: var(--mcs-pv-accent); font-size: 26px; font-weight: 400; line-height: 1; flex-shrink: 0; }
.mcs-pv-question[open] summary::after { content: "−"; }
.mcs-pv-answer { padding: 0 20px 24px 0; max-width: 72ch; }
.mcs-pv-contact { border-top: 1px solid var(--mcs-pv-border); padding-top: 42px; }
.mcs-pv-contact-grid { display: grid; gap: 28px; align-items: start; }
.mcs-pv-form-panel { background: #FFFFFF05; border: 1px solid var(--mcs-pv-border); border-radius: 20px; padding: 22px; min-width: 0; }
.mcs-pv-form-intro { margin-bottom: 24px; }
.mcs-pv-form-intro p + p { margin-top: 10px; }
.mcs-pv-form-panel .elementor-form { margin: 0; }
.mcs-pv-form-panel .elementor-form-fields-wrapper { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; margin: 0; }
.mcs-pv-form-panel .elementor-field-group { display: block; width: auto; padding: 0; margin: 0; min-width: 0; }
.mcs-pv-form-panel .elementor-field-label { display: block; color: #E0E0E0; font: 400 14px/1.5 "DM Sans", Arial, sans-serif; padding: 0; margin: 0 0 8px; }
.mcs-pv-form-panel :where(input:not([type=hidden]),select,textarea).elementor-field-textual { display: block; width: 100%; max-width: 100%; min-height: 50px; margin: 0; border: 1px solid #727272; border-radius: 10px; padding: 12px 14px; background: #1E1E1E; color: #FFF; box-shadow: none; font: 400 16px/1.5 "DM Sans", Arial, sans-serif; }
.mcs-pv-form-panel textarea.elementor-field-textual { min-height: 154px; resize: vertical; }
.mcs-pv-form-panel .elementor-field-textual::placeholder { color: #B8BDC5; opacity: 1; }
.mcs-pv-form-panel .elementor-field-textual:focus { border-color: var(--mcs-pv-accent); }
.mcs-pv-form-panel .elementor-select-wrapper { width: 100%; }
.mcs-pv-form-panel select.elementor-field-textual { appearance: auto; padding-right: 26px; }
.mcs-pv-form-panel .select-caret-down-wrapper { display: none; }
.mcs-pv-form-panel .mcs-feedback-form-notice { color: #B8BDC5; font-size: 13px; line-height: 1.7; margin: 0; }
.mcs-pv-form-panel .mcs-captcha-notice { box-sizing: border-box; width: 100%; padding: 16px; border: 1px solid #727272; border-radius: 10px; background: #1E1E1E; color: #E0E0E0; font: 400 13px/1.7 "DM Sans", Arial, sans-serif; }
.mcs-pv-form-panel .mcs-captcha-notice p + p { margin-top: 10px; }
.mcs-pv-form-panel .mcs-captcha-notice button { border: 1px solid var(--mcs-pv-accent); color: var(--mcs-pv-accent); background: transparent; font: inherit; min-height: 44px; padding: 10px 14px; border-radius: 10px; margin-top: 12px; cursor: pointer; }
.mcs-pv-form-panel .mcs-captcha-notice [hidden] { display: none !important; }
.mcs-pv-form-panel .mcs-captcha-status:empty { display: none; }
.mcs-pv-form-panel .elementor-field-type-submit .elementor-button { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 52px; padding: 14px 22px; border: 0; border-radius: 999px; background: #FEB95C; color: #0E0E0E; font: 500 14px/1.5 "DM Sans", Arial, sans-serif; cursor: pointer; }
.mcs-pv-form-panel .elementor-button-content-wrapper { display: inline-flex; align-items: center; justify-content: center; gap: 16px; }
.mcs-pv-form-panel .elementor-button:hover { background: #FFD493; }
.mcs-pv-form-panel .elementor-button:disabled { opacity: .65; cursor: not-allowed; }
.mcs-pv-form-panel .elementor-message { color: #FFF; border: 1px solid #FEB95C; background: #1E1E1E; border-radius: 10px; padding: 14px; font: inherit; margin-top: 20px; }
.mcs-pv-contact-aside { min-width: 0; }
.mcs-pv-contact-photo { aspect-ratio: 16/9; border-radius: 20px; margin-bottom: 26px; }
.mcs-pv-contact-aside h3 { margin-bottom: 18px; }
.mcs-pv-checklist { margin: 0 0 20px; padding-left: 20px; }
.mcs-pv-checklist li + li { margin-top: 10px; }
.mcs-pv-contact-aside address { font-style: normal; padding-top: 24px; margin-top: 26px; border-top: 1px solid var(--mcs-pv-border); font-size: 14px; }
.mcs-pv-contact-aside address a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.mcs-pv-contact-aside address strong { color: #FFF; font-weight: 500; font-size: 18px; }
/* Les classes mcs-pv-* ajoutées aux conteneurs constituent le contrat Elementor. */
.mcs-pv-page .mcs-pv-native { --width: 100%; --container-widget-width: 100%; min-width: 0; margin: 0; padding: 0; }
.mcs-pv-page .mcs-pv-html { width: 100%; margin: 0; }
.mcs-pv-page .mcs-pv-html > .elementor-widget-container { margin: 0; padding: 0; }
.mcs-pv-page .mcs-pv-sidebar .elementor-widget-heading .elementor-heading-title { color: #FFF; font: 500 18px/1.4 "DM Sans", Arial, sans-serif; }
.mcs-pv-page .mcs-pv-sidebar .elementor-icon-list-text { color: #E0E0E0; font: 400 14px/1.5 "DM Sans", Arial, sans-serif; }
.mcs-pv-page .mcs-pv-sidebar .elementor-icon-list-item > a { min-height: 44px; }
.mcs-pv-page .mcs-pv-sidebar .elementor-icon-list-icon { display: none; }
.mcs-pv-page .mcs-pv-native.mcs-pv-intro-grid,
.mcs-pv-page .mcs-pv-native.mcs-pv-sidebar,
.mcs-pv-page .mcs-pv-native.mcs-pv-contact-grid { display: grid; }
.mcs-pv-page .mcs-pv-native.mcs-pv-hero,
.mcs-pv-page .mcs-pv-native.mcs-pv-form-panel,
.mcs-pv-page .mcs-pv-native.mcs-pv-contact-aside,
.mcs-pv-page .mcs-pv-shell { display: block; }
.mcs-pv-page .mcs-pv-native.mcs-pv-form-panel { padding: 22px; }
.mcs-pv-page .mcs-pv-sidebar .elementor-icon-list-item { border-bottom: 1px solid #303030; }
.mcs-pv-page .mcs-pv-sidebar .elementor-icon-list-item:last-child { border-bottom: 0; }
.mcs-pv-page .mcs-pv-sidebar .elementor-widget-heading { margin-bottom: 14px; }
.mcs-pv-form-panel .elementor-field-type-submit .elementor-button-content-wrapper::after {
  content: ""; width: 20px; height: 20px; flex-shrink: 0; background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 21 7c0 6-3.5 11-9 14C6.5 18 3 13 3 7l9-4Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='m8 12 3 3 5-6' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.mcs-pv-form-panel .elementor-field-type-submit .elementor-button-icon,
.mcs-pv-form-panel .elementor-field-type-submit .mcs-pv-shield { display: none; }
/* Injection globale du mu-plugin feedback, limitée aux pages migrées. */
.mcs-pv-enabled .mcs-feedback-mobile-quote { display: none !important; }
.mcs-pv-enabled:not(.page-id-29434) { padding-bottom: 0; }
.mcs-pv-enabled:not(.page-id-29434) #mcs-privacy-reopen { bottom: calc(12px + env(safe-area-inset-bottom,0px)) !important; }
@media (min-width: 768px) {
  .mcs-pv-page { padding: 32px 32px 88px; }
  .mcs-pv-page h1 { font-size: 50px; }
  .mcs-pv-page h2 { font-size: 42px; }
  .mcs-pv-page h3 { font-size: 27px; }
  .mcs-pv-page h4 { font-size: 23px; }
  .mcs-pv-sidebar { grid-template-columns: 1fr 1fr; }
  .mcs-pv-sidebar .mcs-pv-side-card:last-child { grid-column: 1/-1; }
  .mcs-pv-toc ul { display: flex; flex-wrap: wrap; gap: 8px 36px; }
  .mcs-pv-section { margin-top: 80px; }
  .mcs-pv-proof { grid-template-columns: 1.1fr 1fr; gap: 32px; padding: 32px; }
  .mcs-pv-form-panel { padding: 30px; }
  .mcs-pv-page .mcs-pv-native.mcs-pv-form-panel { padding: 30px; }
  .mcs-pv-form-panel .elementor-form-fields-wrapper { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mcs-pv-form-panel .elementor-field-group { grid-column: 1/-1; }
  .mcs-pv-form-panel .elementor-field-group-name,
  .mcs-pv-form-panel .elementor-field-group-field_06c9123 { grid-column: auto; }
  .mcs-pv-form-panel .mcs-captcha-notice { grid-column: 1/-1; }
}
@media (min-width: 1024px) {
  .mcs-pv-page { padding: 38px 40px 104px; }
  .mcs-pv-page h1 { font-size: 65px; }
  .mcs-pv-page h2 { font-size: 48px; }
  .mcs-pv-page h3 { font-size: 30px; }
  .mcs-pv-page h4 { font-size: 25px; }
  .mcs-pv-breadcrumb { margin-bottom: 42px; }
  .mcs-pv-intro-grid { grid-template-columns: 300px minmax(0,1fr); gap: 48px; }
  .mcs-pv-hero { grid-column: 2; grid-row: 1; }
  .mcs-pv-sidebar { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
  .mcs-pv-sidebar .mcs-pv-side-card:last-child { grid-column: auto; }
  .mcs-pv-side-card { padding: 24px; }
  .mcs-pv-why { margin-top: 40px; }
  .mcs-pv-services-grid { grid-template-columns: 300px minmax(0,1fr); gap: 48px; }
  .mcs-pv-local-grid, .mcs-pv-faq-grid { grid-template-columns: 300px minmax(0,1fr); gap: 48px; }
  .mcs-pv-local-rail { padding-right: 18px; }
  .mcs-pv-local-rail h3 { font-size: 25px; }
  .mcs-pv-faq-grid > .mcs-pv-section-heading h2 { font-size: 36px; }
  .mcs-pv-proof { grid-template-columns: minmax(0,1fr) 400px; gap: 64px; padding: 40px; }
  .mcs-pv-contact-grid { grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); gap: 48px; }
  .mcs-pv-contact-aside { padding-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mcs-pv-page *, .mcs-pv-page *::before, .mcs-pv-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .mcs-pv-page { padding: 0; }
  .mcs-pv-page .mcs-pv-answer { display: block; }
  .mcs-pv-skip { display: none; }
}
/* Additif d'intégration Elementor. La feuille principale mcs-page-ville.css reste la référence
   visuelle et n'est pas modifiée. Les conteneurs reçoivent leurs classes au rendu, par le
   mu-plugin : leurs enfants directs sont les widgets, il n'y a pas de conteneur interne. */

/* Aucun retrait ni gouttière hérités du kit sur les conteneurs du gabarit. */
.mcs-pv-page.e-con, .mcs-pv-page .e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --width: 100%; --content-width: 100%; --min-height: 0;
}
.mcs-pv-page .elementor-widget:not(:last-child) { margin-bottom: 0; }
.mcs-pv-page .elementor-element { min-width: 0; }
.mcs-pv-page .elementor-widget-container { margin: 0; padding: 0; }

/* Le gabarit impose ses propres grilles, par-dessus le display des conteneurs Elementor. */
.mcs-pv-page.mcs-pv-shell, .mcs-pv-page .mcs-pv-shell { display: block; }
.mcs-pv-page .mcs-pv-intro-grid { display: grid; gap: 36px; }
.mcs-pv-page .mcs-pv-contact-grid { display: grid; gap: 26px; }
.mcs-pv-page .mcs-pv-contact { display: block; }
.mcs-pv-page .mcs-pv-form-panel { display: block; }

/* Cellules de la grille d'introduction : le hero et la colonne latérale. */
.mcs-pv-page .mcs-pv-hero, .mcs-pv-page .mcs-pv-sidebar-slot { min-width: 0; }
.mcs-pv-sidebar-inner { display: grid; align-content: start; gap: 16px; min-width: 0; }

/* Colonne d'aide du bloc de devis. */
.mcs-pv-page .mcs-pv-contact-aside { min-width: 0; }
.mcs-pv-contact-aside-inner > h3 { margin-top: 22px; }
.mcs-pv-contact-photo { aspect-ratio: 16/9; border-radius: 16px; width: 100%; height: auto; object-fit: cover; display: block; }
.mcs-pv-contact-aside-inner address { font-style: normal; padding-top: 24px; margin-top: 26px; border-top: 1px solid var(--mcs-pv-border); font-size: 14px; display: block; }
.mcs-pv-contact-aside-inner address strong { color: #FFF; font-weight: 500; font-size: 18px; }
.mcs-pv-contact-aside-inner address a { overflow-wrap: anywhere; }
.mcs-pv-contact-aside-inner > p { margin-bottom: 14px; }
.mcs-pv-contact-aside-inner > ul { margin-bottom: 16px; }

/* Sous-titre de page, conservé depuis le titre WordPress d'origine. */
.mcs-pv-lede { color: var(--mcs-pv-muted); font-size: 18px; line-height: 1.6; margin-top: 10px; max-width: 62ch; }

/* Le formulaire natif garde ses réglages : seule sa présentation est reprise. */
.mcs-pv-page .mcs-pv-form-panel .elementor-widget-form { width: 100%; }
.mcs-pv-page .mcs-pv-form-panel .elementor-form-fields-wrapper { display: grid; gap: 14px; margin: 0; }
.mcs-pv-page .mcs-pv-form-panel .elementor-field-group { padding: 0; width: 100%; max-width: 100%; }
.mcs-pv-page .mcs-pv-form-panel .elementor-field-label { display: block; margin-bottom: 6px; color: var(--mcs-pv-text); font: 400 14px/1.5 "DM Sans", Arial, sans-serif; }
.mcs-pv-page .mcs-pv-form-panel .elementor-field-type-html { color: var(--mcs-pv-muted); font-size: 13px; line-height: 1.7; }
.mcs-pv-page .mcs-pv-form-panel .elementor-message { font-size: 14px; line-height: 1.6; }
.mcs-pv-form-intro { margin-bottom: 18px; }
.mcs-pv-form-intro .mcs-pv-prose > :where(h3, h4) { font-size: 20px; margin-bottom: 8px; }
.mcs-pv-form-intro .mcs-pv-prose p + :where(h3, h4) { margin-top: 16px; }

@media (min-width: 768px) {
  .mcs-pv-page .mcs-pv-contact-grid { gap: 32px; }
}
@media (min-width: 1024px) {
  .mcs-pv-page .mcs-pv-intro-grid { grid-template-columns: 300px minmax(0, 1fr); gap: 48px; }
  .mcs-pv-page .mcs-pv-hero { grid-column: 2; grid-row: 1; }
  .mcs-pv-page .mcs-pv-sidebar-slot { grid-column: 1; grid-row: 1; }
  .mcs-pv-page .mcs-pv-contact-grid { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 48px; }
}

/* Bouton d'envoi : certains widgets portent leur propre fond dans le CSS généré par Elementor,
   plus spécifique que le gabarit. On impose la couleur d'action, sans toucher aux réglages du
   formulaire ni à son comportement. */
body.mcs-pv-enabled .mcs-pv-form-panel .elementor-field-type-submit .elementor-button {
  background-color: #FEB95C !important;
  color: #0E0E0E !important;
  border-color: transparent !important;
}
body.mcs-pv-enabled .mcs-pv-form-panel .elementor-field-type-submit .elementor-button:hover,
body.mcs-pv-enabled .mcs-pv-form-panel .elementor-field-type-submit .elementor-button:focus-visible {
  background-color: #FFC877 !important;
  color: #0E0E0E !important;
}

/* Le header du site est en position fixe et se superpose au contenu : 79 px en mobile,
   95 px en tablette, 93 px sur ordinateur (mesuré le 13/09/2026). Le gabarit réserve la
   place correspondante, et décale les cibles d'ancre pour qu'un titre ne finisse pas caché
   sous le header après un clic dans le sommaire. */
.mcs-pv-page { padding-top: 104px; }
.mcs-pv-page [id] { scroll-margin-top: 96px; }
@media (min-width: 768px) {
  .mcs-pv-page { padding-top: 126px; }
  .mcs-pv-page [id] { scroll-margin-top: 112px; }
}
@media (min-width: 1024px) {
  .mcs-pv-page { padding-top: 130px; }
  .mcs-pv-page [id] { scroll-margin-top: 110px; }
}

/* Centrage de la grille et retraits de page (13/09/2026, matin). La règle
   « .mcs-pv-page .mcs-pv-native { margin: 0 } » ci-dessus est plus spécifique que
   « .mcs-pv-shell { margin-inline: auto } » de la feuille principale : le conteneur de 1160 px
   restait collé au bord gauche sur les écrans plus larges que la grille. Les retraits de la
   page sont repris au même niveau de spécificité, pour ne dépendre ni de l'ordre des feuilles
   ni du kit Elementor. */
body.mcs-pv-enabled .mcs-pv-native.mcs-pv-shell { width: 100%; max-width: 1160px; margin-inline: auto; }
body.mcs-pv-enabled .mcs-pv-native.mcs-pv-page { padding: 104px 20px 64px; }
@media (min-width: 768px) {
  body.mcs-pv-enabled .mcs-pv-native.mcs-pv-page { padding: 126px 32px 88px; }
}
@media (min-width: 1024px) {
  body.mcs-pv-enabled .mcs-pv-native.mcs-pv-page { padding: 130px 40px 104px; }
}
@media print {
  body.mcs-pv-enabled .mcs-pv-native.mcs-pv-page { padding: 0; }
}
