:root {
  --dpp-blue: #2f6bff;
  --dpp-ink: #152321;
  --dpp-text: #4b5b5a;
  --dpp-green: #22b573;
  --dpp-green-dark: #167a53;
  --dpp-green-soft: #e8f7f0;
  --dpp-muted: #f7f9fa;
  --dpp-white: #ffffff;
  --dpp-border: #dce8e3;
  --dpp-shadow: 0 14px 40px rgba(21, 35, 33, 0.07);
  --dpp-radius: 20px;
  --dpp-space: clamp(4rem, 8vw, 7rem);
  --dpp-content: 1180px;
}

.dpp-pattern {
  box-sizing: border-box;
  color: var(--dpp-text);
  font-size: clamp(1rem, 0.96rem + 0.18vw, 1.125rem);
  line-height: 1.7;
}

.dpp-pattern *, .dpp-pattern *::before, .dpp-pattern *::after { box-sizing: inherit; }
.dpp-pattern > * { width: min(calc(100% - 2rem), var(--dpp-content)); }
.dpp-pattern h1, .dpp-pattern h2, .dpp-pattern h3 { color: var(--dpp-ink); line-height: 1.15; letter-spacing: -0.025em; }
.dpp-pattern h3 { font-size: clamp(1.18rem, 1.08rem + 0.35vw, 1.45rem); margin: 0 0 0.75rem; }
.dpp-pattern p { margin-top: 0; }

.dpp-hero { padding: var(--dpp-hero-top, 120px) 0 clamp(3.25rem, 6vw, 5.5rem); background: var(--dpp-white); }
.dpp-hero__columns { gap: clamp(2.5rem, 6vw, 6rem); }
.dpp-hero__title { font-size: clamp(2.2rem, 4vw, 3.85rem); max-width: 12.5ch; margin: 0 0 1.65rem; }
.dpp-hero .dpp-lead { max-width: 43rem; margin-bottom: 0; }
.dpp-lead { color: var(--dpp-ink); font-size: clamp(1.08rem, 1rem + 0.35vw, 1.3rem); }
.dpp-hero__image img { width: 100%; border-radius: clamp(22px, 4vw, 38px); box-shadow: var(--dpp-shadow); }

