/* Hallmark · macrostructure: Split Studio · tone: calm-credible-human · anchor hue: forest-green
 * Hallmark · pre-emit critique: P5 H4 E4 S4 R5 V4
 * Maximilian Müller · Gesundheits- und Lifestyle-Beratung. Custom calm-nature theme.
 */

/* ── Tokens ──────────────────────────────────────────────────────────────── */
:root{
  /* paper / surfaces */
  --paper:        oklch(97.2% 0.008 95);    /* warm off-white */
  --paper-card:   oklch(99.4% 0.003 95);    /* near-white card */
  --paper-sage:   oklch(95% 0.014 150);     /* soft sage band */
  --paper-deep:   oklch(26% 0.022 155);     /* deep forest (footer / contrast) */
  /* ink */
  --ink:          oklch(27% 0.022 152);     /* warm green-charcoal text */
  --ink-soft:     oklch(44% 0.02 152);      /* muted body */
  --ink-faint:    oklch(50% 0.018 152);     /* captions (AA: >=4.5:1 on paper for small text) */
  /* accents */
  --green:        oklch(48% 0.072 155);     /* forest accent */
  --green-deep:   oklch(40% 0.075 155);
  --blue:         oklch(51% 0.058 236);     /* slate blue secondary */
  --blue-deep:    oklch(44% 0.06 236);
  /* lines */
  --line:         oklch(89% 0.012 150);
  --line-soft:    oklch(93% 0.008 150);

  /* type */
  --serif: "Iowan Old Style","Palatino Linotype","Hoefler Text",Palatino,Georgia,"Times New Roman",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* type scale */
  --text-display: clamp(2.4rem, 1.4rem + 3.6vw, 3.7rem);
  --text-h2:      clamp(1.55rem, 1.1rem + 1.7vw, 2.25rem);
  --text-h3:      1.24rem;
  --text-lede:    clamp(1.08rem, 1rem + 0.4vw, 1.22rem);
  --text-body:    1.02rem;
  --text-sm:      0.9rem;
  --text-xs:      0.8rem;

  /* space (4pt) */
  --space-xs: 0.5rem; --space-sm: 0.85rem; --space-md: 1.35rem;
  --space-lg: 2.2rem; --space-xl: 3.4rem; --space-2xl: 5rem; --space-3xl: 7rem;

  /* misc */
  --maxw: 1140px; --measure: 62ch;
  --radius: 16px; --radius-sm: 11px;
  --shadow: 0 1px 2px oklch(27% 0.02 152 / .05), 0 10px 30px oklch(27% 0.02 152 / .07);
  --shadow-sm: 0 1px 2px oklch(27% 0.02 152 / .06);
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-in-out: cubic-bezier(.65,.05,.36,1);
  --dur: 220ms;
}

/* ── Base ────────────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{overflow-x:clip;margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:var(--text-body);line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.14;letter-spacing:-0.012em;
  margin:0;overflow-wrap:anywhere;min-width:0}
h1{font-size:var(--text-display);line-height:1.08}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3);letter-spacing:-0.006em}
p{margin:0}
a{color:var(--green-deep);text-decoration-thickness:1px;text-underline-offset:2px}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.measure{max-width:var(--measure)}
.eyebrow{font-family:var(--sans);font-size:var(--text-xs);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--green-deep);margin:0 0 var(--space-sm)}
.lede{font-size:var(--text-lede);color:var(--ink-soft);line-height:1.55}
.center{text-align:center}
.ico{display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ic .ico{width:22px;height:22px}
.assure-ic .ico{width:18px;height:18px}
.magnet-ic .ico{width:26px;height:26px}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:44px;
  padding:.85em 1.5em;border-radius:999px;font:600 var(--text-body)/1 var(--sans);
  text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform var(--dur) var(--ease-out), background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out)}
.btn-primary{background:var(--green);color:oklch(99% 0 0)}
.btn-primary:hover{background:var(--green-deep);transform:translateY(-1px)}
.btn-line{background:transparent;border-color:var(--blue);color:var(--blue-deep)}
.btn-line:hover{background:var(--blue);color:oklch(99% 0 0);transform:translateY(-1px)}
.btn-soft{background:var(--paper-card);border-color:var(--line);color:var(--ink);padding:.62em 1.15em}
.btn-soft:hover{border-color:var(--green);color:var(--green-deep)}
.btn.full{width:100%}
.btn-lg{padding:1em 1.8em;font-size:1.06rem}
.btn-ghost{background:transparent;border:none;color:var(--green-deep);padding:.4em 0;text-decoration:underline}
.link-soft{display:inline-block;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;font-size:var(--text-sm);font-weight:500;padding:.35em 0;min-height:24px}
.link-soft:hover{color:var(--green-deep)}

/* ── Skip link + focus ───────────────────────────────────────────────────── */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--green);color:#fff;padding:.7em 1.1em;border-radius:0 0 10px 0}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,.tab:focus-visible{
  outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
