:root {
  --contact-ink:#21171b;
  --contact-muted:#71676b;
  --contact-line:#e7dfe2;
  --contact-soft:#f7f4f5;
  --contact-dark:#221017;
  --contact-pink:#d60050;
  --contact-pink-dark:#b70053;
}

body[data-page="kontakt"] { margin:0; background:#fff; color:var(--contact-ink); font-family:Inter,sans-serif; }
body[data-page="kontakt"] h1,body[data-page="kontakt"] h2,body[data-page="kontakt"] h3 { font-family:"Plus Jakarta Sans",sans-serif; letter-spacing:-.035em; }
body[data-page="kontakt"] nav.sticky,
body[data-page="kontakt"].nav-scrolled nav.sticky { position:fixed!important; z-index:100; top:0; right:0; left:0; width:100%; margin-inline:auto; border:0!important; border-bottom:1px solid rgba(214,0,80,.1)!important; border-radius:0; background:rgba(255,255,255,.97)!important; box-shadow:0 8px 30px rgba(34,16,23,.06); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); animation:none; }
body[data-page="kontakt"] nav.sticky > div:first-child { width:min(100%,1320px); height:88px!important; padding-inline:clamp(20px,3vw,40px)!important; }
body[data-page="kontakt"] nav.sticky img { width:78px!important; height:78px!important; transform:none; filter:none; }
.contact-main { overflow:clip; padding-top:88px; }
#contact-form { scroll-margin-top:110px; }
.contact-shell { width:min(1320px,calc(100% - 48px)); margin-inline:auto; }
.contact-eyebrow { margin:0 0 18px!important; color:var(--contact-pink)!important; font-size:.72rem!important; font-weight:800; letter-spacing:.16em; line-height:1.3!important; text-transform:uppercase; }