.dpp-section { padding: var(--dpp-space) 0; }
.dpp-section--muted { background: var(--dpp-muted); }
.dpp-section--dark { background: var(--dpp-ink); color: #dce7e2; }
.dpp-section--dark .dpp-section__title, .dpp-section--dark h3 { color: var(--dpp-white); }
.dpp-pattern.dpp-section--dark h2, .dpp-pattern.dpp-section--dark h3 { color: #ffffff; }
.dpp-pattern.dpp-section--dark p, .dpp-pattern.dpp-section--dark li { color: #dce7e2; }
.dpp-section__title { font-size: clamp(1.9rem, 3.2vw, 3rem); margin: 0 auto 1.25rem; }
.dpp-section__intro { max-width: 720px; margin: 0 auto clamp(2.3rem, 5vw, 4rem); }

.dpp-actions { gap: 0.8rem; margin: 2.35rem 0 2.1rem; }
.dpp-hero .dpp-actions { margin: 2rem 0 1.65rem; }
.dpp-button .wp-block-button__link { border: 2px solid var(--dpp-green); border-radius: 999px; font-weight: 700; line-height: 1.25; padding: 0.92rem 1.45rem; transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.dpp-button--primary .wp-block-button__link { background: var(--dpp-green); color: var(--dpp-white); }
.dpp-button--primary .wp-block-button__link:hover, .dpp-button--primary .wp-block-button__link:focus { background: var(--dpp-green-dark); border-color: var(--dpp-green-dark); transform: translateY(-1px); }
.dpp-button--secondary .wp-block-button__link { background: var(--dpp-white); border-color: var(--dpp-green); color: var(--dpp-green); }
.dpp-button--secondary .wp-block-button__link:hover, .dpp-button--secondary .wp-block-button__link:focus { background: var(--dpp-green); border-color: var(--dpp-green); color: var(--dpp-white); }
.dpp-button--small .wp-block-button__link { background: transparent; color: var(--dpp-green); }
.dpp-button--small .wp-block-button__link:hover { background: var(--dpp-green-soft); }
.dpp-button--small .wp-block-button__link { padding: 0.62rem 1rem; font-size: 0.93rem; }
.dpp-button .wp-block-button__link:focus-visible, .dpp-faq summary:focus-visible { outline: 3px solid var(--dpp-blue); outline-offset: 3px; }

.dpp-trust-list { list-style: none; margin: 0; padding: 0; }
.dpp-trust-list li { position: relative; padding: 0.45rem 0 0.45rem 2rem; }
.dpp-trust-list li::before { content: "✓"; position: absolute; left: 0; top: 0.4rem; color: var(--dpp-green); font-weight: 800; }
.dpp-trust-list--inline { display: flex; flex-wrap: wrap; gap: 0.35rem 1.4rem; margin-top: 0.4rem; font-size: 0.93rem; }

.dpp-cards { align-items: stretch !important; gap: 1.25rem; margin-bottom: 1.25rem; }
.dpp-card { background: var(--dpp-white); border: 1px solid var(--dpp-border); border-radius: var(--dpp-radius); box-shadow: var(--dpp-shadow); padding: clamp(1.45rem, 3vw, 2.2rem); }
.dpp-card p:last-child { margin-bottom: 0; }
.dpp-card--compact { box-shadow: none; }
.dpp-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.3rem; border-radius: 14px; background: var(--dpp-green-soft); color: var(--dpp-green); font-size: 1.35rem; font-weight: 800; }
.dpp-profile { display: flex; flex-direction: column; }
.dpp-profile > .wp-block-buttons { margin-top: auto; padding-top: 0.8rem; }

.dpp-timeline { max-width: 740px; margin-top: 3rem; }
.dpp-step { gap: 1.25rem; margin: 0; padding: 1.2rem 1.4rem; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); border-radius: var(--dpp-radius); }
.dpp-step h3 { margin: 0; }
.dpp-step__number { display: grid; place-items: center; flex: 0 0 3rem; width: 3rem; height: 3rem; margin: 0; border-radius: 50%; background: var(--dpp-green); color: var(--dpp-white); font-weight: 800; }
.dpp-step__arrow { color: #78b69d; font-size: 1.7rem; line-height: 1; margin: 0.65rem 0; }

.dpp-confidence { gap: clamp(2rem, 7vw, 6rem); }
.dpp-check-panel { background: var(--dpp-white); border: 1px solid var(--dpp-border); border-radius: var(--dpp-radius); box-shadow: var(--dpp-shadow); padding: clamp(1.5rem, 4vw, 2.7rem); }
.dpp-check-panel .dpp-trust-list li { border-bottom: 1px solid var(--dpp-border); padding-top: 0.8rem; padding-bottom: 0.8rem; }
.dpp-check-panel .dpp-trust-list li:last-child { border-bottom: 0; }

.dpp-cta { padding: clamp(4rem, 8vw, 6.5rem) 0; background: var(--dpp-green); color: var(--dpp-white); }
.dpp-pattern.dpp-cta h2, .dpp-pattern.dpp-cta h3, .dpp-pattern.dpp-cta p, .dpp-pattern.dpp-cta li { color: #ffffff; }
.dpp-cta__title { color: var(--dpp-white) !important; font-size: clamp(2rem, 4vw, 3.5rem); max-width: 850px; margin: 0 auto 1.8rem; }
.dpp-button--light .wp-block-button__link { background: var(--dpp-white); border-color: var(--dpp-white); color: var(--dpp-green-dark); }
.dpp-button--light .wp-block-button__link:hover { background: var(--dpp-green-soft); border-color: var(--dpp-green-soft); }
.dpp-cta__note { opacity: .85; font-size: .92rem; margin-bottom: 0; }

.dpp-faq-section > .dpp-faq { max-width: 860px; }
.dpp-faq { margin: 0 auto 0.8rem; padding: 0; border: 1px solid var(--dpp-border); border-radius: 16px; background: var(--dpp-white); overflow: hidden; }
.dpp-faq summary { position: relative; cursor: pointer; color: var(--dpp-ink); font-weight: 700; padding: 1.3rem 3.5rem 1.3rem 1.4rem; list-style: none; }
.dpp-faq summary::-webkit-details-marker { display: none; }
.dpp-faq summary::after { content: "+"; position: absolute; right: 1.35rem; top: 50%; translate: 0 -50%; color: var(--dpp-green); font-size: 1.5rem; }
.dpp-faq[open] summary::after { content: "−"; }
.dpp-faq > p { margin: 0; padding: 0 1.4rem 1.4rem; }

@media (max-width: 921px) {
  .dpp-hero__columns, .dpp-confidence { flex-wrap: wrap !important; }
  .dpp-hero__columns > .wp-block-column, .dpp-confidence > .wp-block-column { flex-basis: 100% !important; }
  .dpp-hero__title { max-width: 12.5ch; }
  .dpp-hero__media { max-width: 640px; }
  .dpp-cards--four { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dpp-cards--four > .wp-block-column { width: auto; }
}

@media (max-width: 781px) {
  .dpp-cards { display: grid !important; grid-template-columns: 1fr; }
  .dpp-cards > .wp-block-column { width: 100%; }
}

@media (max-width: 600px) {
  .dpp-pattern > * { width: min(calc(100% - 1.25rem), var(--dpp-content)); }
  .dpp-hero { padding-top: var(--dpp-hero-top, 120px); }
  .dpp-hero__title { max-width: 13ch; font-size: clamp(2rem, 9.5vw, 2.65rem); }
  .dpp-actions, .dpp-actions .wp-block-button, .dpp-actions .wp-block-button__link { width: 100%; }
  .dpp-actions .wp-block-button__link { text-align: center; }
  .dpp-trust-list--inline { display: block; }
  .dpp-cards--four { grid-template-columns: 1fr; }
  .dpp-step { align-items: center !important; padding: 1rem; }
  .dpp-step__number { flex-basis: 2.65rem; width: 2.65rem; height: 2.65rem; }
  .dpp-step h3 { font-size: 1.08rem; }
}

/* Ajustement visuel du logo géré par Astra, sans déformer l'image. */
.site-header .custom-logo-link img.custom-logo,
.ast-site-identity .custom-logo-link img.custom-logo {
  height: auto;
  transform: scale(0.88);
  transform-origin: left center;
}

@media (max-width: 600px) {
  .site-header .custom-logo-link img.custom-logo,
  .ast-site-identity .custom-logo-link img.custom-logo {
    transform: scale(0.9);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dpp-button .wp-block-button__link { transition: none; }
}