/* programmatic focus (data-focus headings for SR announcement) needs no visible ring */
[tabindex="-1"]:focus{outline:none}

/* ── Header ──────────────────────────────────────────────────────────────── */
.site-head{position:sticky;top:0;z-index:40;background:oklch(97.2% 0.008 95 / .82);
  backdrop-filter:saturate(1.1) blur(10px);border-bottom:1px solid var(--line-soft)}
.head-inner{display:flex;align-items:center;justify-content:space-between;height:70px;gap:1rem}
.brand{display:flex;align-items:center;gap:.65em;text-decoration:none;color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--green);color:oklch(99% 0 0);font-family:var(--serif);font-weight:600;font-size:1.02rem}
.brand-mark svg,.foot-badge svg{width:27px;height:22px}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text strong{font-size:1.02rem;font-weight:600}
.brand-text span{font-size:var(--text-xs);color:var(--ink-faint);letter-spacing:.02em}
.head-nav{display:flex;align-items:center;gap:1.5rem}
.head-nav a:not(.btn){text-decoration:none;color:var(--ink-soft);font-size:var(--text-sm);font-weight:500}
.head-nav a:not(.btn):hover{color:var(--green-deep)}

/* ── Sections / rhythm ───────────────────────────────────────────────────── */
.section{padding:clamp(3.75rem, 2.6rem + 3.2vw, 6.5rem) 0}
.section.tight{padding:clamp(2.5rem, 2rem + 2vw, 4rem) 0}
.band-sage{background:var(--paper-sage);position:relative;isolation:isolate}
.band-sage::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(oklch(40% 0.04 155 / .055) 1px, transparent 1.6px);
  background-size:24px 24px;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%, #000, transparent 78%);
  mask-image:radial-gradient(120% 80% at 50% 0%, #000, transparent 78%)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.section-head{display:flex;flex-direction:column;gap:var(--space-sm);max-width:54ch;margin-bottom:var(--space-xl)}
.section-head > *{margin:0}
.section-head.center{align-items:center;text-align:center;margin-inline:auto}
.section-icon{width:60px;height:60px;border-radius:50%;background:var(--paper-card);border:1px solid var(--line);color:var(--green-deep);display:grid;place-items:center;margin-bottom:.2rem}
.section-icon .ico{width:28px;height:28px}
.divider{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin:0;color:var(--green)}
.divider::before,.divider::after{content:"";height:1px;width:min(130px,22vw);background:var(--line)}
.divider .ico{width:20px;height:20px}

/* ── Diptych (Split Studio core) ─────────────────────────────────────────── */
.diptych{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.diptych.rev .dip-media{order:-1}
.dip-body > * + *{margin-top:var(--space-md)}

/* hero */
.hero{padding:var(--space-2xl) 0 var(--space-xl);position:relative;overflow:clip;isolation:isolate}
.hero .wrap{position:relative;z-index:1}
.hero-art{position:absolute;z-index:-1;top:-30px;right:clamp(-140px,-5vw,-40px);
  width:min(540px,48vw);height:auto;color:var(--green);opacity:.16;pointer-events:none}
.hero-art path{stroke:currentColor;stroke-width:1.4;fill:none}
@media (max-width:640px){.hero-art{opacity:.1;width:62vw;top:-10px}}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:var(--space-lg)}
.hero-note{font-size:var(--text-sm);color:var(--ink-faint);margin-top:var(--space-md)}
.trust-row{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--line)}
.trust-row li{list-style:none;font-size:var(--text-sm);color:var(--ink-soft);display:flex;align-items:center;gap:.45em}
.trust-ic{width:18px;height:18px;color:var(--green);flex:none}

/* media / portrait */
.portrait{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  background:linear-gradient(155deg, oklch(91% 0.03 150), oklch(88% 0.035 175))}
.portrait picture{display:contents}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;color:oklch(45% 0.03 160)}
.portrait-illu{width:64px;height:64px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.portrait.placeholder span{font-size:var(--text-sm);background:oklch(99% 0 0 / .65);padding:.5em 1em;border-radius:999px}
.media-card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--space-lg);box-shadow:var(--shadow-sm)}
.media-card h3{margin-bottom:var(--space-sm)}
.media-quote{font-family:var(--serif);font-size:1.3rem;line-height:1.4;color:var(--ink)}
.media-quote .by{display:block;font-family:var(--sans);font-size:var(--text-sm);color:var(--ink-faint);margin-top:var(--space-sm)}
/* About: portrait + quote caption */
.about-figure{margin:0;display:flex;flex-direction:column;gap:var(--space-md)}
.about-figure .portrait{aspect-ratio:4/5}
.about-figure figcaption{font-size:1.12rem;border-left:3px solid var(--green);padding-left:var(--space-md)}

