/* Qspace – Stage A (dice-inspiriert: klare Headline, viel Weißraum, ruhige Kontraste) */
/* Hinweis: Kein Copy/Paste der Referenz – nur ähnliche Layout-Prinzipien. */

:root{
  --bg: #0b0f14;
  --fg: #0e1116;
  --paper: #ffffff;
  --muted: #5c6674;

  --line: rgba(14,17,22,.10);
  --shadow: 0 14px 40px rgba(0,0,0,.10);

  --radius: 18px;
  --radius-sm: 12px;

  --container: 1180px;

  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 64px;
  --space-8: 96px;

  --h1: clamp(2.1rem, 3.2vw, 3.2rem);
  --h2: clamp(1.6rem, 2.2vw, 2.2rem);
  --h3: 1.2rem;
  --body: 1.03rem;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color: var(--fg);
  background: var(--paper);
  line-height: 1.6;
  font-size: var(--body);
}

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; height:auto; display:block; }

.container{
  width: min(var(--container), calc(100% - 2*var(--space-4)));
  margin-inline:auto;
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.skip-link{
  position:absolute; left: -999px; top: var(--space-3);
  background: var(--paper); border: 1px solid var(--line);
  padding: var(--space-2) var(--space-3);
  border-radius: 999px;
}
.skip-link:focus{ left: var(--space-4); z-index: 1000; }

.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(255,255,255,.90);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header.is-scrolled{ box-shadow: 0 10px 30px rgba(0,0,0,.06); }

.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: var(--space-3) 0;
  gap: var(--space-3);
}

.brand{ display:flex; align-items:center; gap: var(--space-2); }
.brand-mark{
  width: 14px; height: 14px; border-radius: 4px;
  background: var(--fg);
}
.brand-name{
  font-weight: 650;
  letter-spacing: .2px;
}

.nav-toggle{
  display:none;
  border:1px solid var(--line);
  background: var(--paper);
  border-radius: 999px;
  padding: 10px 12px;
}
.burger{ display:block; width:20px; height:2px; background: var(--fg); position:relative; }
.burger:before,.burger:after{
  content:""; position:absolute; left:0; width:20px; height:2px; background: var(--fg);
}
.burger:before{ top:-6px; }
.burger:after{ top:6px; }

.site-nav{
  display:flex; align-items:center; gap: var(--space-4);
}
.site-nav a{ color: rgba(14,17,22,.86); font-weight: 520; }
.site-nav a.active{ color: var(--fg); text-decoration: underline; text-underline-offset: 6px; }
.nav-cta{ margin-left: var(--space-2); }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 12px 16px;
  border-radius: 999px;
  border:1px solid transparent;
  font-weight: 650;
  letter-spacing: .2px;
  text-decoration:none !important;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}
.btn:focus{ outline: 3px solid rgba(14,17,22,.15); outline-offset: 2px; }
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: var(--fg); color: var(--paper); box-shadow: 0 14px 30px rgba(14,17,22,.18); }
.btn-primary:hover{ box-shadow: 0 18px 34px rgba(14,17,22,.22); }
.btn-secondary{ background: transparent; border-color: rgba(14,17,22,.18); color: var(--fg); }
.btn-ghost{ background: rgba(14,17,22,.04); border-color: rgba(14,17,22,.10); }

.section{ padding: var(--space-8) 0; }
.section-tight{ padding: var(--space-7) 0; }
.section-line{ border-top: 1px solid var(--line); }

.hero{
  padding: var(--space-8) 0 var(--space-7);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: var(--space-6);
  align-items:center;
}
.kicker{
  color: rgba(14,17,22,.70);
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: .84rem;
  margin: 0 0 var(--space-3);
}
h1{ font-size: var(--h1); line-height: 1.1; margin: 0 0 var(--space-3); }
.lead{
  margin: 0 0 var(--space-5);
  color: rgba(14,17,22,.78);
  max-width: 52ch;
}
.hero-actions{ display:flex; gap: var(--space-3); flex-wrap:wrap; }
.hero-media{ display:flex; gap: var(--space-3); flex-wrap:wrap; margin-top: var(--space-4); }
.hero-media .btn{ padding: 10px 14px; }

