:root{ --bg:#0f141b; --surface:#161d26; --surface-2:#1c2430; --text:#eef2f7; --muted:#b4becb; --accent:#b89256; --accent-2:#d1ad71; --line:#2b3543; --line-strong:#3a4657; --shadow:0 16px 40px rgba(0,0,0,.32);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{ margin:0; font-family:Arial,Helvetica,sans-serif; color:var(--text); background:linear-gradient(180deg,#0d1218 0%,#121820 100%); line-height:1.7; font-size:clamp(1rem,.95rem + .15vw,1.075rem); text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
a{color:var(--accent-2);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.container{width:min(1180px,calc(100% - 40px));margin:0 auto}
header{position:sticky;top:0;z-index:50;background:rgba(12,17,24,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-strong);box-shadow:0 6px 18px rgba(0,0,0,.22)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 0}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:58px;height:58px;object-fit:contain;flex:0 0 auto}
.brand-text{font-weight:700;line-height:1.25;color:#fff;font-size:clamp(1rem,.95rem + .28vw,1.18rem)}
.brand-text small{display:block;font-weight:400;color:var(--muted);font-size:clamp(.82rem,.8rem + .1vw,.9rem)}
.menu{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.menu a{font-weight:700;color:#f4e8d2;padding:10px 0;position:relative;font-size:clamp(.96rem,.93rem + .08vw,1rem)}
.menu a:hover{text-decoration:none;color:#fff}
.menu a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:2px;background:var(--accent);transition:width .25s ease}
.menu a:hover::after{width:100%}
.hero{padding:clamp(42px,5vw,68px) 0 30px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:30px;align-items:center}
.card{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.card.pad{padding:clamp(22px,3vw,32px)}
.lead{font-size:clamp(1.02rem,.98rem + .35vw,1.2rem);color:#d2d9e3;max-width:62ch}
.muted{color:var(--muted)}
.button{display:inline-block;background:linear-gradient(180deg,var(--accent-2) 0%,var(--accent) 100%);color:#13171c;padding:13px 20px;border-radius:999px;font-weight:700;box-shadow:0 10px 24px rgba(184,146,86,.22);font-size:clamp(.95rem,.92rem + .08vw,1rem);line-height:1.2}
.button:hover{text-decoration:none;filter:brightness(1.04)}
.button.secondary{background:transparent;color:#f3e7d2;border:1px solid var(--accent)}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.section{padding:clamp(22px,3vw,34px) 0 clamp(46px,5vw,64px)}
.section h2{font-size:clamp(1.6rem,1.38rem + .9vw,2.15rem);margin:0 0 10px;color:#fff;line-height:1.2}
.section p.section-intro{margin:0 0 26px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery img{width:100%;height:clamp(220px,24vw,280px);object-fit:cover;border-radius:18px;box-shadow:var(--shadow);background:#0b0f14}
.cta{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1fr);gap:24px}
.info-list{display:grid;gap:14px}
.info-item{background:rgba(255,255,255,.02);border:1px solid var(--line-strong);border-radius:16px;padding:15px 17px;color:#f1f5f9}
.footer{background:#0b1016;color:#f9fafb;padding:32px 0;margin-top:44px;border-top:1px solid var(--line-strong)}
.footer a{color:#f0d9ae}
.badge{display:inline-block;background:rgba(184,146,86,.14);color:#f0d9ae;padding:7px 12px;border-radius:999px;font-size:.92rem;font-weight:700;margin-bottom:16px;border:1px solid rgba(184,146,86,.35)}
.notice{padding:14px 16px;border-radius:14px;margin-bottom:18px}
.success{background:#0f2b1e;color:#c6f6d5;border:1px solid #275a44}
.error{background:#34161a;color:#ffd2d8;border:1px solid #6c2b34}
form{display:grid;gap:15px}
label{font-weight:700;color:#fff;display:inline-block;margin-bottom:7px}
input,textarea{width:100%;padding:13px 15px;border:1px solid var(--line-strong);background:#111821;color:var(--text);border-radius:14px;font:inherit}
input::placeholder,textarea::placeholder{color:#8d98a8}
input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(184,146,86,.15)}
textarea{min-height:190px;resize:vertical}
button{cursor:pointer;border:0}
.hero-photo{height:100%;min-height:clamp(300px,34vw,430px);object-fit:cover}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:24px}
.small-gallery img{height:clamp(210px,22vw,240px)}
strong,h1,h2,h3{color:#fff}
h1{font-size:clamp(2rem,1.55rem + 1.75vw,3.2rem);line-height:1.15;margin:0 0 14px;letter-spacing:-.02em}
p{margin:0 0 1rem}
@media (min-width:1400px){ html{font-size:17px} .container{width:min(1280px,calc(100% - 72px))} .hero-grid,.cta,.contact-grid,.grid-2,.grid-3{gap:28px}
}
@media (max-width:1000px){ .hero-grid,.cta,.contact-grid{grid-template-columns:1fr} .hero-photo{min-height:280px}
}
@media (max-width:900px){ .grid-2,.grid-3{grid-template-columns:1fr} .menu{justify-content:flex-start;gap:16px} .hero{padding-top:32px} .gallery img,.small-gallery img{height:240px}
}
@media (max-width:680px){ .container{width:min(100% - 28px,1180px)} .nav{align-items:flex-start;flex-direction:column;padding:14px 0} .brand img{width:52px;height:52px} .menu{width:100%;gap:14px 18px} .menu a{padding:6px 0} .card.pad{padding:20px} .actions{flex-direction:column;align-items:stretch} .button{text-align:center;width:100%} .gallery img,.small-gallery img{height:220px} .footer{padding:28px 0 34px}
}
@media (max-width:420px){ body{line-height:1.65} .container{width:calc(100% - 22px)} .gallery img,.small-gallery img,.hero-photo{min-height:220px} input,textarea{padding:12px 14px}
} .footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.impressum-link{min-width:0}
@media (max-width:680px){.footer-inner{flex-direction:column;align-items:flex-start}.impressum-link{width:auto}} /* Disco größer */
.small-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.small-gallery img{height:clamp(280px,30vw,360px)} /* Lightbox */
.lightbox-target{cursor:zoom-in;transition:transform .22s ease, box-shadow .22s ease}
.lightbox-target:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(0,0,0,.28)}
.lightbox-open{overflow:hidden}
.lightbox-overlay{position:fixed;inset:0;background:rgba(8,11,15,.92);display:flex;align-items:center;justify-content:center;padding:40px 90px;opacity:0;visibility:hidden;transition:opacity .25s ease, visibility .25s ease;z-index:9999}
.lightbox-overlay.open{opacity:1;visibility:visible}
.lightbox-figure{margin:0;max-width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.lightbox-image{max-width:100%;max-height:78vh;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.45);object-fit:contain;background:#0c1016}
.lightbox-caption{color:#f2e7d2;text-align:center;font-size:1rem;min-height:1.5em}
.lightbox-close,.lightbox-nav{position:absolute;border:1px solid rgba(255,255,255,.16);background:rgba(20,26,34,.72);color:#fff;border-radius:999px;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);cursor:pointer;transition:background .2s ease, transform .2s ease}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(184,146,86,.85);transform:scale(1.04)}
.lightbox-close{top:20px;right:24px;width:50px;height:50px;font-size:2rem;line-height:1}
.lightbox-nav{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:1.7rem}
.lightbox-prev{left:24px}
.lightbox-next{right:24px}
.lightbox-prev:hover,.lightbox-next:hover{transform:translateY(-50%) scale(1.04)}
@media (max-width:900px){ .small-gallery{grid-template-columns:1fr} .small-gallery img{height:clamp(240px,48vw,330px)} .lightbox-overlay{padding:28px 18px 40px} .lightbox-nav{width:46px;height:46px;font-size:1.45rem} .lightbox-prev{left:10px} .lightbox-next{right:10px} .lightbox-close{top:12px;right:12px;width:44px;height:44px} .lightbox-image{max-height:72vh}
} /* Kontakt Telefon sichtbar, E-Mail kurz */
.contact-links--mixed{ display:grid; gap:16px; margin-top:18px;
}
.contact-links--mixed .contact-link{ display:grid; grid-template-columns:72px minmax(0,1fr); gap:16px; align-items:center; text-decoration:none; color:#f1f5f9;
}
.contact-links--mixed .contact-link:hover{ transform:translateY(-2px);
}
.contact-links--mixed .contact-icon{ width:72px; height:72px; display:flex; align-items:center; justify-content:center;
}
.contact-links--mixed .contact-icon img{ width:72px; height:72px; display:block; object-fit:contain;
}
.contact-links--mixed .contact-text{ display:grid; gap:4px;
}
.contact-links--mixed .contact-text strong{ color:#fff; font-size:1rem;
}
.contact-links--mixed .contact-text span:last-child{ color:var(--muted); line-height:1.5;
}
@media (max-width:680px){ .contact-links--mixed .contact-link{ grid-template-columns:60px minmax(0,1fr); gap:14px; } .contact-links--mixed .contact-icon, .contact-links--mixed .contact-icon img{ width:60px; height:60px; }
} /* Rechtstexte */
.legal-page .card.pad{ padding: 32px;
}
.legal-page h1{ margin-bottom: 18px;
}
.legal-page h2{ margin-top: 28px; margin-bottom: 12px;
}
.legal-page h3{ margin-top: 22px; margin-bottom: 10px;
}
.legal-page p,
.legal-page li{ line-height: 1.7; color: #d9dee7;
}
.legal-page ul{ margin-bottom: 16px;
}
.legal-page hr{ border: 0; border-top: 1px solid rgba(255,255,255,.12); margin: 24px 0;
}
.legal-page a{ word-break: break-word;
}
.footer-links{ display:flex; gap:10px; flex-wrap:wrap;
}
@media (max-width: 640px){ .legal-page .card.pad{ padding: 22px; } .footer-links{ justify-content:center; }
} /* Über uns – nur Mobile-Fix (unterer Bereich) */
@media (max-width: 768px){ .section-about .cta-about{ display:grid; grid-template-columns:1fr; gap:16px; align-items:start; } .section-about .cta-about > .card{ min-width:0; } .section-about .cta-about > .card:first-child{ padding:20px; } .section-about .cta-about > .card:first-child h2{ margin-bottom:10px; } .section-about .cta-about > .card:first-child p{ max-width:30ch; line-height:1.58; margin-bottom:10px; } .section-about .cta-about > .card:first-child .info-item{ margin-bottom:10px; } .section-about .cta-about > .card:last-child img{ width:100%; height:auto; display:block; }
} @media (max-width: 420px){ .section-about .cta-about > .card:first-child{ padding:18px; } .section-about .cta-about > .card:first-child p{ max-width:26ch; }
}


/* Impressum – Look der Website */
.legal-page{
  background: var(--bg, #0f141b);
}
.legal-section{
  padding-block: 36px 56px;
}
.legal-container{
  width: min(980px, calc(100% - 40px));
}
.legal-card{
  background: linear-gradient(180deg, rgba(28,39,56,.98), rgba(18,28,42,.98));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 24px;
  box-shadow: 0 20px 50px rgba(0,0,0,.22);
  padding: 34px 34px 30px;
}
.legal-card h1{
  margin: 0 0 18px;
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.04;
  color: #fff;
}
.legal-card h2{
  margin: 26px 0 12px;
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  line-height: 1.22;
  color: #fff;
}
.legal-card h3{
  margin: 22px 0 10px;
  font-size: 1rem;
  line-height: 1.3;
  color: #fff;
}
.legal-card p,
.legal-card li{
  color: #d9dee7;
  line-height: 1.72;
  font-size: 1rem;
}
.legal-card p{
  margin: 0 0 14px;
  max-width: 70ch;
}
.legal-card ul,
.legal-card ol{
  margin: 0 0 16px 1.2rem;
  padding: 0;
  max-width: 70ch;
}
.legal-card li{
  margin-bottom: 8px;
}
.legal-card strong{
  color: #fff;
}
.legal-card a{
  color: var(--accent-2, #c8a35c);
  text-decoration: none;
}
.legal-card a:hover{
  text-decoration: underline;
}
.legal-card br + br{
  display: block;
  content: "";
  margin-top: 6px;
}
@media (max-width: 900px){
  .legal-section{
    padding-block: 28px 44px;
  }
  .legal-container{
    width: min(100%, calc(100% - 28px));
  }
  .legal-card{
    padding: 24px 22px;
  }
  .legal-card p,
  .legal-card li{
    font-size: .98rem;
    line-height: 1.66;
  }
}
@media (max-width: 640px){
  .legal-container{
    width: calc(100% - 20px);
  }
  .legal-card{
    padding: 20px 18px;
    border-radius: 20px;
  }
  .legal-card h1{
    margin-bottom: 14px;
  }
  .legal-card h2{
    margin: 22px 0 10px;
  }
  .legal-card p,
  .legal-card li{
    font-size: .96rem;
    line-height: 1.62;
  }
  .legal-card p,
  .legal-card ul,
  .legal-card ol{
    max-width: 100%;
  }
}


/* kleines Impressum im Footer */
.footer .footer-inner{
  position: relative;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer .footer-impressum,
.footer .footer-impressum:visited{
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 0 !important;
  min-height: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  color: rgba(255,255,255,.48) !important;
  font-size: 0.72rem !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  letter-spacing: .01em;
}

.footer .footer-impressum:hover{
  color: var(--accent-2, #c8a35c) !important;
  text-decoration: none !important;
  transform: none !important;
}

@media (max-width: 640px){
  .footer .footer-inner{
    justify-content: flex-start;
    padding-bottom: 18px;
  }
  .footer .footer-impressum{
    right: 0;
    bottom: 0;
    font-size: 0.68rem !important;
  }
}
