/* ============================================================
   /lexware-office-lager: waitlist of the planned Lexware Office add-on.
   Colors come from v4-theme.css (--bg, --panel, --ink, --accent …),
   fonts, spacing and radii are defined once below and used everywhere.
   ============================================================ */

.lx-page{
  --lx-sans:"Inter Tight","Helvetica Neue",sans-serif;
  --lx-serif:"Instrument Serif",Georgia,serif;
  --lx-mono:"Geist Mono",ui-monospace,monospace;

  --lx-space-xs:4px;
  --lx-space-sm:8px;
  --lx-space-md:12px;
  --lx-space-lg:16px;
  --lx-space-xl:24px;
  --lx-space-2xl:32px;
  --lx-space-3xl:56px;
  --lx-space-4xl:96px;

  --lx-font-xs:11px;
  --lx-font-sm:13px;
  --lx-font-base:16px;
  --lx-font-md:18px;
  --lx-font-lg:clamp(26px,3.4vw,36px);
  --lx-font-xl:clamp(40px,6.4vw,76px);

  --lx-radius-sm:10px;
  --lx-radius-md:18px;
  --lx-radius-pill:99px;

  --lx-wrap:1080px;
  --lx-narrow:720px;
  --lx-ease:cubic-bezier(.16,1,.3,1);

  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--lx-sans);
  font-size:var(--lx-font-base);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

.lx-page *{box-sizing:border-box}

/* ---------- layout ---------- */
.lx-main{padding-top:var(--nav-h,64px)}
.lx-wrap{max-width:var(--lx-wrap);margin:0 auto;padding:0 clamp(20px,4vw,64px)}
.lx-narrow{max-width:var(--lx-narrow)}
.lx-section{padding:var(--lx-space-3xl) 0;border-top:1px solid var(--line)}
.lx-split{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--lx-space-2xl);align-items:start}

/* ---------- typography ---------- */
.lx-hero{padding:var(--lx-space-4xl) 0 var(--lx-space-3xl)}
.lx-tag{display:inline-flex;align-items:center;gap:var(--lx-space-sm);font-family:var(--lx-mono);font-size:var(--lx-font-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line-2);border-radius:var(--lx-radius-pill);padding:var(--lx-space-xs) var(--lx-space-md)}
.lx-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.lx-title{font-size:var(--lx-font-xl);line-height:1.02;letter-spacing:-.02em;font-weight:700;margin:var(--lx-space-xl) 0}
.lx-serif{font-family:var(--lx-serif);font-style:italic;font-weight:400}
.lx-lead{font-size:var(--lx-font-md);max-width:var(--lx-narrow);margin:0 0 var(--lx-space-lg)}
.lx-text{color:var(--ink-2);max-width:var(--lx-narrow);margin:0 0 var(--lx-space-lg)}
.lx-h2{font-size:var(--lx-font-lg);line-height:1.1;letter-spacing:-.01em;margin:0 0 var(--lx-space-xl)}
.lx-h3{font-size:var(--lx-font-md);margin:0 0 var(--lx-space-sm)}
.lx-link{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent)}
.lx-closing{margin-top:var(--lx-space-2xl)}
.lx-legal{font-size:var(--lx-font-sm);color:var(--ink-2);margin:var(--lx-space-2xl) 0 0}

/* ---------- steps and notes ---------- */
.lx-steps{list-style:none;counter-reset:lx-step;margin:0 0 var(--lx-space-xl);padding:0;display:grid;gap:var(--lx-space-md)}
.lx-steps li{counter-increment:lx-step;display:grid;grid-template-columns:40px 1fr;gap:var(--lx-space-lg);align-items:baseline;padding:var(--lx-space-lg) var(--lx-space-xl);background:var(--panel);border:1px solid var(--line);border-radius:var(--lx-radius-md)}
.lx-steps li::before{content:counter(lx-step,decimal-leading-zero);font-family:var(--lx-mono);font-size:var(--lx-font-sm);color:var(--accent)}
.lx-note{color:var(--ink-2);max-width:var(--lx-narrow);border-left:2px solid var(--accent);padding-left:var(--lx-space-lg);margin:0}

/* ---------- price ---------- */
.lx-price{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--lx-radius-md);padding:var(--lx-space-xl)}
.lx-price-label{display:block;font-family:var(--lx-mono);font-size:var(--lx-font-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.lx-price-value{display:block;font-size:var(--lx-font-lg);font-weight:700;margin:var(--lx-space-sm) 0 var(--lx-space-md)}
.lx-price-unit{font-size:var(--lx-font-base);font-weight:400;color:var(--ink-2)}

/* ---------- buttons ---------- */
.lx-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--lx-radius-pill);padding:var(--lx-space-lg) var(--lx-space-xl);font-family:var(--lx-sans);font-size:var(--lx-font-base);font-weight:600;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .2s var(--lx-ease)}
.lx-btn:hover{transform:scale(1.03)}
.lx-btn-primary{background:var(--accent);color:#0a0b09}
.lx-btn:disabled{opacity:.6;cursor:wait;transform:none}

/* ---------- form ---------- */
.lx-form{display:grid;gap:var(--lx-space-sm);background:var(--panel);border:1px solid var(--line-2);border-radius:var(--lx-radius-md);padding:var(--lx-space-2xl)}
.lx-label{display:block;font-size:var(--lx-font-sm);font-weight:600;margin-top:var(--lx-space-md)}
.lx-optional{font-weight:400;color:var(--ink-2)}
.lx-input{width:100%;font:inherit;color:var(--ink);background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--lx-radius-sm);padding:var(--lx-space-md) var(--lx-space-lg)}
.lx-input:focus{outline:2px solid var(--accent);outline-offset:1px}
.lx-textarea{resize:vertical;min-height:88px}
.lx-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--lx-space-lg)}
.lx-fieldset{border:0;margin:0;padding:0}
.lx-choices{display:flex;flex-wrap:wrap;gap:var(--lx-space-sm);margin-top:var(--lx-space-sm)}
.lx-choice{display:inline-flex;align-items:center;gap:var(--lx-space-sm);border:1px solid var(--line-2);border-radius:var(--lx-radius-pill);padding:var(--lx-space-sm) var(--lx-space-lg);cursor:pointer}
.lx-choice:has(input:checked){border-color:var(--accent)}
.lx-consent{display:grid;grid-template-columns:auto 1fr;gap:var(--lx-space-md);align-items:start;font-size:var(--lx-font-sm);color:var(--ink-2);margin-top:var(--lx-space-lg)}
.lx-submit{margin-top:var(--lx-space-lg);justify-self:start}
.lx-status{font-size:var(--lx-font-sm);color:var(--accent-2);min-height:1.5em;margin:0}
.lx-thanks{background:var(--panel);border:1px solid var(--accent);border-radius:var(--lx-radius-md);padding:var(--lx-space-2xl)}

/* ---------- faq ---------- */
.lx-faq details{border-bottom:1px solid var(--line);padding:var(--lx-space-lg) 0}
.lx-faq summary{cursor:pointer;font-weight:600}
.lx-faq details .lx-text{margin:var(--lx-space-md) 0 0}

/* ---------- small screens ---------- */
@media (max-width: 760px){
  .lx-split,.lx-row{grid-template-columns:1fr}
  .lx-form{padding:var(--lx-space-xl)}
  .lx-steps li{grid-template-columns:32px 1fr;padding:var(--lx-space-lg)}
}
