/*
Theme Name: PredexIA AI Automation
Theme URI: https://predexia.com
Author: PredexIA
Author URI: https://predexia.com
Description: Thème WordPress haute-conversion pour PredexIA — AI Automation Agency. Landing page éditable depuis le Customizer. Formulaire de contact fonctionnel intégré.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: predexia
Tags: landing-page, business, one-page, custom-logo, custom-colors, editor-style
*/

/* =========================================================
   PredexIA — AI Automation Agency
   Direction : Editorial Tech-Industrial
   Signature : gros chiffres typographiques en filigrane,
   gradient bleu→cyan→vert (charte), accent magenta sur CTA,
   grilles cassées, sections rythmées clair/sombre.
   ========================================================= */

:root{
  /* couleurs charte PredexIA */
  --brand-blue:        #2F7BFF;
  --brand-blue-deep:   #1E40AF;
  --brand-cyan:        #00C2D7;
  --brand-green:       #1FD583;
  --brand-magenta:     #FF3D8A;
  --brand-magenta-soft:#FFB1CB;

  /* neutres teintés */
  --ink-950: #07091B;
  --ink-900: #0E1230;
  --ink-800: #1A2046;
  --ink-700: #2A3163;
  --ink-500: #5A6190;
  --ink-400: #7D85AC;
  --ink-300: #B5BBD4;
  --ink-200: #DDE0EE;
  --ink-100: #EEF0F8;
  --ink-50:  #F6F7FC;
  --paper:   #FBFBFE;
  --white:   #FFFFFF;

  --bg-canvas:    var(--paper);
  --bg-surface:   var(--white);
  --bg-deep:      var(--ink-950);
  --text-primary: var(--ink-950);
  --text-muted:   var(--ink-500);
  --border-subtle: rgba(14, 18, 48, 0.08);

  --grad-flow: linear-gradient(135deg, var(--brand-blue) 0%, var(--brand-cyan) 50%, var(--brand-green) 100%);
  --grad-flow-soft: linear-gradient(135deg, rgba(47,123,255,.12), rgba(0,194,215,.10), rgba(31,213,131,.10));
  --grad-magenta: linear-gradient(135deg, #FF3D8A 0%, #FF6B5C 100%);

  --font-display: 'Bricolage Grotesque', 'Arial Black', sans-serif;
  --font-body:    'Outfit', system-ui, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;

  --radius-sm: 4px;
  --radius-md: 12px;
  --radius-lg: 22px;
  --radius-full: 999px;

  --shadow-card: 0 1px 0 rgba(14,18,48,.04), 0 22px 50px -28px rgba(47,123,255,.28);
  --shadow-cta:  0 18px 40px -10px rgba(255,61,138,.45), 0 4px 12px -4px rgba(255,61,138,.35);

  --ease-signature: cubic-bezier(.16,.84,.2,1);
}

/* ===== Reset & base ===== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.55;
  color:var(--text-primary);
  background:var(--bg-canvas);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
button{ font-family:inherit; cursor:pointer; }
a{ color:inherit; text-decoration:none; }

/* ===== Utilitaires layout ===== */
.container{
  width:100%;
  max-width:1240px;
  margin-inline:auto;
  padding-inline:24px;
}
@media (min-width:768px){ .container{ padding-inline:40px; } }

/* ===== Typographie ===== */
.display{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-0.025em;
  line-height:1.02;
}
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.14em;
  color:var(--brand-blue);
}
.eyebrow--light{ color: rgba(255,255,255,.65); }
.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 16px;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-full);
  background:var(--white);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-700);
}
.kicker .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--brand-green);
  box-shadow:0 0 0 4px rgba(31,213,131,.18);
  animation: pulse 2.4s infinite var(--ease-signature);
}
@keyframes pulse{
  0%,100% { box-shadow:0 0 0 4px rgba(31,213,131,.18); }
  50% { box-shadow:0 0 0 8px rgba(31,213,131,.05); }
}

.grad-text{
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.green-text{ color:var(--brand-green); }

/* ===== NAV ===== */
.nav{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  background: rgba(251,251,254,.78);
  border-bottom:1px solid var(--border-subtle);
}
.nav__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
}
.logo{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-display);
  font-weight:800;
  font-size:20px;
  letter-spacing:-0.02em;
}
.logo img{
  max-height: 44px;
  width: auto;
}
.logo__mark{
  width:30px; height:30px;
  border-radius:8px;
  background: var(--grad-flow);
  display:grid; place-items:center;
  color:white;
  font-family:var(--font-mono);
  font-size:14px;
  font-weight:600;
  box-shadow:0 6px 16px -6px rgba(47,123,255,.6);
}
.nav__cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px;
  border-radius:var(--radius-full);
  background:var(--ink-950);
  color:var(--white) !important;
  font-weight:500;
  font-size:14px;
  transition: transform .25s var(--ease-signature), background .25s;
}
.nav__cta:hover{ transform: translateY(-1px); background:var(--brand-blue); }