/* ── Path cards (two ways) ───────────────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out)}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--paper-sage);color:var(--green-deep);margin-bottom:var(--space-sm)}
.card-ic .ico{width:22px;height:22px}
.card .tag{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep);margin-bottom:.6em}
.card h3{color:var(--green-deep);margin-bottom:var(--space-sm)}
.ticks{list-style:none;margin:var(--space-md) 0 var(--space-lg);padding:0;display:flex;flex-direction:column;gap:.6em;flex:1}
.ticks li{position:relative;padding-left:1.7em;color:var(--ink-soft);font-size:var(--text-sm)}
.ticks li::before{content:"";position:absolute;left:0;top:.35em;width:.85em;height:.5em;
  border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}

/* ── Help grid (product categories) ──────────────────────────────────────── */
.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.1rem}
.help{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-lg)}
.help .ic{width:34px;height:34px;border-radius:10px;background:var(--paper-sage);display:grid;place-items:center;margin-bottom:.7em;color:var(--green-deep)}
.help h3{font-size:1.06rem;font-family:var(--sans);font-weight:700;margin-bottom:.35em}
.help p{font-size:var(--text-sm);color:var(--ink-soft);margin:0}

/* ── Credibility / assurance grid ────────────────────────────────────────── */
.assure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1.1rem}
.assure{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-lg)}
.assure-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--paper-sage);color:var(--green-deep);font-weight:700;margin-bottom:.7em}
.assure h3{font-size:1.04rem;font-family:var(--sans);font-weight:700;margin-bottom:.3em}
.assure p{font-size:var(--text-sm);color:var(--ink-soft);margin:0}

/* ── Steps (numbered process) ────────────────────────────────────────────── */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.steps li{position:relative;padding-top:var(--space-lg);isolation:isolate}
.steps li::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--line)}
.steps li.on::before{background:var(--green)}
/* node dot at the start of each track segment */
.steps li::after{content:"";position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;
  background:var(--green);box-shadow:0 0 0 4px var(--paper)}
/* ghosted sequence number */
.step-n{position:absolute;z-index:-1;top:.7rem;right:.1rem;font-family:var(--serif);font-weight:600;
  font-size:2.4rem;line-height:1;letter-spacing:-.02em;color:var(--green);opacity:.13}
.step-ic{width:48px;height:48px;border-radius:14px;background:var(--paper-sage);color:var(--green-deep);display:grid;place-items:center;margin-bottom:.9em}
.step-ic .ico{width:24px;height:24px}
.steps h3{font-size:1.05rem;font-family:var(--sans);font-weight:700;margin-bottom:.3em}
.steps p{font-size:var(--text-sm);color:var(--ink-soft);margin:0}

/* ── Lead magnet strip ───────────────────────────────────────────────────── */
.magnet{display:flex;align-items:center;gap:clamp(1.1rem, 3vw, 1.9rem);flex-wrap:wrap;
  background:var(--paper-card);border:1px solid var(--line);border-left:5px solid var(--green);
  border-radius:var(--radius);padding:clamp(1.6rem, 3vw, 2.4rem);box-shadow:var(--shadow-sm)}
.magnet-ic{flex:none;width:54px;height:54px;border-radius:15px;background:var(--paper-sage);
  color:var(--green-deep);display:grid;place-items:center;font-size:1.5rem;font-weight:700}
.magnet-body{flex:1 1 260px}
.magnet-body .eyebrow{margin-bottom:.45em}
.magnet p{margin:0;color:var(--ink-soft);font-size:var(--text-sm);max-width:52ch}
.magnet h3{margin-bottom:.35em;font-size:1.22rem}
.magnet .btn{flex:none}

/* ── Statement band (dark "moment": thesis + CTA) ────────────────────────── */
.statement-band{background:var(--paper-deep);color:oklch(95% 0.01 150);padding:clamp(4rem, 3rem + 3vw, 7rem) 0;text-align:center;position:relative;overflow:clip;isolation:isolate}
.statement-band::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 85% at 50% -8%, oklch(52% 0.07 155 / .5), transparent 68%)}
.statement-band::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.6;
  background-image:radial-gradient(oklch(85% 0.05 150 / .07) 1px, transparent 1.5px);background-size:26px 26px}
.statement-band .wrap{position:relative;z-index:1}
.statement-eyebrow{font-size:var(--text-sm);font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:oklch(80% 0.06 150);margin:0 0 var(--space-lg)}
.statement{font-family:var(--serif);font-size:clamp(1.8rem, 1.2rem + 2.8vw, 2.7rem);line-height:1.26;
  color:oklch(97% 0.008 95);margin:0 auto var(--space-xl);max-width:26ch;letter-spacing:-0.015em}
.btn-on-dark{background:oklch(97% 0.008 95);color:var(--ink)}
.btn-on-dark:hover{background:oklch(99% 0 0);transform:translateY(-1px)}

