/* Eckhard Schölzel & Partner — Website 2026. Design tokens + components. */

/* ---- fonts (self-hosted, DSGVO) ---- */
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/source-serif.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/source-serif-italic.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/plex-sans.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/plex-sans-italic.woff2") format("woff2")}

/* ---- tokens ---- */
:root{
  --ink-900:#1a1a1a;--ink-600:#5f5e5a;--ink-400:#8a8884;
  --coral-700:#7a2f16;--coral-600:#993c1d;--coral-100:#f0e2db;
  --rule-300:#d9d3cc;--rule-200:#e8e4de;
  --paper-000:#ffffff;--paper-050:#faf8f5;

  --text-heading:var(--ink-900);--text-body:var(--ink-900);--text-muted:var(--ink-600);
  --text-caption:var(--ink-400);--text-accent:var(--coral-600);--text-on-accent:var(--paper-000);
  --surface-page:var(--paper-000);--surface-band:var(--paper-050);
  --accent:var(--coral-600);--accent-hover:var(--coral-700);
  --border-hairline:var(--rule-300);--border-accent:var(--coral-600);
  --link:var(--coral-600);--link-hover:var(--coral-700);--focus-ring:var(--coral-600);

  --font-serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --font-sans:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --fs-display:clamp(2.5rem,1.6rem + 3vw,4rem);
  --fs-h1:clamp(2rem,1.4rem + 2vw,3rem);
  --fs-h2:clamp(1.5rem,1.2rem + 1vw,2rem);
  --fs-h3:1.25rem;
  --fs-lead:clamp(1.125rem,1.05rem + .4vw,1.375rem);
  --fs-body:1.0625rem;--fs-small:0.9375rem;--fs-caption:0.8125rem;--fs-kicker:0.75rem;
  --leading-heading:1.22;--leading-body:1.72;--leading-lead:1.55;
  --weight-regular:400;--weight-medium:500;--weight-semibold:600;
  --tracking-kicker:.14em;--tracking-heading:-0.01em;
  --measure-text:66ch;

  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;
  --space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:144px;
  --section-y:clamp(56px,7vw,112px);
  --page-gutter:clamp(20px,5vw,64px);--page-max:1160px;--page-narrow:720px;

  --hairline:1px solid var(--border-hairline);
  --rule-accent:2px solid var(--border-accent);
  --rule-accent-thin:1px solid var(--border-accent);
  --quote-rule:2px solid var(--border-accent);
  --radius-sm:2px;--radius-photo:0;
  --shadow-focus:0 0 0 2px var(--paper-000),0 0 0 4px var(--focus-ring);

  --dur-hover:140ms;--ease-standard:cubic-bezier(.2,0,.2,1);
  --transition-hover:color var(--dur-hover) var(--ease-standard),background-color var(--dur-hover) var(--ease-standard),border-color var(--dur-hover) var(--ease-standard);
}

/* ---- base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,blockquote{font-family:var(--font-serif);color:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin:0}
p{margin:0}
a{color:var(--link);text-decoration:none;border-bottom:1px solid var(--coral-100);transition:var(--transition-hover),border-color var(--dur-hover) var(--ease-standard)}
a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
::selection{background:var(--coral-100);color:var(--ink-900)}
img{display:block;max-width:100%}
address{font-style:normal}
main{display:block}

/* ---- layout ---- */
.section__inner{max-width:var(--page-max);margin:0 auto;padding:var(--section-y) var(--page-gutter)}
.section--narrow .section__inner{max-width:var(--page-narrow)}
.section--band{background:var(--surface-band)}
.section--divider{border-top:var(--hairline)}

.measure{max-width:var(--measure-text)}
.stack{display:grid;gap:var(--space-5)}
.stack--sm{display:grid;gap:var(--space-3)}
.stack--lg{display:grid;gap:var(--space-7)}

