
* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --navy:#1F3564; --navy-dark:#152344; --gold:#C9A84C; --gold-light:#e2c47a;
  --gold-pale:#EDE4CC; --white:#ffffff; --offwhite:#F7F3ED; --text:#1a1a2e; --muted:#5a5a7a;
}
body { font-family:'Montserrat',Arial,sans-serif; background:var(--offwhite); color:var(--text); }

.lang-bar {
  background:var(--navy-dark); display:flex; justify-content:flex-end;
  align-items:center; padding:5px 2rem; gap:6px;
  border-bottom:1px solid rgba(201,168,76,0.3);
}
.lang-btn {
  background:none; border:1.5px solid transparent; border-radius:4px;
  cursor:pointer; padding:3px 10px; display:flex; align-items:center; gap:5px;
  font-size:11px; font-weight:600; color:rgba(255,255,255,0.6);
  letter-spacing:1px; transition:all 0.2s; font-family:Arial,sans-serif;
}
.lang-btn:hover { border-color:var(--gold); color:var(--gold); }
.lang-btn.active { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,0.1); }

nav {
  background:var(--white); padding:0 2rem;
  display:flex; align-items:center; justify-content:space-between;
  height:120px; border-bottom:2px solid var(--gold);
  position:sticky; top:0; z-index:100;
  box-shadow:0 2px 12px rgba(27,42,107,0.07);
  overflow:visible;
}
.nav-logo { display:flex; align-items:center; cursor:pointer; padding:0; }
.nav-logo img { height:96px; width:auto; object-fit:contain; display:block; }
.nav-links { display:flex; gap:0; list-style:none; }
.nav-links li a {
  color:var(--muted); text-decoration:none; font-size:14px; font-weight:600;
  letter-spacing:1.5px; text-transform:uppercase; padding:0 18px; height:120px;
  display:flex; align-items:center; border-bottom:2px solid transparent;
  transition:color .2s,border-color .2s; cursor:pointer;
}
.nav-links li a:hover,.nav-links li a.active { color:var(--navy); border-bottom-color:var(--gold); }
.nav-cta {
  background: #e2c47a;
  color: #1a1200;
  border: none;
  padding:12px 22px; font-size:12px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; cursor:pointer; border-radius:3px;
  box-shadow: 0 2px 8px rgba(201,168,76,0.2);
}

