  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:var(--font-body);font-size:16px;line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  figure{margin:0;}
  a{color:inherit;}
  .wrap{max-width:1160px;margin-inline:auto;padding-inline:24px;}
  .eyebrow{
    display:block;margin-bottom:10px;
    font-family:var(--font-body);font-weight:500;font-size:12px;letter-spacing:0.12em;
    text-transform:uppercase;color:var(--ink-muted);
  }
  h1,h2,h3{font-family:var(--font-display);font-weight:700;text-wrap:balance;margin:0;letter-spacing:0.01em;}
  h2{font-size:clamp(28px,4vw,46px);line-height:1.05;text-transform:uppercase;}
  h3{font-size:20px;}
  p{margin:0;}
  .measure{max-width:60ch;}

  header{
    position:sticky;top:0;z-index:20;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(6px);border-bottom:1px solid var(--line);
  }
  .nav-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px;flex-wrap:wrap;}
  .logo{display:flex;align-items:center;}
  .logo img{height:32px;width:auto;display:block;}
  nav ul{list-style:none;display:flex;gap:24px;margin:0;padding:0;flex-wrap:wrap;}
  nav ul li{display:flex;align-items:center;}
  :is(header, footer) nav a{text-decoration:none;font-size:12.5px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-muted);border-bottom:2px solid transparent;padding-bottom:2px;transition:color 0.15s ease, border-color 0.15s ease;}
  :is(header, footer) nav a:hover, :is(header, footer) nav a:focus-visible{color:var(--ink);border-color:var(--accent);}
  :is(header, footer) nav a.is-current{color:var(--ink);border-color:var(--accent);}

  .nav-dropdown{position:relative;}
  .nav-dropdown summary{
    display:flex;align-items:center;gap:5px;cursor:pointer;list-style:none;
    text-decoration:none;font-size:12.5px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;
    color:var(--ink-muted);border-bottom:2px solid transparent;padding-bottom:2px;
    transition:color 0.15s ease, border-color 0.15s ease;
  }
  .nav-dropdown summary::-webkit-details-marker{display:none;}
  .nav-dropdown summary:hover, .nav-dropdown summary:focus-visible{color:var(--ink);border-color:var(--accent);}
  .nav-dropdown summary.is-current{color:var(--ink);border-color:var(--accent);}
  .nav-dropdown .chevron{flex:0 0 auto;transition:transform 0.15s ease;}
  .nav-dropdown[open] .chevron{transform:rotate(180deg);}
  .nav-dropdown ul{list-style:none;margin:0;padding:0;}
  @media (min-width:701px){
    .nav-dropdown ul{
      position:absolute;top:100%;left:0;margin-top:4px;padding:8px 0;
      background:var(--surface);border:1px solid var(--line);min-width:190px;
      box-shadow:0 12px 24px -12px rgba(0,0,0,0.45);
      display:flex;flex-direction:column;gap:0;z-index:30;
    }
    .nav-dropdown ul li{width:100%;}
    .nav-dropdown ul a{display:block;width:100%;padding:10px 16px;border-bottom:none;font-size:12.5px;}
    .nav-dropdown ul a:hover, .nav-dropdown ul a:focus-visible{background:var(--surface-2);color:var(--ink);}
  }
  .nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;flex:0 0 auto;}
  .nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .nav-toggle svg{width:20px;height:20px;}
  @media (max-width:700px){
    .nav-toggle{display:flex;}
    nav{width:100%;order:3;}
    nav ul{display:none;flex-direction:column;gap:0;width:100%;padding-top:8px;margin-top:8px;border-top:1px solid var(--line);}
    nav.is-open ul{display:flex;}
    nav ul li{width:100%;}
    nav a{display:block;padding:13px 2px;font-size:14px;border-bottom:1px solid var(--line);}
    nav ul li:last-child a{border-bottom:none;}
  }

  .btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;font-family:var(--font-body);font-weight:600;font-size:14.5px;text-decoration:none;border-radius:2px;border:1px solid transparent;cursor:pointer;}
  .btn-primary{background:var(--accent);color:var(--accent-ink);}
  .btn-primary:hover{filter:brightness(1.06);}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink-muted);}
  .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .btn-sm{padding:9px 16px;font-size:13px;gap:6px;}

  .hero{border-bottom:1px solid var(--line);padding-block:0 48px;}
  @media (max-width:640px){.hero{padding-bottom:36px;}}
  .hero-media{position:relative;width:100%;aspect-ratio:16/8.2;min-height:480px;max-height:680px;overflow:hidden;background:#0c0e10;}
  .hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;}
  .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% center;background:#0c0e10;}
  @media (prefers-reduced-motion: reduce){.hero-video{display:none;}}
  .hero-scrim{
    position:absolute;inset:0;z-index:0;
    background:linear-gradient(100deg, rgba(6,8,9,0.92) 0%, rgba(6,8,9,0.72) 34%, rgba(6,8,9,0.28) 62%, rgba(6,8,9,0.05) 82%);
  }
  .hero-scan{
    position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(100deg, transparent 42%, rgba(255,255,255,0.06) 50%, transparent 58%);
    background-size:260% 260%;background-position:130% 0%;
    animation:hero-scan-move 8s linear infinite;
  }
  @keyframes hero-scan-move{0%{background-position:130% 0%;}100%{background-position:-30% 0%;}}
  @media (prefers-reduced-motion: reduce){.hero-scan{display:none;}}
  .hero-content{position:absolute;inset:0;z-index:3;display:flex;align-items:center;}
  .hero-text{max-width:760px;}
  .hero-text > *{opacity:0;transform:translateY(14px);animation:hero-in 0.7s cubic-bezier(.2,.7,.2,1) both;}
  .hero-text .eyebrow{animation-delay:0.1s;}
  .hero-text h1{animation-delay:0.3s;}
  .hero-text .hero-sub{animation-delay:0.62s;}
  .hero-text > p:last-child{animation-delay:1s;}
  @keyframes hero-in{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
  @media (prefers-reduced-motion: reduce){.hero-text > *{animation:none;opacity:1;transform:none;}}
  .hero h1{font-size:clamp(32px,4.6vw,54px);line-height:1.04;text-transform:uppercase;margin-top:14px;max-width:27ch;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,0.55);}
  .hero-sub{max-width:52ch;color:#e7e9eb;font-size:16.5px;margin-top:18px;text-shadow:0 1px 6px rgba(0,0,0,0.5);}
  @media (max-width:860px){
    .hero-media{aspect-ratio:auto;min-height:0;max-height:none;}
    .hero-fallback, .hero-video{object-position:center 30%;}
    .hero-content{position:relative;inset:auto;align-items:flex-end;min-height:68vh;padding-block:64px 32px;}
    .hero-scrim{background:linear-gradient(180deg, rgba(6,8,9,0.3) 0%, rgba(6,8,9,0.72) 45%, rgba(6,8,9,0.9) 100%);}
  }

  .photo{position:relative;overflow:hidden;background:var(--surface-2);}
  .photo img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease;}
  /* Manufacturer product renders (isolated on white/black, own negative space)
     look wrong cropped like a scenic photo; show the whole machine instead. */
  .photo--contain{background:var(--surface);}
  .photo--contain img{object-fit:contain;padding:20px;}
  .photo--contain:hover img{transform:none;}
  .photo:hover img{transform:scale(1.045);}
  @media (prefers-reduced-motion: reduce){.photo img{transition:none;}.photo:hover img{transform:none;}}
  .photo figcaption{
    position:absolute;left:0;right:0;bottom:0;padding:10px 14px;
    background:linear-gradient(transparent, rgba(10,12,14,0.72));
    color:#f2f3f4;font-family:var(--font-body);font-size:11px;
    letter-spacing:0.07em;text-transform:uppercase;
  }

  .section-banner{position:relative;width:100%;aspect-ratio:16/7;min-height:280px;max-height:520px;overflow:hidden;margin-top:56px;background:var(--surface-2);}
  .section-banner img{width:100%;height:100%;object-fit:cover;object-position:center 32%;}
  .section-banner .banner-scrim{position:absolute;inset:0;background:linear-gradient(to top, rgba(10,12,14,0.8), rgba(10,12,14,0.05) 60%);}
  .section-banner .banner-caption{position:absolute;left:0;right:0;bottom:0;padding:22px 28px 26px;}
  .section-banner .banner-caption .eyebrow{color:rgba(255,255,255,0.8);}
  .section-banner .banner-caption h3, .section-banner .banner-caption .banner-title{margin-top:6px;color:#fff;font-family:var(--font-display);font-weight:700;font-size:clamp(19px,2.5vw,28px);text-transform:uppercase;line-height:1.06;}
  @media (max-width:640px){.section-banner{aspect-ratio:4/3;max-height:340px;}}
  .section-banner--wide{aspect-ratio:1920/522;min-height:0;}
  @media (max-width:640px){.section-banner--wide{aspect-ratio:16/9;max-height:none;}}
  .section-banner--bleed{width:100%;max-height:none;}

  .plate{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:32px;}
  .plate div{padding:16px 24px;border-right:1px solid var(--line);font-family:var(--font-mono);font-size:12.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-muted);}
  .plate div:last-child{border-right:none;}
  .plate strong{display:block;color:var(--ink);font-size:13.5px;margin-bottom:2px;letter-spacing:0.02em;}
  @media (max-width:760px){.plate{grid-template-columns:repeat(2,1fr);}.plate div:nth-child(2){border-right:none;}}

  .stats{padding-block:40px;border-bottom:1px solid var(--line);}
  .stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.6vw,40px);font-variant-numeric:tabular-nums;line-height:1;color:var(--ink);}
  .stat span{display:block;margin-top:8px;font-size:13px;color:var(--ink-muted);max-width:24ch;}
  @media (max-width:760px){.stats-row{grid-template-columns:repeat(2,1fr);row-gap:32px;}}

  section{padding-block:60px;}
  @media (max-width:640px){section{padding-block:44px;}}
  .section-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:32px;}
  .section-head--compact h2{font-size:22px;text-transform:none;font-family:var(--font-body);font-weight:600;letter-spacing:0.01em;}
  .section-head .measure{margin-inline:auto;max-width:90ch;}

  .cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .cap-card{background:var(--surface);border:1px solid var(--line);padding:28px 26px;display:flex;flex-direction:column;gap:14px;transition:border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;}
  .cap-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
  .cap-icon{flex:0 0 auto;color:var(--ink-muted);transition:transform 0.2s ease;}
  .cap-card h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:22px;letter-spacing:0.01em;color:var(--ink);}
  .cap-card p{color:var(--ink-muted);font-size:14px;line-height:1.55;}

  @media (max-width:900px){.cap-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.cap-grid{grid-template-columns:1fr;}}
  .cap-grid.cols-2{grid-template-columns:repeat(2,1fr);}
  @media (max-width:600px){.cap-grid.cols-2{grid-template-columns:1fr;}}

  .flow-note{margin-top:40px;padding:24px 0 0;border-top:1px solid var(--line);max-width:74ch;}
  .flow-note p{color:var(--ink-muted);font-size:15px;line-height:1.55;margin:0;}
  .flow-note p + p{margin-top:10px;}

  .flow-note--plain{max-width:none;}

  .quote-block{margin-top:24px;padding-left:20px;border-left:3px solid var(--line);}
  .quote-block p{color:var(--ink-muted);font-size:15px;line-height:1.55;margin:0;}
  .quote-block p + p{margin-top:14px;}
  .flow-note-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
  .flow-note-cols.cols-2{grid-template-columns:repeat(2,1fr);gap:56px;}
  .flow-note-label{display:block;margin-bottom:10px;font-family:var(--font-body);font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-muted);}
  @media (max-width:700px){.flow-note-cols{grid-template-columns:1fr;gap:28px;}.flow-note-cols.cols-2{grid-template-columns:1fr;gap:32px;}}

  .table-wrap{
    overflow-x:auto;border:1px solid var(--line);margin-bottom:28px;
    background:
      linear-gradient(to right, var(--surface) 30%, rgba(0,0,0,0)),
      linear-gradient(to right, rgba(0,0,0,0), var(--surface) 70%) 100% 0,
      radial-gradient(farthest-side at 0 50%, rgba(0,0,0,0.16), rgba(0,0,0,0)),
      radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,0.16), rgba(0,0,0,0)) 100% 0;
    background-repeat:no-repeat;
    background-size:36px 100%, 36px 100%, 12px 100%, 12px 100%;
    background-attachment:local, local, scroll, scroll;
  }
  .kv-list{margin:10px 0 0;padding:0;border-top:1px solid var(--line);}
  .kv-list > div{padding:12px 0;border-bottom:1px solid var(--line);}
  .kv-list dt{font-size:14.5px;font-weight:600;color:var(--ink);margin:0;line-height:1.35;}
  .kv-list dd{margin:3px 0 0;font-family:var(--font-body);font-size:12.5px;letter-spacing:0.02em;color:var(--ink-muted);line-height:1.45;}

  .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .team-card{background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:border-color 0.2s ease;}
  .team-card:hover{border-color:var(--ink-muted);}
  .team-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 22%;background:var(--surface-2);}
  .team-card .name{margin:14px 16px 0;font-size:14.5px;font-weight:600;color:var(--ink);}
  .team-card .role{margin:2px 16px 0;font-size:12.5px;color:var(--ink-muted);}
  .team-card .meta{margin:10px 16px 16px;font-family:var(--font-body);font-size:11.5px;letter-spacing:0.02em;color:var(--ink-muted);line-height:1.5;overflow-wrap:break-word;word-break:break-word;}
  @media (max-width:700px){.team-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:420px){.team-grid{grid-template-columns:1fr;}}
  @media (max-width:640px){.team-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:420px){.team-grid{grid-template-columns:1fr;}}
  .table-hint{display:none;margin:0 0 10px;font-family:var(--font-body);font-size:11.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-muted);}
  @media (max-width:700px){.table-hint{display:block;}}
  table{width:100%;border-collapse:collapse;min-width:640px;font-size:14px;}
  .vis-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  caption{text-align:left;font-family:var(--font-body);font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-muted);padding:14px 16px 10px;background:var(--surface);}
  thead th{
    text-align:left;font-family:var(--font-body);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--ink-muted);font-weight:500;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface);
  }
  tbody td{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface);vertical-align:top;}
  tbody tr:last-child td{border-bottom:none;padding-bottom:22px;}
  td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;}
  td.name{font-weight:600;white-space:nowrap;}
  td.name a{color:var(--accent);text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:3px;}
  td.name a .icon-arrow{opacity:0.7;}
  td.name a:hover{text-decoration-thickness:2px;}
  td.name a:hover::after{opacity:1;}

  .feature{display:grid;grid-template-columns:0.9fr 1.1fr;gap:44px;align-items:center;}
  .feature.feature--top{align-items:start;}
  .feature-media{aspect-ratio:4/3;}
  .feature.feature--tight{gap:32px;}
  .feature-media--portrait{max-height:480px;background:var(--surface-2);}
  .feature-media--portrait img{object-fit:contain;}
  .feature-media.is-full{height:100%;}
  @media (max-width:860px){.feature-media.is-full{aspect-ratio:5/4 !important;min-height:0 !important;height:auto;}}
  .feature-list{margin-top:22px;display:grid;gap:14px;}
  .feature-list div{display:grid;grid-template-columns:22px 1fr;gap:12px;font-size:14.5px;color:var(--ink-muted);}
  .feature-list b{color:var(--ink);font-weight:600;}
  .feature-list span.mark{color:var(--ink-muted);font-family:var(--font-mono);}
  .feature > *{min-width:0;}
  .feature.feature-split{grid-template-columns:1.35fr 0.9fr;align-items:stretch;}
  @media (max-width:860px){.feature, .feature.feature-split{grid-template-columns:1fr;}}
  @media (max-width:520px){.feature-media[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;aspect-ratio:auto !important;gap:8px;}.feature-media[style*="grid-template-columns:1fr 1fr"] .photo{aspect-ratio:5/4;}}

  .feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:stretch;}
  .feed-card{background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;color:inherit;}
  .feed-card:hover .feed-title{color:var(--accent);}
  .feed-media{aspect-ratio:16/10;}
  .feed-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 24px;border-top:1px solid var(--line);}
  .feed-tag{display:block;font-family:var(--font-body);font-size:10.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-muted);}
  .feed-title{display:block;margin-top:8px;font-size:17px;font-weight:600;line-height:1.3;color:var(--ink);}
  .feed-title .icon-arrow{opacity:0.55;}
  .feed-sum{display:block;margin-top:8px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
  @media (max-width:980px){.feed-grid{grid-template-columns:1fr 1fr;}}
  .feed-list{margin-top:32px;border-top:1px solid var(--line);}
  .feed-row{display:grid;grid-template-columns:1fr 190px;gap:24px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
  .feed-row:hover .feed-row-title, .feed-row:focus-visible .feed-row-title{color:var(--accent);}
  .feed-row-tag{font-size:11px;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-muted);}
  .feed-row-title{font-size:16px;font-weight:600;line-height:1.35;color:var(--ink);}
  .feed-row-title .icon-arrow{opacity:0.55;}
  @media (max-width:640px){.feed-row{grid-template-columns:1fr;gap:5px;}}
  @media (max-width:640px){.feed-grid{grid-template-columns:1fr;}}

  .park-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
  .park-card{background:var(--surface);padding:28px 26px;display:flex;flex-direction:column;}
  .park-card h3{margin-top:8px;font-size:22px;}
  .park-card > p{margin-top:16px;color:var(--ink-muted);font-size:14.5px;}
  .park-facts{margin-top:18px;padding-top:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid var(--line);}
  .park-facts span{display:block;font-family:var(--font-body);font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-muted);}
  .park-facts b{display:block;margin-top:4px;font-family:var(--font-mono);font-size:13px;color:var(--ink);}
  .park-machines{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px 16px;}
  .park-machines a{font-size:13.5px;font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;}
  .park-machines a:hover{border-bottom-color:currentColor;}
  .park-cta{margin-top:auto;padding-top:22px;}
  @media (max-width:820px){.park-grid{grid-template-columns:1fr;}}
  @media (max-width:420px){.park-facts{grid-template-columns:1fr 1fr;}}


  .timeline{display:grid;gap:0;border-top:1px solid var(--line);}
  .t-row{display:grid;grid-template-columns:120px 1fr;gap:24px;padding-block:22px;border-bottom:1px solid var(--line);}
  .t-row b{font-family:var(--font-mono);font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;}
  .t-row p{color:var(--ink-muted);font-size:15px;max-width:58ch;}
  @media (max-width:560px){.t-row{grid-template-columns:1fr;gap:6px;}}

  .quality{background:var(--surface-2);border-block:1px solid var(--line);}
  .quality-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
  .quality-grid ul{margin:0;padding:0;list-style:none;display:grid;gap:22px;}
  .quality-grid li{font-size:14.5px;line-height:1.5;color:var(--ink-muted);padding-left:18px;position:relative;}
  .quality-grid li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--ink-muted);}
  .tag-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
  .tag{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--line);border-radius:2px;font-family:var(--font-body);font-size:12.5px;letter-spacing:0.02em;color:var(--ink-muted);}
  .badge-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px;}
  .badge{display:block;background:var(--surface);border:1px solid var(--line);padding:18px;flex:1;min-width:160px;transition:border-color 0.2s ease;}
  a.badge:hover{border-color:var(--accent);}
  .badge b{display:block;font-family:var(--font-mono);font-size:15px;color:var(--ink);}
  .badge span{display:block;margin-top:6px;font-size:11.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-muted);}
  @media (max-width:800px){.quality-grid{grid-template-columns:1fr;}}

  .contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .contact-card{background:var(--surface);padding:22px;}
  .contact-card span{display:block;font-family:var(--font-body);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px;}
  .contact-card a, .contact-card p{font-size:14.5px;font-weight:500;text-decoration:none;color:var(--ink);}
  .contact-card a:hover{color:var(--accent);}
  @media (max-width:900px){.contact-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.contact-grid{grid-template-columns:1fr;}}
  .contact-cta{margin-top:32px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
  .contact-cta--center{justify-content:center;}
  .brief{margin-top:36px;max-width:70ch;padding:22px 26px;border:1px dashed var(--line);}
  .brief p{font-size:14px;color:var(--ink-muted);}
  .brief b{color:var(--ink);}

  .contact-split{margin-top:40px;display:grid;grid-template-columns:0.85fr 1.15fr;gap:48px;align-items:start;}
  @media (max-width:860px){.contact-split{grid-template-columns:1fr;}}
  .contact-form{background:var(--surface);border:1px solid var(--line);padding:28px;}
  .contact-form .form-row{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  @media (max-width:520px){.contact-form .form-row{grid-template-columns:1fr;gap:16px;}.contact-form .form-row .field{margin-top:16px;}.contact-form .form-row .field:first-child{margin-top:0;}}
  .contact-form label{display:block;font-family:var(--font-body);font-size:11px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px;}
  .contact-form .field{margin-top:16px;}
  .contact-form .field:first-child{margin-top:0;}
  .contact-form .form-row .field{margin-top:0;}
  .contact-form input,
  .contact-form textarea{
    width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--line);color:var(--ink);
    font-family:var(--font-body);font-size:14.5px;border-radius:2px;
  }
  .contact-form input:focus,
  .contact-form textarea:focus{outline:none;border-color:var(--accent);}
  .contact-form textarea{resize:vertical;min-height:110px;}
  .contact-form .form-foot{margin-top:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
  .contact-form .form-note{margin-top:14px;font-size:12.5px;color:var(--ink-muted);}
  .contact-form .form-status{margin-top:14px;font-size:13px;font-weight:600;color:var(--accent);display:none;}
  .contact-form .form-status.is-visible{display:block;}

  footer{border-top:1px solid var(--line);padding-block:28px;}
  /* Consent gate. Both choices carry equal visual weight: nudging the
     visitor toward "accept" is a dark pattern and increasingly unlawful.
     The banner carries a quick switch per category, so a visitor who just
     wants "off except this one" never has to open the modal; "Anpassa per
     tjänst" is there for whoever wants the full, per-service breakdown. */
  .consent{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -12px 32px rgba(6,8,9,0.35);}
  .consent[hidden]{display:none;}
  .consent-inner{padding-block:32px;display:flex;flex-direction:column;gap:24px;}
  .consent-brand{display:flex;flex-direction:column;gap:14px;}
  .consent-brand>div{min-width:0;}
  .consent-logo{height:26px;width:auto;flex-shrink:0;align-self:flex-start;}
  .consent-title{margin:0 0 6px;font-size:14.5px;font-weight:700;color:var(--ink);}
  .consent-text{margin:0;font-size:13px;line-height:1.6;color:var(--ink-muted);}
  .consent-banner-switches{display:flex;flex-wrap:wrap;gap:24px;}
  .consent-inline-switch{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;}
  .consent-inline-switch.is-disabled{color:var(--ink-muted);cursor:default;}
  /* The links and the action buttons share one row, links on the left,
     buttons on the right, like the reference - stacked instead on narrow
     screens where there isn't room for both side by side. */
  .consent-footer-row{display:flex;align-items:center;justify-content:space-between;gap:20px 24px;flex-wrap:wrap;}
  .consent-links{display:flex;flex-wrap:wrap;gap:6px 16px;}
  .consent-links a,.consent-more-link{background:none;border:none;padding:0;font-family:var(--font-body);font-size:11.5px;color:var(--ink-muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
  .consent-links a:hover,.consent-more-link:hover{color:var(--ink);}
  .consent-actions{display:flex;gap:10px;flex-shrink:0;}
  .consent-actions-lg .btn{padding:12px 22px;justify-content:center;}
  @media (max-width:700px){
    .consent-inner{padding-block:26px;gap:20px;}
    .consent-footer-row{flex-direction:column;align-items:stretch;}
    .consent-actions-lg{flex-direction:column;}
  }
  /* while the banner is up, lift the floating CTA clear of it. The height
     is published by consent.js because it depends on how the text wraps. */
  :root[data-consent-open] .float-cta{bottom:calc(var(--consent-height, 0px) + 20px);}

  /* Consent modal ("Anpassa" / reopened via a link): a centered dialog with
     one category per row, each independently switchable, plus an essential
     row shown for parity but permanently on since the site sets nothing
     essential of its own. */
  .consent-modal{position:fixed;inset:0;z-index:61;background:rgba(6,8,9,0.6);display:flex;align-items:flex-end;justify-content:center;padding:20px;}
  .consent-modal[hidden]{display:none;}
  @media (min-width:700px){.consent-modal{align-items:center;}}
  .consent-modal-inner{background:var(--surface);border:1px solid var(--line);max-width:560px;width:100%;max-height:calc(100vh - 40px);overflow-y:auto;padding:28px;}
  .consent-modal-title{margin:0;font-size:20px;text-transform:none;letter-spacing:0;}
  .consent-modal-intro{margin-top:10px;font-size:14px;line-height:1.55;color:var(--ink-muted);}
  .consent-modal-intro + .consent-links{margin-top:12px;}
  .consent-category{margin-top:16px;padding:18px;border:1px solid var(--line);border-radius:2px;}
  .consent-category:first-child{margin-top:20px;}
  .consent-category-name{display:block;font-weight:600;font-size:14.5px;color:var(--ink);}
  .consent-category-state{font-family:var(--font-mono);font-size:11px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-muted);}
  .consent-category-desc{margin-top:8px;font-size:13.5px;line-height:1.55;color:var(--ink-muted);}
  .consent-category-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}

  /* Kategorier / Tjänster tabs: same underlying state, grouped differently */
  .consent-tabs{display:flex;gap:20px;margin-top:20px;border-bottom:1px solid var(--line);}
  .consent-tab{padding:0 0 10px;background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-body);font-weight:600;font-size:13.5px;color:var(--ink-muted);cursor:pointer;}
  .consent-tab[aria-selected="true"]{color:var(--ink);border-color:var(--accent);}
  .consent-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

  .consent-service{margin-top:14px;padding:16px 18px;border:1px solid var(--line);border-radius:2px;}
  .consent-service:first-child{margin-top:20px;}
  .consent-service-head{display:flex;align-items:center;justify-content:space-between;gap:16px;}
  .consent-service-expand{display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--ink);cursor:pointer;text-align:left;}
  .consent-service-expand .chevron{flex:0 0 auto;transition:transform 0.15s ease;}
  .consent-service-expand[aria-expanded="true"] .chevron{transform:rotate(180deg);}
  .consent-service-expand:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .consent-service-detail{margin-top:10px;}
  .consent-service-detail p{font-size:13.5px;line-height:1.55;color:var(--ink-muted);}

  .consent-modal-actions{margin-top:28px;flex-wrap:wrap;}
  @media (max-width:520px){.consent-modal-actions{flex-direction:column;align-items:stretch;}.consent-modal-actions .btn{width:100%;justify-content:center;}}

  /* Custom switch: same equal-weight principle as the accept/reject buttons,
     just styled as a toggle since a category is either on or off. */
  .consent-switch{position:relative;display:inline-flex;flex-shrink:0;}
  .consent-switch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;}
  .consent-switch-track{display:block;width:32px;height:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;transition:background-color 0.15s ease;}
  .consent-switch-thumb{position:relative;display:block;width:12px;height:12px;margin:3px;background:var(--ink-muted);border-radius:50%;transition:transform 0.15s ease, background-color 0.15s ease;}
  /* A small X on the thumb while a switch is off, a checkmark once granted,
     echoing the reference this was modelled on. */
  .consent-switch-thumb::before{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;color:var(--surface);}
  .consent-switch input:checked ~ .consent-switch-track .consent-switch-thumb::before{content:"✓";font-size:7px;}
  .consent-switch input:checked ~ .consent-switch-track{background:var(--accent);border-color:var(--accent);}
  .consent-switch input:checked ~ .consent-switch-track .consent-switch-thumb{transform:translateX(14px);background:var(--accent-ink);}
  /* A category switch is indeterminate when the services under it disagree
     (one on, one off): centered thumb, no accent fill, neither on nor off. */
  .consent-switch input:indeterminate ~ .consent-switch-track .consent-switch-thumb{transform:translateX(7px);}
  .consent-switch input:focus-visible ~ .consent-switch-track{outline:2px solid var(--accent);outline-offset:2px;}
  .consent-switch input:disabled{cursor:default;}
  .consent-switch input:disabled ~ .consent-switch-track{opacity:0.65;}

  .foot-row{display:flex;justify-content:flex-start;gap:16px 56px;flex-wrap:wrap;font-size:13px;color:var(--ink-muted);}
  .foot-row-group{display:flex;gap:16px 24px;flex-wrap:wrap;}
  .foot-row a{color:inherit;text-decoration:none;}
  .foot-row a:hover{color:var(--accent);}

  @media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

  /* Machine detail page */
  .m-breadcrumb{display:flex;align-items:center;gap:8px;padding-block:18px;font-family:var(--font-body);font-size:12px;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-muted);}
  .m-breadcrumb a{text-decoration:none;color:var(--ink-muted);}
  .m-breadcrumb .text-ink{font-weight:600;}
  .m-breadcrumb a:hover{color:var(--accent);}
  .m-top{background:transparent;border-bottom:none;padding-block:4px 0;}
  .m-top-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:44px;align-items:center;}
  .m-media-frame{border:1px solid var(--line);background:var(--bg);aspect-ratio:4/3;overflow:hidden;display:flex;align-items:center;justify-content:center;}
  .m-media-frame img{width:100%;height:100%;object-fit:cover;object-position:center;}
  .m-top .m-hero-tag{display:block;font-family:var(--font-body);font-size:13px;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-muted);font-weight:600;}
  .m-top h1{margin-top:10px;font-size:clamp(30px,4.2vw,46px);line-height:1.03;text-transform:uppercase;color:var(--ink);max-width:28ch;}
  .spec-line{margin-top:18px;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink-muted);}
  .spec-line span{display:block;}
  .spec-line b{font-weight:600;color:var(--ink);}
  @media (max-width:860px){
    .m-top-grid{grid-template-columns:1fr;gap:24px;}
    .m-media-frame{aspect-ratio:16/10;}
  }
  .m-detail-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;margin-top:36px;padding-top:34px;border-top:1px solid var(--line);align-items:start;}
  .m-detail-grid h2{font-size:clamp(23px,2.6vw,32px);}
  .m-detail-grid > *, .m-top-grid > *, .cap-grid > *, .feed-grid > *, .quality-grid > *, .flow-note-cols > *{min-width:0;}
  @media (max-width:900px){.m-detail-grid{grid-template-columns:1fr;}}
  .m-related{position:sticky;top:88px;}
  .m-related h3{font-size:16px;font-family:var(--font-body);}
  .m-related-list{margin-top:16px;display:grid;gap:10px;}
  .m-related-list a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:13.5px;font-weight:600;font-family:var(--font-body);}
  .m-related-list a:hover{border-color:var(--accent);color:var(--accent);}
  .m-related-list span{font-family:var(--font-body);font-size:11px;color:var(--ink-muted);font-weight:400;}
  .back-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;}
  .back-link:hover{color:var(--accent);}

  /* Articles (E-E-A-T / expertise) */
  .article-byline{margin-top:18px;font-family:var(--font-body);font-size:12.5px;letter-spacing:0.03em;color:var(--ink-muted);}
  .article-body h2{margin-top:40px;font-size:23px;text-transform:none;letter-spacing:0;}
  .article-body p{margin-top:14px;color:var(--ink-muted);font-size:15.5px;line-height:1.7;max-width:70ch;}
  .article-body ul{margin-top:14px;padding:0;list-style:none;display:grid;gap:8px;max-width:70ch;}
  .article-body li{padding-left:18px;position:relative;color:var(--ink-muted);font-size:15.5px;line-height:1.6;}
  .article-body li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--ink-muted);}
  .article-related{margin-top:48px;padding-top:28px;border-top:1px solid var(--line);}

  /* Scroll-reveal */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity 0.6s ease, transform 0.6s ease;}
  .reveal.is-visible{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
  }

  /* Floating contact CTA */
  .float-cta{
    position:fixed;right:20px;bottom:20px;z-index:30;
    display:inline-flex;align-items:center;gap:7px;padding:9px 18px;
    background:var(--accent);color:var(--accent-ink);font-family:var(--font-body);font-weight:600;font-size:13px;
    text-decoration:none;border-radius:2px;box-shadow:0 8px 24px rgba(0,0,0,0.28);
    opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity 0.25s ease, transform 0.25s ease;
  }
  .float-cta.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
  .float-cta:hover{filter:brightness(1.06);}
  .float-cta:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
  @media (max-width:600px){.float-cta{right:14px;bottom:14px;padding:8px 14px;font-size:12.5px;}}
  @media (prefers-reduced-motion: reduce){.float-cta{transition:opacity 0.15s linear;}}

  /* Skip to content */
  .skip-link{
    position:absolute;left:12px;top:-60px;z-index:100;
    background:var(--ink);color:var(--bg);padding:12px 18px;font-weight:600;font-size:13.5px;
    text-decoration:none;border-radius:2px;transition:top 0.15s ease;
  }
  .skip-link:focus{top:12px;}

