    @font-face {
      font-family:'Josefin Sans';
      src:url('../Josefin_Sans/JosefinSans-VariableFont_wght.ttf') format('truetype');
      font-weight:100 700;
      font-style:normal;
      font-display:swap;
    }
    @font-face {
      font-family:'Josefin Sans';
      src:url('../Josefin_Sans/JosefinSans-Italic-VariableFont_wght.ttf') format('truetype');
      font-weight:100 700;
      font-style:italic;
      font-display:swap;
    }

    :root {
      --snow:  #E8F4F8;
      --ice:   #C8DCE8;
      --frost: #8097B7;
      --steel: #706F8B;
      --ink:   #211828;
      --plum:  #49273F;
      --blood: #B11226;
      --deep:  #8B0D1F;
      --mist:  #F2F9FC;
    }
    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    html { overflow-x:hidden; background:#111318; }
    body {
      background:var(--snow);
      color:var(--ink);
      font-family:'Josefin Sans', sans-serif;
      font-size:1.02rem;
      font-weight:300;
      overflow-x:hidden;
      width:100%;
      cursor:none;
    }

    /* Noise texture overlay */
    body::after {
      content:''; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.3;
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
    }

    ::-webkit-scrollbar { width:3px; }
    ::-webkit-scrollbar-track { background:var(--ice); }
    ::-webkit-scrollbar-thumb { background:var(--blood); }

    /* CURSOR */
    #cursor-ring {
      position:fixed; pointer-events:none; z-index:9999;
      transform:translate(-50%,-50%);
      will-change:transform,left,top;
      transition:filter .25s, opacity .25s;
      filter:drop-shadow(0 0 3px rgba(177,18,38,.5));
    }
    body.ch #cursor-ring {
      filter:drop-shadow(0 0 8px rgba(177,18,38,.85));
    }
    body.clicking #cursor-ring {
      filter:drop-shadow(0 0 12px rgba(177,18,38,1)) brightness(1.25);
    }

    /* REVEAL ANIMATIONS */
    .reveal { opacity:0; transform:translateY(28px); transition:opacity .65s cubic-bezier(.22,.68,0,1.1), transform .65s cubic-bezier(.22,.68,0,1.1); }
    .reveal.visible { opacity:1; transform:translateY(0); }
    .rl { opacity:0; transform:translateX(-36px); transition:opacity .65s ease, transform .65s ease; }
    .rl.visible { opacity:1; transform:translateX(0); }
    .rr { opacity:0; transform:translateX(36px); transition:opacity .65s ease, transform .65s ease; }
    .rr.visible { opacity:1; transform:translateX(0); }

    /* NAV */
    nav {
      position:fixed; top:0; left:0; right:0; z-index:1000;
      display:flex; align-items:center; justify-content:space-between;
      padding:1.3rem 4rem;
      background:rgba(232,244,248,.93);
      backdrop-filter:blur(20px);
      border-bottom:1px solid rgba(177,18,38,.18);
      box-shadow:0 1px 0 rgba(177,18,38,.12), 0 4px 24px rgba(177,18,38,.06);
      transition:padding .35s, box-shadow .35s;
    }
    nav.scrolled {
      padding:.9rem 4rem;
      box-shadow:0 1px 0 rgba(177,18,38,.28), 0 8px 32px rgba(177,18,38,.12);
    }
    nav::after {
      content:''; position:absolute; bottom:-1px; left:0; height:2px;
      background:linear-gradient(to right, transparent, var(--blood) 30%, var(--blood) 70%, transparent);
      width:0; animation:navLine 1.1s ease .2s forwards;
    }
    @keyframes navLine { to { width:100%; } }
    nav::before {
      content:''; position:absolute; left:0; top:18%; bottom:18%; width:3px;
      background:linear-gradient(to bottom, transparent, var(--blood), transparent);
      opacity:.55;
    }

    .nav-logo { display:flex; align-items:center; gap:.75rem; text-decoration:none; cursor:none; }
    .nav-favicon-icon { height:36px; width:36px; object-fit:contain; display:block; flex-shrink:0; align-self:center; transition:opacity .2s; }
    .nav-logo:hover .nav-favicon-icon { opacity:.8; }
    .logo-box {
      width:34px; height:34px; border:1px solid var(--blood);
      display:flex; align-items:center; justify-content:center;
      position:relative; overflow:hidden; flex-shrink:0; background:rgba(177,18,38,.05);
    }
    .logo-box::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--blood); }
    .logo-box span { font-family:'Josefin Sans',sans-serif; font-size:.58rem; color:var(--blood); }
    .logo-text { font-family:'Josefin Sans',sans-serif; font-size:.95rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); }
    .logo-text span { color:var(--steel); font-weight:300; }

    .nav-links { display:flex; gap:2.5rem; list-style:none; }
    .nav-links a {
      color:var(--steel); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
      text-decoration:none; cursor:none; transition:color .25s; position:relative; padding-bottom:4px;
    }
    .nav-links a::before {
      content:''; position:absolute; left:0; bottom:0;
      width:0; height:1.5px; background:var(--blood); transition:width .3s;
    }
    .nav-links a:hover { color:var(--blood); }
    .nav-links a:hover::before { width:100%; }

    .hamburger { display:none; flex-direction:column; gap:5px; cursor:none; padding:4px; background:none; border:none; }
    .hamburger span { display:block; width:22px; height:1.5px; background:var(--blood); transition:all .3s; }

    /* MOBILE NAV */
    @media(max-width:768px) {
      nav { padding:1rem 1.5rem; }
      nav.scrolled { padding:.8rem 1.5rem; }
      .nav-links {
        display:none; position:absolute; top:100%; left:0; right:0;
        background:rgba(232,244,248,.98); backdrop-filter:blur(20px);
        flex-direction:column; gap:0;
        border-bottom:2px solid var(--blood);
      }
      .nav-links.open { display:flex; }
      .nav-links li { border-bottom:1px solid rgba(177,18,38,.1); }
      .nav-links a { display:block; padding:1rem 1.5rem; font-size:.8rem; }
      .hamburger { display:flex; }
    }

    /* HERO */
    .hero {
      min-height:100vh;
      display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      padding:6rem 2rem 5rem;
      text-align:center;
      position:relative; overflow:hidden;
    }
    .hero-bg {
      position:absolute; inset:0; pointer-events:none;
      background:
        radial-gradient(ellipse at 18% 50%, rgba(200,220,232,.4) 0%, transparent 55%),
        radial-gradient(ellipse at 82% 50%, rgba(128,151,183,.18) 0%, transparent 55%);
    }
    .hero-red-bar {
      position:absolute; left:0; top:15%; height:65%; width:3px;
      background:linear-gradient(to bottom, transparent, var(--blood) 25%, var(--blood) 75%, transparent);
    }
    .hero-red-bar-r {
      position:absolute; right:0; top:15%; height:65%; width:3px;
      background:linear-gradient(to bottom, transparent, rgba(177,18,38,.3) 25%, rgba(177,18,38,.3) 75%, transparent);
    }
    .hero-kicker {
      position:relative; z-index:2;
      display:flex; align-items:center; justify-content:center; gap:.75rem;
      margin-bottom:1.8rem;
      opacity:0; animation:fadeUp .7s ease .3s forwards;
    }
    .hero-kicker-line { width:28px; height:1.5px; background:var(--blood); }
    .hero-kicker-text { font-family:'Josefin Sans',sans-serif; font-size:.64rem; letter-spacing:.32em; text-transform:uppercase; color:var(--blood); }
    .hero-slogan {
      position:relative; z-index:2;
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(3.2rem,6vw,8rem);
      font-weight:300; line-height:1.05;
      color:var(--ink); margin-bottom:.7rem;
      opacity:0; animation:fadeUp .8s ease .5s forwards;
    }
    .hero-slogan .s-name { color:var(--blood); font-weight:600; }
    .hero-sub-wrap {
      position:relative; z-index:2;
      width:100%; max-width:700px;
      height:clamp(2.8rem,4.5vw,4.2rem);
      margin-bottom:2.8rem; overflow:hidden;
    }
    .hero-word {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(1.6rem,2.8vw,3.2rem); font-weight:300;
      color:var(--steel); position:absolute; width:100%;
      left:0; top:0; text-align:center;
      opacity:0; transform:translateY(26px);
      transition:opacity .5s ease, transform .5s ease;
    }
    .hero-word em { color:var(--blood); font-style:normal; }
    .hero-word.active  { opacity:.65; transform:translateY(0); }
    .hero-word.exit    { opacity:0;   transform:translateY(-22px); }
    .hero-desc {
      position:relative; z-index:2;
      font-size:clamp(1rem,1.2vw,1.3rem); line-height:1.85; color:var(--plum);
      max-width:500px; margin:0 auto 2.6rem; opacity:.75;
      opacity:0; animation:fadeUp .7s ease .9s forwards;
    }
    .hero-actions {
      position:relative; z-index:2;
      display:flex; gap:1.2rem; align-items:center; justify-content:center; flex-wrap:wrap;
      opacity:0; animation:fadeUp .7s ease 1.55s forwards;
    }

    @keyframes fadeUp {
      from { opacity:0; transform:translateY(20px); }
      to { opacity:1; transform:translateY(0); }
    }

    /* hero-sub-wrap fades in after slogan */
    .hero-sub-wrap { opacity:0; animation:fadeUp .6s ease .95s forwards; }
    /* hero-desc waits for slogan + words to settle */
    .hero-desc { opacity:0; animation:fadeUpDesc .7s ease 1.35s forwards; }
    @keyframes fadeUpDesc {
      from { opacity:0; transform:translateY(20px); }
      to { opacity:.75; transform:translateY(0); }
    }

    @media(max-width:600px) {
      .hero-sub-wrap { height:2rem; }
      .hero-word { font-size:1.05rem; }
      .hero-word.active { opacity:.8; }
    }

    /* BUTTONS */
    .btn-primary, .btn-ghost {
      padding:.9rem 2.1rem; font-family:'Josefin Sans',sans-serif; font-size:.74rem;
      letter-spacing:.18em; text-transform:uppercase; cursor:none;
      text-decoration:none; display:inline-block; position:relative; overflow:hidden;
      transition:color .3s, transform .25s, box-shadow .3s;
      border:none;
    }
    .btn-primary {
      background:rgba(177,18,38,.12); color:var(--blood); border:1.5px solid var(--blood);
    }
    .btn-primary::before {
      content:''; position:absolute; inset:0; background:var(--blood);
      transform:scaleX(0); transform-origin:left; transition:transform .3s;
    }
    .btn-primary span { position:relative; z-index:1; }
    .btn-primary:hover { color:var(--mist); transform:scale(1.04); box-shadow:0 6px 32px rgba(177,18,38,.35); }
    .btn-primary:hover::before { transform:scaleX(1); }
    .btn-ghost {
      background:rgba(177,18,38,.07); color:var(--blood); border:1.5px solid rgba(177,18,38,.45);
    }
    .btn-ghost:hover { background:var(--blood); color:var(--mist); border-color:var(--blood); transform:scale(1.04); box-shadow:0 6px 28px rgba(177,18,38,.3); }

    /* DIVIDER */
    .sec-divider { display:flex; align-items:center; margin:0 4rem; }
    .sec-divider::before,.sec-divider::after { content:''; flex:1; height:1px; background:rgba(177,18,38,.15); }
    .sec-divider-dot { width:5px; height:5px; border-radius:50%; background:var(--blood); margin:0 1rem; opacity:.5; }

    /* SECTION HEADER */
    .sec-head { display:flex; align-items:center; gap:1.2rem; }
    .sec-head-rule { width:36px; height:1.5px; background:var(--blood); flex-shrink:0; }
    .sec-tag { font-family:'Josefin Sans',sans-serif; font-size:.64rem; letter-spacing:.28em; text-transform:uppercase; color:var(--blood); }
    .sec-title { font-family:'Josefin Sans',sans-serif; font-size:clamp(1.8rem,2.5vw,2.6rem); font-weight:300; color:var(--ink); }

    /* LEISTUNGEN GRID */
    .ls-grid-section {
      padding:6rem 4rem 7rem;
      background:var(--snow);
      position:relative;
      border-top:1px solid rgba(177,18,38,.1);
    }
    /* dark variant (test) */
    .ls-grid-section--dark {
      background:#111318;
      border-top:3px solid var(--blood);
      border-bottom:3px solid var(--blood);
    }
    .ls-grid-section--dark .ls-grid-title { color:var(--snow); }
    .ls-grid-section--dark .ls-card {
      background:rgba(255,255,255,.04);
      border-color:rgba(177,18,38,.22);
      box-shadow:0 2px 12px rgba(0,0,0,.35);
    }
    .ls-grid-section--dark .ls-card:hover {
      background:rgba(177,18,38,.07);
      box-shadow:0 8px 16px rgba(177,18,38,.14), 0 24px 64px rgba(177,18,38,.22), 0 0 0 1px rgba(177,18,38,.28);
      border-color:rgba(177,18,38,.5);
    }
    .ls-grid-section--dark .ls-card-num { color:rgba(177,18,38,.55); }
    .ls-grid-section--dark .ls-card-title { color:var(--snow); font-size:1.85rem; }
    .ls-grid-section--dark .ls-card-desc { color:var(--frost); opacity:.9; font-size:1rem; }
    .ls-grid-section--dark .ls-card-list li { color:var(--frost); font-size:.94rem; }
    .ls-grid-header { text-align:center; margin-bottom:4rem; }
    .ls-grid-kicker {
      display:flex; align-items:center; justify-content:center; gap:.9rem;
      margin-bottom:1rem;
      font-family:'Josefin Sans',sans-serif; font-size:.62rem;
      letter-spacing:.3em; text-transform:uppercase; color:var(--blood);
    }
    .ls-grid-rule { width:28px; height:1.5px; background:var(--blood); }
    .ls-grid-title {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(2.8rem,4vw,5rem); font-weight:300;
      color:var(--ink); line-height:1.05;
    }
    .ls-grid {
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:1.5rem;
      max-width:1280px; margin:0 auto;
    }
    .ls-card {
      background:#fff;
      border:1px solid rgba(177,18,38,.2);
      border-top:3px solid var(--blood);
      padding:2.8rem 2.4rem 2.4rem;
      display:flex; flex-direction:column;
      position:relative; overflow:hidden;
      box-shadow:0 2px 12px rgba(177,18,38,.08);
      transition:transform .3s ease, box-shadow .35s ease, border-color .3s ease, background .3s ease;
    }
    .ls-card:hover {
      transform:translateY(-10px);
      background:#fff;
      box-shadow:0 8px 16px rgba(177,18,38,.12), 0 24px 64px rgba(177,18,38,.28), 0 0 0 1px rgba(177,18,38,.2);
      border-color:rgba(177,18,38,.5);
    }
    .ls-card-top {
      display:flex; align-items:flex-start; justify-content:space-between;
      margin-bottom:1.8rem;
    }
    .ls-card-num {
      font-family:'Josefin Sans',sans-serif;
      font-size:3.5rem; font-weight:300; line-height:1;
      color:rgba(177,18,38,.12);
    }
    .ls-card-icon { color:var(--blood); opacity:.7; margin-top:.3rem; }
    .ls-card-title {
      font-family:'Josefin Sans',sans-serif;
      font-size:1.65rem; font-weight:600;
      color:var(--ink); margin-bottom:.9rem; line-height:1.15;
    }
    .ls-card-desc {
      font-size:.93rem; line-height:1.75;
      color:var(--plum); opacity:.78;
      margin-bottom:1.8rem;
    }
    .ls-card-list {
      list-style:none; padding:0; margin:0 0 2.2rem;
      display:flex; flex-direction:column; gap:.55rem;
      flex:1;
    }
    .ls-card-list li {
      font-size:.88rem; color:var(--plum);
      padding-left:1.1rem; position:relative; line-height:1.5;
    }
    .ls-card-list li::before {
      content:''; position:absolute; left:0; top:.55rem;
      width:5px; height:5px; border-radius:50%;
      background:var(--blood);
    }
    .ls-card-footer { margin-top:auto; padding-top:1rem; }

    @media(max-width:960px) {
      .ls-grid-section { padding:4rem 1.5rem 5rem; }
      .ls-grid { grid-template-columns:1fr; gap:1.2rem; }
      .ls-card:hover { transform:none; }
    }

    /* ABOUT / NETWORK SECTION */
    .about-section {
      padding:7rem 4rem;
      background:#111318;
      position:relative; overflow:hidden;
      border-top:3px solid var(--blood);
    }
    .about-bg { display:none; }
    .about-grid {
      position:absolute; inset:0; pointer-events:none;
      display:flex; justify-content:space-between; padding:0 2rem;
    }
    .about-grid span {
      display:block; width:1px;
      background:rgba(177,18,38,.08);
    }
    .about-inner {
      position:relative; z-index:2;
      width:100%; max-width:680px; margin:0 auto; box-sizing:border-box;
    }
    .about-kicker {
      display:flex; align-items:center; gap:1rem;
      margin-bottom:1.5rem;
      font-family:'Josefin Sans',sans-serif; font-size:.62rem;
      letter-spacing:.35em; text-transform:uppercase; color:var(--frost); opacity:.6;
    }
    .about-kicker-line { width:28px; height:1px; background:var(--frost); }
    .about-title {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(2.8rem,4.5vw,5rem); font-weight:300; line-height:.95;
      color:var(--snow); letter-spacing:-.01em; margin-bottom:1.5rem;
      overflow-wrap:break-word; word-break:break-word;
    }
    .about-title em { font-style:normal; color:var(--blood); }
    .about-text {
      font-size:1rem; line-height:1.85; color:rgba(200,220,232,.7);
      margin-bottom:2rem;
    }
    .about-status {
      display:flex; align-items:center; gap:.8rem;
      font-family:'Josefin Sans',sans-serif; font-size:.65rem;
      letter-spacing:.2em; text-transform:uppercase; color:var(--frost); opacity:.7;
    }
    .status-dot {
      width:8px; height:8px; border-radius:50%; background:#22c55e;
      box-shadow:0 0 10px rgba(34,197,94,.6);
      animation:blink 2s ease-in-out infinite;
    }
    @keyframes blink {
      0%,100% { opacity:1; }
      50%      { opacity:.3; }
    }
    @media(max-width:860px) {
      .about-section { padding:5rem 1.5rem; }
    }

    /* PARTNERS CAROUSEL */
    .partners-section {
      background:#111318; padding:3.5rem 0;
      border-top:1px solid rgba(177,18,38,.1);
      overflow:hidden;
    }
    .partners-kicker {
      text-align:center;
      font-family:'Josefin Sans',sans-serif; font-size:.58rem;
      letter-spacing:.32em; text-transform:uppercase;
      color:var(--frost); opacity:.5; margin-bottom:2rem;
    }
    .partners-track-wrap {
      overflow:hidden;
      -webkit-mask-image:linear-gradient(to right,transparent,#111318 12%,#111318 88%,transparent);
      mask-image:linear-gradient(to right,transparent,#111318 12%,#111318 88%,transparent);
    }
    .partners-track {
      display:flex; align-items:center; gap:5rem;
      width:max-content;
      animation:scroll-logos 28s linear infinite;
    }
    .partners-track:hover { animation-play-state:paused; }
    .partner-logo {
      flex-shrink:0; height:36px; width:110px;
      display:flex; align-items:center; justify-content:center;
      opacity:.45; transition:opacity .3s;
    }
    .partner-logo:hover { opacity:.85; }
    .partner-logo img {
      max-height:100%; max-width:100%;
      object-fit:contain; filter:grayscale(1);
    }
    @keyframes scroll-logos {
      from { transform:translateX(0); }
      to   { transform:translateX(-50%); }
    }
    .claim-banner {
      display:flex; align-items:center; justify-content:center;
      overflow:visible;
    }
    .claim-banner-text {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(1.4rem, 4vw, 2.8rem);
      letter-spacing:.18em; text-transform:uppercase;
      color:#fff; opacity:1;
      margin:0; text-align:center; width:100%;
      padding:0 2rem;
    }
    .claim-letter {
      display:inline-block;
      opacity:.5;
      transition:opacity .4s ease, text-shadow .4s ease;
    }

    /* CONTACT SECTION */
    .contact-section {
      padding:6rem 4rem;
      background:linear-gradient(135deg, var(--mist) 0%, rgba(200,220,232,.4) 100%);
      border-top:3px solid var(--blood);
    }
    .contact-inner {
      max-width:1100px; margin:0 auto;
      display:grid; grid-template-columns:1fr 1.3fr;
      gap:6rem; align-items:start;
    }
    .contact-left h2 {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(2rem,3vw,2.8rem); font-weight:300;
      color:var(--ink); margin-bottom:1rem; line-height:1.1;
    }
    .contact-left > p {
      font-size:.97rem; line-height:1.8; color:var(--plum); opacity:.78;
      margin-bottom:2rem;
    }
    .contact-info { display:flex; flex-direction:column; gap:1.2rem; }
    .k-item { display:flex; align-items:flex-start; gap:1rem; }
    .k-icon {
      width:36px; height:36px; border:1px solid rgba(177,18,38,.3);
      display:flex; align-items:center; justify-content:center;
      color:var(--blood); font-size:.9rem; flex-shrink:0;
    }
    .k-lbl { font-family:'Josefin Sans',sans-serif; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--steel); margin-bottom:.2rem; }
    .k-val { font-size:.9rem; color:var(--ink); }
    .k-val a { color:var(--blood); text-decoration:none; }
    .k-val a:hover { text-decoration:underline; }

    .contact-form {
      background:rgba(255,255,255,.7);
      border:1px solid rgba(177,18,38,.12);
      border-top:3px solid var(--blood);
      padding:2.5rem;
    }
    .fg-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
    .fg { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.2rem; }
    .fg label {
      font-family:'Josefin Sans',sans-serif; font-size:.72rem;
      letter-spacing:.18em; text-transform:uppercase; color:var(--ink); opacity:.7;
    }
    /* required field: thin red underline on the input */
    .fg--required input,
    .fg--required select,
    .fg--required textarea {
      border-bottom:1.5px solid rgba(177,18,38,.5);
    }
    .fg input, .fg select, .fg textarea {
      width:100%; padding:.75rem 1rem;
      background:var(--mist); border:1px solid rgba(177,18,38,.18);
      color:var(--ink); font-family:'Josefin Sans',sans-serif; font-size:.9rem; font-weight:300;
      outline:none; transition:border-color .25s, box-shadow .25s;
      appearance:none; cursor:none;
    }
    .fg input:focus, .fg select:focus, .fg textarea:focus {
      border-color:var(--blood);
      box-shadow:0 0 0 3px rgba(177,18,38,.08);
    }
    .fg select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B11226' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
    .fg textarea { resize:vertical; min-height:100px; }
    .fg-radios { display:flex; flex-direction:row; gap:.6rem; flex-wrap:wrap; padding:.2rem 0; }
    .fg-radio { display:inline-flex; align-items:center; cursor:pointer; flex:0 0 auto; }
    .fg-radio input[type="radio"] { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
    .fg-radio span { display:inline-block; padding:.38rem 1rem; border:1px solid rgba(177,18,38,.4); border-radius:2px; font-family:'Josefin Sans',sans-serif; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); transition:background .18s, border-color .18s, color .18s; white-space:nowrap; }
    .fg-radio input:checked ~ span { background:var(--blood); border-color:var(--blood); color:#fff; }
    .fg-radio:hover span { border-color:var(--blood); }

    /* consent block */
    .fg-consent {
      max-height:0; overflow:hidden; opacity:0;
      transition:max-height .45s cubic-bezier(.4,0,.2,1), opacity .35s ease, margin-bottom .45s;
      margin-bottom:0;
    }
    .fg-consent.visible {
      max-height:160px; opacity:1; margin-bottom:1.2rem;
    }
    .fg-consent-inner {
      border-left:2px solid var(--blood);
      padding:.9rem 1rem;
      background:rgba(177,18,38,.04);
    }
    .fg-consent-label {
      display:flex; align-items:flex-start; gap:.75rem; cursor:pointer;
      text-transform:none !important; letter-spacing:0 !important;
      font-size:.82rem !important; color:var(--ink) !important; opacity:1 !important;
    }
    .fg-consent-label input[type="checkbox"] { display:none; }
    .fg-consent-box {
      flex-shrink:0; width:16px; height:16px; margin-top:.15rem;
      border:1.5px solid var(--blood); background:var(--mist);
      position:relative; transition:background .2s;
    }
    .fg-consent-label input:checked ~ .fg-consent-box { background:var(--blood); }
    .fg-consent-label input:checked ~ .fg-consent-box::after {
      content:''; position:absolute; left:4px; top:1px;
      width:5px; height:9px;
      border:1.5px solid var(--mist); border-top:none; border-left:none;
      transform:rotate(45deg);
    }
    .fg-consent-text {
      font-size:.78rem; line-height:1.65; color:var(--plum);
      text-transform:none; letter-spacing:.01em;
    }
    .consent-link {
      background:none; border:none; padding:0;
      color:var(--blood); text-decoration:underline;
      font-family:inherit; font-size:inherit; cursor:pointer;
    }

    .form-btn {
      width:100%; padding:1rem;
      background:rgba(177,18,38,.1); color:var(--blood);
      border:1.5px solid var(--blood);
      font-family:'Josefin Sans',sans-serif; font-size:.74rem;
      letter-spacing:.2em; text-transform:uppercase;
      cursor:none; position:relative; overflow:hidden;
      transition:color .3s, transform .2s, box-shadow .3s;
      margin-top:.5rem;
    }
    .form-btn span { position:relative; z-index:1; }
    .form-btn::before {
      content:''; position:absolute; inset:0; background:var(--blood);
      transform:scaleX(0); transform-origin:left; transition:transform .3s;
    }
    .form-btn:hover { color:var(--mist); transform:scale(1.01); box-shadow:0 4px 24px rgba(177,18,38,.3); }
    .form-btn:hover::before { transform:scaleX(1); }


    /* HubSpot injects a <form> — style it like our old form */
    .contact-form .hs-form,
    .contact-form form {
      display:flex; flex-direction:column; gap:0;
    }
    /* Field wrapper */
    .contact-form .hs-form-field {
      display:flex; flex-direction:column; gap:.45rem;
      margin-bottom:1.2rem;
    }
    /* Two-column row (firstname + lastname) */
    .contact-form .hs-firstname,
    .contact-form .hs-lastname {
      display:inline-flex; flex-direction:column; gap:.45rem;
      width:calc(50% - .5rem);
    }
    .contact-form .hs-firstname { margin-right:1rem; }
    /* Labels */
    .contact-form .hs-form-field > label,
    .contact-form .hs-form-field label {
      font-family:'Josefin Sans',sans-serif; font-size:.6rem;
      letter-spacing:.2em; text-transform:uppercase; color:var(--steel);
      font-weight:400; cursor:default;
    }
    /* Hide HubSpot's inline required asterisk styling */
    .contact-form .hs-form-required { color:var(--blood); }
    /* Inputs, selects, textareas */
    .contact-form .hs-input,
    .contact-form input[type="text"],
    .contact-form input[type="email"],
    .contact-form input[type="tel"],
    .contact-form select,
    .contact-form textarea {
      width:100%; padding:.75rem 1rem;
      background:var(--mist); border:1px solid rgba(177,18,38,.18);
      color:var(--ink); font-family:'Josefin Sans',sans-serif;
      font-size:.9rem; font-weight:300;
      outline:none; transition:border-color .25s, box-shadow .25s;
      appearance:none; border-radius:0;
      box-shadow:none;
    }
    .contact-form .hs-input:focus,
    .contact-form input:focus,
    .contact-form select:focus,
    .contact-form textarea:focus {
      border-color:var(--blood);
      box-shadow:0 0 0 3px rgba(177,18,38,.08);
    }
    .contact-form select {
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B11226' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
      background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem;
    }
    .contact-form textarea { resize:vertical; min-height:120px; }
    /* Error messages */
    .contact-form .hs-error-msgs {
      list-style:none; padding:0; margin:.3rem 0 0;
    }
    .contact-form .hs-error-msgs li label {
      font-size:.72rem; color:var(--blood); letter-spacing:.04em;
      text-transform:none;
    }
    /* Submit button */
    .contact-form .hs-button,
    .contact-form input[type="submit"] {
      width:100%; padding:1rem;
      background:rgba(177,18,38,.1); color:var(--blood);
      border:1.5px solid var(--blood); border-radius:0;
      font-family:'Josefin Sans',sans-serif; font-size:.72rem;
      letter-spacing:.18em; text-transform:uppercase;
      cursor:pointer; position:relative; overflow:hidden;
      transition:color .3s, transform .2s, box-shadow .3s;
      margin-top:.5rem;
    }
    .contact-form .hs-button:hover,
    .contact-form input[type="submit"]:hover {
      color:var(--mist); background:var(--blood);
      transform:scale(1.01); box-shadow:0 4px 24px rgba(177,18,38,.3);
    }
    /* Success message */
    .contact-form .submitted-message {
      font-family:'Josefin Sans',sans-serif; font-size:.9rem;
      color:var(--ink); letter-spacing:.04em; line-height:1.7;
      padding:1.5rem; border-left:3px solid var(--blood);
      background:rgba(177,18,38,.04);
    }
    /* Hide HubSpot branding/GDPR cookie banner if injected */
    .contact-form .hs-richtext a[href*="hubspot"],
    .contact-form .legal-consent-container { display:none !important; }

    .success-msg {
      display:none; text-align:center; padding:1rem;
      font-family:'Josefin Sans',sans-serif; font-size:.7rem;
      letter-spacing:.2em; text-transform:uppercase; color:var(--blood);
      border:1px solid rgba(177,18,38,.3); background:rgba(177,18,38,.05);
    }

    @media(max-width:920px) {
      .contact-section { padding:4rem 1.5rem; }
      .contact-inner { grid-template-columns:1fr; gap:3rem; }
      .fg-row { grid-template-columns:1fr; }
    }

    /* FOOTER */
    footer {
      background:#111318;
      border-top:3px solid var(--blood);
      padding:2rem 4rem;
      display:flex; align-items:center; justify-content:space-between;
      flex-wrap:wrap; gap:1rem;
      position:relative; z-index:2;
    }
    footer p {
      font-family:'Josefin Sans',sans-serif; font-size:.62rem;
      letter-spacing:.18em; text-transform:uppercase;
      color:rgba(200,220,232,.35);
    }
    .footer-links { display:flex; gap:2rem; list-style:none; }
    .footer-links a {
      font-family:'Josefin Sans',sans-serif; font-size:.6rem;
      letter-spacing:.15em; text-transform:uppercase;
      color:rgba(200,220,232,.35); text-decoration:none; cursor:none;
      transition:color .25s;
    }
    .footer-links a:hover { color:var(--blood); }
    @media(max-width:600px) {
      footer { padding:2rem 1.5rem; flex-direction:column; align-items:flex-start; }
    }

    /* tag keywords — red-accent keyword chips with inline expand */
    .svc-item-tags {
      display:grid; grid-template-columns:1fr 1fr;
      gap:.55rem; position:relative; overflow:visible;
      align-items:start;
    }
    .tag {
      font-family:'Josefin Sans',sans-serif; font-size:.92rem;
      letter-spacing:.13em; text-transform:uppercase;
      display:flex; flex-direction:column; align-items:center;
      width:100%; min-width:0;
      padding:.9rem 1rem;
      color:var(--ink);
      border:1px solid rgba(177,18,38,.14);
      border-left:3px solid var(--blood);
      border-radius:0 3px 3px 0;
      background:rgba(232,244,248,.75);
      cursor:none; position:relative;
      overflow:hidden;
      /* uniform resting height — label clips if too tall */
      max-height:3.8rem;
      box-shadow:2px 2px 8px rgba(0,0,0,.05);
      transition:color .2s, background .2s, box-shadow .2s, max-height .4s cubic-bezier(.4,0,.2,1);
    }
    .tag:hover, .tag.active {
      max-height:24rem;
      overflow:visible;
    }
    .tag-fill {
      display:block; position:absolute;
      top:50%; left:50%;
      transform:translate(-50%, -50%);
      width:100%;
      aspect-ratio:200/60;
      pointer-events:none; overflow:visible; z-index:0;
      opacity:.11;
      transition:width .4s cubic-bezier(.4,0,.2,1), opacity .2s;
    }
    .tag-fill--anim { opacity:.2; }
    .tag-fill svg { width:100%; height:100%; }
    .tag:hover .tag-fill,
    .tag.active .tag-fill { width:95%; }

    /* keyframes for tag background animations */
    @keyframes blink-led {
      0%   { opacity:.15; }
      100% { opacity:1; }
    }
    @keyframes float-up {
      0%   { transform:translateY(0);     opacity:.85; }
      100% { transform:translateY(-20px); opacity:0; }
    }
    .tag-lbl {
      position:relative; z-index:1;
      display:inline-flex; align-items:center; gap:.42rem;
      width:100%; justify-content:center;
      text-shadow:0 2px 8px rgba(0,0,0,.45), 0 1px 3px rgba(0,0,0,.3);
    }
    .tag-lbl::before {
      content:'';
      display:none;
    }
    .tag-desc {
      position:relative; z-index:1;
      font-family:'Josefin Sans',sans-serif; font-size:.82rem;
      letter-spacing:.02em; text-transform:none; font-weight:400;
      color:var(--plum); line-height:1.65;
      white-space:normal; word-break:break-word;
      max-height:0; overflow:hidden; opacity:0;
      transition:max-height .4s ease, opacity .3s ease, padding-top .35s ease;
      padding-top:0;
    }
    .tag:hover, .tag.active {
      color:var(--blood);
      background:rgba(177,18,38,.07);
      border-color:rgba(177,18,38,.25);
      box-shadow:3px 3px 14px rgba(177,18,38,.13);
      max-height:20rem;
    }
    .tag:hover .tag-lbl::before, .tag.active .tag-lbl::before { opacity:1; }
    .tag:hover .tag-desc, .tag.active .tag-desc {
      max-height:200px; opacity:1; padding-top:.55rem;
    }
    /* dark background variant */
    .svc-item--light .tag {
      color:rgba(242,249,252,.82);
      border-color:rgba(242,249,252,.08);
      border-left-color:var(--blood);
      background:rgba(33,24,40,.28);
      box-shadow:2px 2px 8px rgba(0,0,0,.15);
    }
    .svc-item--light .tag-lbl { text-shadow:0 2px 8px rgba(0,0,0,.65), 0 1px 3px rgba(0,0,0,.5); }
    .svc-item--light .tag-lbl::before { color:var(--blood); }
    .svc-item--light .tag:hover, .svc-item--light .tag.active {
      color:var(--mist);
      border-color:rgba(177,18,38,.25);
      background:rgba(177,18,38,.16);
      box-shadow:3px 3px 14px rgba(177,18,38,.22);
    }
    .svc-item--light .tag-desc { color:rgba(200,220,232,.75); }
    /* hide cursor on touch devices */
    @media (hover: none) and (pointer: coarse) {
      #cursor-ring, #cursor-cable { display:none; }
      body, body * { cursor: auto; }
    }

    /* scroll indicator */
    .scroll-hint {
      position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
      display:flex; flex-direction:column; align-items:center; gap:.6rem;
      font-family:'Josefin Sans',sans-serif; font-size:.58rem; letter-spacing:.22em;
      text-transform:uppercase; color:var(--steel); opacity:.4;
      animation:hintBounce 2s ease-in-out infinite;
      z-index:2;
    }
    @keyframes hintBounce {
      0%,100%{transform:translateX(-50%) translateY(0)}
      50%{transform:translateX(-50%) translateY(6px)}
    }

    /* ═══ SERVICE MODULES ═══ */
    .svc-module {
      padding:7rem 4rem;
      position:relative;
      width:100%;
      box-sizing:border-box;
      border-top:1px solid rgba(177,18,38,.1);
    }
    .svc-module--light { background:var(--snow); }
    .svc-module--dark  {
      background:#111318;
      border-top:3px solid var(--blood);
      border-bottom:3px solid var(--blood);
    }
    .rec-box {
      background:#fff;
      border:1px solid rgba(177,18,38,.18);
      border-top:3px solid var(--blood);
      padding:2.4rem 2.4rem 2rem;
      box-shadow:0 2px 12px rgba(177,18,38,.07);
    }

    .svc-inner {
      max-width:1200px; margin:0 auto;
      display:grid; grid-template-columns:1fr 1.4fr;
      gap:6rem; align-items:start;
    }
    .svc-inner--rev { grid-template-columns:1.4fr 1fr; }

    /* Left column */
    .svc-left { position:relative; }
    .svc-num-bg {
      font-family:'Josefin Sans',sans-serif;
      font-size:9rem; font-weight:300; line-height:1;
      color:rgba(177,18,38,.13);
      position:absolute; top:-2rem; left:-1rem;
      pointer-events:none; user-select:none;
      letter-spacing:-.02em;
    }
    .svc-module--dark .svc-num-bg { color:rgba(177,18,38,.22); }

    .svc-kicker {
      display:flex; align-items:center; gap:.8rem;
      font-family:'Josefin Sans',sans-serif; font-size:.62rem;
      letter-spacing:.3em; text-transform:uppercase; color:var(--blood);
      margin-bottom:1.5rem; position:relative;
    }
    .svc-kicker--light { color:var(--frost); opacity:.7; }
    .svc-kicker-line { width:24px; height:1.5px; background:currentColor; }

    .svc-title {
      font-family:'Josefin Sans',sans-serif;
      font-size:clamp(2.8rem,4.2vw,5.2rem); font-weight:300; line-height:1.05;
      color:var(--ink); margin-bottom:1.4rem; position:relative;
    }
    .svc-title em { font-style:normal; color:var(--blood); }
    .svc-title--light { color:var(--snow); }
    @keyframes burn {
      0%   { color:#ff4200; text-shadow: 0 -1px 4px rgba(255,200,50,.55), 0 0 10px #ff5500, 0 0 20px #ff2200, 0 0 38px rgba(177,18,38,.75); }
      18%  { color:#ff6600; text-shadow: 0 -3px 8px rgba(255,220,80,.70), 0 0 15px #ff7700, 0 0 28px #ff3300, 0 0 50px rgba(200,20,20,.90); }
      33%  { color:#ff3200; text-shadow: 0 -1px 3px rgba(255,175,30,.45), 0 0  7px #ff4400, 0 0 15px #ff1100, 0 0 28px rgba(155,14,28,.65); }
      52%  { color:#ff5500; text-shadow: 0 -4px 10px rgba(255,210,60,.80), 0 0 17px #ff6600, 0 0 32px #ff4400, 0 0 56px rgba(210,22,38,.95); }
      68%  { color:#ff4400; text-shadow: 0 -2px 6px rgba(255,195,45,.60), 0 0 11px #ff5500, 0 0 22px #ff2200, 0 0 40px rgba(177,18,38,.80); }
      84%  { color:#ff6600; text-shadow: 0 -3px 7px rgba(255,215,70,.72), 0 0 14px #ff7700, 0 0 25px #ff3300, 0 0 45px rgba(195,18,35,.85); }
      100% { color:#ff4200; text-shadow: 0 -1px 4px rgba(255,200,50,.55), 0 0 10px #ff5500, 0 0 20px #ff2200, 0 0 38px rgba(177,18,38,.75); }
    }
    .svc-title--light em { animation: burn 2.6s ease-in-out infinite; }

    .svc-lead {
      font-size:1rem; line-height:1.85; color:var(--plum);
      opacity:.8; margin-bottom:2.5rem; position:relative;
    }
    .svc-lead--light { color:rgba(200,220,232,.7); opacity:1; }

    /* Right column — item list */
    .svc-right {
      display:flex; flex-direction:column; gap:0; min-width:0; overflow:hidden;
    }
    .svc-item {
      padding:1.8rem 0 1.8rem 1rem; min-width:0;
      border-bottom:1px solid rgba(177,18,38,.1);
      border-left:2px solid transparent;
      cursor:pointer;
      transition:background .25s ease, border-color .25s ease, padding-left .25s ease;
    }
    .svc-item:first-child { border-top:1px solid rgba(177,18,38,.1); }
    .svc-item:hover {
      background:rgba(177,18,38,.04);
      border-left-color:rgba(177,18,38,.3);
      padding-left:1.4rem;
    }
    .svc-item.open {
      background:rgba(177,18,38,.05);
      border-left-color:var(--blood);
    }
    .svc-item--light { border-color:rgba(200,220,232,.12); }
    .svc-item--light:first-child { border-top-color:rgba(200,220,232,.12); }
    .svc-item--light:hover {
      background:rgba(255,255,255,.04);
      border-left-color:rgba(232,244,248,.35);
    }
    .svc-item--light.open {
      background:rgba(255,255,255,.06);
      border-left-color:rgba(232,244,248,.7);
    }

    /* Item header — title + collapse arrow */
    .svc-item-header {
      display:flex; align-items:center; justify-content:flex-start;
      gap:.6rem; margin-bottom:.5rem;
    }
    .svc-item-header .svc-item-title { margin-bottom:0; }
    .svc-item-arrow {
      flex-shrink:0; line-height:0;
      color:var(--blood); opacity:.45;
      transition:transform .3s ease, opacity .3s ease;
    }
    .svc-item--light .svc-item-arrow { color:var(--snow); }
    .svc-item:hover .svc-item-arrow { opacity:.8; }
    .svc-item.open .svc-item-arrow { transform:rotate(180deg); opacity:1; }

    .svc-item-title {
      font-family:'Josefin Sans',sans-serif;
      font-size:1.25rem; font-weight:600;
      color:var(--ink); margin-bottom:.5rem;
    }
    .svc-item--light .svc-item-title { color:var(--snow); }

    .svc-item-desc {
      font-size:.9rem; line-height:1.75;
      color:var(--plum); opacity:.75; margin-bottom:.9rem;
    }
    .svc-item--light .svc-item-desc { color:rgba(200,220,232,.6); opacity:1; }

    .svc-item-tags { margin-top:.2rem; }

    /* Expand area */
    .svc-item-extra {
      max-height:0; overflow:hidden; opacity:0; margin-top:0;
      transition:max-height .4s cubic-bezier(.4,0,.2,1), opacity .3s ease, margin-top .3s ease;
    }
    .svc-item.open .svc-item-extra {
      max-height:240px; opacity:1; margin-top:.8rem;
    }

    /* Detail bullet list */
    .svc-item-bullets {
      list-style:none; padding:0; margin:0;
      display:flex; flex-direction:column; gap:.4rem;
      border-top:1px solid rgba(177,18,38,.08);
      padding-top:.75rem;
    }
    .svc-item--light .svc-item-bullets { border-top-color:rgba(232,244,248,.1); }
    .svc-item-bullets li {
      font-size:.82rem; line-height:1.5;
      color:var(--plum); opacity:.7;
      padding-left:1.1rem; position:relative;
    }
    .svc-item-bullets li::before {
      content:'—'; position:absolute; left:0;
      color:var(--blood); opacity:.6;
    }
    .svc-item--light .svc-item-bullets li { color:rgba(200,220,232,.75); opacity:1; }
    .svc-item--light .svc-item-bullets li::before { color:rgba(232,244,248,.5); }

    /* RECRUITING TABS */
    .rec-tabs {
      display:flex; gap:0; margin-bottom:1.8rem;
      border-bottom:1px solid rgba(177,18,38,.15);
    }
    .rec-tab {
      font-family:'Josefin Sans',sans-serif;
      font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
      background:none; border:none; border-bottom:2px solid transparent;
      margin-bottom:-1px; padding:.7rem 0;
      flex:1; text-align:center;
      color:rgba(177,18,38,.38); cursor:pointer;
      transition:color .25s, border-color .25s;
    }
    .rec-tab--active { color:var(--blood); border-bottom-color:var(--blood); }
    .rec-tab:not(.rec-tab--active):hover { color:rgba(177,18,38,.65); }

    /* RECRUITING PANELS */
    .rec-panel { display:none; }
    .rec-panel--active {
      display:block;
      animation:recFadeIn .32s ease forwards;
    }
    @keyframes recFadeIn {
      from { opacity:0; transform:translateY(7px); }
      to   { opacity:1; transform:translateY(0); }
    }

    /* RECRUITING PROCESS */
    .rec-process { display:flex; flex-direction:column; }
    .rec-step {
      display:grid; grid-template-columns:2.8rem 1fr;
      gap:0 1.2rem; padding:1.35rem 0;
      border-bottom:1px solid rgba(177,18,38,.12);
    }
    .rec-step:first-child { border-top:1px solid rgba(177,18,38,.12); }
    .rec-step-num {
      font-family:'Josefin Sans',sans-serif;
      font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
      color:rgba(177,18,38,.45); padding-top:.15rem; font-weight:400;
    }
    .rec-step-label {
      font-family:'Josefin Sans',sans-serif;
      font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
      color:var(--blood); font-weight:400; margin-bottom:.35rem;
    }
    .rec-step-text { font-size:.9rem; line-height:1.75; color:var(--ink); }

    /* RECRUITING BENEFITS */
    .rec-benefits { list-style:none; margin:0; padding:0; }
    .rec-benefits li {
      display:flex; gap:1rem; align-items:flex-start;
      padding:1.1rem 0;
      border-bottom:1px solid rgba(177,18,38,.12);
      font-size:.9rem; line-height:1.75; color:var(--ink);
    }
    .rec-benefits li:first-child { border-top:1px solid rgba(177,18,38,.12); }
    .rec-benefits li::before {
      content:'—'; color:var(--blood); flex-shrink:0;
      font-family:'Josefin Sans',sans-serif; font-weight:300; margin-top:.08rem;
    }

    /* SHARED CTA LINK */
    .rec-cta {
      display:inline-block; margin-top:2rem;
      padding:.9rem 2.2rem;
      font-family:'Josefin Sans',sans-serif;
      font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--blood); text-decoration:none;
      border:1.5px solid var(--blood);
      background:rgba(177,18,38,.08);
      position:relative; overflow:hidden;
      transition:color .3s, transform .25s, box-shadow .3s;
    }
    .rec-cta::before {
      content:''; position:absolute; inset:0; background:var(--blood);
      transform:scaleX(0); transform-origin:left; transition:transform .3s;
    }
    .rec-cta span { position:relative; z-index:1; }
    .rec-cta:hover { color:var(--mist); transform:scale(1.03); box-shadow:0 6px 28px rgba(177,18,38,.3); }
    .rec-cta:hover::before { transform:scaleX(1); }

    @media(max-width:900px) {
      .svc-module { padding:5rem 1.5rem; }
      .svc-inner,
      .svc-inner--rev { grid-template-columns:1fr; gap:3rem; }
      .svc-inner--rev .svc-left  { order:1; }
      .svc-inner--rev .svc-right { order:2; }
      .svc-num-bg { font-size:6rem; top:-1rem; }
    }
    @media(max-width:600px) {
      .svc-item-tags { grid-template-columns:1fr; }
      .tag { padding:.9rem 1rem; max-height:3.6rem; }
    }
    /* LEGAL PAGES (Impressum / Datenschutz) */
    .legal-section {
      min-height:calc(100vh - 200px);
      background:var(--snow); padding:8rem 4rem 6rem;
    }
    .legal-inner {
      max-width:780px; margin:0 auto;
    }
    .legal-kicker {
      font-family:"Josefin Sans",sans-serif; font-size:.6rem;
      letter-spacing:.32em; text-transform:uppercase;
      color:var(--blood); margin-bottom:1rem;
    }
    .legal-title {
      font-family:"Josefin Sans",sans-serif;
      font-size:clamp(2.4rem,4vw,4rem); font-weight:300; line-height:1;
      color:var(--ink); margin-bottom:3.5rem;
      border-bottom:2px solid var(--blood); padding-bottom:1.5rem;
    }
    .legal-content h2 {
      font-family:"Josefin Sans",sans-serif;
      font-size:1rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase;
      color:var(--ink); margin:2.5rem 0 .75rem;
    }
    .legal-content h3 {
      font-family:"Josefin Sans",sans-serif;
      font-size:.85rem; font-weight:400; color:var(--blood);
      margin:1.5rem 0 .5rem; letter-spacing:.05em; text-transform:uppercase;
    }
    .legal-content p {
      font-size:.95rem; line-height:1.85; color:var(--plum); margin-bottom:.8rem;
    }
    .legal-content a { color:var(--blood); text-decoration:none; }
    .legal-content a:hover { text-decoration:underline; }
    .legal-content ul {
      padding-left:1.4rem; margin-bottom:.8rem;
    }
    .legal-content ul li {
      font-size:.95rem; line-height:1.8; color:var(--plum); margin-bottom:.3rem;
    }
    .legal-updated {
      font-family:"Josefin Sans",sans-serif; font-size:.6rem;
      letter-spacing:.18em; text-transform:uppercase;
      color:var(--steel); opacity:.5; margin-bottom:2.5rem;
    }
    @media(max-width:768px) {
      .legal-section { padding:6rem 1.5rem 4rem; }
    }

    /* COOKIE BANNER */
    .cookie-banner {
      position:fixed; bottom:0; left:0; right:0; z-index:99999;
      background:#111318; border-top:3px solid var(--blood);
      padding:1.2rem 3rem; box-sizing:border-box;
      display:flex; align-items:center; gap:2.5rem; flex-wrap:wrap;
      box-shadow:0 -6px 32px rgba(0,0,0,.45);
      animation:slideUpBanner .35s ease forwards;
    }
    @keyframes slideUpBanner {
      from { transform:translateY(100%); opacity:0; }
      to   { transform:translateY(0);   opacity:1; }
    }
    .cookie-banner[hidden] { display:none; }
    .cookie-banner-text {
      flex:1; min-width:240px;
    }
    .cookie-banner-text strong {
      font-family:'Josefin Sans',sans-serif;
      font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--snow); display:block; margin-bottom:.4rem;
    }
    .cookie-banner-text p {
      font-size:.82rem; line-height:1.6;
      color:rgba(200,220,232,.55); margin:0;
    }
    .cookie-banner-text a { color:var(--blood); text-decoration:none; }
    .cookie-banner-text a:hover { text-decoration:underline; }
    .cookie-banner-actions {
      display:flex; gap:.8rem; flex-shrink:0; flex-wrap:wrap;
    }
    .cookie-btn {
      font-family:'Josefin Sans',sans-serif;
      font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
      padding:.7rem 1.6rem; border:none; cursor:pointer;
      transition:opacity .2s, background .2s;
    }
    .cookie-btn--primary {
      background:var(--blood); color:#fff;
    }
    .cookie-btn--primary:hover { opacity:.85; }
    .cookie-btn--secondary {
      background:transparent; color:rgba(200,220,232,.55);
      border:1px solid rgba(200,220,232,.2);
    }
    .cookie-btn--secondary:hover { border-color:rgba(200,220,232,.5); color:var(--snow); }
    @media(max-width:600px) {
      .cookie-banner { padding:1.2rem 1.5rem; gap:1.2rem; }
      .cookie-banner-actions { width:100%; }
      .cookie-btn { flex:1; text-align:center; }
    }