/* ── Stat trio (honest figures, doubles as a "numbers" graphic) ──────────── */
.stats{list-style:none;margin:0 auto var(--space-xl);padding:0;display:flex;flex-wrap:wrap;
  justify-content:center;gap:clamp(1.4rem,5vw,3.6rem)}
.stats li{display:flex;flex-direction:column;gap:.3em;min-width:110px}
.stats strong{font-family:var(--serif);font-weight:600;line-height:1;letter-spacing:-.02em;
  font-size:clamp(1.55rem,1.1rem+1.7vw,2.25rem)}
.stats span{font-size:var(--text-sm);color:var(--ink-soft)}
.stats.on-dark{max-width:640px}
.stats.on-dark strong{color:oklch(97% 0.008 95)}
.stats.on-dark span{color:oklch(82% 0.03 150)}
.stats.on-dark li + li{position:relative}
.stats.on-dark li + li::before{content:"";position:absolute;left:calc(clamp(1.4rem,5vw,3.6rem) / -2);
  top:15%;height:70%;width:1px;background:oklch(80% 0.03 150 / .25)}
@media (max-width:560px){.stats.on-dark li + li::before{display:none}}

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
.faq{max-width:760px;margin-inline:auto}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;padding:1.05em 2em 1.05em 0;list-style:none;position:relative;font-size:1.05rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:.2em;top:1.35em;width:.62em;height:.62em;
  border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);transition:transform var(--dur) var(--ease-out)}
details[open] summary::after{transform:rotate(-135deg)}
details p{margin:0 0 1.2em;color:var(--ink-soft);max-width:64ch}

/* ── Booking (native widget) ─────────────────────────────────────────────── */
/* "What you walk away with" takeaways above the calendar */
.call-gets{list-style:none;margin:0 auto var(--space-xl);padding:0;max-width:680px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.call-gets li{font-size:var(--text-sm);color:var(--ink-soft);line-height:1.5}
.call-gets strong{display:block;color:var(--ink);font-family:var(--sans);font-weight:700;margin-top:.5em}
.cg-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
  background:var(--paper-sage);color:var(--green-deep)}
.cg-ic .ico{width:20px;height:20px}
@media (max-width:640px){.call-gets{grid-template-columns:1fr;gap:1rem;max-width:420px}
  .call-gets li{display:flex;align-items:flex-start;gap:.8rem}
  .cg-ic{flex:none}.call-gets strong{margin-top:0}}

.booking-shell{max-width:760px;margin:0 auto}
.booking{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:clamp(1.3rem,3vw,2rem);min-height:360px}
.bk-step{display:flex;flex-direction:column;gap:var(--space-md)}
.bk-stepnote{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin:0}
.bk-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.bk-loading{color:var(--ink-faint);padding:2rem 0;text-align:center}
.bk-interests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.bk-interest{display:flex;flex-direction:column;gap:.25em;text-align:left;padding:1rem 1.1rem;border:1.5px solid var(--line);
  border-radius:var(--radius-sm);background:var(--paper);cursor:pointer;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}
.bk-interest:hover{border-color:var(--green);transform:translateY(-2px)}
.bk-interest strong{font-size:1.02rem;color:var(--ink)}
.bk-interest span{font-size:var(--text-sm);color:var(--ink-soft)}
.bk-days{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem;-webkit-overflow-scrolling:touch}
.bk-day{flex:0 0 auto;padding:.6em 1em;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);
  cursor:pointer;font:600 var(--text-sm)/1 var(--sans);color:var(--ink-soft);white-space:nowrap}
.bk-day.is-active{background:var(--green);color:oklch(99% 0 0);border-color:var(--green)}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem}
.bk-time{padding:.7em .4em;border-radius:10px;border:1.5px solid var(--line);background:var(--paper);
  cursor:pointer;font:600 var(--text-body)/1 var(--sans);color:var(--green-deep);transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.bk-time:hover{background:var(--green);color:oklch(99% 0 0);border-color:var(--green)}
.bk-summary{margin:0;padding:.8em 1em;background:var(--paper-sage);border-radius:10px;color:var(--ink);font-size:var(--text-sm)}
.bk-form{box-shadow:none;border:0;padding:0;background:transparent}
.bk-done{text-align:center;padding:1.5rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;outline:none}
.bk-check{width:56px;height:56px;border-radius:50%;background:var(--green);color:oklch(99% 0 0);display:grid;place-items:center;font-size:1.7rem}
.bk-done p{color:var(--ink-soft);max-width:46ch}
.ghl-cal{width:100%;min-height:730px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-card)}
.note{font-size:var(--text-sm);color:var(--ink-faint);margin-top:var(--space-md)}
@media(max-width:520px){ .bk-interests{grid-template-columns:1fr} }