.contact-hero { padding:32px 24px 64px; background:var(--contact-soft); }
.contact-hero__inner { display:grid; grid-template-columns:minmax(380px,.78fr) minmax(620px,1.22fr); gap:24px; width:min(1640px,100%); min-height:0; margin-inline:auto; }
.contact-hero__story { position:relative; display:flex; min-height:680px; flex-direction:column; overflow:hidden; padding:clamp(46px,4vw,72px); color:#fff; border-radius:24px; background:radial-gradient(circle at 15% 8%,rgba(214,0,80,.18),transparent 34%),var(--contact-dark); }
.contact-hero__story h1 { max-width:12ch; margin:0 0 25px; font-size:clamp(3.2rem,4vw,4.8rem); font-weight:800; line-height:.98; }
.contact-hero__story > p { max-width:560px; color:#d0c5c9; font-size:1.08rem; line-height:1.72; }
.contact-hero__contact { display:flex; flex-wrap:wrap; align-items:center; gap:18px 28px; margin:34px 0 42px; }
.contact-hero__phone { display:inline-flex; align-items:center; gap:14px; color:#fff; font-family:"Plus Jakarta Sans",sans-serif; font-size:clamp(1.2rem,2vw,1.65rem); font-weight:800; }
.contact-hero__phone span { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--contact-pink); font-size:1.3rem; }
.contact-hero__email { color:#d8cdd1; font-size:.9rem; text-decoration:underline; text-underline-offset:5px; }
.contact-hero__media { position:relative; flex:1; min-height:245px; margin-top:auto; overflow:hidden; border-radius:18px; }
.contact-hero__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.contact-project-proof::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(18,9,13,.85)); pointer-events:none; }
.contact-project-proof img { transition:transform .55s ease; }
.contact-project-proof:hover img { transform:scale(1.025); }
.contact-project-proof__label { position:absolute; z-index:2; right:24px; bottom:24px; left:24px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:2px 24px; color:#fff; }
.contact-project-proof__label small { grid-column:1; color:#e8dce1; font-size:.67rem; font-style:normal; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.contact-project-proof__label strong { grid-column:1; font-family:"Plus Jakarta Sans",sans-serif; font-size:1.22rem; }
.contact-project-proof__label em { grid-column:2; grid-row:1 / span 2; display:flex; align-items:center; gap:6px; color:#fff; font-size:.72rem; font-style:normal; font-weight:800; }
.contact-project-proof__label .material-symbols-outlined { font-size:1rem; transition:transform .2s ease; }
.contact-project-proof:hover .contact-project-proof__label .material-symbols-outlined { transform:translateX(3px); }

.contact-hero__form-side { display:flex; align-items:flex-start; padding:clamp(46px,4.2vw,72px); border:1px solid var(--contact-line); border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(34,16,23,.08); }
.contact-form { width:100%; max-width:none; margin-inline:auto; }
.contact-form__progress-wrap { margin-bottom:28px; }
.contact-form__progress-copy { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:10px; }
.contact-form__progress-copy strong { color:var(--contact-pink); font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.contact-form__progress-copy span { color:var(--contact-muted); font-size:.7rem; }
.contact-form__progress { position:relative; height:4px; overflow:hidden; border-radius:99px; background:#eee7ea; }
.contact-form__progress span { position:absolute; inset:0 auto 0 0; width:50%; border-radius:inherit; background:var(--contact-pink); transition:width .28s ease; }
.contact-form__progress[data-step="2"] span { width:100%; }
.contact-form__step[hidden] { display:none; }
.contact-form__step { animation:contact-step-in .28s ease both; }
@keyframes contact-step-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.contact-form__head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.contact-form__head > div { min-width:0; }
.contact-form__step-label { display:block; margin-bottom:8px; color:var(--contact-pink); font-size:.68rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.contact-form__head h2 { font-size:clamp(2rem,3vw,3rem); font-weight:800; line-height:1.05; }
.contact-form__head p { max-width:215px; color:var(--contact-muted); font-size:.8rem; line-height:1.55; }
.contact-form__head--simple { display:block; margin-bottom:32px; }
.contact-form__head--simple h2 { max-width:760px; margin:0 0 14px; font-size:clamp(2.5rem,3.7vw,4rem); line-height:1.02; }
.contact-form__head--simple p { max-width:680px; margin:0; font-size:1rem; line-height:1.65; }
.contact-form__simple-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
.contact-form__simple-grid [data-field] { margin:0; }
.contact-form__phone-field,.contact-form__message-field { grid-column:1 / -1; }
.contact-form__message-field textarea { min-height:180px; }
.contact-form [data-field] { margin-bottom:15px; }
.contact-form label { display:block; margin-bottom:7px; color:var(--contact-ink); font-size:.8rem; font-weight:800; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:1px solid #d8cfd3; border-radius:8px; background:#fff; color:var(--contact-ink); font:500 .92rem/1.35 Inter,sans-serif; transition:border-color .2s,box-shadow .2s; }
.contact-form input,.contact-form select { min-height:50px; padding:0 14px; }
.contact-form textarea { min-height:104px; padding:13px 14px; resize:vertical; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { outline:0; border-color:var(--contact-pink); box-shadow:0 0 0 3px rgba(242,13,101,.11); }
.contact-form [aria-invalid="true"] { border-color:#b42318; }
.contact-form [data-field-error] { display:block; min-height:15px; margin-top:4px; color:#b42318; font-size:.7rem; }
.contact-form__route-help { margin:5px 0 0; color:var(--contact-muted); font-size:.72rem; line-height:1.5; }
.contact-form__grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form__contact-note { margin:-3px 0 14px; color:var(--contact-muted); font-size:.72rem; }
.contact-form__privacy { display:flex!important; align-items:flex-start; gap:9px; color:var(--contact-muted)!important; font-weight:500!important; line-height:1.45; }
.contact-form__privacy input { width:17px; min-height:17px; height:17px; margin-top:1px; accent-color:var(--contact-pink); }
.contact-form__privacy a { color:var(--contact-pink); text-decoration:underline; }
.contact-form__next,.contact-form__submit { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:54px; border:0; border-radius:8px; color:#fff; background:var(--contact-pink); font-weight:800; cursor:pointer; transition:background .2s,transform .2s; }
.contact-form__next { margin-top:20px; }
.contact-form__next:hover,.contact-form__submit:hover { background:var(--contact-pink-dark); transform:translateY(-1px); }
.contact-form__microcopy { display:flex; align-items:center; justify-content:center; gap:7px; margin:11px 0 0; color:var(--contact-muted); font-size:.68rem; line-height:1.4; text-align:center; }
.contact-form__microcopy .material-symbols-outlined { color:var(--contact-pink); font-size:.95rem; }
.contact-form__nav { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; margin-top:4px; }
.contact-form__back { display:flex; align-items:center; justify-content:center; gap:6px; min-height:54px; padding:0 17px; border:1px solid var(--contact-line); border-radius:8px; color:var(--contact-ink); background:#fff; font-weight:800; cursor:pointer; transition:border-color .2s,background .2s; }
.contact-form__back:hover { border-color:#cbbdc3; background:var(--contact-soft); }
.contact-form__back .material-symbols-outlined { font-size:1.1rem; }
.contact-form__reassurance { display:flex; align-items:center; justify-content:center; gap:7px; margin:11px 0 0; color:var(--contact-muted); font-size:.72rem; }
.contact-form__privacy-note { margin:13px auto 0; color:var(--contact-muted); font-size:.72rem; line-height:1.55; text-align:center; }
.contact-form__privacy-note a { color:var(--contact-pink); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.contact-form__submit { margin-top:22px; }
.contact-form__optional { margin-top:17px; border-top:1px solid var(--contact-line); border-bottom:1px solid var(--contact-line); }
.contact-form__optional summary { display:flex; align-items:center; justify-content:space-between; padding:17px 0; cursor:pointer; list-style:none; color:var(--contact-ink); font-size:.83rem; font-weight:800; }
.contact-form__optional summary > span { margin-left:auto; padding-right:10px; color:var(--contact-muted); font-size:.65rem; font-weight:600; }
.contact-form__optional summary::after { content:"expand_more"; color:var(--contact-muted); font:400 1.25rem/1 "Material Symbols Outlined"; transition:transform .2s; }
.contact-form__optional[open] summary::after { transform:rotate(180deg); }
.contact-form__optional-fields { padding:3px 0 6px; }
.contact-form__upload { position:relative; }
.contact-form__upload > label:first-child span { color:var(--contact-muted); font-size:.67rem; font-weight:500; }
.contact-form__upload > input { position:absolute; width:1px; height:1px; min-height:0; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.contact-form__upload-button { display:flex!important; align-items:center; justify-content:center; gap:7px; min-height:50px; margin:0!important; border:1px dashed #cbbdc3; border-radius:8px; color:var(--contact-ink)!important; background:var(--contact-soft); cursor:pointer; transition:border-color .2s,background .2s; }
.contact-form__upload-button:hover { border-color:var(--contact-pink); background:#fff4f8; }
.contact-form__upload-button .material-symbols-outlined { font-size:1.05rem; color:var(--contact-pink); }
.contact-form__upload-state { display:block; margin-top:6px; overflow:hidden; color:var(--contact-muted); font-size:.68rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.contact-form__upload > input:focus-visible + .contact-form__upload-button { outline:2px solid var(--contact-pink); outline-offset:2px; }

.contact-process { padding:88px 0; background:#fff; }
.contact-section-head { display:flex; align-items:end; justify-content:space-between; gap:48px; margin-bottom:48px; }
.contact-section-head h2 { max-width:760px; margin:0; font-size:clamp(2.45rem,3.8vw,3.85rem); font-weight:800; line-height:1.06; }
.contact-section-head p { max-width:430px; color:var(--contact-muted); line-height:1.7; }
.contact-process__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.contact-step { position:relative; min-height:230px; padding:30px; border:1px solid var(--contact-line); border-radius:20px; background:linear-gradient(145deg,#fff,var(--contact-soft)); box-shadow:0 18px 45px rgba(34,16,23,.045); }
.contact-step:not(:last-child)::after { display:none; }
.contact-step__number { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; color:var(--contact-pink); border:1px solid rgba(214,0,80,.16); border-radius:14px; background:#fff; font-family:"Plus Jakarta Sans",sans-serif; font-size:1.28rem; font-weight:800; box-shadow:0 10px 24px rgba(214,0,80,.08); }
.contact-step h3 { margin:27px 0 10px; font-size:1.15rem; font-weight:800; }
.contact-step p { color:var(--contact-muted); font-size:.86rem; line-height:1.65; }

.contact-location { padding:72px 24px; border-top:1px solid var(--contact-line); border-bottom:1px solid var(--contact-line); background:var(--contact-soft); }
.contact-location__inner { display:grid; grid-template-columns:minmax(320px,420px) minmax(0,1fr); gap:24px; width:min(1320px,100%); min-height:520px; margin-inline:auto; }
.contact-location__channels { display:flex; flex-direction:column; justify-content:center; padding:28px 32px; border:1px solid var(--contact-line); border-radius:22px; background:#fff; box-shadow:0 20px 55px rgba(34,16,23,.06); }
.contact-channel { display:grid; grid-template-columns:46px minmax(0,1fr); gap:18px; align-items:start; padding:27px 0; border-bottom:1px solid var(--contact-line); }
.contact-channel:last-child { border-bottom:0; }
.contact-channel__icon { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--contact-line); border-radius:50%; color:var(--contact-pink); }
.contact-channel h2 { margin-bottom:5px; font-size:.82rem; font-weight:800; letter-spacing:.03em; }
.contact-channel a,.contact-channel address { overflow-wrap:anywhere; color:var(--contact-ink); font-size:1rem; font-style:normal; font-weight:700; line-height:1.5; }
.contact-channel p { margin-top:4px; color:var(--contact-muted); font-size:.78rem; line-height:1.5; }
.contact-location__map { position:relative; min-height:520px; overflow:hidden; border:1px solid var(--contact-line); border-radius:22px; background:#eae6e7; box-shadow:0 20px 55px rgba(34,16,23,.06); }
.contact-location__map .consent-map-shell,.contact-location__map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.contact-location__map iframe { filter:grayscale(1) contrast(1.03); }

.contact-faq { padding:88px 24px; background:#fff; }
.contact-faq__inner { display:grid; grid-template-columns:minmax(280px,.76fr) minmax(0,1.24fr); gap:72px; align-items:start; width:min(1320px,100%); padding:48px; border:1px solid var(--contact-line); border-radius:24px; background:var(--contact-soft); }
.contact-faq h2 { max-width:500px; font-size:clamp(2.5rem,4vw,3.7rem); font-weight:800; line-height:1.05; }
.contact-faq__intro { margin-top:18px; color:var(--contact-muted); line-height:1.7; }
.contact-faq__list { overflow:hidden; border:1px solid var(--contact-line); border-radius:16px; background:#fff; }
.contact-faq__item { border-bottom:1px solid var(--contact-line); }
.contact-faq__item:last-child { border-bottom:0; }
.contact-faq__item summary { display:flex; justify-content:space-between; gap:24px; padding:22px 24px; cursor:pointer; list-style:none; font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; }
.contact-faq__item summary::after { content:"+"; color:var(--contact-pink); font-size:1.3rem; }
.contact-faq__item[open] summary::after { content:"−"; }
.contact-faq__item p { padding:0 56px 22px 24px; color:var(--contact-muted); line-height:1.7; }

.contact-next { padding:72px 0; color:#fff; background:linear-gradient(120deg,#170e12,var(--contact-dark) 60%,#321520); }
.contact-next__inner { display:grid; grid-template-columns:1fr auto; align-items:center; gap:64px; }
.contact-next h2 { max-width:710px; font-size:clamp(2.2rem,4vw,3.7rem); font-weight:800; line-height:1.06; }
.contact-next p { max-width:690px; margin-top:16px; color:#cbbfc4; line-height:1.65; }
.contact-next__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; max-width:580px; }
.contact-next__actions a { display:flex; align-items:center; justify-content:center; min-height:52px; padding:0 22px; border:1px solid rgba(255,255,255,.25); border-radius:8px; color:#fff; font-size:.83rem; font-weight:800; white-space:nowrap; }
.contact-next__actions a:first-child { border-color:var(--contact-pink); background:var(--contact-pink); }

.contact-mobile-actions { display:none; }
.contact-mobile-actions[hidden] { display:none!important; }
.contact-mobile-actions .material-symbols-outlined { margin-right:6px; font-size:1.12rem; }

@media (max-width:1040px) {
  .contact-hero__inner { grid-template-columns:1fr; }
  .contact-hero__story { min-height:560px; padding:52px; }
  .contact-hero__story h1 { font-size:4.3rem; }
  .contact-hero__media { min-height:260px; }
  .contact-hero__form-side { padding:52px; }
  .contact-form__head { display:block; }
  .contact-form__head p { max-width:none; margin-top:10px; }
  .contact-faq__inner { grid-template-columns:1fr; gap:38px; }
  .contact-next__inner { grid-template-columns:1fr; gap:32px; }
  .contact-next__actions { justify-content:flex-start; }
}

@media (max-width:767px) {
  .contact-shell { width:min(100% - 30px,1320px); }
  body[data-page="kontakt"] nav.sticky > div:first-child { height:74px!important; min-height:74px!important; padding:0 16px!important; }
  body[data-page="kontakt"] nav.sticky img { width:62px!important; height:62px!important; }
  body[data-page="kontakt"] nav.sticky [data-funnel-cta="header-consultation"] { display:none!important; }
  .contact-main { padding-top:74px; padding-bottom:66px; }
  #contact-form { scroll-margin-top:90px; }
  .contact-hero { padding:16px 15px 44px; }
  .contact-hero__inner { display:grid; min-height:0; gap:15px; }
  .contact-hero__story { min-height:0; padding:38px 24px 34px; border-radius:18px; }
  .contact-hero__story h1 { font-size:clamp(2.8rem,13vw,4rem); }
  .contact-hero__story > p { font-size:.98rem; }
  .contact-hero__contact { display:block; margin:26px 0 0; }
  .contact-hero__email { display:inline-block; margin:17px 0 0 60px; }
  .contact-hero__media { display:none; }
  .contact-project-proof__label { right:17px; bottom:17px; left:17px; }
  .contact-project-proof__label em { align-self:center; }
  .contact-hero__form-side { padding:32px 20px 36px; border-radius:18px; }
  .contact-form__progress-wrap { margin-bottom:24px; }
  .contact-form__progress-copy span { font-size:.65rem; }
  .contact-form__head h2 { font-size:2.25rem; }
  .contact-form__head { margin-bottom:21px; }
  .contact-form__simple-grid { grid-template-columns:1fr; gap:4px; }
  .contact-form__phone-field,.contact-form__message-field { grid-column:auto; }
  .contact-form__message-field textarea { min-height:150px; }
  .contact-form__grid { grid-template-columns:1fr; gap:0; }
  .contact-form__nav { grid-template-columns:92px minmax(0,1fr); }
  .contact-form__back { padding-inline:10px; }
  .contact-process { padding:64px 0; }
  .contact-section-head { display:block; margin-bottom:36px; }
  .contact-section-head h2 { font-size:2.5rem; }
  .contact-section-head p { margin-top:16px; }
  .contact-process__steps { grid-template-columns:1fr; gap:14px; }
  .contact-step { min-height:0; padding:24px; }
  .contact-step__number { width:48px; height:48px; }
  .contact-step h3 { margin:22px 0 8px; }
  .contact-location { padding:48px 15px; }
  .contact-location__inner { display:block; }
  .contact-location__channels { padding:22px 20px; border-radius:18px; }
  .contact-location__map { min-height:340px; margin-top:15px; border-radius:18px; }
  .contact-channel { grid-template-columns:42px minmax(0,1fr); gap:14px; padding:22px 0; }
  .contact-channel__icon { width:40px; height:40px; }
  .contact-faq { padding:64px 15px; }
  .contact-faq__inner { width:100%; padding:30px 20px; border-radius:20px; }
  .contact-faq h2 { font-size:2.55rem; }
  .contact-faq__item summary { padding:19px 18px; }
  .contact-faq__item p { padding:0 36px 20px 18px; }
  .contact-next { padding:70px 0 78px; }
  .contact-next h2 { font-size:2.55rem; }
  .contact-next__actions { display:grid; }
  .contact-mobile-actions { position:fixed; z-index:90; left:0; right:0; bottom:0; display:grid; grid-template-columns:.8fr 1.2fr; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); border-top:1px solid var(--contact-line); background:rgba(255,255,255,.96); backdrop-filter:blur(14px); box-shadow:0 -12px 34px rgba(34,16,23,.12); }
  .contact-mobile-actions a { display:flex; align-items:center; justify-content:center; min-height:46px; color:var(--contact-ink); font-size:.84rem; font-weight:800; }
  .contact-mobile-actions a:last-child { border-radius:8px; color:#fff; background:var(--contact-pink); }
}

@media (prefers-reduced-motion:reduce) {
  .contact-form__step { animation:none; }
  .contact-form__next,.contact-form__submit,.contact-form__back,.contact-form__progress span,.contact-form input,.contact-form select,.contact-form textarea,.contact-form__optional summary::after { transition:none; }
}
