/* =========================================================
   Marburg Club site — what the server-rendered version adds to
   the design handoff's landing.css / business.css:

   - the real-data components (places without a photo, offers,
     events) and their empty states;
   - the coming-soon page and the legal-document layout.

   Same tokens, radii and shadows as the design; nothing here
   loads anything (no url() at all).
   ========================================================= */

/* ---------- places: more than three, no photo, filtering ---------- */
.places > :nth-child(3){ display:flex; }               /* the design hid the 3rd card on tablets */
.place[hidden]{ display:none !important; }
.place__media{ background:var(--green-tint); }
.place__mono{
  position:absolute; inset:0; display:grid; place-items:center;
  font-family:var(--font-display); font-weight:800; font-size:clamp(40px,4.4vw,56px);
  letter-spacing:-.04em; color:var(--green-d);
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.75), transparent 60%),
    linear-gradient(135deg, var(--green-tint), var(--tint-mint));
}
.place__desc{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  margin-top:6px; font-size:12.5px; line-height:1.5; color:var(--ink-soft);
}
.place__body{ flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.place__foot{ margin-top:auto; padding-top:14px; }
.place__perk span span{ font-weight:500; opacity:.85; }

/* ---------- empty states: finished, not broken ---------- */
.lp-empty{
  display:flex; flex-direction:column; align-items:flex-start; gap:10px;
  padding:clamp(24px,3vw,36px);
  background:rgba(255,255,255,.92);
  border:1px dashed rgba(14,95,85,.28);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  max-width:520px;
}
.lp-empty--flat{ box-shadow:none; background:transparent; border:0; padding:8px 4px 4px; max-width:none; }
.lp-empty__ic{
  width:44px; height:44px; border-radius:var(--r-lg);
  display:grid; place-items:center;
  background:var(--green-tint); color:var(--green-d);
}
.lp-empty__ic svg{ width:22px; height:22px; }
.lp-empty__t{
  font-family:var(--font-display); font-size:clamp(18px,1.6vw,21px); font-weight:700;
  letter-spacing:-.02em; color:var(--ink); line-height:1.25;
}
.lp-empty__d{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); max-width:46ch; }
.lp-empty__link{
  display:inline-flex; align-items:center; gap:8px; margin-top:4px;
  font-size:14.5px; font-weight:600; color:var(--green-d);
  text-decoration:underline; text-decoration-color:var(--green-line); text-underline-offset:4px;
}
.lp-empty__link:hover{ text-decoration-color:currentColor; }

/* ---------- offers: the deck's card, holding real offers ---------- */
.offers__list{ min-width:0; }
.lp-offers{
  list-style:none;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  gap:clamp(12px,1.2vw,16px);
}
.lp-offer{
  display:flex; flex-direction:column;
  padding:var(--p-card) var(--p-card) var(--p-panel);
  border-radius:var(--radius); background:var(--paper);
  border:1px solid rgba(12,44,72,.05); box-shadow:var(--shadow-card);
  transform:translateY(18px); opacity:0;
  transition:transform .8s var(--ease-out) var(--d,0s), opacity .6s ease-out var(--d,0s);
}
.lp-offers.is-in .lp-offer{ transform:none; opacity:1; }
.lp-offer__art{
  position:relative; display:block; overflow:hidden;
  border-radius:calc(var(--radius) - 8px); aspect-ratio:4/3;
  background:var(--bg-cream);
}
.lp-offer__art img{ width:100%; height:100%; object-fit:cover; }
.lp-offer__art .lp-offer__tile{ object-fit:contain; padding:12%; }
.lp-offer__badge{
  position:absolute; top:10px; left:10px;
  padding:5px 12px; border-radius:var(--r-full);
  background:var(--green-d); color:var(--paper);
  font-size:13px; font-weight:700; letter-spacing:-.01em;
}
.lp-offer__body{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin:14px 6px 0; }
.lp-offer__title{ font-family:var(--font-display); font-size:16.5px; font-weight:700; letter-spacing:-.02em; color:var(--ink); line-height:1.25; }
.lp-offer__reward{ font-size:13.5px; font-weight:600; color:var(--green-d); }
.lp-offer__meta{ font-size:12.5px; line-height:1.5; color:var(--ink-soft); }