/* ── Lead form ───────────────────────────────────────────────────────────── */
.lead-form{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.4rem);box-shadow:var(--shadow-sm);max-width:680px;margin-inline:auto}
.lead-form label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:1rem}
.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;margin-top:.4em;padding:.72em .85em;
  border:1px solid var(--line);border-radius:10px;font:400 var(--text-body)/1.4 var(--sans);background:var(--paper);color:var(--ink)}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:2px solid var(--green);outline-offset:0;border-color:var(--green)}
.consent-check{display:flex;gap:.6em;align-items:flex-start;font-weight:400;font-size:var(--text-sm);color:var(--ink-soft)}
.consent-check input{width:18px;height:18px;flex:none;margin-top:.15em}
.hp{position:absolute;left:-9999px;width:1px;height:1px}
.form-status{margin:.9em 0 0;font-size:var(--text-sm);min-height:1.2em}
.form-status.ok{color:var(--green-deep)}
.form-status.err{color:oklch(52% 0.16 27)}
.form-hint{font-size:var(--text-xs);color:var(--ink-faint);margin:0 0 1rem}
.req{color:var(--green-deep)}

/* VSL frame (token-driven; no inline styles) */
/* ── Custom video player (player.js) ─────────────────────────────────────── */
.player{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  background:#000;box-shadow:var(--shadow);container-type:size}
.player video,.vsl-video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
/* silent autoplay loop = the clickable thumbnail; sits above the real video until first play */
.pl-loop{position:absolute;inset:0;z-index:1}
.player.pl-started .pl-loop{display:none}
.player:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.vsl-note{color:oklch(86% 0.03 155);font-size:var(--text-sm);padding:1.2rem;text-align:center}
/* big centre play button (paused only) */
.pl-big{position:absolute;inset:0;margin:auto;width:84px;height:84px;border:none;border-radius:50%;
  cursor:pointer;background:var(--green);color:#fff;display:grid;place-items:center;z-index:3;
  box-shadow:0 8px 28px oklch(0% 0 0 / .38);transition:transform var(--dur) var(--ease-out),background var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out)}
.pl-big svg{width:34px;height:34px;margin-left:1px}
.pl-big .pl-ic-fill path,.pl-big .pl-ic-fill rect{fill:currentColor}
.pl-big:hover{background:var(--green-deep);transform:scale(1.06)}
/* big button shows whenever paused/ended (resume + replay affordance), hidden only while playing */
.player.pl-playing .pl-big{opacity:0;transform:scale(.7);pointer-events:none}
/* soft dim + bottom scrim while paused, so the poster reads premium */
.player.pl-paused::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 120% at 50% 45%, transparent 55%, oklch(0% 0 0 / .28))}
/* error state */
.pl-error-msg{display:none;position:absolute;inset:0;z-index:4;margin:auto;align-content:center;
  text-align:center;color:oklch(92% 0.01 150);font-size:var(--text-sm);padding:2rem;background:var(--paper-deep)}
.player.pl-error .pl-error-msg{display:grid;place-items:center}
.player.pl-error .pl-big,.player.pl-error .pl-bar{opacity:0;pointer-events:none}
/* control bar (scrim strong enough for white controls over any frame) */
.pl-bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:.4rem;
  padding:1.6rem .8rem .65rem;background:linear-gradient(transparent, oklch(0% 0 0 / .35) 38%, oklch(0% 0 0 / .72));
  transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}
.pl-cc-off{opacity:.5}
.player.pl-idle .pl-bar,.player:not(.pl-started) .pl-bar{opacity:0;transform:translateY(8px);pointer-events:none}
.pl-btn{background:none;border:none;color:#fff;cursor:pointer;display:grid;place-items:center;
  width:40px;height:40px;border-radius:9px;flex:none;transition:background var(--dur) var(--ease-out)}
