:root{
    --teal:#0BA6AB;
    --cyan:#2DD4D8;
    --indigo:#241168;
    --purple:#6A1E9C;
    --magenta:#E6007E;
    --pink:#FF2EA0;
    --ink:#0A0712;
    --ink-2:#130C22;
    --paper:#F4F1EC;
    --paper-2:#FBFAF7;
    --paper-dim:#D9D3C9;
    --ink-soft:#5C5566;
    --accent-deep:#C20068;
    --teal-deep:#0A6E72;
    --line-dark:rgba(10,7,18,0.12);

    --grad:linear-gradient(152deg, var(--teal) 0%, var(--indigo) 46%, var(--magenta) 100%);
    --grad-bright:linear-gradient(120deg, var(--cyan) 0%, var(--pink) 100%);

    --font-display:'Anton', Impact, sans-serif;
    --font-body:'Space Grotesk', system-ui, sans-serif;

    --maxw:1280px;
    --gutter:clamp(20px, 5vw, 80px);
  }

  *{margin:0;padding:0;box-sizing:border-box}

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

  body{
    font-family:var(--font-body);
    background:var(--paper);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    line-height:1.5;
  }

  ::selection{background:var(--pink);color:#fff}

  a{color:inherit;text-decoration:none}

  /* Accessibility helpers */
  .skip-link{
    position:absolute;left:-999px;top:0;z-index:1000;
    background:var(--paper);color:var(--ink);
    padding:14px 22px;font-weight:700;border-radius:0 0 12px 0;
  }
  .skip-link:focus{left:0}

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

  .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}

  /* ---------- Display type ---------- */
  .display{
    font-family:var(--font-display);
    font-weight:400;
    text-transform:uppercase;
    line-height:0.96;
    letter-spacing:0.01em;
  }
  .grad-text{
    background:var(--grad-bright);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
  }

  /* ---------- Grain overlay ---------- */
  .grain{
    position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0.05;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    mix-blend-mode:overlay;
  }

  /* ============ NAV ============ */
  header.nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px var(--gutter);
    color:var(--paper);
    transition:background .35s ease, padding .35s ease, border-color .35s ease;
    border-bottom:1px solid transparent;
  }
  header.nav.scrolled{
    background:rgba(10,7,18,0.82);
    backdrop-filter:blur(14px);
    padding:12px var(--gutter);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .brand{display:flex;align-items:center;gap:12px}
  .nav .brand::before{content:"";display:block;height:42px;width:38px;flex:0 0 auto;background:url(../img/v-logo.png) center/contain no-repeat;filter:drop-shadow(0 0 14px rgba(45,212,216,0.4))}
  .nav .brand .word{font-family:var(--font-display);font-size:24px;letter-spacing:0.04em;line-height:1;margin:0}
  .nav .brand .word a{color:inherit;text-decoration:none}
  .nav .brand .word-sub{display:block;font-family:var(--font-body);font-size:9px;letter-spacing:0.42em;font-weight:600;color:var(--cyan);margin:2px 0 0}

  .links{display:flex;align-items:center;gap:34px}
  .links .nav-item{margin:0}
  .links .nav-item a{font-size:14px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;position:relative;padding:4px 0;white-space:nowrap;color:inherit;text-decoration:none}
  .links .nav-item a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--grad-bright);transition:right .3s ease}
  .links .nav-item a:hover::after,.links .nav-item a:focus-visible::after{right:0}
  .loc-pill{
    display:inline-flex;align-items:center;gap:8px;margin:0;
    padding:9px 4px;font-size:13px;font-weight:600;letter-spacing:0.03em;
    white-space:nowrap;color:var(--cyan);
    transition:color .3s;
  }
  .loc-pill a{color:inherit;text-decoration:none}
  .loc-pill:hover,.loc-pill:hover a{color:#fff}
  .loc-pill::before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--cyan);box-shadow:0 0 0 0 rgba(45,212,216,.6);animation:pulse 2.4s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(45,212,216,.5)}70%{box-shadow:0 0 0 9px rgba(45,212,216,0)}100%{box-shadow:0 0 0 0 rgba(45,212,216,0)}}

  .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
  .burger span{width:26px;height:2.5px;background:var(--paper);transition:.3s}

  /* ============ HERO ============ */
  .hero{
    position:relative;min-height:100svh;display:flex;align-items:center;
    padding:clamp(90px,12vh,120px) 0 clamp(48px,7vh,60px);overflow:hidden;
    isolation:isolate;
    background:var(--ink);color:var(--paper);
  }
  .hero::before{ /* gradient glow */
    content:"";position:absolute;z-index:-2;inset:-20% -10% auto auto;
    width:80vw;height:80vw;max-width:1100px;max-height:1100px;
    background:radial-gradient(circle at 60% 40%, rgba(11,166,171,0.55), transparent 60%),
               radial-gradient(circle at 70% 70%, rgba(230,0,126,0.5), transparent 55%);
    filter:blur(40px);right:-10vw;top:-20vh;
  }
  .hero-bolt{
    position:absolute;z-index:-1;right:clamp(-120px,-6vw,0px);top:50%;
    height:118%;width:auto;transform:translateY(-50%) rotate(2deg);
    filter:drop-shadow(0 0 60px rgba(45,212,216,0.45));
    animation:floatBolt 7s ease-in-out infinite;
    pointer-events:none;
  }
  @keyframes floatBolt{0%,100%{transform:translateY(-50%) rotate(2deg)}50%{transform:translateY(-53%) rotate(0.5deg)}}

  .hero-inner{position:relative;max-width:880px}
  .eyebrow{
    display:inline-flex;align-items:center;gap:12px;
    font-size:14px;font-weight:600;letter-spacing:0.32em;text-transform:uppercase;
    color:var(--cyan);margin-bottom:clamp(52px,7.5vh,90px);
  }
  .eyebrow::before{content:"";width:46px;height:2px;background:var(--grad-bright)}

  .hero h1{
    font-size:clamp(50px, 10.5vw, 156px);
    line-height:0.88;
    margin-bottom:clamp(20px,3.4vh,38px);
    text-align:left;
  }
  .hero h1 .ln{display:block}
  .hero h1 .strike{
    color:rgba(255,255,255,0.4);white-space:nowrap;
    font-size:0.5em;letter-spacing:0.01em;
    display:block;line-height:1;margin-top:-0.1em;
  }

  .hero p.lede{
    font-size:clamp(16px,2vw,21px);max-width:520px;color:#D8D2E4;
    margin-bottom:clamp(22px,3.4vh,38px);line-height:1.2;
  }
  .cta-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--font-body);font-weight:700;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;
    padding:17px 32px;border-radius:100px;cursor:pointer;border:2px solid transparent;
    transition:transform .2s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
  }
  .btn-primary{background:var(--grad-bright);color:#0a0712;box-shadow:0 10px 30px rgba(10,7,18,0.45)}
  .btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(10,7,18,0.55)}
  .btn-ghost{border-color:rgba(255,255,255,0.3);color:var(--paper)}
  .btn-ghost:hover{border-color:var(--cyan);background:rgba(45,212,216,0.08);transform:translateY(-3px)}
  .btn .arr{transition:transform .25s}
  .btn:hover .arr{transform:translateX(4px)}

  .scroll-hint{
    position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
    font-size:11px;letter-spacing:0.34em;text-transform:uppercase;color:#9a93ad;
    display:flex;flex-direction:column;align-items:center;gap:10px;
  }
  .scroll-hint .line{width:1px;height:46px;background:linear-gradient(var(--cyan),transparent);animation:scrollLine 2s infinite}
  @keyframes scrollLine{0%{opacity:0;transform:scaleY(0);transform-origin:top}50%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:scaleY(1);transform-origin:bottom}}

  /* ============ MARQUEE ============ */
  .marquee{
    background:var(--grad);padding:18px 0;overflow:hidden;white-space:nowrap;
    border-block:2px solid rgba(255,255,255,0.12);position:relative;z-index:2;
  }
  .marquee-track{display:inline-flex;align-items:center;gap:34px;animation:scrollX 26s linear infinite;will-change:transform}
  .marquee span{font-family:var(--font-display);font-size:30px;letter-spacing:0.04em;color:#fff;text-transform:uppercase}
  .marquee img{height:24px;opacity:.95}
  @keyframes scrollX{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion: reduce){
    .marquee-track{animation:none}
    .hero-bolt{animation:none}
    .loc-pill::before{animation:none}
    .scroll-hint .line{animation:none}
  }

  /* ============ MANIFESTO ============ */
  .manifesto{padding:clamp(60px,8vh,90px) 0;position:relative;z-index:2;min-height:100svh;display:flex;align-items:center}
  .manifesto .wrap{width:100%}
  .section-tag{
    font-size:13px;font-weight:600;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent-deep);
    display:flex;align-items:center;gap:14px;margin-bottom:clamp(16px,2vh,24px);
  }
  .section-tag::before{content:"";width:34px;height:2px;background:var(--grad-bright)}

  .manifesto h2{font-size:clamp(40px,8vw,58px);margin-bottom:clamp(20px,3vh,34px);max-width:none;line-height:1.06}
  .manifesto h2 em{font-style:normal}

  .card li::before,.card.is li::before{width:18px;height:18px}
  .compare{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .compare .card{
    border-radius:18px;padding:clamp(26px,3vw,40px);position:relative;overflow:hidden;
    border:1px solid rgba(255,255,255,0.1);
  }
  .card.is{background:var(--grad);color:var(--paper);}
  .card.is::after{
    content:"";position:absolute;inset:0;background:rgba(10,7,18,0.34);z-index:0;
  }
  .card.is > *{position:relative;z-index:1}
  .card.not{background:var(--paper-2);border:1px solid var(--line-dark)}
  .card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:clamp(18px,2.4vh,26px)}
  .card .ic{
    font-family:var(--font-display);font-size:21px;width:52px;height:52px;border-radius:50%;
    display:grid;place-items:center;flex:0 0 auto;
  }
  .card.is .ic{background:#fff;color:var(--magenta)}
  .card.not .ic{background:rgba(10,7,18,0.05);color:#9a93ad;border:1.5px solid var(--line-dark)}
  .card h3{font-family:var(--font-display);font-size:clamp(26px,2.8vw,38px);letter-spacing:0.02em;text-transform:uppercase;line-height:1;white-space:nowrap}
  .card.not h3{color:#9a93ad}
  .card ul{list-style:none;display:flex;flex-direction:column;gap:clamp(12px,1.9vh,18px)}
  .card li{display:flex;gap:13px;font-size:clamp(15px,1.5vw,17px);line-height:1.3}
  .card li > div{display:flex;flex-direction:column;gap:3px}
  .card li b{font-weight:700}
  .card li .d{opacity:.82;font-size:14.5px;line-height:1.3}
  .card.not li .d{opacity:1;color:#6b6577}
  .card.is li::before{content:"";flex:0 0 auto;width:20px;height:20px;margin-top:2px;border-radius:50%;background:#fff;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat;}
  .card.not li{color:#5f5972}
  .card.not li b{color:#3b3650}
  .card.not li::before{content:"";flex:0 0 auto;width:20px;height:20px;margin-top:2px;border-radius:50%;background:#6b6480;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M18.3 5.7L12 12l6.3 6.3-1.4 1.4L10.6 13.4 4.3 19.7 2.9 18.3 9.2 12 2.9 5.7l1.4-1.4L10.6 10.6l6.3-6.3z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M18.3 5.7L12 12l6.3 6.3-1.4 1.4L10.6 13.4 4.3 19.7 2.9 18.3 9.2 12 2.9 5.7l1.4-1.4L10.6 10.6l6.3-6.3z'/%3E%3C/svg%3E") center/contain no-repeat;}

  /* ============ PRINCIPLES ============ */
  .principles{padding:clamp(56px,7vh,84px) 0;color:var(--paper);position:relative;z-index:2;min-height:100svh;display:flex;align-items:center;overflow:hidden;
    background:linear-gradient(157deg,#0a3a4d 0%, #241168 52%, #4a1560 100%)}
  .principles::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:radial-gradient(60% 80% at 82% 18%, rgba(230,0,126,0.32), transparent 60%),
              radial-gradient(50% 70% at 10% 90%, rgba(45,212,216,0.28), transparent 60%)}
  .principles .wrap{width:100%;position:relative;z-index:1}
  .principles .head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:clamp(30px,4vh,52px)}
  .principles .section-tag{color:var(--cyan)}
  .principles h2{font-size:clamp(40px,8vw,58px);max-width:16ch;line-height:1.05}
  .principles .head p{max-width:380px;color:#cfc9e0;font-size:17px;line-height:1.4}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .pcard{padding:clamp(26px,2.6vw,34px) clamp(24px,2.4vw,30px);border-radius:18px;
    background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.16);backdrop-filter:blur(8px);
    transition:transform .35s ease, border-color .35s ease, background .35s ease}
  .pcard:hover{transform:translateY(-6px);border-color:rgba(45,212,216,0.6);background:rgba(255,255,255,0.11)}
  .pcard .num{font-family:var(--font-display);font-size:46px;line-height:1;margin-bottom:16px}
  .pcard h3{font-size:21px;font-weight:700;margin-bottom:10px;letter-spacing:0.01em}
  .pcard p{color:#d7d2e6;font-size:15.5px;line-height:1.4}

  /* ============ GALLERY ============ */
  .gallery{padding:clamp(56px,7vh,84px) 0;background:var(--paper-2);position:relative;z-index:2;border-block:1px solid var(--line-dark);min-height:100svh;display:flex;align-items:center}
  .gallery .wrap{width:100%}
  .gallery h2{font-size:clamp(40px,8vw,58px);margin:14px 0 clamp(28px,4vh,42px);max-width:16ch;line-height:1.05}
  .gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(0,1fr);gap:16px;height:min(52vh,440px)}
  .gal-grid .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;
    border-radius:16px;border:2px dashed rgba(10,7,18,0.18);background:
      repeating-linear-gradient(135deg, rgba(10,7,18,0.03) 0 14px, rgba(10,7,18,0.06) 14px 28px);
    color:var(--ink-soft);font-size:13px;letter-spacing:0.04em;padding:14px}
  .g-a{grid-column:1 / span 2;grid-row:1 / span 2}
  .g-b{grid-column:3;grid-row:1}
  .g-c{grid-column:4;grid-row:1}
  .g-d{grid-column:3 / span 2;grid-row:2}
  .gal-note{margin-top:26px;color:var(--ink-soft);font-size:15px;display:flex;align-items:center;gap:10px}
  .gal-note::before{content:"↗";color:var(--accent-deep);font-weight:700}

  /* ============ VISIT ============ */
  .visit{padding:clamp(56px,7vh,84px) 0;position:relative;z-index:2;min-height:100svh;display:flex;align-items:center}
  .visit .wrap{width:100%}
  .visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,64px);align-items:center}
  .visit h2{font-size:clamp(40px,8vw,58px);margin-bottom:clamp(16px,2.4vh,26px);line-height:1.05}
  .visit .lede{font-size:17px;color:var(--ink-soft);max-width:46ch;margin-bottom:clamp(20px,3vh,32px);line-height:1.38}
  .info-list{display:flex;flex-direction:column;gap:0;margin-bottom:clamp(22px,3vh,34px)}
  .info-row{display:flex;gap:20px;padding:clamp(12px,1.8vh,18px) 0;border-bottom:1px solid var(--line-dark)}
  .info-row .k{flex:0 0 130px;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;color:var(--teal-deep);font-weight:600;padding-top:3px}
  .info-row .v{font-size:clamp(17px,2vw,21px);font-weight:500}
  .info-row .v small{display:block;color:var(--ink-soft);font-size:14px;font-weight:400;margin-top:4px}

  /* designed map panel */
  .map{
    position:relative;border-radius:22px;overflow:hidden;min-height:380px;height:100%;max-height:62vh;
    background:
      linear-gradient(rgba(10,7,18,0.25),rgba(10,7,18,0.55)),
      var(--grad);
    border:1px solid rgba(255,255,255,0.12);
  }
  .map .lines{position:absolute;inset:0;opacity:0.5;
    background-image:
      linear-gradient(rgba(255,255,255,0.13) 1px,transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.13) 1px,transparent 1px);
    background-size:46px 46px;
    -webkit-mask:radial-gradient(circle at 50% 46%, #000 35%, transparent 78%);
    mask:radial-gradient(circle at 50% 46%, #000 35%, transparent 78%);
  }
  .map .road{position:absolute;background:rgba(255,255,255,0.16)}
  .map .road.r1{top:0;bottom:0;left:38%;width:8px;transform:rotate(8deg)}
  .map .road.r2{left:0;right:0;top:52%;height:8px;transform:rotate(-3deg)}
  .map .pin{
    position:absolute;top:46%;left:50%;transform:translate(-50%,-100%);
    display:flex;flex-direction:column;align-items:center;gap:0;z-index:3;
  }
  .map .pin .badge{
    background:#fff;color:var(--ink);font-family:var(--font-display);font-size:20px;
    width:56px;height:56px;border-radius:50% 50% 50% 8px;transform:rotate(45deg);
    display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.45);
  }
  .map .pin .badge span{transform:rotate(-45deg);display:block}
  .map .pin .ring{width:30px;height:9px;border-radius:50%;background:rgba(0,0,0,.35);margin-top:7px;filter:blur(2px)}
  .map .label{
    position:absolute;left:22px;bottom:22px;right:22px;z-index:3;
    background:rgba(10,7,18,0.7);backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,0.16);border-radius:14px;padding:16px 18px;
    display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  }
  .map .label .addr b{display:block;font-size:16px}
  .map .label .addr small{color:#bdb6cc;font-size:13px}
  .map .label a{font-size:13px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
    background:#fff;color:var(--ink);padding:11px 18px;border-radius:100px;white-space:nowrap;transition:transform .2s}
  .map .label a:hover{transform:translateY(-2px)}

  /* ============ FOOTER / NEWSLETTER ============ */
  .closer{padding:clamp(80px,11vh,150px) 0 0;position:relative;z-index:2}
  .news{
    background:var(--grad);border-radius:26px;padding:clamp(40px,6vw,80px);
    text-align:center;position:relative;overflow:hidden;isolation:isolate;
  }
  .news::after{content:"";position:absolute;inset:0;background:rgba(10,7,18,0.28);z-index:-1}
  .news h2{font-size:clamp(40px,8vw,58px);margin-bottom:18px;color:#fff;line-height:1.05}
  .news p{color:#fff;opacity:.92;max-width:46ch;margin:0 auto 36px;font-size:18px;line-height:1.4}
  .news .btn{background:#0a0712;color:#fff;border:0}
  .news .btn:hover{transform:translateY(-3px);box-shadow:0 12px 34px rgba(0,0,0,0.3)}
  .news-mail{display:block;margin-top:22px;color:#fff;font-size:15px;letter-spacing:0.03em;opacity:.9}

  footer.foot{padding:70px 0 50px}
  .foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:46px;border-bottom:1px solid var(--line-dark)}
  .foot .brand img{height:54px}
  .foot .brand .word small{color:var(--accent-deep)}
  .foot-col h4{font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:18px}
  .foot-col a,.foot-col p{display:block;color:var(--ink-soft);font-size:15px;margin-bottom:10px;transition:color .2s}
  .foot-col a:hover{color:var(--ink)}
  .foot-cols{display:flex;gap:clamp(34px,6vw,90px);flex-wrap:wrap}
  .foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;color:var(--ink-soft);font-size:13px}

  /* ============ REVEAL ANIM ============ */
  .reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal.d1{transition-delay:.08s}
  .reveal.d2{transition-delay:.16s}
  .reveal.d3{transition-delay:.24s}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none}
  }

  /* Hero entrance (only when motion is welcome) */
  @keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  @media (prefers-reduced-motion: no-preference){
    .hero .eyebrow{animation:heroIn .8s .05s both cubic-bezier(.2,.7,.2,1)}
    .hero h1{animation:heroIn .9s .22s both cubic-bezier(.2,.7,.2,1)}
    .hero .lede{animation:heroIn .8s .52s both cubic-bezier(.2,.7,.2,1)}
    .hero .cta-row{animation:heroIn .8s .64s both cubic-bezier(.2,.7,.2,1)}
  }

  /* ============ RESPONSIVE ============ */
  @media (max-width:1024px){
    .manifesto,.principles,.gallery,.visit{min-height:0;display:block}
    .compare{grid-template-columns:1fr}
    .grid3{grid-template-columns:1fr}
    .visit-grid{grid-template-columns:1fr}
    .map{min-height:380px}
  }
  @media (max-width:760px){
    .links{
      position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:110;
      background:var(--ink-2);
      flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:34px;
      transform:translateX(100%);transition:transform .4s ease;padding:40px;
    }
    .links.open{transform:none}
    .links .nav-item a{font-size:24px}
    .links .nav-item a::after{left:50%;right:50%}
    .links .nav-item a:hover::after,.links .nav-item a:focus-visible::after{left:0;right:0}
    .burger{display:flex;z-index:120}
    .burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
    .burger.open span:nth-child(2){opacity:0}
    .burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
    .hero-bolt{opacity:0.22;height:90%;right:-30vw}
    .loc-pill{display:none}
    .info-row{flex-direction:column;gap:4px}
    .info-row .k{flex:none}
    .gal-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;height:auto}
    .g-a{grid-column:1 / span 2;grid-row:1 / span 2}
    .g-b{grid-column:1;grid-row:3}
    .g-c{grid-column:2;grid-row:3}
    .g-d{grid-column:1 / span 2;grid-row:4}
  }

/* ============================================================
   TEMPLATE STYLES (404 · Blog-Archiv · Single)
   ============================================================ */

/* ---- Sub-page hero (shared by blog + single + 404) ---- */
.page-hero{
  position:relative;background:var(--ink);color:var(--paper);
  padding:calc(clamp(90px,12vh,120px) + 30px) var(--gutter) clamp(48px,7vh,70px);
  overflow:hidden;isolation:isolate;
}
.page-hero::before{content:"";position:absolute;z-index:-2;inset:-30% -10% auto auto;
  width:70vw;height:70vw;max-width:900px;max-height:900px;right:-12vw;top:-26vh;filter:blur(40px);
  background:radial-gradient(circle at 60% 40%, rgba(11,166,171,0.45), transparent 60%),
             radial-gradient(circle at 70% 70%, rgba(230,0,126,0.42), transparent 55%);}
.page-hero .hero-bolt{position:absolute;z-index:-1;right:clamp(-90px,-5vw,0);top:50%;height:150%;width:auto;
  transform:translateY(-50%) rotate(3deg);filter:drop-shadow(0 0 50px rgba(45,212,216,0.4));pointer-events:none;opacity:.9;}
.page-hero .wrap{position:relative;max-width:var(--maxw);margin:0 auto}
.page-hero h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(32px,5vw,76px);line-height:1;margin-top:14px;max-width:none;overflow-wrap:break-word;hyphens:auto}
.crumbs{display:flex;gap:10px;align-items:center;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;color:#9a93ad}
.crumbs a{color:var(--cyan)}
.crumbs a:hover{text-decoration:underline}

/* ---- 404 ---- */
.err{min-height:100svh;display:flex;align-items:center;background:var(--ink);color:var(--paper);
  position:relative;overflow:hidden;isolation:isolate;padding:120px var(--gutter) 60px;}
.err::before{content:"";position:absolute;z-index:-2;inset:-20% -10% auto auto;width:80vw;height:80vw;max-width:1000px;max-height:1000px;right:-10vw;top:-22vh;filter:blur(40px);
  background:radial-gradient(circle at 60% 40%, rgba(11,166,171,0.5), transparent 60%),radial-gradient(circle at 70% 70%, rgba(230,0,126,0.46), transparent 55%);}
.err .hero-bolt{position:absolute;z-index:-1;right:clamp(-120px,-6vw,0);top:50%;height:118%;width:auto;transform:translateY(-50%) rotate(2deg);filter:drop-shadow(0 0 60px rgba(45,212,216,0.45));pointer-events:none;animation:floatBolt 7s ease-in-out infinite;}
.err-inner{position:relative;max-width:720px}
.err-num{font-family:var(--font-display);font-size:clamp(110px,26vw,320px);line-height:0.8;letter-spacing:0.01em;
  background:var(--grad-bright);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;margin-bottom:18px}
.err h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(30px,5vw,56px);line-height:1;margin-bottom:18px}
.err p{font-size:clamp(16px,2vw,20px);color:#D8D2E4;max-width:46ch;margin-bottom:34px;line-height:1.35}

/* ---- Blog archive ---- */
.journal{padding:clamp(60px,9vh,110px) 0;background:var(--paper);position:relative;z-index:2}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,36px)}
.post-card{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line-dark);border-radius:18px;overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}
.post-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(10,7,18,0.1);border-color:var(--teal-deep)}
.post-card a.cover{display:block;position:relative;aspect-ratio:3/2;
  background:repeating-linear-gradient(135deg, rgba(10,7,18,0.04) 0 14px, rgba(10,7,18,0.07) 14px 28px);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:13px;letter-spacing:0.04em}