/* ===== HERO ===== */
.hero{
  position:relative;
  padding-top:80px;
  padding-bottom:120px;
  overflow:hidden;
  background: var(--paper);
}
.hero__bg{
  position:absolute; inset:0; pointer-events:none; z-index:0;
}
.hero__bg::before{
  content: attr(data-bg-num);
  position:absolute;
  right:-30px; top:60px;
  font-family:var(--font-display);
  font-weight:800;
  font-size: clamp(280px, 38vw, 560px);
  line-height:.85;
  color: transparent;
  background: linear-gradient(180deg, rgba(47,123,255,.08), rgba(31,213,131,.04));
  -webkit-background-clip:text;
  background-clip:text;
  letter-spacing:-0.06em;
}
.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, rgba(14,18,48,.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(14,18,48,.04) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(circle at 30% 40%, black 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(circle at 30% 40%, black 0%, transparent 70%);
}

.hero__grid{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns: 1fr;
  gap:60px;
  align-items:center;
}
@media (min-width:1024px){
  .hero__grid{ grid-template-columns: 1.05fr .95fr; gap:80px; }
}

.hero__kicker{ margin-bottom:28px; }

.hero h1{
  font-family:var(--font-display);
  font-weight:700;
  font-size: clamp(42px, 6.4vw, 80px);
  line-height: .98;
  letter-spacing:-0.035em;
  margin:0 0 24px;
}
.hero h1 .grad-text{
  display:inline-block;
  font-style: italic;
  font-weight:600;
}
.hero__sub{
  font-size:clamp(17px, 1.6vw, 21px);
  color:var(--ink-700);
  max-width: 56ch;
  margin:0 0 36px;
  line-height:1.55;
}
.hero__sub strong{ color:var(--text-primary); font-weight:600; }

/* ===== CTAs ===== */
.cta-primary{
  display:inline-flex; align-items:center; gap:12px;
  padding:18px 28px;
  border-radius:var(--radius-full);
  background: var(--grad-magenta);
  color:var(--white) !important;
  font-weight:600;
  font-size:16px;
  border:none;
  box-shadow: var(--shadow-cta);
  transition: transform .3s var(--ease-signature), box-shadow .3s;
  position:relative;
  overflow:hidden;
  text-decoration:none;
}
.cta-primary::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: transform .8s var(--ease-signature);
}
.cta-primary:hover{ transform:translateY(-2px) scale(1.01); box-shadow: 0 24px 50px -10px rgba(255,61,138,.55); }
.cta-primary:hover::after{ transform:translateX(100%); }
.cta-primary svg{ transition: transform .3s var(--ease-signature); }
.cta-primary:hover svg{ transform: translateX(4px); }

.cta-secondary{
  display:inline-flex; align-items:center; gap:10px;
  padding:18px 24px;
  color:var(--ink-800);
  font-weight:500;
  font-size:16px;
  transition: color .25s;
}
.cta-secondary:hover{ color:var(--brand-blue); }
.cta-secondary .play{
  width:34px; height:34px; border-radius:50%;
  background: var(--ink-100);
  display:grid; place-items:center;
  transition: background .25s;
}
.cta-secondary:hover .play{ background: var(--brand-blue); color:white; }

.hero__ctas{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:32px;
}
.hero__reassurance{
  display:flex; flex-wrap:wrap; gap:18px 28px;
  font-size:13.5px;
  color:var(--ink-500);
  font-weight:500;
  padding:0; margin:0;
  list-style:none;
}
.hero__reassurance li{
  display:inline-flex; align-items:center; gap:8px;
  list-style:none;
}
.hero__reassurance .check{
  width:16px; height:16px; border-radius:50%;
  background: var(--brand-green);
  display:grid; place-items:center;
  color:white;
}

