/* =========================================================
   OCASDEV Events — Design system
   Polices auto-hébergées, tokens clair/sombre, composants
   ========================================================= */

@font-face{font-family:'Bricolage Grotesque';font-weight:600;font-style:normal;font-display:swap;src:url('../fonts/BricolageGrotesque-600.woff2') format('woff2');}
@font-face{font-family:'Bricolage Grotesque';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/BricolageGrotesque-700.woff2') format('woff2');}
@font-face{font-family:'Bricolage Grotesque';font-weight:800;font-style:normal;font-display:swap;src:url('../fonts/BricolageGrotesque-800.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/PublicSans-400.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/PublicSans-500.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-weight:600;font-style:normal;font-display:swap;src:url('../fonts/PublicSans-600.woff2') format('woff2');}
@font-face{font-family:'Public Sans';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/PublicSans-700.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/JetBrainsMono-400.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/JetBrainsMono-500.woff2') format('woff2');}

/* ---------- TOKENS ---------- */
:root{
  /* accents — identiques en clair et en sombre (couleurs de marque) */
  --violet:#6B2FD6; --violet-deep:#4B1FA0;
  --pink:#FF3D78;
  --orange:#FF7A3D;
  --teal:#00BFA0;
  --yellow:#FFC63D;

  /* sections "nuit" — toujours identiques, quel que soit le mode du site */
  --night:#1F1240;
  --night-2:#140A2B;
  --on-night-text:#FFFFFF;
  --on-night-soft:#B9AEDD;
  --on-night-line:rgba(255,255,255,0.12);

  --r-lg:28px; --r-md:18px; --r-sm:12px; --r-pill:999px;
  --display:'Bricolage Grotesque', sans-serif;
  --body:'Public Sans', sans-serif;
  --mono:'JetBrains Mono', monospace;

  /* ---- mode clair (par défaut) ---- */
  --bg:#FDFBFF;
  --surface:#FFFFFF;
  --text:#1B1330;
  --text-soft:#5B5470;
  --line:rgba(27,19,48,0.10);
  --shadow-card:0 6px 24px rgba(27,19,48,0.07);
  --shadow-lift:0 10px 24px rgba(107,47,214,0.28);

  --violet-soft-bg:#F1E9FF; --violet-soft-text:#4B1FA0;
  --pink-soft-bg:#FFE3EC;   --pink-soft-text:#C21856;
  --orange-soft-bg:#FFE7D8; --orange-soft-text:#B3480F;
  --teal-soft-bg:#DAF7EF;   --teal-soft-text:#00806B;
  --yellow-soft-bg:#FFF3D6; --yellow-soft-text:#8A5B00;

  --btn-ink-bg:var(--text); --btn-ink-text:#fff;
}

:root[data-theme="dark"]{
  --bg:#120A26;
  --surface:#1C1338;
  --text:#F3EFFF;
  --text-soft:#B9AEDD;
  --line:rgba(255,255,255,0.10);
  --shadow-card:0 6px 24px rgba(0,0,0,0.35);
  --shadow-lift:0 10px 26px rgba(107,47,214,0.45);

  --violet-soft-bg:rgba(107,47,214,0.24); --violet-soft-text:#C9AEFF;
  --pink-soft-bg:rgba(255,61,120,0.20);   --pink-soft-text:#FF9DBB;
  --orange-soft-bg:rgba(255,122,61,0.20); --orange-soft-text:#FFB98A;
  --teal-soft-bg:rgba(0,191,160,0.20);    --teal-soft-text:#7BEBD3;
  --yellow-soft-bg:rgba(255,198,61,0.20); --yellow-soft-text:#FFDE8A;

  --btn-ink-bg:#F3EFFF; --btn-ink-text:var(--night-2);
}

/* ---------- BASE ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--body);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .2s ease,color .2s ease;}
img{max-width:100%;display:block;}
a{color:inherit;}
:focus-visible{outline:3px solid var(--violet);outline-offset:2px;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.tint-violet{background:var(--violet-soft-bg);color:var(--violet-soft-text);}
.tint-pink{background:var(--pink-soft-bg);color:var(--pink-soft-text);}
.tint-orange{background:var(--orange-soft-bg);color:var(--orange-soft-text);}
.tint-teal{background:var(--teal-soft-bg);color:var(--teal-soft-text);}
.tint-yellow{background:var(--yellow-soft-bg);color:var(--yellow-soft-text);}
.dot-violet{background:var(--violet);} .dot-pink{background:var(--pink);} .dot-orange{background:var(--orange);} .dot-teal{background:var(--teal);} .dot-yellow{background:var(--yellow);}

.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border-radius:var(--r-pill);}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.eyebrow.on-ink{background:rgba(255,255,255,0.1);color:#E7DEFF;}
.eyebrow.on-ink .dot{background:var(--yellow);}
.eyebrow.center{margin-left:auto;margin-right:auto;}

/* ---------- BUTTONS ---------- */
.btn{font-family:var(--body);font-weight:700;font-size:15px;padding:14px 26px;border-radius:var(--r-pill);border:2px solid var(--btn-ink-bg);background:var(--btn-ink-bg);color:var(--btn-ink-text);text-decoration:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);}
.btn.primary{background:linear-gradient(100deg,var(--violet),var(--pink));border-color:transparent;color:#fff;}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--text);}
.btn.ghost:hover{background:var(--text);color:var(--bg);}
.btn.on-ink{background:#fff;color:var(--night);border-color:#fff;}
.btn.on-ink:hover{background:var(--yellow);border-color:var(--yellow);color:var(--night);}
.btn.sm{padding:10px 18px;font-size:13.5px;}

/* ---------- NAV ---------- */
header.site{position:sticky;top:0;z-index:60;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid transparent;}
nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1180px;margin:0 auto;gap:14px;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:19px;text-decoration:none;color:var(--text);}
.brand img{height:30px;width:auto;}
:root[data-theme="dark"] .brand img{filter:brightness(0) invert(1);}
.navlinks{display:none;list-style:none;gap:4px;align-items:center;}
.navlinks a{font-size:14.5px;font-weight:600;text-decoration:none;color:var(--text-soft);padding:9px 14px;border-radius:var(--r-pill);display:flex;align-items:center;gap:7px;transition:background .15s ease,color .15s ease;}
.navlinks a:hover, .navlinks a.active{color:var(--text);background:var(--violet-soft-bg);}
.navlinks a .dot{width:6px;height:6px;border-radius:50%;}
@media(min-width:900px){.navlinks{display:flex;}}
.nav-right{display:flex;align-items:center;gap:10px;}
.nav-cta{display:none;}
@media(min-width:640px){.nav-cta{display:inline-flex;}}

.theme-toggle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.theme-toggle svg{width:19px;height:19px;}
.theme-toggle .icon-moon{display:none;}
:root[data-theme="dark"] .theme-toggle .icon-sun{display:none;}
:root[data-theme="dark"] .theme-toggle .icon-moon{display:block;}

.burger{display:flex;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);align-items:center;justify-content:center;cursor:pointer;}
@media(min-width:900px){.burger{display:none;}}
.burger span{display:block;width:18px;height:2px;background:var(--text);position:relative;}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--text);transition:transform .2s ease;}
.burger span::before{top:-6px;} .burger span::after{top:6px;}

.mobile-menu{display:none;flex-direction:column;gap:2px;padding:10px 24px 20px;border-top:1px solid var(--line);background:var(--bg);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:12px 6px;text-decoration:none;color:var(--text);font-weight:600;font-size:15px;display:flex;align-items:center;gap:10px;border-radius:var(--r-sm);}
.mobile-menu a:hover{background:var(--violet-soft-bg);}
.mobile-menu a .dot{width:7px;height:7px;border-radius:50%;}
@media(min-width:900px){.mobile-menu{display:none !important;}}

/* ---------- HERO (accueil) ---------- */
.hero{padding:56px 0 90px;position:relative;}
.hero .cols{display:grid;gap:52px;position:relative;z-index:2;}
@media(min-width:940px){.hero .cols{grid-template-columns:1.05fr 0.95fr;align-items:center;}}
.hero h1{font-family:var(--display);font-size:clamp(34px,5.4vw,58px);line-height:1.04;font-weight:800;margin:20px 0 20px;letter-spacing:-0.01em;}
.hero h1 .hl{background:linear-gradient(100deg,var(--violet),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p.lead{font-size:17.5px;color:var(--text-soft);max-width:50ch;margin-bottom:30px;}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:38px;}
.pillstats{display:flex;flex-wrap:wrap;gap:10px;}
.pillstat{font-family:var(--mono);font-size:12.5px;background:var(--surface);border-radius:var(--r-pill);padding:9px 16px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-card);}
.pillstat b{font-family:var(--body);font-weight:700;font-size:13px;}

.hero-stage{position:relative;height:440px;}
.blob{position:absolute;border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;background:linear-gradient(135deg,var(--violet) 0%, var(--pink) 55%, var(--orange) 100%);inset:20px 10px;animation:blobmove 12s ease-in-out infinite;}
@keyframes blobmove{0%,100%{border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;}50%{border-radius:58% 42% 40% 60% / 55% 60% 40% 45%;}}
.stage-phone{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%) rotate(-4deg);width:220px;border-radius:26px;border:7px solid var(--night);overflow:hidden;box-shadow:0 30px 60px rgba(27,19,48,0.35);z-index:3;}
.stage-phone img{display:block;width:100%;}
.float-chip{position:absolute;background:var(--surface);border-radius:var(--r-pill);padding:10px 16px 10px 10px;display:flex;align-items:center;gap:9px;box-shadow:var(--shadow-card);font-size:13px;font-weight:700;z-index:4;color:var(--text);}
.float-chip .ic{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chip-1{top:6%;left:0%;} .chip-2{bottom:10%;right:-2%;} .chip-3{top:42%;right:4%;}
@media(max-width:640px){.hero-stage{height:380px;}.stage-phone{width:180px;}.float-chip{font-size:11.5px;padding:8px 12px 8px 8px;}.float-chip .ic{width:24px;height:24px;}}
@media (prefers-reduced-motion: reduce){.blob{animation:none;}}

/* ---------- SECTIONS génériques ---------- */
section{padding:88px 0;}
.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-family:var(--display);font-size:clamp(27px,3.6vw,40px);font-weight:800;line-height:1.14;margin-top:14px;letter-spacing:-0.01em;}
.section-head p{color:var(--text-soft);margin-top:14px;font-size:16px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.ribbon{width:100%;height:70px;display:block;margin-top:-2px;}

/* ---------- PILLARS strip ---------- */
.pillars-band{background:var(--yellow-soft-bg);padding:44px 0;}
.pillars{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);}
@media(min-width:760px){.pillars{grid-template-columns:repeat(5,1fr);}}
.pillar{border-radius:var(--r-md);padding:22px 18px;text-decoration:none;color:var(--text);transition:transform .15s ease;display:flex;flex-direction:column;gap:10px;}
.pillar:hover{transform:translateY(-4px);}
.pillar .ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.pillar h4{font-family:var(--display);font-size:15.5px;font-weight:700;}
.pillar p{font-size:12.5px;color:var(--text-soft);}
.pillar.p1{background:var(--pink-soft-bg);} .pillar.p1 .ic{background:var(--pink);color:#fff;}
.pillar.p2{background:var(--orange-soft-bg);} .pillar.p2 .ic{background:var(--orange);color:#fff;}
.pillar.p3{background:var(--violet-soft-bg);} .pillar.p3 .ic{background:var(--violet);color:#fff;}
.pillar.p4{background:var(--yellow-soft-bg);} .pillar.p4 .ic{background:var(--yellow);color:#4A3300;}
.pillar.p5{background:var(--teal-soft-bg);} .pillar.p5 .ic{background:var(--teal);color:#fff;}

/* ---------- STEPS ---------- */
.steps{display:grid;gap:22px;}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{background:var(--surface);border-radius:var(--r-lg);padding:30px 26px;box-shadow:var(--shadow-card);}
.step .ic{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.step h3{font-family:var(--display);font-size:19px;margin-bottom:10px;font-weight:700;}
.step p{font-size:14.5px;color:var(--text-soft);}

/* ---------- OFFRE / TIERS ---------- */
.tiers-band{background:var(--violet-soft-bg);}
.tiers{display:grid;gap:20px;}
@media(min-width:820px){.tiers{grid-template-columns:repeat(4,1fr);}}
.tier{border-radius:var(--r-lg);background:var(--surface);padding:26px 24px;display:flex;flex-direction:column;box-shadow:var(--shadow-card);position:relative;}
.tier.highlight{background:linear-gradient(160deg,var(--violet) 0%, var(--violet-deep) 100%);color:#fff;box-shadow:0 16px 40px rgba(107,47,214,0.35);}
.tier.highlight .price{color:#F1E9FF;}
.tier.highlight li{border-top-color:rgba(255,255,255,0.16);color:#E7DEFF;}
.badge{position:absolute;top:-12px;right:20px;font-family:var(--mono);font-size:11px;padding:5px 12px;border-radius:var(--r-pill);background:var(--text);color:var(--bg);}
.tier .eyebrow{margin-bottom:12px;align-self:flex-start;}
.tier .eyebrow.neutral{background:var(--line);color:var(--text-soft);}
.tier .eyebrow.neutral .dot{background:var(--text-soft);}
.tier h3{font-family:var(--display);font-size:21px;margin-bottom:8px;font-weight:700;}
.tier .price{font-family:var(--mono);font-size:13.5px;color:var(--text-soft);margin-bottom:18px;min-height:34px;}
.tier ul{list-style:none;font-size:13.5px;color:var(--text-soft);flex:1;}
.tier li{padding:9px 0;border-top:1px solid var(--line);display:flex;gap:8px;}
.tier li:first-child{border-top:none;}
.tier li::before{content:"✓";font-weight:700;color:var(--teal);flex-shrink:0;}
.tier.highlight li::before{color:var(--yellow);}
.tier a.btn{margin-top:20px;justify-content:center;font-size:13.5px;padding:12px 20px;}

/* ---------- DASHBOARDS / NOC (toujours palette nuit) ---------- */
.dash-section{background:var(--night);color:#fff;}
.dash-section .section-head p{color:var(--on-night-soft);}
.dash-grid{display:grid;gap:22px;}
@media(min-width:700px){.dash-grid{grid-template-columns:repeat(2,1fr);}}
.dash-card{background:#0F0824;border-radius:var(--r-md);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,0.35);border:1px solid rgba(255,255,255,0.08);}
.dash-chrome{display:flex;align-items:center;gap:8px;padding:11px 14px;background:#150C30;border-bottom:1px solid rgba(255,255,255,0.06);}
.dash-chrome .tl{width:9px;height:9px;border-radius:50%;}
.dash-chrome .tl:nth-child(1){background:#FF5F57;} .dash-chrome .tl:nth-child(2){background:#FFBD2E;} .dash-chrome .tl:nth-child(3){background:#28C840;}
.dash-chrome span{font-family:var(--mono);font-size:11px;color:#8A7FAF;margin-left:8px;}
.dash-body{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 32px), repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 32px);}
/* Pour insérer une vraie capture Grafana : remplacer le contenu de .dash-body par
   <img src="assets/img/grafana-x.png" style="width:100%;height:100%;object-fit:cover;"> */
.dash-body .ic{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;color:var(--teal);}
.dash-body h4{font-family:var(--display);font-size:14.5px;font-weight:700;}
.dash-body p{font-family:var(--mono);font-size:11.5px;color:#8A7FAF;max-width:26ch;}
.dash-body.has-img{padding:0;background:none;}
.dash-body.has-img img{width:100%;height:100%;object-fit:cover;display:block;}
.dash-card{position:relative;}
.dash-card .live-tag{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;background:rgba(0,191,160,0.85);color:#04231C;padding:4px 9px;border-radius:999px;display:flex;align-items:center;gap:5px;z-index:2;}
.dash-card .live-tag .dot{width:5px;height:5px;border-radius:50%;background:#04231C;}

/* ---------- Galerie "preuve terrain" (photos réelles de déploiement) ---------- */
.terrain-grid{display:grid;gap:16px;margin-top:36px;}
@media(min-width:700px){.terrain-grid{grid-template-columns:repeat(3,1fr);}}
.terrain-card{border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-card);background:var(--surface);}
.terrain-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.terrain-card .cap{padding:12px 14px;font-family:var(--mono);font-size:11px;color:var(--text-soft);}
.cat.dark .terrain-card{background:rgba(255,255,255,0.05);box-shadow:none;}
.cat.dark .terrain-card .cap{color:var(--on-night-soft);}

/* ---------- SOUVERAINETE (toujours palette nuit) ---------- */
.sov{background:linear-gradient(180deg, var(--night) 0%, var(--night-2) 100%);color:#fff;}
.sov .section-head p{color:var(--on-night-soft);}
.sov-grid{display:grid;gap:36px;align-items:center;}
@media(min-width:900px){.sov-grid{grid-template-columns:1fr 0.8fr;}}
.sov-list{list-style:none;}
.sov-list li{padding:20px 0;display:grid;grid-template-columns:44px 1fr;gap:16px;border-top:1px solid var(--on-night-line);}
.sov-list li:first-child{border-top:none;}
.sov-list .ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;}
.sov-list li:nth-child(1) .ic{background:rgba(0,191,160,0.16);color:var(--teal);}
.sov-list li:nth-child(2) .ic{background:rgba(255,61,120,0.16);color:var(--pink);}
.sov-list li:nth-child(3) .ic{background:rgba(255,198,61,0.16);color:var(--yellow);}
.sov-list li:nth-child(4) .ic{background:rgba(107,47,214,0.22);color:#B99BFF;}
.sov-list li:nth-child(5) .ic{background:rgba(255,122,61,0.16);color:var(--orange);}
.sov-list h4{font-family:var(--display);font-size:16px;margin-bottom:5px;}
.sov-list p{font-size:13.8px;color:var(--on-night-soft);}
.fee-note{margin-top:22px;padding:18px 20px;border-radius:var(--r-md);background:rgba(255,198,61,0.1);border:1px solid rgba(255,198,61,0.25);font-family:var(--mono);font-size:12.5px;color:#FFC63D;}

.stamp-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;}
.stamp{width:210px;height:210px;opacity:0;transform:scale(1.5) rotate(-14deg);transition:opacity .5s ease, transform .5s cubic-bezier(.2,1.4,.4,1);}
.stamp.stamped{opacity:1;transform:scale(1) rotate(-6deg);}
@media (prefers-reduced-motion: reduce){.stamp{transition:none;opacity:1;transform:scale(1) rotate(-6deg);}}
.stamp-caption{font-family:var(--mono);font-size:12px;color:#8A7FAF;text-align:center;max-width:230px;}

/* ---------- FAQ ---------- */
.faq-item{border-radius:var(--r-md);background:var(--surface);margin-bottom:12px;box-shadow:var(--shadow-card);overflow:hidden;}
.faq-q{width:100%;text-align:left;background:none;border:none;font-family:var(--body);font-size:16px;font-weight:700;color:var(--text);padding:20px 22px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-q .plus{width:28px;height:28px;border-radius:50%;background:var(--violet-soft-bg);color:var(--violet-soft-text);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;transition:transform .2s ease, background .2s ease;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);background:var(--violet);color:#fff;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{padding:0 22px 22px;color:var(--text-soft);font-size:14.5px;max-width:66ch;}

/* ---------- CTA band ---------- */
.cta-band{padding:70px 0;text-align:center;}
.cta-band .box{background:linear-gradient(120deg,var(--violet) 0%, var(--pink) 60%, var(--orange) 100%);border-radius:var(--r-lg);padding:56px 40px;color:#fff;}
.cta-band h2{font-family:var(--display);font-size:clamp(24px,3.4vw,34px);margin-bottom:14px;font-weight:800;}
.cta-band p{color:#F1E9FF;margin-bottom:26px;}

/* ---------- FOOTER (toujours palette nuit) ---------- */
footer{padding:52px 0 40px;background:var(--night-2);color:#8A7FAF;}
.footer-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px;}
footer .brand{color:#fff;}
footer .brand img{filter:brightness(0) invert(1);}
.tricolor-rule{height:4px;width:70px;background:linear-gradient(to right, #1F3A5F 0 33%, #E8ECEE 33% 66%, #9C3B3B 66% 100%);margin-bottom:20px;border-radius:2px;}
footer small{font-family:var(--mono);font-size:12px;}
footer a{color:#B9AEDD;text-decoration:none;}
footer a:hover{color:#fff;}

/* ---------- FONCTIONNALITES : feature rows ---------- */
.hero-page{padding:56px 0 48px;text-align:center;}
.hero-page h1{font-family:var(--display);font-size:clamp(30px,4.8vw,50px);line-height:1.08;font-weight:800;margin:18px auto 16px;max-width:20ch;}
.hero-page p.lead{font-size:16.5px;color:var(--text-soft);max-width:58ch;margin:0 auto;}

section.cat{padding:80px 0;}
section.cat.dark{background:linear-gradient(180deg,var(--night) 0%, var(--night-2) 100%);color:#fff;}
section.cat.dark p{color:var(--on-night-soft);}
.cat-head{max-width:680px;margin-bottom:44px;}
.cat-head h2{font-family:var(--display);font-size:clamp(25px,3.3vw,36px);font-weight:800;margin-top:12px;line-height:1.15;}
.cat-head p{color:var(--text-soft);margin-top:12px;font-size:15.5px;}

.feature-row{display:grid;gap:40px;align-items:center;}
.feature-row:not(:last-child){margin-bottom:64px;}
@media(min-width:860px){
  .feature-row{grid-template-columns:0.85fr 1.15fr;}
  .feature-row.reverse{grid-template-columns:1.15fr 0.85fr;}
  .feature-row.reverse .phone-col{order:2;}
}
.feature-list{list-style:none;}
.feature-list li{padding:16px 0;display:flex;gap:14px;}
.feature-list .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.feature-list h3{font-family:var(--display);font-size:16.5px;margin-bottom:4px;font-weight:700;}
.feature-list p{font-size:13.8px;color:var(--text-soft);}
.cat.dark .feature-list p{color:var(--on-night-soft);}

.phone-col{display:flex;justify-content:center;}
.phone-stage{position:relative;width:230px;padding:26px 0;}
.phone-glow{position:absolute;inset:0;border-radius:44% 56% 62% 38% / 48% 42% 58% 52%;filter:blur(2px);z-index:0;opacity:0.55;}
.phone{position:relative;z-index:1;width:220px;border-radius:26px;border:7px solid var(--night);overflow:hidden;box-shadow:0 20px 48px rgba(27,19,48,0.22);background:var(--night);}
.phone img{display:block;width:100%;}
.phone-caption{font-family:var(--mono);font-size:11.5px;text-align:center;color:var(--text-soft);margin-top:14px;}
.cat.dark .phone-caption{color:#8A7FAF;}

.grid-simple{display:grid;gap:20px;}
@media(min-width:760px){.grid-simple{grid-template-columns:repeat(2,1fr);}}
.card-simple{border-radius:var(--r-md);padding:24px;background:var(--surface);box-shadow:var(--shadow-card);}
.cat.dark .card-simple{background:rgba(255,255,255,0.05);box-shadow:none;}
.card-simple .ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.card-simple h3{font-family:var(--display);font-size:16.5px;margin-bottom:7px;font-weight:700;}
.card-simple p{font-size:13.8px;color:var(--text-soft);}
.cat.dark .card-simple p{color:var(--on-night-soft);}

.dash-grid.in-page{margin-top:46px;}

/* ---------- CONTACT ---------- */
.hero-contact{padding:60px 0 44px;background:var(--violet-soft-bg);}
.hero-contact h1{font-family:var(--display);font-size:clamp(29px,4.4vw,46px);line-height:1.1;font-weight:800;margin:16px 0 16px;max-width:19ch;}
.hero-contact p.lead{font-size:16.5px;color:var(--text-soft);max-width:56ch;}

.content{padding:64px 0 90px;}
.grid2{display:grid;gap:44px;}
@media(min-width:900px){.grid2{grid-template-columns:1.1fr 0.9fr;}}

form.contact-form{display:flex;flex-direction:column;gap:18px;background:var(--surface);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-card);}
.field{display:flex;flex-direction:column;gap:7px;}
label{font-family:var(--mono);font-size:12px;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-soft);}
input,select,textarea{font-family:var(--body);font-size:15px;color:var(--text);background:var(--bg);border:2px solid transparent;border-radius:var(--r-sm);padding:12px 15px;}
input:focus,select:focus,textarea:focus{border-color:var(--violet);outline:none;}
textarea{resize:vertical;min-height:110px;}
.row2{display:grid;gap:18px;grid-template-columns:1fr;}
@media(min-width:560px){.row2{grid-template-columns:1fr 1fr;}}
.submit-row{display:flex;align-items:center;gap:16px;margin-top:6px;flex-wrap:wrap;}
.submit-row small{font-family:var(--mono);color:var(--text-soft);font-size:12px;}

.side{background:linear-gradient(160deg,var(--night) 0%, var(--night-2) 100%);color:#fff;border-radius:var(--r-lg);padding:30px;height:fit-content;}
.side h3{font-family:var(--display);font-size:15px;letter-spacing:0.03em;text-transform:uppercase;color:#FFC63D;margin-bottom:18px;font-weight:800;}
.side .row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--on-night-line);font-size:13.5px;}
.side .row:last-child{border-bottom:none;}
.side .row span:first-child{color:var(--on-night-soft);}
.side .row a{color:#FFC63D;text-decoration:none;}
.side .row a:hover{text-decoration:underline;}

.alert{border-radius:var(--r-sm);padding:16px 18px;margin-bottom:20px;font-size:14px;}
.alert.error{background:var(--pink-soft-bg);color:var(--pink-soft-text);}

/* ---------- MENTIONS LEGALES ---------- */
.legal-wrap{max-width:820px;margin:0 auto;padding:0 24px;}
.legal-hero{padding:56px 0 32px;}
.legal-hero h1{font-family:var(--display);font-size:clamp(28px,4.4vw,42px);margin:16px 0 10px;font-weight:800;}
.legal-hero p{color:var(--text-soft);}
main.legal{padding:44px 0 90px;}
main.legal section{margin-bottom:34px;background:var(--surface);border-radius:var(--r-md);padding:26px 28px;box-shadow:var(--shadow-card);}
main.legal h2{font-family:var(--display);font-size:18px;margin-bottom:14px;font-weight:700;display:flex;align-items:center;gap:10px;}
main.legal h2 .num{width:26px;height:26px;border-radius:8px;background:var(--violet-soft-bg);color:var(--violet-soft-text);font-family:var(--mono);font-size:12.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
main.legal p, main.legal li{font-size:14.5px;color:var(--text-soft);}
main.legal li{margin-bottom:6px;}
main.legal ul{margin-left:18px;margin-bottom:10px;}
main.legal a{color:var(--violet-soft-text);}
.placeholder{background:var(--violet-soft-bg);border-radius:6px;padding:2px 8px;color:var(--violet-soft-text);font-family:var(--mono);font-size:13px;}

/* ---------- MERCI ---------- */
body.page-merci{background:radial-gradient(circle at 20% 20%, rgba(255,61,120,0.35), transparent 45%),radial-gradient(circle at 85% 80%, rgba(0,191,160,0.3), transparent 45%),radial-gradient(circle at 80% 15%, rgba(255,198,61,0.25), transparent 40%),linear-gradient(160deg, var(--night) 0%, var(--night-2) 100%);color:#fff;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;}
.merci-card{max-width:500px;}
.merci-badge{width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--pink));display:flex;align-items:center;justify-content:center;margin:0 auto 22px;box-shadow:0 16px 40px rgba(255,61,120,0.35);}
.merci-card .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:16px;background:none;padding:0;}
.merci-card h1{font-family:var(--display);font-size:clamp(27px,4.2vw,38px);margin-bottom:16px;font-weight:800;line-height:1.15;}
.merci-card p{color:var(--on-night-soft);font-size:15.5px;margin-bottom:30px;}