.pl-btn:hover{background:oklch(100% 0 0 / .16)}
.pl-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.pl-btn .pl-ic-fill{stroke:none}
.pl-btn .pl-ic-fill path,.pl-btn .pl-ic-fill rect{fill:currentColor}
.pl-time{color:#fff;font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex:none;min-width:32px;text-align:center;opacity:.92}
/* seek slider */
.pl-seek{flex:1;min-width:60px;-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;cursor:pointer;background:transparent}
.pl-seek::-webkit-slider-runnable-track{height:6px;border-radius:999px;
  background:linear-gradient(to right, var(--green) var(--pl-fill,0%), oklch(100% 0 0 / .3) var(--pl-fill,0%))}
.pl-seek::-moz-range-track{height:6px;border-radius:999px;background:oklch(100% 0 0 / .3)}
.pl-seek::-moz-range-progress{height:6px;border-radius:999px;background:var(--green)}
.pl-seek::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;width:14px;height:14px;border-radius:50%;background:#fff;border:none;box-shadow:0 1px 3px oklch(0% 0 0 / .45)}
.pl-seek::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:#fff;box-shadow:0 1px 3px oklch(0% 0 0 / .45)}
.pl-seek:focus-visible{outline:2px solid #fff;outline-offset:4px}
/* captions */
/* captions: rendered by player.js into .pl-cap, perfectly centred via flexbox (independent of
   browser WebVTT positioning). Font scales with the player height via container query units. */
.pl-cap{position:absolute;left:0;right:0;bottom:13%;z-index:2;display:flex;flex-direction:column;
  align-items:center;gap:4px;padding:0 5%;pointer-events:none}
.pl-cap-line{background:oklch(0% 0 0 / .76);color:#fff;font-weight:500;line-height:1.35;
  padding:.1em .5em;border-radius:5px;max-width:100%;text-align:center;
  font-size:clamp(0.85rem, 5cqh, 2.2rem)}
@media (prefers-reduced-motion: reduce){.pl-big,.pl-bar{transition:none}}
@media (max-width:560px){.pl-btn{width:44px;height:44px}.pl-big{width:66px;height:66px}.pl-big svg{width:28px;height:28px}}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.site-foot{background:var(--paper-deep);color:oklch(86% 0.02 150);padding:clamp(3rem, 2rem + 3vw, 4.5rem) 0 var(--space-xl)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2rem clamp(1.5rem, 4vw, 3rem)}
.foot-brand{display:flex;flex-direction:column;gap:.8rem;max-width:34ch}
.foot-brandmark{display:flex;align-items:center;gap:.6em}
.foot-badge{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--green);color:oklch(99% 0 0);font-family:var(--serif);font-weight:600}
.foot-brand strong{font-size:1.05rem;color:oklch(97% 0.008 95)}
.foot-brand p{margin:0;font-size:var(--text-sm);color:oklch(78% 0.02 150);line-height:1.55}
.foot-col h3{font-family:var(--sans);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:oklch(72% 0.03 150);margin:0 0 .9rem}
.foot-col a,.foot-cc-link{display:block;color:oklch(88% 0.02 150);text-decoration:none;font-size:var(--text-sm);padding:.6em 0;min-height:24px}
.foot-col a:hover,.foot-cc-link:hover{color:oklch(97% 0.008 95);text-decoration:underline}
.foot-bottom{border-top:1px solid oklch(45% 0.02 150 / .35);margin-top:var(--space-xl);padding-top:var(--space-lg);display:flex;flex-direction:column;gap:.9rem}
.disclaimer{color:oklch(74% 0.02 150);font-size:var(--text-xs);line-height:1.55;margin:0;max-width:80ch}
.copy{margin:0;color:oklch(74% 0.02 150);font-size:var(--text-xs)}
.foot-credit{color:oklch(82% 0.05 150);text-decoration:underline;text-underline-offset:2px}
.foot-credit:hover{color:oklch(90% 0.05 150)}

/* ── Sticky mobile CTA ───────────────────────────────────────────────────── */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;
  padding:.7rem clamp(16px,5vw,24px);background:oklch(97.2% 0.008 95 / .94);
  backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.sticky-cta .btn{width:100%}
/* while the consent banner is open, hide the sticky CTA so they don't stack at the bottom */
body.consent-open .sticky-cta{display:none}

/* ── Consent banner ──────────────────────────────────────────────────────── */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper-deep);color:oklch(92% 0.01 150);box-shadow:0 -6px 28px oklch(0% 0 0 / .2)}
.consent[hidden]{display:none}
.consent-inner{max-width:var(--maxw);margin:0 auto;padding:1.05rem clamp(20px,5vw,40px);display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.consent-ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:oklch(99% 0 0 / .08);color:oklch(84% 0.07 150)}
.consent-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.consent-copy{flex:1;min-width:240px}
.consent-title{display:block;font-size:var(--text-body);font-weight:700;color:oklch(98% 0.008 95);margin-bottom:.15em}
.consent-inner p{margin:0;font-size:var(--text-sm);line-height:1.5;color:oklch(86% 0.012 150)}
.consent-inner a{color:oklch(82% 0.07 150);text-underline-offset:2px}
.consent-btns{display:flex;gap:.6rem;flex-shrink:0;align-items:center;flex-wrap:wrap}
/* one consistent pill set; reject is solid = equal prominence to accept (DSGVO) */
.consent-btns .btn{padding:.66em 1.3em;font-size:var(--text-sm)}
.consent-reject{background:oklch(97% 0.008 95);color:var(--ink);border-color:transparent}
.consent-reject:hover{background:oklch(99% 0 0);transform:translateY(-1px)}
.consent-ghost{background:transparent;border-color:oklch(82% 0.04 150 / .5);color:oklch(92% 0.02 150)}
.consent-ghost:hover{background:oklch(99% 0 0 / .1);border-color:oklch(88% 0.03 150);color:oklch(99% 0 0)}
@media (max-width:640px){
  .consent-btns{width:100%;gap:.5rem}
  .consent-btns .btn{flex:1 1 calc(50% - .25rem)}
  .consent-btns #consent-accept{flex-basis:100%;order:3}
}