/* ===== Hero visuel ===== */
.workflow-card{
  position:relative;
  background: var(--ink-950);
  border-radius:var(--radius-lg);
  padding:32px;
  overflow:hidden;
  box-shadow:
    0 60px 120px -30px rgba(14,18,48,.45),
    0 0 0 1px rgba(255,255,255,.05);
}
.workflow-card::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 80% -10%, rgba(47,123,255,.4), transparent 50%),
    radial-gradient(circle at 0% 100%, rgba(31,213,131,.25), transparent 50%);
  pointer-events:none;
}
.workflow-card__header{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:24px;
}
.workflow-card__title{
  color:white;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.06em;
}
.workflow-card__dots{
  display:flex; gap:6px;
}
.workflow-card__dots span{
  width:10px; height:10px; border-radius:50%;
  background: rgba(255,255,255,.15);
}
.workflow-card__dots span:nth-child(1){ background:#FF5F57; }
.workflow-card__dots span:nth-child(2){ background:#FFBD2E; }
.workflow-card__dots span:nth-child(3){ background:#28CA42; }

.workflow-svg{ position:relative; width:100%; height:auto; }
.workflow-node{
  font-family:var(--font-mono);
  font-size:11px;
}
.flow-line{
  stroke-dasharray: 6 6;
  animation: dash 1.8s linear infinite;
}
@keyframes dash{ to { stroke-dashoffset: -24; } }

.workflow-stats{
  position:relative;
  margin-top:24px;
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:12px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.08);
}
.workflow-stats__item{ color:white; }
.workflow-stats__num{
  font-family:var(--font-display);
  font-size:28px;
  font-weight:700;
  letter-spacing:-.02em;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1;
}
.workflow-stats__lbl{
  font-size:11.5px;
  color:rgba(255,255,255,.55);
  margin-top:4px;
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.05em;
}

.float-badge{
  position:absolute;
  background:white;
  padding:14px 18px;
  border-radius:14px;
  box-shadow: 0 24px 50px -20px rgba(14,18,48,.45);
  display:flex; align-items:center; gap:12px;
  z-index:2;
  animation: float-y 5s ease-in-out infinite;
}
.float-badge--tl{ top:-22px; left:-22px; animation-delay: 0s; }
.float-badge--br{ bottom:-22px; right:-12px; animation-delay: 1.2s; }
@keyframes float-y{
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.float-badge__icon{
  width:36px; height:36px; border-radius:10px;
  display:grid; place-items:center;
  background: var(--grad-flow-soft);
  color: var(--brand-blue);
}
.float-badge__txt strong{ display:block; font-size:14px; font-weight:600; }
.float-badge__txt span{ font-size:12px; color:var(--text-muted); }

/* ===== Bandeau stat ===== */
.stat-band{
  background: var(--ink-950);
  color:white;
  padding: 56px 0;
  position:relative;
  overflow:hidden;
}
.stat-band::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(ellipse at center, rgba(47,123,255,.18), transparent 70%);
}
.stat-band__grid{
  position:relative;
  display:grid;
  grid-template-columns: 1.4fr 1fr;
  gap:48px;
  align-items:center;
}
@media (max-width:768px){ .stat-band__grid{ grid-template-columns: 1fr; gap:24px; } }
.stat-band__big{
  font-family:var(--font-display);
  font-size: clamp(56px, 8vw, 110px);
  font-weight:700;
  line-height:.95;
  letter-spacing:-.04em;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.stat-band__copy{
  font-size:18px;
  color: rgba(255,255,255,.78);
  line-height:1.55;
  margin:0;
}
.stat-band__copy strong{ color:white; font-weight:600; }
.stat-band__source{
  display:inline-block;
  margin-top:12px;
  font-family:var(--font-mono);
  font-size:12px;
  color: rgba(255,255,255,.45);
  letter-spacing:.04em;
}

/* ===== Section utils ===== */
section{ position:relative; }
.section-pad{ padding: 120px 0; }
@media (max-width:768px){ .section-pad{ padding:80px 0; } }

.section-head{
  max-width: 760px;
  margin-bottom:64px;
}
.section-head.section-head--center{
  text-align:center; margin-inline:auto;
}
.section-head .eyebrow{ margin-bottom:18px; display:inline-block; }
.section-head h2{
  font-family:var(--font-display);
  font-size: clamp(36px, 5vw, 56px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.05;
  margin:0 0 20px;
}
.section-head p{
  font-size: 18px;
  color: var(--ink-700);
  margin:0;
  max-width: 60ch;
}
.section-head--center p{ margin-inline:auto; }

/* ===== Section Probleme ===== */
.problem{
  background: var(--ink-50);
  position:relative;
  overflow:hidden;
}
.problem::before{
  content: attr(data-section-num);
  position:absolute;
  left:-40px; top:60px;
  font-family:var(--font-display);
  font-size: clamp(300px, 36vw, 500px);
  font-weight:800;
  line-height:.85;
  color: var(--ink-100);
  z-index:0;
  letter-spacing:-.06em;
}
.problem .container{ position:relative; z-index:1; }

.pain-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap:20px;
}
.pain-card{
  background:white;
  border-radius:var(--radius-md);
  padding:32px 28px;
  border:1px solid var(--border-subtle);
  transition: transform .35s var(--ease-signature), box-shadow .35s;
}
.pain-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}
.pain-card__icon{
  width:48px; height:48px;
  border-radius:12px;
  background: linear-gradient(135deg, #FF3D8A20, #FF6B5C20);
  color: var(--brand-magenta);
  display:grid; place-items:center;
  margin-bottom:20px;
}
.pain-card h3{
  font-family:var(--font-display);
  font-size:20px;
  font-weight:600;
  margin:0 0 10px;
  letter-spacing:-.01em;
}
.pain-card p{
  margin:0;
  color:var(--ink-500);
  font-size:15.5px;
}

/* ===== Section Solution ===== */
.solution{ background: var(--paper); }
.solution::before{
  content: attr(data-section-num);
  position:absolute;
  right:-40px; top:80px;
  font-family:var(--font-display);
  font-size: clamp(300px, 36vw, 500px);
  font-weight:800;
  line-height:.85;
  color: rgba(47,123,255,.06);
  z-index:0;
  letter-spacing:-.06em;
}
.solution .container{ position:relative; z-index:1; }

.solution-split{
  display:grid;
  grid-template-columns: 1fr;
  gap:48px;
}
@media (min-width:1024px){
  .solution-split{ grid-template-columns: 1fr 1.1fr; gap:80px; }
}
.solution-text h2{
  font-family:var(--font-display);
  font-size: clamp(36px, 5vw, 56px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.05;
  margin:0 0 24px;
}
.solution-text p{
  font-size:18px;
  color:var(--ink-700);
  margin:0 0 24px;
}
.solution-mission{
  border-left: 3px solid var(--brand-blue);
  padding: 12px 0 12px 20px;
  font-style:italic;
  color:var(--ink-800);
  font-size:17px;
  margin: 32px 0;
}
.solution-mission__author{
  font-size:13px; font-style:normal; color:var(--ink-500); margin-top:8px;
}

.metrics-card{
  background:white;
  border-radius:var(--radius-lg);
  padding:40px;
  border:1px solid var(--border-subtle);
  box-shadow: var(--shadow-card);
  position:relative;
  overflow:hidden;
}
.metrics-card::before{
  content:"";
  position:absolute; top:-40px; right:-40px;
  width:180px; height:180px; border-radius:50%;
  background: var(--grad-flow); opacity:.08; pointer-events:none;
}
.metrics-card::after{
  content:"";
  position:absolute; bottom:-60px; left:-40px;
  width:160px; height:160px; border-radius:50%;
  background: var(--grad-magenta); opacity:.06; pointer-events:none;
}
.metrics-grid{
  display:grid; grid-template-columns: repeat(2,1fr); gap:24px; margin-top:24px;
  position:relative;
}
.metrics-grid__num{
  font-family:var(--font-display);
  font-size:54px; font-weight:700;
  background:var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1; letter-spacing:-.03em;
}
.metrics-grid__lbl{
  font-size:14px; color:var(--ink-500); margin-top:6px;
}

/* ===== Section Benefices ===== */
.benefits{
  background: var(--bg-deep);
  color: white;
  position:relative;
  overflow:hidden;
}
.benefits::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 80% 10%, rgba(47,123,255,.18), transparent 50%),
    radial-gradient(circle at 10% 90%, rgba(31,213,131,.12), transparent 50%);
  pointer-events:none;
}
.benefits .section-head h2{ color:white; }
.benefits .section-head p{ color: rgba(255,255,255,.7); }
.benefits .eyebrow{ color: var(--brand-green); }

.benefits-grid{
  position:relative;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap:20px;
}
.benefit{
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-md);
  padding:32px;
  transition: all .4s var(--ease-signature);
  position:relative;
  overflow:hidden;
}
.benefit::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  transform: translateX(-100%);
  transition: transform .8s var(--ease-signature);
}
.benefit:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(47,123,255,.4);
  transform: translateY(-3px);
}
.benefit:hover::before{ transform: translateX(100%); }
.benefit__num{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  color: var(--brand-cyan);
  margin-bottom:16px;
}
.benefit__big{
  font-family:var(--font-display);
  font-size:38px;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom:12px;
}
.benefit h3{
  font-family:var(--font-display);
  font-size:20px;
  font-weight:600;
  margin:0 0 8px;
  letter-spacing:-.01em;
}
.benefit p{
  margin:0;
  color: rgba(255,255,255,.65);
  font-size:15px;
  line-height:1.55;
}

