/* =====================================================
   STYLE.CSS — DÉMARCHECO
   Version complète corrigée
   Header + Footer + Accueil + Mairie + DP + Cerfa + Incomplet + DP en ligne + PPV
   Avec corrections mobile / responsive
   ===================================================== */

:root {
  --dc-blue: #102A43;
  --dc-blue-dark: #071d34;
  --dc-blue-soft: #173B5C;
  --dc-green: #68b914;
  --dc-green-dark: #559b10;
  --dc-green-alt: #0f8f68;
  --dc-green-alt-dark: #08795f;
  --dc-orange: #F5A623;
  --dc-text: #102A43;
  --dc-muted: #475569;
  --dc-border: #d9e2ec;
  --dc-bg: #f6f8fb;
  --dc-white: #ffffff;
  --dc-soft-green: #ECFDF5;
  --dc-soft-blue: #EAF4FF;
  --dc-soft-orange: #fff7ed;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--dc-text);
  background: var(--dc-bg);
  overflow-x: hidden;
}

a {
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
}

/* =====================================================
   HEADER
   ===================================================== */

.dc-header {
  width: 100%;
  background: #ffffff;
  border-bottom: 1px solid #eeeeee;
  position: sticky;
  top: 0;
  z-index: 9999;
  font-family: Arial, Helvetica, sans-serif;
}

.dc-nav-wrap {
  max-width: 1320px;
  margin: 0 auto;
  padding: 10px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.dc-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}

.dc-logo img {
  height: 72px;
  width: auto;
  max-width: 270px;
  display: block;
  object-fit: contain;
}

.dc-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex: 1;
}

.dc-menu a {
  color: #111111;
  text-decoration: none;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 1px;
  white-space: nowrap;
  transition: 0.2s ease;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.dc-menu a:hover,
.dc-menu a.active {
  color: var(--dc-green);
}

.dc-menu-item {
  position: relative;
  padding: 28px 0;
}

.dc-menu-item > a::after {
  content: "▾";
  font-size: 10px;
  color: var(--dc-green);
  margin-left: 7px;
}

.dc-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 285px;
  background: #ffffff;
  border: 1px solid #e8e8e8;
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(0,0,0,0.13);
  padding: 10px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: 0.2s ease;
  z-index: 99999;
}

.dc-menu-item:hover .dc-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dc-dropdown a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 13px 18px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: #222222;
}

.dc-dropdown a:hover,
.dc-dropdown a.active {
  background: #f6fbef;
  color: var(--dc-green);
}

.dc-call {
  background: #4f970f;
  color: #ffffff !important;
  padding: 14px 22px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: 0.2s ease;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.dc-call:hover {
  background: #3f7c0b;
  transform: translateY(-1px);
}

.dc-burger {
  display: none;
  background: #4f970f;
  color: #ffffff;
  border: none;
  border-radius: 10px;
  padding: 11px 15px;
  font-size: 22px;
  cursor: pointer;
  min-height: 44px;
  min-width: 44px;
}

#dc-menu-toggle {
  display: none;
}

.dc-menu-mobile-call {
  display: none !important;
}

/* =====================================================
   FOOTER
   ===================================================== */

.dc-footer-pro {
  width: 100%;
  background: var(--dc-blue-dark);
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  margin-top: 0;
}

.dc-footer-pro * {
  box-sizing: border-box;
}

.dc-footer-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

.dc-footer-top {
  padding: 54px 0 38px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.dc-footer-cta {
  background:
    radial-gradient(circle at top right, rgba(104,185,20,0.24), transparent 34%),
    linear-gradient(135deg, #0f2f4e, #102a43);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 28px;
  padding: 34px;
  display: grid;
  grid-template-columns: 1.3fr auto;
  gap: 28px;
  align-items: center;
  box-shadow: 0 24px 60px rgba(0,0,0,0.18);
}

.dc-footer-cta h2 {
  color: #ffffff;
  font-size: 32px;
  line-height: 1.15;
  margin: 0 0 12px;
  font-weight: 900;
}

.dc-footer-cta p {
  color: #dbeafe;
  font-size: 16px;
  line-height: 1.65;
  margin: 0;
  max-width: 780px;
}

.dc-footer-cta-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.dc-footer-btn-main,
.dc-footer-btn-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  border-radius: 12px;
  font-weight: 900;
  font-size: 14px;
  white-space: nowrap;
  transition: 0.2s ease;
  min-height: 44px;
  min-width: 44px;
}

.dc-footer-btn-main {
  background: var(--dc-green-alt-dark);
  color: #ffffff !important;
}

.dc-footer-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.dc-footer-btn-light {
  background: #ffffff;
  color: var(--dc-blue) !important;
}

.dc-footer-btn-light:hover {
  background: #f4f8ef;
  transform: translateY(-2px);
}

.dc-footer-main {
  padding: 48px 0 34px;
}

.dc-footer-grid {
  display: grid;
  grid-template-columns: 1.45fr 1fr 1fr 1fr;
  gap: 44px;
  align-items: start;
}

.dc-footer-logo-box {
  display: inline-flex;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px 18px;
  margin-bottom: 20px;
  box-shadow: 0 16px 34px rgba(0,0,0,0.20);
}

.dc-footer-logo-box img {
  height: 82px;
  width: auto;
  max-width: 310px;
  object-fit: contain;
  display: block;
}

.dc-footer-intro {
  color: #dbeafe;
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 22px;
  max-width: 430px;
}

.dc-footer-highlight {
  display: grid;
  gap: 9px;
  margin-top: 18px;
}

.dc-footer-highlight span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
}

.dc-footer-highlight b {
  color: var(--dc-green);
  font-size: 16px;
}

.dc-footer-col h3 {
  color: #ffffff;
  font-size: 15px;
  font-weight: 900;
  margin: 0 0 18px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.dc-footer-col a {
  display: flex;
  align-items: center;
  min-height: 34px;
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.45;
  margin-bottom: 8px;
  transition: 0.2s ease;
}

.dc-footer-col a:hover {
  color: var(--dc-green);
  transform: translateX(4px);
}

.dc-footer-contact-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  padding: 20px;
}

.dc-footer-contact-card h3 {
  margin-bottom: 14px;
}

.dc-footer-contact-card p {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 14px;
}

.dc-footer-contact-card a {
  color: #ffffff;
  min-height: 34px;
  display: flex;
  align-items: center;
}

.dc-footer-mini-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: var(--dc-green-alt-dark);
  color: #ffffff !important;
  padding: 13px 18px;
  border-radius: 12px;
  font-weight: 900;
  margin-top: 8px;
  width: 100%;
  text-align: center;
  min-height: 44px;
}

.dc-footer-mini-btn:hover {
  background: #065f46;
  transform: none !important;
}

.dc-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.10);
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  color: #dbeafe;
  font-size: 13px;
}

.dc-footer-bottom-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.dc-footer-bottom-links a {
  color: #dbeafe;
  font-size: 13px;
  min-height: 34px;
  display: flex;
  align-items: center;
}

.dc-footer-bottom-links a:hover {
  color: var(--dc-green);
}

/* =====================================================
   BASE COMMUNE DES PAGES SEO
   ===================================================== */

.homepro,
.dm2,
.dpw,
.cerfa,
.inc,
.dpl,
.ppv {
  font-family: Arial, Helvetica, sans-serif;
  background: var(--dc-bg);
  color: var(--dc-text);
  width: 100%;
  overflow: hidden;
}

.homepro *,
.dm2 *,
.dpw *,
.cerfa *,
.inc *,
.dpl *,
.ppv * {
  box-sizing: border-box;
}

.homepro-container,
.dm2-container,
.dpw-container,
.cerfa-container,
.inc-container,
.dpl-container,
.ppv-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.homepro a,
.dm2 a,
.dpw a,
.cerfa a,
.inc a,
.dpl a,
.ppv a {
  text-decoration: none;
  color: var(--dc-green-alt);
  font-weight: 900;
}

.homepro-label,
.dm2-label,
.dpw-label,
.cerfa-label,
.inc-label,
.dpl-label,
.ppv-label {
  color: var(--dc-green-alt);
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.homepro h1,
.dm2 h1,
.dpw h1,
.cerfa h1,
.inc h1,
.dpl h1,
.ppv h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: var(--dc-blue);
  font-weight: 900;
  letter-spacing: -1.8px;
}

.homepro h2,
.dm2 h2,
.dpw h2,
.cerfa h2,
.inc h2,
.dpl h2,
.ppv h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: var(--dc-blue);
  font-weight: 900;
  letter-spacing: -1px;
}

.homepro h3,
.dm2 h3,
.dpw h3,
.cerfa h3,
.inc h3,
.dpl h3,
.ppv h3 {
  color: var(--dc-blue);
  margin: 0 0 10px;
}

.homepro-text,
.dm2-text,
.dpw-text,
.cerfa-text,
.inc-text,
.dpl-text,
.ppv-text {
  color: var(--dc-muted);
  font-size: 18px;
  line-height: 1.72;
}

.homepro-btn,
.dm2-btn,
.dpw-btn,
.cerfa-btn,
.inc-btn,
.dpl-btn,
.ppv-btn,
.dc-btn,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
  text-align: center;
}

