  :root{
    --ink:#0e0e10;
    --ink-soft:#18181b;
    --paper:#f0f1ee;
    --paper-deep:#e6e7e2;
    --red:#d71921;
    --red-deep:#a3121a;
    --white:#ffffff;
    --steel:#5a5d61;
    --steel-light:#9a9d9f;
    --line: rgba(14,14,16,0.12);
    --line-on-dark: rgba(255,255,255,0.14);
    --radius-sharp: 2px;
    --radius-soft: 10px;
    --maxw: 1180px;
    --ff-head: 'Space Grotesk', sans-serif;
    --ff-body: 'IBM Plex Sans', sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--ff-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:var(--ff-head);
    margin:0;
    line-height:1.08;
    letter-spacing:-0.01em;
  }
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;cursor:pointer;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  section{position:relative;}

  ::selection{background:var(--red); color:var(--white);}

  :focus-visible{outline:2px solid var(--red); outline-offset:3px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky; top:0; z-index:50;
    background:rgba(15,15,17,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line-on-dark);
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:0 28px;
    display:flex; align-items:center; justify-content:space-between;
    height:72px;
  }
  .brand{display:flex; align-items:center; gap:10px; color:var(--white);}
  .brand-mark{width:34px; height:34px; flex-shrink:0;}
  .brand-name{font-family:var(--ff-head); font-weight:700; font-size:1.05rem; letter-spacing:-0.01em;}
  .brand-name span{color:var(--red);}

  nav.main-links{display:flex; gap:2.1rem;}
  nav.main-links a{
    color:#d7d7d9; font-size:0.92rem; font-weight:500;
    padding:6px 0; border-bottom:1px solid transparent;
    transition:color .15s ease, border-color .15s ease;
  }
  nav.main-links a:hover{color:var(--white); border-color:var(--red);}

  .nav-cta{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--red); color:var(--white);
    padding:10px 18px; font-size:0.88rem; font-weight:600;
    border-radius:var(--radius-sharp);
    transition:background .15s ease;
  }
  .nav-cta:hover{background:var(--red-deep);}

  .nav-toggle{display:none; background:none; border:none; color:var(--white); padding:8px;}
  .nav-toggle svg{width:24px;height:24px;}

  @media (max-width:900px){
    nav.main-links{
      position:fixed; inset:72px 0 0 0; background:var(--ink);
      flex-direction:column; padding:24px 28px; gap:0;
      transform:translateY(-8px); opacity:0; pointer-events:none;
      transition:opacity .18s ease, transform .18s ease;
    }
    nav.main-links.open{opacity:1; transform:translateY(0); pointer-events:auto;}
    nav.main-links a{padding:14px 0; border-bottom:1px solid var(--line-on-dark); width:100%;}
    .nav-cta{display:none;}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink);
    color:var(--white);
    overflow:hidden;
    position:relative;
    padding:88px 0 96px;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(60% 90% at 88% 12%, rgba(215,25,33,0.20), transparent 60%);
    pointer-events:none;
  }
  .hero-grid{
    position:relative; z-index:1;
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;
  }
  .hero-eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.82rem; color:var(--steel-light); font-weight:500;
    margin-bottom:22px;
  }
  .hero-eyebrow .dot{width:7px; height:7px; background:var(--red); border-radius:50%;}
  .hero h1{
    font-size:clamp(2.3rem, 4.4vw, 3.5rem);
    font-weight:700;
    margin-bottom:22px;
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(180deg, transparent 62%, var(--red) 62%);
  }
  .hero p.lead{
    font-size:1.08rem; color:#c8c9cb; max-width:52ch; margin-bottom:36px;
  }
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px;}
  .btn{
    display:inline-flex; align-items:center; gap:9px;
    padding:14px 24px; font-size:0.94rem; font-weight:600;
    border-radius:var(--radius-sharp); border:1px solid transparent;
    transition:transform .12s ease, background .15s ease, border-color .15s ease, color .15s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--red); color:var(--white);}
  .btn-primary:hover{background:var(--red-deep);}
  .btn-ghost{border-color:var(--line-on-dark); color:var(--white);}
  .btn-ghost:hover{border-color:var(--white);}
  .btn-dark{border-color:var(--line); color:var(--ink);}
  .btn-dark:hover{border-color:var(--ink);}

  .hero-services{
    display:flex; flex-wrap:wrap; gap:10px 22px;
  }
  .hero-services li{
    font-size:0.85rem; color:#b7b8ba;
    display:flex; align-items:center; gap:7px;
  }
  .hero-services li::before{content:""; width:5px; height:5px; background:var(--red); flex-shrink:0;}

  /* Radar / lens illustration */
  .hero-art{position:relative; display:flex; align-items:center; justify-content:center;}
  .lens{width:100%; max-width:400px; aspect-ratio:1/1;}

  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr; gap:44px;}
    .hero-art{order:-1; max-width:260px; margin:0 auto;}
  }

  /* ---------- SECTION HEADS ---------- */
  .section-head{
    display:grid; grid-template-columns:auto 1fr; gap:32px; align-items:end;
    margin-bottom:44px;
  }
  .section-tag{
    font-family:var(--ff-head); font-weight:600; font-size:0.82rem;
    color:var(--red); white-space:nowrap; padding-top:6px;
  }
  .section-head h2{
    font-size:clamp(1.7rem, 3vw, 2.35rem);
    max-width:20ch;
  }
  .section-head p.section-sub{
    color:var(--steel); max-width:56ch; margin-top:10px; font-size:0.98rem;
  }
  @media (max-width:640px){
    .section-head{grid-template-columns:1fr; gap:8px;}
  }

  section.pad{padding:88px 0;}
  section.dark{background:var(--ink); color:var(--white);}
  section.dark .section-sub{color:#b7b8ba;}
  section.paper-deep{background:var(--paper-deep);}

  /* ---------- ABOUT ---------- */
  .about-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px;
  }
  .about-text p{color:var(--steel); font-size:1.02rem; margin-bottom:1.1em;}
  .pillars{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line);}
  .pillar{background:var(--paper); padding:22px 20px;}
  .pillar h4{font-size:0.95rem; margin-bottom:6px;}
  .pillar p{font-size:0.86rem; color:var(--steel);}

  .mvv{display:flex; flex-direction:column; gap:26px;}
  .mvv-item{border-left:2px solid var(--red); padding-left:18px;}
  .mvv-item h3{font-size:1.02rem; margin-bottom:6px;}
  .mvv-item p{color:var(--steel); font-size:0.94rem;}

  @media (max-width:900px){
    .about-grid{grid-template-columns:1fr; gap:40px;}
  }

  /* ---------- SERVICES (bento) ---------- */
  .service-grid{
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--paper);
    padding:28px 26px;
    grid-column:span 3;
    display:flex; flex-direction:column;
  }
  .service-card.big{grid-column:span 4;}
  .service-card.small{grid-column:span 2;}
  .service-card .icon{font-size:1.6rem; margin-bottom:14px;}
  .service-card h3{font-size:1.12rem; margin-bottom:8px;}
  .service-card p.desc{color:var(--steel); font-size:0.92rem; margin-bottom:16px;}
  .service-card .toggle{
    margin-top:auto;
    display:inline-flex; align-items:center; gap:7px;
    font-size:0.82rem; font-weight:600; color:var(--red);
    background:none; border:none; padding:0; align-self:flex-start;
  }
  .service-card .toggle svg{width:13px; height:13px; transition:transform .18s ease;}
  .service-card.open .toggle svg{transform:rotate(45deg);}
  .service-list{
    list-style:none; margin-top:14px; padding-top:14px;
    border-top:1px solid var(--line);
    display:none;
  }
  .service-card.open .service-list{display:block;}
  .service-list li{
    font-size:0.86rem; color:var(--ink); padding:5px 0;
    display:flex; gap:8px;
  }
  .service-list li::before{content:"—"; color:var(--red); flex-shrink:0;}

  @media (max-width:900px){
    .service-grid{grid-template-columns:1fr 1fr;}
    .service-card, .service-card.big, .service-card.small{grid-column:span 1;}
  }
  @media (max-width:560px){
    .service-grid{grid-template-columns:1fr;}
  }

  /* ---------- FORMATION ---------- */
  .formation-grid{
    display:grid; grid-template-columns:0.95fr 1.05fr; gap:56px; align-items:start;
  }
  .formation-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
  .formation-list li{
    font-size:0.85rem; border:1px solid var(--line-on-dark);
    padding:8px 14px; border-radius:999px; color:#d7d7d9;
  }
  .programme-card{
    background:var(--ink-soft); border:1px solid var(--line-on-dark);
    padding:34px; border-radius:var(--radius-soft);
  }
  .programme-card h3{font-size:1.3rem; margin-bottom:8px;}
  .programme-card .sub{color:var(--steel-light); font-size:0.9rem; margin-bottom:22px;}
  .programme-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:22px;}
  .programme-stats div{border-top:2px solid var(--red); padding-top:10px;}
  .programme-stats strong{display:block; font-family:var(--ff-head); font-size:1.4rem;}
  .programme-stats span{font-size:0.78rem; color:var(--steel-light);}
  .programme-card ul{display:flex; flex-direction:column; gap:8px;}
  .programme-card ul li{font-size:0.88rem; color:#c8c9cb; display:flex; gap:8px;}
  .programme-card ul li::before{content:"✓"; color:var(--red); font-weight:700;}

  @media (max-width:900px){
    .formation-grid{grid-template-columns:1fr;}
  }

  /* ---------- PACKS ---------- */
  .pack-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  .pack-card{
    background:var(--paper); border:1px solid var(--line); padding:26px 22px;
    display:flex; flex-direction:column;
  }
  .pack-card .pack-name{
    font-family:var(--ff-head); font-weight:700; font-size:1.05rem; margin-bottom:16px;
    padding-bottom:14px; border-bottom:2px solid var(--red);
  }
  .pack-card ul{display:flex; flex-direction:column; gap:8px;}
  .pack-card ul li{font-size:0.88rem; color:var(--steel); display:flex; gap:8px;}
  .pack-card ul li::before{content:"+"; color:var(--red); font-weight:700;}
  @media (max-width:900px){
    .pack-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .pack-grid{grid-template-columns:1fr;}
  }

  /* ---------- REALISATIONS ---------- */
  .real-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .real-card{background:var(--paper); padding:26px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between;}
  .real-card .n{font-family:var(--ff-head); font-size:0.8rem; color:var(--steel-light);}
  .real-card h4{font-size:1rem; margin-top:14px;}
  @media (max-width:900px){.real-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.real-grid{grid-template-columns:1fr;}}

  /* ---------- WHY ---------- */
  .why-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:0;}
  .why-card{padding:0 22px 0 0; border-right:1px solid var(--line-on-dark);}
  .why-card:last-child{border-right:none; padding-right:0;}
  .why-card .num{font-family:var(--ff-head); font-size:0.8rem; color:var(--red); margin-bottom:14px;}
  .why-card h4{font-size:1rem; margin-bottom:10px; color:var(--white);}
  .why-card p{font-size:0.86rem; color:#b7b8ba;}
  @media (max-width:900px){
    .why-grid{grid-template-columns:1fr 1fr; row-gap:32px;}
    .why-card{border-right:none; border-bottom:1px solid var(--line-on-dark); padding:0 0 24px;}
  }
  @media (max-width:560px){.why-grid{grid-template-columns:1fr;}}

  /* ---------- PROCESS ---------- */
  .process-track{position:relative; padding-left:2px;}
  .process-step{
    display:grid; grid-template-columns:80px 1fr; gap:24px;
    padding:26px 0; border-top:1px solid var(--line);
  }
  .process-step:last-child{border-bottom:1px solid var(--line);}
  .process-step .step-num{font-family:var(--ff-head); font-size:1.6rem; color:var(--red); font-weight:700;}
  .process-step h4{font-size:1.05rem; margin-bottom:6px;}
  .process-step p{color:var(--steel); font-size:0.92rem; max-width:60ch;}
  @media (max-width:560px){
    .process-step{grid-template-columns:44px 1fr; gap:16px;}
  }

  /* ---------- CONTACT ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
  .contact-info{display:flex; flex-direction:column; gap:22px;}
  .contact-row{display:flex; gap:16px; align-items:flex-start;}
  .contact-row .ico{
    width:38px; height:38px; border:1px solid var(--line-on-dark); border-radius:50%;
    display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1rem;
  }
  .contact-row h4{font-size:0.85rem; color:var(--steel-light); margin-bottom:4px; font-weight:500;}
  .contact-row a, .contact-row span{font-size:1.02rem; color:var(--white);}
  .contact-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:8px;}

  .contact-form{background:var(--ink-soft); border:1px solid var(--line-on-dark); padding:32px; border-radius:var(--radius-soft);}
  .contact-form h3{font-size:1.1rem; margin-bottom:18px; color:var(--white);}
  .field{margin-bottom:16px;}
  .field label{display:block; font-size:0.8rem; color:var(--steel-light); margin-bottom:6px;}
  .field input, .field textarea, .field select{
    width:100%; background:var(--ink); border:1px solid var(--line-on-dark); color:var(--white);
    padding:12px 14px; font-family:inherit; font-size:0.92rem; border-radius:var(--radius-sharp);
  }
  .field textarea{resize:vertical; min-height:90px;}
  .field input:focus, .field textarea:focus, .field select:focus{border-color:var(--red);}
  .contact-form .btn{width:100%; justify-content:center;}
  .form-note{font-size:0.78rem; color:var(--steel-light); margin-top:12px;}

  @media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); border-top:1px solid var(--line-on-dark); padding:56px 0 28px; color:#b7b8ba;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:44px;}
  .footer-brand p{margin-top:14px; font-size:0.9rem; max-width:34ch;}
  .footer-col h5{color:var(--white); font-size:0.85rem; margin-bottom:16px; font-weight:600;}
  .footer-col ul{display:flex; flex-direction:column; gap:10px;}
  .footer-col a{font-size:0.88rem; color:#b7b8ba; transition:color .15s ease;}
  .footer-col a:hover{color:var(--white);}
  .footer-bottom{
    border-top:1px solid var(--line-on-dark); padding-top:22px;
    font-size:0.8rem; color:var(--steel-light);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }
  @media (max-width:700px){.footer-grid{grid-template-columns:1fr;}}

  /* ---------- CHATBOT ---------- */
  .chat-launcher{
    position:fixed; right:24px; bottom:24px; z-index:80;
    width:60px; height:60px; border-radius:50%;
    background:var(--red); color:var(--white); border:none;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 30px rgba(215,25,33,0.4);
    transition:transform .15s ease, background .15s ease;
  }
  .chat-launcher:hover{background:var(--red-deep); transform:scale(1.05);}
  .chat-launcher svg{width:26px; height:26px;}
  .chat-launcher .badge{
    position:absolute; top:-2px; right:-2px; width:14px; height:14px;
    background:#3ddc6a; border:2px solid var(--ink); border-radius:50%;
  }

  .chat-panel{
    position:fixed; right:24px; bottom:96px; z-index:81;
    width:360px; max-width:calc(100vw - 32px);
    height:min(520px, 70vh);
    background:var(--paper); border-radius:14px;
    box-shadow:0 24px 60px rgba(0,0,0,0.35);
    display:flex; flex-direction:column; overflow:hidden;
    opacity:0; transform:translateY(16px) scale(0.98); pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
    border:1px solid var(--line);
  }
  .chat-panel.open{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}

  .chat-head{
    background:var(--ink); color:var(--white); padding:16px 18px;
    display:flex; align-items:center; gap:12px;
  }
  .chat-head .mark{width:30px; height:30px; flex-shrink:0;}
  .chat-head-text strong{display:block; font-family:var(--ff-head); font-size:0.95rem;}
  .chat-head-text span{font-size:0.76rem; color:#9ad4a9; display:flex; align-items:center; gap:5px;}
  .chat-head-text span::before{content:""; width:6px; height:6px; background:#3ddc6a; border-radius:50%;}
  .chat-close{margin-left:auto; background:none; border:none; color:#b7b8ba; padding:4px;}
  .chat-close svg{width:18px; height:18px;}

  .chat-body{
    flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px;
    background:var(--paper);
  }
  .msg{max-width:82%; padding:10px 13px; font-size:0.87rem; line-height:1.45; border-radius:12px;}
  .msg.bot{background:var(--white); border:1px solid var(--line); align-self:flex-start; border-bottom-left-radius:3px;}
  .msg.user{background:var(--red); color:var(--white); align-self:flex-end; border-bottom-right-radius:3px;}

  .quick-replies{display:flex; flex-wrap:wrap; gap:7px; padding:0 16px 12px;}
  .quick-replies button{
    font-size:0.76rem; padding:7px 12px; border-radius:999px;
    border:1px solid var(--line); background:var(--white); color:var(--ink);
    transition:border-color .15s ease, background .15s ease;
  }
  .quick-replies button:hover{border-color:var(--red); background:var(--paper-deep);}

  .chat-input-row{
    display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); background:var(--white);
  }
  .chat-input-row input{
    flex:1; border:1px solid var(--line); border-radius:999px; padding:10px 16px;
    font-family:inherit; font-size:0.86rem; background:var(--paper);
  }
  .chat-input-row input:focus{border-color:var(--red);}
  .chat-send{
    width:38px; height:38px; border-radius:50%; background:var(--red); border:none; color:var(--white);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .chat-send svg{width:16px; height:16px;}
  .chat-send:hover{background:var(--red-deep);}

  @media (max-width:480px){
    .chat-panel{right:16px; left:16px; width:auto; bottom:88px;}
    .chat-launcher{right:16px; bottom:16px;}
  }