.hero-card{
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  background: #f6f7f9;
}
.hero-card img{ width:100%; aspect-ratio: 16/10; object-fit: cover; }
.hero-card .caption{
  padding: var(--space-4);
  color: rgba(14,17,22,.72);
  font-size: .95rem;
}

.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.card{
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-5);
  background: var(--paper);
}
.card h3{ margin: 0 0 var(--space-2); font-size: var(--h3); }
.muted{ color: var(--muted); }

.section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
h2{ font-size: var(--h2); line-height: 1.15; margin: 0; }
.section-head p{ margin:0; max-width: 60ch; color: rgba(14,17,22,.72); }

.cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.room-card{
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow:hidden;
  background: var(--paper);
  transition: transform .12s ease;
}
.room-card:hover{ transform: translateY(-2px); }
.room-card img{ width:100%; aspect-ratio: 16/10; object-fit:cover; background:#eef1f5; }
.room-card .inner{ padding: var(--space-5); }
.room-card .meta{ display:flex; gap: var(--space-3); flex-wrap:wrap; color: rgba(14,17,22,.70); font-size:.95rem; }
.room-card .actions{ display:flex; gap: var(--space-2); flex-wrap:wrap; margin-top: var(--space-4); }

.band{
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  padding: var(--space-6);
  background: linear-gradient(180deg, #ffffff 0%, #f6f7f9 100%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: var(--space-4);
}
.band p{ margin:0; color: rgba(14,17,22,.74); max-width: 70ch; }

.accordion{ border-top: 1px solid var(--line); }
.acc-item{ border-bottom: 1px solid var(--line); }
.acc-btn{
  width:100%;
  background: transparent;
  border: 0;
  padding: var(--space-4) 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: var(--space-3);
  font: inherit;
  font-weight: 650;
  cursor:pointer;
  text-align:left;
}
.acc-btn:focus{ outline: 3px solid rgba(14,17,22,.15); outline-offset: 4px; border-radius: 10px; }
.acc-panel{ padding: 0 0 var(--space-4); color: rgba(14,17,22,.75); display:none; }
.acc-item[data-open="true"] .acc-panel{ display:block; }
.acc-icon{ width: 18px; height: 18px; border:1px solid rgba(14,17,22,.20); border-radius: 999px; position:relative; flex: 0 0 auto; }
.acc-icon:before,.acc-icon:after{ content:""; position:absolute; background: rgba(14,17,22,.75); inset: 0; margin:auto; }
.acc-icon:before{ width: 10px; height:2px; }
.acc-icon:after{ width:2px; height:10px; }
.acc-item[data-open="true"] .acc-icon:after{ display:none; }

.site-footer{
  border-top: 1px solid var(--line);
  padding: var(--space-7) 0 var(--space-5);
  background: #0b0f14;
  color: rgba(255,255,255,.88);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap: var(--space-6);
}
.site-footer a{ color: rgba(255,255,255,.86); }
.site-footer a:hover{ color: #fff; text-decoration: underline; }
.footer-title{ font-weight: 700; margin-bottom: var(--space-3); }
.footer-brand{ font-weight: 800; letter-spacing:.2px; margin-bottom: var(--space-2); }
.footer-bottom{ margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid rgba(255,255,255,.12); }
.social{ display:flex; gap: var(--space-2); margin-top: var(--space-3); }
.social a{ display:inline-flex; padding: 8px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; text-decoration:none !important; }

@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .nav-toggle{ display:inline-flex; }
  .site-nav{
    position:absolute;
    right: var(--space-4);
    top: 64px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: var(--space-3);
    box-shadow: var(--shadow);
    flex-direction:column;
    align-items:stretch;
    gap: var(--space-3);
    min-width: min(360px, calc(100vw - 2*var(--space-4)));
    display:none;
  }
  .site-nav.is-open{ display:flex; }
  .nav-cta{ width:100%; justify-content:center; }
}