.homepro-btn-main,
.dm2-btn-main,
.dpw-btn-main,
.cerfa-btn-main,
.inc-btn-main,
.dpl-btn-main,
.ppv-btn-main,
.dc-btn-main,
.btn-main {
  background: var(--dc-green-alt-dark);
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.homepro-btn-main:hover,
.dm2-btn-main:hover,
.dpw-btn-main:hover,
.cerfa-btn-main:hover,
.inc-btn-main:hover,
.dpl-btn-main:hover,
.ppv-btn-main:hover,
.dc-btn-main:hover,
.btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.homepro-btn-light,
.dm2-btn-light,
.dpw-btn-light,
.cerfa-btn-light,
.inc-btn-light,
.dpl-btn-light,
.ppv-btn-light,
.dc-btn-light,
.btn-light {
  background: white;
  color: var(--dc-blue) !important;
  border: 1px solid var(--dc-border);
}

.homepro-btn-light:hover,
.dm2-btn-light:hover,
.dpw-btn-light:hover,
.cerfa-btn-light:hover,
.inc-btn-light:hover,
.dpl-btn-light:hover,
.ppv-btn-light:hover,
.dc-btn-light:hover,
.btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.homepro-actions,
.dm2-actions,
dpw-actions,
.cerfa-actions,
.inc-actions,
.dpl-actions,
.ppv-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.dpw-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.homepro-tags,
.dm2-tags,
.dpw-tags,
.cerfa-tags,
.inc-tags,
.dpl-tags,
.ppv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.homepro-tag,
.dm2-tag,
.dpw-tag,
.cerfa-tag,
.inc-tag,
.dpl-tag,
.ppv-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.homepro-tag b,
.dm2-tag b,
.dpw-tag b,
.cerfa-tag b,
.inc-tag b,
.dpl-tag b,
.ppv-tag b {
  color: var(--dc-green-alt);
}

.homepro-section,
.dm2-section,
.dpw-section,
.cerfa-section,
.inc-section,
.dpl-section,
.ppv-section {
  padding: 84px 0;
  background: white;
}

.homepro-section.grey,
.dm2-section.grey,
.dpw-section.grey,
.cerfa-section.grey,
.inc-section.grey,
.dpl-section.grey,
.ppv-section.grey {
  background: var(--dc-bg);
}

.homepro-section.blue,
.dm2-section.blue,
.dpw-section.blue,
.cerfa-section.blue,
.inc-section.blue,
.dpl-section.blue,
.ppv-section.blue {
  background: var(--dc-soft-blue);
}

.homepro-section.dark,
.dm2-section.dark,
.dpw-section.dark,
.cerfa-section.dark,
.inc-section.dark,
.dpl-section.dark,
.ppv-section.dark {
  background: var(--dc-blue);
  color: white;
}

.homepro-section.dark h2,
.homepro-section.dark h3,
.dm2-section.dark h2,
.dm2-section.dark h3,
.dpw-section.dark h2,
.dpw-section.dark h3,
.cerfa-section.dark h2,
.cerfa-section.dark h3,
.inc-section.dark h2,
.inc-section.dark h3,
.dpl-section.dark h2,
.dpl-section.dark h3,
.ppv-section.dark h2,
.ppv-section.dark h3 {
  color: white;
}

.homepro-section.dark .homepro-text,
.dm2-section.dark .dm2-text,
.dpw-section.dark .dpw-text,
.cerfa-section.dark .cerfa-text,
.inc-section.dark .inc-text,
.dpl-section.dark .dpl-text,
.ppv-section.dark .ppv-text {
  color: #dbeafe;
}

.homepro-center,
.dm2-center,
.dpw-center,
.cerfa-center,
.inc-center,
.dpl-center,
.ppv-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

.homepro-grid-3,
.dm2-docgrid,
.dpw-grid-3,
.cerfa-grid-3,
.inc-grid-3,
.dpl-grid-3,
.ppv-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.homepro-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.homepro-card,
.homepro-service,
.dm2-doc,
.dpw-card,
.dpw-doc,
.cerfa-card,
.cerfa-doc,
.inc-card,
.inc-doc,
.dpl-card,
.dpl-doc,
.ppv-card,
.ppv-doc {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.homepro-service {
  border-radius: 24px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 270px;
}

.dpw-doc,
.cerfa-doc,
.inc-doc,
.dpl-doc,
.ppv-doc,
.dm2-doc {
  position: relative;
  overflow: hidden;
}

.dpw-doc::before,
.cerfa-doc::before,
.inc-doc::before,
.dpl-doc::before,
.ppv-doc::before,
.dm2-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: var(--dc-green-alt);
}

.dpw-doc-code,
.cerfa-doc-code,
.inc-doc-code,
.dpl-doc-code,
.ppv-doc-code,
.dm2-doc-code {
  display: inline-block;
  background: var(--dc-soft-blue);
  color: var(--dc-blue);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.homepro-card-icon,
.dpw-icon,
.cerfa-icon,
.inc-icon,
.dpl-icon,
.ppv-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: var(--dc-soft-green);
  color: var(--dc-green-alt);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.homepro-card p,
.homepro-service p,
.dm2-doc p,
.dpw-card p,
.dpw-doc p,
.cerfa-card p,
.cerfa-doc p,
.inc-card p,
.inc-doc p,
.dpl-card p,
.dpl-doc p,
.ppv-card p,
.ppv-doc p {
  color: var(--dc-muted);
  line-height: 1.6;
  margin: 0 0 14px;
}

/* =====================================================
   HERO COMMUN PAGES SEO
   ===================================================== */

.homepro-hero,
.dm2-hero,
.dpw-hero,
.cerfa-hero,
.inc-hero,
.dpl-hero,
.ppv-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.homepro-hero {
  background:
    radial-gradient(circle at top right, rgba(245,166,35,.22), transparent 36%),
    radial-gradient(circle at bottom left, rgba(31,166,122,.14), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 52%, #eaf4ff 100%);
  padding: 86px 0 94px;
}

.homepro-hero-grid,
.dm2-hero-grid,
.dpw-hero-grid,
.cerfa-hero-grid,
.inc-hero-grid,
.dpl-hero-grid,
.ppv-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.dm2-hero-grid {
  grid-template-columns: 1.02fr .98fr;
}

.homepro-hero p,
.dm2-hero p,
.dpw-hero p,
.cerfa-hero p,
.inc-hero p,
.dpl-hero p,
.ppv-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.dm2-breadcrumb,
.dpw-breadcrumb,
.cerfa-breadcrumb,
.inc-breadcrumb,
.dpl-breadcrumb,
.ppv-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--dc-muted);
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.dm2-breadcrumb a,
.dpw-breadcrumb a,
.cerfa-breadcrumb a,
.inc-breadcrumb a,
.dpl-breadcrumb a,
.ppv-breadcrumb a {
  color: var(--dc-muted);
  font-weight: 700;
}

.dm2-breadcrumb span:last-child,
.dpw-breadcrumb span:last-child,
.cerfa-breadcrumb span:last-child,
.inc-breadcrumb span:last-child,
.dpl-breadcrumb span:last-child,
.ppv-breadcrumb span:last-child {
  color: var(--dc-blue);
  font-weight: 800;
}

/* Cartes hero génériques */
.dpw-card-hero,
.cerfa-card-hero,
.inc-card-hero,
.dpl-card-hero,
.ppv-card-hero,
.homepro-dashboard,
.dm2-folder {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.dpw-card-inner,
.cerfa-card-inner,
.inc-card-inner,
.dpl-card-inner,
.ppv-card-inner,
.homepro-dashboard-inner,
.dm2-folder-inner {
  background: linear-gradient(135deg, var(--dc-blue), var(--dc-blue-soft));
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.dpw-card-title,
.cerfa-card-title,
.inc-card-title,
.dpl-card-title,
.ppv-card-title,
.homepro-dashboard-title,
.dm2-folder-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.dpw-card-subtitle,
.cerfa-card-subtitle,
.inc-card-subtitle,
.dpl-card-subtitle,
.ppv-card-subtitle,
.dm2-folder-small,
.homepro-dashboard-small {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.dpw-line,
.cerfa-line,
.inc-line,
.dpl-line,
.ppv-line,
.dm2-piece,
.homepro-task {
  background: white;
  color: var(--dc-blue);
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.dpw-line b,
.cerfa-line b,
.dpl-line b,
.ppv-line b,
.dm2-ok,
.homepro-ok {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.inc-line b {
  background: var(--dc-soft-orange);
  color: #b45309;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.dpw-alert,
.cerfa-alert,
.inc-alert,
.dpl-alert,
.ppv-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.dpw-alert strong,
.cerfa-alert strong,
.inc-alert strong,
.dpl-alert strong,
.ppv-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.dpw-alert span,
.cerfa-alert span,
.inc-alert span,
.dpl-alert span,
.ppv-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* =====================================================
   TABLES / SPLITS / WARNINGS / PROCESS / SEO / FAQ / CTA
   ===================================================== */

.dm2-table-wrap,
.dpw-table-wrap,
.cerfa-table-wrap,
.inc-table-wrap,
.dpl-table-wrap,
.ppv-table-wrap {
  margin-top: 42px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 24px;
  border: 1px solid var(--dc-border);
  background: white;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.dm2-table,
.dpw-table,
.cerfa-table,
.inc-table,
.dpl-table,
.ppv-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.dm2-table th,
.dpw-table th,
.cerfa-table th,
.inc-table th,
.dpl-table th,
.ppv-table th {
  background: var(--dc-blue);
  color: white;
  text-align: left;
  padding: 18px;
  font-size: 15px;
}

.dm2-table td,
.dpw-table td,
.cerfa-table td,
.inc-table td,
.dpl-table td,
.ppv-table td {
  padding: 18px;
  border-bottom: 1px solid #e2e8f0;
  color: var(--dc-muted);
  line-height: 1.55;
  vertical-align: top;
}

.dm2-table tr:last-child td,
.dpw-table tr:last-child td,
.cerfa-table tr:last-child td,
.inc-table tr:last-child td,
.dpl-table tr:last-child td,
.ppv-table tr:last-child td {
  border-bottom: none;
}

.dm2-table strong,
.dpw-table strong,
.cerfa-table strong,
.inc-table strong,
.dpl-table strong,
.ppv-table strong {
  color: var(--dc-blue);
}

.dm2-split,
.dpw-split,
.cerfa-split,
.inc-split,
.dpl-split,
.ppv-split,
.homepro-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 48px;
  align-items: center;
}

.homepro-warning,
.dm2-warning,
.dpw-warning,
.cerfa-warning,
.inc-warning,
.dpl-warning,
.ppv-warning {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.homepro-warning-row,
.dm2-warning-row,
.dpw-warning-row,
.cerfa-warning-row,
.inc-warning-row,
.dpl-warning-row,
.ppv-warning-row {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8f0;
}

.homepro-warning-row:last-child,
.dm2-warning-row:last-child,
.dpw-warning-row:last-child,
.cerfa-warning-row:last-child,
.inc-warning-row:last-child,
.dpl-warning-row:last-child,
.ppv-warning-row:last-child {
  border-bottom: none;
}

.homepro-warning-ico,
.dm2-warning-ico,
.dpw-warning-ico,
.cerfa-warning-ico,
.inc-warning-ico,
.dpl-warning-ico,
.ppv-warning-ico {
  width: 54px;
  min-width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--dc-soft-orange);
  color: #b45309;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 900;
  font-size: 12px;
}

.homepro-warning-row strong,
.dm2-warning-row strong,
.dpw-warning-row strong,
.cerfa-warning-row strong,
.inc-warning-row strong,
.dpl-warning-row strong,
.ppv-warning-row strong {
  display: block;
  color: var(--dc-blue);
  margin-bottom: 4px;
}

.homepro-warning-row span,
.dm2-warning-row span,
.dpw-warning-row span,
.cerfa-warning-row span,
.inc-warning-row span,
.dpl-warning-row span,
.ppv-warning-row span {
  color: var(--dc-muted);
  line-height: 1.5;
}

.dm2-process,
.dpw-process,
.cerfa-process,
.dpl-process {
  margin-top: 45px;
  display: grid;
  gap: 16px;
}

.dm2-process-item,
.dpw-process-item,
.cerfa-process-item,
.dpl-process-item {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 22px;
  padding: 24px;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 20px;
  align-items: start;
}

.dm2-num,
.dpw-num,
.cerfa-num,
.dpl-num {
  width: 54px;
  height: 54px;
  background: var(--dc-blue);
  color: white;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 20px;
}

.dm2-process-item p,
.dpw-process-item p,
.cerfa-process-item p,
.dpl-process-item p {
  color: var(--dc-muted);
  line-height: 1.6;
  margin: 0;
}

.homepro-seo,
.dm2-seo,
.dpw-seo,
.cerfa-seo,
.inc-seo,
.dpl-seo,
.ppv-seo {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 28px;
  padding: 36px;
  box-shadow: 0 12px 35px rgba(15,23,42,.05);
}

.homepro-seo p,
.dm2-seo p,
.dpw-seo p,
.cerfa-seo p,
.inc-seo p,
.dpl-seo p,
.ppv-seo p {
  color: var(--dc-muted);
  line-height: 1.75;
  font-size: 17px;
}

.homepro-faq,
.dm2-faq,
.dpw-faq,
.cerfa-faq,
.inc-faq,
.dpl-faq,
.ppv-faq {
  display: grid;
  gap: 15px;
  margin-top: 42px;
}

.homepro-faq-item,
.dm2-faq-item,
.dpw-faq-item,
.cerfa-faq-item,
.inc-faq-item,
.dpl-faq-item,
.ppv-faq-item {
  background: white;
  border: 1px solid var(--dc-border);
  border-radius: 20px;
  padding: 24px;
}

.homepro-faq-item strong,
.dm2-faq-item strong,
.dpw-faq-item strong,
.cerfa-faq-item strong,
.inc-faq-item strong,
.dpl-faq-item strong,
.ppv-faq-item strong {
  color: var(--dc-blue);
  font-size: 18px;
  display: block;
  margin-bottom: 8px;
}

.homepro-faq-item p,
.dm2-faq-item p,
.dpw-faq-item p,
.cerfa-faq-item p,
.inc-faq-item p,
.dpl-faq-item p,
.ppv-faq-item p {
  color: var(--dc-muted);
  margin: 0 0 12px;
  line-height: 1.65;
}

.homepro-cta,
.dm2-cta,
.dpw-cta,
.cerfa-cta,
.inc-cta,
.dpl-cta,
.ppv-cta {
  background: linear-gradient(135deg, var(--dc-blue), var(--dc-blue-soft));
  color: white;
  padding: 80px 0;
}

.homepro-cta-grid,
.dm2-cta-grid,
.dpw-cta-grid,
.cerfa-cta-grid,
.inc-cta-grid,
.dpl-cta-grid,
.ppv-cta-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 44px;
  align-items: center;
}

.homepro-cta h2,
.dm2-cta h2,
.dpw-cta h2,
.cerfa-cta h2,
.inc-cta h2,
.dpl-cta h2,
.ppv-cta h2 {
  color: white;
}

.homepro-cta p,
.dm2-cta p,
.dpw-cta p,
.cerfa-cta p,
.inc-cta p,
.dpl-cta p,
.ppv-cta p {
  color: #dbeafe;
  font-size: 18px;
  line-height: 1.65;
}

.homepro-cta-card,
.dm2-cta-card,
.dpw-cta-card,
.cerfa-cta-card,
.inc-cta-card,
.dpl-cta-card,
.ppv-cta-card {
  background: white;
  color: var(--dc-blue);
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

.homepro-cta-line,
.dm2-cta-line,
.dpw-cta-line,
.cerfa-cta-line,
.inc-cta-line,
.dpl-cta-line,
.ppv-cta-line {
  background: #f8fafc;
  border-radius: 16px;
  padding: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}

/* =====================================================
   SPÉCIFIQUE ACCUEIL
   ===================================================== */

.homepro-dashboard-inner {
  position: relative;
  overflow: hidden;
}

.homepro-dashboard-inner::after {
  content: "";
  position: absolute;
  right: -90px;
  top: -90px;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background: rgba(245,166,35,.18);
}

.homepro-dashboard-head {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.homepro-stamp {
  background: var(--dc-orange);
  color: var(--dc-blue);
  border-radius: 999px;
  padding: 8px 13px;
  font-weight: 900;
  font-size: 12px;
  white-space: nowrap;
}

.homepro-task {
  position: relative;
  z-index: 2;
}

.homepro-dashboard-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 16px;
}

.homepro-mini {
  background: var(--dc-soft-blue);
  border-radius: 20px;
  padding: 18px;
}

.homepro-mini.green {
  background: var(--dc-soft-green);
}

.homepro-mini strong {
  color: var(--dc-blue);
  display: block;
  margin-bottom: 5px;
}

.homepro-mini span {
  color: var(--dc-muted);
  font-size: 14px;
}

/* =====================================================
   SPÉCIFIQUE MAIRIE
   ===================================================== */

#piecesimportantes {
  scroll-margin-top: 120px;
}

.dm2-folder {
  transform: rotate(1deg);
}

.dm2-folder-inner {
  transform: rotate(-1deg);
}

.dm2-folder-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  border-bottom: 1px solid rgba(255,255,255,.14);
  padding-bottom: 18px;
  margin-bottom: 18px;
}

.dm2-folder-stamp {
  background: var(--dc-green-alt-dark);
  color: white;
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 900;
  font-size: 12px;
  white-space: nowrap;
}

.dm2-checkgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.dm2-check {
  background: #f8fafc;
  border: 1px solid var(--dc-border);
  border-radius: 22px;
  padding: 24px;
}

.dm2-check-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: var(--dc-soft-green);
  color: var(--dc-green-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 16px;
}

.dm2-check p {
  color: var(--dc-muted);
  line-height: 1.6;
  margin: 0;
}

.dm2-abf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.dm2-abf-card,
.inc-dark-card,
.ppv-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.dm2-abf-card strong,
.inc-dark-card strong,
.ppv-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.dm2-abf-card p,
.inc-dark-card p,
.ppv-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0 0 12px;
}

.ppv-dark-card a {
  color: #ffffff;
  display: inline-flex;
  margin-top: 6px;
}

.dpw-note {
  margin-top: 28px;
  background: var(--dc-soft-orange);
  border: 1px solid #fed7aa;
  color: #7c2d12;
  border-radius: 20px;
  padding: 20px;
  line-height: 1.65;
}

/* =====================================================
   FORMULAIRES / MESSAGES / ACCESSIBILITÉ
   ===================================================== */

form input,
form select,
form textarea,
form button {
  font-family: Arial, Helvetica, sans-serif;
}

form button:disabled,
form input[type="submit"]:disabled {
  opacity: 0.75;
  cursor: not-allowed;
}

.dc-success-message {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 99999;
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
  border-radius: 16px;
  padding: 16px 18px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
  max-width: 380px;
  opacity: 0;
  transform: translateY(15px);
  transition: 0.3s ease;
  font-family: Arial, Helvetica, sans-serif;
}

.dc-success-message.show {
  opacity: 1;
  transform: translateY(0);
}

.dc-success-message strong {
  display: block;
  margin-bottom: 5px;
  font-size: 15px;
}

.dc-success-message span {
  display: block;
  font-size: 14px;
  line-height: 1.45;
}

#site-header,
#site-footer {
  width: 100%;
}

#site-header img,
#site-footer img {
  max-width: 100%;
}

.dc-header ul,
.dc-footer-pro ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.dc-header p,
.dc-footer-pro p {
  margin-top: 0;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid var(--dc-orange) !important;
  outline-offset: 3px !important;
  border-radius: 8px;
}

/* =====================================================
   RESPONSIVE GLOBAL
   ===================================================== */

@media (max-width: 1120px) {
  .dc-nav-wrap {
    padding: 10px 16px;
    gap: 16px;
  }

  .dc-logo img {
    height: 60px;
    max-width: 220px;
  }

  .dc-menu {
    gap: 15px;
  }

  .dc-menu a {
    font-size: 12px;
    letter-spacing: 0.6px;
  }

  .dc-call {
    padding: 12px 15px;
    font-size: 12px;
  }
}

@media (max-width: 1050px) {
  .dc-footer-cta {
    grid-template-columns: 1fr;
  }

  .dc-footer-cta-actions {
    justify-content: flex-start;
  }

  .dc-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 980px) {
  .homepro-hero-grid,
  .homepro-split,
  .homepro-cta-grid,
  .dm2-hero-grid,
  .dm2-split,
  .dm2-cta-grid,
  .dpw-hero-grid,
  .dpw-split,
  .dpw-cta-grid,
  .cerfa-hero-grid,
  .cerfa-split,
  .cerfa-cta-grid,
  .inc-hero-grid,
  .inc-split,
  .inc-cta-grid,
  .dpl-hero-grid,
  .dpl-split,
  .dpl-cta-grid,
  .ppv-hero-grid,
  .ppv-split,
  .ppv-cta-grid {
    grid-template-columns: 1fr;
  }

  .homepro-grid-3,
  .homepro-grid-4,
  .dm2-checkgrid,
  .dm2-docgrid,
  .dm2-abf-grid,
  .dpw-grid-3,
  .cerfa-grid-3,
  .inc-grid-3,
  .dpl-grid-3,
  .ppv-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .homepro h1,
  .dm2 h1,
  .dpw h1,
  .cerfa h1,
  .inc h1,
  .dpl h1,
  .ppv h1 {
    font-size: 42px;
  }

  .homepro h2,
  .dm2 h2,
  .dpw h2,
  .cerfa h2,
  .inc h2,
  .dpl h2,
  .ppv h2 {
    font-size: 32px;
  }

  .dm2-folder,
  .dm2-folder-inner {
    transform: none;
  }
}

@media (max-width: 920px) {
  .dc-nav-wrap {
    flex-wrap: wrap;
  }

  .dc-logo img {
    height: 58px;
    max-width: 210px;
  }

  .dc-burger {
    display: block;
    margin-left: auto;
  }

  .dc-call {
    display: none;
  }

  .dc-menu {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: #ffffff;
    border-top: 1px solid #eeeeee;
    padding: 10px 0 16px;
  }

  #dc-menu-toggle:checked ~ .dc-menu {
    display: flex;
  }

  .dc-menu > a,
  .dc-menu-item > a {
    display: flex;
    padding: 14px 8px;
    font-size: 14px;
    min-height: 46px;
  }

  .dc-menu-item {
    padding: 0;
  }

  .dc-menu-item > a::after {
    content: "";
  }

  .dc-dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    border-radius: 0;
    padding: 0 0 8px 14px;
    background: #f8faf7;
    display: block;
    min-width: 0;
  }

  .dc-dropdown a {
    padding: 11px 14px;
    font-size: 13px;
    min-height: 46px;
  }

  .dc-menu-mobile-call {
    display: block !important;
    background: #4f970f;
    color: #ffffff !important;
    text-align: center;
    margin-top: 10px;
    border-radius: 10px;
    padding: 14px !important;
  }
}

@media (max-width: 650px) {
  .dc-footer-wrap {
    padding: 0 16px;
  }

  .dc-footer-top {
    padding: 36px 0 28px;
  }

  .dc-footer-cta {
    padding: 24px;
    border-radius: 22px;
  }

  .dc-footer-cta h2 {
    font-size: 25px;
  }

  .dc-footer-cta-actions {
    flex-direction: column;
  }

  .dc-footer-btn-main,
  .dc-footer-btn-light {
    width: 100%;
  }

  .dc-footer-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .dc-footer-logo-box img {
    height: 64px;
    max-width: 250px;
  }

  .dc-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .dc-footer-bottom-links {
    flex-direction: column;
    gap: 8px;
  }
}

@media (max-width: 620px) {
  .homepro-container,
  .dm2-container,
  .dpw-container,
  .cerfa-container,
  .inc-container,
  .dpl-container,
  .ppv-container {
    padding: 0 15px;
  }

  .homepro-hero,
  .dm2-hero,
  .dpw-hero,
  .cerfa-hero,
  .inc-hero,
  .dpl-hero,
  .ppv-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .homepro-section,
  .homepro-cta,
  .dm2-section,
  .dm2-cta,
  .dpw-section,
  .dpw-cta,
  .cerfa-section,
  .cerfa-cta,
  .inc-section,
  .inc-cta,
  .dpl-section,
  .dpl-cta,
  .ppv-section,
  .ppv-cta {
    padding: 52px 0 !important;
  }

  .homepro-grid-3,
  .homepro-grid-4,
  .homepro-dashboard-bottom,
  .dm2-checkgrid,
  .dm2-docgrid,
  .dm2-abf-grid,
  .dpw-grid-3,
  .cerfa-grid-3,
  .inc-grid-3,
  .dpl-grid-3,
  .ppv-grid-3 {
    grid-template-columns: 1fr;
  }

  .homepro h1,
  .dm2 h1,
  .dpw h1,
  .cerfa h1,
  .inc h1,
  .dpl h1,
  .ppv h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .homepro h2,
  .dm2 h2,
  .dpw h2,
  .cerfa h2,
  .inc h2,
  .dpl h2,
  .ppv h2 {
    font-size: 28px;
  }

  .homepro-text,
  .dm2-text,
  .dpw-text,
  .cerfa-text,
  .inc-text,
  .dpl-text,
  .ppv-text {
    font-size: 16px;
  }

  .homepro-actions,
  .dm2-actions,
  .dpw-actions,
  .cerfa-actions,
  .inc-actions,
  .dpl-actions,
  .ppv-actions {
    flex-direction: column;
  }

  .homepro-btn,
  .dm2-btn,
  .dpw-btn,
  .cerfa-btn,
  .inc-btn,
  .dpl-btn,
  .ppv-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .homepro-dashboard,
  .dm2-folder,
  .dpw-card-hero,
  .cerfa-card-hero,
  .inc-card-hero,
  .dpl-card-hero,
  .ppv-card-hero,
  .homepro-card,
  .homepro-service,
  .homepro-warning,
  .homepro-seo,
  .homepro-cta-card,
  .dm2-warning,
  .dm2-doc,
  .dm2-seo,
  .dm2-cta-card,
  .dpw-warning,
  .dpw-doc,
  .dpw-card,
  .dpw-seo,
  .dpw-cta-card,
  .cerfa-card,
  .cerfa-doc,
  .cerfa-warning,
  .cerfa-seo,
  .cerfa-cta-card,
  .inc-card,
  .inc-doc,
  .inc-warning,
  .inc-seo,
  .inc-cta-card,
  .dpl-card,
  .dpl-doc,
  .dpl-warning,
  .dpl-seo,
  .dpl-cta-card,
  .ppv-card,
  .ppv-doc,
  .ppv-warning,
  .ppv-seo,
  .ppv-cta-card {
    box-shadow: none !important;
  }

  .homepro-dashboard {
    border-radius: 20px !important;
    padding: 12px !important;
  }

  .homepro-dashboard-inner {
    background: var(--dc-blue) !important;
    border-radius: 18px !important;
    padding: 18px !important;
  }

  .homepro-dashboard-inner::after {
    display: none !important;
  }

  .homepro-dashboard-bottom {
    display: none !important;
  }

  .homepro-dashboard-head,
  .dm2-folder-top {
    flex-direction: column;
  }

  .homepro-task,
  .dm2-piece,
  .dpw-line,
  .cerfa-line,
  .inc-line,
  .dpl-line,
  .ppv-line {
    align-items: flex-start;
    flex-direction: column;
  }

  .dm2-process-item,
  .dpw-process-item,
  .cerfa-process-item,
  .dpl-process-item {
    grid-template-columns: 1fr;
  }

  .dm2-table,
  .dpw-table,
  .cerfa-table,
  .inc-table,
  .dpl-table,
  .ppv-table {
    min-width: 720px;
  }

  .homepro-tag,
  .dm2-tag,
  .dpw-tag,
  .cerfa-tag,
  .inc-tag,
  .dpl-tag,
  .ppv-tag {
    padding: 10px 13px;
  }

  .dc-success-message {
    left: 15px;
    right: 15px;
    bottom: 15px;
    max-width: none;
  }
}

@media (max-width: 520px) {
  .dc-logo img {
    height: 50px;
    max-width: 185px;
  }

  .dc-nav-wrap {
    padding: 8px 12px;
  }

  .homepro-container,
  .dm2-container,
  .dpw-container,
  .cerfa-container,
  .inc-container,
  .dpl-container,
  .ppv-container {
    padding: 0 14px;
  }

  .homepro h1,
  .dm2 h1,
  .dpw h1,
  .cerfa h1,
  .inc h1,
  .dpl h1,
  .ppv h1 {
    font-size: 30px !important;
  }

  .homepro h2,
  .dm2 h2,
  .dpw h2,
  .cerfa h2,
  .inc h2,
  .dpl h2,
  .ppv h2 {
    font-size: 26px;
  }

  .homepro-seo,
  .dm2-seo,
  .dpw-seo,
  .cerfa-seo,
  .inc-seo,
  .dpl-seo,
  .ppv-seo,
  .homepro-cta-card,
  .dm2-cta-card,
  .dpw-cta-card,
  .cerfa-cta-card,
  .inc-cta-card,
  .dpl-cta-card,
  .ppv-cta-card,
  .homepro-warning,
  .dm2-warning,
  .dpw-warning,
  .cerfa-warning,
  .inc-warning,
  .dpl-warning,
  .ppv-warning {
    padding: 20px;
    border-radius: 20px;
  }

  .homepro-card,
  .homepro-service,
  .dm2-doc,
  .dpw-card,
  .dpw-doc,
  .cerfa-card,
  .cerfa-doc,
  .inc-card,
  .inc-doc,
  .dpl-card,
  .dpl-doc,
  .ppv-card,
  .ppv-doc {
    padding: 20px;
  }
}
/* =====================================================
   PAGE ITE — /Mairie/ITE/
   À AJOUTER À LA FIN DU STYLE.CSS
   ===================================================== */

.ite {
  font-family: Arial, Helvetica, sans-serif;
  background: #f6f8fb;
  color: #102A43;
  width: 100%;
  overflow: hidden;
}

.ite * {
  box-sizing: border-box;
}

.ite-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.ite a {
  text-decoration: none;
  color: #0f8f68;
  font-weight: 900;
}

/* HERO */

.ite-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.ite-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #475569;
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.ite-breadcrumb a {
  color: #475569;
  font-weight: 700;
}

.ite-breadcrumb span:last-child {
  color: #102A43;
  font-weight: 800;
}

.ite-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.ite-label {
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.ite h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1.8px;
}

.ite h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1px;
}

