/* ═══════════════════════════════════════════
   OPERIO CONSEIL — Feuille de styles
   ═══════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── TOKENS ── */
:root{
  --cream:#FAFAF8;
  --green:#1B4332;
  --green-light:#D1FAE5;
  --amber:#E8A838;
  --amber-light:#FEF3C7;
  --text:#1A1A1A;
  --muted:#6B7280;
  --border:#E5E7EB;
  --white:#FFFFFF;
  --shadow-sm:0 1px 3px rgba(0,0,0,0.06);
  --shadow-md:0 8px 24px rgba(0,0,0,0.08);
  --shadow-lg:0 16px 40px rgba(0,0,0,0.10);
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
}

html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--cream);color:var(--text);font-size:16px;line-height:1.6}

/* ── NAVIGATION ── */
nav{position:sticky;top:0;z-index:100;background:rgba(250,250,248,0.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:0 2rem}
.nav-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-family:'DM Serif Display',serif;font-size:22px;color:var(--green);letter-spacing:-0.02em;text-decoration:none;transition:opacity 0.2s}
.logo:hover{opacity:0.8}
.logo:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:4px}
.logo span{color:var(--amber)}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;transition:color 0.2s;padding:4px 0}
.nav-links a:hover{color:var(--green)}
.nav-links a:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:4px}
nav a.cta-nav{background:var(--green);color:var(--white);padding:9px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;text-decoration:none;transition:background 0.2s,transform 0.15s,box-shadow 0.2s;box-shadow:0 1px 4px rgba(27,67,50,0.25)}
nav a.cta-nav:hover{background:#145228;transform:translateY(-1px);box-shadow:0 4px 12px rgba(27,67,50,0.30)}
nav a.cta-nav:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

/* hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;border-radius:6px;transition:background 0.2s}
.hamburger:hover{background:rgba(0,0,0,0.05)}
.hamburger:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.hamburger span{display:block;width:22px;height:2px;background:var(--green);border-radius:2px;transition:transform 0.25s,opacity 0.25s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* menu mobile */
.mobile-menu{display:none;position:fixed;inset:0;top:64px;background:rgba(250,250,248,0.98);backdrop-filter:blur(10px);z-index:99;padding:2rem;flex-direction:column;gap:8px;animation:slideDown 0.2s ease}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:18px;font-weight:500;color:var(--text);text-decoration:none;padding:12px 0;border-bottom:1px solid var(--border);transition:color 0.2s}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu a:hover{color:var(--green)}
.mobile-menu .cta-mobile{margin-top:12px;background:var(--green);color:var(--white);padding:14px 24px;border-radius:var(--radius-sm);text-align:center;font-weight:600;border-bottom:none}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* ── HERO ── */
.hero{max-width:1080px;margin:0 auto;padding:88px 2rem 96px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero-eyebrow{font-size:12px;font-weight:600;color:var(--amber);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.hero-eyebrow::before{content:'';display:inline-block;width:24px;height:2px;background:var(--amber);border-radius:2px}
/* H1 sans margin-bottom : le gooey prend la suite directement */
.hero h1{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1.15;color:var(--green);margin-bottom:0;letter-spacing:-0.02em}
.hero h1 em{font-style:italic;color:var(--amber)}
.hero-desc{font-size:17px;color:var(--muted);line-height:1.75;margin-bottom:36px;max-width:520px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn-primary{background:var(--green);color:var(--white);padding:14px 28px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;text-decoration:none;transition:background 0.2s,transform 0.15s,box-shadow 0.2s;box-shadow:0 2px 8px rgba(27,67,50,0.25);display:inline-flex;align-items:center;gap:8px}
.btn-primary:hover{background:#145228;transform:translateY(-1px);box-shadow:0 6px 16px rgba(27,67,50,0.30)}
.btn-primary:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.btn-secondary{color:var(--green);font-size:15px;font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--amber);padding-bottom:2px;transition:opacity 0.2s}
.btn-secondary:hover{opacity:0.75}
.btn-secondary:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:2px}

/* stat box */
.hero-stat-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}
.hero-stat-box::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--amber),#F4C262)}
.stat-label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.06em}
.stat-big{font-family:'DM Serif Display',serif;font-size:72px;line-height:1;color:var(--green);letter-spacing:-0.03em;margin-bottom:4px}
.stat-sub{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:28px}
.stat-divider{border:none;border-top:1px solid var(--border);margin:24px 0}
.stat-row{display:flex;gap:24px}
.stat-mini .num{font-family:'DM Serif Display',serif;font-size:28px;color:var(--green);line-height:1}
.stat-mini .lbl{font-size:12px;color:var(--muted);margin-top:2px}

