:root{
    --bg:#F4F5F2; --card:#FFFFFF; --ink:#16252A; --muted:#5C6A6D;
    --line:#E4E7E2; --blue:#0084B5; --green:#5C9B33; --wine:#9C2350;
    --disp:"Schibsted Grotesk",system-ui,sans-serif;
    --body:"Hanken Grotesk",system-ui,sans-serif;
    --serif:"Fraunces",Georgia,serif;
    --sh-sm:0 1px 2px rgba(22,37,42,.06);
    --sh:0 22px 48px -24px rgba(22,37,42,.30);
    --r:16px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; font-family:var(--body); color:var(--ink); background:var(--bg);
    line-height:1.6; -webkit-font-smoothing:antialiased; letter-spacing:-.005em;
  }
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{width:100%; max-width:1080px; margin:0 auto; padding:0 28px;}

  /* signature tri-colour thread */
  .thread{display:inline-flex; gap:5px; vertical-align:middle;}
  .thread i{width:16px; height:3px; border-radius:2px; display:block;}
  .thread i:nth-child(1){background:var(--wine);}
  .thread i:nth-child(2){background:var(--blue);}
  .thread i:nth-child(3){background:var(--green);}

  .eyebrow{display:flex; align-items:center; gap:12px; font-size:13px; font-weight:600;
    letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin:0 0 22px;}

  /* header */
  header.bar{position:sticky; top:0; z-index:30; background:rgba(244,245,242,.78);
    backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line);}
  .bar .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
  .brand{display:flex; align-items:center; gap:13px; text-decoration:none;}
  .brand img{height:40px; width:auto;}
  .brand .since{font-size:12px; font-weight:600; color:var(--muted); letter-spacing:.02em;}
  .btn{display:inline-flex; align-items:center; gap:8px; font-family:var(--disp); font-weight:600;
    font-size:15px; text-decoration:none; border-radius:11px; padding:11px 22px; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;}
  .btn.solid{background:var(--ink); color:#fff; box-shadow:var(--sh-sm);}
  .btn.solid:hover{transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(22,37,42,.5);}
  .btn.ghost{border:1px solid var(--line); color:var(--ink); background:transparent;}
  .btn.ghost:hover{border-color:var(--ink); transform:translateY(-2px);}
  .btn.blue{background:var(--blue); color:#fff; box-shadow:var(--sh-sm);}
  .btn.blue:hover{background:#0a6f97; transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(8,132,181,.55);}
  .btn.sm{padding:9px 18px; font-size:14px;}
  .btn:focus-visible,a:focus-visible{outline:2px solid var(--blue); outline-offset:3px;}

  /* hero (full-bleed) */
  .hero{position:relative; overflow:hidden; min-height:min(90vh,800px); display:flex; flex-direction:column; color:#fff;}
  .hero-bg{position:absolute; inset:0; z-index:0;}
  .hero-bg video{width:100%; height:100%; object-fit:cover; display:block;}
  .hero-bg::after{content:""; position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(12,20,24,.82) 0%, rgba(12,20,24,.55) 42%, rgba(12,20,24,.18) 72%, rgba(12,20,24,0) 100%),
               linear-gradient(180deg, rgba(12,20,24,.5) 0%, rgba(12,20,24,0) 24%),
               linear-gradient(0deg, rgba(12,20,24,.5), rgba(12,20,24,0) 42%);}
  .hero > .wrap{position:relative; z-index:1; flex:1; display:flex; flex-direction:column; justify-content:center; padding:30px 28px 92px;}
  .hero-text{max-width:640px;}
  .hero .eyebrow{color:rgba(255,255,255,.82);}
  .hero h1{color:#fff;}
  .hero .lede{color:#fff;}
  .hero .facts{color:rgba(255,255,255,.86);}
  .hero .facts b{color:#fff;}
  .hero .btn.ghost{border-color:rgba(255,255,255,.55); color:#fff;}
  .hero .btn.ghost:hover{border-color:#fff; background:rgba(255,255,255,.08);}
  @media(max-width:860px){ .hero{min-height:auto;} .hero > .wrap{padding:18px 28px 64px;} }
  .hero-nav{position:relative; z-index:5; padding-top:24px;}
  .hero-nav .wrap{display:flex; align-items:center; justify-content:space-between;}
  .hero-nav .brand img{height:100px; width:auto; display:block;}
  .hero-nav .menu{display:flex; align-items:center; gap:24px;}
  .lang{display:flex; align-items:center; gap:9px; font-family:var(--disp); font-weight:600; font-size:14px;}
  .lang a{color:rgba(255,255,255,.65); text-decoration:none; transition:color .2s;}
  .lang a.active{color:#fff;}
  .lang a:hover{color:#fff;}
  .lang .sep{color:rgba(255,255,255,.4);}
  .hero h1{font-family:var(--disp); font-weight:700; font-size:clamp(40px,6.4vw,76px);
    line-height:1.04; letter-spacing:-.025em; margin:0; max-width:17ch;}
  .hero h1 em{font-family:var(--serif); font-style:italic; font-weight:500; letter-spacing:0;}
  .hero .lede{font-size:clamp(18px,2vw,21px); color:#fff; max-width:52ch; margin:28px 0 0;}
  .actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:38px;}
  .facts{display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:46px; font-size:14px; color:var(--muted); align-items:center;}
  .facts b{color:var(--ink); font-weight:600;}

  /* sections */
  section{padding:84px 0;}
  .intro{background:#F4F5F2;}
  #savoir-faire{background:#EEF3F4;}
  .clients{background:#F3F1EC;}

  .h2{font-family:var(--disp); font-weight:700; font-size:clamp(28px,4vw,42px); line-height:1.08; letter-spacing:-.02em; margin:0;}
  .lead{font-size:19px; color:var(--muted); max-width:60ch; margin:24px 0 0;}

  /* savoir-faire */
  .grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:46px;}
  .card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:32px 30px; box-shadow:var(--sh-sm); transition:transform .2s ease, box-shadow .2s ease;}
  .card:hover{transform:translateY(-4px); box-shadow:var(--sh);}
  .dot{width:11px; height:11px; border-radius:50%; display:inline-block;}
  .card h3{font-family:var(--disp); font-weight:600; font-size:20px; margin:18px 0 8px; letter-spacing:-.01em;}
  .card p{margin:0; color:var(--muted); font-size:15.5px;}

  /* clients slider */
  .clients .h2{margin-bottom:0;}
  .slider{margin-top:50px; position:relative; overflow:hidden;}
  .slider::before,.slider::after{content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none;}
  .slider::before{left:0; background:linear-gradient(90deg,#F3F1EC,rgba(243,241,236,0));}
  .slider::after{right:0; background:linear-gradient(270deg,#F3F1EC,rgba(243,241,236,0));}
  .slider .track{display:flex; align-items:center; width:max-content; gap:74px; animation:slide 48s linear infinite; will-change:transform; backface-visibility:hidden;}
  .slider:hover .track{animation-play-state:paused;}
  .slider .track img{height:60px; width:auto; opacity:.8; flex:0 0 auto; transition:opacity .25s ease;}
  .slider .track a:hover img, .slider .track img:hover{opacity:1;}
  @keyframes slide{from{transform:translate3d(0,0,0);} to{transform:translate3d(-50%,0,0);}}

  /* partner */
  .partner .panel{background:var(--ink); color:#fff; border-radius:22px; padding:52px 48px;
    display:flex; align-items:center; justify-content:space-between; gap:34px; flex-wrap:wrap;
    background-image:radial-gradient(520px 300px at 100% 0%, rgba(14,127,166,.32), transparent 60%);}
  .partner .eyebrow{color:rgba(255,255,255,.66);}
  .partner h3{font-family:var(--disp); font-weight:700; font-size:clamp(26px,3.4vw,36px); margin:0 0 12px; letter-spacing:-.02em;}
  .partner p{margin:0; color:rgba(255,255,255,.8); font-size:17px; max-width:46ch;}
  .partner-cta{display:flex; flex-direction:column; align-items:flex-start; gap:20px;}
  .partner .m7logo{height:38px; width:auto;}
  .partner .btn.solid{background:#fff; color:var(--ink);}
  .partner .btn.solid:hover{background:#f1f1ee;}

  /* contact */
  .contact .rows{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px;}
  .contact .box{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:28px; box-shadow:var(--sh-sm);}
  .contact .l{font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}
  .contact .v{font-family:var(--disp); font-weight:600; font-size:20px; margin-top:12px; letter-spacing:-.01em; word-break:break-word;}
  .contact .v a{text-decoration:none; border-bottom:2px solid var(--line); transition:border-color .2s;}
  .contact .v a:hover{border-color:var(--blue);}
  .contact .v.addr{font-family:var(--body); font-weight:500; font-size:16px; line-height:1.5; color:var(--muted);}

  /* footer */
  footer.ft{border-top:1px solid var(--line); padding:30px 0 44px;}
  footer.ft .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:14px; color:var(--muted);}
  footer.ft a{color:var(--ink); text-decoration:none; font-weight:600;}
  footer.ft a:hover{color:var(--blue);}

  @media(max-width:760px){
    .grid{grid-template-columns:1fr;}
    .logos{grid-template-columns:repeat(2,1fr);}
    .contact .rows{grid-template-columns:1fr;}
    .hero .wrap{padding:72px 28px 56px;}
    section{padding:62px 0;}
    .partner .panel{padding:38px 28px;}
  }
  @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important; transition:none!important;}
    .slider .track{animation:none; flex-wrap:wrap; justify-content:center; row-gap:34px; width:auto;}}