.cols-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,320px);gap:var(--space-9);align-items:start}
.cols-person{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:var(--space-9);align-items:start}
.cols-label{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:var(--space-7);padding-top:var(--space-5);border-top:var(--hairline)}
.cols-label-wide{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--space-7);padding-top:var(--space-5);border-top:var(--hairline)}
.cols-grid{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:var(--space-7);padding-top:var(--space-5);border-top:var(--hairline)}
@media (max-width:1000px){.cols-hero,.cols-person,.cols-label,.cols-label-wide,.cols-grid{grid-template-columns:minmax(0,1fr)}}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-7)}
.cards--280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.cards--300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.cards--320{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.cards--gap-8{gap:var(--space-8)}
.cards--gap-9{gap:var(--space-9)}

/* ---- site header ---- */
.site-header{border-bottom:var(--hairline);background:var(--surface-page)}
.site-header__inner{max-width:var(--page-max);margin:0 auto;padding:var(--space-5) var(--page-gutter);display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}
.site-header__logo{display:block;flex:0 0 auto;border:0}
.site-header__logo img{height:56px;width:auto}
.site-header__nav{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-left:auto;align-items:center}
.site-header__nav a{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--ink-900);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:3px;transition:var(--transition-hover)}
.site-header__nav a:hover,.site-header__nav a.is-active{color:var(--coral-600);border-bottom-color:var(--coral-600)}
.site-header__lang{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--ink-600);display:inline-flex;gap:var(--space-2)}
.site-header__lang a{color:var(--ink-600);border:0}
.site-header__lang span[aria-current]{color:var(--ink-900);font-weight:var(--weight-medium)}
.site-header__cta{background:var(--coral-600);color:var(--paper-000);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:var(--weight-medium);padding:10px 18px;border-radius:var(--radius-sm);text-decoration:none;border:1px solid transparent}
.site-header__cta:hover{background:var(--coral-700);color:var(--paper-000)}

/* ---- site footer ---- */
.site-footer{border-top:var(--hairline);background:var(--surface-page)}
.site-footer__grid{max-width:var(--page-max);margin:0 auto;padding:var(--space-8) var(--page-gutter) var(--space-7);display:grid;gap:var(--space-7);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.site-footer__col{display:grid;gap:var(--space-3);align-content:start}
.site-footer__col-title{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-medium)}
.site-footer__col span,.site-footer__col a{font-size:var(--fs-small);color:var(--ink-900);line-height:var(--leading-body);border:0;display:inline-block}
.site-footer__col a{border-bottom:1px solid var(--coral-100)}
.site-footer__col a:hover{border-bottom-color:currentColor}
.site-footer__note{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-gutter) var(--space-8);font-size:var(--fs-caption);color:var(--text-caption)}

/* ---- buttons / links ---- */
.btn{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--weight-medium);line-height:1.2;letter-spacing:.005em;border-radius:var(--radius-sm);cursor:pointer;display:inline-block;text-decoration:none;transition:var(--transition-hover);text-align:center;padding:13px 24px;background:var(--coral-600);color:var(--paper-000);border:1px solid transparent}
.btn:hover{background:var(--coral-700);color:var(--paper-000)}
.btn--lg{padding:17px 32px;font-size:1.125rem}
.btn--sm{padding:9px 16px;font-size:var(--fs-small)}
.btn--secondary{background:transparent;color:var(--coral-600);border:1px solid var(--coral-600)}
.btn--secondary:hover{background:var(--coral-100);color:var(--coral-700)}
.btn[disabled]{opacity:.4;cursor:default;pointer-events:none}

.text-link{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--coral-600);text-decoration:none;border-bottom:1px solid var(--coral-100);padding-bottom:2px;transition:var(--transition-hover);display:inline-flex;gap:var(--space-2);align-items:baseline}
.text-link:hover{color:var(--coral-700);border-bottom-color:currentColor}
.text-link--muted{color:var(--ink-600)}
.text-link--muted:hover{color:var(--coral-700)}
.text-link--noarrow{gap:0}

/* ---- section heading ---- */
.section-heading{max-width:var(--measure-text)}
.section-heading__kicker{font-family:var(--font-sans);font-size:var(--fs-kicker);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-accent);font-weight:var(--weight-medium);margin-bottom:var(--space-4)}
.section-heading h1,.section-heading h2{max-width:24ch}
.section-heading h1{font-size:var(--fs-display)}
.section-heading h2{font-size:var(--fs-h2)}
.section-heading__lead{margin-top:var(--space-4);font-size:var(--fs-lead);line-height:var(--leading-lead);color:var(--text-muted);max-width:52ch}
.section-heading__rule{border:0;border-top:var(--rule-accent-thin);width:56px;margin:var(--space-5) 0 0}
.section-heading--center{text-align:center}
.section-heading--center .section-heading__rule{margin:var(--space-5) auto 0}

