@font-face{font-family:"Bricolage Grotesque";src:url("/fonts/bricolage.woff") format("woff");font-weight:500 700;font-display:swap}
@font-face{font-family:"Figtree";src:url("/fonts/figtree.woff") format("woff");font-weight:300 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/fonts/jetbrains-mono.woff") format("woff");font-weight:100 800;font-display:swap}
/*
  Direction (unslop)
  Product   : Okalo décroche le téléphone des barbiers et salons belges pendant la coupe, répond et envoie le lien de réservation par SMS.
  Character : rassurant, direct, un peu vif.
  World     : le comptoir du salon, un téléphone qui sonne à côté des ciseaux.
  Moment    : un téléphone qui montre un vrai appel décroché, puis le SMS reçu par le client.
  Signature : le disque jaune et ses ondes de sonnerie, uniquement là où un appel est vivant.
  Layout    : hero en deux colonnes (texte / téléphone), puis sections calmes sur fond surface.
*/
:root{
  --surface:#F6F7FB; --raised:#FFFFFF; --sunken:#ECEFF6;
  --ink:#12152A; --ink-2:#545A75; --ink-3:#6B7189;
  --line:rgba(18,21,42,.09);
  --blue:#2E44FF; --blue-ink:#2337D9; --on-blue:#FFFFFF; --blue-soft:#E3E7FF;
  --signal:#FFC928; --on-signal:#12152A;
  --ok:#0F7A52;
  --phone:#12152A; --phone-screen:#FFFFFF; --bubble:#F1F3F9;
  --shadow:0 1px 2px rgba(18,21,42,.06),0 8px 24px rgba(18,21,42,.08);
  --f-display:"Bricolage Grotesque",ui-rounded,system-ui,sans-serif;
  --f-text:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --r-ctl:12px; --r-card:20px; --r-panel:20px; --r-badge:6px;
  --focus:#2E44FF;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --surface:#0F1220; --raised:#181C2E; --sunken:#13172A;
  --ink:#EEF0FA; --ink-2:#A3A9C4; --ink-3:#8A90AB;
  --line:rgba(238,240,250,.09);
  --blue:#6F80FF; --blue-ink:#8C9BFF; --on-blue:#0F1220; --blue-soft:#1E2547;
  --signal:#FFD54D; --on-signal:#12152A; --ok:#4ED3A0;
  --phone:#05060C; --phone-screen:#181C2E; --bubble:#222741;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.35);
  --focus:#FFD54D;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --surface:#0F1220; --raised:#181C2E; --sunken:#13172A;
  --ink:#EEF0FA; --ink-2:#A3A9C4; --ink-3:#8A90AB;
  --line:rgba(238,240,250,.09);
  --blue:#6F80FF; --blue-ink:#8C9BFF; --on-blue:#0F1220; --blue-soft:#1E2547;
  --signal:#FFD54D; --on-signal:#12152A; --ok:#4ED3A0;
  --phone:#05060C; --phone-screen:#181C2E; --bubble:#222741;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.35);
  --focus:#FFD54D;
  color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--surface);color:var(--ink);font-family:var(--f-text);font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:720px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
a{color:inherit}
h1,h2{font-family:var(--f-display);font-weight:700;margin:0;text-wrap:balance}
h3{font-family:var(--f-display);font-weight:600;margin:0;text-wrap:balance}
p{margin:0}
.icon{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}

/* Nav */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--surface)}
.nav .wrap{height:64px;display:flex;align-items:center;gap:24px}
.logo{font-family:var(--f-display);font-weight:700;font-size:24px;line-height:1;text-decoration:none;letter-spacing:-.01em}
.nav-links{display:flex;gap:24px;margin-left:auto;font-size:15px;color:var(--ink-2)}
.nav-links a{text-decoration:none;transition:color .15s var(--ease)}
.nav-links a:hover{color:var(--ink)}
@media (max-width:719px){.nav-links{display:none}.nav .btn{margin-left:auto}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:var(--r-ctl);font:600 16px/20px var(--f-text);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),transform .12s var(--ease)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--blue);color:var(--on-blue)}
.btn-primary:hover{background:var(--blue-ink)}
.btn-ghost{background:var(--raised);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:color-mix(in srgb,var(--ink) 22%,transparent)}
.btn-sm{height:36px;padding:0 16px;font-size:15px}