.post-card .body{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:12px;flex:1}
.chip{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  color:#fff;background:var(--grad-bright);padding:6px 12px;border-radius:100px}
.chip.alt{background:none;color:var(--accent-deep);border:1.5px solid var(--accent-deep)}
.post-card h2{font-family:var(--font-body);font-size:clamp(20px,2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-0.01em}
.post-card h2 a:hover{color:var(--accent-deep)}
.post-card p{color:var(--ink-soft);font-size:15px;line-height:1.45}
.post-meta{margin-top:auto;display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:13px;letter-spacing:0.02em}
.post-meta .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}
.read{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;color:var(--ink)}
.read .arr{transition:transform .25s}.read:hover .arr{transform:translateX(4px)}
/* featured first post spanning */
.post-card.feature{grid-column:1 / span 2;grid-row:span 1;flex-direction:row}
.post-card.feature a.cover{aspect-ratio:auto;flex:1 1 50%;min-height:300px}
.post-card.feature .body{flex:1 1 50%;justify-content:center}
.post-card.feature h2{font-size:clamp(24px,2.6vw,34px)}

.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:clamp(40px,6vh,64px)}
.pagination a,.pagination span{min-width:46px;height:46px;display:grid;place-items:center;border-radius:12px;
  font-weight:600;font-size:15px;border:1px solid var(--line-dark);color:var(--ink);transition:.25s}