/* ---------- events: the week, from the database ---------- */
.lp-panel{
  background:var(--paper); border-radius:var(--radius);
  border:1px solid rgba(12,44,72,.05); box-shadow:var(--shadow-card);
  padding:clamp(18px,2vw,26px);
}
.lp-panel__head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }
.lp-panel__head b{ font-family:var(--font-display); font-size:19px; font-weight:700; letter-spacing:-.02em; color:var(--ink); }
.lp-panel__head small{ font-size:12.5px; font-weight:600; color:var(--green-d); }
.lp-events{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.lp-event{
  display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:14px; align-items:center;
  padding:10px; border-radius:var(--r-xl);
  background:var(--bg-neutral); border:1px solid rgba(12,44,72,.05);
}
.lp-event__date{
  width:56px; height:60px; border-radius:var(--r-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--green-tint); color:var(--green-d); line-height:1;
}
.lp-event__date b{ font-family:var(--font-display); font-size:22px; font-weight:800; letter-spacing:-.03em; }
.lp-event__date small{ margin-top:4px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.lp-event__body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.lp-event__title{ font-family:var(--font-display); font-size:15.5px; font-weight:700; letter-spacing:-.018em; color:var(--ink); line-height:1.3; }
.lp-event__meta{ font-size:12.5px; color:var(--ink-soft); }
.lp-event__where{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lp-event__thumb{ width:64px; height:64px; border-radius:var(--r-md); overflow:hidden; flex:none; }
.lp-event__thumb img{ width:100%; height:100%; object-fit:cover; }
.lp-event__cat{ white-space:nowrap; }
@media (max-width:520px){
  .lp-event{ grid-template-columns:52px minmax(0,1fr); }
  .lp-event__thumb, .lp-event__cat{ display:none; }
}

/* ---------- small fits for the swapped controls ---------- */
.cta__copy .cta__btn{ margin-top:var(--t-cta); }
.footer__grid--compact{ grid-template-columns:minmax(0,1.6fr) minmax(0,.78fr); }
@media (max-width:1120px){ .footer__grid--compact{ grid-template-columns:minmax(0,1fr); } }
.footer__col a[data-legal], .footer__col a[href^="mailto:"]{ overflow-wrap:anywhere; }

/* =========================================================
   COMING SOON
   ========================================================= */
.soon{
  position:relative; min-height:100svh; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,var(--sky-0) 0%,var(--sky-1) 46%,var(--sky-2) 100%);
}
.soon__bg{ position:absolute; inset:auto 0 0 0; z-index:-3; }
.soon .hero__clouds{ z-index:-2; }
.soon__top, .soon__main{ position:relative; z-index:1; }
.soon__bg img{ width:100%; height:auto; display:block;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 28%); mask-image:linear-gradient(180deg,transparent 0%,#000 28%); }
.soon__veil{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg,rgba(248,249,254,.9) 0%,rgba(248,249,254,.72) 38%,rgba(248,249,254,.08) 72%,rgba(248,249,254,0) 100%);
}
.soon__top{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:22px; }
.soon__brand{ display:inline-flex; align-items:center; gap:10px; }
.soon__brand img{ width:40px; height:40px; }
.soon__brand span{ font-family:var(--font-display); font-size:19px; font-weight:700; letter-spacing:-.02em; color:var(--ink); }
.soon__brand span span{ font-weight:500; color:var(--green-d); }
.soon__main{ flex:1; display:flex; align-items:flex-start; padding-top:clamp(48px,12vh,140px); padding-bottom:clamp(220px,34vw,460px); }
.soon__copy{ max-width:640px; }
.soon__title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(42px,7vw,84px); line-height:1.0; letter-spacing:-.04em; color:var(--ink);
}
.soon__title em{ font-family:var(--serif); font-style:italic; font-weight:500; letter-spacing:-.02em; color:var(--green-d); }
.soon__lead{ margin-top:var(--t-head); font-size:clamp(16px,1.4vw,19px); line-height:1.6; color:var(--ink-soft); max-width:40ch; }
.soon__en{ margin-top:14px; font-size:14.5px; line-height:1.6; color:var(--ink-mute); max-width:46ch; }
.soon__actions{ margin-top:var(--t-cta); display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.soon__badge{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:var(--t-eyebrow);
  padding:6px 14px; border-radius:var(--r-full);
  background:rgba(255,255,255,.85); border:1px solid rgba(12,44,72,.08);
  font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--green-d);
}
.soon__badge i{ width:7px; height:7px; border-radius:50%; background:var(--green); animation:soonPulse 2.2s ease-in-out infinite; }
@keyframes soonPulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.6); opacity:.45; } }
.soon__link{ font-size:15px; font-weight:600; color:var(--green-d); text-decoration:underline; text-decoration-color:var(--green-line); text-underline-offset:4px; }
.soon .cl--mid{ opacity:.55; }
@media (prefers-reduced-motion:reduce){ .soon__badge i{ animation:none; } }

/* =========================================================
   LEGAL DOCUMENTS — long-form text in the site's type
   No script on these pages: the language toggle is two links.
   ========================================================= */