/* ===== Section Cas d'usage ===== */
.use-cases{ background:white; }
.usecase-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap:14px;
}
.usecase{
  position:relative;
  border-radius:var(--radius-md);
  padding:36px 28px 28px;
  background:var(--ink-50);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  transition: all .35s var(--ease-signature);
  min-height:220px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.usecase::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:4px;
  background: var(--grad-flow);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s var(--ease-signature);
}
.usecase:hover{
  background: white;
  border-color: rgba(47,123,255,.3);
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}
.usecase:hover::before{ transform: scaleX(1); }
.usecase__cat{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color: var(--brand-blue);
  margin-bottom:14px;
}
.usecase h3{
  font-family:var(--font-display);
  font-size:21px;
  font-weight:600;
  margin:0 0 10px;
  letter-spacing:-.01em;
}
.usecase p{ margin:0; color:var(--ink-500); font-size:14.5px; }
.usecase__roi{
  margin-top:18px;
  font-family:var(--font-mono);
  font-size:13px;
  color: var(--brand-green);
  font-weight:500;
}

/* ===== Section Methodologie ===== */
.method{
  background: var(--ink-50);
  position:relative;
}
.method__steps{
  display:grid;
  grid-template-columns: 1fr;
  gap:16px;
  position:relative;
}
@media (min-width:900px){
  .method__steps{ grid-template-columns: repeat(3, 1fr); }
}

