/* ============================================================
   KONTAKT – Formular (.kc-form), Karte (.kc-map), Vor Ihrem Termin (.kc-prep)
   ============================================================ */

.kc-form, .kc-map, .kc-prep{
  position:relative; width:100%; box-sizing:border-box;
  font-family:'Jost',sans-serif; background:#F4EFE6;
}
.kc-form, .kc-prep{padding:0 clamp(18px,3.4vw,52px) clamp(30px,3.6vw,56px);}
.kc-map{padding:clamp(10px,1.4vw,22px) clamp(18px,3.4vw,52px) clamp(30px,3.6vw,56px);}

/* ================= 1) FORMULAR + RAUMBILD ================= */
.kc-form-card{
  position:relative; max-width:1560px; margin:0 auto; overflow:hidden;
  background:#FCFBF7; border:1px solid #E6E1D3; border-radius:22px;
  box-shadow:0 22px 46px -30px rgba(51,68,58,.32), 0 2px 8px rgba(51,68,58,.05);
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
}
.kc-form-body{
  position:relative; z-index:2; background:#FCFBF7;
  padding:clamp(28px,3.2vw,52px) clamp(22px,3.4vw,58px) clamp(30px,3.4vw,54px);
}
.kc-form-h{
  margin:0 0 10px; font-family:'Cormorant Garamond',serif; font-weight:600;
  font-size:clamp(28px,2.4vw,38px); line-height:1.2; color:#4E7654;
}
.kc-form-sub{margin:0 0 26px; font-size:clamp(15px,1.1vw,18px); font-weight:300; color:#3D4A3F; line-height:1.55;}
.kc-form-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px;}
.kc-in{
  box-sizing:border-box; width:100%; min-height:54px;
  background:#FFFFFF; border:1px solid #DDD9CC; border-radius:14px;
  padding:0 18px; font-family:'Jost',sans-serif; font-size:16.5px; font-weight:300; color:#22352A;
  outline:none; transition:border-color .25s ease, box-shadow .25s ease;
}
.kc-in::placeholder{color:#6A756C; opacity:1;}
.kc-in:focus{border-color:#8FA88F; box-shadow:0 0 0 3px rgba(78,118,84,.12);}
.kc-in-full{grid-column:1 / -1;}
select.kc-in{
  color:#6A756C; appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%236a756c" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat; background-position:right 16px center; background-size:18px; padding-right:44px;
}
select.kc-in:focus, select.kc-in.filled{color:#22352A;}
textarea.kc-in{min-height:158px; padding:14px 18px; resize:vertical; line-height:1.55;}
.kc-form-send{
  margin-top:22px; display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:54px; padding:0 30px; border-radius:14px; border:none; cursor:pointer;
  background:#4E7654; color:#FFFFFF; font-family:'Jost',sans-serif; font-weight:500;
  font-size:14.5px; letter-spacing:.09em; text-transform:uppercase;
  transition:background .3s ease, transform .3s ease;
}
.kc-form-send:hover{background:#41654A; transform:translateY(-2px);}
.kc-form-send svg{width:19px; height:19px; flex:none;}
.kc-form-note{
  margin:22px 0 0; display:flex; align-items:center; gap:10px;
  font-size:clamp(14px,1vw,16px); font-weight:300; color:#44503F; line-height:1.5;
}
.kc-form-note svg{width:22px; height:22px; flex:none; color:#4E7654;}
.kc-form-photo{
  position:relative; min-height:420px;
  background:url("../img/kt-room.webp") center/cover no-repeat;
}
.kc-form-fade{
  position:absolute; inset:0 auto 0 0; width:34%; pointer-events:none;
  background:linear-gradient(90deg,#FCFBF7 0%,rgba(252,251,247,.86) 28%,rgba(252,251,247,.38) 66%,rgba(252,251,247,0) 100%);
}

/* ================= 2) KARTE + ANFAHRT ================= */
.kc-map-in{max-width:1560px; margin:0 auto;}
.kc-map-h{
  margin:0 0 clamp(18px,1.8vw,30px); font-family:'Cormorant Garamond',serif; font-weight:600;
  font-size:clamp(28px,2.6vw,42px); line-height:1.15; color:#2F3D33;
}
.kc-map-grid{
  position:relative; overflow:hidden;
  background:#FCFBF7; border:1px solid #E6E1D3; border-radius:22px;
  box-shadow:0 22px 46px -30px rgba(51,68,58,.32), 0 2px 8px rgba(51,68,58,.05);
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
}
.kc-map-frame{position:relative; min-height:520px; overflow:hidden; border-radius:22px 0 0 22px;}
.kc-map-iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
  filter:grayscale(.9) sepia(.28) hue-rotate(62deg) saturate(.5) brightness(1.08) contrast(.92);
}
.kc-map-fade{
  position:absolute; top:0; bottom:0; right:0; width:14%; pointer-events:none; z-index:2;
  background:linear-gradient(90deg,rgba(252,251,247,0) 0%,rgba(252,251,247,.55) 60%,#FCFBF7 100%);
}
.kc-map-pin{
  position:absolute; z-index:4; left:50%; top:22%; transform:translateX(-50%);
  display:flex; align-items:center; gap:14px; background:#FFF; border-radius:16px;
  padding:14px 24px 14px 16px; box-shadow:0 10px 24px rgba(40,60,45,.18);
  text-decoration:none; color:#1F3A2B; font-size:clamp(14px,1.05vw,17px); font-weight:500;
  line-height:1.4; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap;
}
.kc-map-pin svg{width:clamp(30px,2.6vw,42px); height:clamp(30px,2.6vw,42px); flex:none; color:#2F5D3A;}
.kc-map-route{
  position:absolute; z-index:4; left:26px; bottom:26px;
  display:inline-flex; align-items:center; gap:12px; min-height:46px; background:#FFF; border-radius:999px;
  padding:0 26px; box-shadow:0 8px 18px rgba(40,60,45,.22); text-decoration:none; color:#2F5D3A;
  font-size:clamp(13px,.95vw,15px); font-weight:500; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap;
}
.kc-map-route svg{width:20px; height:20px; flex:none;}
.kc-map-info{
  position:relative; z-index:3; background:#FCFBF7;
  padding:clamp(28px,3vw,50px) clamp(22px,3vw,52px) clamp(28px,3vw,50px) clamp(18px,2.2vw,36px);
  display:flex; flex-direction:column; justify-content:center; gap:clamp(22px,2.4vw,38px);
}
.kc-way{display:grid; grid-template-columns:clamp(84px,7vw,120px) minmax(0,1fr); column-gap:clamp(14px,1.6vw,26px); align-items:start;}
.kc-way .kc-ico{width:clamp(84px,7vw,120px); height:clamp(84px,7vw,120px);}
.kc-way .kc-ico img{width:100%; height:100%; object-fit:contain; display:block;}
.kc-way-t{margin:8px 0 8px; font-family:'Jost',sans-serif; font-size:clamp(18px,1.4vw,24px); font-weight:500; color:#1F3A2B; line-height:1.3;}
.kc-way-p{margin:0; font-size:clamp(15px,1.15vw,19px); font-weight:300; line-height:1.65; color:#4A4F48;}

/* ================= 3) VOR IHREM TERMIN ================= */
.kc-prep-card{
  position:relative; max-width:1560px; margin:0 auto; overflow:hidden;
  background:linear-gradient(105deg,#F0F3EA 0%,#F6F7F1 55%,#F2F5EC 100%);
  border:1px solid #DDE4D6; border-radius:22px;
  box-shadow:0 22px 46px -30px rgba(51,68,58,.34), inset 0 0 0 1px rgba(255,255,255,.7);
  padding:clamp(28px,3.2vw,52px) clamp(22px,3.4vw,58px);
  display:grid; grid-template-columns:minmax(0,.62fr) minmax(0,1.9fr); align-items:center; column-gap:clamp(20px,3vw,50px);
}
.kc-prep-head{position:relative; z-index:1;}
.kc-prep-h{margin:0 0 12px; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:clamp(28px,2.6vw,42px); line-height:1.15; color:#1B4A2B;}
.kc-prep-sub{margin:0; font-size:clamp(16px,1.2vw,20px); font-weight:300; color:#22301F; line-height:1.5;}
.kc-prep-items{position:relative; z-index:1; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));}
.kc-prep-item{
  position:relative; display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:6px clamp(8px,1vw,16px);
}
.kc-prep-item + .kc-prep-item::before{
  content:""; position:absolute; left:0; top:12%; bottom:12%; width:1px;
  background:linear-gradient(180deg,rgba(146,160,140,0),rgba(146,160,140,.5) 22%,rgba(146,160,140,.5) 78%,rgba(146,160,140,0));
}
.kc-prep-ico{
  position:relative; width:clamp(92px,7.6vw,124px); height:clamp(92px,7.6vw,124px);
  background:url("../img/kt-badge-empty.webp") center/contain no-repeat;
}
.kc-prep-ico img{
  position:absolute; left:47%; top:46%; width:60%; height:60%; transform:translate(-50%,-50%);
  object-fit:contain; display:block;
}
.kc-prep-l{margin:14px 0 0; font-size:clamp(14.5px,1.05vw,17px); font-weight:400; line-height:1.45; color:#151D16;}
.kc-deco-prep-leaf{position:absolute; left:-6px; bottom:-10px; width:clamp(120px,12vw,210px); height:auto; opacity:.85; pointer-events:none; z-index:0;}

/* ---------- Icon-Animation (gestaffelt), Reduced Motion ---------- */
.kc-ico-auto{--kc-delay:.05s;} .kc-ico-bahn{--kc-delay:.2s;} .kc-ico-barriere{--kc-delay:.35s;}
.kc-ico-karte{--kc-delay:.05s;} .kc-ico-befunde{--kc-delay:.17s;} .kc-ico-plan{--kc-delay:.29s;}
.kc-ico-allergie{--kc-delay:.41s;} .kc-ico-bilder{--kc-delay:.53s;}
@media (prefers-reduced-motion:reduce){
  .kc-form-send, .kc-in{transition:none;}
}

/* ================= TABLET ================= */
@media (max-width:1024px){
  .kc-form-card{grid-template-columns:1fr;}
  .kc-form-photo{min-height:300px; order:2;}
  .kc-form-fade{inset:0 0 auto 0; width:auto; height:36%; background:linear-gradient(180deg,#FCFBF7 0%,rgba(252,251,247,.86) 28%,rgba(252,251,247,.38) 66%,rgba(252,251,247,0) 100%);}
  .kc-map-grid{grid-template-columns:1fr;}
  .kc-map-frame{min-height:400px; border-radius:22px 22px 0 0;}
  .kc-map-fade{top:auto; right:0; left:0; bottom:0; width:auto; height:16%; background:linear-gradient(180deg,rgba(252,251,247,0) 0%,rgba(252,251,247,.55) 60%,#FCFBF7 100%);}
  .kc-map-info{padding:30px 26px 34px;}
  .kc-prep-card{grid-template-columns:1fr; row-gap:26px;}
  .kc-prep-head{text-align:center;}
  .kc-prep-items{grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:26px;}
  .kc-prep-item:nth-child(4)::before{display:none;}
}

/* ================= MOBIL ================= */
@media (max-width:640px){
  .kc-form-body{padding:28px 20px 30px;}
  .kc-form-grid{grid-template-columns:1fr;}
  .kc-form-photo{min-height:240px;}
  .kc-form-send{width:100%;}
  .kc-map-frame{min-height:320px;}
  .kc-map-pin{top:14px; font-size:13px; padding:10px 16px 10px 12px;}
  .kc-map-route{left:14px; bottom:14px;}
  .kc-way{grid-template-columns:76px minmax(0,1fr);}
  .kc-way .kc-ico{width:76px; height:76px;}
  .kc-way-p br{display:none;}
  .kc-prep-card{padding:30px 18px 34px;}
  .kc-prep-items{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:22px;}
  .kc-prep-item:nth-child(odd)::before{display:none;}
  .kc-prep-item:nth-child(4)::before{display:block;}
  .kc-prep-item:nth-child(5){grid-column:1 / -1;}
  .kc-prep-item:nth-child(5)::before{display:none;}
  .kc-prep-ico{width:96px; height:96px;}
  .kc-deco-prep-leaf{width:110px; opacity:.5;}
}