.legal-page{ background:var(--bg-neutral); }
.legal-top{ position:sticky; top:0; z-index:20; background:rgba(251,250,248,.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.legal-top__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:14px; padding-bottom:14px; }
.legal-top .soon__brand img{ width:34px; height:34px; }
.legal-langs{ display:flex; gap:6px; font-size:13.5px; }
.legal-langs a{
  min-width:44px; min-height:36px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 12px; border-radius:var(--r-full);
  border:1px solid var(--line); color:var(--ink-soft); font-weight:600;
}
.legal-langs a[aria-current="true"]{ background:var(--green-d); border-color:var(--green-d); color:var(--paper); }

.legal{ max-width:46rem; margin:0 auto; padding:clamp(40px,6vw,72px) var(--gutter) clamp(64px,8vw,104px); color:var(--ink); }
.legal h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(34px,5vw,52px); line-height:1.06; letter-spacing:-.035em;
  margin:0 0 .5rem;
}
.legal .lede{ font-family:var(--serif); font-size:clamp(18px,1.6vw,21px); line-height:1.5; color:var(--ink-soft); margin:0 0 2rem; }
.legal h2{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(21px,2.1vw,26px); line-height:1.22; letter-spacing:-.022em;
  margin:2.8rem 0 .8rem; padding-top:1.2rem; border-top:1px solid var(--line);
}
.legal h3{ font-family:var(--font-display); font-size:17.5px; font-weight:700; letter-spacing:-.015em; margin:1.8rem 0 .5rem; }
.legal p, .legal ul, .legal ol, .legal dl{ margin:0 0 1rem; font-size:16.5px; line-height:1.72; color:var(--ink); }
.legal ul, .legal ol{ padding-left:1.3rem; }
.legal li{ margin-bottom:.4rem; }
.legal a{ color:var(--green-d); text-decoration:underline; text-decoration-color:var(--green-line); text-underline-offset:3px; overflow-wrap:anywhere; }
.legal a:hover{ text-decoration-color:currentColor; }
.legal strong{ font-weight:650; }
.legal address{ font-style:normal; }
.legal .binding{
  border-left:3px solid var(--green); background:var(--green-tint);
  padding:.8rem 1.1rem; margin:0 0 2rem; border-radius:0 var(--r-md) var(--r-md) 0;
  font-size:14.5px; color:var(--ink-soft);
}
.legal .notice{
  border:1px solid #f0c89a; background:#fff4e5; color:#6b3b00;
  border-radius:var(--r-md); padding:.9rem 1.1rem; margin:0 0 2rem; font-size:14.5px;
}
.legal table{ width:100%; border-collapse:collapse; margin:0 0 1.4rem; font-size:14.5px; display:block; overflow-x:auto; }
.legal th, .legal td{ border:1px solid var(--line); padding:.55rem .7rem; text-align:left; vertical-align:top; line-height:1.55; }
.legal th{ background:var(--bg-lilac); font-weight:650; }
.legal code{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:.86em;
  background:var(--bg-lilac); border:1px solid var(--line); border-radius:var(--r-xs); padding:.05em .35em;
}
.legal blockquote{ margin:0 0 1.2rem; padding:.85rem 1.1rem; background:var(--bg-cream); border-left:3px solid var(--line-warm); border-radius:0 var(--r-md) var(--r-md) 0; }
.legal blockquote p:last-child{ margin-bottom:0; }
.legal .meta{ margin-top:3rem; padding-top:1.2rem; border-top:1px solid var(--line); color:var(--ink-mute); font-size:14px; }
@media print{
  .legal-top, .footer{ display:none; }
  .legal{ padding:0; max-width:none; }
}

/* =========================================================
   BUSINESS PAGE — the shared data components
   business.css has the tokens but not the main page's card
   anatomy, so the few rules the places grid and the event panel
   need are repeated here, scoped to `.biz-data`.
   ========================================================= */
.biz-data{ --tint-amber:#FBEFDC; --on-amber:#92641C; --ink-mute:#606C79; --bg-lilac:#F3F2FE; width:100%; }
.biz-data .tag{
  display:inline-flex; align-items:center;
  background:var(--paper); border:1px solid var(--line);
  color:var(--ink-soft); border-radius:var(--r-full);
  padding:4px 10px; font-size:11px; font-weight:600; letter-spacing:.01em;
}
.biz-data .places{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.biz-data .place{
  display:flex; flex-direction:column;
  background:var(--paper); border-radius:var(--r-xl); padding:var(--p-card) var(--p-card) 16px;
  border:1px solid rgba(12,44,72,.05); box-shadow:0 22px 44px -34px rgba(30,40,70,.55);
}
.biz-data .place__media{ position:relative; display:block; border-radius:var(--r-md); overflow:hidden; aspect-ratio:16/10; }
.biz-data .place__media img{ width:100%; height:100%; object-fit:cover; }
.biz-data .place__body{ padding:12px 6px 0; }
.biz-data .place__body b{ display:block; margin-top:8px; font-family:var(--font-display); font-size:15.5px; font-weight:700; letter-spacing:-.018em; color:var(--ink); }
.biz-data .place__perk{
  display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:var(--r-full);
  font-size:12px; font-weight:600; background:var(--tint-amber); color:var(--on-amber);
}
.biz-data .place__perk svg{ width:14px; height:14px; }
.biz-data .chips{ display:none; }   /* filtering belongs to the guest page */
.biz-data .lp-empty{ max-width:none; }
@media (max-width:640px){ .biz-data .places{ grid-template-columns:minmax(0,1fr); } }