.ite h3 {
  color: #102A43;
  margin: 0 0 10px;
}

.ite-text {
  color: #475569;
  font-size: 18px;
  line-height: 1.72;
}

.ite-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.ite-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.ite-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
}

.ite-btn-main {
  background: #08795f;
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.ite-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.ite-btn-light {
  background: white;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.ite-btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.ite-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ite-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.ite-tag b {
  color: #0f8f68;
}

/* CARTE HERO */

.ite-card-hero {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.ite-card-inner {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.ite-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.ite-card-subtitle {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.ite-line {
  background: white;
  color: #102A43;
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.ite-line b {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.ite-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.ite-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.ite-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* SECTIONS */

.ite-section {
  padding: 84px 0;
  background: white;
}

.ite-section.grey {
  background: #f6f8fb;
}

.ite-section.blue {
  background: #EAF4FF;
}

.ite-section.dark {
  background: #102A43;
  color: white;
}

.ite-section.dark h2,
.ite-section.dark h3 {
  color: white;
}

.ite-section.dark .ite-text {
  color: #dbeafe;
}

.ite-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

/* GRIDS / CARTES */

.ite-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.ite-card,
.ite-doc {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.ite-doc {
  position: relative;
  overflow: hidden;
}

.ite-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.ite-doc-code {
  display: inline-block;
  background: #EAF4FF;
  color: #102A43;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.ite-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: #ECFDF5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.ite-card p,
.ite-doc p {
  color: #475569;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* TABLE */

.ite-table-wrap {
  margin-top: 42px;
  overflow-x: auto;
  border-radius: 24px;
  border: 1px solid #d9e2ec;
  background: white;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.ite-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.ite-table th {
  background: #102A43;
  color: white;
  text-align: left;
  padding: 18px;
  font-size: 15px;
}

.ite-table td {
  padding: 18px;
  border-bottom: 1px solid #e2e8f0;
  color: #475569;
  line-height: 1.55;
  vertical-align: top;
}

.ite-table tr:last-child td {
  border-bottom: none;
}

.ite-table strong {
  color: #102A43;
}

/* SPLIT / WARNING */

.ite-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 48px;
  align-items: center;
}

.ite-warning {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.ite-warning-row {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8f0;
}

.ite-warning-row:last-child {
  border-bottom: none;
}

.ite-warning-ico {
  width: 54px;
  height: 44px;
  border-radius: 14px;
  background: #fff7ed;
  color: #b45309;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 900;
  font-size: 12px;
}

.ite-warning-row strong {
  display: block;
  color: #102A43;
  margin-bottom: 4px;
}

.ite-warning-row span {
  color: #475569;
  line-height: 1.5;
}

/* CARTES SOMBRES */

.ite-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.ite-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.ite-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0;
}

/* SEO / FAQ */

.ite-seo {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 28px;
  padding: 36px;
  box-shadow: 0 12px 35px rgba(15,23,42,.05);
}

.ite-seo p {
  color: #475569;
  line-height: 1.75;
  font-size: 17px;
}

.ite-faq {
  display: grid;
  gap: 15px;
  margin-top: 42px;
}

.ite-faq-item {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 20px;
  padding: 24px;
}

.ite-faq-item strong {
  color: #102A43;
  font-size: 18px;
  display: block;
  margin-bottom: 8px;
}

.ite-faq-item p {
  color: #475569;
  margin: 0 0 12px;
  line-height: 1.65;
}

/* CTA */

.ite-cta {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  padding: 80px 0;
}

.ite-cta-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 44px;
  align-items: center;
}

.ite-cta h2 {
  color: white;
}

.ite-cta p {
  color: #dbeafe;
  font-size: 18px;
  line-height: 1.65;
}

.ite-cta-card {
  background: white;
  color: #102A43;
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

.ite-cta-line {
  background: #f8fafc;
  border-radius: 16px;
  padding: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}

/* RESPONSIVE ITE */

@media (max-width: 980px) {
  .ite-hero-grid,
  .ite-split,
  .ite-cta-grid {
    grid-template-columns: 1fr;
  }

  .ite-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .ite h1 {
    font-size: 42px;
  }

  .ite h2 {
    font-size: 32px;
  }
}

@media (max-width: 620px) {
  .ite-container {
    padding: 0 15px;
  }

  .ite-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .ite-section,
  .ite-cta {
    padding: 52px 0 !important;
  }

  .ite-grid-3 {
    grid-template-columns: 1fr;
  }

  .ite h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .ite h2 {
    font-size: 28px;
  }

  .ite-text {
    font-size: 16px;
  }

  .ite-actions {
    flex-direction: column;
  }

  .ite-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .ite-card-hero,
  .ite-card,
  .ite-doc,
  .ite-warning,
  .ite-seo,
  .ite-cta-card {
    box-shadow: none !important;
  }

  .ite-line {
    flex-direction: column;
    align-items: flex-start;
  }

  .ite-table {
    min-width: 760px;
  }
}

/* =====================================================
   PAGE PAC — /Mairie/PAC/
   À AJOUTER À LA FIN DU STYLE.CSS
   ===================================================== */

.pac {
  font-family: Arial, Helvetica, sans-serif;
  background: #f6f8fb;
  color: #102A43;
  width: 100%;
  overflow: hidden;
}

.pac * {
  box-sizing: border-box;
}

.pac-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.pac a {
  text-decoration: none;
  color: #0f8f68;
  font-weight: 900;
}

/* HERO */

.pac-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.pac-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #475569;
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.pac-breadcrumb a {
  color: #475569;
  font-weight: 700;
}

.pac-breadcrumb span:last-child {
  color: #102A43;
  font-weight: 800;
}

.pac-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.pac-label {
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.pac h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1.8px;
}

.pac h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1px;
}

.pac h3 {
  color: #102A43;
  margin: 0 0 10px;
}

.pac-text {
  color: #475569;
  font-size: 18px;
  line-height: 1.72;
}

.pac-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.pac-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.pac-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
}

.pac-btn-main {
  background: #08795f;
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.pac-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.pac-btn-light {
  background: white;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.pac-btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.pac-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.pac-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.pac-tag b {
  color: #0f8f68;
}

/* CARTE HERO */

.pac-card-hero {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.pac-card-inner {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.pac-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.pac-card-subtitle {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.pac-line {
  background: white;
  color: #102A43;
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.pac-line b {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.pac-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.pac-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.pac-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* SECTIONS */

.pac-section {
  padding: 84px 0;
  background: white;
}

.pac-section.grey {
  background: #f6f8fb;
}

.pac-section.blue {
  background: #EAF4FF;
}

.pac-section.dark {
  background: #102A43;
  color: white;
}

.pac-section.dark h2,
.pac-section.dark h3 {
  color: white;
}

.pac-section.dark .pac-text {
  color: #dbeafe;
}

.pac-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

/* GRIDS / CARTES */

.pac-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.pac-card,
.pac-doc {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.pac-doc {
  position: relative;
  overflow: hidden;
}

.pac-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.pac-doc-code {
  display: inline-block;
  background: #EAF4FF;
  color: #102A43;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.pac-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: #ECFDF5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.pac-card p,
.pac-doc p {
  color: #475569;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* TABLE */

.pac-table-wrap {
  margin-top: 42px;
  overflow-x: auto;
  border-radius: 24px;
  border: 1px solid #d9e2ec;
  background: white;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.pac-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.pac-table th {
  background: #102A43;
  color: white;
  text-align: left;
  padding: 18px;
  font-size: 15px;
}

.pac-table td {
  padding: 18px;
  border-bottom: 1px solid #e2e8f0;
  color: #475569;
  line-height: 1.55;
  vertical-align: top;
}

.pac-table tr:last-child td {
  border-bottom: none;
}

.pac-table strong {
  color: #102A43;
}

/* SPLIT / WARNING */

.pac-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 48px;
  align-items: center;
}

.pac-warning {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.pac-warning-row {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8f0;
}

.pac-warning-row:last-child {
  border-bottom: none;
}

.pac-warning-ico {
  width: 54px;
  height: 44px;
  border-radius: 14px;
  background: #fff7ed;
  color: #b45309;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 900;
  font-size: 12px;
}

.pac-warning-row strong {
  display: block;
  color: #102A43;
  margin-bottom: 4px;
}

.pac-warning-row span {
  color: #475569;
  line-height: 1.5;
}

/* CARTES SOMBRES */

.pac-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.pac-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.pac-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0;
}

/* SEO / FAQ */

.pac-seo {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 28px;
  padding: 36px;
  box-shadow: 0 12px 35px rgba(15,23,42,.05);
}

.pac-seo p {
  color: #475569;
  line-height: 1.75;
  font-size: 17px;
}

.pac-faq {
  display: grid;
  gap: 15px;
  margin-top: 42px;
}

.pac-faq-item {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 20px;
  padding: 24px;
}

.pac-faq-item strong {
  color: #102A43;
  font-size: 18px;
  display: block;
  margin-bottom: 8px;
}

.pac-faq-item p {
  color: #475569;
  margin: 0 0 12px;
  line-height: 1.65;
}

/* CTA */

.pac-cta {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  padding: 80px 0;
}

.pac-cta-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 44px;
  align-items: center;
}

.pac-cta h2 {
  color: white;
}

.pac-cta p {
  color: #dbeafe;
  font-size: 18px;
  line-height: 1.65;
}

.pac-cta-card {
  background: white;
  color: #102A43;
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

.pac-cta-line {
  background: #f8fafc;
  border-radius: 16px;
  padding: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}

/* RESPONSIVE PAC */

@media (max-width: 980px) {
  .pac-hero-grid,
  .pac-split,
  .pac-cta-grid {
    grid-template-columns: 1fr;
  }

  .pac-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .pac h1 {
    font-size: 42px;
  }

  .pac h2 {
    font-size: 32px;
  }
}

@media (max-width: 620px) {
  .pac-container {
    padding: 0 15px;
  }

  .pac-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .pac-section,
  .pac-cta {
    padding: 52px 0 !important;
  }

  .pac-grid-3 {
    grid-template-columns: 1fr;
  }

  .pac h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .pac h2 {
    font-size: 28px;
  }

  .pac-text {
    font-size: 16px;
  }

  .pac-actions {
    flex-direction: column;
  }

  .pac-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .pac-card-hero,
  .pac-card,
  .pac-doc,
  .pac-warning,
  .pac-seo,
  .pac-cta-card {
    box-shadow: none !important;
  }

  .pac-line {
    flex-direction: column;
    align-items: flex-start;
  }

  .pac-table {
    min-width: 760px;
  }
}

/* =====================================================
   PAGE SSC — /Mairie/SSC/
   À AJOUTER À LA FIN DU STYLE.CSS
   ===================================================== */

.ssc {
  font-family: Arial, Helvetica, sans-serif;
  background: #f6f8fb;
  color: #102A43;
  width: 100%;
  overflow: hidden;
}

.ssc * {
  box-sizing: border-box;
}

.ssc-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.ssc a {
  text-decoration: none;
  color: #0f8f68;
  font-weight: 900;
}

/* HERO */

.ssc-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.ssc-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #475569;
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.ssc-breadcrumb a {
  color: #475569;
  font-weight: 700;
}

.ssc-breadcrumb span:last-child {
  color: #102A43;
  font-weight: 800;
}

.ssc-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.ssc-label {
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.ssc h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1.8px;
}

.ssc h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1px;
}

.ssc h3 {
  color: #102A43;
  margin: 0 0 10px;
}

.ssc-text {
  color: #475569;
  font-size: 18px;
  line-height: 1.72;
}

.ssc-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.ssc-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.ssc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
}

.ssc-btn-main {
  background: #08795f;
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.ssc-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.ssc-btn-light {
  background: white;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.ssc-btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.ssc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ssc-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.ssc-tag b {
  color: #0f8f68;
}

/* CARTE HERO */

.ssc-card-hero {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.ssc-card-inner {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.ssc-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.ssc-card-subtitle {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.ssc-line {
  background: white;
  color: #102A43;
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.ssc-line b {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.ssc-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.ssc-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.ssc-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* SECTIONS */

.ssc-section {
  padding: 84px 0;
  background: white;
}

.ssc-section.grey {
  background: #f6f8fb;
}

.ssc-section.blue {
  background: #EAF4FF;
}

.ssc-section.dark {
  background: #102A43;
  color: white;
}

.ssc-section.dark h2,
.ssc-section.dark h3 {
  color: white;
}

.ssc-section.dark .ssc-text {
  color: #dbeafe;
}

.ssc-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

/* GRIDS / CARTES */

.ssc-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.ssc-card,
.ssc-doc {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.ssc-doc {
  position: relative;
  overflow: hidden;
}

.ssc-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.ssc-doc-code {
  display: inline-block;
  background: #EAF4FF;
  color: #102A43;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.ssc-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: #ECFDF5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.ssc-card p,
.ssc-doc p {
  color: #475569;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* TABLE */

.ssc-table-wrap {
  margin-top: 42px;
  overflow-x: auto;
  border-radius: 24px;
  border: 1px solid #d9e2ec;
  background: white;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.ssc-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.ssc-table th {
  background: #102A43;
  color: white;
  text-align: left;
  padding: 18px;
  font-size: 15px;
}

.ssc-table td {
  padding: 18px;
  border-bottom: 1px solid #e2e8f0;
  color: #475569;
  line-height: 1.55;
  vertical-align: top;
}

.ssc-table tr:last-child td {
  border-bottom: none;
}

.ssc-table strong {
  color: #102A43;
}

.ssc-note {
  margin-top: 28px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #7c2d12;
  border-radius: 20px;
  padding: 20px;
  line-height: 1.65;
}

.ssc-note strong {
  color: #7c2d12;
}

/* SPLIT / WARNING */

.ssc-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 48px;
  align-items: center;
}

.ssc-warning {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.ssc-warning-row {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8f0;
}

.ssc-warning-row:last-child {
  border-bottom: none;
}

.ssc-warning-ico {
  width: 54px;
  height: 44px;
  border-radius: 14px;
  background: #fff7ed;
  color: #b45309;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 900;
  font-size: 12px;
}

.ssc-warning-row strong {
  display: block;
  color: #102A43;
  margin-bottom: 4px;
}

.ssc-warning-row span {
  color: #475569;
  line-height: 1.5;
}

/* CARTES SOMBRES */

.ssc-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.ssc-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.ssc-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0;
}

/* SEO / FAQ */

.ssc-seo {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 28px;
  padding: 36px;
  box-shadow: 0 12px 35px rgba(15,23,42,.05);
}

.ssc-seo p {
  color: #475569;
  line-height: 1.75;
  font-size: 17px;
}

.ssc-faq {
  display: grid;
  gap: 15px;
  margin-top: 42px;
}

.ssc-faq-item {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 20px;
  padding: 24px;
}

.ssc-faq-item strong {
  color: #102A43;
  font-size: 18px;
  display: block;
  margin-bottom: 8px;
}

.ssc-faq-item p {
  color: #475569;
  margin: 0 0 12px;
  line-height: 1.65;
}

/* CTA */

.ssc-cta {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  padding: 80px 0;
}

.ssc-cta-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 44px;
  align-items: center;
}

.ssc-cta h2 {
  color: white;
}

.ssc-cta p {
  color: #dbeafe;
  font-size: 18px;
  line-height: 1.65;
}

.ssc-cta-card {
  background: white;
  color: #102A43;
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

.ssc-cta-line {
  background: #f8fafc;
  border-radius: 16px;
  padding: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}

/* RESPONSIVE SSC */

@media (max-width: 980px) {
  .ssc-hero-grid,
  .ssc-split,
  .ssc-cta-grid {
    grid-template-columns: 1fr;
  }

  .ssc-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .ssc h1 {
    font-size: 42px;
  }

  .ssc h2 {
    font-size: 32px;
  }
}

@media (max-width: 620px) {
  .ssc-container {
    padding: 0 15px;
  }

  .ssc-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .ssc-section,
  .ssc-cta {
    padding: 52px 0 !important;
  }

  .ssc-grid-3 {
    grid-template-columns: 1fr;
  }

  .ssc h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .ssc h2 {
    font-size: 28px;
  }

  .ssc-text {
    font-size: 16px;
  }

  .ssc-actions {
    flex-direction: column;
  }

  .ssc-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .ssc-card-hero,
  .ssc-card,
  .ssc-doc,
  .ssc-warning,
  .ssc-seo,
  .ssc-cta-card {
    box-shadow: none !important;
  }

  .ssc-line {
    flex-direction: column;
    align-items: flex-start;
  }

  .ssc-table {
    min-width: 760px;
  }
}

/* =====================================================
   PAGE TOITURE — /Mairie/Toiture/
   À AJOUTER À LA FIN DU STYLE.CSS
   ===================================================== */

.toit {
  font-family: Arial, Helvetica, sans-serif;
  background: #f6f8fb;
  color: #102A43;
  width: 100%;
  overflow: hidden;
}

.toit * {
  box-sizing: border-box;
}

.toit-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.toit a {
  text-decoration: none;
  color: #0f8f68;
  font-weight: 900;
}

/* HERO */

.toit-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.toit-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #475569;
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.toit-breadcrumb a {
  color: #475569;
  font-weight: 700;
}

.toit-breadcrumb span:last-child {
  color: #102A43;
  font-weight: 800;
}

.toit-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.toit-label {
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.toit h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1.8px;
}

.toit h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1px;
}

.toit h3 {
  color: #102A43;
  margin: 0 0 10px;
}

.toit-text {
  color: #475569;
  font-size: 18px;
  line-height: 1.72;
}

.toit-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.toit-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.toit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
}

.toit-btn-main {
  background: #08795f;
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.toit-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.toit-btn-light {
  background: white;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.toit-btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.toit-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.toit-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.toit-tag b {
  color: #0f8f68;
}

/* CARTE HERO */

.toit-card-hero {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.toit-card-inner {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.toit-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.toit-card-subtitle {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.toit-line {
  background: white;
  color: #102A43;
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.toit-line b {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.toit-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.toit-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.toit-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* SECTIONS */

.toit-section {
  padding: 84px 0;
  background: white;
}

.toit-section.grey {
  background: #f6f8fb;
}

.toit-section.blue {
  background: #EAF4FF;
}

.toit-section.dark {
  background: #102A43;
  color: white;
}

.toit-section.dark h2,
.toit-section.dark h3 {
  color: white;
}

.toit-section.dark .toit-text {
  color: #dbeafe;
}

.toit-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

/* GRIDS / CARTES */

.toit-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.toit-card,
.toit-doc {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.toit-doc {
  position: relative;
  overflow: hidden;
}

.toit-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.toit-doc-code {
  display: inline-block;
  background: #EAF4FF;
  color: #102A43;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.toit-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: #ECFDF5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.toit-card p,
.toit-doc p {
  color: #475569;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* TABLE */

.toit-table-wrap {
  margin-top: 42px;
  overflow-x: auto;
  border-radius: 24px;
  border: 1px solid #d9e2ec;
  background: white;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.toit-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.toit-table th {
  background: #102A43;
  color: white;
  text-align: left;
  padding: 18px;
  font-size: 15px;
}

.toit-table td {
  padding: 18px;
  border-bottom: 1px solid #e2e8f0;
  color: #475569;
  line-height: 1.55;
  vertical-align: top;
}

.toit-table tr:last-child td {
  border-bottom: none;
}

.toit-table strong {
  color: #102A43;
}

.toit-note {
  margin-top: 28px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #7c2d12;
  border-radius: 20px;
  padding: 20px;
  line-height: 1.65;
}

.toit-note strong {
  color: #7c2d12;
}

/* SPLIT / WARNING */

.toit-split {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 48px;
  align-items: center;
}

.toit-warning {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 26px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15,23,42,.06);
}

.toit-warning-row {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8f0;
}

.toit-warning-row:last-child {
  border-bottom: none;
}

.toit-warning-ico {
  width: 54px;
  height: 44px;
  border-radius: 14px;
  background: #fff7ed;
  color: #b45309;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-weight: 900;
  font-size: 12px;
}

.toit-warning-row strong {
  display: block;
  color: #102A43;
  margin-bottom: 4px;
}

.toit-warning-row span {
  color: #475569;
  line-height: 1.5;
}

/* CARTES SOMBRES */

.toit-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.toit-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.toit-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0;
}

/* SEO / FAQ */

.toit-seo {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 28px;
  padding: 36px;
  box-shadow: 0 12px 35px rgba(15,23,42,.05);
}

.toit-seo p {
  color: #475569;
  line-height: 1.75;
  font-size: 17px;
}

.toit-faq {
  display: grid;
  gap: 15px;
  margin-top: 42px;
}

.toit-faq-item {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 20px;
  padding: 24px;
}

.toit-faq-item strong {
  color: #102A43;
  font-size: 18px;
  display: block;
  margin-bottom: 8px;
}

.toit-faq-item p {
  color: #475569;
  margin: 0 0 12px;
  line-height: 1.65;
}

/* CTA */

.toit-cta {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  padding: 80px 0;
}

.toit-cta-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 44px;
  align-items: center;
}

.toit-cta h2 {
  color: white;
}

.toit-cta p {
  color: #dbeafe;
  font-size: 18px;
  line-height: 1.65;
}

.toit-cta-card {
  background: white;
  color: #102A43;
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 30px 70px rgba(0,0,0,.18);
}

.toit-cta-line {
  background: #f8fafc;
  border-radius: 16px;
  padding: 15px;
  font-weight: 800;
  margin-bottom: 12px;
}

/* RESPONSIVE TOITURE */

@media (max-width: 980px) {
  .toit-hero-grid,
  .toit-split,
  .toit-cta-grid {
    grid-template-columns: 1fr;
  }

  .toit-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .toit h1 {
    font-size: 42px;
  }

  .toit h2 {
    font-size: 32px;
  }
}

@media (max-width: 620px) {
  .toit-container {
    padding: 0 15px;
  }

  .toit-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .toit-section,
  .toit-cta {
    padding: 52px 0 !important;
  }

  .toit-grid-3 {
    grid-template-columns: 1fr;
  }

  .toit h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .toit h2 {
    font-size: 28px;
  }

  .toit-text {
    font-size: 16px;
  }

  .toit-actions {
    flex-direction: column;
  }

  .toit-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .toit-card-hero,
  .toit-card,
  .toit-doc,
  .toit-warning,
  .toit-seo,
  .toit-cta-card {
    box-shadow: none !important;
  }

  .toit-line {
    flex-direction: column;
    align-items: flex-start;
  }

  .toit-table {
    min-width: 760px;
  }
}


/* =====================================================
   PAGE ENVOI PPV — /Mairie/PPV/Envoi/
   À AJOUTER À LA FIN DU STYLE.CSS
   ===================================================== */

.envppv {
  font-family: Arial, Helvetica, sans-serif;
  background: #f6f8fb;
  color: #102A43;
  width: 100%;
  overflow: hidden;
}

.envppv * {
  box-sizing: border-box;
}

.envppv-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.envppv a {
  text-decoration: none;
  color: #0f8f68;
  font-weight: 900;
}

/* HERO */

.envppv-hero {
  background:
    radial-gradient(circle at top right, rgba(31,166,122,.14), transparent 35%),
    radial-gradient(circle at bottom left, rgba(245,166,35,.18), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eaf4ff 100%);
  padding: 80px 0 90px;
  border-bottom: 1px solid #e2e8f0;
}

.envppv-breadcrumb {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #475569;
  font-size: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.envppv-breadcrumb a {
  color: #475569;
  font-weight: 700;
}

.envppv-breadcrumb span:last-child {
  color: #102A43;
  font-weight: 800;
}

.envppv-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}

.envppv-label {
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
}

.envppv h1 {
  font-size: 58px;
  line-height: 1.04;
  margin: 0;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1.8px;
}

.envppv h2 {
  font-size: 42px;
  line-height: 1.12;
  margin: 0 0 18px;
  color: #102A43;
  font-weight: 900;
  letter-spacing: -1px;
}

.envppv h3 {
  color: #102A43;
  margin: 0 0 10px;
}

.envppv-text {
  color: #475569;
  font-size: 18px;
  line-height: 1.72;
}

.envppv-hero p {
  max-width: 730px;
  margin: 25px 0 32px;
}

.envppv-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.envppv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border-radius: 14px;
  font-weight: 900;
  transition: .2s ease;
  font-size: 15px;
  min-height: 44px;
  min-width: 44px;
  border: none;
  cursor: pointer;
}

.envppv-btn-main {
  background: #08795f;
  color: white !important;
  box-shadow: 0 16px 34px rgba(31,166,122,.24);
}

.envppv-btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.envppv-btn-light {
  background: white;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.envppv-btn-light:hover {
  background: #f8fafc;
  transform: translateY(-2px);
}

.envppv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.envppv-tag {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #1e293b;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 800;
  font-size: 14px;
}

.envppv-tag b {
  color: #0f8f68;
}

/* CARTE HERO */

.envppv-card-hero {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 30px 76px rgba(16,42,67,.16);
}

.envppv-card-inner {
  background: linear-gradient(135deg, #102A43, #173B5C);
  color: white;
  border-radius: 24px;
  padding: 28px;
}

.envppv-card-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  margin-bottom: 8px;
}

.envppv-card-subtitle {
  color: #dbeafe;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.envppv-line {
  background: white;
  color: #102A43;
  border-radius: 15px;
  padding: 14px 15px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-weight: 800;
}

.envppv-line b {
  background: #d1fae5;
  color: #047857;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 12px;
  white-space: nowrap;
}

.envppv-alert {
  margin-top: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 16px;
}

.envppv-alert strong {
  display: block;
  color: #ffffff;
  margin-bottom: 5px;
}

.envppv-alert span {
  color: #dbeafe;
  line-height: 1.55;
  font-size: 14px;
}

/* SECTIONS */

.envppv-section {
  padding: 84px 0;
  background: white;
}

.envppv-section.grey {
  background: #f6f8fb;
}

.envppv-section.dark {
  background: #102A43;
  color: white;
}

.envppv-section.dark h2,
.envppv-section.dark h3 {
  color: white;
}

.envppv-section.dark .envppv-text {
  color: #dbeafe;
}

.envppv-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

/* GRIDS / CARTES */

.envppv-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.envppv-card,
.envppv-doc {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.envppv-doc {
  position: relative;
  overflow: hidden;
}

.envppv-doc::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.envppv-doc-code {
  display: inline-block;
  background: #EAF4FF;
  color: #102A43;
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.envppv-icon {
  min-width: 50px;
  height: 50px;
  border-radius: 16px;
  background: #ECFDF5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 900;
  padding: 0 10px;
}

.envppv-card p,
.envppv-doc p {
  color: #475569;
  line-height: 1.6;
  margin: 0 0 14px;
}

/* FORMULAIRE */

#formulaire {
  scroll-margin-top: 120px;
}

.envppv-split {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 48px;
  align-items: start;
}

.envppv-info-box {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #7c2d12;
  border-radius: 22px;
  padding: 22px;
  margin-top: 28px;
  line-height: 1.65;
}

.envppv-info-box strong {
  display: block;
  margin-bottom: 10px;
  color: #7c2d12;
}

.envppv-info-box ul {
  margin: 0;
  padding-left: 20px;
}

.envppv-info-box li {
  margin-bottom: 6px;
}

.envppv-form {
  background: white;
  border: 1px solid #d9e2ec;
  border-radius: 28px;
  padding: 30px;
  box-shadow: 0 16px 45px rgba(15,23,42,.08);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.envppv-form-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.envppv-form-row.full {
  grid-column: 1 / -1;
}

.envppv-form label {
  color: #102A43;
  font-weight: 900;
  font-size: 14px;
}

.envppv-form input,
.envppv-form select,
.envppv-form textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  border-radius: 14px;
  padding: 14px 15px;
  font-size: 15px;
  color: #102A43;
  outline: none;
  transition: .2s ease;
}

.envppv-form input:focus,
.envppv-form select:focus,
.envppv-form textarea:focus {
  border-color: #0f8f68;
  box-shadow: 0 0 0 3px rgba(15,143,104,.16);
}

.envppv-form textarea {
  resize: vertical;
  min-height: 140px;
}

.envppv-submit {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 4px;
}

.envppv-form-note {
  grid-column: 1 / -1;
  color: #475569;
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
}

/* CARTES SOMBRES */

.envppv-dark-card {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  padding: 24px;
}

.envppv-dark-card strong {
  display: block;
  color: white;
  font-size: 19px;
  margin-bottom: 10px;
}

.envppv-dark-card p {
  color: #dbeafe;
  line-height: 1.65;
  margin: 0 0 14px;
}

.envppv-dark-card a {
  color: #ffffff;
  font-weight: 900;
}

/* RESPONSIVE ENVOI PPV */

@media (max-width: 980px) {
  .envppv-hero-grid,
  .envppv-split {
    grid-template-columns: 1fr;
  }

  .envppv-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .envppv h1 {
    font-size: 42px;
  }

  .envppv h2 {
    font-size: 32px;
  }
}

@media (max-width: 620px) {
  .envppv-container {
    padding: 0 15px;
  }

  .envppv-hero {
    background: #f8fafc !important;
    padding: 38px 0 46px !important;
  }

  .envppv-section {
    padding: 52px 0 !important;
  }

  .envppv-grid-3 {
    grid-template-columns: 1fr;
  }

  .envppv h1 {
    font-size: 32px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.7px !important;
  }

  .envppv h2 {
    font-size: 28px;
  }

  .envppv-text {
    font-size: 16px;
  }

  .envppv-actions {
    flex-direction: column;
  }

  .envppv-btn {
    width: 100%;
    text-align: center;
    padding: 14px 18px;
  }

  .envppv-card-hero,
  .envppv-card,
  .envppv-doc,
  .envppv-form {
    box-shadow: none !important;
  }

  .envppv-line {
    flex-direction: column;
    align-items: flex-start;
  }

  .envppv-form {
    grid-template-columns: 1fr;
    padding: 22px;
    border-radius: 22px;
  }

  .envppv-form-row,
  .envppv-form-row.full,
  .envppv-submit,
  .envppv-form-note {
    grid-column: 1;
  }
}

/* =====================================================
   AJOUT FORMULAIRE PPV — ADRESSE + UPLOADS
   ===================================================== */

.envppv-address-wrap {
  position: relative;
}

.envppv-address-suggestions {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.envppv-address-choice {
  width: 100%;
  text-align: left;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #102A43;
  border-radius: 12px;
  padding: 12px 14px;
  cursor: pointer;
  font-weight: 700;
  line-height: 1.4;
  transition: 0.2s ease;
}

.envppv-address-choice:hover {
  background: #ECFDF5;
  border-color: #0f8f68;
  color: #065f46;
}

.envppv-form input[type="file"] {
  background: #f8fafc;
  border: 1px dashed #94a3b8;
  padding: 14px;
}

.envppv-form input[readonly] {
  background: #f1f5f9;
  color: #334155;
  font-weight: 900;
}

/* =========================
   CONTACT FORM - VERSION PLUS CLASSE
   ========================= */

.envppv-form {
  background: #ffffff;
  border: 1px solid #d9e2ec;
  border-radius: 24px;
  padding: 34px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.envppv-form-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.envppv-form-row.full {
  grid-column: 1 / -1;
}

.envppv-form-row label {
  font-size: 15px;
  font-weight: 800;
  color: #102A43;
  line-height: 1.35;
}

.envppv-form input[type="text"],
.envppv-form input[type="email"],
.envppv-form input[type="tel"],
.envppv-form input[type="file"],
.envppv-form select,
.envppv-form textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #102A43;
  border-radius: 14px;
  padding: 14px 16px;
  font-size: 15px;
  font-family: Arial, Helvetica, sans-serif;
  transition: all 0.2s ease;
  outline: none;
}

.envppv-form textarea {
  min-height: 150px;
  resize: vertical;
}

.envppv-form input:focus,
.envppv-form select:focus,
.envppv-form textarea:focus {
  border-color: #1FA67A;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(31, 166, 122, 0.12);
}

/* Boutons */
.envppv-btn {
  display: inline-block;
  padding: 15px 22px;
  border-radius: 14px;
  text-decoration: none;
  font-weight: 900;
  font-size: 15px;
  transition: all 0.2s ease;
  text-align: center;
  border: none;
  cursor: pointer;
}

.envppv-btn-main {
  background: #1FA67A;
  color: #ffffff !important;
  box-shadow: 0 14px 30px rgba(31, 166, 122, 0.22);
}

.envppv-btn-main:hover {
  background: #188c66;
  transform: translateY(-2px);
}

.envppv-btn-light {
  background: #ffffff;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.envppv-btn-light:hover {
  border-color: #1FA67A;
  color: #1FA67A !important;
}

.envppv-submit {
  grid-column: 1 / -1;
  width: 100%;
}

/* Bloc d’aide / notes */
.envppv-form-note {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.55;
  color: #64748B;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 14px;
}

/* =========================
   CHECKLIST SERVICES - VERSION PREMIUM
   ========================= */

.envppv-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 6px;
}

.envppv-checklist label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #ffffff;
  border: 1px solid #d9e2ec;
  border-radius: 16px;
  padding: 14px 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 15px;
  font-weight: 700;
  color: #102A43;
  line-height: 1.4;
  min-height: 64px;
}

.envppv-checklist label:hover {
  border-color: #1FA67A;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
  transform: translateY(-1px);
}

.envppv-checklist input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #1FA67A;
  cursor: pointer;
}

/* Effet visuel quand la case est cochée */
.envppv-checklist label:has(input[type="checkbox"]:checked) {
  border-color: #1FA67A;
  background: #ECFDF5;
  box-shadow: 0 10px 22px rgba(31, 166, 122, 0.10);
}

/* =========================
   BLOC INFOS A GAUCHE
   ========================= */

.envppv-info-box {
  background: #ffffff;
  border: 1px solid #d9e2ec;
  border-radius: 20px;
  padding: 22px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
  margin-top: 18px;
}

.envppv-info-box strong {
  display: block;
  font-size: 18px;
  color: #102A43;
  margin-bottom: 10px;
}

.envppv-info-box p,
.envppv-info-box li {
  color: #64748B;
  line-height: 1.65;
  font-size: 15px;
}

.envppv-info-box ul {
  margin: 0;
  padding-left: 18px;
}

/* =========================
   ZONE ADRESSE + SUGGESTIONS
   ========================= */

.envppv-address-wrap {
  position: relative;
}

.envppv-address-suggestions {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.envppv-address-choice {
  width: 100%;
  text-align: left;
  background: #ffffff;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  padding: 12px 14px;
  color: #102A43;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.envppv-address-choice:hover {
  border-color: #1FA67A;
  background: #ECFDF5;
}

/* =========================
   SECTIONS / HERO
   ========================= */

.envppv-section {
  padding: 76px 0;
}

.envppv-section.grey {
  background: #f6f8fb;
}

.envppv-section.dark {
  background: #102A43;
}

.envppv-section.dark .envppv-label,
.envppv-section.dark h2,
.envppv-section.dark .envppv-text {
  color: #ffffff;
}

.envppv-hero {
  background:
    radial-gradient(circle at top right, rgba(245,166,35,.20), transparent 35%),
    radial-gradient(circle at bottom left, rgba(31,166,122,.16), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 52%, #eaf4ff 100%);
  padding: 78px 0 70px;
  border-bottom: 1px solid #e2e8f0;
}

.envppv-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

.envppv-center {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}

.envppv-label {
  color: #1FA67A;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 12px;
}

.envppv h1,
.envppv h2,
.envppv h3 {
  color: #102A43;
}

.envppv h1 {
  font-size: 52px;
  line-height: 1.06;
  margin: 0 0 16px;
  font-weight: 900;
  letter-spacing: -1.5px;
}

.envppv h2 {
  font-size: 38px;
  line-height: 1.12;
  margin: 0 0 16px;
  font-weight: 900;
  letter-spacing: -1px;
}

.envppv h3 {
  font-size: 22px;
  line-height: 1.25;
  margin: 0 0 10px;
  font-weight: 800;
}

.envppv-text {
  color: #62748A;
  font-size: 18px;
  line-height: 1.75;
}

.envppv-breadcrumb {
  margin-bottom: 26px;
  font-size: 14px;
  color: #64748B;
}

.envppv-breadcrumb a {
  color: #64748B;
  text-decoration: none;
}

.envppv-breadcrumb span {
  margin: 0 6px;
}

.envppv-split {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 42px;
  align-items: start;
}

/* =========================
   CARTES EN BAS
   ========================= */

.envppv-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 40px;
}

.envppv-doc,
.envppv-dark-card {
  border-radius: 22px;
  padding: 24px;
}

.envppv-doc {
  background: #ffffff;
  border: 1px solid #d9e2ec;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

.envppv-doc-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  background: #ECFDF5;
  color: #1FA67A;
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 14px;
}

.envppv-doc p,
.envppv-doc a {
  color: #64748B;
}

.envppv-doc a,
.envppv-dark-card a {
  color: #1FA67A !important;
  font-weight: 800;
  text-decoration: none;
}

.envppv-dark-card {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
}

.envppv-dark-card strong {
  display: block;
  color: #ffffff;
  font-size: 19px;
  margin-bottom: 10px;
}

.envppv-dark-card p {
  color: #BFDBFE;
  line-height: 1.65;
  margin: 0 0 12px;
}

/* =========================
   MOBILE
   ========================= */

@media (max-width: 980px) {
  .envppv-split,
  .envppv-form,
  .envppv-grid-3 {
    grid-template-columns: 1fr;
  }

  .envppv-checklist {
    grid-template-columns: 1fr;
  }

  .envppv h1 {
    font-size: 40px;
  }

  .envppv h2 {
    font-size: 30px;
  }
}

@media (max-width: 640px) {
  .envppv-container {
    padding: 0 15px;
  }

  .envppv-hero {
    padding: 42px 0 44px;
  }

  .envppv-section {
    padding: 50px 0;
  }

  .envppv-form {
    padding: 22px;
    border-radius: 18px;
    gap: 16px;
    box-shadow: none;
  }

  .envppv h1 {
    font-size: 31px;
    line-height: 1.12;
    letter-spacing: -0.6px;
  }

  .envppv h2 {
    font-size: 27px;
  }

  .envppv-text {
    font-size: 16px;
  }

  .envppv-checklist label {
    min-height: auto;
    padding: 13px 14px;
    font-size: 14px;
  }

  .envppv-btn {
    width: 100%;
  }
}


/* =====================================================
   PAGE PHOTOVOLTAIQUE — /Photovoltaique/
   Version premium corrigée
   ===================================================== */

.page {
  background: #f6f8fb;
  color: #102A43;
  font-family: Arial, Helvetica, sans-serif;
  overflow: hidden;
}

.page * {
  box-sizing: border-box;
}

.page a {
  text-decoration: none;
}

.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}

/* -------------------------
   HERO PHOTOVOLTAIQUE
------------------------- */

.pv-hero {
  position: relative;
  padding: 78px 0 84px;
  background:
    radial-gradient(circle at top right, rgba(104, 185, 20, 0.13), transparent 34%),
    radial-gradient(circle at bottom left, rgba(245, 166, 35, 0.16), transparent 34%),
    linear-gradient(135deg, #ffffff 0%, #f8fafc 52%, #edf7ff 100%);
  border-bottom: 1px solid #e2e8f0;
}

.pv-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 70px;
  background: linear-gradient(to bottom, rgba(246, 248, 251, 0), #f6f8fb);
  pointer-events: none;
}

.hero-mini {
  padding-top: 78px;
  padding-bottom: 86px;
}

.breadcrumb {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 30px;
  color: #64748b;
  font-size: 14px;
}

.breadcrumb a {
  color: #64748b;
  font-weight: 700;
}

.breadcrumb a:hover {
  color: #0f8f68;
}

.hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  gap: 54px;
  align-items: center;
}

.hero-content {
  max-width: 720px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #0f8f68;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
}

.eyebrow::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #68b914;
  box-shadow: 0 0 0 6px rgba(104, 185, 20, 0.12);
}

.hero-content h1 {
  max-width: 760px;
  margin: 0 0 22px;
  color: #102A43;
  font-size: 54px;
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -1.7px;
}

.hero-text {
  max-width: 720px;
  margin: 0 0 28px;
  color: #475569;
  font-size: 18px;
  line-height: 1.75;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 24px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 15px 24px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 900;
  text-align: center;
  transition: 0.22s ease;
  cursor: pointer;
}

.btn-primary,
.btn-main {
  background: #08795f;
  color: #ffffff !important;
  box-shadow: 0 16px 34px rgba(15, 143, 104, 0.24);
}

.btn-primary:hover,
.btn-main:hover {
  background: #065f46;
  transform: translateY(-2px);
}

.btn-secondary,
.btn-light {
  background: #ffffff;
  color: #102A43 !important;
  border: 1px solid #d9e2ec;
}

.btn-secondary:hover,
.btn-light:hover {
  border-color: #0f8f68;
  color: #0f8f68 !important;
  transform: translateY(-2px);
}

.hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hero-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid #dbe4ee;
  color: #29435c;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

/* Carte hero droite */

.hero-card {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid #dbe4ee;
  border-radius: 30px;
  padding: 18px;
  box-shadow: 0 24px 70px rgba(16, 42, 67, 0.13);
  backdrop-filter: blur(10px);
}

.hero-card-inner {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(104, 185, 20, 0.22), transparent 34%),
    linear-gradient(135deg, #102A43 0%, #173B5C 100%);
  color: #ffffff;
  border-radius: 24px;
  padding: 34px;
}

.hero-card-inner::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -70px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(245, 166, 35, 0.14);
}

.hero-card-badge {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #F5A623;
  color: #102A43;
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 24px;
}

.hero-card-inner h2 {
  position: relative;
  z-index: 2;
  margin: 0 0 22px;
  color: #ffffff;
  font-size: 29px;
  line-height: 1.18;
  font-weight: 900;
  letter-spacing: -0.5px;
}

.check-list {
  position: relative;
  z-index: 2;
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 13px;
}

.check-list li {
  position: relative;
  padding-left: 28px;
  color: #e5f0ff;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 700;
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #63d59c;
  font-weight: 900;
}

/* -------------------------
   SECTIONS
------------------------- */

.section {
  padding: 86px 0;
  background: #ffffff;
}

.section-alt {
  background: #f6f8fb;
}

.section-head {
  max-width: 860px;
  margin: 0 0 38px;
}

.section-head.center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.section-head h2 {
  margin: 0 0 16px;
  color: #102A43;
  font-size: 40px;
  line-height: 1.12;
  font-weight: 900;
  letter-spacing: -1px;
}

.section-head p {
  margin: 0;
  color: #5f6f84;
  font-size: 17px;
  line-height: 1.78;
}

/* -------------------------
   CARTES
------------------------- */

.cards-2,
.cards-3,
.cards-4,
.timeline-grid,
.faq-list {
  display: grid;
  gap: 22px;
}

.cards-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cards-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cards-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.info-card,
.mini-card,
.timeline-step,
.faq-item {
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #dbe4ee;
  border-radius: 24px;
  padding: 26px;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.055);
  transition: 0.22s ease;
}

.info-card:hover,
.mini-card:hover,
.timeline-step:hover,
.faq-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.09);
}

.info-card::before,
.timeline-step::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 5px;
  width: 100%;
  background: #0f8f68;
}

.card-icon {
  width: 52px;
  height: 52px;
  border-radius: 17px;
  background: #ecfdf5;
  color: #0f8f68;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  margin-bottom: 18px;
}

.info-card h3,
.mini-card h3,
.timeline-step h3,
.faq-item h3 {
  margin: 0 0 12px;
  color: #102A43;
  font-size: 21px;
  line-height: 1.25;
  font-weight: 900;
}

.info-card p,
.mini-card p,
.timeline-step p,
.faq-item p {
  margin: 0;
  color: #5f6f84;
  font-size: 15.5px;
  line-height: 1.72;
}

.card-link,
.faq-item a {
  display: inline-flex;
  margin-top: 16px;
  color: #0f8f68 !important;
  font-weight: 900;
}

.card-link:hover,
.faq-item a:hover {
  color: #065f46 !important;
}

/* -------------------------
   TIMELINE
------------------------- */

.timeline-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.timeline-step {
  min-height: 230px;
}

.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #0f8f68;
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 16px;
}

/* -------------------------
   SPLIT BOX
------------------------- */

.split-box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
  background: #ffffff;
  border: 1px solid #dbe4ee;
  border-radius: 28px;
  padding: 34px;
  box-shadow: 0 16px 42px rgba(15, 23, 42, 0.06);
}

.split-box h3 {
  margin: 0 0 16px;
  color: #102A43;
  font-size: 24px;
  font-weight: 900;
}

.bullet-list {
  margin: 0;
  padding-left: 20px;
  color: #5f6f84;
  line-height: 1.9;
}

.bullet-list li {
  margin-bottom: 4px;
}

.inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

/* -------------------------
   WARNING BOX
------------------------- */

.warning-box {
  background:
    radial-gradient(circle at top right, rgba(245, 166, 35, 0.13), transparent 34%),
    #fff8f0;
  border: 1px solid #ffd9a8;
  border-radius: 24px;
  padding: 30px;
}

.warning-box h3 {
  margin: 0 0 12px;
  color: #9a4d00;
  font-size: 24px;
  font-weight: 900;
}

.warning-box p {
  margin: 0;
  color: #6f4b1f;
  line-height: 1.75;
}

/* -------------------------
   MINI CARTES
------------------------- */

.mini-card {
  padding: 24px;
}

.mini-card h3 {
  font-size: 19px;
}

.mini-card::before {
  content: "";
  display: block;
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: #0f8f68;
  margin-bottom: 18px;
}

/* -------------------------
   FAQ
------------------------- */

.faq-section {
  background: #ffffff;
}

.faq-list {
  max-width: 980px;
  margin: 0 auto;
}

.faq-item {
  padding: 26px 28px;
}

.faq-item h3 {
  font-size: 20px;
}

/* -------------------------
   CTA FINAL
------------------------- */

.cta-section {
  background: #f6f8fb;
}

.cta-box {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(104, 185, 20, 0.22), transparent 36%),
    linear-gradient(135deg, #102A43 0%, #173B5C 100%);
  color: #ffffff;
  border-radius: 30px;
  padding: 38px;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
  gap: 28px;
  align-items: center;
  box-shadow: 0 26px 70px rgba(16, 42, 67, 0.18);
}

.cta-box::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -90px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: rgba(245, 166, 35, 0.14);
}

.cta-box > * {
  position: relative;
  z-index: 2;
}

.cta-box h2 {
  margin: 0 0 14px;
  color: #ffffff;
  font-size: 36px;
  line-height: 1.14;
  font-weight: 900;
}

.cta-box p {
  margin: 0;
  color: #dbeafe;
  font-size: 17px;
  line-height: 1.75;
}

.cta-actions {
  display: grid;
  gap: 14px;
}

.mt-32 {
  margin-top: 32px;
}

.center {
  text-align: center;
}

/* -------------------------
   RESPONSIVE
------------------------- */

@media (max-width: 1120px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .hero-content {
    max-width: 900px;
  }

  .hero-content h1 {
    max-width: 900px;
  }

  .hero-card {
    max-width: 720px;
  }

  .cards-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timeline-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cta-box,
  .split-box {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .pv-hero {
    padding: 56px 0 64px;
  }

  .hero-content h1 {
    font-size: 40px;
    letter-spacing: -1px;
  }

  .hero-text,
  .section-head p {
    font-size: 16px;
  }

  .section {
    padding: 64px 0;
  }

  .section-head h2 {
    font-size: 32px;
  }

  .cards-2,
  .cards-3,
  .cards-4,
  .timeline-grid {
    grid-template-columns: 1fr;
  }

  .hero-card-inner {
    padding: 26px;
  }

  .hero-card-inner h2 {
    font-size: 25px;
  }

  .cta-box {
    padding: 28px;
  }

  .cta-box h2 {
    font-size: 30px;
  }
}

@media (max-width: 620px) {
  .container {
    padding: 0 15px;
  }

  .pv-hero {
    padding: 42px 0 50px;
    background: #f8fafc;
  }

  .breadcrumb {
    margin-bottom: 22px;
    font-size: 13px;
  }

  .eyebrow {
    font-size: 12px;
  }

  .hero-content h1 {
    font-size: 31px;
    line-height: 1.12;
    letter-spacing: -0.6px;
  }

  .hero-actions {
    flex-direction: column;
  }

  .btn {
    width: 100%;
  }

  .hero-tags span {
    width: 100%;
    justify-content: center;
  }

  .hero-card {
    padding: 12px;
    border-radius: 22px;
    box-shadow: none;
  }

  .hero-card-inner {
    border-radius: 18px;
    padding: 22px;
  }

  .hero-card-inner::after {
    display: none;
  }

  .hero-card-inner h2 {
    font-size: 22px;
  }

  .section {
    padding: 52px 0;
  }

  .section-head {
    margin-bottom: 28px;
  }

  .section-head h2 {
    font-size: 27px;
  }

  .info-card,
  .mini-card,
  .timeline-step,
  .faq-item,
  .split-box,
  .warning-box {
    padding: 22px;
    border-radius: 20px;
    box-shadow: none;
  }

  .cta-box {
    border-radius: 22px;
    padding: 24px;
    box-shadow: none;
  }

  .cta-box h2 {
    font-size: 26px;
  }

  .cta-actions {
    width: 100%;
  }
}

/* =====================================================
   FOOTER — ZONE ENVOI DOSSIER
   ===================================================== */

.dc-footer-spacer {
  height: 18px;
}

.dc-footer-send-zone {
  padding-top: 0;
  border-top: 1px solid rgba(255,255,255,0.10);
}

.dc-footer-send-grid {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 22px;
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.dc-footer-send-grid h3 {
  color: #ffffff;
  font-size: 18px;
  margin: 0 0 8px;
  font-weight: 900;
}

.dc-footer-send-grid p {
  color: #dbeafe;
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.dc-footer-send-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.dc-footer-send-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 11px 15px;
  border-radius: 999px;
  background: #ffffff;
  color: #102A43 !important;
  font-weight: 900;
  font-size: 13px;
  transition: 0.2s ease;
}

.dc-footer-send-links a:hover {
  background: #ECFDF5;
  color: #08795f !important;
  transform: translateY(-2px);
}

@media (max-width: 760px) {
  .dc-footer-send-grid {
    grid-template-columns: 1fr;
  }

  .dc-footer-send-links {
    justify-content: flex-start;
  }

  .dc-footer-send-links a {
    flex: 1 1 calc(50% - 10px);
  }
}

/* =====================================================
   PAGE GRILLE TARIFAIRE INSTALLATEURS
   ===================================================== */

.tarifs-page .tarifs-box {
  max-width: 980px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #dbe4ee;
  border-radius: 26px;
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.07);
  overflow: hidden;
}

.tarifs-page .tarifs-table {
  width: 100%;
}

.tarifs-page .tarifs-row {
  display: grid;
  grid-template-columns: 1fr 180px;
  align-items: center;
  min-height: 58px;
  border-bottom: 1px solid #e2e8f0;
}

.tarifs-page .tarifs-row:last-child {
  border-bottom: none;
}

.tarifs-page .tarifs-table-3 .tarifs-row {
  grid-template-columns: 1fr 180px 180px;
}

.tarifs-page .tarifs-row > div {
  padding: 16px 22px;
  color: #102A43;
  font-size: 16px;
  line-height: 1.4;
}

.tarifs-page .tarifs-row > div:not(:first-child) {
  text-align: center;
  font-weight: 900;
}

.tarifs-page .tarifs-head {
  background: #102A43;
}

.tarifs-page .tarifs-head > div {
  color: #ffffff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 13px;
}

.tarifs-page .tarifs-row:not(.tarifs-head):hover {
  background: #f8fafc;
}

.tarifs-page .tarifs-row:not(.tarifs-head) > div:not(:first-child) {
  color: #08795f;
}

@media (max-width: 760px) {
  .tarifs-page .tarifs-box {
    border-radius: 20px;
    overflow-x: auto;
  }

  .tarifs-page .tarifs-table {
    min-width: 620px;
  }

  .tarifs-page .tarifs-row > div {
    padding: 14px 16px;
    font-size: 15px;
  }
}