/* Hero */
.hero .wrap{display:grid;grid-template-columns:1fr;gap:48px;padding-block:48px 64px}
@media (min-width:960px){.hero .wrap{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:64px;padding-block:80px 96px}}
.hero-text{display:flex;flex-direction:column;gap:24px;min-width:0}
.hero h1{font-size:40px;line-height:1.06;letter-spacing:-.02em}
@media (min-width:720px){.hero h1{font-size:64px;line-height:64px;letter-spacing:-.02em}}
.lede{font-size:18px;line-height:28px;color:var(--ink-2);max-width:34rem}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;line-height:20px;color:var(--ink-3)}
.meta span{display:inline-flex;align-items:center;gap:8px}
.meta .icon{width:16px;height:16px;color:var(--ok)}

/* Phone moment */
.stage{position:relative;display:flex;justify-content:center;min-width:0;padding:40px 16px 64px;border-radius:var(--r-panel);background:var(--blue);overflow:hidden;isolation:isolate}
.waves{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.waves circle{fill:none;stroke:var(--on-blue);stroke-width:2;opacity:.32}
@media (min-width:960px){.stage{padding:56px 40px 72px}}
.phone{position:relative;width:min(340px,100%);background:var(--phone);border-radius:44px;padding:12px;box-shadow:0 24px 48px rgba(8,12,60,.35)}
.screen{background:var(--phone-screen);border-radius:32px;padding:20px 16px 64px;display:flex;flex-direction:column;gap:16px;min-height:540px}
.status{display:flex;justify-content:space-between;font:500 12px/16px var(--f-mono);color:var(--ink-3);padding:0 8px}
.callcard{display:flex;align-items:center;gap:16px;padding:16px;border-radius:var(--r-panel);background:var(--blue);color:var(--on-blue)}
.ring{position:relative;width:44px;height:44px;flex:none;display:grid;place-items:center}
.ring .dot{width:20px;height:20px;border-radius:50%;background:var(--signal);position:relative;z-index:1}
.ring i{position:absolute;inset:0;border-radius:50%;border:2px solid currentColor;opacity:.5}
.ring i:nth-child(2){inset:-8px;opacity:.28}
.callcard b{display:block;font-weight:600;font-size:16px;line-height:20px}
.callcard small{display:block;font:400 12px/16px var(--f-mono);opacity:.82;margin-top:4px}
.convo{display:flex;flex-direction:column;gap:8px;padding:0 4px}
.who{font:500 12px/16px var(--f-mono);color:var(--ink-3);margin-top:4px}
.b{max-width:88%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:20px}
.b.client{align-self:flex-start;background:var(--bubble);border-bottom-left-radius:6px}
.b.okalo{align-self:flex-end;background:var(--blue-soft);color:var(--ink);border-bottom-right-radius:6px}
.who.r{align-self:flex-end}
.sms{position:absolute;left:-12px;right:-12px;bottom:-36px;margin:0 auto;max-width:360px;background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:flex-start}
.sms .ico{width:36px;height:36px;border-radius:10px;background:var(--ok);color:#fff;display:grid;place-items:center;flex:none}
.sms .ico .icon{width:18px;height:18px}
.sms-head{display:flex;justify-content:space-between;gap:8px;font-size:13px;line-height:18px;color:var(--ink-3)}
.sms-head b{color:var(--ink);font-weight:600}
.sms p{font-size:14px;line-height:20px;margin-top:2px}
.sms .link{color:var(--blue-ink);font-family:var(--f-mono);font-size:13px}
@media (max-width:420px){.screen{min-height:500px}.sms{left:0;right:0}}

/* Sections */
section.block .wrap{padding-block:64px}
@media (min-width:720px){section.block .wrap{padding-block:96px}}
.sec-head{display:flex;flex-direction:column;gap:12px;max-width:40rem;margin-bottom:40px}
.eyebrow{font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-ink)}
.sec-head h2{font-size:32px;line-height:38px;letter-spacing:-.01em}
@media (min-width:720px){.sec-head h2{font-size:40px;line-height:44px}}
.sec-head p{font-size:18px;line-height:28px;color:var(--ink-2)}
.alt{background:var(--raised);border-block:1px solid var(--line)}

/* Problem */
.problem{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:800px){.problem{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
.pcell{display:flex;flex-direction:column;gap:8px;padding-top:20px;border-top:1px solid var(--line)}
.pcell .icon{color:var(--ink-3)}
.pcell h3{font-size:20px;line-height:26px;margin-top:8px}
.pcell p{color:var(--ink-2)}

/* Steps */
.steps{display:grid;gap:16px;grid-template-columns:1fr;counter-reset:s}
@media (min-width:800px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:24px;display:flex;flex-direction:column;gap:12px}
.step .n{font:500 13px/16px var(--f-mono);color:var(--ink-3)}
.step h3{font-size:20px;line-height:26px}
.step p{color:var(--ink-2)}

/* Features list */
.feats{display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media (min-width:800px){.feats{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}}
.feat{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.feat .icon{margin-top:3px;color:var(--blue-ink)}
.feat h3{font-family:var(--f-text);font-size:16px;line-height:24px;font-weight:600}
.feat p{color:var(--ink-2);font-size:15px;line-height:22px;margin-top:2px}

/* Pilot */
.pilot{display:grid;gap:24px;grid-template-columns:1fr;align-items:center}
@media (min-width:860px){.pilot{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}}
.pilot h2{font-size:32px;line-height:38px;letter-spacing:-.01em}
@media (min-width:720px){.pilot h2{font-size:40px;line-height:44px}}
.pilot p{font-size:18px;line-height:28px;color:var(--ink-2);margin-top:12px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:20px}
.fact b{display:block;font:500 15px/22px var(--f-mono);font-variant-numeric:tabular-nums}
.fact span{display:block;font-size:14px;line-height:20px;color:var(--ink-3);margin-top:4px}

/* Pricing */
.price-wrap{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:860px){.price-wrap{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:48px}}
.price{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-panel);padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:20px}
.amount{display:flex;align-items:baseline;gap:8px}
.amount b{font:700 56px/1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.amount span{color:var(--ink-2)}
.price ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.price li{display:flex;gap:10px;font-size:15px;line-height:22px}
.price li .icon{width:16px;height:16px;margin-top:3px;color:var(--ok)}
.fine{font-size:14px;line-height:20px;color:var(--ink-3)}
.launch{border-radius:var(--r-card);background:var(--blue-soft);padding:20px 24px}
.launch b{font-weight:600}
.launch p{color:var(--ink-2);font-size:15px;line-height:22px;margin-top:4px}

/* FAQ */
.faq{max-width:760px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font-weight:600;font-size:17px;line-height:24px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .icon{color:var(--ink-3);transition:transform .2s var(--ease);margin-top:3px}
.faq details[open] summary .icon{transform:rotate(45deg)}
.faq details p{color:var(--ink-2);padding:0 32px 20px 0;max-width:62ch}

/* Contact */
.contact{background:var(--blue);color:var(--on-blue)}
.contact .wrap{padding-block:72px;display:grid;gap:32px;grid-template-columns:1fr;align-items:center}
@media (min-width:860px){.contact .wrap{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);padding-block:96px}}
.contact h2{font-size:34px;line-height:40px;letter-spacing:-.02em}
@media (min-width:720px){.contact h2{font-size:44px;line-height:50px}}
.contact p{font-size:18px;line-height:28px;opacity:.88;margin-top:12px;max-width:34rem}

footer .wrap{padding-block:32px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:14px;line-height:20px;color:var(--ink-3)}

/* One entrance */
@media (prefers-reduced-motion:no-preference){
  .hero-text>*,.stage{animation:rise .5s var(--ease) both}
  .hero-text>*:nth-child(2){animation-delay:.05s}
  .hero-text>*:nth-child(3){animation-delay:.1s}
  .hero-text>*:nth-child(4){animation-delay:.15s}
  .stage{animation-delay:.12s}
  @keyframes rise{from{opacity:.001;transform:translateY(8px)}to{opacity:1;transform:none}}
}

/* Formulaire */
.form{background:var(--raised);color:var(--ink);border-radius:var(--r-panel);padding:24px;display:grid;gap:16px;box-shadow:0 24px 48px rgba(8,12,60,.25)}
.form .row{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:520px){.form .row{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:14px;line-height:20px;font-weight:600}
.field label small{font-weight:400;color:var(--ink-3)}
.field input,.field textarea{width:100%;height:44px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);background:var(--surface);color:var(--ink);font:400 16px/24px var(--f-text);transition:border-color .15s var(--ease)}
.field textarea{height:96px;padding:10px 12px;resize:vertical}
.field input:focus,.field textarea:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}
.hp{position:absolute;left:-9999px}
.form .fine{margin:0}
.form .fine a{color:var(--blue-ink)}
footer nav{display:flex;gap:20px;flex-wrap:wrap}
footer a{color:var(--ink-2);text-decoration:none}
footer a:hover{color:var(--ink)}
/* Pages simples */
.doc .wrap{padding-block:56px 80px;max-width:760px}
.doc h1{font-size:40px;line-height:44px;letter-spacing:-.01em;margin-bottom:24px}
.doc h2{font-size:22px;line-height:28px;font-weight:600;margin:32px 0 8px}
.doc p,.doc li{color:var(--ink-2);font-size:16px;line-height:26px}
.doc p+p{margin-top:12px}
.doc ul{padding-left:20px;margin:8px 0}
.doc .back{display:inline-block;margin-top:32px;color:var(--blue-ink);font-weight:600;text-decoration:none}
