/* Tab-Navigation für Reservierung & Kontakt */
.contact-tabs{
  display:flex;
  gap:8px;
  margin:4px 0 24px;
  border-bottom:1px solid var(--c-line);
  padding-bottom:0;
}
.contact-tab{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:13px 16px;
  font-family:var(--f-label);
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--c-brown);
  background:var(--c-cream, #f6f1e7);
  border:1px solid var(--c-line);
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.contact-tab:hover{
  color:var(--c-ink);
  border-color:var(--c-gold);
}
.contact-tab.is-active{
  background:var(--c-white, #fff);
  color:var(--c-ink);
  border-color:var(--c-line);
  border-bottom:2px solid var(--c-gold);
  font-weight:600;
}
.contact-tab svg{
  color:var(--c-gold);
  flex-shrink:0;
}

.contact-tab-panel[hidden]{
  display:none !important;
}

.contact-form{ display:flex; flex-direction:column; gap:20px; }
.field{ display:flex; flex-direction:column; gap:8px; flex:1; }
.field-row{ display:flex; gap:20px; }
label{
  font-family:var(--f-label); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-brown);
  display:flex; align-items:baseline; gap:6px; flex-wrap:wrap;
}
.label-optional{
  font-size:.66rem;
  letter-spacing:.08em;
  text-transform:none;
  color:#8a7b6a;
  font-weight:400;
}
input, select, textarea{
  font-family:var(--f-body); font-size:1rem; color:var(--c-ink);
  background:var(--c-white); border:1px solid var(--c-line);
  padding:13px 14px; border-radius:1px; resize:vertical;
  width:100%; box-sizing:border-box;
}
select{
  cursor:pointer;
  appearance:auto;
}
select:disabled{
  background:#f4efe6;
  color:#8a7b6a;
  cursor:not-allowed;
}
input:focus, select:focus, textarea:focus{ border-color:var(--c-gold); outline:none; }
.contact-form .btn{ align-self:flex-start; }
.form-status{ font-family:var(--f-label); font-size:.82rem; color:var(--c-gold); min-height:1.2em; margin:0; }

.opening-hint{
  margin:-8px 0 0;
  padding:9px 12px;
  font-size:.84rem;
  color:var(--c-brown);
  background:rgba(180, 134, 63, 0.08);
  border-left:2px solid var(--c-gold);
}
.opening-hint.is-warning{
  color:#9b2c2c;
  background:rgba(197, 48, 48, 0.08);
  border-left-color:#c53030;
}

/* Unsichtbarer Honeypot & Background-Captcha */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.cf-turnstile-wrap{
  min-height:0;
  line-height:0;
}

.contact-info{ list-style:none; margin:22px 0 0; padding:0; }
.contact-info li{ padding:10px 0; border-bottom:1px solid var(--c-line); font-size:.98rem; }
.contact-info li:last-child{ border-bottom:0; }
.contact-info a:hover{ color:var(--c-gold); }

.map-frame{
  position:relative; width:100%; padding-bottom:42%; min-height:320px;
  border:1px solid var(--c-line); box-shadow:var(--shadow-frame);
}
.map-frame iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.85) contrast(1.02);
}

@media (max-width:640px){
  .contact-tabs{ flex-direction:column; gap:6px; border-bottom:0; }
  .contact-tab{ margin-bottom:0; border-bottom:1px solid var(--c-line); }
  .contact-tab.is-active{ border-color:var(--c-gold); }
  .field-row{ flex-direction:column; }
  .map-frame{ padding-bottom:90%; }
}