/* ── SECTIONS (base) ── */
section{padding:88px 2rem}
.section-inner{max-width:1080px;margin:0 auto}
.eyebrow{font-size:12px;font-weight:600;color:var(--amber);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.eyebrow::before{content:'';display:inline-block;width:20px;height:2px;background:var(--amber);border-radius:2px}
.section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,3vw,2.4rem);color:var(--green);margin-bottom:16px;line-height:1.2;letter-spacing:-0.02em}
.section-desc{color:var(--muted);font-size:16px;max-width:560px;line-height:1.75;margin-bottom:48px}

/* ── POURQUOI OPERIO ── */
.why-bg{background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.why-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;transition:border-color 0.2s,transform 0.2s,box-shadow 0.2s;cursor:default}
.why-card:hover{border-color:var(--amber);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.why-icon{width:40px;height:40px;background:var(--amber-light);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--amber)}
.why-icon svg{width:20px;height:20px;stroke:currentColor}
.why-card h3{font-size:16px;font-weight:600;color:var(--green);margin-bottom:10px}
.why-card p{font-size:14px;color:var(--muted);line-height:1.7}

/* ── SERVICES + BENTO GRID ── */
/* Fond blanc car les cartes sont --cream, cohérent avec .why-bg */
.services-bg{background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* layout bento 3 colonnes */
.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bento-card{position:relative;padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--cream);overflow:hidden;transition:border-color 0.2s,transform 0.2s,box-shadow 0.2s;cursor:default}
.bento-card.col-span-2{grid-column:span 2}

/* hover — même règle que .why-card */
.bento-card:hover{border-color:var(--amber);transform:translateY(-3px);box-shadow:var(--shadow-md)}

/* motif pointillé subtil au hover */
.bento-card::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at center,rgba(27,67,50,0.05) 1px,transparent 1px);background-size:5px 5px;opacity:0;transition:opacity 0.3s;pointer-events:none;z-index:0}
.bento-card:hover::before{opacity:1}

/* layout interne */
.bento-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;position:relative;z-index:1}
/* icône — même style que .why-icon */
.bento-icon-wrap{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--green-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.2s}
.bento-icon-wrap svg{width:18px;height:18px;stroke:var(--green);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.bento-card:hover .bento-icon-wrap{background:linear-gradient(135deg,var(--green-light),var(--amber-light))}
/* badge — même style que .service-tag */
.bento-status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;background:var(--amber-light);color:var(--amber);letter-spacing:0.03em}
.bento-body{margin-bottom:14px;position:relative;z-index:1}
.bento-title{font-size:15px;font-weight:700;color:var(--green);margin-bottom:6px;line-height:1.3}
.bento-meta{font-size:11px;font-weight:500;color:var(--muted);margin-left:4px}
.bento-desc{font-size:13px;color:var(--muted);line-height:1.65}
.bento-footer{position:relative;z-index:1}
.bento-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* tags — même style que .usecase-secteur */
.bento-tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;background:var(--green-light);color:var(--green);letter-spacing:0.03em}

