@font-face { font-family:"Ruda"; src:url("../fonts/Ruda-Regular.ttf"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Ruda"; src:url("../fonts/Ruda-Bold.ttf"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Exo2"; src:url("../fonts/Exo2-Regular.ttf"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"MontserratAlternates"; src:url("../fonts/MontserratAlternates-Regular.ttf"); font-weight:500; font-style:normal; font-display:swap; }

:root{
  --dark:#151515;
  --magenta:#C41E7A;
  --cream:#F3EDE4;
  --pink:#c20a75;
  --bwkt-ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;}
html{ scroll-behavior:smooth; cursor:none; }
body{
  margin:0; background:var(--dark); color:var(--cream);
  font-family:"Exo2",sans-serif; font-size:16px; line-height:1.6;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
#bw-page{ background:var(--dark); }
h1,h2,h3,h4{ font-family:"Ruda",sans-serif; font-weight:700; margin:0; line-height:.92; letter-spacing:-0.03em; }
body h1, body h2, body h3, body h4{ color:inherit; }
p{ margin:0; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; cursor:pointer; }
::selection{ background:var(--magenta); color:var(--cream); }

#bwnv-grain{ position:fixed; inset:0; z-index:500; pointer-events:none; opacity:.05; mix-blend-mode:overlay; }

#bwnv-cursor{ position:fixed; top:0; left:0; width:10px; height:10px; background:var(--magenta); border-radius:50%; pointer-events:none; z-index:3500; transform:translate(-50%,-50%); transition:width .25s var(--bwkt-ease), height .25s var(--bwkt-ease), background .25s; mix-blend-mode:difference; }
#bwnv-cursor.big{ width:64px; height:64px; background:var(--magenta); }

#bwnv-progress{ height:5px; width:0%; background:var(--magenta); }

.bwkt-reveal{ opacity:0; transform:translateY(40px) rotate(.3deg); transition:opacity 1s var(--bwkt-ease), transform 1s var(--bwkt-ease); }
.bwkt-reveal.is-visible{ opacity:1; transform:translateY(0) rotate(0); }

.bwkt-wrap{ max-width:1400px; margin:0 auto; padding:0 6vw; }


.bwkt-cut-top{ clip-path:polygon(0 4vw, 100% 0, 100% 100%, 0 100%); margin-top:-4vw; position:relative; z-index:2; }

.bwkt-section{ padding:120px 0; position:relative; background:var(--dark); }
.bwkt-section.bwkt-cream{ background:var(--cream); color:var(--dark); }

.bwkt-eyebrow{ font-family:"MontserratAlternates",sans-serif; font-weight:500; font-size:12px; letter-spacing:.25em; text-transform:uppercase; }

/* ---------- Intro ---------- */
.bwkt-intro-title{ font-size:clamp(36px,6vw,84px); text-transform:uppercase; color:var(--cream); }

/* ---------- Buttons ---------- */
.bwkt-btn{ display:inline-flex; align-items:center; gap:10px; background:var(--magenta); color:var(--cream); font-weight:700; padding:18px 36px; border-radius:2px; font-family:"MontserratAlternates",sans-serif; font-size:14px; text-transform:uppercase; letter-spacing:.08em; border:none; cursor:pointer; transition:transform .3s var(--bwkt-ease), background .3s; }
.bwkt-btn:hover{ transform:skew(-6deg) scale(1.05); background:var(--dark); color:var(--cream); }
.bwkt-arrow{ display:inline-flex; animation:bwktArrowBounce 1.4s ease-in-out infinite; }
@keyframes bwktArrowBounce{ 0%,100%{ transform:translateX(0);} 50%{ transform:translateX(5px);} }


/* ---------- Kontakt-Grid ---------- */
.bwkt-contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:start; }


.bwkt-info h3{ font-size:clamp(22px,2.2vw,28px); margin-bottom:6px; }
.bwkt-info .bwkt-addr-line{ font-size:16px; opacity:.85; }

.bwkt-info-list{ margin-top:44px; display:flex; flex-direction:column; gap:26px; }
.bwkt-info-item .bwkt-info-label{ font-family:"MontserratAlternates",sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; opacity:.6; }
.bwkt-info-value-row{ margin-top:6px; display:flex; align-items:center; gap:10px; }
.bwkt-info-item .bwkt-info-value{ font-size:19px; font-family:"Ruda",sans-serif; font-weight:700; }
.bwkt-info-value-row .bwkt-arrow{ display:none; font-size:16px; }

/* Desktop: Telefon & E-Mail sind reiner Text, nicht klickbar */
.bwkt-info-item.bwkt-no-link-desktop .bwkt-info-value{ pointer-events:none; }

/* WhatsApp bleibt auf allen Breakpoints klickbar */
.bwkt-info-item.bwkt-always-link .bwkt-info-value:hover{ color:var(--magenta); }
.bwkt-info-item.bwkt-always-link .bwkt-arrow{ display:inline-flex; }

@media (max-width:1024px){
  .bwkt-info-value-row .bwkt-arrow{ display:inline-flex; }
  .bwkt-info-item.bwkt-no-link-desktop .bwkt-info-value{ pointer-events:auto; }
  .bwkt-info-item.bwkt-no-link-desktop .bwkt-info-value:hover{ color:var(--magenta); }
}

.bwkt-anfahrt{ margin-top:36px; }
.bwkt-anfahrt p{ font-size:15px; opacity:.8; line-height:1.6; }
.bwkt-anfahrt p + p{ margin-top:8px; }

.bwkt-maps-card{ display:block; margin-top:40px; max-width:440px; }
.bwkt-maps-card .bwkt-maps-frame{ position:relative; overflow:hidden; aspect-ratio:16/9; background:var(--dark); }
.bwkt-maps-card img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.1); transition:transform .6s var(--bwkt-ease); }
.bwkt-maps-card:hover img{ transform:scale(1.08); }
.bwkt-maps-card .bwkt-maps-label{ margin-top:18px; display:inline-flex; align-items:center; gap:10px; background:var(--dark); color:var(--cream); font-family:"MontserratAlternates",sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:.08em; padding:12px 20px; transition:transform .3s var(--bwkt-ease), background .3s; }
.bwkt-maps-card:hover .bwkt-maps-label{ transform:skew(-6deg); background:var(--magenta); }