.step{
  background:white;
  border-radius:var(--radius-lg);
  padding:40px 32px;
  position:relative;
  border:1px solid var(--border-subtle);
  transition: transform .35s var(--ease-signature);
}
.step:hover{ transform: translateY(-4px); }
.step__num{
  font-family:var(--font-display);
  font-size:120px;
  font-weight:800;
  line-height:.85;
  letter-spacing:-.04em;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom: 24px;
}
.step h3{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:600;
  margin:0 0 12px;
  letter-spacing:-.01em;
}
.step p{
  margin:0 0 20px;
  color:var(--ink-500);
  font-size:15px;
}
.step ul{
  list-style:none;
  padding:0; margin:0;
}
.step ul li{
  font-size:14.5px;
  color: var(--ink-700);
  padding: 6px 0 6px 22px;
  position:relative;
}
.step ul li::before{
  content:"";
  position:absolute;
  left:0; top:13px;
  width:12px; height:2px;
  background: var(--brand-blue);
}
.step__duration{
  display:inline-block;
  margin-top:16px;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  background: rgba(47,123,255,.08);
  color: var(--brand-blue);
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:500;
}

/* ===== Section Preuves ===== */
.proof{ background: var(--paper); }

.logos-band{
  display:flex; flex-wrap:wrap;
  gap:48px;
  justify-content:center; align-items:center;
  padding:40px 0;
  margin-bottom: 64px;
  border-block: 1px solid var(--border-subtle);
  opacity:.85;
}
.logo-placeholder{
  font-family:var(--font-mono);
  font-size:18px;
  font-weight:500;
  color:var(--ink-400);
  letter-spacing:.06em;
  filter: grayscale(1);
  transition: opacity .25s;
}
.logo-placeholder img{
  max-height: 40px;
  width: auto;
  filter: grayscale(1);
  opacity:.7;
  transition: opacity .25s, filter .25s;
}
.logo-placeholder:hover{ opacity:1; color:var(--ink-700); }
.logo-placeholder:hover img{ opacity:1; filter: grayscale(0); }

.testi-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:24px;
}
@media (min-width:768px){ .testi-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width:1100px){ .testi-grid{ grid-template-columns: 1.2fr 1fr 1fr; } }

.testi{
  background:white;
  border-radius:var(--radius-lg);
  padding:36px 32px;
  border:1px solid var(--border-subtle);
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative;
  transition: all .35s var(--ease-signature);
}
.testi:hover{ box-shadow: var(--shadow-card); transform: translateY(-2px); }
.testi--featured{
  background: var(--ink-950);
  color:white;
  border:none;
  position:relative;
  overflow:hidden;
}
.testi--featured::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(circle at 100% 0%, rgba(47,123,255,.2), transparent 60%);
  pointer-events:none;
}
.testi__quote-mark{
  font-family:var(--font-display);
  font-size:60px;
  line-height:.6;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom:14px;
}
.testi p{
  margin:0 0 24px;
  font-size:17px;
  line-height:1.55;
  position:relative;
}
.testi--featured p{ font-size: 21px; font-weight:500; line-height:1.5; }
.testi p strong{ font-weight:600; }
.testi__author{
  display:flex; align-items:center; gap:14px;
  position:relative;
}
.testi__avatar{
  width:48px; height:48px;
  border-radius:50%;
  background: var(--grad-flow);
  display:grid; place-items:center;
  color:white;
  font-family:var(--font-display);
  font-weight:600;
  font-size:18px;
  flex-shrink:0;
  overflow:hidden;
}
.testi__avatar img{
  width:100%; height:100%; object-fit:cover;
}
.testi__name{ font-weight:600; font-size:15px; }
.testi__role{ font-size:13px; color:var(--ink-500); }
.testi--featured .testi__role{ color: rgba(255,255,255,.6); }
.testi__metric{
  display:inline-block;
  margin-bottom: 16px;
  padding:6px 14px;
  border-radius: var(--radius-full);
  font-family:var(--font-mono);
  font-size:12px;
  background: rgba(31,213,131,.12);
  color: var(--brand-green);
  font-weight:600;
}
.testi--featured .testi__metric{
  background: rgba(31,213,131,.18);
  color: var(--brand-green);
}

/* ===== Case Study ===== */
.case{
  background: var(--ink-950);
  color:white;
  position:relative;
  overflow:hidden;
}
.case::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 15% 50%, rgba(47,123,255,.18), transparent 50%),
    radial-gradient(circle at 100% 100%, rgba(255,61,138,.12), transparent 50%);
  pointer-events:none;
}
.case .section-head h2{ color:white; }
.case .section-head p{ color: rgba(255,255,255,.7); }
.case .eyebrow{ color: var(--brand-magenta-soft); }

