/*
Theme Name: LifeSocialBalance – Life-Social-Ballance.at Green Edition
Theme URI: https://www.life-social-ballance.at
Author: Christian Haslinger / LifeSocialBalance
Description: Modernes WordPress-Theme für Life-Social-Ballance.at – Coaching & psychosoziale Beratung. Green Gradient Edition mit integriertem Zusatz-CSS sowie integrierten Impressum- und Datenschutzseiten.
Version: 1.2.0
License: Proprietary – created for Christian Haslinger. Rechtstexte vor Veröffentlichung anhand der tatsächlichen Website-Konfiguration prüfen.
Text Domain: lifesocialbalance
*/

:root {
  --lsb-green-950: #0E2F28;
  --lsb-green-900: #123F35;
  --lsb-green-800: #155647;
  --lsb-green-700: #1D6B57;
  --lsb-green-600: #2F856B;
  --lsb-green-500: #58A77F;
  --lsb-green-300: #B7DCC9;
  --lsb-mint-100: #E9F6EF;
  --lsb-mint-50: #F6FBF8;
  --lsb-sand: #EFE8DB;
  --lsb-cream: #FBF8F1;
  --lsb-gold: #C6A45D;
  --lsb-gold-soft: #E5D5A7;
  --lsb-ink: #1D2925;
  --lsb-muted: #65736D;
  --lsb-white: #FFFFFF;
  --lsb-line: rgba(18, 63, 53, 0.14);
  --lsb-radius: 30px;
  --lsb-shadow: 0 28px 80px rgba(14, 47, 40, 0.16);
  --lsb-shadow-soft: 0 16px 44px rgba(14, 47, 40, 0.10);
  --lsb-max: 1180px;
  --lsb-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lsb-serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--lsb-font);
  color: var(--lsb-ink);
  background:
    radial-gradient(circle at 8% 4%, rgba(88, 167, 127, 0.22), transparent 32%),
    radial-gradient(circle at 90% 10%, rgba(198, 164, 93, 0.18), transparent 30%),
    linear-gradient(180deg, var(--lsb-mint-50) 0%, var(--lsb-cream) 46%, #FFFFFF 100%);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--lsb-green-700); text-decoration: none; }
a:hover { color: var(--lsb-gold); }

.lsb-wrap { width: min(var(--lsb-max), calc(100% - 40px)); margin: 0 auto; }
.lsb-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246, 251, 248, 0.84);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--lsb-line);
  box-shadow: 0 10px 34px rgba(14, 47, 40, 0.05);
}
.lsb-nav {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.lsb-brand { display: flex; align-items: center; gap: 14px; }
.lsb-logo {
  width: 166px;
  display: block;
  border-radius: 18px;
  filter: saturate(.88) hue-rotate(38deg) contrast(1.03);
}
.lsb-menu { display: flex; align-items: center; gap: 22px; font-size: 0.95rem; color: var(--lsb-muted); }
.lsb-menu a { color: var(--lsb-muted); font-weight: 750; }
.lsb-menu a:hover { color: var(--lsb-green-800); }
.lsb-btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 21px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--lsb-green-800), var(--lsb-green-600) 58%, var(--lsb-green-500));
  color: #fff !important;
  font-weight: 850;
  letter-spacing: 0.01em;
  border: 0;
  box-shadow: var(--lsb-shadow-soft);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.lsb-btn:hover { transform: translateY(-2px); color: #fff; filter: brightness(1.03); box-shadow: var(--lsb-shadow); }
.lsb-btn.secondary { background: rgba(255,255,255,.82); color: var(--lsb-green-800) !important; border: 1px solid var(--lsb-line); box-shadow: none; }
.lsb-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 15px;
  border-radius: 999px;
  color: var(--lsb-green-900);
  background: linear-gradient(135deg, rgba(183,220,201,.65), rgba(255,255,255,.72));
  border: 1px solid rgba(29,107,87,.18);
  font-weight: 850;
  font-size: 0.88rem;
}
.lsb-hero { padding: 80px 0 70px; position: relative; overflow: hidden; }
.lsb-hero::before,
.lsb-hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(8px);
  opacity: .65;
  pointer-events: none;
}
.lsb-hero::before { width: 500px; height: 500px; background: rgba(88,167,127,.22); top: -12%; left: -220px; }
.lsb-hero::after { width: 420px; height: 420px; background: rgba(198,164,93,.18); bottom: 0; right: -180px; }
.lsb-hero-grid { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: 54px; align-items: center; }
.lsb-kicker { margin-bottom: 24px; }
.lsb-h1 {
  margin: 0;
  font-size: clamp(3.0rem, 6vw, 6.25rem);
  line-height: 0.95;
  letter-spacing: -0.065em;
  color: var(--lsb-green-950);
}
.lsb-h1 span { color: var(--lsb-green-600); }
.lsb-sublead { font-size: clamp(1.15rem, 1.9vw, 1.55rem); margin: 28px 0 0; color: #35433e; max-width: 760px; }
.lsb-lead { font-size: 1.08rem; color: var(--lsb-muted); max-width: 760px; }
.lsb-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.lsb-trust { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; color: var(--lsb-muted); font-size: .95rem; }
.lsb-trust span { padding: 8px 12px; background: rgba(255,255,255,.70); border: 1px solid var(--lsb-line); border-radius: 999px; }
.lsb-hero-card {
  background: linear-gradient(160deg, rgba(255,255,255,.84), rgba(233,246,239,.74));
  border: 1px solid rgba(255, 255, 255, 0.85);
  box-shadow: var(--lsb-shadow);
  border-radius: 40px;
  padding: clamp(26px, 4vw, 48px);
  position: relative;
  overflow: hidden;
}
.lsb-hero-card::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 80% 12%, rgba(198,164,93,.18), transparent 34%); pointer-events:none; }
.lsb-hero-card > * { position:relative; }
.lsb-quote {
  font-family: var(--lsb-serif);
  font-size: clamp(1.65rem, 3vw, 2.55rem);
  line-height: 1.16;
  color: var(--lsb-green-900);
  margin: 0 0 26px;
}
.lsb-balance-line { height: 10px; background: linear-gradient(90deg, var(--lsb-green-900), var(--lsb-green-500), var(--lsb-gold)); border-radius: 999px; margin: 26px 0; }
.lsb-mini-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 13px; }
.lsb-mini-list li { display: flex; gap: 11px; align-items: flex-start; }
.lsb-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--lsb-green-500); flex: 0 0 auto; margin-top: 9px; }