.page { display:none; animation:fadeIn .3s ease; }
.page.active { display:block; }
@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
.page.active::after {
  content:""; position:fixed; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:450px; height:450px;
  background-image:url("img/71c5533de6a6d922.png");
  background-repeat:no-repeat; background-position:center; background-size:contain;
  opacity:0.06; pointer-events:none; z-index:9999;
}
.hero { background:#FFFCF8; padding:5rem 2rem 4rem; text-align:center; border-bottom:3px solid var(--gold); }
.eyebrow { color:var(--gold); font-size:10px; font-weight:600; letter-spacing:4px; text-transform:uppercase; margin-bottom:1rem; }
.hero h1 { color:var(--navy); font-size:44px; font-weight:300; line-height:1.2; margin-bottom:1rem; font-family:'Cormorant Garamond',Georgia,serif; }
.hero h1 span { color:var(--gold); font-weight:600; }
.hero p { color:var(--muted); font-size:15px; font-weight:400; max-width:520px; margin:0 auto 2rem; line-height:1.8; }
.hero-div { width:50px; height:1px; background:var(--gold); margin:.75rem auto 1.5rem; }
.btn-gold { background:var(--gold); color:var(--navy-dark); border:none; padding:13px 28px; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; border-radius:3px; }
.btn-out { background:transparent; color:var(--navy); border:1.5px solid var(--navy); padding:12px 28px; font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; border-radius:3px; }
.hero-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.stats-bar { background:var(--gold-pale); border-bottom:1px solid var(--gold-light); padding:1.5rem 2rem; display:flex; justify-content:center; gap:3rem; flex-wrap:wrap; }
.stat-num { font-size:26px; font-weight:600; color:var(--navy); font-family:'Cormorant Garamond',Georgia,serif; }
.stat-label { font-size:11px; color:var(--muted); letter-spacing:1px; text-transform:uppercase; text-align:center; font-weight:500; }
.section { padding:3.5rem 2rem; max-width:1100px; margin:0 auto; }
.sec-title { text-align:center; margin-bottom:2.5rem; }
.sec-title h2 { font-size:30px; color:var(--navy); font-weight:300; font-family:'Cormorant Garamond',Georgia,serif; }
.sec-title .gl { width:40px; height:1px; background:var(--gold); margin:.75rem auto 0; }
.sec-title p { color:var(--muted); font-size:13px; margin-top:.75rem; }
.services-grid { display:block; }
.services-row-1 { display:grid; grid-template-columns: repeat(3,1fr); gap:1.5rem; margin-bottom:1.5rem; }
.services-row-2 { display:grid; grid-template-columns: repeat(2,1fr); gap:1.5rem; width:calc(66.66% - 0.5rem); margin:0 auto; }
.svc { background:#FFFCF8; border:.5px solid #e0d9c8; border-top:3px solid var(--gold); padding:1.5rem; border-radius:4px; text-align:center; box-shadow:0 2px 8px rgba(27,42,107,0.04); }
.svc-icon { width:44px; height:44px; margin:0 auto 1rem; background:var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.svc h3 { font-size:15px; color:var(--navy); margin-bottom:.75rem; font-family:'Cormorant Garamond',Georgia,serif; font-weight:600; }
.svc p { font-size:13px; color:var(--muted); line-height:1.7; font-weight:400; }
.svc::after { content:"Anfragen →"; display:block; margin-top:0.75rem; font-size:10px; color:var(--gold); letter-spacing:1px; font-weight:700; text-transform:uppercase; opacity:0; transition:opacity 0.2s; }
.svc:hover::after { opacity:1; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.about-text h2 { font-size:30px; color:var(--navy); font-weight:300; font-family:'Cormorant Garamond',Georgia,serif; margin-bottom:.75rem; }
.about-text p { font-size:14px; color:var(--muted); line-height:1.9; margin-bottom:1rem; font-weight:400; }
.gl-left { width:40px; height:1px; background:var(--gold); margin-bottom:1.5rem; }
.team-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.team-card { background:#FFFCF8; border:.5px solid #ddd; border-radius:6px; padding:1.25rem; text-align:center; }
.team-avatar { width:56px; height:56px; border-radius:50%; background:var(--navy); border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto .75rem; font-size:17px; font-weight:600; color:var(--gold); font-family:'Cormorant Garamond',Georgia,serif; }
.team-card h4 { font-size:13px; color:var(--navy); margin-bottom:2px; font-weight:600; }
.team-card p { font-size:12px; color:var(--muted); font-weight:400; }
.contact-wrap { background:#FFFCF8; border-top:2px solid var(--gold); padding:3.5rem 2rem; }
.contact-inner { max-width:800px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.ci h2 { color:var(--navy); font-size:28px; font-weight:300; font-family:'Cormorant Garamond',Georgia,serif; margin-bottom:.5rem; }
.gl-w { width:40px; height:1px; background:var(--gold); margin-bottom:1.5rem; }
.citem { margin-bottom:1rem; }
.citem label { display:block; font-size:9px; color:var(--gold); letter-spacing:2px; text-transform:uppercase; margin-bottom:2px; font-weight:700; }
.citem span { color:var(--muted); font-size:14px; line-height:1.6; display:block; font-weight:400; }
.cf h3 { color:var(--navy); font-size:11px; letter-spacing:2px; text-transform:uppercase; margin-bottom:1rem; font-weight:700; }
.cf input,.cf select,.cf textarea { width:100%; background:var(--offwhite); border:1px solid #d0cfc8; color:var(--text); padding:10px 12px; font-size:13px; border-radius:3px; outline:none; font-family:inherit; margin-bottom:10px; }
.cf textarea { height:90px; resize:none; }
.cf button { width:100%; background:var(--navy); color:var(--gold); border:none; padding:12px; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; border-radius:3px; }
.map-placeholder { background:var(--gold-pale); border:1px solid var(--gold-light); height:200px; display:flex; align-items:center; justify-content:center; border-radius:6px; margin-top:2rem; max-width:800px; margin-left:auto; margin-right:auto; }
.empty-state { text-align:center; padding:4rem 1rem; background:var(--white); border:1px dashed #d0cfc8; border-radius:6px; }
.empty-state svg { margin-bottom:1.25rem; opacity:0.25; }
.empty-state h3 { font-family:Georgia,serif; font-weight:400; color:var(--navy); font-size:20px; margin-bottom:0.75rem; }
.empty-state p { color:var(--muted); font-size:13px; max-width:420px; margin:0 auto 1.5rem; line-height:1.7; font-weight:400; }
footer { background:var(--navy-dark); padding:1.25rem 2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; border-top:2px solid var(--gold); }
footer span { color:rgba(255,255,255,.6); font-size:12px; }
footer .gt { color:var(--gold); }

footer .legal-link {
  background: none;
  border: none;
  color: rgba(255,255,255,.65);
  font-size: 12px;
  font-family: inherit;
  cursor: pointer;
  padding: 0;
}
footer .legal-link:hover { color: var(--gold); }
footer .legal-sep { margin: 0 0.35rem; color: rgba(255,255,255,.45); }
.legal-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2200;
  background: rgba(21,35,68,0.62);
  backdrop-filter: blur(3px);
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.legal-modal.open { display: flex; }
.legal-box {
  width: min(760px, 100%);
  max-height: 86vh;
  overflow-y: auto;
  background: var(--white);
  border: 1px solid rgba(201,168,76,0.35);
  border-top: 3px solid var(--gold);
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(21,35,68,0.25);
  padding: 2rem;
  position: relative;
}
.legal-box h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  color: var(--navy);
  font-size: 30px;
  font-weight: 400;
  margin-bottom: 1rem;
}
.legal-box h3 { color: var(--navy); font-size: 15px; margin: 1.2rem 0 0.4rem; }
.legal-box p, .legal-box li { color: var(--muted); font-size: 14px; line-height: 1.7; }
.legal-box ul { padding-left: 1.2rem; margin: 0.35rem 0; }
.legal-close {
  position: absolute; top: 1rem; right: 1rem;
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid #e0d9c8; background: none; color: var(--muted);
  cursor: pointer; font-size: 16px;
}
.legal-close:hover { border-color: var(--navy); color: var(--navy); }
@media(max-width:640px){
  .about-grid,.contact-inner,.team-grid{grid-template-columns:1fr;}
  .hero h1{font-size:28px;} .nav-links{display:none;}
}

/* Premium image styles */
.hero-bg {
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}
.hero-bg::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(720px, calc(100% - 2rem));
  height: 360px;
  transform: translate(-50%, -48%);
  background: radial-gradient(ellipse at center, rgba(15,25,60,0.46) 0%, rgba(15,25,60,0.34) 45%, rgba(15,25,60,0.16) 72%, rgba(15,25,60,0) 100%);
  border-radius: 24px;
  pointer-events: none;
  z-index: 0;
}
.hero-bg > * {
  position: relative;
  z-index: 1;
}
.hero-bg .eyebrow,
.hero-bg h1,
.hero-bg h1 span,
.hero-bg p {
  text-shadow: 0 2px 12px rgba(0,0,0,0.55), 0 1px 2px rgba(0,0,0,0.45);
}
.hero-bg .eyebrow { color: #C9A84C; }
.hero-bg h1 { color: #ffffff; }
.hero-bg h1 span { color: #C9A84C; }
.hero-bg p { color: rgba(255,255,255,0.88); }
.hero-bg .btn-out { color: #fff; border-color: rgba(255,255,255,0.6); }

.img-banner {
  position: relative;
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  padding: 5rem 2rem;
  text-align: center;
  overflow: hidden;
}
.img-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,25,60,0.62);
  z-index: 0;
}
.img-banner > * { position: relative; z-index: 1; }
.img-banner h2 { color: #fff; font-size: 32px; font-weight: 300; font-family: "Cormorant Garamond",Georgia,serif; margin-bottom: 0.5rem; }
.img-banner h2 span { color: #C9A84C; }
.img-banner p { color: rgba(255,255,255,0.82); font-size: 15px; max-width: 520px; margin: 0.75rem auto 1.5rem; line-height: 1.8; }
.img-banner .gl { width: 40px; height: 1px; background: #C9A84C; margin: 0.75rem auto; }

.img-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
}
.img-split-photo {
  background-size: cover;
  background-position: center;
  min-height: 320px;
}
.img-split-text {
  background: #1F3564;
  padding: 3.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.img-split-text h2 { color: #fff; font-size: 28px; font-weight: 300; font-family: "Cormorant Garamond",Georgia,serif; margin-bottom: 0.75rem; }
.img-split-text .gl-w { width: 40px; height: 1px; background: #C9A84C; margin-bottom: 1.5rem; }
.img-split-text p { color: rgba(255,255,255,0.82); font-size: 14px; line-height: 1.9; margin-bottom: 1rem; }

.gallery-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  height: 260px;
  overflow: hidden;
}
.gallery-strip-img {
  background-size: cover;
  background-position: center;
  transition: transform 0.4s ease;
  overflow: hidden;
}
.gallery-strip-img:hover { transform: scale(1.02); }

@media(max-width:640px){
  .img-split { grid-template-columns: 1fr; }
  .gallery-strip { grid-template-columns: 1fr; height: auto; }
  .gallery-strip-img { height: 200px; }
  .img-banner { background-attachment: scroll; }
}

@media(max-width:768px) {
  /* Nav: hide links and phone, show only logo + CTA */
  .nav-links { display:none !important; }
  .nav-phone { display:none !important; }
  nav { height:72px; padding:0 1rem; }
  .nav-logo img { height:64px; }
  .nav-cta { font-size:10px; padding:8px 10px; letter-spacing:0.5px; }

  /* Hero */
  .hero { padding:2.5rem 1rem 2rem; }
  .hero h1 { font-size:26px; line-height:1.3; }
  .hero p { font-size:13px; }
  .hero-btns, div.hero-btns { flex-direction:column; align-items:center; gap:10px; }
  .btn-gold, .btn-out { width:100%; max-width:260px; text-align:center; }

  /* Stats bar */
  .stats-bar { flex-wrap:wrap; }
  .stat { width:50%; padding:0.75rem 0.5rem; }

  /* Gallery strip */
  .gallery-strip { grid-template-columns:1fr !important; height:auto !important; }
  .gallery-strip-img { height:200px !important; }

  /* Entry tiles on home */
  div[style*="grid-template-columns:repeat(auto-fill"] { grid-template-columns:1fr 1fr !important; }

  /* Services */
  .services-row-1 { grid-template-columns:1fr 1fr !important; }
  .services-row-2 { display:grid !important; grid-template-columns:1fr !important; width:100% !important; margin:0 auto !important; }
  .services-row-2 .svc { width:100% !important; }

  /* Image banners */
  .img-banner { padding:2.5rem 1rem; background-attachment:scroll !important; }
  .img-banner h2 { font-size:22px; }

  /* About / contact grids */
  .about-grid, .contact-inner, .team-grid { grid-template-columns:1fr !important; }
  .img-split { grid-template-columns:1fr !important; }
  .img-split-text { padding:2rem 1.25rem; }

  /* Section padding */
  .section { padding:2rem 1rem; }

  /* Contact form - prevent iOS zoom */
  input, select, textarea { font-size:16px !important; }

  /* Footer */
  footer { flex-direction:column; gap:6px; text-align:center; padding:1rem; font-size:11px; }
}

@media(max-width:480px) {
  .hero h1 { font-size:22px; }
  .stat { width:100%; }
  div[style*="grid-template-columns:repeat(auto-fill"] { grid-template-columns:1fr !important; }
  .services-row-1 { grid-template-columns:1fr !important; }
}

/* ── FORMULARE MODAL ── */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow-y: auto;
  background: rgba(27,42,107,0.18);
  backdrop-filter: blur(2px);
}
.modal-overlay.open { display: block; }

.modal-container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(160deg, #F7F3ED 0%, #EEF1F8 60%, #E8EDF6 100%);
  position: relative;
}



/* Header */
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 2.5rem;
  background: var(--white);
  border-bottom: 2px solid var(--gold);
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 2px 12px rgba(27,42,107,0.06);
}
.modal-header-left {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.modal-logo-home { cursor:pointer; }
.modal-logo-home:hover img { opacity:0.92; }

.modal-header-logo {
  height: 44px;
  width: auto;
  display: block;
  padding-right: 1.25rem;
  border-right: 1px solid #e0d9c8;
}
.modal-header h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--navy);
  margin: 0;
}
.modal-header h2 span { color: var(--gold); }
.modal-header-sub {
  font-size: 12px;
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  margin-top: 2px;
}
.modal-close {
  background: none;
  border: 1px solid #e0d9c8;
  color: var(--muted);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s;
}
.modal-close:hover { border-color: var(--navy); color: var(--navy); }

/* Tabs */
.modal-tabs {
  display: flex;
  background: var(--white);
  border-bottom: 1px solid #e8e4dc;
  overflow-x: auto;
  padding: 0 2.5rem;
  gap: 0;
  position: sticky;
  top: 73px;
  z-index: 9;
  box-shadow: 0 2px 8px rgba(27,42,107,0.04);
}
.modal-tab {
  padding: 0.9rem 1.1rem;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  border: none;
  background: none;
  white-space: nowrap;
  font-family: 'Montserrat', sans-serif;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: all .2s;
  display: flex;
  align-items: center;
  gap: 7px;
}
.modal-tab:hover { color: var(--navy); }
.modal-tab.active { color: var(--navy); border-bottom-color: var(--gold); }
.modal-tab svg { opacity: 0.5; }
.modal-tab.active svg { opacity: 1; }

/* Content */
.modal-content {
  flex: 1;
  padding: 2.5rem 2.5rem 3rem;
  position: relative;
  z-index: 1;
}
.modal-panel { display: none; max-width: 700px; margin: 0 auto; }
.modal-panel.active { display: block; }

/* Intro */
.modal-intro {
  text-align: center;
  margin-bottom: 2rem;
}
.modal-intro h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 26px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 0.5rem;
}
.modal-intro p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.75;
  font-family: 'Montserrat', sans-serif;
}
.modal-intro-line {
  width: 36px;
  height: 1px;
  background: var(--gold);
  margin: 0.75rem auto;
}

/* Progress */
.progress-wrap { margin-bottom: 2rem; }
.progress-steps {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
}
.progress-step { display: flex; align-items: center; flex: 1; }
.progress-dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #e8e4dc;
  border: 1.5px solid #d0ccc4;
  color: #aaa;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .3s;
  font-family: 'Montserrat', sans-serif;
  position: relative;
  z-index: 1;
}
.progress-dot.active {
  background: var(--gold);
  border-color: var(--gold);
  color: #1a1200;
  box-shadow: 0 2px 8px rgba(201,168,76,0.35);
}
.progress-dot.done {
  background: rgba(201,168,76,0.15);
  border-color: var(--gold);
  color: var(--gold);
}
.progress-line {
  flex: 1;
  height: 1px;
  background: #e0dcd4;
  transition: background .3s;
}
.progress-line.done { background: rgba(201,168,76,0.5); }
.progress-labels { display: flex; }
.progress-label {
  flex: 1;
  font-size: 12px;
  color: #b0aa9f;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.5px;
  text-align: center;
}
.progress-label:first-child { text-align: left; }
.progress-label:last-child { text-align: right; }
.progress-label.active { color: var(--navy); font-weight: 600; }

/* Form card */
.form-card {
  background: var(--white);
  border: 1px solid #e8e4dc;
  border-radius: 10px;
  padding: 1.75rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 2px 16px rgba(27,42,107,0.05);
}
.form-card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 0.3rem;
}
.form-card-line { width: 24px; height: 1px; background: var(--gold); margin-bottom: 1.25rem; }

.form-desc {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.75;
  margin-bottom: 1.75rem;
  font-family: 'Montserrat', sans-serif;
  font-style: italic;
}

/* Fields */
.flabel {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 5px;
  font-family: 'Montserrat', sans-serif;
}
.flabel-req::after { content: ' *'; color: var(--gold); }
.finput {
  width: 100%;
  padding: 10px 13px;
  border: 1px solid #ddd8cf;
  border-radius: 7px;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  color: var(--text);
  background: var(--white);
  transition: all .2s;
  outline: none;
  box-sizing: border-box;
}
.finput::placeholder { color: #c0bbb4; }
.finput:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,168,76,0.1); }
select.finput { appearance: auto; cursor: pointer; }
.conditional-detail {
  display: none;
  grid-column: 1 / -1;
  margin-top: -0.15rem;
  padding: 1rem 1.1rem;
  background: rgba(237, 228, 204, 0.34);
  border: 1px solid rgba(201,168,76,0.28);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  animation: fadeIn .2s ease;
}
.conditional-detail .flabel { margin-bottom: .45rem; }
.conditional-detail textarea.finput { resize: vertical; min-height: 82px; }
.conditional-state-group { display: none; }
.conditional-state-title {
  font-family: 'Georgia', serif;
  color: var(--navy);
  font-size: 16px;
  margin: 0 0 .75rem;
}
.conditional-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem .9rem;
}
.conditional-option-grid .fcheck {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
}
.conditional-note {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  margin-top: .75rem;
}

.checkbox-extra {
  display: none;
  grid-column: 1 / -1;
  margin: .45rem 0 0 1.7rem;
  padding: .65rem .75rem;
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(201,168,76,0.22);
  border-radius: 6px;
}
.checkbox-extra-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: .35rem;
}
.detail-check input[type="checkbox"]:checked ~ .checkbox-extra { display: block; }
.detail-check { align-items: flex-start; flex-direction: column; }
.detail-check > input[type="checkbox"] { margin-right: .45rem; }
.detail-check .check-main { display: inline-flex; align-items: center; }
.detail-check .check-main input { margin-right: .45rem; }

@media (max-width: 640px) {
  .conditional-option-grid { grid-template-columns: 1fr; }
}


.finput-file {
  width: 100%;
  padding: 8px 0;
  font-size: 14px;
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
}
.fcheck {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 15px;
  color: var(--text);
  cursor: pointer;
  padding: 5px 0;
  font-family: 'Montserrat', sans-serif;
  line-height: 1.5;
}
.fcheck input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: var(--navy);
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 2px;
}
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fgrid-full { grid-column: span 2; }
.fblock { margin-bottom: 1.1rem; }
.fblock h4 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 19px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 0.3rem;
}
.fblock-line { width: 24px; height: 1px; background: var(--gold); margin-bottom: 1rem; }

/* Privacy */
.fprivacy {
  background: rgba(201,168,76,0.06);
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: 7px;
  padding: 0.875rem 1.1rem;
  margin-bottom: 1.25rem;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
  font-family: 'Montserrat', sans-serif;
}

/* Nav buttons */
.form-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.75rem;
}
.btn-back {
  background: transparent;
  border: 1px solid #d0ccc4;
  color: var(--muted);
  padding: 10px 22px;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.5px;
  transition: all .2s;
}
.btn-back:hover { border-color: var(--navy); color: var(--navy); }
.btn-next {
  background: var(--navy);
  border: none;
  color: var(--gold);
  padding: 11px 30px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: all .2s;
}
.btn-next:hover { background: #152344; }
.btn-submit {
  background: var(--gold);
  border: none;
  color: #1a1200;
  padding: 12px 36px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: all .2s;
  box-shadow: 0 2px 10px rgba(201,168,76,0.25);
}
.btn-submit:hover { background: #e2c47a; }

/* Trust bar */
.trust-bar {
  display: flex;
  gap: 2rem;
  justify-content: center;
  padding: 1.5rem 0 0;
  flex-wrap: wrap;
  border-top: 1px solid #e8e4dc;
  margin-top: 2rem;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
}
.trust-icon { color: var(--gold); }

/* Success */
.fsuccess {
  display: none;
  text-align: center;
  padding: 3rem 1rem;
}
.fsuccess-icon {
  width: 60px;
  height: 60px;
  background: rgba(201,168,76,0.1);
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-size: 22px;
  color: var(--gold);
}
.fsuccess h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 28px;
  color: var(--navy);
  font-weight: 400;
  margin-bottom: 0.5rem;
}
.fsuccess .gold-line { width: 36px; height: 1px; background: var(--gold); margin: 0.75rem auto; }
.fsuccess p { color: var(--muted); font-size: 15px; font-family: 'Montserrat', sans-serif; }

@media(max-width:768px) {
  .modal-header { padding: 1rem; }
  .modal-header-logo { display: none; }
  .modal-header img[alt="MA Property Sale"] { height: 52px !important; }
  .modal-tabs { padding: 0 1rem; top: 65px; }
  .modal-tab { padding: 0.75rem 0.75rem; font-size: 10px; gap: 5px; }
  .modal-content { padding: 1.5rem 1rem 2rem; }
  .form-card { padding: 1.25rem; }
  .fgrid { grid-template-columns: 1fr; }
  .fgrid-full { grid-column: span 1; }
  .trust-bar { gap: 1rem; }
  .modal-container::before { display: none; }
}

/* ── HAMBURGER MENU ── */
.hamburger-btn {
  display: flex;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  background: none;
  border: none;
  margin-left: 0.75rem;
  flex-shrink: 0;
}
.hamburger-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--navy);
  border-radius: 2px;
  transition: all 0.3s ease;
}
.hamburger-btn.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger-btn.open span:nth-child(2) { opacity: 0; }
.hamburger-btn.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Drawer overlay */
.drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15,25,60,0.45);
  z-index: 500;
  backdrop-filter: blur(2px);
}
.drawer-overlay.open { display: block; }

