:root {
  --bg:#101010;
  --bg-soft:#171717;
  --surface:#1f1f1f;
  --text:#fff;
  --muted:#c6c6c6;
  --line:rgba(255,255,255,.14);
  --blue:#0859dd;
  --cyan:#25d4ff;
  --green:#74f0c0;
  --radius:10px;
  --container:1180px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,Arial,sans-serif;
  line-height:1.6;
  overflow-x:hidden
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
button {
  cursor:pointer
}
.container {
  width:min(var(--container),calc(100% - 48px));
  margin:auto
}
.section {
  padding:115px 0
}
.label {
  display:inline-block;
  background:rgb(0,89,221);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:14px;
  line-height:1;
  padding:10px 13px;
  margin-bottom:24px;
  font-weight:600
}
.hero-label {
  background:rgb(0,89,221)
}
h1,h2,h3,h4 {
  font-family:"Bricolage Grotesque",Arial,sans-serif;
  margin:0;
  line-height:1.08
}
h1,h2 {
  letter-spacing:1px;
  text-transform:uppercase
}
h1 {
  font-size:clamp(48px,6vw,80px);
  font-weight:600
}
h1 em {
  font-family:Georgia,serif;
  font-weight:400
}
h2 {
  font-size:clamp(37px,4.35vw,62px);
  font-weight:600
}
h3 {
  font-size:22px
}
p {
  margin:0;
  color:var(--muted)
}
.btn {
  min-height:52px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  padding:0 25px;
  border-radius:5px;
  font-weight:700;
  transition:.22s ease;
  border:1px solid transparent
}
.btn:hover {
  transform:translateY(-2px)
}
.btn-primary {
  background:linear-gradient(135deg,#28cdf5,#0859dd);
  color:#fff;
  box-shadow:0 14px 34px rgba(8,89,221,.32)
}
.btn-outline {
  border-color:rgba(255,255,255,.25);
  background:rgba(255,255,255,.04)
}
.btn-outline:hover {
  background:rgba(255,255,255,.1)
}
.text-link {
  display:inline-flex;
  gap:9px;
  align-items:center;
  font-weight:700;
  margin-top:24px;
  color:#fff
}
.text-link span {
  color:var(--cyan);
  font-size:21px
}
.site-header {
  position:absolute;
  z-index:20;
  top:0;
  left:0;
  width:100%;
  padding:18px 0
}
.header-inner {
  display:flex;
  align-items:center;
  gap:25px
}
.brand {
  display:flex;
  flex-direction:column;
  line-height:.8;
  flex:0 0 auto
}
.brand-main {
  font-size:33px;
  font-weight:800;
  letter-spacing:-2px
}
.brand-sub {
  font-size:13px;
  font-weight:700;
  letter-spacing:-.7px;
  margin-left:1px;
  margin-top:6px
}
.main-nav {
  display:flex;
  justify-content:center;
  gap:26px;
  flex:1;
  font-size:14px
}
.main-nav a {
  position:relative
}
.main-nav a:after {
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;
  width:0;
  height:2px;
  background:var(--cyan);
  transition:width .2s
}
.main-nav a:hover:after {
  width:100%
}
.header-right {
  display:flex;
  align-items:center;
  gap:8px
}
.phone-link {
  display:flex;
  gap:8px;
  align-items:flex-start;
  margin-right:7px;
  font-size:13px
}
.phone-link strong {
  display:block;
  font-weight:500
}
.phone-link small {
  display:block;
  color:#d5d5d5;
  font-size:11px
}
.phone-icon {
  font-size:22px;
  line-height:1
}
.social-button {
  width:38px;
  height:38px;
  border-radius:4px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#29bde9,#1760d7);
  font-weight:700;
  font-size:20px
}
.burger {
  display:none;
  border:0;
  background:transparent;
  padding:6px
}
.burger span {
  display:block;
  width:26px;
  height:2px;
  background:#fff;
  margin:5px 0
}
.hero {
  padding:194px 0 90px;
  min-height:920px;
  background:radial-gradient(circle at 18% 78%,rgba(0,110,255,.65),transparent 34%),radial-gradient(circle at 78% 26%,rgba(24,88,196,.44),transparent 38%),radial-gradient(circle at 50% 58%,rgba(0,145,255,.16),transparent 42%),linear-gradient(135deg,#131926 0%,#0d2451 40%,#071c46 68%,#071126 100%)
}
.hero-content {
  text-align:center;
  max-width:1080px
}
.hero h1 {
  max-width:900px;
  margin:16px auto 25px
}
.hero-copy {
  max-width:760px;
  margin:auto;
  font-size:17px
}
.hero-actions {
  display:flex;
  justify-content:center;
  gap:12px;
  margin-top:34px;
  flex-wrap:wrap
}
.hero-image {
  width:min(990px,100%);
  height:420px;
  margin:76px auto 0;
  border-radius:10px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.15)),url("assets/bild1.webp") center/cover
}
.about-section {
  background:#121212
}
.about-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:82px;
  align-items:center
}
.section-copy p+.section-copy p {
  margin-top:18px
}
.image-collage {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.collage-img {
  padding:0;
  border:0;
  border-radius:6px;
  background-size:cover;
  background-position:center;
  min-height:285px;
  position:relative;
  overflow:hidden
}
.collage-img:after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.03);
  transition:.22s
}
.collage-img:hover:after {
  background:rgba(0,0,0,.2)
}
.collage-top {
  min-height:305px
}
.collage-wide {
  grid-column:span 3;
  min-height:305px
}
.how-section {
  background:linear-gradient(180deg,#101010,#111b34)
}
.section-heading {
  max-width:760px
}
.section-heading.centered {
  text-align:center;
  margin:0 auto 60px
}
.section-heading p {
  margin-top:20px
}
.steps-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}
.step-card {
  position:relative;
  background:#1b1b1b;
  border:1px solid var(--line);
  padding:20px;
  border-radius:10px
}
.step-number {
  position:absolute;
  z-index:2;
  top:31px;
  left:31px;
  padding:7px 9px;
  background:var(--blue);
  font-weight:700;
  font-size:13px
}
.step-image {
  height:280px;
  border-radius:7px;
  background-size:cover;
  background-position:center;
  margin-bottom:23px
}
.step-card h3,.service-card h3 {
  margin-bottom:8px
}
.benefits-section {
  background:#151515
}
.benefits-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:90px
}
.benefit-list {
  display:grid;
  gap:22px
}
.benefit {
  display:flex;
  gap:18px;
  padding:22px 0;
  border-top:1px solid var(--line)
}
.benefit>span {
  color:var(--cyan);
  font-size:28px
}
.benefit h3 {
  margin-bottom:5px
}
.services-section {
  background:#0f0f0f
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-top:46px
}
.service-card {
  background:#191919;
  border-radius:10px;
  overflow:hidden;
  border:1px solid var(--line);
  padding-bottom:22px
}
.service-photo {
  height:200px;
  background-size:cover;
  background-position:center;
  margin-bottom:18px
}
.service-card h3,.service-card p {
  padding:0 18px
}
.partners {
  padding:38px 0 100px;
  background:#111;
  overflow:hidden
}
.partners h3 {
  text-align:center;
  font-size:23px;
  text-transform:none;
  letter-spacing:0;
  margin-bottom:52px
}
.partner-marquee {
  position:relative;
  overflow:hidden
}
.partner-marquee:before,.partner-marquee:after {
  content:"";
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  width:120px;
  pointer-events:none
}
.partner-marquee:before {
  left:0;
  background:linear-gradient(90deg,#111,transparent)
}
.partner-marquee:after {
  right:0;
  background:linear-gradient(270deg,#111,transparent)
}
.partner-track {
  display:flex;
  align-items:center;
  width:max-content;
  animation:partnerMarquee 50s linear infinite
}
.partner-marquee:hover .partner-track {
  animation-play-state:paused
}
.partner-logo {
  height:98px;
  width:238px;
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto
}
.partner-logo img {
  max-width:170px;
  max-height:68px;
  width:auto;
  height:auto;
  object-fit:contain;
  opacity:.78;
  filter:grayscale(1) brightness(2);
  transition:.2s
}
.partner-logo:hover img {
  opacity:1;
  transform:scale(1.05)
}
@keyframes partnerMarquee {
  to {
    transform:translateX(-50%)
  }
}
.reference-section {
  background:#152143
}
.reference-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:75px;
  align-items:center
}
.reference-image {
  min-height:510px;
  border-radius:10px;
  background-size:cover;
  background-position:center
}
.reference-copy p {
  margin:23px 0 29px
}
.station-section {
  background:radial-gradient(circle at 15% 80%,rgba(0,93,255,.44),transparent 33%),linear-gradient(135deg,#07152d,#08235a)
}
.station-heading {
  display:flex;
  gap:35px;
  justify-content:space-between;
  align-items:end;
  margin-bottom:38px
}
.station-heading p {
  margin-top:14px
}
.station-map-wrap {
  overflow:hidden;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 18px 58px rgba(0,0,0,.35)
}
.map-consent-placeholder {
  min-height:620px;
  display:grid;
  place-items:center;
  padding:42px;
  text-align:center;
  background:linear-gradient(135deg,rgba(2,12,34,.92),rgba(4,44,101,.82)),url("assets/bild7.webp") center/cover
}
.map-consent-content {
  width:min(520px,100%);
  padding:34px;
  border-radius:12px;
  background:rgba(20,20,20,.88);
  border:1px solid var(--line);
  backdrop-filter:blur(10px)
}
.map-consent-icon {
  width:56px;
  height:56px;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--blue);
  font-size:28px
}
.map-consent-content h3 {
  font-size:28px;
  margin-bottom:12px
}
.map-consent-content p {
  font-size:15px;
  margin-bottom:22px
}
.map-consent-content a {
  display:inline-block;
  margin-top:18px;
  text-decoration:underline;
  text-underline-offset:3px;
  font-size:14px
}
.contact-section {
  background:#111
}
.contact-grid {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:85px;
  align-items:start
}
.contact-copy p {
  margin:24px 0
}
.contact-details {
  display:grid;
  gap:10px;
  margin-top:28px
}
.contact-details a {
  font-weight:700
}
.form-card {
  position:relative;
  padding:34px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#1b1b1b
}
.form-label {
  font-weight:700;
  margin-bottom:12px
}
.event-types {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:27px
}
.checkbox-label {
  display:flex;
  gap:8px;
  align-items:center;
  font-size:14px;
  border:1px solid var(--line);
  padding:9px 12px;
  border-radius:999px
}
.checkbox-label input {
  accent-color:var(--blue)
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.form-group {
  margin-bottom:16px
}
.form-group label {
  display:block;
  font-size:14px;
  margin-bottom:6px;
  font-weight:600
}
.form-group input,.form-group textarea {
  width:100%;
  border:1px solid rgba(255,255,255,.18);
  background:#121212;
  color:#fff;
  border-radius:5px;
  padding:13px 14px;
  outline:none;
  transition:border-color .2s
}
.form-group textarea {
  resize:vertical
}
.form-group input:focus,.form-group textarea:focus {
  border-color:var(--cyan)
}
.honeypot {
  position:absolute!important;
  left:-9999px!important;
  opacity:0!important;
  pointer-events:none!important
}
.privacy-check {
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-size:13px;
  color:#d5d5d5;
  margin:8px 0 20px
}
.privacy-check input {
  width:18px;
  min-width:18px;
  height:18px;
  accent-color:var(--blue);
  margin-top:2px
}
.privacy-check a {
  color:var(--cyan);
  text-decoration:underline;
  text-underline-offset:3px
}
.submit {
  width:100%
}
.form-status {
  display:none;
  margin-top:16px;
  font-size:14px
}
.form-status.is-success,.form-status.is-error {
  display:block
}
.form-status.is-success {
  color:var(--green)
}
.form-status.is-error {
  color:#ff9a9a
}
.turnstile-wrap {
  margin:4px 0 18px
}
.turnstile-wrap p {
  font-size:13px
}
.faq-section {
  background:#181818
}
.faq-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-item {
  border-bottom:1px solid var(--line)
}
.faq-question {
  padding:23px 0;
  width:100%;
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  text-align:left;
  background:none;
  border:0;
  font-family:"Bricolage Grotesque",Arial,sans-serif;
  font-size:20px;
  font-weight:600
}
.faq-plus {
  font-size:28px;
  color:var(--cyan)
}
.faq-answer {
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .25s
}
.faq-answer p {
  overflow:hidden;
  padding:0
}
.faq-item.active .faq-answer {
  grid-template-rows:1fr
}
.faq-item.active .faq-answer p {
  padding:0 0 22px
}
.footer {
  padding:76px 0 22px;
  background:#0b0b0b
}
.footer-grid {
  display:grid;
  grid-template-columns:1.6fr repeat(3,1fr);
  gap:45px
}
.footer-brand {
  margin-bottom:20px
}
.footer p {
  max-width:260px;
  font-size:14px
}
.footer h4 {
  font-size:17px;
  margin-bottom:14px
}
.footer-grid>div:not(:first-child) {
  display:grid;
  align-content:start;
  gap:9px
}
.footer-grid a {
  font-size:14px;
  color:#d1d1d1
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:56px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:12px;
  color:#bbb
}
.footer-bottom span:last-child {
  display:flex;
  gap:15px
}
.footer-cookie-link {
  border:0;
  background:none;
  color:#bbb;
  padding:0;
  font-size:12px
}
.gallery-modal {
  position:fixed;
  inset:0;
  z-index:800;
  display:none;
  place-items:center;
  padding:40px;
  background:rgba(0,0,0,.87)
}
.gallery-modal.active {
  display:grid
}
.modal-content {
  width:min(1000px,100%);
  height:min(75vh,720px);
  border-radius:10px;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center
}
.modal-close {
  position:absolute;
  right:28px;
  top:18px;
  border:0;
  background:none;
  color:#fff;
  font-size:42px
}
.cookie-button {
  position:fixed;
  right:28px;
  bottom:28px;
  width:56px;
  height:56px;
  z-index:400;
  border:0;
  border-radius:50%;
  background:#222;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:23px;
  box-shadow:0 18px 40px rgba(0,0,0,.38)
}
.cookie-backdrop {
  position:fixed;
  inset:0;
  z-index:450;
  background:rgba(0,0,0,.62);
  opacity:0;
  visibility:hidden;
  transition:.25s
}
.cookie-backdrop.is-visible {
  opacity:1;
  visibility:visible
}
.cookie-banner,.cookie-settings {
  position:fixed;
  z-index:500;
  background:#242424;
  border:1px solid var(--line);
  box-shadow:0 30px 90px rgba(0,0,0,.55)
}
.cookie-banner {
  left:50%;
  bottom:32px;
  width:min(880px,calc(100% - 40px));
  transform:translateX(-50%) translateY(30px);
  opacity:0;
  visibility:hidden;
  transition:.25s;
  border-radius:14px;
  padding:30px
}
.cookie-banner.is-visible {
  opacity:1;
  visibility:visible;
  transform:translateX(-50%)
}
.cookie-banner-content {
  display:grid;
  grid-template-columns:1fr auto;
  gap:34px;
  align-items:center
}
.cookie-kicker {
  color:var(--cyan);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:12px;
  font-weight:700;
  margin-bottom:8px
}
.cookie-banner h3,.cookie-settings h3 {
  font-size:27px;
  margin-bottom:10px;
  text-transform:none;
  letter-spacing:0
}
.cookie-banner p,.cookie-settings p {
  font-size:14px
}
.cookie-actions-main {
  display:grid;
  gap:10px;
  min-width:205px
}
.cookie-reject-btn {
  background:transparent;
  border:1px solid rgba(255,255,255,.24);
  color:#fff
}
.cookie-settings-link {
  border:0;
  background:transparent;
  color:#ddd;
  text-decoration:underline;
  text-underline-offset:3px;
  font:inherit;
  font-size:14px;
  padding:7px
}
.cookie-settings {
  left:50%;
  top:50%;
  width:min(650px,calc(100% - 40px));
  transform:translate(-50%,-46%);
  opacity:0;
  visibility:hidden;
  border-radius:14px;
  padding:32px;
  transition:.25s
}
.cookie-settings.is-visible {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,-50%)
}
.cookie-settings-head {
  display:flex;
  justify-content:space-between;
  gap:20px
}
.cookie-close {
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:50%;
  background:transparent;
  color:#fff;
  font-size:28px
}
.cookie-settings-intro {
  margin:20px 0
}
.cookie-category {
  display:flex;
  justify-content:space-between;
  gap:28px;
  align-items:center;
  padding:20px 0;
  border-top:1px solid var(--line)
}
.cookie-category strong {
  display:block;
  margin-bottom:5px
}
.cookie-required {
  color:var(--green);
  white-space:nowrap;
  font-size:13px;
  font-weight:700
}
.cookie-switch {
  position:relative;
  width:52px;
  height:30px;
  flex:0 0 auto
}
.cookie-switch input {
  opacity:0;
  width:0;
  height:0
}
.cookie-switch span {
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#555;
  cursor:pointer;
  transition:.2s
}
.cookie-switch span:after {
  content:"";
  position:absolute;
  left:4px;
  top:4px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  transition:.2s
}
.cookie-switch input:checked+span {
  background:var(--blue)
}
.cookie-switch input:checked+span:after {
  transform:translateX(22px)
}
.cookie-settings-actions {
  display:flex;
  gap:12px;
  margin-top:26px
}
.cookie-privacy-link {
  display:inline-block;
  margin-top:18px;
  color:var(--cyan);
  text-decoration:underline;
  text-underline-offset:3px;
  font-size:14px
}
@media(max-width:1050px) {
  .main-nav {
    gap:15px;
    font-size:12px
  }
  .header-right .phone-link {
    display:none
  }
  .about-grid,.contact-grid,.faq-grid,.benefits-grid,.reference-grid {
    gap:45px
  }
  .service-grid {
    grid-template-columns:repeat(2,1fr)
  }
}
@media(max-width:820px) {
  .site-header {
    position:relative;
    background:#111
  }
  .header-inner {
    justify-content:space-between
  }
  .burger {
    display:block;
    order:3
  }
  .header-right {
    order:2;
    margin-left:auto
  }
  .main-nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#111;
    display:none;
    padding:16px 24px 24px;
    flex-direction:column;
    gap:16px;
    font-size:15px;
    border-top:1px solid var(--line)
  }
  .main-nav.mobile-open {
    display:flex
  }
  .hero {
    padding-top:94px;
    min-height:auto
  }
  .about-grid,.benefits-grid,.reference-grid,.contact-grid,.faq-grid {
    grid-template-columns:1fr
  }
  .section {
    padding:78px 0
  }
  .hero-image {
    height:330px;
    margin-top:52px
  }
  .station-heading {
    align-items:flex-start;
    flex-direction:column
  }
  .footer-grid {
    grid-template-columns:1fr 1fr
  }
  .form-row {
    grid-template-columns:1fr
  }
  .section-copy {
    max-width:650px
  }
}
@media(max-width:560px) {
  .container {
    width:min(100% - 30px,var(--container))
  }
  .brand-main {
    font-size:29px
  }
  .brand-sub {
    font-size:11px
  }
  .header-right {
    gap:6px
  }
  .social-button {
    width:33px;
    height:33px
  }
  .hero {
    padding-bottom:62px
  }
  .hero h1 {
    font-size:40px
  }
  .hero-copy {
    font-size:15px
  }
  .hero-actions {
    display:grid;
    grid-template-columns:1fr
  }
  .hero-actions .btn {
    width:100%
  }
  .hero-image {
    height:240px;
    border-radius:7px
  }
  .image-collage {
    grid-template-columns:1fr;
    gap:14px
  }
  .collage-top,.collage-wide {
    grid-column:auto;
    min-height:240px
  }
  .steps-grid,.service-grid {
    grid-template-columns:1fr
  }
  .step-image {
    height:235px
  }
  .partners {
    padding:30px 0 72px
  }
  .partners h3 {
    margin-bottom:33px
  }
  .partner-marquee:before,.partner-marquee:after {
    width:45px
  }
  .partner-logo {
    width:175px;
    height:78px;
    padding:0 20px
  }
  .partner-logo img {
    max-width:126px;
    max-height:48px
  }
  .partner-track {
    animation-duration:34s
  }
  .reference-image {
    min-height:320px
  }
  .map-consent-placeholder {
    min-height:470px;
    padding:18px
  }
  .map-consent-content {
    padding:26px 20px
  }
  .form-card {
    padding:23px 18px
  }
  .event-types {
    gap:8px
  }
  .checkbox-label {
    font-size:12px
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .footer-bottom {
    flex-direction:column;
    margin-top:34px
  }
  .footer-bottom span:last-child {
    flex-wrap:wrap
  }
  .cookie-banner {
    bottom:16px;
    width:calc(100% - 24px);
    padding:24px
  }
  .cookie-banner-content {
    grid-template-columns:1fr;
    gap:22px
  }
  .cookie-settings {
    padding:24px
  }
  .cookie-category {
    align-items:flex-start
  }
  .cookie-settings-actions {
    flex-direction:column
  }
  .cookie-settings-actions .btn {
    width:100%
  }
  .cookie-button {
    right:16px;
    bottom:16px
  }
  .gallery-modal {
    padding:20px
  }
  .modal-close {
    right:12px;
    top:8px
  }
  .modal-content {
    height:65vh
  }
}