/* ── CAS CLIENTS ── */
.usecases-bg{background:var(--cream);border-top:1px solid var(--border)}
.usecases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.usecase-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:28px;transition:border-color 0.2s,box-shadow 0.2s;cursor:default}
.usecase-card:hover{border-color:var(--green);box-shadow:var(--shadow-md)}
.usecase-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px}
.usecase-secteur{font-size:11px;font-weight:700;color:var(--green);background:var(--green-light);padding:4px 10px;border-radius:20px;white-space:nowrap;letter-spacing:0.04em}
.usecase-taille{font-size:11px;color:var(--muted);padding:4px 0;font-weight:500}
.usecase-probleme{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.usecase-probleme::before{content:'Situation';display:block;font-size:11px;font-weight:700;color:var(--text);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;opacity:0.5}
.usecase-solution{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:16px}
.usecase-solution::before{content:'Intervention';display:block;font-size:11px;font-weight:700;color:var(--green);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;opacity:0.7}
.usecase-resultat{display:flex;align-items:center;gap:12px;background:var(--amber-light);border-radius:var(--radius-sm);padding:12px 16px}
.usecase-chiffre{font-family:'DM Serif Display',serif;font-size:28px;color:var(--green);line-height:1;flex-shrink:0}
.usecase-detail{font-size:12px;color:var(--muted);line-height:1.5;font-weight:500}

/* ── TÉMOIGNAGES ── */
.temoignages-bg{background:var(--green)}
.temoignages-bg .eyebrow{color:var(--amber)}
.temoignages-bg .eyebrow::before{background:var(--amber)}
.temoignages-bg .section-title{color:var(--white)}
.temoignages-bg .section-desc{color:rgba(255,255,255,0.6)}
.temoignages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.temoignage-card{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-lg);padding:32px;position:relative;overflow:hidden;transition:background 0.2s,transform 0.2s;cursor:default}
.temoignage-card:hover{background:rgba(255,255,255,0.10);transform:translateY(-2px)}
.temoignage-card::after{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:var(--amber)}
.gain-number{font-family:'DM Serif Display',serif;font-size:64px;line-height:1;color:var(--amber);letter-spacing:-0.03em;margin-bottom:4px}
.gain-label{font-size:13px;color:rgba(255,255,255,0.5);margin-bottom:20px;font-weight:500}
.temoignage-quote{font-size:15px;color:rgba(255,255,255,0.85);line-height:1.70;margin-bottom:24px;font-style:italic}
.temoignage-footer{display:flex;align-items:center;gap:12px;border-top:1px solid rgba(255,255,255,0.1);padding-top:16px}
.temoignage-avatar{width:38px;height:38px;border-radius:50%;background:var(--amber);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--white);flex-shrink:0}
.temoignage-name{font-size:13px;font-weight:700;color:var(--white)}
.temoignage-role{font-size:12px;color:rgba(255,255,255,0.5)}
.secteur-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;background:rgba(232,168,56,0.2);color:var(--amber);padding:4px 10px;border-radius:20px;margin-bottom:16px;letter-spacing:0.04em}

/* ── PROCESS ── */
.process-bg{background:var(--amber-light);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.process-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;position:relative}
.process-step{padding:32px 24px;position:relative}
.process-step:not(:last-child)::after{content:'→';position:absolute;right:-8px;top:40px;font-size:20px;color:var(--amber);z-index:1}
.step-num{font-family:'DM Serif Display',serif;font-size:48px;color:var(--amber);opacity:0.4;line-height:1;margin-bottom:8px}
.step-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}
.step-desc{font-size:13px;color:var(--muted);line-height:1.65}

/* ── À PROPOS ── */
.apropos-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.apropos-photo{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/4;position:relative;box-shadow:var(--shadow-lg)}
.apropos-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.apropos-badge{position:absolute;bottom:24px;left:24px;right:24px;background:rgba(255,255,255,0.96);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;justify-content:space-around;box-shadow:var(--shadow-sm)}
.apropos-badge-item{text-align:center}
.apropos-badge-item .n{font-family:'DM Serif Display',serif;font-size:20px;color:var(--green);display:block}
.apropos-badge-item .l{font-size:11px;color:var(--muted);font-weight:500}
.apropos-text h2{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,3vw,2.4rem);color:var(--green);margin-bottom:20px;letter-spacing:-0.02em;line-height:1.2}
.apropos-text p{color:var(--muted);font-size:15px;line-height:1.80;margin-bottom:16px}
.diplomes{display:flex;flex-direction:column;gap:10px;margin-top:28px}
.diplome-tag{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;color:var(--text);font-weight:500;transition:border-color 0.2s}
.diplome-tag:hover{border-color:var(--amber)}
.diplome-dot{width:8px;height:8px;background:var(--amber);border-radius:50%;flex-shrink:0}