/* ---- pull quote ---- */
.pull-quote{margin:0;padding-left:var(--space-6);border-left:var(--quote-rule)}
.pull-quote blockquote{margin:0;font-family:var(--font-serif);font-style:italic;font-weight:var(--weight-regular);font-size:var(--fs-lead);line-height:1.5;color:var(--ink-900);letter-spacing:0}
.pull-quote figcaption{margin-top:var(--space-3);font-family:var(--font-sans);font-size:var(--fs-small);color:var(--text-muted)}

/* ---- next step box ---- */
.next-step{border-top:var(--rule-accent);border-bottom:var(--hairline);padding:var(--space-6) 0;display:grid;gap:var(--space-5)}
.next-step h3{font-size:var(--fs-h3)}
.next-step__body{font-size:var(--fs-body);color:var(--ink-900);max-width:58ch}
.next-step__actions{display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center}

/* ---- offer card ---- */
.offer-card{display:grid;gap:var(--space-4);align-content:start;padding-top:var(--space-5);border-top:var(--hairline)}
.offer-card__label{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-accent);font-weight:var(--weight-medium)}
.offer-card h3{font-size:var(--fs-h3)}
.offer-card p{font-size:var(--fs-body);color:var(--ink-900);line-height:var(--leading-body)}
.offer-card__bullets{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-3)}
.offer-card__bullets li{display:grid;grid-template-columns:1rem minmax(0,1fr);gap:var(--space-3);font-size:var(--fs-small);color:var(--text-muted);line-height:var(--leading-body)}
.offer-card__bullets li span.dash{color:var(--coral-600)}

/* ---- document card ---- */
.doc-card{display:grid;gap:var(--space-3);padding:var(--space-5) 0;border-top:var(--hairline);text-decoration:none;color:inherit;transition:var(--transition-hover)}
.doc-card:hover{border-top:var(--rule-accent)}
.doc-card__meta{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-muted)}
.doc-card__title{font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:var(--weight-semibold);color:var(--ink-900);line-height:var(--leading-heading)}
.doc-card:hover .doc-card__title{color:var(--coral-700)}
.doc-card__desc{font-size:var(--fs-small);color:var(--text-muted);line-height:var(--leading-body);max-width:46ch}
.doc-card__action{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--coral-600);display:inline-flex;gap:var(--space-2)}

/* ---- portrait ---- */
.portrait{margin:0}
.portrait img{width:100%;height:auto;border-radius:var(--radius-photo);filter:saturate(.92)}
.portrait figcaption{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--hairline);font-family:var(--font-sans);font-size:var(--fs-small);color:var(--text-muted);line-height:var(--leading-body)}

/* ---- four field grid ---- */
.ffg{display:grid;grid-template-columns:minmax(0,10rem) minmax(0,1fr) minmax(0,1fr)}
.ffg__head{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-medium);padding:0 0 var(--space-3) var(--space-5)}
.ffg__row-label{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-medium);padding:var(--space-5) var(--space-5) var(--space-5) 0;border-top:var(--hairline);display:flex;align-items:flex-start}
.ffg__cell{text-align:left;font:inherit;background:transparent;border:0;border-top:var(--hairline);border-left:var(--hairline);padding:var(--space-5);cursor:pointer;transition:var(--transition-hover);display:grid;gap:var(--space-2);width:100%}
.ffg__cell.is-active{border-top:var(--rule-accent)}
.ffg__cell-label{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--ink-400);font-weight:var(--weight-medium)}
.ffg__cell.is-active .ffg__cell-label{color:var(--coral-600)}
.ffg__cell-title{font-family:var(--font-serif);font-size:1.125rem;line-height:1.3;color:var(--ink-900);font-weight:var(--weight-semibold)}
.ffg__cell-note{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--text-muted);line-height:1.5}
@media (max-width:640px){.ffg{grid-template-columns:1fr}.ffg__row-label{display:none}.ffg__head{display:none}}

/* ---- question list ---- */
.question-list{list-style:none;margin:0;padding:0;display:grid}
.question-list li{border-bottom:var(--hairline)}
.question-list li:first-child{border-top:var(--hairline)}
.question-list__row{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--space-4);padding:var(--space-4) 0;align-items:start}
.question-list--interactive .question-list__row{cursor:pointer}
.question-list__mark{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--ink-400);font-weight:var(--weight-medium);line-height:var(--leading-body)}
.question-list__row.is-yes .question-list__mark{color:var(--coral-600)}
.question-list__text{font-size:var(--fs-body);line-height:var(--leading-body);color:var(--ink-900)}

