/*
Theme Name: Proced.ai
Theme URI: https://proced.ai
Author: Proced.ai
Description: Thème bloc (FSE) sur mesure pour proced.ai. Identité violet, dégradés mesh, glassmorphisme. Tout le contenu est en blocs natifs, modifiable dans l'éditeur.
Version: 3.1.1
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: proced
*/

/* =========================================================
   0. Système de mesures (une seule échelle pour tout le site)
   Points de rupture : 480 (petit mobile), 640, 782 (WordPress), 1024, 1280.
   ========================================================= */
:root {
  --pa-max: 1440px;
  --pa-gutter: clamp(1rem, 4vw, 3rem);
  --pa-section-y: clamp(3rem, 6vw, 5.5rem);
  --pa-section-y-s: clamp(1.5rem, 3vw, 2.5rem);
  --pa-gap: clamp(1rem, 2vw, 1.5rem);
  --pa-card-pad: clamp(1.25rem, 2vw, 1.75rem);
  --pa-radius: 20px;
  --pa-text: 1.0625rem;
  --pa-lh: 1.65;
  --pa-h1: clamp(2rem, 1.3rem + 2.6vw, 3.4rem);
  --pa-h2: clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem);
  --pa-h3: clamp(1.1rem, 1rem + .3vw, 1.25rem);
  --pa-lead: clamp(1.05rem, 1rem + .3vw, 1.2rem);
  --pa-measure: 65ch;
}
@media (max-width: 640px) { :root { --pa-text: 1rem; --pa-measure: 100%; } }

/* =========================================================
   1. Base
   ========================================================= */
html { scroll-behavior: smooth; }
body {
  background:
    radial-gradient(1200px 700px at 85% -10%, rgba(124,58,237,.35), transparent 60%),
    radial-gradient(900px 600px at -10% 20%, rgba(233,70,245,.18), transparent 60%),
    var(--wp--preset--color--base);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  font-size: var(--pa-text);
  line-height: var(--pa-lh);
  overflow-x: hidden;
}
a { text-decoration-thickness: 1px; text-underline-offset: .18em; }
:focus-visible { outline: 2px solid var(--wp--preset--color--fuchsia); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--wp--preset--color--fuchsia); color: #fff; }
img { max-width: 100%; height: auto; }

h1, h2, h3, h4, .wp-block-post-title, .wp-block-site-title { letter-spacing: -.02em; text-wrap: balance; line-height: 1.12; }
h1, .wp-block-post-content h1 { font-size: var(--pa-h1) !important; }
h2, .wp-block-post-content h2 { font-size: var(--pa-h2) !important; }
h3, .wp-block-post-content h3 { font-size: var(--pa-h3) !important; }
p { text-wrap: pretty; }
.has-large-font-size { font-size: var(--pa-lead) !important; line-height: 1.55; }
.has-small-font-size { font-size: .9rem !important; }
.is-style-soft { color: var(--wp--preset--color--soft); }
.is-style-muted { color: var(--wp--preset--color--muted); }

/* Marges verticales homogènes entre blocs de texte */
.wp-block-post-content :is(h1, h2, h3) + p { margin-top: .9rem; }
.wp-block-post-content p + p { margin-top: .75rem; }
.wp-block-post-content p + .wp-block-buttons,
.wp-block-post-content .wp-block-buttons + p { margin-top: 1.5rem; }

/* Largeur de lecture : jamais une ligne de 200 caractères, mais pleine largeur de la carte ou de la colonne */
.wp-block-post-content p { max-width: var(--pa-measure); }
.wp-block-post-content :is(.cta-section, .is-centered) p { margin-left: auto; margin-right: auto; }

/* =========================================================
   2. Sections et largeurs
   Les sections sont des groupes simples ; WordPress limite la colonne à 1440 px
   et pose les marges latérales (theme.json). Ici : rythme vertical et largeurs internes.
   ========================================================= */