.lsb-section { padding: 76px 0; }
.lsb-section.compact { padding: 48px 0; }
.lsb-section-title { max-width: 900px; margin-bottom: 34px; }
.lsb-eyebrow { text-transform: uppercase; letter-spacing: .16em; color: var(--lsb-green-700); font-weight: 900; font-size: .78rem; margin: 0 0 12px; }
h2, .lsb-h2 { font-size: clamp(2.0rem, 4.2vw, 4.05rem); line-height: 1.02; letter-spacing: -0.045em; margin: 0 0 18px; color: var(--lsb-green-950); }
h3 { font-size: 1.4rem; line-height: 1.2; color: var(--lsb-green-950); margin: 0 0 12px; }
.lsb-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.lsb-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.lsb-card {
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(18,63,53,.12);
  border-radius: var(--lsb-radius);
  padding: 29px;
  box-shadow: var(--lsb-shadow-soft);
}
.lsb-card.emphasis { background: linear-gradient(135deg, var(--lsb-green-950), var(--lsb-green-800) 52%, var(--lsb-green-600)); color: #fff; }
.lsb-card.emphasis h3, .lsb-card.emphasis p, .lsb-card.emphasis a { color: #fff; }
.lsb-card p { color: var(--lsb-muted); margin: 0; }
.lsb-card.emphasis p { opacity: .92; }
.lsb-num { width: 40px; height: 40px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(47,133,107,.12); color: var(--lsb-green-800); font-weight: 950; margin-bottom: 18px; }
.lsb-tagrow { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.lsb-tag { color: var(--lsb-green-800); background: rgba(47,133,107,.09); border: 1px solid rgba(47,133,107,.14); padding: 7px 11px; border-radius: 999px; font-size: .88rem; font-weight: 750; }

.lsb-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 46px; align-items: start; }
.lsb-panel {
  background: linear-gradient(180deg, rgba(233,246,239,.95), rgba(255,255,255,.72));
  border-radius: 38px;
  padding: 34px;
  border: 1px solid var(--lsb-line);
}
.lsb-process { counter-reset: step; display: grid; gap: 16px; }
.lsb-step { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 20px; background: #fff; border-radius: 22px; border: 1px solid var(--lsb-line); }
.lsb-step::before { counter-increment: step; content: counter(step); width: 44px; height: 44px; border-radius: 16px; background: linear-gradient(135deg, var(--lsb-green-800), var(--lsb-green-500)); color: #fff; display: inline-flex; align-items:center; justify-content:center; font-weight:950; }
.lsb-step strong { color: var(--lsb-green-950); display:block; margin-bottom:4px; }
.lsb-step span { color: var(--lsb-muted); }

.lsb-band { background: linear-gradient(135deg, var(--lsb-green-950), var(--lsb-green-800) 48%, var(--lsb-green-500)); color: #fff; border-radius: 44px; padding: clamp(32px, 6vw, 66px); box-shadow: var(--lsb-shadow); overflow: hidden; position: relative; }
.lsb-band::after { content:""; position:absolute; width:260px; height:260px; border:1px solid rgba(255,255,255,.22); border-radius:50%; right:-70px; top:-80px; }
.lsb-band h2, .lsb-band p, .lsb-band a { color: #fff; }
.lsb-band p { opacity:.92; }
.lsb-band .lsb-eyebrow { color: var(--lsb-gold-soft); }
.lsb-band .lsb-btn.secondary { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.26); color: #fff !important; }

.lsb-linkbox { display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: center; border: 1px solid rgba(47,133,107,.24); border-radius: 36px; padding: 32px; background: linear-gradient(135deg, rgba(233,246,239,.86), rgba(255,255,255,.86)); }

.lsb-footer { padding: 46px 0; border-top: 1px solid var(--lsb-line); background: rgba(246,251,248,.90); color: var(--lsb-muted); }
.lsb-footer-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 32px; align-items: start; }
.lsb-footer a { font-weight: 750; }
.lsb-footlinks { display: flex; gap: 18px; flex-wrap: wrap; justify-content: flex-end; }

.lsb-legal { padding: 64px 0; }
.lsb-legal article { background: rgba(255,255,255,.92); border: 1px solid var(--lsb-line); border-radius: 34px; padding: clamp(28px, 6vw, 58px); box-shadow: var(--lsb-shadow-soft); }
.lsb-legal h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); line-height: 1; letter-spacing:-.045em; color: var(--lsb-green-950); margin:0 0 20px; }
.lsb-legal h2 { font-size: 1.8rem; margin-top: 36px; letter-spacing:-.02em; color: var(--lsb-green-900); }
.lsb-legal h3 { margin-top: 24px; }
.lsb-legal p, .lsb-legal li { color: #3f4c47; }
.lsb-note { background: rgba(183,220,201,.35); border-left: 4px solid var(--lsb-green-600); padding: 16px 18px; border-radius: 14px; }
.lsb-warning { background: rgba(198,164,93,.16); border-left: 4px solid var(--lsb-gold); padding: 16px 18px; border-radius: 14px; }
.lsb-legal-table { width:100%; border-collapse: collapse; margin: 18px 0; overflow: hidden; border-radius: 16px; }
.lsb-legal-table th, .lsb-legal-table td { text-align:left; vertical-align:top; border: 1px solid var(--lsb-line); padding: 12px 14px; }
.lsb-legal-table th { background: var(--lsb-mint-100); color: var(--lsb-green-950); }

@media (max-width: 960px) {
  .lsb-menu { display: none; }
  .lsb-hero-grid, .lsb-grid-3, .lsb-grid-2, .lsb-split, .lsb-footer-grid, .lsb-linkbox { grid-template-columns: 1fr; }
  .lsb-hero { padding-top: 48px; }
  .lsb-h1 { font-size: clamp(2.9rem, 15vw, 5.1rem); }
  .lsb-footlinks { justify-content: flex-start; }
}
@media (max-width: 580px) {
  .lsb-wrap { width: min(100% - 24px, var(--lsb-max)); }
  .lsb-nav { min-height: 72px; }
  .lsb-logo { width: 138px; }
  .lsb-card, .lsb-panel, .lsb-band, .lsb-linkbox { border-radius: 24px; padding: 24px; }
  .lsb-actions { flex-direction: column; align-items: stretch; }
  .lsb-btn { width: 100%; }
}

/* Integrated legal page refinements */
.lsb-legal .lsb-source-note { font-size: .95rem; color: var(--lsb-muted); }
.lsb-legal em { color: #6d5f46; }
.lsb-legal a { word-break: break-word; }
