
:root{
  --bordeaux:#5A0F1A;
  --messing:#C2A262;
  --steingrau:#6D737A;
  --naturweiss:#F7F3EC;
  --ink:#141517;
  --card:#FFFFFF;
  --shadow: 0 14px 34px rgba(0,0,0,.10);
  --radius: 18px;
  --max: 1120px;
  --gap: 20px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: "Alegreya", Georgia, serif;
  color:var(--ink);
  background: var(--naturweiss);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--bordeaux)}
.container{max-width:var(--max);margin:0 auto;padding:0 22px}
header.site{
  position:sticky;top:0;z-index:50;
  background: rgba(247,243,236,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(109,115,122,.18);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.brand{display:flex;gap:12px;align-items:center}
.logo{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(145deg,var(--bordeaux),#2a060b);
  display:grid;place-items:center;color:var(--naturweiss);
  box-shadow: 0 10px 24px rgba(90,15,26,.25);
  font-weight:700;
}
.brand .name{font-weight:700;letter-spacing:.2px}
.brand .tag{font-size:14px;color:rgba(20,21,23,.68)}
.links{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.links a{font-weight:600;font-size:16px;color:rgba(20,21,23,.82)}
.navToggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid rgba(109,115,122,.22);background:rgba(247,243,236,.85);cursor:pointer}
.navToggle:hover{border-color:rgba(194,162,98,.55)}
.navToggleLines{width:20px;height:14px;position:relative;display:block}
.navToggleLines::before,.navToggleLines::after{content:"";position:absolute;left:0;right:0;height:2px;border-radius:999px;background:rgba(20,21,23,.78);transition:transform .2s ease, top .2s ease, bottom .2s ease, opacity .2s ease}
.navToggleLines::before{top:2px}
.navToggleLines::after{bottom:2px}
header.site.nav-open .navToggleLines::before{top:6px;transform:rotate(45deg)}
header.site.nav-open .navToggleLines::after{bottom:6px;transform:rotate(-45deg)}
.cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:999px;
  background: var(--bordeaux);
  color: var(--naturweiss);
  box-shadow: 0 12px 26px rgba(90,15,26,.28);
  font-weight:700;
}
.cta:hover{filter:brightness(1.07);color:var(--naturweiss)}
.hero{
  min-height:100vh;
  display:flex;align-items:flex-start;
  background: var(--hero-bg, linear-gradient(135deg,#2a060b, #5a0f1a 45%, #0f0f10));
  position:relative;
  isolation:isolate;
  color:var(--naturweiss);
}
.hero::before{
  content:"";position:absolute;inset:0;
  background: var(--hero-image);
  background-size:cover;background-position:center;
  filter: saturate(1.05) contrast(1.02);
  z-index:0;
  pointer-events:none;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background: linear-gradient(180deg, rgba(20,21,23,.22) 0%, rgba(20,21,23,.50) 45%, rgba(20,21,23,.78) 100%),
              linear-gradient(180deg, rgba(247,243,236,0) 58%, rgba(247,243,236,.45) 80%, rgba(247,243,236,1) 100%);
  z-index:1;
  pointer-events:none;
}
.hero .inner{position:relative;z-index:2;padding:96px 0 72px}
.hero.has-logo .inner{padding-bottom:170px}

.hero h1{font-size:56px;line-height:1.05;margin:0 0 14px;font-weight:800;letter-spacing:.2px}
.hero p{max-width:58ch;font-size:20px;margin:0 0 22px;color:rgba(247,243,236,.92)}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 16px;border-radius:14px;
  border:1px solid rgba(247,243,236,.22);
  background: rgba(247,243,236,.12);
  color:var(--naturweiss);
  font-weight:700;
}
.btn.primary{background:var(--bordeaux);border-color:rgba(255,255,255,.12);box-shadow: 0 12px 26px rgba(90,15,26,.28)}
.btn.light{background:rgba(247,243,236,.92);color:var(--ink);border-color:rgba(109,115,122,.18)}
.section{padding:58px 0}
.section .title{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:0 0 18px;
}
.h2{font-size:34px;margin:0;font-weight:800;letter-spacing:.2px}
.kicker{font-size:14px;font-weight:800;letter-spacing:.14em;color:var(--messing);text-transform:uppercase}
.divider{
  height:3px;width:84px;border-radius:999px;background:var(--messing);
  margin-top:10px;
}
.grid{display:grid;gap:var(--gap)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{
  background:var(--card);border-radius:var(--radius);
  border:1px solid rgba(109,115,122,.18);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.card .pad{padding:18px}
.card h3{margin:0 0 8px;font-size:22px;font-weight:800}
.card p{margin:0;color:rgba(20,21,23,.76)}
.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 10px;border-radius:999px;
  background: rgba(194,162,98,.16);
  color: rgba(90,15,26,.95);
  border:1px solid rgba(194,162,98,.35);
  font-weight:800;font-size:13px;
}
.split{display:grid;grid-template-columns:1.12fr .88fr;gap:var(--gap);align-items:stretch}
.split .media{
  border-radius:var(--radius);
  border:1px solid rgba(109,115,122,.18);
  box-shadow: var(--shadow);
  min-height:340px;
  background: linear-gradient(135deg, rgba(194,162,98,.22), rgba(90,15,26,.14));
  position:relative;
  overflow:hidden;
}
.split .media::before{
  content:"";position:absolute;inset:0;
  background: var(--split-image);
  background-size:cover;background-position:center;
  opacity:.95;
}
.split .content{
  padding:18px;
}
.cta-band{
  background: linear-gradient(135deg, rgba(90,15,26,.92), rgba(20,21,23,.92));
  color:var(--naturweiss);
  border-top: 1px solid rgba(247,243,236,.12);
  border-bottom: 1px solid rgba(247,243,236,.12);
}
.cta-band .wrap{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:22px 0;
}
.cta-band strong{font-size:22px}
.footer{
  background:#121314;color:rgba(247,243,236,.92);
  padding:44px 0 24px;border-top:1px solid rgba(247,243,236,.10);
}
.footer a{color:rgba(247,243,236,.92)}
.footer .cols{display:grid;gap:24px;grid-template-columns:1.2fr 1fr 1fr 1fr}
.footer .footer-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 900px){
  .footer .footer-grid{grid-template-columns:1fr;gap:18px}
}
.small{font-size:14px;color:rgba(20,21,23,.68)}
.footer .small{color:rgba(247,243,236,.72)}
/* Forms */
.form{
  background:var(--card);border-radius:var(--radius);
  border:1px solid rgba(109,115,122,.18);
  box-shadow: var(--shadow);
  padding:18px;
}
.form .row{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
.form .row.row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form .row.row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form label{display:block;font-weight:800;margin:0 0 6px}
.input, select, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid rgba(109,115,122,.28);
  background:#fff;
  font-family:inherit;
  font-size:16px;
}
textarea{min-height:110px;resize:vertical}
.helper{font-size:13px;color:rgba(20,21,23,.68)}
.form .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.submit{
  background:var(--bordeaux);color:var(--naturweiss);
  border:none;border-radius:14px;
  padding:12px 16px;
  font-family:inherit;font-weight:800;font-size:16px;
  cursor:pointer;
  box-shadow: 0 12px 26px rgba(90,15,26,.28);
}
.submit:hover{filter:brightness(1.05)}

/* --- Mobile first improvements --- */
@media (max-width: 900px){
  :root{--gap:16px}
  .container{padding:0 16px}
  .hero .inner{padding:76px 0 54px}
  .hero h1{font-size:38px}
  .hero p{font-size:18px}

  /* Nav: hamburger + dropdown */
  .nav{position:relative}
  .navToggle{display:inline-flex}
  .links{display:none;position:absolute;left:0;right:0;top:100%;margin-top:10px;flex-direction:column;align-items:stretch;gap:10px;
    padding:14px;border-radius:16px;background:rgba(247,243,236,.97);backdrop-filter: blur(10px);
    border:1px solid rgba(109,115,122,.22);box-shadow:0 18px 40px rgba(0,0,0,.16)
  }
  header.site.nav-open .links{display:flex}
  .links a{padding:10px 12px;border-radius:12px}
  .links a:hover{background:rgba(194,162,98,.14)}
  .links .cta{width:100%;justify-content:center}

  /* Grids */
  .grid.cols-3,.grid.cols-2{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .split .media{min-height:240px}

  /* Footer */
  .footer .cols{grid-template-columns:1fr}

  /* Widgets grid (if present) */
  .widgets-grid{grid-template-columns:1fr !important}
}

@media (max-width: 700px){
  /* Forms */
  .form .row{grid-template-columns:1fr}
  .form .row.row-3{grid-template-columns:1fr}
  .form .actions{flex-direction:column;align-items:stretch}
  .submit{width:100%}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important}
  .navToggleLines::before,.navToggleLines::after{transition:none}
}
/* Booking summary */
.summary{
  background: rgba(109,115,122,.08);
  border:1px solid rgba(109,115,122,.16);
  border-radius:16px;
  padding:14px;
}
hr.sep{border:none;border-top:1px solid rgba(109,115,122,.18);margin:14px 0}
.pdf{width:100%;height:720px;border:1px solid rgba(109,115,122,.18);border-radius:16px;background:#fff}

/* PDF embeds */
iframe.pdf{width:100%;height:720px;border:1px solid rgba(109,115,122,.18);border-radius:16px;background:#fff}
@media (max-width: 960px){
  .grid.cols-3{grid-template-columns:1fr}
  .grid.cols-2{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .hero h1{font-size:44px}
  .footer .cols{grid-template-columns:1fr 1fr}
  .form .row{grid-template-columns:1fr}
}


.brand .logoImg{width:44px;height:44px;object-fit:contain;border-radius:12px;background:rgba(247,243,236,.85);padding:6px;border:1px solid rgba(194,162,98,.35)}


/* Hero centered logo above kicker (start only) */
.hero .hero-logo{display:flex;justify-content:center;margin-bottom:18px}
.hero .hero-logo img{max-width:180px;max-height:90px;filter:drop-shadow(0 14px 24px rgba(0,0,0,.25))}

/* Intro modal */
.intro{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(20,21,23,.55);z-index:9999}
.intro.is-open{display:flex}
.intro-card{width:min(860px, 96vw);background:var(--card);border-radius:22px;box-shadow:var(--shadow);border:1px solid rgba(194,162,98,.35);padding:22px;position:relative}
.intro-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:rgba(20,21,23,.65)}
.intro-h{font-size:28px;font-weight:900}
.intro-s{margin-top:6px;color:rgba(20,21,23,.75)}
.intro-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.intro-sec{margin-top:18px}
.intro-k{font-weight:900;color:rgba(20,21,23,.75);text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
.intro-item{display:block;text-decoration:none;color:inherit;border:1px solid rgba(110,115,122,.25);border-radius:16px;padding:12px;background:linear-gradient(180deg, rgba(247,243,236,.65), #fff)}
.intro-item:hover{border-color:rgba(194,162,98,.6);transform:translateY(-1px)}
.intro-item .t{font-weight:900}
.intro-item .d{margin-top:3px;color:rgba(20,21,23,.70);font-size:14px}
.intro-foot{margin-top:14px;color:rgba(20,21,23,.6)}
@media(max-width:820px){.intro-grid{grid-template-columns:1fr}}
/* Footer layout */
.footer .footer-layout{display:grid;grid-template-columns:1fr;gap:14px;padding:26px 0}
.footer .footer-layout .section{padding:0;margin:0}
.footer .footer-layout .container{max-width:none;padding:0}


/* ensure Anfrage CTA is always naturweiß */
.links a.cta{color:var(--naturweiss)!important}


/* Hero logo panel (bottom, white 40% opacity) */
.hero{ position:relative; }
.hero-logo-panel{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:14px 0;
  background: rgba(255,255,255,.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display:flex;
  justify-content:center;
  z-index:3;
}
.hero-logo-inner{
  width:min(520px, 80vw);
  display:flex;
  justify-content:center;
}
.hero-logo-inner img{
  width:100%;
  height:auto;
  max-height:120px;
  object-fit:contain;
}
@media (max-width: 520px){
  .hero-logo-inner{ width: min(420px, 86vw); }
  .hero-logo-inner img{ max-height:90px; }
}

/* === PATCH 2026-02-04: Hero bottom fade + logo above content === */
.hero .inner{ z-index:3; } /* above gradients */
.hero-logo-panel{
  bottom:auto;
  top: clamp(120px, 22vh, 240px);
}
.hero.has-logo .inner{
  padding-top: clamp(260px, 40vh, 420px);
  padding-bottom: 72px; /* remove extra bottom spacing that was for bottom-fixed logo */
}
/* keep logo panel subtle */
.hero-logo-panel{
  border-top: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}

/* Cookie badge */
.gj-cookie{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:none;padding:14px}
.gj-cookie.is-open{display:block}
.gj-cookie__inner{max-width:980px;margin:0 auto;background:rgba(247,243,236,.98);border:1px solid rgba(194,162,98,.35);border-radius:14px;padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.gj-cookie__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}


/* --- Widgets --- */
.widgets{ padding-top: 10px; }
.widgets-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
@media (max-width: 900px){
  .widgets-grid{ grid-template-columns: 1fr; }
}
.widget-card{
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px 16px 14px;
  border: 1px solid rgba(194,162,98,.22);
}
.widget-list{
  margin: 10px 0 14px;
  padding-left: 18px;
  color: rgba(20,21,23,.82);
}
.widget-list li{ margin: 6px 0; }
.events-mini{ margin: 10px 0 14px; display:flex; flex-direction:column; gap:10px; }
.events-mini-item{ padding:10px 10px; border-radius: 14px; border:1px solid rgba(194,162,98,.18); background: rgba(247,243,236,.55); }
.events-mini-date{ font-size: 12px; color: rgba(20,21,23,.62); }
.events-mini-title{ font-size: 14px; font-weight: 700; margin-top:2px; }

/* Sticky inquiry */
.sticky-inquiry{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 999;
  display: inline-flex;
  align-items:center;
  gap:8px;
  padding: 12px 14px;
  border-radius: 999px;
  background: var(--bordeaux);
  color: #fff;
  text-decoration:none;
  box-shadow: var(--shadow);
  border: 1px solid rgba(194,162,98,.25);
}
@media (min-width: 900px){
  .sticky-inquiry{ bottom: 22px; right: 22px; }
}


/* Offer locked UI */
.offer-locked input[disabled], .offer-locked select[disabled]{
  opacity: .75;
}
.offer-hint{
  margin-top:8px;
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid rgba(194,162,98,.35);
  background: rgba(247,243,236,.75);
  color: rgba(20,21,23,.84);
  font-size: 13px;
}
.offer-ranges-list{
  margin: 8px 0 0;
  padding-left: 18px;
  color: rgba(20,21,23,.78);
  font-size: 13px;
}
.offer-ranges-list li{ margin: 4px 0; }