.pa-section { padding-top: var(--pa-section-y); padding-bottom: var(--pa-section-y); width: 100%; }
.pa-section.pa-pt-s { padding-top: var(--pa-section-y-s); }
.pa-section.pa-pb-s { padding-bottom: var(--pa-section-y-s); }
.pa-section.pa-pt0 { padding-top: 0; }
.pa-section.pa-pb0 { padding-bottom: 0; }
.pa-section.pa-narrow > * { max-width: 900px; }
.pa-section.pa-medium > * { max-width: 1240px; }
.pa-section.cta-section > * { margin-left: auto; margin-right: auto; }
.pa-section > * + * { margin-top: 0; }
.pa-section > .section-intro + * { margin-top: clamp(1.75rem, 3vw, 2.75rem); }
.pa-section > .card-grid + .wp-block-buttons { margin-top: clamp(1.5rem, 3vw, 2.25rem); }

/* Intro de section : titre + accroche alignés à gauche, ou centrés si .is-centered */
.section-intro h1, .section-intro h2 { max-width: 28ch; }
.section-intro p { max-width: var(--pa-measure); }
.section-intro.is-centered { text-align: center; }
.section-intro.is-centered > * { margin-left: auto; margin-right: auto; }

/* Garde-fou pour les pages créées avec une version antérieure (texte encore marqué "centré") */
.wp-block-post-content :not(.cta-section):not(.is-centered) > :is(h1, h2, h3, p).has-text-align-center,
.wp-block-post-content :is(.feature-card, .step-card, .quote-card, .price-card, .stat, .section-intro:not(.is-centered), .hero-copy) :is(h1, h2, h3, p).has-text-align-center { text-align: left; }
.wp-block-post-content .section-intro:not(.is-centered) > *,
.wp-block-post-content :is(.feature-card, .step-card, .quote-card, .price-card, .stat, .logo-tile, .contact-card, .hero-copy) > * { margin-left: 0; margin-right: 0; }
.wp-block-post-content .wp-block-group.alignfull { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; max-width: none !important; }
.wp-block-post-content :is(.alignfull, .pa-section) > * { max-width: none; margin-left: 0; margin-right: 0; }
.wp-block-post-content .pa-section.pa-narrow > * { max-width: 900px; }
.wp-block-post-content .pa-section.pa-medium > * { max-width: 1240px; }
.wp-block-post-content .cta-section > * { margin-left: auto; margin-right: auto; }
.wp-block-post-content .cta-section p { max-width: 60ch; }

/* =========================================================
   3. Verre et textures
   ========================================================= */
.glass, .wp-block-group.is-style-glass {
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.12); border-top-color: rgba(255,255,255,.22);
  backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-radius: var(--pa-radius);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 30px 60px -30px rgba(0,0,0,.6);
}
.wp-block-group.is-style-glass { padding: var(--pa-card-pad); }
.glass-strong {
  background: linear-gradient(160deg, rgba(255,255,255,.14), rgba(255,255,255,.05));
  border: 1px solid rgba(255,255,255,.18); border-top-color: rgba(255,255,255,.3);
  backdrop-filter: blur(24px) saturate(150%); -webkit-backdrop-filter: blur(24px) saturate(150%);
  border-radius: 24px;
  box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 40px 80px -40px rgba(0,0,0,.7);
}
.feature-card, .price-card, .quote-card, .stat, .logo-tile, .post-card, .wp-block-details.glass {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease;
}
.feature-card:hover, .price-card:hover, .quote-card:hover, .stat:hover, .logo-tile:hover, .post-card:hover {
  transform: translateY(-4px);
  border-color: rgba(196,181,253,.35);
  box-shadow: 0 1px 0 rgba(255,255,255,.1) inset, 0 40px 70px -35px rgba(139,92,246,.55);
}
.glass-pill-wrap { margin-bottom: .75rem !important; }
.glass-pill {
  display: inline-flex; align-items: center; gap: .55rem; padding: .45rem 1rem .45rem .6rem;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 999px;
  font-size: .82rem; color: var(--wp--preset--color--soft);
}
.glass-pill .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--fuchsia); box-shadow: 0 0 12px var(--wp--preset--color--fuchsia); animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .35; transform: scale(.8); } }