.case-card{
  position:relative;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  padding:48px;
  display:grid;
  grid-template-columns: 1fr;
  gap:48px;
  overflow:hidden;
}
@media (min-width:900px){ .case-card{ grid-template-columns: 1fr 1fr; gap:60px; } }

.case-card__sector{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: var(--brand-magenta-soft);
  margin-bottom:16px;
}
.case-card h3{
  font-family:var(--font-display);
  font-size:32px;
  font-weight:700;
  margin:0 0 20px;
  letter-spacing:-.02em;
  line-height:1.1;
}
.case-card__story{
  font-size:16.5px;
  color: rgba(255,255,255,.75);
  line-height:1.65;
  margin: 0 0 24px;
}
.case-card__story strong{ color:white; }

.case-metrics{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:24px;
}
.case-metric{
  padding: 24px 0;
  border-top: 1px solid rgba(255,255,255,.1);
}
.case-metric__num{
  font-family:var(--font-display);
  font-size:54px;
  font-weight:700;
  line-height:1;
  background: var(--grad-flow);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  letter-spacing:-.03em;
  margin-bottom:6px;
}
.case-metric__lbl{
  font-size:13px;
  color: rgba(255,255,255,.6);
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* ===== Pourquoi nous ===== */
.why{ background:white; }
.why-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:60px;
  align-items:start;
}
@media (min-width:1024px){ .why-grid{ grid-template-columns: 1fr 1.2fr; gap:80px; } }

.why-list{
  display:flex; flex-direction:column;
  gap:4px;
}
.why-item{
  padding: 28px 0;
  border-top:1px solid var(--border-subtle);
  display:grid;
  grid-template-columns: 60px 1fr;
  gap:24px;
  transition: padding .35s var(--ease-signature);
}
.why-item:last-child{ border-bottom:1px solid var(--border-subtle); }
.why-item:hover{ padding-left:10px; }
.why-item__num{
  font-family:var(--font-mono);
  font-size:14px;
  color: var(--brand-blue);
  font-weight:500;
  letter-spacing:.06em;
  padding-top:4px;
}
.why-item h3{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:600;
  margin:0 0 8px;
  letter-spacing:-.01em;
}
.why-item p{
  margin:0;
  color:var(--ink-500);
  font-size:15.5px;
  line-height:1.55;
}

/* ===== Tech stack ===== */
.tech-stack{
  background: var(--ink-50);
  border-radius: var(--radius-lg);
  padding:40px;
  border:1px solid var(--border-subtle);
}
.tech-stack h4{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:600;
  margin:0 0 24px;
}
.tech-list{ display:flex; flex-direction:column; gap:14px; padding:0; margin:0; list-style:none; }
.tech-list li{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px;
  background:white;
  border-radius: var(--radius-md);
  border:1px solid var(--border-subtle);
  font-size:14.5px;
}
.tech-list strong{ font-weight:600; display:block; }
.tech-list span{ display:block; color:var(--ink-500); font-size:13px; margin-top:2px; }
.tech-list__icon{
  width:36px; height:36px; flex-shrink:0;
  border-radius:8px;
  background: var(--grad-flow-soft);
  color: var(--brand-blue);
  display:grid; place-items:center;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:13px;
}

/* ===== FAQ ===== */
.faq{ background: var(--ink-50); }
.faq-list{
  max-width: 880px;
  margin-inline:auto;
}
.faq-item{
  background:white;
  border-radius:var(--radius-md);
  margin-bottom:12px;
  border:1px solid var(--border-subtle);
  overflow:hidden;
  transition: box-shadow .25s;
}
.faq-item[open]{
  box-shadow: var(--shadow-card);
  border-color: rgba(47,123,255,.2);
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:24px 28px;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  font-family:var(--font-display);
  font-size:18px;
  font-weight:600;
  letter-spacing:-.01em;
  position:relative;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item__icon{
  width:32px; height:32px;
  border-radius:50%;
  background: var(--ink-100);
  display:grid; place-items:center;
  flex-shrink:0;
  transition: transform .3s var(--ease-signature), background .3s;
  color: var(--ink-700);
}
.faq-item[open] .faq-item__icon{
  transform: rotate(45deg);
  background: var(--brand-blue);
  color:white;
}
.faq-item__body{
  padding: 0 28px 28px;
  font-size:15.5px;
  line-height:1.65;
  color:var(--ink-700);
  max-width: 65ch;
}
.faq-item__body strong{ color:var(--text-primary); font-weight:600; }

/* ===== Final CTA & formulaire ===== */
.final-cta{
  background: var(--ink-950);
  color:white;
  position:relative;
  overflow:hidden;
}
.final-cta::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 0% 0%, rgba(47,123,255,.22), transparent 50%),
    radial-gradient(circle at 100% 100%, rgba(31,213,131,.18), transparent 50%);
  pointer-events:none;
}
.final-cta__grid{
  position:relative;
  display:grid;
  grid-template-columns: 1fr;
  gap:60px;
  align-items:start;
}
@media (min-width:1024px){ .final-cta__grid{ grid-template-columns: 1.1fr 1fr; gap:80px; } }