/* Drawer panel */
.drawer {
  position: fixed;
  top: 0;
  right: -320px;
  width: 300px;
  height: 100vh;
  background: var(--white);
  z-index: 501;
  box-shadow: -4px 0 30px rgba(15,25,60,0.15);
  transition: right 0.35s cubic-bezier(0.4,0,0.2,1);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.drawer.open { right: 0; }

.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 2px solid var(--gold);
  flex-shrink: 0;
}
.drawer-logo {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 16px;
  color: var(--navy);
  font-weight: 400;
  letter-spacing: 1px;
}
.drawer-logo span { color: var(--gold); }
.drawer-close {
  background: none;
  border: 1px solid #e0d9c8;
  color: var(--muted);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s;
}
.drawer-close:hover { border-color: var(--navy); color: var(--navy); }

.drawer-section {
  padding: 1rem 0;
  border-bottom: 1px solid #f0ece4;
}
.drawer-section-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  padding: 0 1.5rem 0.5rem;
  font-family: 'Montserrat', sans-serif;
}
.drawer-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0.7rem 1.5rem;
  font-size: 13px;
  font-weight: 500;
  color: var(--navy);
  cursor: pointer;
  transition: background .15s;
  font-family: 'Montserrat', sans-serif;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  text-decoration: none;
}
.drawer-item:hover { background: rgba(201,168,76,0.08); color: var(--navy); }
.drawer-item svg { flex-shrink: 0; opacity: 0.6; }
.drawer-item:hover svg { opacity: 1; }
.drawer-item-sub {
  font-size: 11px;
  color: var(--muted);
  padding: 0.5rem 1.5rem 0.5rem 3.1rem;
  font-family: 'Montserrat', sans-serif;
  font-style: italic;
}