.mesh-violet, .wp-block-group.is-style-mesh {
  background:
    radial-gradient(700px 400px at 20% 10%, rgba(233,70,245,.28), transparent 65%),
    radial-gradient(800px 500px at 80% 90%, rgba(124,58,237,.45), transparent 65%),
    linear-gradient(180deg, #1B1233, #120B26);
  border-radius: 28px; overflow: hidden; position: relative;
  padding-left: var(--pa-card-pad); padding-right: var(--pa-card-pad);
}
.wp-block-group.is-style-mesh { padding: clamp(1.5rem, 3vw, 3rem); }
.mesh-violet::after, .wp-block-group.is-style-mesh::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 22px 22px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.35), transparent 80%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.35), transparent 80%);
}
.mesh-violet > * { position: relative; z-index: 1; }
.gradient-text { background: linear-gradient(90deg, #C4B5FD, #E946F5 55%, #A78BFA); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hairline { height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent); }

/* =========================================================
   4. Animations (désactivées si "réduire les animations")
   ========================================================= */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }
.reveal.in-view { opacity: 1; transform: none; }
.card-grid > .reveal:nth-child(2) { transition-delay: .08s; }
.card-grid > .reveal:nth-child(3) { transition-delay: .16s; }
.card-grid > .reveal:nth-child(4) { transition-delay: .24s; }
.card-grid > .reveal:nth-child(5) { transition-delay: .32s; }
.card-grid > .reveal:nth-child(n+6) { transition-delay: .40s; }
.no-js .reveal { opacity: 1; transform: none; }
.hero-copy > * { opacity: 0; animation: rise .8s cubic-bezier(.2,.8,.2,1) forwards; }
.hero-copy > :nth-child(1) { animation-delay: .05s; }
.hero-copy > :nth-child(2) { animation-delay: .15s; }
.hero-copy > :nth-child(3) { animation-delay: .3s; }
.hero-copy > :nth-child(4) { animation-delay: .45s; }
.hero-copy > :nth-child(5) { animation-delay: .55s; }
.hero-demo { opacity: 0; animation: rise 1s .6s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes appear { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal, .hero-copy > *, .hero-demo { opacity: 1 !important; transform: none !important; }
  html { scroll-behavior: auto; }
}

/* =========================================================
   5. En-tête
   ========================================================= */
.site-header { position: sticky; top: 0; z-index: 50; }
.site-header .glass { border-radius: 0; border-left: 0; border-right: 0; border-top: 0; transition: box-shadow .3s ease, border-color .3s ease; }
.site-header.is-scrolled .glass { box-shadow: 0 10px 40px -20px rgba(0,0,0,.8); border-bottom-color: rgba(255,255,255,.16); }
.site-header .wp-block-navigation a { font-weight: 500; color: var(--wp--preset--color--soft); text-decoration: none; position: relative; padding: .25rem 0; }
.site-header .wp-block-navigation a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #8B5CF6, #E946F5); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.site-header .wp-block-navigation a:hover, .site-header .wp-block-navigation .current-menu-item > a { color: #fff; }
.site-header .wp-block-navigation a:hover::after, .site-header .wp-block-navigation .current-menu-item > a::after { transform: scaleX(1); }
.site-header .wp-block-site-title a { font-family: var(--wp--preset--font-family--display); font-weight: 700; letter-spacing: -.03em; text-decoration: none; display: inline-flex; align-items: center; }
.wp-block-site-title.has-logo { margin: 0; line-height: 0; }
.site-logo { display: block; height: 26px; width: auto; }
.site-footer .site-logo { height: 24px; margin-bottom: .9rem; }
@media (max-width: 781px) { .site-logo { height: 22px; } }
.wp-block-navigation__responsive-container.is-menu-open { background: rgba(15,10,31,.97) !important; backdrop-filter: blur(20px); padding: 1.5rem var(--pa-gutter) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 1.1rem; padding-top: 2.5rem; }
.wp-block-navigation__responsive-container.is-menu-open a { font-size: 1.25rem; font-family: var(--wp--preset--font-family--display); }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: #fff; }
@media (max-width: 781px) {
  .site-header .wp-block-buttons .wp-block-button.is-style-glass { display: none; }
  .site-header .wp-block-button__link { font-size: .85rem; padding: .55rem .95rem !important; }
}
@media (max-width: 420px) { .site-header .wp-block-buttons { display: none; } }

/* =========================================================
   6. Boutons
   ========================================================= */
.wp-block-button .wp-block-button__link { font-weight: 600; position: relative; overflow: hidden; white-space: nowrap; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button .wp-block-button__link:active { transform: translateY(0) scale(.98); }
.wp-block-button:not(.is-style-outline):not(.is-style-glass):not(.is-style-fuchsia) .wp-block-button__link {
  background: linear-gradient(135deg, #8B5CF6, #7C3AED 60%, #6D28D9); color: #fff;
  box-shadow: 0 10px 30px -10px rgba(139,92,246,.7), 0 1px 0 rgba(255,255,255,.2) inset;
}
.wp-block-button.is-style-glass .wp-block-button__link { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.wp-block-button.is-style-glass .wp-block-button__link:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); }
.wp-block-button.is-style-fuchsia .wp-block-button__link { background: linear-gradient(135deg, #F472B6, #E946F5 60%, #C026D3); color: #fff; box-shadow: 0 10px 30px -10px rgba(233,70,245,.7); }
.wp-block-buttons { gap: .75rem; }
@media (max-width: 480px) {
  .wp-block-post-content .wp-block-buttons:not(.anchor-nav) { flex-direction: column; align-items: stretch; }
  .wp-block-post-content .wp-block-buttons:not(.anchor-nav) .wp-block-button { width: 100%; }
  .wp-block-post-content .wp-block-buttons:not(.anchor-nav) .wp-block-button__link { width: 100%; text-align: center; }
}
.anchor-nav { flex-wrap: wrap; }
.anchor-nav .wp-block-button__link { font-size: .9rem; padding: .55rem 1rem; }

/* =========================================================
   7. Héros : texte à gauche, démo à droite
   ========================================================= */
.hero-section { padding-top: clamp(2.5rem, 5vw, 5rem); }
.hero-grid { gap: clamp(1.5rem, 4vw, 4rem); }
.hero-copy h1 { max-width: 16ch; background: linear-gradient(180deg, #fff 30%, #C4B5FD); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero-copy p { max-width: 52ch; }
.hero-copy .wp-block-buttons { margin-top: 1.75rem; }
.hero-copy .has-small-font-size { margin-top: 1rem; }
@media (max-width: 1023px) {
  .hero-grid { flex-wrap: wrap !important; }
  .hero-grid > .wp-block-column { flex-basis: 100% !important; }
  .hero-copy h1 { max-width: 20ch; }
}

/* Démo animée */
.demo-window { padding: 0 !important; overflow: hidden; width: 100%; }
.demo-bar { display: flex; align-items: center; gap: .5rem; padding: .8rem 1rem; border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(0,0,0,.15); }
.demo-bar i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.18); display: inline-block; }
.demo-bar .demo-url { margin-left: .75rem; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; color: var(--wp--preset--color--muted); background: rgba(255,255,255,.05); border-radius: 8px; padding: .35rem .7rem; }
.demo-bar .demo-rec { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; color: #FDA4AF; font-weight: 600; white-space: nowrap; }
.demo-bar .demo-rec::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #FB7185; box-shadow: 0 0 10px #FB7185; animation: pulse 1.4s ease-in-out infinite; }
.demo-body { display: grid; grid-template-columns: 1.1fr 1fr; }
.demo-screen { padding: 1.25rem; border-right: 1px solid rgba(255,255,255,.08); }
.demo-screen .fake { height: 12px; border-radius: 6px; background: rgba(255,255,255,.08); margin-bottom: 10px; position: relative; overflow: hidden; }
.demo-screen .fake::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent); animation: shimmer 2.2s linear infinite; }
@keyframes shimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.demo-screen .fake.w40 { width: 40%; } .demo-screen .fake.w70 { width: 70%; } .demo-screen .fake.w55 { width: 55%; }
.demo-screen .fake-btn { display: inline-block; margin-top: 8px; padding: 8px 14px; border-radius: 8px; background: rgba(124,58,237,.35); border: 1px solid rgba(167,139,250,.5); font-size: .75rem; color: #EDE9FE; position: relative; }
.demo-screen .fake-btn .cursor { position: absolute; right: -14px; bottom: -14px; width: 16px; height: 16px; animation: click 4.5s ease-in-out infinite; }
.demo-screen .fake-btn .ripple { position: absolute; inset: 0; border-radius: 8px; border: 2px solid rgba(233,70,245,.8); opacity: 0; animation: ripple 4.5s ease-out infinite; }
@keyframes click { 0%,100% { transform: translate(18px, 14px); } 30%, 45% { transform: translate(0,0) scale(1); } 38% { transform: translate(0,0) scale(.8); } }
@keyframes ripple { 36% { opacity: .9; transform: scale(1); } 60% { opacity: 0; transform: scale(1.25); } 100% { opacity: 0; } }
.demo-steps { padding: 1.25rem; display: flex; flex-direction: column; gap: .7rem; }
.demo-steps .lbl { font-size: .72rem; color: var(--wp--preset--color--muted); margin-bottom: .2rem; display: flex; align-items: center; gap: .5rem; }
.demo-steps .ai-tag { font-size: .62rem; font-weight: 700; padding: .1rem .4rem; border-radius: 4px; background: linear-gradient(135deg, #8B5CF6, #E946F5); color: #fff; letter-spacing: .04em; }
.demo-step { display: flex; gap: .7rem; align-items: flex-start; padding: .65rem .75rem; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); font-size: .82rem; color: var(--wp--preset--color--soft); opacity: 0; transform: translateY(6px); animation: appear .5s ease forwards; }
.demo-step:nth-child(2) { animation-delay: .4s; } .demo-step:nth-child(3) { animation-delay: 1.2s; } .demo-step:nth-child(4) { animation-delay: 2s; } .demo-step:nth-child(5) { animation-delay: 2.8s; }
.demo-step b { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .7rem; color: #fff; background: linear-gradient(135deg, #8B5CF6, #E946F5); }
.demo-step.is-typing::after { content: ""; display: inline-block; width: 7px; height: 14px; margin-left: 4px; background: var(--wp--preset--color--fuchsia); vertical-align: -3px; animation: blink 1s step-end infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (max-width: 640px) { .demo-body { grid-template-columns: 1fr; } .demo-screen { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); } .demo-bar .demo-url { display: none; } }

/* =========================================================
   8. Grilles et cartes
   Colonnes explicites : 3 cartes (≥1024), 2 (≥640), 1 en dessous.
   ========================================================= */
.card-grid, .stats-row { display: grid; gap: var(--pa-gap); align-items: stretch; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card-grid > *, .stats-row > * { margin: 0 !important; min-width: 0; }
.steps-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.price-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1279px) { .price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023px) {
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 899px) { .steps-grid { grid-template-columns: 1fr; } .stats-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .card-grid, .price-grid { grid-template-columns: 1fr; }
  .logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.feature-card { padding: var(--pa-card-pad); height: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.feature-card .icon-tile {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; margin: 0 0 1rem;
  background: linear-gradient(135deg, rgba(139,92,246,.35), rgba(233,70,245,.2)); border: 1px solid rgba(196,181,253,.35);
  box-shadow: 0 1px 0 rgba(255,255,255,.25) inset; transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
}
.feature-card:hover .icon-tile { transform: translateY(-3px) rotate(-4deg); box-shadow: 0 12px 24px -12px rgba(233,70,245,.6), 0 1px 0 rgba(255,255,255,.3) inset; }
.feature-card .icon-tile svg { width: 22px; height: 22px; stroke: #EDE9FE; }
.feature-card h3 { margin: 0 0 .5rem !important; }
.feature-card p { margin: 0 !important; max-width: none; }

/* Étapes : numéro à gauche, texte à droite */
.wp-block-group.step-card { padding: .5rem 0; display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 1rem; align-items: start; }
.step-card > .step-num { grid-column: 1; grid-row: 1 / span 2; }
.step-card > h3 { grid-column: 2; grid-row: 1; margin: .2rem 0 .45rem !important; }
.step-card > p:not(.step-num) { grid-column: 2; grid-row: 2; margin: 0 !important; max-width: none; }
.step-num { font-family: var(--wp--preset--font-family--display); font-size: 2.4rem; line-height: 1; font-weight: 700; margin: 0 !important; text-align: right; background: linear-gradient(180deg, #E946F5, rgba(233,70,245,.15)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mesh-violet .steps-grid { gap: clamp(1.25rem, 3vw, 2.5rem); }
.mesh-violet { padding-top: var(--pa-section-y); padding-bottom: var(--pa-section-y); }

.stat { padding: 1.25rem var(--pa-card-pad); }
.stat-num { font-family: var(--wp--preset--font-family--display); font-size: 1.9rem; font-weight: 700; line-height: 1; margin: 0 0 .35rem !important; background: linear-gradient(90deg, #fff, #C4B5FD); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat p:last-child { margin: 0 !important; }
.logo-tile { padding: 1rem .75rem; text-align: center; }
.logo-tile p { margin: 0 !important; max-width: none; }

/* =========================================================
   9. Tarifs
   ========================================================= */
.price-toggle { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: clamp(1.5rem, 3vw, 2.25rem) !important; margin-bottom: clamp(1.5rem, 3vw, 2.25rem) !important; }
.price-toggle .seg { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.price-toggle button { font: inherit; font-size: .9rem; font-weight: 500; color: var(--wp--preset--color--soft); background: transparent; border: 0; cursor: pointer; padding: .5rem 1.1rem; border-radius: 999px; display: inline-flex; align-items: center; gap: .5rem; transition: color .25s ease, background .25s ease, box-shadow .25s ease; }
.price-toggle button:hover { color: #fff; }
.price-toggle button.is-active { color: #fff; background: linear-gradient(135deg, #8B5CF6, #7C3AED); box-shadow: 0 8px 20px -8px rgba(139,92,246,.8), 0 1px 0 rgba(255,255,255,.2) inset; }
.price-toggle .badge { font-size: .68rem; font-weight: 700; padding: .12rem .45rem; border-radius: 999px; background: linear-gradient(135deg, #F472B6, #E946F5); color: #fff; white-space: nowrap; }

.price-card { padding: var(--pa-card-pad); height: 100%; display: flex; flex-direction: column; align-items: stretch; }
.price-card h3 { margin: 0 !important; }
.price-card .price { font-family: var(--wp--preset--font-family--display); font-size: 2.1rem; font-weight: 700; letter-spacing: -.03em; line-height: 1; margin: .75rem 0 .35rem !important; max-width: none; }
.price-card .price small { font-size: .95rem; font-weight: 500; color: var(--wp--preset--color--muted); letter-spacing: 0; }
.price-card .price .amount { display: inline-block; transition: opacity .2s ease, transform .2s ease; }
.price-card .price.is-switching .amount { opacity: 0; transform: translateY(-6px); }
.price-card .price-note { display: block; font-family: var(--wp--preset--font-family--body); font-size: .8rem; font-weight: 400; letter-spacing: 0; color: var(--wp--preset--color--muted); margin-top: .35rem; min-height: 1.2em; }
.price-card .price-list { list-style: none; padding: 0; margin: 1.25rem 0 1.5rem !important; display: grid; gap: .55rem; color: var(--wp--preset--color--soft); font-size: .95rem; }
.price-card .price-list li { padding-left: 1.6rem; position: relative; }
.price-card .price-list li::before { content: ""; position: absolute; left: 0; top: .3em; width: 15px; height: 15px; border-radius: 50%; background: linear-gradient(135deg, #8B5CF6, #E946F5); }
.price-card .price-list li::after { content: ""; position: absolute; left: 4px; top: .3em; width: 7px; height: 4px; margin-top: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.price-card .wp-block-buttons { margin-top: auto !important; width: 100%; }
.price-card .wp-block-button, .price-card .wp-block-button__link { width: 100%; text-align: center; }
.price-card.is-featured { position: relative; border-color: rgba(233,70,245,.5); box-shadow: 0 0 0 1px rgba(233,70,245,.25), 0 40px 90px -40px rgba(233,70,245,.5); }
.price-card.is-featured::before { content: "Le plus choisi"; position: absolute; top: -13px; left: var(--pa-card-pad); padding: .3rem .8rem; border-radius: 999px; font-size: .75rem; font-weight: 600; color: #fff; background: linear-gradient(135deg, #F472B6, #E946F5); white-space: nowrap; }

.compare-table { padding: .5rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare-table table { border-collapse: collapse; width: 100%; min-width: 720px; }
.compare-table td, .compare-table th { border: 0; border-bottom: 1px solid rgba(255,255,255,.08); padding: .75rem .9rem; color: var(--wp--preset--color--soft); text-align: center; font-size: .9rem; }
.compare-table th { color: #fff; font-family: var(--wp--preset--font-family--display); }
.compare-table tbody tr:last-child td { border-bottom: 0; }
.compare-table td:first-child { color: #fff; font-weight: 500; text-align: left; }
.compare-table tbody tr:hover td { background: rgba(255,255,255,.03); }

/* =========================================================
   10. Témoignages, FAQ
   ========================================================= */
.quote-card { padding: var(--pa-card-pad); height: 100%; }
.quote-card .wp-block-quote { margin: 0; border: 0; padding: 0; }
.quote-card .wp-block-quote p { font-size: 1.05rem; line-height: 1.55; margin: 0 0 1rem; max-width: none; }
.quote-card cite { font-style: normal; color: var(--wp--preset--color--muted); font-size: .9rem; display: block; }
.quote-card cite::before { content: ""; display: block; width: 32px; height: 2px; margin: 0 0 .8rem; background: linear-gradient(90deg, #8B5CF6, #E946F5); border-radius: 2px; }

.faq .section-intro + .wp-block-details { margin-top: clamp(1.25rem, 2.5vw, 2rem); }
.faq .wp-block-details { padding: 1.1rem 1.35rem; margin: 0 0 .75rem !important; text-align: left; }
.faq .wp-block-details summary { cursor: pointer; font-weight: 600; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq .wp-block-details summary::-webkit-details-marker { display: none; }
.faq .wp-block-details summary::after { content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 1.3rem; line-height: 1; color: #fff; background: rgba(255,255,255,.08); transition: transform .3s ease, background .3s ease; }
.faq .wp-block-details[open] summary::after { transform: rotate(45deg); background: linear-gradient(135deg, #8B5CF6, #E946F5); }
.faq .wp-block-details[open] { border-color: rgba(196,181,253,.3); }
.faq .wp-block-details p { margin: .85rem 0 0 !important; animation: appear .35s ease; max-width: none; }

/* =========================================================
   11. Sections texte + image (Produit, Solutions, Contact)
   ========================================================= */
.feature-split, .contact-split { align-items: center; gap: clamp(1.5rem, 4vw, 4rem); }
.feature-split .wp-block-column > * + * { margin-top: 1rem; }
.feature-split .wp-block-column p { max-width: none; }
.wp-block-image.glass { padding: .5rem; margin: 0; }
.wp-block-image.glass img { display: block; width: 100%; border-radius: 16px !important; }
.solution-block { scroll-margin-top: 90px; }
.solution-block + .solution-block { border-top: 1px solid rgba(255,255,255,.06); }
@media (max-width: 781px) {
  .feature-split.is-reversed { flex-direction: column-reverse; }
  .feature-split .wp-block-column, .contact-split .wp-block-column { flex-basis: 100% !important; }
}

/* =========================================================
   12. Blog
   ========================================================= */
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pa-gap); }
@media (max-width: 1023px) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .post-grid { grid-template-columns: 1fr; } }
.post-card { overflow: hidden; height: 100%; }
.post-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.post-card .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.post-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.post-card .post-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.post-card .wp-block-post-title { font-size: 1.15rem !important; margin: .5rem 0; }
.post-card .wp-block-post-title a { text-decoration: none; color: #fff; }
.post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--lavender); }
.post-card .wp-block-post-date, .post-card .wp-block-post-terms { font-size: .8rem; color: var(--wp--preset--color--muted); }
.post-card .wp-block-post-excerpt__more-text { display: none; }
.wp-block-post-content:has(.pa-section) ~ *, main:has(.pa-section) > .page-title { display: none; }
/* Colonne de lecture (720 px) uniquement pour les textes longs : articles, pages légales. Jamais pour une page marketing. */
.entry-content:not(:has(.pa-section)) { max-width: 720px; }
.entry-content:not(:has(.pa-section)) > * + * { margin-top: 1.25rem; }
.entry-content img { border-radius: 16px; }
.entry-content h2, .entry-content h3 { margin-top: 2.5rem; }
.single-featured img { border-radius: 20px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { color: var(--wp--preset--color--soft); padding: .4rem .7rem; border-radius: 8px; }
.wp-block-query-pagination .current { background: rgba(255,255,255,.08); color: #fff; }
.post-nav { gap: 1rem; }
.post-nav .wp-block-post-navigation-link { flex: 1 1 200px; }
.post-nav .wp-block-post-navigation-link a { text-decoration: none; }

/* =========================================================
   13. Contact
   ========================================================= */
.contact-split .feature-card { height: auto; }
.contact-split .feature-card + .feature-card { margin-top: 1rem !important; }
.contact-card { padding: var(--pa-card-pad); }
.contact-card h2 { margin-bottom: 1.25rem !important; }
.contact-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .contact-form .row { grid-template-columns: 1fr; } }
.contact-form input, .contact-form textarea, .contact-form select {
  width: 100%; padding: .85rem 1rem; border-radius: 12px; color: #fff; font: inherit;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.contact-form select option { background: #1B1233; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { outline: none; border-color: var(--wp--preset--color--lavender); background: rgba(255,255,255,.09); box-shadow: 0 0 0 3px rgba(167,139,250,.25); }
.contact-form label { display: block; font-size: .85rem; color: var(--wp--preset--color--soft); margin-bottom: .35rem; }
.contact-form .field { margin-bottom: 1rem; }
.contact-form .hp { position: absolute; left: -9999px; }
.contact-form button { width: 100%; font: inherit; font-weight: 600; color: #fff; border: 0; cursor: pointer; padding: .95rem 1.5rem; border-radius: 999px; background: linear-gradient(135deg, #8B5CF6, #7C3AED 60%, #6D28D9); box-shadow: 0 10px 30px -10px rgba(139,92,246,.7); transition: transform .2s ease, box-shadow .2s ease; }
.contact-form button:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -12px rgba(139,92,246,.9); }
.contact-notice { padding: 1rem 1.25rem; margin-bottom: 1rem; animation: appear .4s ease; }
.contact-notice.is-ok { border-color: rgba(167,139,250,.5); }
.contact-notice.is-error { border-color: rgba(251,113,133,.5); }

/* =========================================================
   14. Pied de page
   ========================================================= */
.site-footer a { color: var(--wp--preset--color--soft); text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer .wp-block-site-title a { font-family: var(--wp--preset--font-family--display); text-decoration: none; }
.site-footer .wp-block-list { list-style: none; padding: 0; font-size: .95rem; }
.site-footer .wp-block-list li { margin: .45rem 0; }
.site-footer .footer-title { margin-bottom: .75rem !important; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: .95rem; color: #fff; }
.site-footer .wp-block-columns { gap: clamp(1.5rem, 3vw, 3rem); }
@media (max-width: 781px) {
  .site-footer .wp-block-columns { flex-wrap: wrap !important; }
  .site-footer .wp-block-column:first-child { flex-basis: 100% !important; }
  .site-footer .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
}