/* footer revoke link (looks like the other footer nav links) */
/* button that visually matches the footer <a> links (visual rule shared above) */
.foot-cc-link{background:none;border:none;text-align:left;cursor:pointer;font-family:inherit;width:auto}

/* ── Legal pages (Impressum / Datenschutz) ──────────────────────────────── */
.legal-page{padding-top:clamp(2.5rem,2rem+2.5vw,4.5rem);padding-bottom:clamp(3.5rem,3rem+3vw,6rem)}
.wrap.legal{max-width:780px}
.legal-head{margin-bottom:var(--space-lg)}
.legal-head .eyebrow{margin-bottom:.55rem}
.legal-head h1{font-size:clamp(2rem,1.55rem+2vw,2.9rem);margin:0;letter-spacing:-.015em}
.legal-sub{margin:.6rem 0 0;color:var(--ink-faint);font-size:var(--text-sm)}
.legal-card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(1.5rem,4vw,2.8rem);box-shadow:var(--shadow-sm)}
.legal-card h2{font-family:var(--sans);font-size:1.05rem;font-weight:700;color:var(--ink);
  margin:var(--space-md) 0 var(--space-xs);padding-top:var(--space-md);border-top:1px solid var(--line-soft)}
.legal-card > :first-child{margin-top:0;padding-top:0;border-top:none}
.legal-card p{color:var(--ink-soft);line-height:1.72;margin:0 0 var(--space-sm);max-width:68ch}
.legal-card p:last-child{margin-bottom:0}
.legal-card a{color:var(--green-deep);text-underline-offset:2px}
.legal-card .legal-address{background:var(--paper-sage);border-radius:var(--radius-sm);
  padding:1rem 1.2rem;color:var(--ink);line-height:1.75;margin-bottom:var(--space-md)}
.legal-back{margin-top:var(--space-lg)}

/* ── Consent settings modal (second layer) ───────────────────────────────── */
.cc-overlay{position:fixed;inset:0;z-index:80;background:oklch(20% 0.02 152 / .55);
  display:grid;place-items:center;padding:1.2rem;overflow-y:auto}
.cc-overlay[hidden]{display:none}
.cc-modal{background:var(--paper);color:var(--ink);width:min(560px,100%);border-radius:var(--radius);
  box-shadow:0 20px 60px oklch(0% 0 0 / .3);padding:clamp(1.4rem,4vw,2.2rem);max-height:90vh;overflow-y:auto}
.cc-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:var(--space-sm)}
.cc-head-title{display:flex;align-items:center;gap:.7rem;min-width:0}
.cc-head-ico{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--paper-sage);color:var(--green-deep)}
.cc-head-ico svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cc-head h2{font-size:1.32rem}
.cc-close{background:none;border:none;font-size:1.8rem;line-height:1;color:var(--ink-soft);cursor:pointer;padding:.1em .3em;border-radius:8px}
.cc-close:hover{color:var(--ink);background:var(--paper-sage)}
.cc-intro{font-size:var(--text-sm);color:var(--ink-soft);margin:0 0 var(--space-md)}
.cc-cats{list-style:none;margin:0 0 var(--space-md);padding:0;display:flex;flex-direction:column;gap:.7rem}
.cc-cat{border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem;background:var(--paper-card)}
.cc-cat-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35em}
.cc-cat-label{display:flex;align-items:center;gap:.65rem;min-width:0}
.cc-cat-ico{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--paper-sage);color:var(--green-deep)}
.cc-cat-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cc-cat-name{font-weight:700}
.cc-always{font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--green-deep)}
.cc-cat-desc{margin:0;font-size:var(--text-sm);color:var(--ink-soft);line-height:1.5}
/* accessible toggle switch */
.cc-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex:none}
.cc-switch input{position:absolute;opacity:0;width:44px;height:24px;margin:0;cursor:pointer;z-index:1}
.cc-slider{width:44px;height:24px;border-radius:999px;background:oklch(78% 0.02 152);transition:background var(--dur) var(--ease-out);position:relative;flex:none;pointer-events:none}
.cc-slider::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform var(--dur) var(--ease-out);box-shadow:0 1px 2px oklch(0% 0 0 / .25)}
.cc-switch input:checked + .cc-slider{background:var(--green)}
.cc-switch input:checked + .cc-slider::after{transform:translateX(20px)}
.cc-switch input:focus-visible + .cc-slider{outline:2px solid var(--blue);outline-offset:3px}
.cc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cc-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.cc-actions .btn{flex:1 1 auto}
/* save = the modal's own confirm action: green-outlined, between neutral reject and filled accept */
.cc-btn-save{background:transparent;border-color:var(--green);color:var(--green-deep)}
.cc-btn-save:hover{background:var(--green);color:oklch(99% 0 0);transform:translateY(-1px)}
.cc-modal-links{margin:var(--space-md) 0 0;font-size:var(--text-sm);text-align:center}
.cc-modal-links a{color:var(--green-deep)}
@media (max-width:560px){.cc-actions .btn{flex:1 1 100%}}

