:root{
    --ink:#0A0F0B; --ink2:#111812; --paper:#F3F2EC; --white:#FFFFFF;
    --text:#0F1611; --muted:rgba(15,22,17,0.64); --faint:rgba(15,22,17,0.44);
    --line:rgba(15,22,17,0.12); --line-d:rgba(255,255,255,0.13);
    --on-dark:#F3F2EC; --on-dark-muted:rgba(243,242,236,0.68);
    --sage:#A3DB94; --sage-d:#2F6B34;
    --f-display:"Bricolage Grotesque",sans-serif; --f-serif:"Instrument Serif",serif; --f-body:"Manrope",sans-serif;
  }
  *{ box-sizing:border-box; }
  html,body{ margin:0; background:var(--paper); }
  body{ font-family:var(--f-body); color:var(--text); -webkit-font-smoothing:antialiased; }
  h1,h2,h3{ font-family:var(--f-display); font-weight:700; letter-spacing:-0.03em; margin:0; }
  em{ font-family:var(--f-serif); font-style:italic; font-weight:400; letter-spacing:-0.01em; font-size:1.1em; }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:clamp(1240px, 86vw, 1760px); margin:0 auto; padding:0 clamp(32px, 2.4vw, 56px); }
  .w{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:0.14em; margin-bottom:-0.14em; max-width:100%; }
  .split{ overflow-wrap:break-word; }
  .wi{ display:inline-block; will-change:transform; }
  .eyebrow{ font-size:12px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; }
  .btn{ position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; gap:14px; border-radius:999px; font-family:var(--f-display); font-weight:700; font-size:15px; letter-spacing:-0.01em; line-height:1; padding:7px 7px 7px 26px; will-change:transform; cursor:pointer; border:none; white-space:nowrap; transition:scale .6s cubic-bezier(.2,.7,.2,1), box-shadow .9s ease; -webkit-tap-highlight-color:transparent; }
  .hc-mag{ width:388px; max-width:100%; will-change:transform; }
  .btn:active{ scale:.955; transition-duration:.2s; }
  .btn:focus-visible{ outline:2px solid #fff; outline-offset:3px; box-shadow:0 0 0 5px rgba(76,139,70,0.6); }
  .bf{ display:none; position:absolute; z-index:-1; left:var(--x,50%); top:var(--y,50%); width:var(--d,700px); height:var(--d,700px); margin:calc(var(--d,700px) / -2) 0 0 calc(var(--d,700px) / -2); border-radius:50%; background:var(--fill,#0A0F0B); transform:scale(0); transition:transform 1.1s cubic-bezier(.22,.8,.2,1); pointer-events:none; }
  .bl{ position:relative; display:inline-block; overflow:hidden; height:1.3em; line-height:1.3em; }
  .bl > span{ display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
  .bl > span + span{ position:absolute; left:0; top:100%; }
  .bi{ position:relative; display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border-radius:50%; overflow:hidden; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
  .bi svg{ grid-area:1/1; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
  .bi svg + svg{ transform:translateX(-170%); }
  .btn:hover .bi svg:first-child{ transform:translateX(170%); }
  .btn:hover .bi svg + svg{ transform:none; }
  .btn-p{ background:var(--acc); color:#0A0F0B; box-shadow:0 14px 30px -14px var(--acc), 0 0 0 0 rgba(76,139,70,0); }
  .btn-p .bi{ background:#0A0F0B; color:#fff; }
  .btn-p.od{ --fill:#fff; }
  .btn-ghost-d{ --fill:#fff; background:transparent; color:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,0.45); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
  .btn-ghost-d .bi{ background:rgba(255,255,255,0.16); color:#fff; }
  .btn-sm{ font-size:14px; gap:12px; padding:5px 5px 5px 20px; }
  .btn-sm .bi{ width:32px; height:32px; }
  .nav-link{ font-size:14.5px; font-weight:600; color:var(--muted); transition:color .2s ease; position:relative; }
  .nav-link:hover{ color:var(--text); }
  .nav-link::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--text); transform:scaleX(0); transform-origin:0 50%; transition:transform .3s ease; }
  .nav-link:hover::after{ transform:scaleX(1); }
  .nav-link.active{ color:var(--text); }
  .nav-link.active::after{ transform:scaleX(1); }
  #progress{ position:absolute; left:0; bottom:-1px; height:2px; width:100%; background:#4C8B46; transform:scaleX(0); transform-origin:0 50%; }

  .h-big{ position:absolute; z-index:1; right:clamp(32px, 2.4vw, 56px); left:44%; top:clamp(104px, 17vh, 170px); text-align:right; pointer-events:none; }
  .h-big span{ position:absolute; right:0; top:0; display:block; white-space:nowrap; opacity:0; visibility:hidden; font-family:var(--f-display); font-weight:800; font-size:clamp(32px, 4.6vw, 80px); line-height:0.98; letter-spacing:-0.04em; color:#fff; text-shadow:0 6px 40px rgba(0,0,0,0.35); will-change:transform,opacity,filter; }
  .h-big i{ display:block; font-style:normal; font-family:var(--f-body); font-weight:800; font-size:clamp(12px,1vw,15px); letter-spacing:0.22em; color:rgba(255,255,255,0.7); margin-bottom:clamp(8px,1.4vh,16px); }
  .hero-card{ width:388px; max-width:100%; color:#fff; padding:26px 26px 22px; border-radius:28px; background:radial-gradient(120% 90% at 0% 0%, rgba(163,219,148,0.16), rgba(163,219,148,0) 60%), linear-gradient(160deg, rgba(20,28,22,0.93), rgba(9,14,10,0.90)); border:1px solid rgba(255,255,255,0.2); box-shadow:0 44px 90px -34px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.22); position:relative; }
  .stepbox{ position:relative; }
  .fc-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
  .fcity{ display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage); }
  .fc-idx{ font-family:var(--f-display); font-size:12px; font-weight:700; letter-spacing:0.1em; color:rgba(255,255,255,0.72); }
  .fc-title{ font-family:var(--f-display); font-weight:700; font-size:clamp(26px,2.4vw,34px); line-height:1.02; letter-spacing:-0.03em; color:#fff; margin:0 0 12px; }
  .ftags{ display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
  .tag{ font-size:11.5px; font-weight:700; letter-spacing:0.02em; padding:5px 12px; border-radius:100px; color:#fff; background:rgba(255,255,255,0.12); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.3); }
  .ftext{ font-size:14.5px; line-height:1.55; color:rgba(255,255,255,0.92); margin:0 0 18px; }
  .frows{ border-top:1px solid rgba(255,255,255,0.16); display:flex; flex-direction:column; font-size:13.5px; margin-bottom:18px; }
  .frow{ display:flex; justify-content:space-between; align-items:baseline; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.09); }
  .frow span{ color:rgba(255,255,255,0.74); }
  .frow b{ color:#fff; font-weight:700; }
  .fc-link{ display:flex; align-items:center; justify-content:space-between; font-family:var(--f-display); font-size:14.5px; font-weight:700; color:#fff; }
  .fc-link .fc-arr{ display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:#fff; color:#0A0F0B; overflow:hidden; transition:background .35s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
  .fc-link .fc-arr svg{ grid-area:1/1; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
  .fc-link .fc-arr svg + svg{ transform:translateX(-170%); }
  .fc-link:hover .fc-arr{ background:var(--sage); }
  .fc-link:hover .fc-arr svg:first-child{ transform:translateX(170%); }
  .fc-link:hover .fc-arr svg + svg{ transform:none; }
  .chaps{ display:flex; align-items:flex-end; gap:12px; flex:1 1 360px; min-width:0; max-width:900px; }
  .chap{ appearance:none; background:none; border:0; font:inherit; text-align:left; cursor:pointer; position:relative; flex:1 1 0; min-width:0; padding:16px 0 0; color:rgba(255,255,255,0.55); transition:color .4s ease; }
  .chap::before, .chap::after{ content:""; position:absolute; left:0; right:0; top:0; height:2px; border-radius:2px; }
  .chap::before{ background:rgba(255,255,255,0.24); }
  .chap::after{ background:#fff; transform:scaleX(var(--p,0)); transform-origin:0 50%; }
  .chap .cn{ display:block; font-size:11px; font-weight:800; letter-spacing:0.16em; opacity:0.7; margin-bottom:5px; transition:color .4s ease, opacity .4s ease; }
  .chap .cl{ display:block; font-family:var(--f-display); font-weight:700; font-size:13px; letter-spacing:-0.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .chap:nth-child(1){ flex-grow:1.1; }
  .chap:nth-child(3){ flex-grow:1.35; }
  .chap:nth-child(4){ flex-grow:0.8; }
  .chap:nth-child(5){ flex-grow:1.7; }
  .chap:nth-child(6){ flex-grow:1.55; }
  .chap:hover{ color:#fff; }
  .chap.on{ color:#fff; }
  .chap.on .cn{ color:var(--sage); opacity:1; }
  .chap:focus-visible{ outline:2px solid var(--sage); outline-offset:6px; border-radius:4px; }
  .mq-item{ font-family:var(--f-display); font-weight:800; font-size:clamp(44px,6vw,92px); letter-spacing:-0.03em; text-transform:uppercase; color:var(--on-dark); padding:0 28px; line-height:1.1; }
  .mq-item.o{ color:transparent; -webkit-text-stroke:1.5px rgba(243,242,236,0.5); }
  .mq-dot{ display:inline-block; width:14px; height:14px; border-radius:50%; background:#4C8B46; align-self:center; flex-shrink:0; }

  .statement{ font-family:var(--f-display); font-weight:600; font-size:clamp(30px,4.5vw,66px); line-height:1.1; letter-spacing:-0.03em; margin:0; max-width:1120px; color:var(--text); }
  .statement em{ color:var(--sage-d); }
  .sw{ display:inline-block; }

  .svc{ display:grid; grid-template-columns:1fr 1.08fr; gap:64px; height:calc(100vh - 97px - 22px - 32px); min-height:500px; margin-top:60px; }
  .svc-list{ display:flex; flex-direction:column; justify-content:center; }
  .sitem{ position:relative; border-top:1px solid rgba(243,242,236,0.14); }
  .sitem:last-child{ border-bottom:1px solid rgba(243,242,236,0.14); }
  .sline{ position:absolute; left:0; right:0; top:-1px; height:2px; pointer-events:none; }
  .sline b{ display:block; height:100%; background:var(--sage); transform:scaleX(var(--p,0)); transform-origin:0 50%; }
  .shead{ appearance:none; background:none; border:0; color:inherit; font:inherit; text-align:left; width:100%; display:flex; align-items:center; gap:22px; padding:15px 0; cursor:pointer; }
  .shead:focus-visible{ outline:2px solid var(--sage); outline-offset:4px; border-radius:8px; }
  .sn{ width:28px; font-family:var(--f-display); font-weight:700; font-size:14px; letter-spacing:0.08em; color:rgba(243,242,236,0.32); transition:color .5s ease; }
  .st{ flex:1; font-family:var(--f-display); font-weight:700; font-size:clamp(24px,min(3vw,4.4vh),50px); line-height:1.05; letter-spacing:-0.03em; color:rgba(243,242,236,0.3); transition:color .5s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
  .sp{ display:grid; place-items:center; width:40px; height:40px; border-radius:50%; box-shadow:inset 0 0 0 1.5px rgba(243,242,236,0.22); color:#fff; transition:transform .6s cubic-bezier(.2,.7,.2,1), background .4s ease, color .4s ease, box-shadow .4s ease; }
  .shead:hover .st{ color:rgba(243,242,236,0.72); }
  .shead:hover .sp{ box-shadow:inset 0 0 0 1.5px rgba(243,242,236,0.6); }
  .sitem.on .sn{ color:var(--sage); }
  .sitem.on .st{ color:#fff; transform:translateX(6px); }
  .sitem.on .sp{ transform:rotate(135deg); background:var(--sage); color:#0A0F0B; box-shadow:none; }
  .sbody{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .7s cubic-bezier(.2,.7,.2,1); }
  .sitem.on .sbody{ grid-template-rows:1fr; }
  .sbody-in{ min-height:0; overflow:hidden; padding-left:50px; opacity:0; transform:translateY(10px); transition:opacity .35s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
  .sitem.on .sbody-in{ opacity:1; transform:none; transition-delay:.18s; }
  .ssub{ font-family:var(--f-display); font-weight:500; font-size:clamp(19px,1.7vw,24px); letter-spacing:-0.02em; color:var(--on-dark-muted); margin:2px 0 14px; }
  .ssub em{ color:var(--sage); }
  .sdesc{ font-size:15.5px; line-height:1.6; color:var(--on-dark-muted); margin:0 0 18px; max-width:min(560px, 100%); }
  .sbul{ list-style:none; padding:0; margin:0 0 22px; display:flex; flex-direction:column; gap:9px; font-size:14.5px; font-weight:600; }
  .sbul li{ display:flex; align-items:center; gap:12px; }
  .sbul i{ width:7px; height:7px; border-radius:50%; background:#4C8B46; flex-shrink:0; }
  .sbody-in .btn{ margin-bottom:26px; }
  .sstage-w{ align-self:center; min-width:0; }
  .sstage{ position:relative; border-radius:clamp(16px,1.8vw,26px); overflow:hidden; background:#0d130e; aspect-ratio:840 / 473; max-height:calc(100vh - 97px - 22px - 32px - 40px); box-shadow:0 50px 90px -40px rgba(0,0,0,0.75), 0 0 0 1px rgba(255,255,255,0.08); }
  /* glow behind the services: only the soft light around the photo, faded out before the section ends so no edge shows at the next section */
  .sglow{ background:radial-gradient(55% 50% at 74% 44%, rgba(76,139,70,0.22), rgba(76,139,70,0) 70%), radial-gradient(38% 30% at 10% 40%, rgba(163,219,148,0.06), rgba(163,219,148,0) 70%); }
  .sslide{ position:absolute; inset:0; overflow:hidden; }
  .sslide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; will-change:transform; }
  .sslide::after{ content:""; position:absolute; inset:auto 0 0 0; height:36%; background:linear-gradient(to top, rgba(6,10,7,0.55), transparent); pointer-events:none; }
  .sslide .scity{ z-index:2; }
  .scount{ position:absolute; z-index:5; right:22px; bottom:20px; display:flex; align-items:baseline; gap:6px; color:#fff; font-family:var(--f-display); font-weight:700; font-size:34px; letter-spacing:-0.03em; line-height:1; overflow:hidden; }
  .scount small{ font-size:13px; opacity:0.6; letter-spacing:0.06em; }
  .smimg{ display:none; position:relative; border-radius:18px; overflow:hidden; aspect-ratio:16/10; margin-bottom:22px; }
  .smimg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .scity{ position:absolute; left:20px; bottom:20px; display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:100px; background:rgba(10,15,11,0.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; font-size:12px; font-weight:700; letter-spacing:0.06em; }


  .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:64px; }
  html.lenis, html.lenis body{ height:auto; }
  .lenis.lenis-smooth{ scroll-behavior:auto !important; }
  .lenis.lenis-stopped{ overflow:clip; }
  .jdot{ position:relative; flex-shrink:0; width:8px; height:8px; margin-right:-4px; border-radius:50%; background:#0A0F0B; transition:background .4s ease; }
  .jdot::after{ content:""; position:absolute; inset:-4px; border-radius:50%; border:1.5px solid #0A0F0B; opacity:0; animation:jping 2.2s ease-out infinite; }

  @keyframes jping{ 0%{ transform:scale(.6); opacity:.7; } 100%{ transform:scale(2.2); opacity:0; } }
  .jobs{ position:fixed; inset:0; z-index:900; visibility:hidden; pointer-events:none; }
  .jobs.on{ visibility:visible; pointer-events:auto; }
  .jobs-bg{ position:absolute; inset:0; background:rgba(6,10,7,0.62); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:0; }
  .jobs-panel{ position:absolute; top:0; right:0; bottom:0; width:min(580px,100vw); overflow-y:auto; overscroll-behavior:contain; background:#0E1510; color:var(--on-dark); border-left:1px solid rgba(255,255,255,0.1); box-shadow:-40px 0 90px -30px rgba(0,0,0,0.7); transform:translateX(102%); }
  .jobs-hero{ position:relative; height:250px; overflow:hidden; }
  .jobs-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 35%; }
  .jobs-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, #0E1510 0%, rgba(14,21,16,0.55) 45%, rgba(14,21,16,0.15) 100%); }
  .jobs-x{ position:absolute; z-index:3; top:18px; right:18px; appearance:none; border:0; cursor:pointer; width:46px; height:46px; border-radius:50%; display:grid; place-items:center; color:#fff; background:rgba(10,15,11,0.55); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.25); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:background .3s ease, color .3s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
  .jobs-x:hover{ background:#fff; color:#0A0F0B; transform:rotate(90deg); }
  .jobs-in{ position:relative; padding:0 40px 44px; margin-top:-64px; z-index:2; }
  .jobs-in h2{ font-size:clamp(38px,5vw,54px); line-height:1.0; color:#fff; margin:12px 0 10px; }
  .jobs-in h2 em{ color:var(--sage); }
  .jobs-count{ display:flex; align-items:center; gap:10px; margin:26px 0 14px; font-size:12px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:rgba(243,242,236,0.6); }
  .jobs-count b{ display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:100px; background:var(--sage); color:#0A0F0B; letter-spacing:0; font-size:12px; }
  .job{ border-radius:24px; padding:26px 26px 24px; background:linear-gradient(155deg, rgba(255,255,255,0.09), rgba(255,255,255,0.03)); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.14); }
  .job h3{ font-family:var(--f-display); font-weight:700; font-size:24px; line-height:1.12; letter-spacing:-0.02em; color:#fff; margin:0 0 14px; }
  .job-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
  .job-tags span{ font-size:12px; font-weight:700; padding:5px 12px; border-radius:100px; color:#fff; background:rgba(255,255,255,0.08); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.2); }
  .job h4{ font-size:12px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage); margin:22px 0 10px; }
  .job ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-size:15px; line-height:1.5; color:rgba(243,242,236,0.82); }
  .job li{ display:flex; gap:12px; align-items:flex-start; }
  .job li svg{ flex-shrink:0; margin-top:2px; color:var(--sage); }
  .job-perk{ display:flex; gap:16px; align-items:flex-start; margin-top:24px; padding:20px; border-radius:20px; background:linear-gradient(135deg, rgba(163,219,148,0.2), rgba(163,219,148,0.06)); box-shadow:inset 0 0 0 1px rgba(163,219,148,0.35); }
  .job-perk .pi{ flex-shrink:0; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:#0A0F0B; }
  .job-perk b{ display:block; font-family:var(--f-display); font-size:17px; letter-spacing:-0.01em; color:#fff; margin-bottom:5px; }
  .job-perk p{ margin:0; font-size:14.5px; line-height:1.55; color:rgba(243,242,236,0.86); }
  .jobs-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:26px; }
  .jobs-foot small{ font-size:13px; color:rgba(243,242,236,0.6); line-height:1.5; }
  .ap-back{ appearance:none; border:0; background:none; cursor:pointer; color:rgba(243,242,236,0.7); font:inherit; font-size:14px; font-weight:700; display:inline-flex; align-items:center; gap:8px; padding:6px 0; transition:color .3s ease, gap .3s ease; }
  .ap-back:hover{ color:#fff; gap:12px; }
  .ap-form{ display:flex; flex-direction:column; gap:18px; margin-top:26px; }
  .ap-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .ap-f label, .ap-f .ap-lab{ display:block; font-size:12px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; color:rgba(243,242,236,0.6); margin-bottom:8px; }
  .ap-f label i, .ap-f .ap-lab i{ font-style:normal; letter-spacing:0; text-transform:none; font-weight:600; opacity:0.7; margin-left:6px; }
  .ap-f input[type=text], .ap-f input[type=email], .ap-f input[type=tel], .ap-f textarea{ width:100%; box-sizing:border-box; font:inherit; font-size:16px; color:#fff; background:rgba(255,255,255,0.06); border:0; border-radius:14px; padding:14px 16px; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.16); outline:none; transition:box-shadow .3s ease, background .3s ease; }
  .ap-f textarea{ resize:vertical; min-height:96px; }
  .ap-f input::placeholder, .ap-f textarea::placeholder{ color:rgba(243,242,236,0.35); }
  .ap-f input:focus, .ap-f textarea:focus{ background:rgba(255,255,255,0.09); box-shadow:inset 0 0 0 1.5px var(--sage); }
  .ap-f.bad input, .ap-f.bad textarea{ box-shadow:inset 0 0 0 1.5px #ff8a7a; }
  .ap-err{ display:none; margin-top:7px; font-size:13px; color:#ff9d8f; }
  .ap-f.bad .ap-err, .ap-err.on{ display:block; }
  .ap-drop{ position:relative; display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:16px; cursor:pointer; color:rgba(243,242,236,0.85); background:rgba(255,255,255,0.04); border:1.5px dashed rgba(255,255,255,0.28); transition:background .3s ease, border-color .3s ease; }
  .ap-drop:hover, .ap-drop.drag{ background:rgba(163,219,148,0.1); border-color:var(--sage); }
  .ap-drop:focus-within{ border-color:var(--sage); }
  .ap-drop input{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
  .ap-drop .ico{ flex-shrink:0; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,0.1); color:var(--sage); }
  .ap-drop .t{ min-width:0; flex:1; font-size:14.5px; line-height:1.4; }
  .ap-drop .t b{ display:block; color:#fff; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ap-drop .t span{ opacity:0.65; font-size:13px; }
  .ap-drop .rm{ position:relative; z-index:2; display:none; appearance:none; border:0; cursor:pointer; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.12); color:#fff; place-items:center; }
  .ap-drop .rm:hover{ background:#fff; color:#0A0F0B; }
  .ap-drop.has{ border-style:solid; border-color:rgba(163,219,148,0.6); background:rgba(163,219,148,0.08); }
  .ap-drop.has .rm{ display:grid; } .ap-drop.has .ico{ background:var(--sage); color:#0A0F0B; }
  .ap-consent{ display:flex; gap:12px; align-items:flex-start; font-size:13.5px; line-height:1.5; color:rgba(243,242,236,0.75); cursor:pointer; }
  .ap-consent input{ appearance:none; flex-shrink:0; width:22px; height:22px; margin:1px 0 0; border-radius:7px; cursor:pointer; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,0.35); background:transparent center/14px no-repeat; transition:background .25s ease, box-shadow .25s ease; }
  .ap-consent input:checked{ box-shadow:none; background-color:var(--sage); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0F0B' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
  .ap-consent input:focus-visible{ outline:2px solid var(--sage); outline-offset:3px; }
  .ap-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .ap-status{ font-size:14px; line-height:1.5; border-radius:14px; padding:14px 16px; display:none; }
  .ap-status.err{ display:block; color:#ffb4a8; background:rgba(255,120,100,0.12); box-shadow:inset 0 0 0 1px rgba(255,138,122,0.4); }
  .ap-status.err a{ text-decoration:underline; cursor:pointer; }
  .ap-done{ display:none; margin-top:30px; padding:34px 26px; border-radius:24px; background:linear-gradient(155deg, rgba(163,219,148,0.2), rgba(163,219,148,0.05)); box-shadow:inset 0 0 0 1px rgba(163,219,148,0.4); }
  .ap-done svg{ color:var(--sage); } .ap-done h3{ font-size:28px; margin:14px 0 10px; color:#fff; }
  .ap-done p{ margin:0 0 22px; font-size:15.5px; line-height:1.6; color:rgba(243,242,236,0.85); }
  .ap-send[disabled]{ opacity:.6; pointer-events:none; }
  .legal{ position:fixed; inset:0; z-index:950; display:none; flex-direction:column; background:var(--paper); }
  .legal.on{ display:flex; }
  .legal-bar{ flex-shrink:0; background:#fff; border-bottom:1px solid var(--line); }
  .legal-bar-in{ max-width:1100px; margin:0 auto; padding:0 24px; height:80px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
  .legal-bar img{ height:58px; width:auto; mix-blend-mode:multiply; }
  .legal-tabs{ display:flex; gap:6px; padding:5px; border-radius:99px; background:rgba(15,22,17,0.06); }
  .legal-tabs button{ appearance:none; border:0; cursor:pointer; font:inherit; font-size:14px; font-weight:700; padding:9px 18px; border-radius:99px; background:transparent; color:var(--muted); transition:background .3s ease, color .3s ease; }
  .legal-tabs button.on{ background:var(--ink); color:#fff; }
  .legal-x{ appearance:none; cursor:pointer; font:inherit; font-family:var(--f-display); font-weight:700; font-size:15px; display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:0; border-radius:99px; background:transparent; color:var(--text); box-shadow:inset 0 0 0 1.5px rgba(15,22,17,0.2); transition:background .3s ease, color .3s ease; }
  .legal-x:hover{ background:var(--ink); color:#fff; }
  .legal-scroll{ flex:1; overflow-y:auto; overscroll-behavior:contain; }
  .legal-main{ max-width:820px; margin:0 auto; padding:64px 24px 110px; line-height:1.7; }
  .legal-main h1{ font-size:clamp(38px,6vw,64px); line-height:1; margin:0 0 14px; }
  .legal-main .lead{ color:var(--muted); margin:0 0 42px; font-size:17px; }
  .legal-main h2{ font-family:var(--f-display); font-weight:700; letter-spacing:-.02em; font-size:26px; line-height:1.15; margin:50px 0 12px; }
  .legal-main h3{ font-family:var(--f-display); font-weight:700; font-size:19px; margin:26px 0 8px; }
  .legal-main p, .legal-main li{ font-size:16.5px; color:rgba(15,22,17,.86); }
  .legal-main ul{ padding-left:22px; } .legal-main li{ margin:6px 0; }
  .legal-main address{ font-style:normal; }
  .legal-main a{ text-decoration:underline; text-underline-offset:3px; }
  .legal-main mark{ background:#FFE58F; color:#3d2f00; padding:1px 6px; border-radius:5px; font-weight:600; }
  .legal-main .card{ background:#fff; border-radius:22px; padding:24px 26px; box-shadow:0 30px 60px -44px rgba(10,15,11,.4); margin:0 0 16px; }
  [data-lgp]{ display:none; } [data-lgp].on{ display:block; }
  .stp{ position:relative; display:flex; flex-direction:column; border-radius:26px; background:var(--paper); overflow:hidden; transition:translate .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s ease; }
  .stp:hover{ translate:0 -8px; box-shadow:0 44px 70px -42px rgba(10,15,11,0.55); }
  .stp-img{ position:relative; aspect-ratio:4/5; overflow:hidden; }
  .stp-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.3s cubic-bezier(.2,.7,.2,1); }
  .stp:hover .stp-img img{ transform:scale(1.07); }
  .stp-num{ position:absolute; left:16px; top:16px; z-index:2; padding:7px 13px; border-radius:100px; background:rgba(10,15,11,0.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; font-family:var(--f-display); font-weight:700; font-size:12.5px; letter-spacing:0.1em; }
  .stp-body{ padding:24px 24px 30px; }
  .stp h3{ font-size:23px; letter-spacing:-0.02em; margin:0 0 10px; }
  .stp p{ font-size:15px; line-height:1.6; color:var(--muted); margin:0; }
  .band{ position:relative; overflow:clip; background:#0A0F0B; min-height:max(62vh, 480px); }
  .band-nums{ margin-top:clamp(40px,7vh,80px); padding-top:clamp(20px,3vh,32px); border-top:1px solid rgba(255,255,255,0.22); }
  .band .nnum{ font-size:clamp(52px,6.2vw,104px); color:#fff; }
  .band .nunit{ color:var(--sage); }
  .band .nlabel{ color:rgba(255,255,255,0.78); border-top:0; padding-top:0; margin-top:10px; }
  .band-tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
  .band-tags span{ padding:8px 15px; border-radius:100px; color:#fff; font-size:13px; font-weight:700; background:rgba(255,255,255,0.1); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.28); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }

  #galerie{ background:var(--ink); }
  .gsec{ min-height:calc(100vh - 97px); min-height:calc(100svh - 97px); padding:48px 0; display:flex; align-items:center; box-sizing:border-box; }
  .gmosaic{ display:grid; grid-template-columns:repeat(6,1fr); grid-template-rows:repeat(4,1fr); gap:clamp(8px,0.7vw,11px); aspect-ratio:1171 / 666; position:relative; }
  .gcol{ min-width:0; display:flex; flex-direction:column; gap:clamp(24px,2.1vw,33px); }
  .gs-cap{ display:flex; align-items:center; gap:8px; margin-top:clamp(10px,1.4vh,16px); font-size:12.5px; font-weight:600; color:var(--faint); }
  .gs-cap svg{ width:14px; height:14px; color:var(--sage-d); }
  .gs-row{ display:grid; grid-template-columns:repeat(6,1fr); grid-template-rows:repeat(2,1fr); gap:clamp(8px,0.7vw,11px); aspect-ratio:1171 / 337; position:relative; }
  .gs{ display:block; position:relative; margin:0; overflow:hidden; border-radius:clamp(12px,1.1vw,16px); background:#0d130e; outline:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .gs img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.4s cubic-bezier(.2,.7,.2,1); }
  .gs:hover img, .gs:focus-visible img{ transform:scale(1.06); }
  .gs:focus-visible{ box-shadow:0 0 0 3px var(--sage-d); }
  .gt{ position:relative; margin:0; overflow:hidden; border-radius:clamp(12px,1.1vw,16px); background:#0d130e; outline:none; pointer-events:none; }
  .gt img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.4s cubic-bezier(.2,.7,.2,1); }

  .gsec > .wrap{ width:100%; }
  .gsplit{ display:grid; grid-template-columns:1fr 2fr; gap:clamp(28px,4.5vw,84px); align-items:center; }
  .gtxt h2{ font-size:clamp(30px,3.1vw,52px); line-height:1.04; margin-bottom:24px; }
  .glead{ margin:0 0 14px; max-width:400px; font-family:var(--f-display); font-weight:700; font-size:clamp(20px,1.7vw,26px); line-height:1.2; letter-spacing:-0.02em; color:var(--text); }
  .glead em{ font-family:var(--f-serif, 'Instrument Serif', serif); font-style:italic; font-weight:400; letter-spacing:-0.01em; color:var(--sage-d); }
  .gsub{ margin:0 0 22px; max-width:400px; font-size:15.5px; line-height:1.68; color:var(--muted); }
  .gl{ max-width:400px; margin:0 0 20px; }
  .gbar{ display:none; }
  .gl-i{ display:grid; grid-template-columns:34px 1fr; align-items:baseline; padding:12px 0; border-top:1px solid var(--line); }
  .gl-i:last-child{ border-bottom:1px solid var(--line); }
  .gl-i i{ font-style:normal; font-family:var(--f-display); font-weight:800; font-size:11px; letter-spacing:0.14em; color:var(--sage-d); }
  .gl-i b{ display:block; font-family:var(--f-display); font-weight:700; font-size:15.5px; letter-spacing:-0.01em; }
  .gl-i span{ display:block; margin-top:2px; font-size:13.5px; line-height:1.5; color:var(--muted); }
  .ghint{ position:relative; margin:0; max-width:400px; padding:0 0 0 18px; font-size:13px; line-height:1.55; font-weight:600; color:var(--text); border:0; }
  .ghint::before{ content:""; position:absolute; left:0; top:0.55em; width:7px; height:7px; border-radius:50%; background:var(--sage-d); box-shadow:0 0 0 4px rgba(47,107,52,0.15); }
  .ncell{ padding:8px 28px 8px 0; }
  .nnum{ font-family:var(--f-display); font-weight:700; font-size:clamp(72px,9vw,140px); line-height:0.95; letter-spacing:-0.05em; color:var(--text); }
  .nunit{ font-family:var(--f-serif); font-style:italic; font-weight:400; font-size:0.34em; letter-spacing:0; color:var(--sage-d); margin-left:8px; }
  .nlabel{ margin-top:14px; font-size:14.5px; font-weight:600; color:var(--muted); max-width:220px; line-height:1.4; border-top:1px solid var(--line); padding-top:14px; }

  .dl-body{ width:100%; }
  .dgrid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(24px,3vw,48px); align-items:center; }
  .dmapwrap{ display:contents; }
  /* Einsatzgebiet desktop: map top right next to the intro, ticket bottom right; the city photo is only as tall as the city list */
  @media (min-width:901px){
    #dpinwrap{ justify-content:center; }
    #dpinwrap .dbottom{ flex:0 0 auto !important; align-items:start; }
    #dpinwrap .dlistphoto{ align-self:start; }
    #dpinwrap .dtop .dmapbox{ align-self:stretch; height:clamp(260px, 40vh, 440px); }
    #dpinwrap #bcard{ align-self:start; }
    #dpinwrap .dtop .dpin .dlbl{ font-size:27px; }
  }

  .ticket{ display:flex; height:100%; min-height:280px; }
  .ticket-main{ flex:1 1 auto; min-width:0; background:linear-gradient(160deg, rgba(22,30,24,0.97), rgba(9,14,10,0.96)); border:1px solid rgba(255,255,255,0.16); border-right:none; border-radius:26px 0 0 26px; padding:30px 28px; display:flex; flex-direction:column; justify-content:center; gap:18px; box-shadow:0 40px 90px -36px rgba(0,0,0,0.65); }
  .ticket-eyebrow{ display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage); }
  .ticket-person{ display:flex; align-items:center; gap:14px; }
  .ticket-avatar{ width:56px; height:70px; flex:none; border-radius:14px; overflow:hidden; background:#1a221c; }
  .ticket-avatar img{ display:block; width:100%; height:100%; object-fit:cover; object-position:50% 20%; }
  .ticket-name{ font-family:var(--f-display); font-weight:800; font-size:19px; color:#fff; letter-spacing:-0.02em; }
  .ticket-role{ font-size:12.5px; color:rgba(255,255,255,0.6); margin-top:2px; }
  .ticket-stub{ flex:0 0 112px; position:relative; background:linear-gradient(165deg, #3d8542, #1f4a24); border:1px solid rgba(255,255,255,0.16); border-left:2px dashed rgba(10,15,11,0.55); border-radius:0 26px 26px 0; padding:24px 8px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; box-shadow:0 40px 90px -36px rgba(0,0,0,0.65); }
  .ticket-notch{ position:absolute; left:-11px; width:22px; height:22px; border-radius:50%; background:#0d130e; }
  .ticket-notch.top{ top:-11px; } .ticket-notch.bot{ bottom:-11px; }
  .ticket-ring{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; border:1.5px dashed rgba(234,251,228,0.55); color:#eafbe4; flex:none; }
  .ticket-vert{ writing-mode:vertical-rl; text-orientation:mixed; transform:rotate(180deg); font-family:var(--f-display); font-weight:800; font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:#eafbe4; white-space:nowrap; }
  .ticket-code{ font-family:var(--f-display); font-weight:800; font-size:11px; letter-spacing:0.06em; color:rgba(234,251,228,0.8); }
  .dlist-mini{ list-style:none; margin:0; padding:0; flex:0 0 128px; overflow-y:auto; min-width:0; }
  .dlmi{ appearance:none; background:none; border:0; border-top:1px solid rgba(255,255,255,0.13); color:rgba(255,255,255,0.5); font:inherit; font-family:var(--f-display); font-weight:700; font-size:13px; text-align:left; padding:10px 2px; cursor:pointer; width:100%; transition:color .3s ease; }
  .dlist-mini li:last-child .dlmi{ border-bottom:1px solid rgba(255,255,255,0.13); }
  .dlmi:hover{ color:rgba(255,255,255,0.85); }
  .dlmi.on{ color:var(--sage); }
  .dphoto-stage{ position:relative; flex:1 1 auto; min-width:0; border-radius:22px; overflow:hidden; background:#0d130e; }
  .dpimg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s ease; }
  .dpimg.on{ opacity:1; }
  .dphoto-shade{ position:absolute; inset:auto 0 0 0; height:45%; background:linear-gradient(to top, rgba(6,10,7,0.75), transparent); pointer-events:none; }
  .dphoto-label{ position:absolute; left:14px; bottom:14px; z-index:2; padding:6px 13px; border-radius:100px; background:rgba(10,15,11,0.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:0.04em; }
  .dst{ fill:rgba(255,255,255,0.075); stroke:rgba(255,255,255,0.36); stroke-width:1.4; stroke-linejoin:round; transition:fill .5s ease, stroke .5s ease; }
  .dst:hover{ fill:rgba(163,219,148,0.13); }
  .dst.on{ fill:rgba(163,219,148,0.24); stroke:rgba(163,219,148,0.9); }
  .droute{ fill:none; stroke:var(--sage); stroke-width:1.6; stroke-linecap:round; stroke-dasharray:3 5; vector-effect:non-scaling-stroke; }
  .dtour{ fill:none; stroke:var(--sage); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 4px rgba(163,219,148,0.35)); }
  .dveh{ filter:drop-shadow(0 1px 3px rgba(0,0,0,0.6)); }
  .dpin{ cursor:pointer; }
  .dpin .ddot{ fill:rgba(255,255,255,0.85); transition:fill .35s ease; }
  .dpin .dpulse{ fill:none; stroke:var(--sage); stroke-width:1.4; opacity:0; vector-effect:non-scaling-stroke; }
  .dpin .dlbl{ fill:rgba(255,255,255,0.55); font-family:var(--f-display); font-weight:700; font-size:17px; letter-spacing:-0.01em; transition:fill .35s ease; paint-order:stroke; stroke:var(--ink); stroke-width:4px; stroke-linejoin:round; pointer-events:none; }
  .dpin .dhit{ fill:transparent; }
  .dpin.on .ddot{ fill:var(--sage); }
  .dpin.on .dlbl{ fill:#fff; }
  .dhq{ cursor:default; }
  .dhq .dring{ fill:rgba(163,219,148,0.12); stroke:var(--sage); stroke-width:1.4; vector-effect:non-scaling-stroke; }
  .dhq .ddot{ fill:var(--sage); }
  .dhq .dlbl{ fill:var(--sage); }
  .dinfo-top{ display:flex; align-items:center; gap:10px; font-family:var(--f-display); font-weight:800; font-size:12px; letter-spacing:0.16em; color:var(--sage); margin-bottom:10px; }
  .dinfo-top em{ font-style:normal; font-family:var(--f-body); font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.45); }
  .dinfo-name{ font-family:var(--f-display); font-weight:800; font-size:clamp(34px,3.6vw,56px); line-height:1; letter-spacing:-0.04em; color:#fff; }
  .dinfo-cap{ margin-top:8px; font-size:15.5px; font-weight:600; color:rgba(255,255,255,0.72); min-height:1.4em; }
  .dlist{ list-style:none; margin:26px 0 0; padding:0; }
  .dli{ appearance:none; background:none; border:0; border-top:1px solid rgba(255,255,255,0.13); color:inherit; font:inherit; text-align:left; cursor:pointer; width:100%; display:grid; grid-template-columns:30px 1fr auto; align-items:baseline; gap:8px; padding:9px 0; }
  .dlist li:last-child .dli{ border-bottom:1px solid rgba(255,255,255,0.13); }
  .dli i{ font-style:normal; font-family:var(--f-display); font-weight:800; font-size:10.5px; letter-spacing:0.14em; color:rgba(255,255,255,0.4); transition:color .3s ease; }
  .dli b{ font-family:var(--f-display); font-weight:700; font-size:14.5px; color:rgba(255,255,255,0.6); transition:color .3s ease; }
  .dli span{ font-size:12px; color:rgba(255,255,255,0.35); transition:color .3s ease; }
  .dli:hover b, .dli.on b{ color:#fff; } .dli.on i{ color:var(--sage); } .dli.on span{ color:rgba(255,255,255,0.7); }
  .dinfo-hq{ display:flex; align-items:center; gap:10px; margin-top:16px; font-size:12.5px; font-weight:600; color:rgba(255,255,255,0.55); }
  .dinfo-hq i{ width:7px; height:7px; border-radius:50%; background:var(--sage); box-shadow:0 0 0 4px rgba(163,219,148,0.16); }
  .dpics{ width:100%; max-width:340px; margin:0 auto; }
  .dframe{ position:relative; aspect-ratio:4 / 5; border-radius:26px; overflow:hidden; background:#111; }
  .dimg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
  .dimg:first-of-type{ opacity:1; }
  .dshade{ position:absolute; inset:0; z-index:5; pointer-events:none; background:linear-gradient(0deg, rgba(8,12,8,0.78) 0%, rgba(8,12,8,0) 48%); }
  .dpic-lbl{ position:absolute; z-index:6; left:22px; right:22px; bottom:20px; }
  .dpic-lbl span{ display:block; font-family:var(--f-display); font-weight:700; font-size:11.5px; letter-spacing:0.16em; color:rgba(255,255,255,0.7); margin-bottom:4px; }
  .dpic-lbl b{ display:block; font-family:var(--f-display); font-weight:800; font-size:clamp(26px,2.4vw,36px); letter-spacing:-0.03em; line-height:1; color:#fff; }
  .dl-progress{ height:2px; background:rgba(255,255,255,0.14); margin:16px 0 0; }
  .dl-progress i{ display:block; height:100%; background:#4C8B46; transform:scaleX(0); transform-origin:0 50%; }

  .wglow{ position:absolute; inset:-12% 0; pointer-events:none; will-change:transform; -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 16%, #000 70%, transparent 94%); mask-image:linear-gradient(to bottom, transparent 0%, #000 16%, #000 70%, transparent 94%); background:radial-gradient(60% 55% at 78% 38%, rgba(76,139,70,0.22), rgba(76,139,70,0) 70%), radial-gradient(40% 40% at 8% 90%, rgba(163,219,148,0.08), rgba(163,219,148,0) 70%); }
  /* dark theme for every content section: light tokens are flipped inside .dk */
  .dk{ --text:#F3F2EC; --muted:rgba(243,242,236,0.66); --faint:rgba(243,242,236,0.46); --line:rgba(255,255,255,0.13); --sage-d:#A3DB94; --paper:#0A0F0B; position:relative; overflow:clip; color:var(--on-dark); }
  .dk .wrap{ position:relative; }
  .dk .k-consent input{ box-shadow:inset 0 0 0 1.5px rgba(255,255,255,0.35); }
  .dk .k-consent input:checked{ background-color:#4C8B46; }
  .dk .k-consent input:focus-visible{ outline-color:var(--sage); }
  .dk .k-err{ color:#FF8A80; }
  .dk .ghint::before{ box-shadow:0 0 0 4px rgba(163,219,148,0.16); }
  .g-st{ background:radial-gradient(55% 60% at 18% 42%, rgba(76,139,70,0.20), rgba(76,139,70,0) 70%), radial-gradient(40% 40% at 88% 70%, rgba(163,219,148,0.06), rgba(163,219,148,0) 70%); }
  .g-de{ background:radial-gradient(50% 50% at 80% 36%, rgba(76,139,70,0.20), rgba(76,139,70,0) 70%), radial-gradient(40% 40% at 12% 70%, rgba(163,219,148,0.06), rgba(163,219,148,0) 70%); }
  .g-ga{ background:radial-gradient(55% 55% at 72% 52%, rgba(76,139,70,0.20), rgba(76,139,70,0) 70%), radial-gradient(38% 38% at 10% 30%, rgba(163,219,148,0.06), rgba(163,219,148,0) 70%); }
  .g-ko{ background:radial-gradient(55% 55% at 74% 46%, rgba(76,139,70,0.22), rgba(76,139,70,0) 70%), radial-gradient(40% 40% at 14% 36%, rgba(163,219,148,0.07), rgba(163,219,148,0) 70%); }
  .wpin.pinned{ min-height:calc(100vh - 97px - 30px); }
  .wpin{ display:grid; grid-template-columns:minmax(0,0.86fr) minmax(0,1.3fr); gap:clamp(28px,4.4vw,80px); align-items:center; }
  .wh2{ font-size:clamp(38px,4.6vw,72px); line-height:1.0; color:#fff; margin-bottom:22px; }
  .wlead{ margin:0 0 30px; max-width:470px; font-size:16.5px; line-height:1.65; color:var(--on-dark-muted); }
  .wch{ list-style:none; margin:0; padding:0; max-width:500px; }
  .wch li{ display:grid; grid-template-columns:44px 1fr; gap:6px; padding:12px 0; border-top:1px solid rgba(255,255,255,0.14); opacity:.42; transition:opacity .5s ease; }
  .wch li:last-child{ border-bottom:1px solid rgba(255,255,255,0.14); }
  .wch li.on{ opacity:1; }
  .wch i{ font-style:normal; font-family:var(--f-display); font-weight:800; font-size:12px; letter-spacing:.14em; color:var(--sage); padding-top:6px; }
  .wch h3{ font-size:clamp(17px,1.5vw,21px); letter-spacing:-0.02em; color:#fff; }
  .wch p{ margin:0; max-height:0; overflow:hidden; font-size:14.5px; line-height:1.6; color:var(--on-dark-muted); transition:max-height .7s cubic-bezier(.2,.7,.2,1), margin .5s ease; }
  .wch li.on p{ max-height:120px; margin-top:8px; }
  .wframe{ position:relative; border-radius:clamp(16px,1.8vw,26px); overflow:hidden; background:#101612; box-shadow:0 50px 90px -40px rgba(0,0,0,0.75), 0 0 0 1px rgba(255,255,255,0.08); aspect-ratio:840 / 473; }
  .wframe video{ display:block; width:100%; height:100%; object-fit:cover; }
  .wbar{ height:2px; margin-top:18px; background:rgba(255,255,255,0.14); }
  .wbar i{ display:block; height:100%; background:#4C8B46; transform:scaleX(0); transform-origin:0 50%; }
  .wnote{ margin:10px 0 0; font-size:12px; color:rgba(243,242,236,0.42); }
  .wcol{ border-top:1px solid var(--line-d); padding-top:30px; position:relative; }
  .wcol::before{ content:""; position:absolute; left:0; top:-1px; height:2px; width:100%; background:#4C8B46; transform:scaleX(var(--p,1)); transform-origin:0 50%; }
  .wnum{ font-family:var(--f-serif); font-style:italic; font-size:44px; color:var(--sage); margin-bottom:22px; line-height:1; }

  .k-consent{ display:flex; gap:12px; align-items:flex-start; font-size:13.5px; line-height:1.55; color:var(--muted); cursor:pointer; }
  .k-consent a{ text-decoration:underline; text-underline-offset:3px; }
  .k-consent input{ appearance:none; flex-shrink:0; width:22px; height:22px; margin:1px 0 0; border-radius:7px; cursor:pointer; box-shadow:inset 0 0 0 1.5px rgba(15,22,17,0.35); background:transparent center/14px no-repeat; transition:background .25s ease, box-shadow .25s ease; }
  .k-consent input:checked{ box-shadow:none; background-color:var(--ink); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
  .k-consent input:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
  .k-err{ display:none; font-size:14px; line-height:1.5; color:#B3261E; } .k-err.on{ display:block; }
  .ufield{ display:flex; flex-direction:column; gap:8px; flex:1; min-width:200px; }
  .ufield label{ font-size:11.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--faint); }
  .ufield input,.ufield textarea{ font-family:var(--f-body); font-size:16px; background:transparent; border:none; border-bottom:1.5px solid var(--line); border-radius:0; padding:10px 0 12px; color:var(--text); outline:none; transition:border-color .25s ease; }
  .ufield input:focus,.ufield textarea:focus{ border-bottom-color:var(--text); }
  .ufield textarea{ resize:vertical; }
  .crow{ display:flex; gap:14px; padding:20px 0; border-bottom:1px solid var(--line); }
  .crow svg{ flex-shrink:0; margin-top:2px; }
  .crow .k{ font-size:11.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--faint); margin-bottom:6px; }
  .crow .v{ font-size:16px; line-height:1.55; font-weight:500; }

  .flink{ color:var(--muted); transition:color .2s ease; }
  .flink:hover{ color:var(--text); }
  .flink-jobs{ display:inline-flex; align-items:center; gap:9px; color:var(--sage-d); font-weight:700; }
  .fj-dot{ width:7px; height:7px; border-radius:50%; background:#4C8B46; }
  .f-eb{ color:var(--faint); margin-bottom:20px; }

  /* services, mobile: icon bar that tracks the horizontal card scroll */
  .svbar{ display:none; position:relative; grid-template-columns:repeat(5,1fr); flex:0 0 auto; }
  .svbar-line{ position:absolute; left:10%; right:10%; top:21px; height:2px; border-radius:2px; background:rgba(243,242,236,0.16); }
  .svbar-line i{ position:absolute; inset:0; border-radius:2px; background:#4C8B46; transform:scaleX(0); transform-origin:0 50%; }
  .svbar-line b{ position:absolute; left:0; top:50%; width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:50%; background:var(--sage); box-shadow:0 0 0 5px rgba(163,219,148,0.16), 0 0 18px rgba(163,219,148,0.65); }
  .svb{ appearance:none; background:none; border:0; padding:0; font:inherit; color:inherit; position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .svb-ic{ display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#141B15; color:rgba(243,242,236,0.5); box-shadow:inset 0 0 0 1.5px rgba(243,242,236,0.18); transition:background .45s ease, color .45s ease, box-shadow .45s ease; }
  .svb.done .svb-ic{ color:var(--sage); box-shadow:inset 0 0 0 1.5px rgba(163,219,148,0.5); }
  .svb.on .svb-ic{ background:#4C8B46; color:#0A0F0B; box-shadow:0 0 0 6px rgba(76,139,70,0.22), 0 10px 24px -8px rgba(76,139,70,0.85); }
  .svb-l{ font-family:var(--f-display); font-weight:700; font-size:10.5px; letter-spacing:0.01em; white-space:nowrap; color:rgba(243,242,236,0.5); transition:color .4s ease; }
  .svb.on .svb-l{ color:#fff; }
  .svb:focus-visible{ outline:none; } .svb:focus-visible .svb-ic{ outline:2px solid var(--sage); outline-offset:3px; }

  /* mobile menu */
  .mbtn{ display:none; position:relative; flex-shrink:0; width:46px; height:46px; padding:0; border:0; border-radius:50%; background:var(--ink); cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .mbtn span{ position:absolute; left:14px; top:22px; width:18px; height:2px; border-radius:2px; background:#fff; }
  .mbtn span:nth-child(1){ top:16px; } .mbtn span:nth-child(3){ top:28px; }
  .mbtn:focus-visible{ outline:2px solid #4C8B46; outline-offset:3px; }
  .mnav{ position:fixed; left:0; right:0; top:97px; bottom:0; z-index:58; visibility:hidden; clip-path:inset(0% 0% 100% 0%); background:var(--ink); color:var(--on-dark); overflow-y:auto; overscroll-behavior:contain; }
  .mnav-glow{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(70% 45% at 88% 6%, rgba(76,139,70,0.3), rgba(76,139,70,0) 70%), radial-gradient(60% 40% at 0% 100%, rgba(163,219,148,0.1), rgba(163,219,148,0) 70%); }
  .mnav-in{ position:relative; min-height:100%; display:flex; flex-direction:column; padding:30px 22px 28px; }
  .mnav-eb{ color:var(--sage); margin-bottom:12px; }
  .mnav-link{ display:flex; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.1); }
  .mnav-link i{ font-style:normal; font-family:var(--f-display); font-weight:800; font-size:12px; letter-spacing:0.14em; color:var(--sage); min-width:22px; }
  .mnav-link .w{ flex:1; font-family:var(--f-display); font-weight:700; font-size:clamp(32px,9.6vw,46px); letter-spacing:-0.035em; line-height:1.08; }
  .mnav-link svg{ flex-shrink:0; color:rgba(243,242,236,0.4); transition:color .3s ease, transform .4s cubic-bezier(.2,.7,.2,1); }
  .mnav-link.active .wi, .mnav-link.active svg{ color:var(--sage); }
  .mnav-link:active svg{ transform:translateX(4px); }
  .mnav-foot{ margin-top:auto; padding-top:32px; display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
  .mnav-meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:13.5px; color:var(--on-dark-muted); }
  .mnav-meta a{ color:var(--on-dark-muted); }
  @media (min-width:901px){ .mnav{ display:none; } }

  @media (min-width:901px){ .hero-bottom{ position:absolute; left:clamp(32px, 2.4vw, 56px); right:clamp(32px, 2.4vw, 56px); bottom:26px; } }
  /* hero eyebrow: dark glass pill with a glowing bolt badge */
  .h-eb{ align-self:flex-start; display:inline-flex; align-items:center; gap:12px; padding:5px 20px 5px 5px; margin-bottom:24px; border-radius:100px; background:linear-gradient(90deg, rgba(10,15,11,0.66), rgba(10,15,11,0.30)); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.14), inset 0 1px 0 rgba(255,255,255,0.10), 0 14px 34px -16px rgba(0,0,0,0.7); }
  .h-eb-ic{ position:relative; flex:none; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#4C8B46; color:#0A0F0B; box-shadow:0 0 0 4px rgba(76,139,70,0.22), 0 0 20px rgba(163,219,148,0.45); }
  .h-eb-ic::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 1.5px rgba(163,219,148,0.75); animation:hEbPulse 2.6s cubic-bezier(.2,.7,.2,1) infinite; }
  @keyframes hEbPulse{ 0%{ transform:scale(1); opacity:.9; } 70%,100%{ transform:scale(1.9); opacity:0; } }
  .h-eb-t{ font-family:var(--f-body); font-size:12px; font-weight:700; line-height:1.3; letter-spacing:0.18em; text-transform:uppercase; color:#fff; }
  .h-eb-t em{ font-style:normal; font-family:inherit; font-weight:inherit; font-size:inherit; letter-spacing:inherit; color:var(--sage); }
  @media (prefers-reduced-motion: reduce){ .h-eb-ic::after{ animation:none; opacity:0; } }
  .h-p{ max-width:520px; margin:clamp(20px, 3.4vh, 34px) 0 26px; }
  .h-copy{ margin:auto 0; }
  @media (min-width:901px){ .h-copy{ padding-bottom:clamp(60px, 9vh, 96px); } }
  .hp-body{ margin:0 0 12px; font-size:15.5px; line-height:1.65; color:rgba(255,255,255,0.72); font-weight:400; }
  .hp-body strong{ color:rgba(255,255,255,0.95); font-weight:600; }
  .hp-note{ display:flex; gap:10px; align-items:flex-start; padding:0; background:none; border:0; }
  .hp-note i{ flex:none; width:auto; height:auto; margin-top:3px; display:block; color:var(--sage); opacity:.85; }
  .hp-note i svg{ width:15px; height:15px; display:block; }
  .hp-note b{ display:inline; font-family:var(--f-body); font-size:13.5px; font-weight:600; letter-spacing:0; color:rgba(255,255,255,0.86); margin:0; }
  .hp-note span{ display:inline; font-size:13.5px; line-height:1.55; color:rgba(255,255,255,0.68); }
  .hero-bottom{ pointer-events:none; } .hero-bottom .chaps, .hero-bottom .hc-mag{ pointer-events:auto; }
  .h-counter{ position:absolute; right:32px; top:30px; z-index:2; color:#fff; text-align:right; font-family:var(--f-display); }
  .h-counter #h-num{ font-size:38px; font-weight:700; letter-spacing:-0.04em; display:inline-block; }
  .h-counter .h-of{ font-size:14px; opacity:0.6; margin-left:6px; font-weight:600; }
  .h-rail{ width:110px; height:2px; background:rgba(255,255,255,0.25); margin:8px 0 0 auto; }
  .h-rail i{ display:block; height:100%; background:#fff; transform:scaleX(0); transform-origin:0 50%; }

  @media (min-width:1600px){
    .svc{ grid-template-columns:0.85fr 1.25fr; gap:88px; }
    .st{ font-size:clamp(28px,min(2.6vw,4.4vh),60px); }
    .sn{ font-size:15px; }
    .ssub{ font-size:clamp(22px,1.5vw,30px); }
    .sdesc{ font-size:17px; max-width:620px; }
    .sbul{ font-size:16px; gap:11px; }
    .sbody-in{ padding-left:56px; }
  }
  @media (max-height:1000px){
    .sbul li:nth-child(n+4){ display:none; }
  }
  @media (max-height:760px){
    .sbul{ display:none; }
  }
  @media (max-height:940px){
    .sbul{ font-size:13.5px; gap:6px; margin-bottom:16px; }
    .sdesc{ font-size:14.5px; line-height:1.55; margin-bottom:12px; }
    .ssub{ margin-bottom:10px; }
    .sbody-in .btn{ margin-bottom:12px; }
    .shead{ padding:12px 0; }
    .sbul li:nth-child(n+4){ display:none; }
  }
  @media (max-height:820px){
    .hp-body{ font-size:14.5px !important; line-height:1.55 !important; margin-bottom:10px !important; } .hp-note b, .hp-note span{ font-size:12.5px !important; line-height:1.45 !important; }
    .h-p{ margin-bottom:22px !important; }
    .ftext{ display:none; }
    .hero-h1{ font-size:clamp(34px, 6.4vh, 60px) !important; margin-bottom:16px !important; }
  }
  @media (max-width:900px){
    .band .wrap{ grid-template-columns:1fr !important; } .band .hc-mag{ justify-self:stretch !important; }
    #dpinwrap{ height:auto !important; min-height:0 !important; gap:0 !important; } .ticket{ min-height:0 !important; height:auto; }
    .steps{ grid-template-columns:1fr 1fr; gap:14px; margin-top:44px; }
    .stp-img{ aspect-ratio:1/1; } .stp-body{ padding:18px 18px 22px; } .stp h3{ font-size:19px; }
    .ap-row{ grid-template-columns:1fr; }
    .gmosaic{ aspect-ratio:3/4; gap:8px; } .gs-row{ aspect-ratio:3/2; gap:8px; } .gsplit{ grid-template-columns:1fr; } .gcol{ gap:14px; } .gsec{ min-height:0; padding:80px 0; display:block; } .ghint{ display:none; }
    .legal-bar-in{ height:auto; padding:10px 16px; flex-wrap:wrap; } .legal-bar img{ height:44px; } .legal-x span{ display:none; } .legal-x{ padding:10px 12px; } .legal-main{ padding:40px 20px 80px; }
    .jobs-in{ padding:0 22px 34px; } .jobs-hero{ height:200px; }
      .ftext, .ftags, .step-pills{ display:none !important; } .h-p{ margin-bottom:20px !important; } .hp-body{ font-size:14.5px !important; } .hp-note b, .hp-note span{ font-size:12.5px !important; }
    .nav-links{ display:none !important; }
    .wrap{ padding:0 22px; }
    #page{ overflow-x:clip; }
    #bcard{ min-width:0; } .ticket-main{ padding:26px 22px; }
    #site-header .wrap{ gap:10px; }
    #site-header img{ height:58px !important; }
    #jobs-open{ margin-left:auto; }
    .mbtn{ display:block; }
    /* services: pinned, the four cards travel sideways while the page scrolls */
    .svc{ display:flex; flex-direction:column; gap:16px; flex:1 1 auto; height:auto; min-height:0; max-height:none; margin-top:16px; overflow:visible; clip-path:inset(-30px 0 -30px 0); padding-top:4px; }
    .svbar{ display:grid; }
    .sstage, .sstage-w{ display:none; }
    .svc-list{ position:relative; flex:1 1 auto; min-height:0; flex-direction:row; justify-content:flex-start; gap:14px; }
    .sitem, .sitem:last-child{ position:relative; flex:0 0 100%; min-width:0; display:flex; flex-direction:column; justify-content:flex-end; padding:20px 18px 20px; border:1px solid rgba(243,242,236,0.14); border-radius:24px; overflow:hidden; background:#101612; }
    .sline, .sp{ display:none; }
    .shead{ position:relative; z-index:1; padding:0 0 8px; gap:12px; cursor:default; }
    .sn{ width:auto; color:var(--sage); }
    .svc .sitem .st{ flex:0 1 auto; font-size:26px; color:#fff; transform:none; }
    .sbody{ display:block; }
    .sbody-in{ padding-left:0; overflow:visible; opacity:1; transform:none; }
    .ssub, .sdesc, .sbody-in .btn{ position:relative; z-index:1; }
    .ssub{ font-size:17px; margin:0 0 8px; color:#fff; }
    .sdesc{ font-size:14px; line-height:1.55; margin:0 0 14px; color:rgba(243,242,236,0.8); }
    .sbul{ display:none; }
    .sbody-in .btn{ margin-bottom:0; }
    .smimg{ display:block; position:absolute; inset:0; z-index:0; margin:0; border-radius:0; aspect-ratio:auto; }
    .smimg img{ left:-9%; width:118%; }
    .smimg::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,12,9,0.97) 0%, rgba(8,12,9,0.9) 42%, rgba(8,12,9,0.35) 72%, rgba(8,12,9,0.1) 100%); }
    .smimg .scity{ left:14px; top:14px; bottom:auto; z-index:1; }
    .ncells{ grid-template-columns:1fr 1fr !important; gap:36px 12px !important; }
    .egrid{ grid-template-columns:1fr !important; } .dmapwrap{ display:block; } .dinfo{ width:100%; } .dpics{ max-width:none; justify-self:stretch; margin:0 auto; } .dframe{ aspect-ratio:4 / 3; } #bline{ display:none !important; } #bcard{ justify-self:stretch !important; }
    .why-grid{ grid-template-columns:1fr !important; gap:44px !important; }
    /* process points: the whole block is one pinned screen (headline, video, cards); the cards travel sideways */
    .wpin{ display:flex; flex-direction:column; align-items:stretch; gap:0; }
    .wl{ display:contents; }
    .wl .eyebrow{ order:1; margin-bottom:12px !important; }
    .wh2{ order:2; font-size:30px; margin-bottom:10px; }
    .wlead{ order:3; margin:0 0 14px; font-size:14px; line-height:1.5; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
    .wr{ order:4; flex:1 1 auto; min-height:110px; display:flex; flex-direction:column; }
    .wframe{ flex:1 1 auto; min-height:0; aspect-ratio:auto; }
    .wframe video{ object-fit:contain; }
    .wbar{ margin-top:10px; flex:none; }
    .wch{ order:5; position:relative; display:flex; gap:12px; max-width:none; margin-top:14px; flex:none; }
    .wch li, .wch li:last-child{ flex:0 0 84%; display:block; padding:18px 18px 20px; border:1px solid rgba(243,242,236,0.14); border-radius:20px; background:rgba(255,255,255,0.045); opacity:.45; transition:opacity .5s ease, border-color .5s ease, background .5s ease; }
    .wch li.on{ opacity:1; border-color:rgba(163,219,148,0.45); background:rgba(76,139,70,0.12); }
    .wch i{ display:block; padding:0 0 10px; }
    .wch li, .wch li:last-child{ padding:16px 16px 18px; }
    .wch i{ padding:0 0 6px; }
    .wch h3{ font-size:18px; }
    .wch p, .wch li.on p{ max-height:none; margin-top:6px; font-size:13.5px; line-height:1.5; }
    .contact-grid{ grid-template-columns:1fr !important; gap:44px !important; }
    .foot-grid{ flex-direction:column !important; gap:34px !important; }
    .btn-ghost-d, .scity, .stp-num, .band-tags span, .dphoto-label{ -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
    .btn-ghost-d{ background:rgba(10,15,11,0.32); }
    #h-main, #h-top{ will-change:auto !important; }
    #h-main{ filter:none !important; }
    .hero-bottom{ flex-direction:column !important; align-items:stretch !important; }
    .hero-card{ width:100% !important; } .h-big{ display:none; } .hc-mag{ width:100% !important; }
    .h-counter{ display:none; }
    .hero-h1{ font-size:clamp(30px, 10.5vw, 58px) !important; }
  }

  /* mobile flow: every stop is exactly one screen below the header (--scr) and pins right under it */
  @media (max-width:900px){
    :root{ --scr:calc(100vh - 97px); }
    @supports (height:100svh){ :root{ --scr:calc(100svh - 97px); } }
    /* hero: one screen, compact */
    #hero{ height:var(--scr) !important; min-height:0 !important; overflow:hidden !important; }
    #hero > .wrap{ height:100% !important; min-height:0 !important; padding-top:20px !important; padding-bottom:16px !important; }
    .h-eb{ margin-bottom:14px; gap:10px; padding:5px 16px 5px 5px; border-radius:22px; }
    .h-eb-ic{ width:24px; height:24px; } .h-eb-ic svg{ width:12px; height:12px; }
    .h-eb-t{ font-size:10px; letter-spacing:0.14em; line-height:1.35; } .h-eb-t em{ display:block; }
    .hero-h1{ margin-bottom:12px !important; }
    .h-p{ margin:0 0 16px !important; }
    .hp-note{ display:none !important; }
    .hp-body{ font-size:14px !important; line-height:1.5 !important; margin:0 !important; }
    #h-top .btn{ font-size:14px; gap:10px; padding:13px 20px; }
    #h-top .btn .bi{ display:none; }
    .hero-card{ padding:16px 18px 14px; border-radius:22px; }
    .hero-card .fc-top{ margin-bottom:8px; }
    .hero-card .fc-title{ font-size:24px; margin-bottom:10px; }
    .hero-card .frows{ display:none; }
    .hero-card .fc-link .fc-arr{ width:34px; height:34px; }
    /* sections butt against each other, each pinned screen brings its own spacing */
    #statement, #leistungen, #warum-wir, #deutschland{ padding:0 !important; }
    /* statement: pinned screen, the words light up while it holds */
    #statement .wrap{ height:var(--scr); display:flex; flex-direction:column; justify-content:center; background:var(--paper); }
    #statement .eyebrow{ margin-bottom:22px !important; }
    .statement{ font-size:clamp(26px, 7.6vw, 36px); }
    #statement a.rv{ margin-top:30px !important; }
    /* services: headline + icon bar + cards in one pinned screen */
    #leistungen .wrap{ height:var(--scr); display:flex; flex-direction:column; padding-top:18px; padding-bottom:16px; background:var(--ink); }
    #leistungen .wrap > .eyebrow{ margin-bottom:10px !important; }
    #leistungen h2{ font-size:30px !important; }
    .sdesc{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; }
    /* process */
    .wpin{ height:var(--scr); padding:18px 0 16px; }
    /* Einsatzgebiet: one pinned screen - headline, map | photo, compact ticket */
    #dpinwrap{ display:grid !important; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto; grid-template-areas:"head head" "map photo" "ticket ticket"; gap:12px 10px !important; height:var(--scr) !important; min-height:0 !important; padding:16px 0 14px; background:var(--ink); }
    .dtop, .dbottom, .dlistphoto{ display:contents !important; }
    .dtop > div:first-child{ grid-area:head; min-width:0; }
    .dtop .eyebrow{ margin-bottom:8px !important; }
    .dtop h2{ font-size:22px !important; line-height:1.1 !important; }
    .dtop p.rv{ font-size:12.5px !important; line-height:1.45 !important; margin-top:8px !important; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
    .dtop .band-tags, .dtop .dinfo-hq, .dlist-mini{ display:none !important; }
    .dmapbox{ grid-area:map; min-height:0 !important; height:auto !important; border-radius:20px !important; }
    .dmap{ padding:8px !important; }
    .dphoto-stage{ grid-area:photo; min-height:0; height:auto; border-radius:20px; }
    .dphoto-label{ left:10px; bottom:10px; font-size:11px; padding:5px 10px; }
    #bcard{ grid-area:ticket; }
    #bcard .frows, .ticket-vert{ display:none; }
    .ticket-main{ padding:12px 16px !important; gap:8px; border-radius:18px 0 0 18px; }
    .ticket-eyebrow{ font-size:10px; }
    .ticket-person{ margin-top:0; gap:10px; }
    .ticket-avatar{ width:38px; height:46px; border-radius:10px; }
    .ticket-name{ font-size:15px; }
    .ticket-role{ font-size:11.5px; }
    .ticket-stub{ flex-basis:70px; padding:10px 6px; justify-content:center; gap:8px; border-radius:0 18px 18px 0; }
    .ticket-ring{ width:28px; height:28px; }
    .ticket-code{ font-size:10px; }
    .ticket-notch{ width:18px; height:18px; left:-9px; } .ticket-notch.top{ top:-9px; } .ticket-notch.bot{ bottom:-9px; }
    /* gallery: one pinned screen, mosaic and stories travel sideways as two panels */
    #galerie{ padding:0 !important; min-height:0 !important; display:block !important; }
    #galerie .wrap{ height:var(--scr); display:flex; flex-direction:column; padding-top:18px; padding-bottom:14px; background:var(--paper); }
    #galerie .gsplit{ display:flex; flex-direction:column; align-items:stretch; gap:14px; flex:1 1 auto; min-height:0; overflow:hidden; }
    .gtxt .eyebrow{ margin-bottom:8px !important; }
    .gtxt h2{ font-size:26px; margin-bottom:8px; }
    .glead{ font-size:17px; margin:0 0 6px; }
    .gsub{ font-size:13px; line-height:1.5; margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
    .gl, .ghint{ display:none !important; }
    .gbar{ display:flex; gap:16px; position:relative; margin-top:12px; padding-bottom:10px; font-family:var(--f-display); font-weight:700; font-size:12.5px; color:var(--faint); }
    .gbar span{ display:inline-flex; align-items:baseline; gap:6px; transition:color .4s ease; }
    .gbar span i{ font-style:normal; font-size:10.5px; letter-spacing:0.12em; color:inherit; }
    .gbar span.on{ color:var(--text); } .gbar span.on i{ color:var(--sage-d); }
    .gbar b{ position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--line); }
    .gbar b i{ position:absolute; inset:0; background:#4C8B46; transform:scaleX(0); transform-origin:0 50%; }
    .gcol{ position:relative; flex:1 1 auto; min-height:0; flex-direction:row; gap:14px; }
    .gcol > .gmosaic, .gcol > .gstories{ flex:0 0 100%; min-width:0; height:100%; }
    .gmosaic{ aspect-ratio:auto; }
    .gstories{ display:flex; flex-direction:column; gap:8px; }
    .gs-row{ flex:1 1 auto; min-height:0; height:auto !important; aspect-ratio:auto !important; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(6,1fr); }
    /* contact: headline, e-mail and the form in one pinned screen */
    #kontakt{ padding:0 !important; }
    #kontakt .wrap{ height:var(--scr); display:flex; flex-direction:column; padding-top:16px; padding-bottom:14px; background:var(--paper); }
    .contact-grid{ display:flex !important; flex-direction:column; gap:12px !important; flex:1 1 auto; min-height:0; }
    #kontakt .eyebrow{ margin-bottom:8px !important; }
    #kontakt h2{ font-size:24px !important; line-height:1.08 !important; margin-bottom:8px !important; }
    #kontakt .crow{ padding:8px 0; gap:10px; }
    #kontakt .crow:first-child{ display:none; }
    #kontakt .crow .k{ display:none; }
    #kontakt .crow .v{ font-size:14.5px; }
    .contact-grid > div:last-child{ padding:16px 18px !important; border-radius:22px !important; flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
    .contact-grid form > div{ gap:12px !important; }
    .contact-grid form > div > div{ gap:10px !important; flex-wrap:nowrap !important; }
    .ufield{ min-width:0; gap:4px; }
    .ufield label{ font-size:10.5px; }
    .ufield input, .ufield textarea{ font-size:16px; padding:6px 0 8px; }
    .ufield textarea{ height:58px; resize:none; }
    .k-consent{ font-size:12px; line-height:1.4; gap:10px; }
    .k-consent input{ width:20px; height:20px; }
    .contact-grid .btn{ font-size:14px; padding:5px 5px 5px 20px; }
    .contact-grid .btn .bi{ width:34px; height:34px; }
  }
  @media (max-width:900px) and (max-height:700px){
    .hp-body{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
    .wlead{ display:none; }
    .dtop p.rv{ display:none !important; }
    #kontakt h2{ font-size:21px !important; }
    .contact-grid form > div{ gap:8px !important; }
    .ufield textarea{ height:40px; }
    .k-consent{ font-size:11.5px; }
    .gsub{ display:none; }
  }
  @media (max-width:900px) and (max-height:620px){
    #hero .hc-mag{ display:none; }
  }
  @media (max-width:420px){
    #jobs-open{ padding:13px 18px 13px 16px; } #jobs-open .bi{ display:none; }
  }
  @media (max-width:900px) and (max-height:700px){
    .sdesc{ -webkit-line-clamp:4; font-size:13.5px; }
    .ssub{ font-size:16px; }
  }
