:root{
    --bg: #0b0c08;
    --bg-alt: #14150e;
    --bg-card: #191a12;
    --green: #94a24f;
    --green-bright: #b8c96b;
    --green-dark: #4d5527;
    --white: #f3f1e7;
    --bark: #241c14;
    --bark-line: #3a2c1c;
    --gray: #9a9a8e;
    --gray-dim: #82826f;
    --line: rgba(148,162,79,0.28);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--white);
    font-family:'Work Sans', sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Oswald', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.02em;
    margin:0;
  }
  .mono{font-family:'JetBrains Mono', monospace;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1160px; margin:0 auto; padding:0 24px;}
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--green-bright);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:18px; height:2px;
    background:var(--green);
    display:inline-block;
  }

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(11,12,8,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 24px;
    max-width:1160px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand img{width:44px; height:44px; border-radius:50%; object-fit:cover;}
  .brand-text{display:flex; flex-direction:column; line-height:1.1;}
  .brand-text b{font-family:'Oswald'; font-size:19px; letter-spacing:0.03em;}
  .brand-text span{font-size:10px; color:var(--green-bright); font-family:'JetBrains Mono'; letter-spacing:0.14em;}
  .nav-links{display:flex; gap:26px; font-size:14px; font-weight:500;}
  .nav-links a{text-decoration:none; color:var(--gray); transition:color .2s; padding-bottom:4px; border-bottom:2px solid transparent;}
  .nav-links a:hover{color:var(--white);}
  .nav-links a.active{color:var(--white); border-bottom-color:var(--green);}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 22px;
    font-family:'Oswald'; font-size:14px; letter-spacing:0.04em; text-transform:uppercase;
    border-radius:3px;
    text-decoration:none;
    cursor:pointer;
    border:1px solid transparent;
    transition:transform .15s ease, background .2s ease, border-color .2s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--green); color:#0b0c08; font-weight:600;}
  .btn-primary:hover{background:var(--green-bright);}
  .btn-ghost{border-color:var(--line); color:var(--white); background:transparent;}
  .btn-ghost:hover{border-color:var(--green);}
  .nav-cta{display:inline-flex; padding:8px 12px; font-size:11px; white-space:nowrap;}
  @media(min-width:900px){.nav-cta{padding:12px 22px; font-size:14px;} }
  .nav-links{display:none;}
  @media(min-width:900px){.nav-links{display:flex;} }
  .burger{display:inline-flex; background:none; border:1px solid var(--line); color:var(--white); padding:8px 10px; border-radius:3px;}
  @media(min-width:900px){.burger{display:none;} }
  #mnav a.active{color:var(--green-bright) !important;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding:64px 24px 90px;
    overflow:hidden;
    border-bottom:1px solid var(--line);
    background:
      radial-gradient(ellipse 80% 60% at 70% 0%, rgba(148,162,79,0.12), transparent 60%),
      var(--bg);
  }
  .hero-inner{
    max-width:1160px; margin:0 auto;
    display:grid; grid-template-columns:1fr; gap:40px;
    align-items:center;
  }
  .hero-inner > div:first-child{order:2;}
  .hero-figure{order:1;}
  @media(min-width:940px){
    .hero-inner{grid-template-columns:1.15fr 0.85fr;}
    .hero-inner > div:first-child{order:initial;}
    .hero-figure{order:initial;}
  }
  .hero h1{
    font-size:clamp(38px, 6vw, 68px);
    line-height:1.02;
    margin:18px 0 22px;
  }
  .hero h1 .accent{color:var(--green-bright);}
  .hero p.lede{
    font-size:18px; color:var(--gray); max-width:520px; margin-bottom:30px;
  }
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
  .hero-figure{
    position:relative;
    display:flex; justify-content:center;
  }
  .hero-figure .ring{
    position:relative;
    width:min(400px, 90vw);
  }
  .hero-figure img{
    width:100%; border-radius:50%;
    border:2px solid var(--green);
    box-shadow:0 8px 30px rgba(0,0,0,0.5);
    animation:logoPulse 4s ease-in-out infinite;
  }
  @keyframes logoPulse{
    0%, 100% { box-shadow:0 8px 30px rgba(0,0,0,0.5), 0 0 0 0 rgba(148,162,79,0.35); }
    50% { box-shadow:0 8px 30px rgba(0,0,0,0.5), 0 0 26px 6px rgba(148,162,79,0.35); }
  }
  @media (prefers-reduced-motion: reduce){
    .hero-figure img{animation:none;}
  }

  .hero-badges{
    display:flex; flex-wrap:wrap; gap:10px 22px;
    margin-top:36px; padding-top:24px; border-top:1px solid var(--line);
    font-size:13px; color:var(--gray);
  }
  .hero-badges span{display:flex; align-items:center; gap:8px;}
  .dot{width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0;}

  /* ---------- PAGE HEADER (inner pages) ---------- */
  .page-header{
    padding:56px 24px 44px;
    border-bottom:1px solid var(--line);
    background:
      radial-gradient(ellipse 80% 60% at 70% 0%, rgba(148,162,79,0.10), transparent 60%),
      var(--bg-alt);
  }
  .page-header h1{font-size:clamp(30px,5vw,46px); margin-top:14px;}
  .page-header p{color:var(--gray); font-size:16px; margin-top:14px; max-width:600px;}

  section{padding:90px 0; scroll-margin-top:90px;}
  .section-head{max-width:640px; margin-bottom:52px;}
  .section-head h2{font-size:clamp(28px,4vw,42px); margin-top:14px;}
  .section-head p{color:var(--gray); font-size:16px; margin-top:14px;}

  /* ---------- SERVICES ---------- */
  .services{border-bottom:1px solid var(--line); background:var(--bg-alt);}
  .service-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--bg-alt);
    padding:30px 26px;
    position:relative;
    transition:background .2s ease, transform .25s ease, box-shadow .25s ease;
  }
  .service-card:hover{
    background:var(--bg-card);
    transform:translateY(-4px);
    box-shadow:0 10px 30px rgba(0,0,0,0.35), 0 0 0 1px var(--green);
    z-index:1;
  }
  @media (prefers-reduced-motion: reduce){
    .service-card{transition:none;}
    .service-card:hover{transform:none;}
  }
  .service-card .tag{
    font-family:'JetBrains Mono'; font-size:12px; color:var(--gray-dim); letter-spacing:0.08em;
  }
  .service-card h3{
    font-size:22px; margin:14px 0 12px; color:var(--white);
  }
  .service-card p{color:var(--gray); font-size:14.5px; margin:0;}
  .service-card svg{width:34px; height:34px; color:var(--green-bright); margin-bottom:6px; transition:transform .25s ease;}
  .service-card:hover svg{transform:translateY(-3px);}

  /* ---------- CTA STRIP ---------- */
  .cta-strip{
    background:var(--bg-card); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:56px 0;
  }
  .cta-strip-inner{
    display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between;
  }
  .cta-strip h2{font-size:clamp(22px,3.5vw,30px);}
  .cta-strip p{color:var(--gray); margin-top:8px; font-size:15px;}
  .cta-strip-actions{display:flex; gap:12px; flex-wrap:wrap;}

  /* ---------- PROCES ---------- */
  .process{position:relative;}
  .process-list{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:34px;
    position:relative;
    padding-top:32px;
  }
  .process-step{position:relative; padding-left:0;}
  .process-step::before{
    content:"";
    position:absolute; top:-32px; left:1px; width:2px; height:22px;
    background:var(--green);
    display:none;
  }
  .process-step::after{
    content:"";
    position:absolute; top:-37px; left:-4px;
    width:11px; height:11px; border-radius:50%;
    background:var(--bg); border:2px solid var(--green-bright);
    display:none;
  }
  @media(min-width:900px){
    .process-list::before{
      content:"";
      position:absolute; top:0; left:6%; right:6%; height:2px;
      background-image:repeating-linear-gradient(to right, var(--green) 0 9px, transparent 9px 18px);
      opacity:0.7;
    }
    .process-step::before, .process-step::after{display:block;}
  }
  .step-num{
    font-family:'Oswald'; font-size:44px; color:transparent;
    -webkit-text-stroke:1.5px var(--green);
    line-height:1; margin-bottom:14px;
    transition:-webkit-text-stroke-color .2s ease;
  }
  .process-step h3{font-size:18px; margin-bottom:10px;}
  .process-step p{color:var(--gray); font-size:14.5px;}
  .process-step:hover .step-num{-webkit-text-stroke-color:var(--green-bright);}

  /* ---------- PRICER ---------- */
  .pricing{background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .price-table{border:1px solid var(--line);}
  .price-row{
    display:grid; grid-template-columns: 2fr 1fr 3fr;
    gap:16px;
    padding:22px 24px;
    border-bottom:1px solid var(--line);
    align-items:center;
  }
  .price-row:last-child{border-bottom:none;}
  .price-row.head{
    font-family:'JetBrains Mono'; font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--gray-dim);
    padding:14px 24px;
  }
  .price-row .service-name{font-family:'Oswald'; font-size:17px; letter-spacing:0.02em;}
  .price-row .price{font-family:'JetBrains Mono'; color:var(--green-bright); font-size:16px;}
  .price-row .note{color:var(--gray); font-size:14px;}
  @media(max-width:640px){
    .price-row{grid-template-columns:1fr; gap:6px;}
    .price-row.head{display:none;}
    .price-row .note{margin-top:4px;}
  }
  .price-fineprint{margin-top:18px; font-size:13px; color:var(--gray-dim);}

  /* ---------- CALCULATOR ---------- */
  .calc-box{
    margin-top:56px;
    border:1px solid var(--line);
    background:var(--bg-card);
    border-radius:4px;
    overflow:hidden;
  }
  .calc-head{padding:30px 32px 0;}
  .calc-head h3{font-family:'Oswald'; font-size:24px; margin:12px 0 10px; letter-spacing:0.02em;}
  .calc-head p{color:var(--gray); font-size:14.5px; max-width:520px; margin:0 0 8px;}
  .calc-body{
    display:grid; grid-template-columns:1fr; gap:0;
    padding:26px 32px 32px;
  }
  @media(min-width:820px){ .calc-body{grid-template-columns:1.2fr 1fr; gap:40px; align-items:center;} }
  .calc-inputs{display:flex; flex-direction:column; gap:20px;}
  .calc-field label{color:var(--gray); margin-bottom:9px;}
  .calc-val{color:var(--green-bright); font-family:'JetBrains Mono';}
  .calc-size-hint{margin:8px 0 0; font-size:12.5px; color:var(--gray-dim); min-height:16px;}
  .calc-checkbox-field{margin-top:6px;}
  .calc-checkbox-label{
    display:flex; align-items:center; gap:10px;
    cursor:pointer; color:var(--gray-bright, #ddd);
    font-size:14.5px; margin:0;
  }
  .calc-checkbox-label input[type="checkbox"]{
    width:18px; height:18px; accent-color:var(--green-bright);
    flex-shrink:0; cursor:pointer;
  }
  input[type="range"]{
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    width:100%; height:6px; border-radius:3px;
    background:var(--line); border:none; padding:0;
    accent-color:var(--green);
    cursor:pointer;
  }
  input[type="range"]::-webkit-slider-runnable-track{
    height:6px; border-radius:3px; background:var(--line);
  }
  input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none;
    width:20px; height:20px; border-radius:50%;
    background:var(--green-bright); cursor:pointer;
    border:3px solid var(--bg-card);
    box-shadow:0 0 0 1px var(--green);
    margin-top:-7px;
  }
  input[type="range"]::-moz-range-track{
    height:6px; border-radius:3px; background:var(--line); border:none;
  }
  input[type="range"]::-moz-range-thumb{
    width:20px; height:20px; border-radius:50%;
    background:var(--green-bright); cursor:pointer;
    border:3px solid var(--bg-card);
    box-shadow:0 0 0 1px var(--green);
  }
  .calc-result{
    margin-top:28px;
    padding:26px 24px;
    background:var(--bg-alt);
    border:1px solid var(--line);
    border-radius:4px;
    text-align:center;
  }
  @media(min-width:820px){ .calc-result{margin-top:0;} }
  .calc-result-label{
    font-family:'JetBrains Mono'; font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gray-dim);
  }
  .calc-result-price{
    font-size:clamp(28px,4vw,38px); color:var(--green-bright); margin:10px 0 8px; font-weight:500;
  }
  .calc-result-note{font-size:12.5px; color:var(--gray-dim); margin-bottom:18px;}
  .calc-cta{width:100%;}

  /* ---------- OM OS ---------- */
  #om-os{background-color:var(--bg-alt); padding:0 0 90px;}
  .om-os-banner{
    background-size:cover; background-position:center 25%; background-repeat:no-repeat;
    padding:70px 0 40px; margin-bottom:50px;
  }
  .om-os-banner .om-os-head{margin-bottom:0;}
  .om-os-grid{display:grid; grid-template-columns:1fr; gap:40px; max-width:720px;}
  .om-os-lede{color:var(--gray); font-size:16px; margin-top:16px; max-width:560px;}
  .om-os-head{
    display:flex; align-items:center; gap:20px; margin-bottom:8px;
  }
  .om-os-avatar{
    width:112px; height:112px; flex-shrink:0;
    border-radius:50%;
    object-fit:cover; object-position:center;
    border:2px solid var(--green);
    background:var(--panel-2, #1a1d12);
    filter:drop-shadow(0 8px 20px rgba(0,0,0,0.5));
  }
  @media(max-width:420px){
    .om-os-head{gap:14px;}
    .om-os-avatar{width:84px; height:84px;}
  }
  .om-os-stats{display:flex; flex-direction:column; gap:22px;}
  .om-os-stat{border:1px solid var(--line); border-radius:4px; padding:20px 24px; background:var(--bg-card);}
  .om-os-stat-num{font-size:30px; color:var(--green-bright);}
  .om-os-stat-label{font-size:13px; color:var(--gray); margin-top:4px;}

  /* ---------- ANMELDELSER ---------- */
  .testi-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px;}
  .testi-card{border:1px solid var(--line); background:var(--bg-card); border-radius:4px; padding:26px; transition:transform .2s ease, border-color .2s ease;}
  .testi-card:hover{transform:translateY(-3px); border-color:var(--green);}
  .testi-stars{color:var(--green-bright); font-size:15px; letter-spacing:2px; margin-bottom:14px;}
  .testi-quote{color:var(--white); font-size:15px; line-height:1.6;}
  .testi-name{margin-top:16px; font-family:'JetBrains Mono'; font-size:12.5px; color:var(--gray-dim);}
  .testi-note{margin-top:22px; font-size:13px; color:var(--gray-dim);}
  .testi-source{display:inline-block; margin-top:14px; font-family:'JetBrains Mono'; font-size:11.5px; color:var(--green-bright); text-decoration:none; letter-spacing:0.3px;}
  .testi-source:hover{text-decoration:underline;}

  /* ---------- FAQ ---------- */
  #faq{background:var(--bg);}
  .faq-list{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line);}
  .faq-item{background:var(--bg-alt);}
  .faq-item summary{
    padding:20px 24px; cursor:pointer; list-style:none;
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    font-family:'Oswald'; font-size:16.5px; letter-spacing:0.01em;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:"+"; font-family:'JetBrains Mono'; font-size:20px; color:var(--green-bright); flex-shrink:0;
  }
  .faq-item[open] summary::after{content:"–";}
  .faq-item p{margin:0; padding:0 24px 22px; color:var(--gray); font-size:14.5px; max-width:640px;}

  /* ---------- COOKIE BANNER ---------- */

  /* ---------- PRIVACY MODAL ---------- */
  #privacyModal{
    position:fixed; inset:0; z-index:300;
    background:rgba(0,0,0,0.7);
    display:none; align-items:flex-start; justify-content:center;
    padding:40px 20px; overflow-y:auto;
  }
  #privacyModal.show{display:flex;}
  .modal-box{
    background:var(--bg-card); border:1px solid var(--line); border-radius:6px;
    max-width:640px; width:100%; padding:36px; margin-top:20px;
  }
  .modal-box h3{font-size:24px; margin-bottom:18px;}
  .modal-box h4{font-family:'Oswald'; font-size:15px; margin:22px 0 8px; color:var(--green-bright);}
  .modal-box p, .modal-box li{color:var(--gray); font-size:14px; line-height:1.6;}
  .modal-close{float:right; background:none; border:1px solid var(--line); color:var(--white); width:32px; height:32px; border-radius:4px; cursor:pointer;}
  .footer-links{display:flex; gap:18px; font-size:12.5px;}
  .footer-links a{color:var(--gray-dim); text-decoration:underline; cursor:pointer;}

  /* ---------- GALLERI / BEFORE-AFTER SLIDER ---------- */
  .gallery-note{margin-top:20px; font-size:14px; color:var(--gray-dim);}

  .calendly-cta-box{
    border:1px solid var(--line); border-radius:6px; background:var(--bg-card);
    padding:36px 24px; text-align:center; max-width:560px; margin:0 auto;
  }
  .ba-slider{
    position:relative; aspect-ratio:4/3; overflow:hidden;
    border-radius:4px; border:1px solid var(--line); background:#000;
    cursor:ew-resize; touch-action:pan-y;
  }
  .ba-img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; display:block; pointer-events:none; -webkit-user-drag:none;
  }
  .ba-after-img{clip-path:inset(0 50% 0 0);}
  .ba-handle{
    position:absolute; top:0; bottom:0; left:50%;
    width:3px; background:var(--green-bright);
    transform:translateX(-50%);
    display:flex; align-items:center; justify-content:center;
  }
  .ba-handle-grip{
    width:44px; height:44px; border-radius:50%;
    background:var(--green-bright); color:#0b0c08;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 16px rgba(0,0,0,0.4);
    border:3px solid var(--bg);
  }
  .ba-handle-grip svg{width:22px; height:22px;}
  .ba-handle:focus-visible{outline:none;}
  .ba-handle:focus-visible .ba-handle-grip{outline:2px solid var(--white); outline-offset:2px;}
  .ba-hint{text-align:center; font-size:13px;}
  .case-tag{
    position:absolute; top:14px; left:14px;
    font-family:'JetBrains Mono'; font-size:11px; letter-spacing:0.1em;
    color:#0b0c08; background:var(--green-bright);
    padding:5px 12px; border-radius:2px; font-weight:600;
    pointer-events:none;
  }
  .case-detail-media .case-tag{
    top:auto; bottom:14px; left:14px;
    background:rgba(11,12,8,0.85); color:var(--white); font-weight:400;
  }
  .ba-slider .case-tag.ba-tag-right{left:auto; right:14px;}
  .case-detail{
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
    margin-top:20px;
  }
  .case-detail-media{position:relative; aspect-ratio:4/3; background:#000; border:1px solid var(--line); border-radius:4px; overflow:hidden;}
  .case-detail-media img, .case-detail-media video{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .case-detail-media video{object-fit:contain;}
  .case-detail-media:hover img{transform:scale(1.04);}
  @media(max-width:720px){
    .case-detail{grid-template-columns:1fr;}
  }
  .crane-callout{
    margin-top:44px;
    display:flex; gap:22px; align-items:flex-start;
    border:1px solid var(--line); border-left:3px solid var(--green);
    background:var(--bg-card); border-radius:4px;
    padding:26px 28px;
  }
  .crane-callout-icon{
    width:44px; height:44px; flex-shrink:0; border-radius:50%;
    background:var(--bg-alt); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    color:var(--green-bright);
  }
  .crane-callout-icon svg{width:22px; height:22px;}
  .crane-callout h3{font-family:'Oswald'; font-size:17px; letter-spacing:0.02em; margin-bottom:10px;}
  .crane-callout p{color:var(--gray); font-size:14.5px; margin:0; max-width:640px;}
  .crane-callout strong{color:var(--green-bright); font-weight:600;}

  /* ---------- KONTAKT ---------- */
  .contact{background:var(--bg-alt);}
  .contact-grid{
    display:grid; grid-template-columns:1fr; gap:50px;
  }
  @media(min-width:900px){ .contact-grid{grid-template-columns:0.9fr 1.1fr;} }
  .contact-info h2{font-size:clamp(26px,4vw,36px);}
  .contact-info p{color:var(--gray); margin-top:14px; max-width:420px;}
  .info-list{margin-top:32px; display:flex; flex-direction:column; gap:18px;}
  .info-item{display:flex; gap:14px; align-items:flex-start;}
  .info-item svg{width:20px; height:20px; color:var(--green-bright); flex-shrink:0; margin-top:2px;}
  .info-item b{display:block; font-family:'Oswald'; font-size:15px; letter-spacing:0.02em;}
  .info-item span{color:var(--gray); font-size:14px;}

  .contact-cta-row{
    margin-top:28px;
    display:flex; flex-wrap:wrap; gap:12px;
  }
  .call-btn{
    display:inline-flex; align-items:center; gap:12px;
    background:var(--green); color:#0b0c08;
    padding:14px 22px; border-radius:4px;
    font-family:'Oswald'; font-size:15px; letter-spacing:0.02em; text-transform:uppercase;
    text-decoration:none; font-weight:600;
    transition:transform .15s ease;
  }
  .call-btn:hover{transform:translateY(-1px);}
  .call-btn svg{width:20px; height:20px; flex-shrink:0;}
  .whatsapp-btn{
    display:inline-flex; align-items:center; gap:12px;
    background:#25D366; color:#06210f;
    padding:14px 22px; border-radius:4px;
    font-family:'Oswald'; font-size:15px; letter-spacing:0.02em; text-transform:uppercase;
    text-decoration:none; font-weight:600;
    transition:transform .15s ease;
  }
  .whatsapp-btn:hover{transform:translateY(-1px);}
  .whatsapp-btn svg{width:20px; height:20px; flex-shrink:0;}
  .whatsapp-note{font-size:12.5px; color:var(--gray-dim); margin-top:10px;}
  .mail-btn{
    display:inline-flex; align-items:center; gap:12px;
    background:var(--green-bright); color:#0b0c08;
    padding:14px 22px; border-radius:4px;
    font-family:'Oswald'; font-size:15px; letter-spacing:0.02em; text-transform:uppercase;
    text-decoration:none; font-weight:600;
    transition:transform .15s ease;
  }
  .mail-btn:hover{transform:translateY(-1px);}
  .mail-btn svg{width:20px; height:20px; flex-shrink:0;}

  .vcard-btn{
    display:inline-flex; align-items:center; gap:12px;
    background:transparent; color:var(--white);
    padding:14px 22px; border-radius:4px; border:1px solid var(--line);
    font-family:'Oswald'; font-size:15px; letter-spacing:0.02em; text-transform:uppercase;
    text-decoration:none; font-weight:600;
    transition:transform .15s ease, border-color .15s ease;
  }
  .vcard-btn:hover{transform:translateY(-1px); border-color:var(--green);}
  .vcard-btn svg{width:20px; height:20px; flex-shrink:0;}

  form{
    background:var(--bg-card); border:1px solid var(--line); border-radius:4px; padding:32px;
  }
  .form-row{display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:16px;}
  @media(min-width:560px){ .form-row.two{grid-template-columns:1fr 1fr;} }
  label{
    display:block; font-size:12px; font-family:'JetBrains Mono'; letter-spacing:0.06em;
    color:var(--gray); margin-bottom:7px; text-transform:uppercase;
  }
  input:not([type="radio"]):not([type="checkbox"]), select, textarea{
    width:100%; background:var(--bg-alt); border:1px solid var(--line); color:var(--white);
    padding:11px 13px; border-radius:3px; font-family:'Work Sans'; font-size:14.5px;
    outline:none; transition:border-color .2s;
  }
  input:focus:not([type="radio"]):not([type="checkbox"]), select:focus, textarea:focus{border-color:var(--green);}
  textarea{resize:vertical; min-height:100px;}
  .form-submit{width:100%; margin-top:6px; border:none;}
  .form-note{font-size:12.5px; color:var(--gray-dim); margin-top:14px;}

  footer{
    padding:44px 24px 34px; border-top:1px solid var(--line); background:var(--bg);
  }
  .footer-inner{
    max-width:1160px; margin:0 auto; display:flex; flex-wrap:wrap; gap:24px;
    align-items:center; justify-content:space-between;
  }
  .footer-brand{display:flex; align-items:center; gap:12px;}
  .footer-brand img{width:38px; height:38px; border-radius:50%;}
  .footer-brand b{font-family:'Oswald'; font-size:16px;}
  footer .copy{font-size:12.5px; color:var(--gray-dim);}
  .footer-tags{font-family:'JetBrains Mono'; font-size:11.5px; color:var(--gray-dim); letter-spacing:0.05em;}
  .footer-legal{
    margin-top:22px; padding-top:18px; border-top:1px solid var(--line);
    font-size:12px; color:var(--gray-dim);
  }

  ::selection{background:var(--green); color:#0b0c08;}
  :focus-visible{outline:2px solid var(--green-bright); outline-offset:2px;}

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{
    opacity:0; transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .reveal.is-visible{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .btn{transition:none;}
    .reveal{opacity:1; transform:none; transition:none;}
    .ba-after-img, .case-detail-media img, .service-card svg{transition:none;}
  }