.pagination a:hover{border-color:var(--teal-deep);background:var(--paper-2)}
.pagination .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pagination .nav-link{padding:0 18px}

/* ---- Single article / page ---- */
.article{padding:clamp(48px,7vh,80px) var(--gutter) clamp(60px,9vh,110px);background:var(--paper);position:relative;z-index:2}
.article .prose{max-width:760px;margin:0 auto}
.article .feat{max-width:1000px;margin:0 auto clamp(32px,5vh,56px);aspect-ratio:16/8;border-radius:20px;overflow:hidden;
  background:repeating-linear-gradient(135deg, rgba(10,7,18,0.04) 0 16px, rgba(10,7,18,0.07) 16px 32px);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:14px;letter-spacing:0.04em;border:1px solid var(--line-dark)}
.prose p{font-size:clamp(17px,1.9vw,19px);line-height:1.7;color:#2a2533;margin-bottom:24px}
.prose h2{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(26px,3.4vw,40px);line-height:1.05;margin:clamp(34px,5vh,52px) 0 16px;letter-spacing:0.01em}
.prose h3{font-size:clamp(20px,2.2vw,25px);font-weight:700;margin:30px 0 12px}
.prose ul,.prose ol{margin:0 0 24px 1.1em;display:flex;flex-direction:column;gap:10px}
.prose li{font-size:clamp(16px,1.8vw,18px);line-height:1.6;color:#2a2533}
.prose a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.prose blockquote{margin:clamp(28px,4vh,40px) 0;padding:8px 0 8px 28px;border-left:4px solid;
  border-image:var(--grad-bright) 1;font-family:var(--font-display);text-transform:uppercase;
  font-size:clamp(22px,3vw,32px);line-height:1.1;letter-spacing:0.01em}
.prose img,.prose .inline-img{display:block;width:100%;border-radius:14px;margin:clamp(28px,4vh,40px) 0;
  aspect-ratio:16/9;background:repeating-linear-gradient(135deg, rgba(10,7,18,0.04) 0 14px, rgba(10,7,18,0.07) 14px 28px);
  align-items:center;justify-content:center;display:flex;color:var(--ink-soft);font-size:13px;border:1px solid var(--line-dark)}
.prose figcaption{text-align:center;color:var(--ink-soft);font-size:13px;margin-top:-26px;margin-bottom:30px}
.article-meta{max-width:760px;margin:0 auto 0;display:flex;align-items:center;gap:12px;color:var(--ink-soft);font-size:14px;flex-wrap:wrap}
.article-tags{max-width:760px;margin:clamp(36px,5vh,52px) auto 0;display:flex;gap:10px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line-dark)}

@media (max-width:1024px){
  .post-grid{grid-template-columns:1fr 1fr}
  .post-card.feature{grid-column:1 / span 2;flex-direction:column}
  .post-card.feature a.cover{min-height:240px}
}
@media (max-width:680px){
  .post-grid{grid-template-columns:1fr}
  .post-card.feature{grid-column:auto}
}

/* ============================================================
   WORDPRESS BLOCK BRIDGE
   Maps native Gutenberg block markup (Query Loop, Post blocks,
   group wrappers) onto the canonical design above. Purely additive —
   it does not alter the static reference styles.
   ============================================================ */

/* Group wrappers used by templates must stay transparent/full-bleed */
.wp-block-group.page-hero,
.wp-block-group.journal,
.wp-block-group.article{display:block}
main.wp-block-group{display:block}

/* ---- Blog archive: Query Loop -> .post-card grid ---- */
ul.wp-block-post-template.post-grid{list-style:none;margin:0;padding:0}
.post-grid > li{
  display:flex;flex-direction:column;background:var(--paper-2);
  border:1px solid var(--line-dark);border-radius:18px;overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.post-grid > li:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(10,7,18,0.1);border-color:var(--teal-deep)}

/* cover image */
.post-grid > li .wp-block-post-featured-image.cover{margin:0;display:block;aspect-ratio:3/2;overflow:hidden}
.post-grid > li .wp-block-post-featured-image.cover a{display:block;width:100%;height:100%}
.post-grid > li .wp-block-post-featured-image.cover img{width:100%;height:100%;object-fit:cover;display:block}

/* body */
.post-grid > li .body{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:12px;flex:1}

/* chip (category terms) */
.post-grid > li .wp-block-post-terms.chip{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#fff;background:var(--grad-bright);padding:6px 12px;border-radius:100px;line-height:1}
.post-grid > li .wp-block-post-terms.chip a{color:#fff;text-decoration:none}

/* title */
.post-grid > li .wp-block-post-title{font-family:var(--font-body);text-transform:none;font-size:clamp(20px,2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-0.01em;margin:0}
.post-grid > li .wp-block-post-title a{color:inherit;text-decoration:none}
.post-grid > li .wp-block-post-title a:hover{color:var(--accent-deep)}

/* excerpt */
.post-grid > li .wp-block-post-excerpt{margin:0}
.post-grid > li .wp-block-post-excerpt p,
.post-grid > li .wp-block-post-excerpt__excerpt{color:var(--ink-soft);font-size:15px;line-height:1.45;margin:0}
.post-grid > li .wp-block-post-excerpt__more-text{display:none}

/* meta */
.post-grid > li .post-meta{margin-top:auto;display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:13px;letter-spacing:0.02em}
.post-grid > li .post-meta .wp-block-post-date,
.post-grid > li .post-meta time{margin:0;font-size:13px;color:var(--ink-soft)}
.post-grid > li .post-meta .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}

/* featured (first) card spanning two columns, horizontal */
.post-grid > li:first-child{grid-column:1 / span 2;flex-direction:row}
.post-grid > li:first-child .wp-block-post-featured-image.cover{flex:1 1 50%;min-height:300px;aspect-ratio:auto}
.post-grid > li:first-child .body{flex:1 1 50%;justify-content:center}
.post-grid > li:first-child .wp-block-post-title{font-size:clamp(24px,2.6vw,34px)}

/* pagination block -> .pagination pills */
.pagination.wp-block-query-pagination{gap:8px;flex-wrap:wrap}
.pagination .wp-block-query-pagination-previous,
.pagination .wp-block-query-pagination-next{padding:0 18px;height:46px;display:grid;place-items:center;border:1px solid var(--line-dark);border-radius:12px;color:var(--ink);font-weight:600;font-size:15px}
.pagination .wp-block-query-pagination-previous:hover,
.pagination .wp-block-query-pagination-next:hover{border-color:var(--teal-deep);background:var(--paper-2)}
.pagination .wp-block-query-pagination-numbers .page-numbers{min-width:46px;height:46px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line-dark);color:var(--ink);font-weight:600;font-size:15px}
.pagination .wp-block-query-pagination-numbers .page-numbers:hover{border-color:var(--teal-deep);background:var(--paper-2)}
.pagination .wp-block-query-pagination-numbers .page-numbers.current{background:var(--ink);color:var(--paper);border-color:var(--ink)}

@media (max-width:1024px){
  .post-grid{grid-template-columns:1fr 1fr}
  .post-grid > li:first-child{grid-column:1 / span 2;flex-direction:column}
  .post-grid > li:first-child .wp-block-post-featured-image.cover{min-height:240px}
}
@media (max-width:680px){
  .post-grid{grid-template-columns:1fr}
  .post-grid > li:first-child{grid-column:auto}
}

/* ---- Single: featured image as .feat, real prose images ---- */
.article figure.feat.wp-block-post-featured-image{display:block;padding:0}
.article figure.feat img{width:100%;height:100%;object-fit:cover;display:block}

/* article meta wrapper as flex row (group is flow by default) */
.article-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.article-meta .wp-block-post-date,
.article-meta time{margin:0;font-size:14px;color:var(--ink-soft)}
.article-meta .wp-block-post-terms.chip.alt{display:inline-flex;align-self:center}
.article-tags{display:flex;gap:10px;flex-wrap:wrap}
.article-tags .wp-block-post-terms.chip.alt a{color:var(--accent-deep);text-decoration:none}

/* real content images inside prose (override placeholder look) */
.prose figure.wp-block-image{margin:clamp(28px,4vh,40px) 0}
.prose figure.wp-block-image img{aspect-ratio:auto;background:none;border:0;width:100%;height:auto;border-radius:14px;display:block;margin:0}
.prose figure.wp-block-image figcaption{text-align:center;color:var(--ink-soft);font-size:13px;margin-top:10px}

/* prose h3 must stay body font / normal case (theme has no global heading style now, but guard anyway) */
.prose h3{font-family:var(--font-body);text-transform:none}

/* keep brand-coloured chip terms readable */
.chip a{color:inherit;text-decoration:none}

/* ---- Hero alignment: content shares the same centered .wrap as every other section ---- */
.hero .wrap{width:100%}

/* ---- Editable CTAs: core/button mapped onto the .btn design ---- */
.cta-row.wp-block-buttons,
.news-cta.wp-block-buttons{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:0}
.news-cta.wp-block-buttons{justify-content:center}
.wp-block-button.vv-btn{margin:0}
.wp-block-button.vv-btn .wp-block-button__link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-body);font-weight:700;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;
  padding:17px 32px;border-radius:100px;cursor:pointer;border:2px solid transparent;text-decoration:none;line-height:1;
  background:transparent;
  transition:transform .2s ease, box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.wp-block-button.vv-primary .wp-block-button__link{background:var(--grad-bright);color:#0a0712;box-shadow:0 10px 30px rgba(10,7,18,0.45)}
.wp-block-button.vv-primary .wp-block-button__link:hover,
.wp-block-button.vv-primary .wp-block-button__link:focus-visible{transform:translateY(-3px);box-shadow:0 16px 40px rgba(10,7,18,0.55)}
.wp-block-button.vv-ghost .wp-block-button__link{border-color:rgba(255,255,255,0.3);color:var(--paper)}
.wp-block-button.vv-ghost .wp-block-button__link:hover,
.wp-block-button.vv-ghost .wp-block-button__link:focus-visible{border-color:var(--cyan);background:rgba(45,212,216,0.08);transform:translateY(-3px)}
.wp-block-button.vv-dark .wp-block-button__link{background:#0a0712;color:#fff;border:0}
.wp-block-button.vv-dark .wp-block-button__link:hover,
.wp-block-button.vv-dark .wp-block-button__link:focus-visible{transform:translateY(-3px);box-shadow:0 12px 34px rgba(0,0,0,0.3)}
.wp-block-button.vv-arrow .wp-block-button__link::after{content:"→";display:inline-block;transition:transform .25s ease}
.wp-block-button.vv-arrow .wp-block-button__link:hover::after,
.wp-block-button.vv-arrow .wp-block-button__link:focus-visible::after{transform:translateX(4px)}
@media (prefers-reduced-motion: reduce){
  .wp-block-button.vv-btn .wp-block-button__link,
  .wp-block-button.vv-arrow .wp-block-button__link::after{transition:none}
}

/* ---- Editable comparison cards (.c-item groups replace the old <li> bullets) ---- */
.card .card-list{display:flex;flex-direction:column;gap:clamp(12px,1.9vh,18px)}
.card .c-item{display:flex;gap:13px;font-size:clamp(15px,1.5vw,17px);line-height:1.3}
.card .c-body{display:flex;flex-direction:column;gap:3px}
.card .c-title{font-weight:700;margin:0}
.card .c-item .d{opacity:.82;font-size:14.5px;line-height:1.3;margin:0}
.card.not .c-item{color:#5f5972}
.card.not .c-item .c-title{color:#3b3650}
.card.not .c-item .d{opacity:1;color:#6b6577}
.card .c-item::before{content:"";flex:0 0 auto;width:20px;height:20px;margin-top:2px;border-radius:50%}
.card.is .c-item::before{background:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat;}
.card.not .c-item::before{background:#6b6480;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M18.3 5.7L12 12l6.3 6.3-1.4 1.4L10.6 13.4 4.3 19.7 2.9 18.3 9.2 12 2.9 5.7l1.4-1.4L10.6 10.6l6.3-6.3z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M18.3 5.7L12 12l6.3 6.3-1.4 1.4L10.6 13.4 4.3 19.7 2.9 18.3 9.2 12 2.9 5.7l1.4-1.4L10.6 10.6l6.3-6.3z'/%3E%3C/svg%3E") center/contain no-repeat;}

/* ---- Editable info list (info-row groups + .v group with sub-line) ---- */
.info-row .k{margin:0}
.info-row .v .v-main{margin:0;font-size:inherit;font-weight:inherit}
.info-row .v .v-sub{display:block;color:var(--ink-soft);font-size:14px;font-weight:400;margin-top:4px}

/* ============================================================
   DECORATIVE IMAGES VIA CSS (relative URLs -> no PHP needed,
   works on any install). Replaces the old <img class="hero-bolt">
   and brand <img> with background images.
   ============================================================ */

/* Brand mark (logo) */
.brand-mark{display:block;height:40px;width:40px;flex:0 0 auto;
  background:url(../img/bolt.png) center/contain no-repeat;
  filter:drop-shadow(0 0 14px rgba(45,212,216,0.35))}
.foot .brand-mark{height:54px;width:54px}

/* Floating bolt — hero */
.hero::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  right:clamp(-120px,-6vw,0px);top:50%;height:118%;aspect-ratio:1390/1400;
  background:url(../img/bolt.png) center/contain no-repeat;
  transform:translateY(-50%) rotate(2deg);
  filter:drop-shadow(0 0 60px rgba(45,212,216,0.45));
  animation:floatBolt 7s ease-in-out infinite}

/* Floating bolt — sub-page hero */
.page-hero::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  right:clamp(-90px,-5vw,0);top:50%;height:150%;aspect-ratio:1390/1400;
  background:url(../img/bolt.png) center/contain no-repeat;
  transform:translateY(-50%) rotate(3deg);
  filter:drop-shadow(0 0 50px rgba(45,212,216,0.4));opacity:.9}

/* Floating bolt — 404 */
.err::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  right:clamp(-120px,-6vw,0);top:50%;height:118%;aspect-ratio:1390/1400;
  background:url(../img/bolt.png) center/contain no-repeat;
  transform:translateY(-50%) rotate(2deg);
  filter:drop-shadow(0 0 60px rgba(45,212,216,0.45));
  animation:floatBolt 7s ease-in-out infinite}

@media (prefers-reduced-motion: reduce){
  .hero::after,.err::after{animation:none}
}
@media (max-width:760px){
  .hero::after{opacity:0.22;height:90%;right:-30vw}
}

/* ---- Editable map label (core blocks over the decorative CSS art) ---- */
.map .label .addr{display:block}
.map .label .addr .addr-name{display:block;font-size:16px;color:#fff;margin:0}
.map .label .addr .addr-name strong{font-weight:700}
.map .label .addr .addr-sub{color:#bdb6cc;font-size:13px;margin:0}
.map .label .map-cta{margin:0}
.map .label .wp-block-button.vv-maplink{margin:0}
.map .label .wp-block-button.vv-maplink .wp-block-button__link{
  font-size:13px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  background:#fff;color:var(--ink);padding:11px 18px;border-radius:100px;white-space:nowrap;
  text-decoration:none;line-height:1;transition:transform .2s}
.map .label .wp-block-button.vv-maplink .wp-block-button__link:hover{transform:translateY(-2px)}

/* Gallery placeholder tiles as groups: keep the centered label look */
.gal-grid .ph p{margin:0}

/* ---- Visit: more breathing room above the "Route planen" button ---- */
.visit .cta-row{margin-top:clamp(18px,3vh,34px)}

/* ---- Footer as core blocks (logo via ::before, editable word + columns) ---- */
.foot .brand{display:flex;align-items:center;gap:12px}
.foot .brand::before{content:"";display:block;height:54px;width:54px;flex:0 0 auto;
  background:url(../img/bolt.png) center/contain no-repeat;filter:drop-shadow(0 0 14px rgba(45,212,216,0.35))}
.foot .brand .word{font-family:var(--font-display);font-size:24px;letter-spacing:0.04em;line-height:1;margin:0}
.foot .brand .word a{color:inherit;text-decoration:none}
.foot .brand .word-sub{font-family:var(--font-body);font-size:9px;letter-spacing:0.42em;font-weight:600;color:var(--accent-deep);margin:3px 0 0}
.foot-col .foot-link{margin:0 0 10px}
.foot-col .foot-link a{display:inline;margin:0;color:var(--ink-soft);transition:color .2s}
.foot-col .foot-link a:hover{color:var(--ink)}
.foot-bottom p{margin:0}


/* ---- V monogram watermark in the contact panel ---- */
.news::before{content:"";position:absolute;z-index:0;pointer-events:none;
  right:-2%;top:50%;transform:translateY(-50%);
  width:min(42%,340px);aspect-ratio:980/1095;
  background:url(../img/v-logo.png) center/contain no-repeat;opacity:0.13}
.news > *{position:relative;z-index:1}
@media (max-width:760px){ .news::before{width:min(60%,260px);opacity:0.1} }