.final-cta h2{
  font-family:var(--font-display);
  font-size: clamp(40px, 5.5vw, 64px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.02;
  margin: 0 0 24px;
}
.final-cta__lead{
  font-size:19px;
  color: rgba(255,255,255,.78);
  margin-bottom:36px;
  max-width:52ch;
}
.final-cta__points{
  list-style:none;
  padding:0; margin:0 0 36px;
  display:flex; flex-direction:column; gap:14px;
}
.final-cta__points li{
  display:flex; align-items:center; gap:14px;
  font-size:16px;
  color: rgba(255,255,255,.85);
}
.final-cta__points li svg{
  flex-shrink:0;
  color: var(--brand-green);
}
.final-cta__guarantee{
  display:inline-flex; align-items:center; gap:12px;
  padding:14px 20px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-md);
  font-size:14.5px;
  color: rgba(255,255,255,.85);
}
.final-cta__guarantee strong{ color:white; font-weight:600; }
.final-cta__guarantee svg{ color: var(--brand-green); flex-shrink:0; }

/* ===== Formulaire ===== */
.form-card{
  background: white;
  border-radius: var(--radius-lg);
  padding: 40px 36px;
  color: var(--text-primary);
  box-shadow: 0 60px 120px -30px rgba(0,0,0,.5);
  position:relative;
}
.form-card__badge{
  position:absolute;
  top:-14px; left:36px;
  background: var(--grad-magenta);
  color:white;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600;
  box-shadow: var(--shadow-cta);
}
.form-card h3{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:700;
  margin: 0 0 8px;
  letter-spacing:-.02em;
}
.form-card__sub{
  color: var(--ink-500);
  font-size:15px;
  margin: 0 0 28px;
}

.field{
  display:block;
  margin-bottom:18px;
}
.field label{
  display:block;
  font-size:13px;
  font-weight:500;
  color: var(--ink-700);
  margin-bottom:8px;
}
.field input,
.field select,
.field textarea{
  width:100%;
  padding: 14px 16px;
  border:1.5px solid var(--ink-200);
  border-radius:var(--radius-md);
  font-family:inherit;
  font-size:15px;
  background:white;
  color:var(--text-primary);
  transition: border-color .2s, box-shadow .2s;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 4px rgba(47,123,255,.12);
}
.field--error input,
.field--error select{
  border-color: var(--brand-magenta);
  box-shadow: 0 0 0 4px rgba(255,61,138,.10);
}
.field__error{
  font-size:12px; color: var(--brand-magenta);
  margin-top:6px; display:none;
}
.field--error .field__error{ display:block; }

/* honeypot anti-spam : invisible mais accessible aux bots */
.field--honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.form-card .cta-primary{
  width:100%;
  justify-content:center;
  margin-top:8px;
}
.form-card .cta-primary:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none !important;
}
.form-card__legal{
  margin-top:16px;
  font-size:12.5px;
  color: var(--ink-500);
  text-align:center;
  line-height:1.5;
}
.form-card__legal a{ color: var(--brand-blue); text-decoration:underline; }

.form-success,
.form-error{
  border-radius: var(--radius-lg);
  padding: 32px;
}
.form-success{
  background:rgba(31,213,131,.1);
  border:1px solid var(--brand-green);
  color:white;
}
.form-success__title{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:700;
  margin-bottom:12px;
  color:var(--brand-green);
}
.form-success p{ margin:0; color:rgba(255,255,255,.85); }

.form-error{
  background: rgba(255,61,138,.1);
  border: 1px solid var(--brand-magenta);
  color: var(--brand-magenta);
  font-size: 14px;
  margin-bottom: 16px;
}

/* ===== Footer ===== */
.footer{
  background: var(--ink-950);
  color: rgba(255,255,255,.55);
  border-top:1px solid rgba(255,255,255,.08);
  padding: 40px 0;
  font-size: 13.5px;
}
.footer__inner{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap: 16px;
}
.footer a{ color: rgba(255,255,255,.65); transition: color .2s; }
.footer a:hover{ color: white; }
.footer__links{ display:flex; gap: 24px; flex-wrap:wrap; }

/* ===== Sticky CTA mobile ===== */
.sticky-mobile{
  position:fixed;
  bottom:14px; left:14px; right:14px;
  z-index:60;
  display:none;
}
.sticky-mobile .cta-primary{
  width:100%;
  justify-content:center;
  padding: 16px 24px;
  font-size:15px;
}
@media (max-width: 768px){
  .sticky-mobile{ display:block; }
  body.has-sticky-cta{ padding-bottom:80px; }
}

/* ===== Animations entree ===== */
.reveal{ opacity:0; transform: translateY(20px); transition: all .8s var(--ease-signature); }
.reveal.in{ opacity:1; transform: translateY(0); }