/* ── Reveal ──────────────────────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease-out), transform .55s var(--ease-out)}
.reveal.in{opacity:1;transform:none}

/* sticky-header anchor offset so jumped-to sections aren't hidden under the bar */
section[id],article[id],:target{scroll-margin-top:88px}

/* NOTE: content-visibility:auto was removed here. On a single-screen LP it gave near-zero
   perf benefit but broke smooth anchor scrolling: off-screen sections were size-estimated,
   then re-laid-out to real height as you scrolled past, shifting the target mid-scroll
   (the "anchors jump instead of scroll" bug). Document height is now stable. */

/* help-card hover */
.help{transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out)}
.help:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}

/* Turnstile */
#ts-widget{margin-bottom:1rem;min-height:65px}

/* ── Energie-Check tool ──────────────────────────────────────────────────── */
.check-hero{padding-bottom:var(--space-sm)}
.check-illu{width:clamp(96px, 22vw, 132px);height:auto;color:var(--green)}
.check{max-width:680px;margin:0 auto;background:var(--paper-card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(1.5rem,4vw,2.6rem);min-height:340px}
.ck-progress{margin-bottom:var(--space-lg)}
.ck-step{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin:0 0 .6rem}
.ck-track{height:6px;border-radius:999px;background:var(--paper-sage);overflow:hidden}
.ck-fill{height:100%;background:var(--green);border-radius:999px;transition:width var(--dur) var(--ease-out)}
.ck-q{font-size:clamp(1.25rem, 1rem + 1.4vw, 1.7rem);margin:0 0 var(--space-lg);line-height:1.25}
.ck-opts{display:flex;flex-direction:column;gap:.7rem}
.ck-opt{text-align:left;padding:1rem 1.2rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:var(--paper);cursor:pointer;font:500 var(--text-body)/1.4 var(--sans);color:var(--ink);
  transition:border-color var(--dur) var(--ease-out), background var(--dur) var(--ease-out), transform var(--dur) var(--ease-out)}
.ck-opt:hover{border-color:var(--green);background:var(--paper-sage);transform:translateY(-1px)}
.ck-back{display:block;margin-top:var(--space-md)}
/* story step */
.ck-q-note{margin:-1.3rem 0 var(--space-md);color:var(--ink-soft);font-size:var(--text-sm);max-width:54ch}
.ck-story{width:100%;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);
  padding:.9rem 1rem;font:500 var(--text-body)/1.55 var(--sans);color:var(--ink);resize:vertical;
  min-height:118px;margin-bottom:var(--space-md)}
.ck-story:focus-visible{border-color:var(--green)}
.ck-skip{display:block;width:100%;margin:.8rem 0 0;text-align:center}
.ck-thanks{color:var(--green-deep);font-size:var(--text-sm);background:var(--paper-sage);
  border-radius:var(--radius-sm);padding:.7rem 1rem;margin:0 0 var(--space-md)}
.ck-result-h{font-size:clamp(1.4rem, 1.1rem + 1.6vw, 2rem);margin:.2em 0 .5em}
.ck-result-p{color:var(--ink-soft);margin:0 0 var(--space-md)}
.ck-form{box-shadow:none;margin:var(--space-lg) 0 var(--space-md);background:var(--paper)}
.ck-cap-note{font-size:var(--text-sm);color:var(--ink-soft);margin:0 0 var(--space-md)}
.ck-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:1rem .5rem}
.ck-done p{color:var(--ink-soft);max-width:48ch}
.ck-meter{margin:var(--space-md) 0 var(--space-lg)}
.ck-meter-track{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg, var(--green) 0%, oklch(72% 0.10 120) 55%, oklch(66% 0.13 55) 100%)}
.ck-meter-dot{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:var(--paper-card);border:3px solid var(--green-deep);transform:translate(-50%,-50%);box-shadow:var(--shadow-sm)}
.ck-meter-labels{display:flex;justify-content:space-between;margin-top:.55rem;font-size:var(--text-xs);color:var(--ink-faint)}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media(max-width:900px){
  .diptych{grid-template-columns:1fr;gap:2rem}
  .diptych.rev .dip-media{order:0}
  .dip-media{max-width:440px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .cards{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:1.6rem}
  .head-nav{display:none}        /* sticky CTA + in-page CTAs cover conversion on mobile */
  .sticky-cta{display:block}
  body{padding-bottom:68px}
}
@media(max-width:560px){
  .lead-form .row{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .magnet{flex-direction:column;align-items:stretch}
  .magnet-body{flex:1 1 auto}
  .magnet .btn{width:100%}
  /* long German CTA labels must not overflow narrow viewports */
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%;white-space:normal;text-align:center;line-height:1.25}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