/* ---- radio choice (team questions) ---- */
.choice fieldset{border:0;margin:0;padding:0;display:grid;gap:var(--space-4)}
.choice legend{padding:0;margin-bottom:var(--space-4);font-size:var(--fs-body);line-height:var(--leading-body);color:var(--ink-900);font-weight:var(--weight-medium)}
.choice label{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--space-4);padding:var(--space-4) 0;border-bottom:var(--hairline);cursor:pointer;align-items:start}
.choice label:first-of-type{border-top:var(--hairline)}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice .mark{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--ink-400);font-weight:var(--weight-medium);line-height:var(--leading-body)}
.choice label.is-on .mark{color:var(--coral-600)}
.choice .opt{font-size:var(--fs-body);line-height:var(--leading-body);color:var(--ink-900)}
.choice label.is-on .opt{color:var(--coral-700)}

/* ---- diagnose step ---- */
.diag-step{display:none}
.diag-step.is-active{display:block}
.diag-nav{display:flex;gap:var(--space-6);align-items:center;flex-wrap:wrap;margin-top:var(--space-7)}
.diag-stepcount{font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-muted)}
.diag-kicker{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-accent);font-weight:var(--weight-medium)}

/* ---- brevo forms (minimal replacement of sib-styles.css) ---- */
.sib-form-message-panel{display:none}
.sib-form-message-panel--active{display:block}
.input--hidden{display:none!important}
.sib-hide-loader-icon{display:none}
.entry__error:empty{display:none}
.sib-form .entry__error{display:block;margin-top:6px;font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--coral-700)}
.sib-form-block__button:hover{background:var(--coral-100)!important}
.sib-form input.input:focus{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:var(--coral-600)}
.sib-form{text-align:left}
.sib-container{max-width:540px;padding-top:var(--space-5);border-top:var(--hairline)}
.sib-form form{display:grid;gap:var(--space-4)}
.sib-form .sib-title{font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:var(--weight-semibold);color:var(--ink-900)}
.sib-form .sib-intro{font-size:var(--fs-small)}
.sib-form .entry__field input.input{width:100%;font-family:var(--font-sans);font-size:var(--fs-body);padding:12px 14px;border:1px solid var(--rule-300);border-radius:var(--radius-sm);background:var(--paper-000);color:var(--ink-900)}
.sib-form .entry__specification{font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-muted);line-height:1.6;display:block;margin-top:6px}
.sib-form .entry__label{font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-muted);line-height:1.6;display:block;margin-bottom:var(--space-2)}
.sib-form .sib-hint{font-size:var(--fs-caption);line-height:1.6;color:var(--ink-900)}
.sib-form-block__button{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--weight-medium);color:var(--coral-600);background:transparent;border:1px solid var(--coral-600);border-radius:var(--radius-sm);padding:13px 24px;cursor:pointer;display:inline-flex;gap:var(--space-2);align-items:center;transition:var(--transition-hover)}
.sib-form-message-panel.sib-ok{color:var(--ink-900);font-family:var(--font-sans);font-size:var(--fs-small);padding:var(--space-3) 0;border-top:var(--rule-accent);margin-bottom:var(--space-4)}
.sib-form-message-panel.sib-err{color:var(--coral-700);font-family:var(--font-sans);font-size:var(--fs-small);padding:var(--space-3) 0;border-top:var(--rule-accent);margin-bottom:var(--space-4)}
.g-recaptcha{direction:ltr}

/* ---- blog ---- */
.blog-list{display:grid;gap:var(--space-7)}
.blog-list article{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:var(--space-7);padding-top:var(--space-5);border-top:var(--hairline)}
@media (max-width:1000px){.blog-list article{grid-template-columns:1fr}}

/* ---- dash list (generic bulleted list used in prose sections) ---- */
.dash-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-4)}
.dash-list--sm{gap:var(--space-3);font-size:var(--fs-small)}
.dash-list li{display:grid;grid-template-columns:1rem minmax(0,1fr);gap:var(--space-4);line-height:var(--leading-body)}
.dash-list li span.dash{color:var(--coral-600)}

/* ---- misc ---- */
.caption-text{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--text-caption)}
.muted{color:var(--text-muted)}
.small{font-size:var(--fs-small)}
.caption-size{font-size:var(--fs-caption)}
.kicker-label{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-accent);font-weight:var(--weight-medium)}