/* ===== Visual image placeholders (nouveau, pour les zones d'image WP) ===== */
.visual-frame{
  position:relative;
  border-radius: var(--radius-lg);
  overflow:hidden;
  background: var(--ink-100);
  aspect-ratio: 4 / 3;
  border:1px solid var(--border-subtle);
}
.visual-frame img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.visual-frame--dark{ background:var(--ink-900); border-color: rgba(255,255,255,.08); }
.visual-frame__placeholder{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:12px;
  color: var(--ink-400);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
  padding: 24px;
  background:
    repeating-linear-gradient(
      45deg,
      rgba(47,123,255,.03),
      rgba(47,123,255,.03) 14px,
      rgba(47,123,255,.06) 14px,
      rgba(47,123,255,.06) 28px
    );
}
.visual-frame__placeholder svg{
  width:40px; height:40px;
  opacity:.5;
}
.visual-frame__placeholder span{
  opacity: .7;
  max-width: 240px;
  line-height: 1.6;
}
.visual-frame--dark .visual-frame__placeholder{
  color: rgba(255,255,255,.4);
  background:
    repeating-linear-gradient(
      45deg,
      rgba(255,255,255,.02),
      rgba(255,255,255,.02) 14px,
      rgba(255,255,255,.04) 14px,
      rgba(255,255,255,.04) 28px
    );
}

/* aspect-ratio override pour visuels portraits / paysages specifiques */
.visual-frame--portrait{ aspect-ratio: 3 / 4; }
.visual-frame--square{ aspect-ratio: 1 / 1; }
.visual-frame--wide{ aspect-ratio: 16 / 9; }

/* ===== Responsive fins ===== */
@media (max-width: 768px){
  .hero{ padding-top:40px; padding-bottom:80px; }
  .float-badge{ display:none; }
  .case-card{ padding:32px 24px; }
  .form-card{ padding:32px 24px; }
  .testi--featured p{ font-size:18px; }
}

/* ===== WordPress admin-bar fix ===== */
body.admin-bar .nav{ top:32px; }
@media (max-width: 782px){
  body.admin-bar .nav{ top:46px; }
}

/* =========================================================
   Pages WordPress (mentions legales, politique RGPD, etc.)
   ========================================================= */
.page-content{
  background: var(--paper);
  min-height: 60vh;
}
.page-content__head{
  max-width: 820px;
  margin: 0 auto 48px;
}
.page-content__back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--brand-blue);
  margin-bottom: 24px;
  transition: gap .25s var(--ease-signature);
}
.page-content__back:hover{ gap: 14px; }
.page-content__head h1{
  font-family: var(--font-display);
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1.05;
  margin: 0;
}

.page-content__body{
  max-width: 820px;
  margin: 0 auto;
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--ink-700);
}
.page-content__body p{ margin: 0 0 20px; }
.page-content__body p:last-child{ margin-bottom: 0; }
.page-content__body strong{ color: var(--text-primary); font-weight: 600; }
.page-content__body em{ font-style: italic; }
.page-content__body a{
  color: var(--brand-blue);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .2s;
}
.page-content__body a:hover{ color: var(--brand-magenta); }
.page-content__body h2{
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--text-primary);
  margin: 56px 0 16px;
  padding-top: 24px;
  border-top: 1px solid var(--border-subtle);
}
.page-content__body > h2:first-child{ border-top: none; padding-top: 0; margin-top: 0; }
.page-content__body h3{
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 32px 0 12px;
  letter-spacing: -.01em;
}
.page-content__body h4{
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 24px 0 10px;
}
.page-content__body ul,
.page-content__body ol{
  margin: 0 0 20px;
  padding-left: 24px;
}
.page-content__body li{
  margin-bottom: 8px;
  padding-left: 4px;
}
.page-content__body ul li::marker{ color: var(--brand-blue); }
.page-content__body hr{
  border: none;
  height: 1px;
  background: var(--border-subtle);
  margin: 48px 0;
}
.page-content__body blockquote{
  border-left: 3px solid var(--brand-blue);
  padding: 12px 0 12px 20px;
  margin: 24px 0;
  font-style: italic;
  color: var(--ink-800);
  background: rgba(47,123,255,.04);
  padding-right: 20px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.page-content__body code{
  font-family: var(--font-mono);
  font-size: .92em;
  background: var(--ink-100);
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--ink-900);
}
.page-content__body table{
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 14.5px;
  background: white;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  box-shadow: 0 4px 18px -8px rgba(14,18,48,.08);
}
.page-content__body table th,
.page-content__body table td{
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: top;
}
.page-content__body table th{
  background: var(--ink-50);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--ink-800);
}
.page-content__body table tr:last-child td{ border-bottom: none; }
.page-content__body table tr:hover td{ background: rgba(47,123,255,.02); }

/* Responsive tables : scroll horizontal sur mobile */
@media (max-width: 768px){
  .page-content__body table{
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}