.bwkt-social-row{ margin-top:56px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.bwkt-social-icon{ display:flex; align-items:center; justify-content:center; height:25px; width:25px; }
.bwkt-social-icon svg{ height:25px; width:25px; fill:var(--dark); opacity:.7; transition:opacity .3s, fill .3s, transform .3s var(--bwkt-ease); }
.bwkt-social-icon:hover svg{ opacity:1; fill:var(--magenta); transform:translateY(-3px); }

/* ---------- Formular ---------- */
.bwkt-form-card{ background:var(--dark); color:var(--cream); padding:60px; }
.bwkt-form-card .bwkt-btn:hover{ background:var(--cream); color:var(--dark); }
.bwkt-form-card h3{ font-size:clamp(22px,2.2vw,28px); margin-bottom:36px; }

.bwkt-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:26px; }
.bwkt-field label{ font-family:"MontserratAlternates",sans-serif; font-size:11px; letter-spacing:.15em; text-transform:uppercase; opacity:.7; }
.bwkt-field input, .bwkt-field select, .bwkt-field textarea{
  background:none; border:none; border-bottom:2px solid rgba(243,237,228,.3);
  color:var(--cream); font-family:"Exo2",sans-serif; font-size:16px; padding:10px 2px;
  outline:none; cursor:none; transition:border-color .3s;
}
.bwkt-field input:focus, .bwkt-field select:focus, .bwkt-field textarea:focus{ border-color:var(--magenta); }
.bwkt-field select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23F3EDE4'><path d='M5 7l5 6 5-6z'/></svg>"); background-repeat:no-repeat; background-position:right 2px center; background-size:16px; }
.bwkt-field select option{ background:var(--dark); color:var(--cream); }
.bwkt-field textarea{ resize:vertical; min-height:110px; font-family:"Exo2",sans-serif; }

.bwkt-consent{ display:flex; align-items:flex-start; gap:12px; margin:30px 0 34px; }
.bwkt-consent input{ margin-top:4px; cursor:pointer; accent-color:var(--magenta); }
.bwkt-consent label{ font-size:13px; opacity:.85; }
.bwkt-consent a{ text-decoration:underline; }
.bwkt-consent a:hover{ color:var(--magenta); }

.bwkt-form-error{ display:none; margin-bottom:26px; padding:14px 18px; background:rgba(196,30,122,.15); border:1px solid var(--magenta); font-size:14px; }
.bwkt-form-error.is-visible{ display:block; }

/* Honeypot – für Menschen unsichtbar, für simple Bots eine Falle */
.bwkt-hp{ position:absolute; left:-9999px; top:-9999px; height:0; width:0; overflow:hidden; }

@media (max-width:1024px){
  .bwkt-contact-grid{ grid-template-columns:1fr; gap:70px; }
  .bwkt-form-card{ padding:44px; }
}
@media (max-width:900px){
  html{ cursor:auto; }
  #bwnv-cursor{ display:none; }
}
@media (max-width:600px){
  .bwkt-form-card{ padding:30px; }
}