.drawer-footer {
  padding: 1.25rem 1.5rem;
  margin-top: auto;
  border-top: 1px solid #f0ece4;
}
.drawer-footer a {
  display: block;
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
  margin-bottom: 4px;
  font-family: 'Montserrat', sans-serif;
}
.drawer-footer a:hover { color: var(--navy); }


.flag-icon {
  width: 18px;
  height: 12px;
  object-fit: cover;
  display: inline-block;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.35);
  flex: 0 0 auto;
}
.lang-btn { gap: 6px; }


/* Listings generated by admin */
.listings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;max-width:1180px;margin:0 auto;}
.listing-card{background:#fff;border:1px solid #e8e4dc;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(27,42,107,.08);display:flex;flex-direction:column;min-height:100%;}
.listing-card-img{height:220px;background:#f1eadf;background-size:cover;background-position:center;}
.listing-card-body{padding:1.35rem;display:flex;flex-direction:column;gap:.75rem;flex:1;}
.listing-badge{display:inline-flex;align-self:flex-start;background:rgba(201,168,76,.16);color:#1F3564;border:1px solid rgba(201,168,76,.5);font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;padding:.35rem .55rem;border-radius:999px;}
.listing-card h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:400;color:#1F3564;line-height:1.12;margin:0;}
.listing-meta{display:flex;flex-wrap:wrap;gap:.45rem .75rem;color:#5a5a7a;font-size:13px;line-height:1.5;}
.listing-price{font-size:18px;font-weight:700;color:#1a1a2e;}
.listing-desc{font-size:14px;color:#5a5a7a;line-height:1.7;}
.listing-detail{max-width:980px;margin:0 auto;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(27,42,107,.08);}
.listing-detail-hero{height:420px;background-size:cover;background-position:center;background-color:#f1eadf;}
.listing-detail-body{padding:2rem;}
.listing-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-top:1.5rem;}
.listing-gallery img{width:100%;height:150px;object-fit:cover;border-radius:12px;}
.listing-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:1.5rem 0;}
.listing-fact{background:#F7F3ED;border-radius:12px;padding:.85rem;}
.listing-fact strong{display:block;color:#1F3564;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-bottom:.25rem;}

/* Kontaktformulare V2: klarere Struktur, weniger Wiederholungen, bessere Bedienung */
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .9rem;margin-top:.35rem}
.choice-grid label{font-size:13px;color:var(--muted);font-weight:500;background:#fff;border:1px solid #e8e4dc;border-radius:8px;padding:.65rem .75rem;display:flex;gap:.45rem;align-items:center}
.choice-grid input{width:auto;margin:0;accent-color:var(--gold)}
.consent-line{display:flex;gap:.55rem;align-items:flex-start;margin-top:.75rem;font-size:12px;line-height:1.5;color:var(--muted);font-weight:500}
.consent-line input{width:auto;margin-top:.15rem;accent-color:var(--gold)}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.clean-form-intro p{max-width:650px}
.modal-dynamic-nav{margin-top:1.25rem}
.clean-modal-form .form-card{margin-top:1rem}
.clean-modal-form .fgrid-full{grid-column:1/-1}
.clean-success{text-align:center;padding:2rem 1rem}
.clean-success .fsuccess-icon{margin-left:auto;margin-right:auto}
.progress-line.active{background:var(--gold)}
@media(max-width:720px){.choice-grid{grid-template-columns:1fr}.clean-modal-form .fgrid{grid-template-columns:1fr}.modal-tabs{top:70px}}

/* Kontaktformular Fix v3 */
.hp-field,[name="website"]{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;display:none!important}
.clean-modal-form input:not([type="checkbox"]):not([type="radio"]),
.clean-modal-form select,
.clean-modal-form textarea{width:100%;min-height:46px;border:1px solid #d9cfb8;border-radius:10px;padding:.72rem .85rem;background:#fff;font:inherit;color:#1a1a2e;box-shadow:none}
.clean-modal-form input:focus,.clean-modal-form select:focus,.clean-modal-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.16)}
.field-hint{display:block;margin-top:.35rem;color:#777;font-size:12px;line-height:1.35}
.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:.45rem}
.choice-grid label{border:1px solid #ddd4c2;border-radius:12px;padding:.75rem .85rem;background:#fff;line-height:1.35;cursor:pointer;transition:.15s ease}
.choice-grid label:hover{border-color:var(--gold);background:#fffaf0}
.choice-grid input:checked + span{font-weight:700;color:var(--navy)}
.progress-wrap{margin:0 0 1.2rem;padding:.2rem 0 .8rem;border-bottom:1px solid #eee7d8}
.progress-dot{width:28px;height:28px;border-radius:50%;font-size:13px;display:flex;align-items:center;justify-content:center;background:#e8e0cf;color:#1F3564;font-weight:700}
.progress-dot.active{background:var(--gold);color:#1a1200}
.progress-labels{display:flex;justify-content:space-between;margin-top:.35rem;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:700}
.progress-label.active{color:var(--navy)}
@media(max-width:720px){.choice-grid{grid-template-columns:1fr}.progress-labels{font-size:11px}}

/* Kontaktformulare V4: Logik- und UX-Korrektur */
.clean-modal-form .field > span{display:block;font-weight:700;color:var(--navy);font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.45rem}
.clean-modal-form .field em{font-style:normal;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0}
.clean-modal-form .form-section-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;color:var(--navy);margin-bottom:.35rem}
.clean-modal-form .form-help{font-size:13px;color:var(--muted);line-height:1.6;margin:.1rem 0 1rem}
.clean-modal-form .choice-field{margin:0}
.clean-modal-form .invalid-group{border:1px solid #a32121;background:#fff8f8;border-radius:12px;padding:.75rem}
.clean-modal-form .invalid-group > span{color:#a32121}
.clean-modal-form .contact-card{border-left:3px solid var(--gold)}
.clean-modal-form .hp-field,
.clean-modal-form input[name="website"]{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;border:0!important;padding:0!important;margin:0!important}
.clean-modal-form .choice-grid label{align-items:flex-start}
.clean-modal-form .choice-grid input{margin-top:.15rem;flex:0 0 auto}
.clean-modal-form .choice-grid span{display:inline;color:inherit;font-size:13px;text-transform:none;letter-spacing:0;margin:0;font-weight:500}
.clean-modal-form .choice-grid input:checked + span{font-weight:700;color:var(--navy)}
@media(max-width:720px){.clean-modal-form .form-section-title{font-size:20px}.clean-modal-form .choice-grid{grid-template-columns:1fr}}

/* FINAL: hide honeypot spam field completely in all browsers */
.hp-wrap,.hp-field,.clean-modal-form .hp-wrap,.clean-modal-form .hp-field{display:none!important;visibility:hidden!important;position:absolute!important;left:-99999px!important;top:-99999px!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;max-width:0!important;max-height:0!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;border:0!important;padding:0!important;margin:0!important;appearance:none!important;}


/* Contact forms UX v6 fallback */
.clean-modal-form .choice-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.65rem .75rem!important;margin-top:.35rem!important}
.clean-modal-form .choice-card{display:flex!important;align-items:flex-start!important;gap:.62rem!important;padding:.72rem .78rem!important;border:1px solid #ddd3bd!important;border-radius:10px!important;background:#fff!important;line-height:1.35!important;cursor:pointer!important}
.clean-modal-form .choice-card input{width:16px!important;height:16px!important;min-width:16px!important;margin:.1rem 0 0!important;accent-color:var(--gold)!important}
.clean-modal-form .choice-card span{display:block!important;margin:0!important;color:#202440!important;font-size:13px!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important}
.clean-modal-form .choice-field{grid-column:1/-1!important;padding:.95rem 1rem!important;background:#fbfaf7!important;border:1px solid #e8dfcd!important;border-radius:12px!important}
@media(max-width:720px){.clean-modal-form .choice-grid{grid-template-columns:1fr!important}}

/* Safe legal page links: applies only to footer legal anchors, no global layout changes */
footer a.legal-link { text-decoration:none; }
footer a.legal-link:hover { color:#C9A84C; }