/* ============================================================
     CALMER EXPRESSION
     Three changes from the base version:
     1. Decoration that signals precision without adding value is removed
     2. The accent color is only used where something is clickable
     3. Card headings use the body font; the display font is
        reserved for section headings
     ============================================================ */

  /* 1. Remove decoration */
  .hero-scan{display:none;}

  /* ============================================================
     GEO: date, short answer, FAQ, footer navigation
     ============================================================ */

  .article-date{margin-top:7px;font-family:var(--font-body);font-size:12px;letter-spacing:0.03em;color:var(--ink-muted);}

  .tldr{margin:0 0 6px;padding:24px 0 0;border-top:1px solid var(--line);}
  .tldr .tldr-label{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-muted);}
  .tldr p{margin-top:11px;font-size:16.5px;line-height:1.55;color:var(--ink);max-width:70ch;}

  .faq{margin-top:56px;}
  .faq > .eyebrow{display:block;margin-bottom:14px;}
  .faq-list{border-top:1px solid var(--line);}
  .faq-item{padding:22px 0;border-bottom:1px solid var(--line);}
  .faq-item h3{font-family:var(--font-body);font-weight:600;font-size:18px;line-height:1.35;letter-spacing:0;text-transform:none;color:var(--ink);}
  .faq-item p{margin-top:9px;font-size:15.5px;line-height:1.6;color:var(--ink-muted);max-width:74ch;}
  .faq-item p + p{margin-top:9px;}

  .cap-card{text-decoration:none;color:inherit;}
  .cap-more{margin-top:auto;padding-top:6px;display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent);}
  a.cap-card:hover .cap-more, a.cap-card:focus-visible .cap-more{text-decoration:underline;text-underline-offset:4px;}

  /* Shared arrow icon: replaces the old &rarr;/&larr; text entities everywhere */
  .icon-arrow{flex:0 0 auto;display:inline-block;vertical-align:-2px;transition:transform 0.2s ease;}
  a:hover .icon-arrow-right, a:focus-visible .icon-arrow-right{transform:translateX(4px);}
  a:hover .icon-arrow-left, a:focus-visible .icon-arrow-left{transform:translateX(-4px);}

  .foot-cols{display:flex;flex-wrap:wrap;gap:40px 56px;margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid var(--line);}
  .foot-cols .eyebrow{margin-bottom:14px;}
  .foot-cols nav{display:flex;flex-direction:column;gap:10px;}
  .foot-cols nav a{text-decoration:none;font-family:var(--font-body);font-size:14px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-muted);border-bottom:0;padding-bottom:0;}
  .foot-cols nav a:hover, .foot-cols nav a:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
  .foot-contact-text{margin:10px 0 0;font-size:14px;line-height:1.55;color:var(--ink-muted);max-width:32ch;}
  .foot-contact-btn{margin-top:16px;padding:11px 18px;font-size:13px;}
  .foot-contact-label{margin-top:28px;}
  .foot-contact-phone{display:block;font-family:var(--font-body);font-size:14px;color:var(--ink-muted);text-decoration:none;}
  .foot-contact-phone:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}

  /* ============================================================
     UTILITIES
     Extracted from former inline style="" attributes (structural
     cleanup only — no visual change). Compose these on elements
     instead of adding new inline styles.
     ============================================================ */

  /* Spacing */
  .mt-0{margin-top:0;}
  .mx-auto{margin-inline:auto;}
  .text-center{text-align:center;}
  .text-center .measure{margin-inline:auto;max-width:90ch;}
  .mt-8{margin-top:8px;}
  .mt-10{margin-top:10px;}
  .mt-12{margin-top:12px;}
  .mt-14{margin-top:14px;}
  .mt-16{margin-top:16px;}
  .mt-18{margin-top:18px;}
  .mt-20{margin-top:20px;}
  .mt-22{margin-top:22px;}
  .mt-24{margin-top:24px;}
  .mt-26{margin-top:26px;}
  .mt-32{margin-top:32px;}
  .mt-34{margin-top:34px;}
  .mt-56{margin-top:56px;}
  .mb-32{margin-bottom:32px;}
  .mt-n8{margin-top:-8px;}
  .p-0{padding:0;}
  .pb-48{padding-block:48px;}
  .pb-tight{padding-block:8px 0;}
  .pb-32-56{padding-block:32px 56px;}

  /* Width */
  .maxw-760{max-width:760px;}
  .measure-wide{max-width:74ch;}

  /* Text color */
  .text-ink{color:var(--ink);}
  .text-muted{color:var(--ink-muted);}
  .text-accent{color:var(--accent);}
  .link-accent{color:var(--accent);font-weight:600;}

  .related-links{margin-top:16px;display:flex;flex-direction:column;}
  .related-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:14.5px;font-weight:600;text-decoration:none;}
  .related-links a:last-child{border-bottom:none;}
  .related-links a:hover, .related-links a:focus-visible{color:var(--accent);}
  .link-plain{color:inherit;text-decoration:none;}

  /* Text size */
  .fs-12{font-size:12px;}
  .fs-12-5{font-size:12.5px;}
  .fs-14-5{font-size:14.5px;}
  .fs-15{font-size:15px;}
  .fs-15-5{font-size:15.5px;}
  .fs-16-5{font-size:16.5px;}
  .fs-24{font-size:24px;}

  /* Text style */
  .italic{font-style:italic;}
  .uppercase{text-transform:uppercase;}
  .block{display:block;}
  .ls-03{letter-spacing:0.03em;}
  .ls-04{letter-spacing:0.04em;}
  .mono-muted{font-family:var(--font-mono);color:var(--ink-muted);}

  /* Small one-off components */
  .page-h1{margin-top:14px;font-size:clamp(30px,4vw,46px);line-height:1.04;}
  .section-subtitle{margin-top:44px;font-size:clamp(23px,2.6vw,32px);}
  .pull-quote{margin:0;border-left:3px solid var(--accent);padding-left:18px;}
  .eyebrow-on-dark{color:#d7dbe0;}
  .img-crop-offset{object-position:26% center;}
  .media-tall{aspect-ratio:auto;min-height:420px;}