/* ── CONTACT ── */
.contact-bg{background:var(--white);border-top:1px solid var(--border)}
.contact-inner{max-width:640px;margin:0 auto;text-align:center;padding:88px 2rem}
.contact-inner .section-title{margin-bottom:16px}
.contact-inner .section-desc{margin:0 auto 40px;max-width:480px}
.contact-cards{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.contact-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 28px;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);transition:border-color 0.2s,transform 0.15s,box-shadow 0.2s;font-size:15px;font-weight:600;cursor:pointer}
.contact-card:hover{border-color:var(--amber);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.contact-card:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.contact-card svg{width:18px;height:18px;stroke:var(--amber);stroke-width:2;flex-shrink:0}
.contact-note{font-size:13px;color:var(--muted);line-height:1.7}

/* ── FOOTER ── */
footer{background:var(--green);padding:32px 2rem;text-align:center}
footer p{font-size:13px;color:rgba(255,255,255,0.45);font-weight:500}
footer span{color:var(--amber)}

/* ── GOOEY TEXT MORPHING ── */
/* Continuation de la phrase H1 : même taille, italic amber comme les <em> */
.gooey-wrapper{height:clamp(48px,7vw,84px);position:relative;display:flex;align-items:center;margin-top:4px;margin-bottom:28px}
.gooey-filter-container{display:flex;align-items:center;justify-content:flex-start;filter:url(#gooey-threshold);position:relative;height:100%;width:100%}
.gooey-text-span{position:absolute;left:0;font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,4vw,3.2rem);font-style:italic;color:var(--amber);line-height:1;white-space:nowrap;letter-spacing:-0.02em;pointer-events:none;user-select:none}
/* Deuxième instance — section contact (centrée, taille légèrement réduite) */
.gooey-contact{height:clamp(44px,6vw,72px);margin-top:0;margin-bottom:24px;justify-content:center}
.gooey-contact .gooey-filter-container{justify-content:center}
.gooey-contact .gooey-text-span{left:50%;transform:translateX(-50%);font-size:clamp(1.6rem,3.2vw,2.6rem)}

/* ── ANIMATIONS SCROLL ── */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity 0.55s ease,transform 0.55s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fade-in-delay-1{transition-delay:0.08s}
.fade-in-delay-2{transition-delay:0.16s}
.fade-in-delay-3{transition-delay:0.24s}
.fade-in-delay-4{transition-delay:0.32s}

/* ── MOBILE CTA BAR ── */
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid var(--border);padding:12px 20px;z-index:90;box-shadow:0 -4px 16px rgba(0,0,0,0.08)}
.mobile-cta-bar a{display:block;background:var(--green);color:var(--white);text-align:center;padding:14px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;text-decoration:none}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .hero{grid-template-columns:1fr;gap:40px;padding:56px 1.5rem 72px}
  .apropos-grid{grid-template-columns:1fr}
  .process-step:not(:last-child)::after{display:none}
  section{padding:64px 1.5rem}
  nav{padding:0 1.5rem}
  .nav-links,.nav-cta-desktop{display:none}
  .hamburger{display:flex}
  .mobile-cta-bar{display:block}
  body{padding-bottom:72px}
  .gooey-text-span{font-size:clamp(1.8rem,6vw,2.2rem)}
  .gooey-wrapper{height:52px;margin-bottom:24px}
  .gooey-filter-container{height:52px}
  .gooey-contact{height:44px}
  .gooey-contact .gooey-text-span{font-size:clamp(1.4rem,5vw,1.8rem)}
  .bento-grid{grid-template-columns:1fr}
  .bento-card.col-span-2{grid-column:span 1}
}

/* ── PREFERS REDUCED MOTION ── */
@media(prefers-reduced-motion:reduce){
  .fade-in{opacity:1;transform:none;transition:none}
  .gooey-text-span{transition:none!important}
  .btn-primary:hover,.btn-primary,
  nav a.cta-nav:hover,
  .why-card:hover,.bento-card:hover,
  .usecase-card:hover,.temoignage-card:hover,
  .contact-card:hover{transform:none}
}
