/* kit.css — design tokens + all component styles of the kit.
   Theming model: the panel (kit-panel.js) only changes the CSS variables below
   or toggles html.* modifier classes (e.g. html.card-side, html.dens-compact).
   Components read tokens exclusively — so every combination stays consistent. */

:root{
  /* Fonts: families are set by kit-theme.js (Fontshare); --fs is the global size factor */
  --font-head:"Switzer", system-ui, -apple-system, sans-serif;
  --font-body:"Switzer", system-ui, -apple-system, sans-serif;
  --fs:1;
  --text-base:calc(18px*var(--fs)); --text-h1:calc(50px*var(--fs)); --lh-h1:1.12; --text-card-title:calc(22px*var(--fs)); --text-nav:16px;
  --lh-body:1.55; --track-head:-.01em; --case-head:none; --align-head:left; --card-ar:4/3;
  --weight-heading:700; --weight-body:400;
  /* Colors: the creator picks brand/accent; ink* /line/hairline follow light/dark */
  --color-ink:#291E38; --color-ink-soft:#6B6577; --color-brand:#137EC0; --color-accent:#FF7264;
  --color-line:#9A95A6; --color-hairline:#ECEAEF; --color-bg:#FFFFFF; --btn-fg:#FFFFFF;
  /* Lines: --rule = general dividers, --rule-sec = section divider (Figma) */
  --rule:#C2C2C2; --rule-sec:#000000;
  --radius-btn:1px; --radius-card:0; --container:1024px;
}
*,*::before,*::after{box-sizing:border-box;}
/* Skip link: invisible until keyboard focus */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--color-brand);color:#fff;padding:10px 16px;font-size:14px;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);
     font-size:var(--text-base);font-weight:var(--weight-body);line-height:var(--lh-body);}
a{color:inherit;text-decoration:none;} img{display:block;max-width:100%;}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.btn{display:inline-block;font:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;
     text-transform:uppercase;padding:11px 20px;border:1px solid transparent;cursor:pointer;border-radius:var(--radius-btn);}
.btn--primary{background:var(--color-brand);color:var(--btn-fg);}
.btn--outline{background:#fff;color:var(--color-ink);border-color:#d7d4dd;}
.nav-action{font:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink);cursor:pointer;background:none;border:0;transition:color .15s;}
.nav-action:hover{color:var(--color-brand);}

/* ------------------------------------------------------------------ Header */
.site-header{border-bottom:0;background:#fff;}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:74px;}
/* The brand may shrink (min-width:0) so the login button never overlaps on
   narrow windows — instead of overlapping, the wordmark truncates or is hidden
   on mobile; the login block stays fixed (header-actions: flex:none). */
.brand{display:flex;align-items:center;gap:11px;min-width:0;}
/* Brand icon: public/assets/logo.png (reference asset = blueprint B). Own publication:
   replace the file. A globally uploaded logo (KV) additionally replaces the wordmark in the header. */
.brand__logo{width:34px;height:34px;border-radius:2px;background:url(/assets/logo.png) center/cover no-repeat;flex:none;}
/* globally uploaded logo (KV): scales proportionally within 240×32 */
.brand__logo-img{max-height:32px;max-width:240px;width:auto;height:auto;display:block;flex:0 1 auto;min-width:0;object-fit:contain;}
.brand__name{font-weight:700;font-size:15px;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.header-actions{display:flex;align-items:center;gap:12px;flex:none;}
.tabs{border-bottom:1px solid var(--color-hairline);background:#fff;}
.tabs__bar{display:flex;align-items:center;gap:30px;}
.tabs__inner{display:flex;gap:30px;}
.tab{display:inline-block;padding:16px 2px;font-size:var(--text-nav);color:var(--color-ink-soft);
     border-bottom:2px solid transparent;margin-bottom:-1px;}
.tab--active{color:var(--color-ink);border-bottom-color:var(--color-accent);font-weight:500;}
.site-header--center .site-header__inner{justify-content:center;position:relative;}
.site-header--center .header-actions{position:absolute;right:0;top:50%;transform:translateY(-50%);}
.tabs--center .tabs__bar{justify-content:center;}
.tabs__search{display:inline-flex;align-items:center;align-self:center;color:var(--color-ink-soft);cursor:pointer;}
.tabs__search svg{width:16px;height:16px;}
.header-actions steady-login-button{display:inline-flex;align-items:center;}
.login-link--fb{display:none;} .login-link--fb.is-on{display:inline-block;}
.login-link{font:inherit;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--color-ink);cursor:pointer;text-decoration:none;}
.login-link:hover{color:var(--color-brand);}
.site-header--center .login-link{font-size:12px;text-transform:uppercase;letter-spacing:.06em;}
/* Figma nav: rounded pill frame instead of lines, sticky, horizontal overflow, round search */
html.nav-figma .tabs{border-bottom:0;background:transparent;padding:14px 0;position:sticky;top:0;z-index:40;}
html.nav-figma .tabs__bar{justify-content:center;gap:12px;}
html.nav-figma .tabs__inner{min-width:0;flex:0 1 auto;display:inline-flex;width:auto;border:1px solid #2A2A2A;border-radius:12px;padding:12px 40px;gap:26px;align-items:center;background:#fff;overflow-x:auto;scrollbar-width:none;}
html.nav-figma .tabs__inner::-webkit-scrollbar{display:none;}
html.nav-figma .tab{text-transform:uppercase;font-weight:700;letter-spacing:.5px;font-size:14px;color:var(--color-ink);border-bottom:0;margin-bottom:0;padding:2px 0;white-space:nowrap;flex:none;}
html.nav-figma .tab--active{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;}
html.nav-figma .tabs__search{flex:none;align-self:stretch;width:52px;border:1px solid #2A2A2A;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--color-ink);}
html.nav-figma .tabs__search svg{width:17px;height:17px;}

/* ------------------------------------------------------------------ Hero (small lead story) */
.hero{padding:56px 0 44px;}
.hero__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:center;}
.hero__title{font-size:var(--text-h1);line-height:var(--lh-h1);font-weight:var(--weight-heading);margin:0 0 18px;letter-spacing:var(--track-head);text-transform:var(--case-head);}
.hero__title a{transition:color .15s;} .hero__title a:hover{color:var(--color-brand);}
.hero__excerpt{font-size:19px;line-height:1.55;color:var(--color-ink-soft);margin:0 0 20px;max-width:46ch;}
.hero__date{font-size:14px;color:var(--color-ink-soft);}
.hero__medialink{display:block;}
.hero__media{width:100%;aspect-ratio:var(--card-ar);background:var(--color-line);border-radius:var(--radius-card);object-fit:cover;}

/* ------------------------------------------------------------------ Pills (Chip, Figma Badge 74:693) */
.pills{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;padding:8px 0 40px;}
.pill{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;color:var(--color-brand);
      border:1px solid var(--color-brand);border-radius:100px;padding:3px 10px;background:transparent;line-height:1.25;white-space:nowrap;transition:background-color .15s,color .15s;}
.pill:hover{background:var(--color-brand);color:var(--btn-fg,#fff);}

/* ------------------------------------------------------------------ Teaser grid */
.grid{display:grid;grid-template-columns:repeat(var(--grid-cols,3),1fr);gap:36px 30px;padding-bottom:48px;}
.card__media{width:100%;aspect-ratio:var(--card-ar);background:var(--color-line);border-radius:var(--radius-card);object-fit:cover;}
.card__title{font-size:var(--text-card-title);font-weight:var(--weight-heading);line-height:1.27;margin:12px 0 0;letter-spacing:var(--track-head);text-transform:var(--case-head);transition:color .15s;}
.card:hover .card__title{color:var(--color-brand);}
.card__excerpt{font-size:16px;color:var(--color-ink-soft);line-height:1.25;margin:8px 0 0;}
.card__date{font-size:14px;color:var(--color-ink-soft);margin-top:12px;}

/* ------------------------------------------------------------------ Single post */
.post{max-width:984px;margin:0 auto;padding:46px 24px 24px;}
.post__col{max-width:600px;margin-left:auto;margin-right:auto;}
.post__back{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-soft);margin-bottom:30px;}
.post__back svg{width:13px;height:13px;}
.post__eyebrow{margin:0 0 18px;}
.post__title{font-size:calc(48px*var(--fs));line-height:1.06;font-weight:var(--weight-heading);letter-spacing:var(--track-head);text-transform:var(--case-head);color:var(--color-ink);margin:0;}
.post__lede{font-family:var(--font-body);font-size:calc(22px*var(--fs));line-height:1.45;color:var(--color-ink);margin:30px 0 0;}
.post__meta{font-family:var(--font-head);font-size:15px;line-height:20px;color:var(--color-ink-soft);margin:30px 0 0;}
.post__hero{margin:40px 0 0;}
.post__hero img{width:100%;aspect-ratio:var(--card-ar);object-fit:cover;border-radius:var(--radius-card);background:var(--color-line);}
.post__cap{font-family:var(--font-head);font-size:15px;line-height:20px;color:#6a6a6a;margin:8px 0 0;}
.post__cap .credit{color:#bfbfbf;}
.post__bodywrap{margin:40px auto 0;}
.post__foot{margin:40px auto 0;padding-top:22px;border-top:1px solid var(--rule);}
/* real reactions: clap (KV counter) + share (Web Share API) */
.post__react{display:flex;align-items:center;gap:14px;}
.post__clap,.post__share{display:inline-flex;align-items:center;gap:8px;font:inherit;font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--color-ink-soft);background:none;border:1px solid var(--color-hairline);border-radius:100px;padding:8px 16px;cursor:pointer;transition:color .15s,border-color .15s,transform .1s;}
.post__clap:hover,.post__share:hover{color:var(--color-brand);border-color:var(--color-brand);}
.post__clap:active{transform:scale(1.07);}
.post__clap svg,.post__share svg{width:18px;height:18px;}
/* steady-app engagement block (read-only comments + reactions) */
.post__engage{display:flex;flex-direction:column;gap:14px;width:100%;}
.engage__meta{font-family:var(--font-head);font-weight:600;color:var(--color-ink-soft);font-size:14px;}
.engage__c{padding:12px 0;border-top:1px solid var(--color-hairline);}
.engage__c--reply{margin-left:28px;border-top:none;padding-top:6px;}
.engage__c-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.engage__avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;}
.engage__name{font-weight:600;font-size:14px;}
.engage__badge{font-size:12px;color:var(--color-brand);border:1px solid var(--color-brand);border-radius:100px;padding:1px 8px;}
.engage__text{margin:0;color:var(--color-ink);font-size:15px;white-space:pre-wrap;}
.engage__cta{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:600;font-size:14px;color:#fff;background:var(--color-brand);border-radius:100px;padding:9px 18px;text-decoration:none;}
.engage__cta:hover{filter:brightness(.92);}
/* Share sits in its own right-aligned bar above the thread (not centered beside it) */
.post__engage-bar{display:flex;justify-content:flex-end;margin-bottom:18px;}
/* Teaser comment-count indicator — secondary, appended to the card date line */
.card__engage{color:var(--color-ink-soft);}
.card__engage::before{content:"·";margin:0 7px;opacity:.55;}
/* Reaction strip — emoji + count chips, like the Steady App */
.engage__reactions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.engage__rx{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--color-ink-soft);border:1px solid var(--color-hairline);border-radius:100px;padding:3px 11px;}
/* neighbor navigation below the post */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:34px auto 0;padding-top:22px;border-top:1px solid var(--rule);}
.post-nav__a{display:block;min-width:0;}
.post-nav__a--prev{text-align:right;}
.post-nav__a em{display:block;font-style:normal;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-soft);margin-bottom:6px;}
.post-nav__a span{font-family:var(--font-head);font-size:15px;font-weight:600;line-height:1.35;color:var(--color-ink);transition:color .15s;}
.post-nav__a:hover span{color:var(--color-brand);}
.post__body{font-family:var(--font-body);font-size:calc(22px*var(--fs));line-height:var(--lh-body);color:var(--color-ink);}
.post__body p{margin:0 0 26px;} .post__body p.lede{font-weight:600;}
/* full-text content (content:encoded from the Steady feed) */
.post__body--full img{display:block;width:100%;height:auto;border-radius:var(--radius-card);margin:24px 0;}
.post__body--full figure{margin:24px 0;} .post__body--full figcaption{font-size:calc(15px*var(--fs));color:var(--color-ink-soft);margin-top:8px;text-align:center;}
.post__body--full h2{font-family:var(--font-head);font-weight:var(--weight-heading);font-size:calc(30px*var(--fs));line-height:1.18;letter-spacing:-.01em;margin:38px 0 14px;}
.post__body--full h3{font-family:var(--font-head);font-weight:var(--weight-heading);font-size:calc(23px*var(--fs));line-height:1.2;margin:30px 0 12px;}
.post__body--full h4{font-family:var(--font-head);font-weight:600;font-size:calc(19px*var(--fs));margin:26px 0 10px;}
.post__body--full a{color:var(--color-brand);text-decoration:underline;text-underline-offset:2px;}
.post__body--full ul,.post__body--full ol{margin:0 0 26px;padding-left:26px;} .post__body--full li{margin:0 0 10px;}
.post__body--full blockquote{margin:28px 0;padding:6px 0 6px 22px;border-left:3px solid var(--color-ink);font-style:italic;color:var(--color-ink-soft);}
.post__body--full hr{border:0;border-top:1px solid var(--rule);margin:34px 0;}
.post__body--full iframe,.post__body--full video{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--radius-card);margin:24px 0;}
.post__body--full strong,.post__body--full b{font-weight:700;}
.post__readon{margin:14px 0 8px;}

/* ------------------------------------------------------------------ Suche (eigenes Modal) */
.kit-search{width:min(560px,92vw);border:1px solid var(--color-hairline);border-radius:14px;padding:0;background:var(--color-bg);color:var(--color-ink);box-shadow:0 24px 70px rgba(0,0,0,.28);}
.kit-search::backdrop{background:rgba(20,16,28,.45);}
.kit-search__box{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--color-hairline);}
.kit-search__in{flex:1;font:inherit;font-size:16px;color:var(--color-ink);background:transparent;border:0;outline:none;padding:6px 8px;}
.kit-search__x{flex:none;width:32px;height:32px;font-size:18px;line-height:1;color:var(--color-ink-soft);background:none;border:1px solid var(--color-hairline);border-radius:8px;cursor:pointer;}
.kit-search__res{max-height:min(420px,60vh);overflow-y:auto;padding:6px;}
.kit-search__a{display:block;padding:10px 12px;border-radius:9px;}
.kit-search__a.is-active,.kit-search__a:hover{background:var(--color-hairline);}
.kit-search__t{display:block;font-family:var(--font-head);font-size:15px;font-weight:600;color:var(--color-ink);}
.kit-search__d{display:block;font-size:13px;color:var(--color-ink-soft);margin-top:2px;line-height:1.4;}
.kit-search__m{display:block;font-size:11px;color:var(--color-ink-soft);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;}
.kit-search__empty{padding:18px 14px;font-size:14px;color:var(--color-ink-soft);}

/* ------------------------------------------------------------------ "load more" */
.loadmore-wrap{display:flex;justify-content:center;padding:8px 0 56px;}
.load-more{font:inherit;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-brand);background:none;border:0;padding:8px 4px;cursor:pointer;transition:opacity .15s;}
.load-more:hover{text-decoration:underline;text-underline-offset:4px;}
.load-more:disabled{opacity:.5;cursor:default;text-decoration:none;}

/* Headlines/display use --font-head; chrome (nav, pills, labels) uses the body font --font-body */
.brand__name,.hero__title,.card__title,.load-more,.btn,.nav-action,.post__title,.post__back{font-family:var(--font-head);}
.tab{font-family:var(--font-body);}

/* ------------------------------------------------------------------ Layout modifiers (panel) */
html.dens-compact{--text-base:calc(16px*var(--fs));--text-h1:calc(42px*var(--fs));}
html.dens-compact .hero{padding:36px 0 30px;} html.dens-compact .grid{gap:24px 22px;} html.dens-compact .container{padding:0 20px;}
html.hero-center .hero__grid{grid-template-columns:1fr;text-align:center;justify-items:center;}
html.hero-center .hero__excerpt{margin-left:auto;margin-right:auto;} html.hero-center .hero__medialink{display:none;}
.hero__body{text-align:var(--align-head);}
html.hero-center .hero__body{text-align:center;}
html.hero-center .aufmacher:not(.aufmacher--side){text-align:center;}
html.hero-center .aufmacher:not(.aufmacher--side) .aufmacher__body{max-width:760px;margin:0 auto;}
html.hero-center .aufmacher:not(.aufmacher--side) .aufmacher__excerpt{margin-left:auto;margin-right:auto;}
html.hero-center .aufmacher:not(.aufmacher--side) .aufmacher__meta{justify-content:center;}
html.dens-roomy{--lh-body:1.7;}
html.dens-roomy .hero{padding:76px 0 58px;} html.dens-roomy .grid{gap:48px 40px;} html.dens-roomy .container{padding:0 30px;}

/* ------------------------------------------------------------------ Teaser/card styles (panel) */
.card__body{display:block;}
html.card-side .card{display:grid;grid-template-columns:112px 1fr;gap:15px;align-items:start;}
html.card-side .card__media{aspect-ratio:1/1;} html.card-side .card__title{margin-top:0;}
html.card-text .card__media{display:none;}
html.card-overlay .card{position:relative;border-radius:var(--radius-card);overflow:hidden;}
html.card-overlay .card__media{aspect-ratio:3/4;}
html.card-overlay .card__body{position:absolute;left:0;right:0;bottom:0;padding:16px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.55) 45%,rgba(0,0,0,.85));}
html.card-overlay .card__title,html.card-overlay .card__excerpt,html.card-overlay .card__date{color:#fff;} html.card-overlay .card__title{margin-top:0;}
html.card-list .grid{grid-template-columns:1fr;gap:0;}
html.card-list .card{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--rule);padding:18px 0;}
html.card-list .card__media{display:none;}
html.surf-soft .card{background:var(--color-bg);border-radius:12px;box-shadow:0 6px 22px rgba(41,30,56,.10);overflow:hidden;}
html.surf-outline .card{border:1px solid var(--color-hairline);border-radius:10px;overflow:hidden;}
html.surf-soft .card__body,html.surf-outline .card__body{padding:2px 15px 16px;}
/* surf-soft: shadows need room — the row-collapse grids (overflow:hidden) would
   otherwise clip them hard; padding makes space, negative margin neutralizes the layout */
html.surf-soft .rubrik__grid,html.surf-soft .rubrik__compact{padding:12px 12px 30px;margin:-12px -12px -30px;}
html.surf-soft.card-overlay .card__body,html.surf-outline.card-overlay .card__body{padding:16px;}
/* Image look applies to ALL content images (cards, heros, lead stories, feature, lists, rails) —
   only the brand logo stays unfiltered */
html.img-gray .card__media,html.img-gray .hero__media,html.img-gray .post__hero img,html.img-gray .aufmacher__media,html.img-gray .feat-main__media,html.img-gray .teaser-row__media,html.img-gray .rail-num__media{filter:grayscale(1);transition:filter .35s;}
html.img-gray .card:hover .card__media{filter:none;}
html.img-duo .card__media,html.img-duo .hero__media,html.img-duo .post__hero img,html.img-duo .aufmacher__media,html.img-duo .feat-main__media,html.img-duo .teaser-row__media,html.img-duo .rail-num__media{filter:grayscale(1) contrast(1.05) sepia(.5) hue-rotate(165deg) saturate(2.4) brightness(.96);}

/* ------------------------------------------------------------------ Lead story (large opener) */
.aufmacher{max-width:none;}
.aufmacher--side{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;}
@media (max-width:760px){.aufmacher--side{grid-template-columns:1fr;}}
.aufmacher__title{font-family:var(--font-head);font-size:calc(40px*var(--fs));line-height:1.12;font-weight:var(--weight-heading);letter-spacing:var(--track-head);text-transform:var(--case-head);margin:0 0 14px;}
.aufmacher__title a{transition:color .15s;} .aufmacher__title a:hover{color:var(--color-brand);}
.aufmacher__excerpt{font-size:19px;line-height:1.55;color:var(--color-ink-soft);margin:0 0 14px;max-width:60ch;}
.aufmacher__meta{display:flex;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--color-ink-soft);margin:0 0 22px;}
.aufmacher__meta>span+span{margin-left:28px;position:relative;}
.aufmacher__meta>span+span::before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:1px;height:11px;background:var(--color-line);}
.aufmacher__media{width:100%;aspect-ratio:var(--card-ar);object-fit:cover;background:var(--color-line);border-radius:var(--radius-card);}
.aufmacher-band{padding:44px 0 44px;}
.section-body{border-top:1px solid var(--rule);padding-top:50px;}

/* ------------------------------------------------------------------ Portal shell (3 columns) */
/* Bottom 44px = same visual gap as between the section blocks
   (30px section padding below + 14px above up to the divider) */
.portal-band{padding:40px 0 44px;}
.portal-grid{max-width:var(--container);margin:0 auto;padding:0 24px;display:grid;gap:28px;align-items:start;}
.portal-center{padding:0 28px;border-left:1px solid var(--rule);border-right:1px solid var(--rule);}
.portal-center .aufmacher{max-width:none;margin:0;}
.portal-center .grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));padding-bottom:0;}
.rail{display:flex;flex-direction:column;gap:30px;min-width:0;}
.rail-module__title{font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink);margin:0 0 14px;padding-top:10px;border-top:1px solid var(--rule-sec);}
.rail-list,.rail-num{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.rail-list a{display:block;}
.rail-list__t{display:block;font-family:var(--font-head);font-size:15px;font-weight:600;line-height:1.3;color:var(--color-ink);}
.rail-list a:hover .rail-list__t{color:var(--color-brand);}
.rail-list__d{display:block;font-size:12px;color:var(--color-ink-soft);margin-top:3px;}
.rail-num li{margin:0;}
.rail-num a{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.rail-num__n{flex:none;width:32px;height:32px;border:1px solid var(--color-ink);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--color-ink);line-height:1;}
.rail-num__t{font-size:14px;font-weight:600;line-height:1.3;color:var(--color-ink);}
.rail-num a:hover .rail-num__t{color:var(--color-brand);}
.rail-num__lead a{display:block;}
.rail-num__lead .rail-num__n{margin-bottom:10px;}
.rail-num__media{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-card);background:var(--color-line);margin:0 0 8px;}
.rail-num__lead .rail-num__t{display:block;font-size:15px;}
.rail-pills{display:flex;flex-wrap:wrap;gap:8px;}

/* ------------------------------------------------------------------ Section blocks */
.rubrik{padding:14px 0 30px;}
.rubrik--lead{border-top:1px solid var(--rule);padding-top:30px;}
.rubrik__head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--rule-sec);padding-top:16px;margin-bottom:22px;}
/* Figma "section header" chip: rounded pill, frame + subtle shadow (74:429) */
.rubrik__chip{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink);background:var(--color-bg);border:1px solid var(--rule);border-radius:20px;padding:11px 15px 9px;box-shadow:0 0 2.5px rgba(145,143,148,.3);}
.rubrik__more{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-brand);}
.rubrik__chip{transition:color .15s,border-color .15s;} .rubrik__chip:hover{color:var(--color-brand);border-color:var(--color-brand);}
.rubrik__more:hover{text-decoration:underline;}
.section-head{margin:0 0 32px;}
.section-head .post__back{margin-bottom:16px;}
.section-title{font-family:var(--font-head);font-size:calc(44px*var(--fs));line-height:1.06;font-weight:var(--weight-heading);letter-spacing:var(--track-head);text-transform:var(--case-head);color:var(--color-ink);margin:0;}
.section-count{font-size:15px;color:var(--color-ink-soft);margin:12px 0 0;}
/* show exactly one teaser row (surplus grid rows collapse) */
.rubrik__grid{padding-bottom:0;grid-template-rows:max-content;grid-auto-rows:0;row-gap:0;overflow:hidden;}
/* Feature section: 1 large + list */
.rubrik__feature{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;align-items:start;}
.feat-main__media{width:100%;aspect-ratio:var(--card-ar);object-fit:cover;background:var(--color-line);border-radius:var(--radius-card);}
.feat-main__title{font-family:var(--font-head);font-size:calc(26px*var(--fs));font-weight:var(--weight-heading);line-height:1.2;margin:14px 0 0;letter-spacing:var(--track-head);text-transform:var(--case-head);transition:color .15s;}
.feat-main:hover .feat-main__title{color:var(--color-brand);}
.feat-main__excerpt{font-size:15px;color:var(--color-ink-soft);line-height:1.5;margin:8px 0 0;max-width:52ch;}
.feat-list{display:flex;flex-direction:column;gap:18px;}
.teaser-row{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:start;}
.teaser-row__media{width:84px;height:84px;object-fit:cover;background:var(--color-line);border-radius:var(--radius-card);}
.teaser-row__title{font-family:var(--font-head);font-size:15px;font-weight:600;line-height:1.3;margin:0;text-transform:var(--case-head);transition:color .15s;}
.teaser-row:hover .teaser-row__title{color:var(--color-brand);}
/* Compact section: text teasers in columns */
.rubrik__compact{display:grid;grid-template-columns:repeat(var(--grid-cols,3),1fr);gap:0 30px;grid-template-rows:max-content;grid-auto-rows:0;overflow:hidden;}
.teaser-text{display:block;}
.teaser-text__title{font-family:var(--font-head);font-size:15px;font-weight:600;line-height:1.3;margin:0 0 4px;text-transform:var(--case-head);transition:color .15s;}
.teaser-text__excerpt{font-size:14px;color:var(--color-ink-soft);line-height:1.45;margin:0 0 6px;}
.teaser-text:hover .teaser-text__title{color:var(--color-brand);}
@media (max-width:760px){.rubrik__feature{grid-template-columns:1fr;}}
@media (max-width:1100px){
  .portal-grid{grid-template-columns:1fr!important;gap:32px;}
  .portal-center{order:-1;border:0;padding:0;}
  .rail{flex-direction:row;flex-wrap:wrap;gap:32px;}
  .rail .rail-module{flex:1 1 240px;}
}

/* ------------------------------------------------------------------ Footer */
/* Bottom padding clears the fixed Steady bottom layer (checkout/newsletter)
   so logo + links stay visible despite the overlay; + iOS safe area. */
.site-footer{border-top:1px solid var(--rule);margin-top:44px;padding:44px 0 calc(120px + env(safe-area-inset-bottom,0px));}
.site-footer__inner{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;}
.site-footer .brand{justify-content:center;}
.site-footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;}
.footer-link{font-family:var(--font-body);font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-soft);transition:color .15s;}
.footer-link:hover{color:var(--color-brand);}

/* ------------------------------------------------------------------ Customizer panel
   Styled after the Steady backend design tokens (main_app design_tokens/*):
   navy #291E38 (primary), purple #954FCF (links/focus), hairline #E7E7E7,
   surfaces #F7F7F7, secondary text #757776, error #D75A46. Radius philosophy:
   controls square (radius 0), panel 13px (sideview), pills round. Uppercase
   buttons 12-13px/700/.5px. The font stays Inter (CircularStd is Lineto-
   licensed and must not be shipped). The drawer is Steady chrome and therefore
   deliberately does NOT follow the publisher theme. */
/* FAB: subtle, vertically centered tab on the right edge (doesn't collide with the Steady layer) */
:root{--cz-w:340px;}
@media (min-width:960px){html.cz-on body{padding-right:var(--cz-w);transition:padding-right .25s ease-in-out;}}
.cz-fab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;width:34px;height:48px;border-radius:13px 0 0 13px;border:1px solid #E7E7E7;border-right:0;background:rgba(255,255,255,.92);color:#954FCF;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 25px rgba(41,30,56,.15);backdrop-filter:blur(5px);transition:color .2s,background .2s;}
.cz-fab svg{width:19px;height:19px;}
.cz-fab:hover{color:#7a3da8;background:#fff;}
html.cz-on .cz-fab{display:none;}
.cz{position:fixed;top:0;right:0;z-index:61;width:var(--cz-w);max-width:92vw;height:100vh;background:#fff;border-left:1px solid #E7E7E7;border-radius:13px 0 0 13px;box-shadow:0 4px 16px rgba(0,0,0,.17);transform:translateX(100%);transition:transform .25s ease-in-out;display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;color:#291E38;}
html.cz-on .cz{transform:none;}
.cz-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #E7E7E7;font-size:15px;font-weight:500;}
.cz-head>div{display:flex;align-items:center;gap:8px;}
.cz-reset{font:inherit;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#954FCF;background:none;border:1px solid transparent;border-radius:0;padding:6px 9px;cursor:pointer;transition:background .2s;}
.cz-reset:hover{background:#F7F7F7;}
.cz-x{width:28px;height:28px;border:1px solid #E7E7E7;border-radius:0;background:#fff;color:#757776;cursor:pointer;font-size:16px;line-height:1;transition:color .2s;}
.cz-x:hover{color:#291E38;}
.cz-body{overflow-y:auto;flex:1;padding-bottom:56px;}
/* "Publish for all visitors" at the top as an action bar (Steady sideview__actions:
   surface #F7F7F7 + hairline) — the late Steady bottom layer can't cover it */
.cz-pubbar{flex:none;padding:15px 20px;border-bottom:1px solid #E7E7E7;background:#F7F7F7;}
.cz-pub{width:100%;min-height:36px;font:inherit;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:#291E38;border:1px solid #291E38;border-radius:0;padding:9px 10px;cursor:pointer;transition:background .2s;}
.cz-pub:hover{background:#372C4A;} .cz-pub:disabled{opacity:.6;cursor:default;}
.cz-pubmeta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:#757776;}
.cz-pub-undo{font:inherit;font-size:11px;color:#954FCF;background:none;border:0;cursor:pointer;padding:2px 0;transition:color .2s;}
.cz-pub-undo:hover{text-decoration:underline;} .cz-pub-undo:disabled{opacity:.5;cursor:default;}
.cz-sec{border-bottom:1px solid #E7E7E7;}
.cz-sh{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 20px;font:inherit;font-size:15px;font-weight:500;background:none;border:0;cursor:pointer;color:#291E38;}
.cz-cv{color:#BCB8B8;transition:transform .2s;} .cz-sec:not(.cz-open) .cz-cv{transform:rotate(-90deg);}
.cz-sec:not(.cz-open) .cz-sb{display:none;}
.cz-sb{padding:0 20px 20px;}
.cz-lbl{display:block;font-size:13px;font-weight:500;color:#291E38;margin:14px 0 6px;}
.cz-sel{width:100%;border:1px solid #E7E7E7;border-radius:0;padding:10px 12px;font:inherit;font-size:14px;color:#291E38;background:#fff;cursor:pointer;}
.cz-sel:focus{outline:none;border-color:#291E38;}
.cz-font{position:relative;}
.cz-font-in{width:100%;border:1px solid #E7E7E7;border-radius:0;padding:10px 12px;font:inherit;font-size:14px;color:#291E38;background:#fff;}
.cz-font-in:focus{outline:none;border-color:#291E38;}
.cz-font-in::placeholder,.cz-inp::placeholder,.cz-nav-row input::placeholder{color:#BCB8B8;}
.cz-font-pop{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:6;background:#fff;border:1px solid #E7E7E7;border-radius:0;box-shadow:0 4px 16px rgba(0,0,0,.17);max-height:248px;overflow-y:auto;}
.cz-font-pop.open{display:block;}
.cz-font-opt{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;text-align:left;font:inherit;font-size:13px;color:#291E38;background:none;border:0;border-bottom:1px solid #F7F7F7;padding:9px 12px;cursor:pointer;transition:background .2s;}
.cz-font-opt:hover{background:#F7F7F7;}
.cz-font-opt em{font-style:normal;font-size:10px;color:#757776;text-transform:capitalize;flex:none;white-space:nowrap;}
/* Previews show each font's real weight — never the browser's faux-bold synthesis. */
.cz-font-opt>span,.cz-pair-h,.cz-pair-b{font-synthesis:none;}
.cz-more{margin-top:14px;width:100%;display:flex;align-items:center;justify-content:space-between;font:inherit;font-size:12px;font-weight:500;color:#954FCF;background:none;border:0;cursor:pointer;padding:4px 0;}
.cz-more:hover{text-decoration:underline;}
.cz-more .cz-cv{color:#954FCF;transition:transform .2s;}
.cz-more[aria-expanded="false"] .cz-cv{transform:rotate(-90deg);}
.cz-more-body{display:none;} .cz-more-body.open{display:block;}
/* Fonts: pairings gallery (one tap = heading + body). Each card previews both fonts. */
.cz-pairs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 4px;}
.cz-pair{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid #E7E7E7;border-radius:0;background:#fff;padding:11px 12px;cursor:pointer;overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.cz-pair:hover{border-color:#C9C7C7;}
.cz-pair.on{border-color:#954FCF;box-shadow:inset 0 0 0 1px #954FCF;}
.cz-pair-h{font-size:19px;line-height:1.15;color:#291E38;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cz-pair-b{font-size:13px;line-height:1.2;color:#757776;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cz-pal{display:flex;gap:10px;flex-wrap:wrap;}
.cz-pal button{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #E7E7E7;cursor:pointer;padding:0;}
.cz-pal button.on{box-shadow:0 0 0 2px #954FCF;}
.cz-colors{display:grid;grid-template-columns:1fr;gap:8px;margin-top:6px;}
.cz-color{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;color:#291E38;border:1px solid #E7E7E7;border-radius:0;padding:8px 10px;cursor:pointer;}
.cz-color input{width:30px;height:30px;border:1px solid #E7E7E7;border-radius:0;padding:0;background:none;cursor:pointer;flex:none;}
.cz-color-t{display:flex;flex-direction:column;line-height:1.2;}
.cz-color-t em{font-style:normal;font-weight:400;font-size:10px;color:#757776;margin-top:2px;}
.cz-lbl-x{text-transform:none;letter-spacing:0;font-weight:400;color:#757776;}
/* Segment rows: single line, horizontally scrollable when space is tight (scrollbar hidden,
   like Steady's sidebar nav) — instead of wrapping or squeezing */
.cz-seg{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cz-seg::-webkit-scrollbar{display:none;}
.cz-seg button{flex:1 0 auto;white-space:nowrap;font:inherit;font-size:12px;padding:9px 12px;border:1px solid #E7E7E7;border-radius:0;background:#fff;color:#291E38;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.cz-seg button:hover{background:#F7F7F7;}
.cz-seg button.on{border-color:#291E38;background:#291E38;color:#fff;}
.cz-hint{font-size:12px;color:#757776;margin:2px 0 12px;line-height:1.4;}
.cz-looks{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cz-look{text-align:left;font:inherit;border:1px solid #E7E7E7;border-radius:0;padding:10px 12px;background:#fff;color:#291E38;cursor:pointer;transition:border-color .2s;}
.cz-look:hover{border-color:#954FCF;}
.cz-look.on{border-color:#291E38;box-shadow:inset 0 0 0 1px #291E38;}
.cz-look b{display:block;font-size:13px;font-weight:500;}
.cz-look span{display:block;font-size:10px;color:#757776;margin-top:2px;line-height:1.25;}
.cz-seg--wrap{flex-wrap:nowrap;} .cz-seg--wrap button{flex:1 0 auto;}
.cz-warn{display:none;font-size:12px;color:#D75A46;margin:10px 0 0;line-height:1.4;}
.cz-warn.show{display:block;}
.cz-rails{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;}
.cz-rails::-webkit-scrollbar{display:none;}
.cz-rails button{flex:1 0 auto;white-space:nowrap;font:inherit;font-size:12px;padding:9px 12px;border:1px solid #E7E7E7;border-radius:0;background:#fff;color:#291E38;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.cz-rails button:hover{background:#F7F7F7;}
.cz-rails button.on{border-color:#291E38;background:#291E38;color:#fff;}
.cz-rails--off{opacity:.45;pointer-events:none;}
.cz-inp{width:100%;border:1px solid #E7E7E7;border-radius:0;padding:10px 12px;font:inherit;font-size:14px;color:#291E38;background:#fff;}
.cz-inp:focus{outline:none;border-color:#291E38;}
.cz-nav{display:flex;flex-direction:column;gap:6px;}
.cz-nav-row{display:flex;gap:5px;align-items:center;}
.cz-nav-row input{min-width:0;border:1px solid #E7E7E7;border-radius:0;padding:8px 10px;font:inherit;font-size:12px;color:#291E38;background:#fff;}
.cz-nav-row input:focus{outline:none;border-color:#291E38;}
.cz-nav-l{flex:0 0 32%;} .cz-nav-h{flex:1;}
.cz-nav-grip{flex:0 0 20px;height:30px;border:0;background:none;color:#BCB8B8;cursor:grab;font-size:13px;line-height:1;padding:0;border-radius:0;touch-action:none;}
.cz-nav-grip:hover{color:#291E38;background:#F7F7F7;} .cz-nav-grip:active{cursor:grabbing;}
.cz-nav-row--drag{opacity:.55;}
.cz-nav-x{flex:0 0 26px;height:30px;border:1px solid #E7E7E7;border-radius:0;background:#fff;color:#757776;cursor:pointer;font-size:15px;line-height:1;transition:color .2s;}
.cz-nav-x:hover{color:#291E38;}
.cz-subhead{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#757776;margin:18px 0 2px;padding-top:14px;border-top:1px solid #E7E7E7;}
.cz-subhead:first-child{padding-top:0;border-top:0;margin-top:6px;}
.cz-nav-add{margin-top:8px;font:inherit;font-size:12px;font-weight:500;color:#954FCF;background:none;border:0;cursor:pointer;padding:2px 0;text-align:left;}
.cz-nav-add:hover{text-decoration:underline;}
.cz-apply{margin-top:12px;width:100%;min-height:36px;font:inherit;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:#291E38;border:1px solid #291E38;border-radius:0;padding:9px 10px;cursor:pointer;transition:background .2s;}
.cz-apply:hover{background:#372C4A;}
.cz-logo{display:flex;gap:6px;align-items:center;}
.cz-logo-up{flex:1;text-align:center;font:inherit;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:#291E38;border:1px solid #291E38;border-radius:0;padding:9px;cursor:pointer;transition:background .2s;}
.cz-logo-up:hover{background:#372C4A;}
.cz-logo-rm{font:inherit;font-size:12px;color:#291E38;background:#fff;border:1px solid #E7E7E7;border-radius:0;padding:9px 11px;cursor:pointer;transition:background .2s;}
.cz-logo-rm:hover{background:#F7F7F7;}
/* Focus ring like in the Steady backend (focus.scss): 2px purple, 2px offset — inputs
   show focus via the navy border instead */
.cz button:focus-visible,.cz-fab:focus-visible{outline:2px solid #954FCF;outline-offset:2px;}
/* Steady breakpoint 30rem: below it full width, without panel radius */
@media (max-width:480px){.cz{width:100%;max-width:none;border-radius:0;border-left:0;}}

/* ------------------------------------------------------------------ Responsive */
/* Centered header: on narrow windows back to the left/right layout —
   otherwise the absolutely positioned login button overlaps the centered brand.
   In normal flow the brand shrinks (min-width:0) instead of overlapping. */
@media (max-width:768px){
  .site-header--center .site-header__inner{justify-content:space-between;}
  .site-header--center .header-actions{position:static;transform:none;}}
@media (max-width:900px){.hero__grid{grid-template-columns:1fr;gap:28px;}.grid{grid-template-columns:repeat(2,1fr);}:root{--text-h1:calc(38px*var(--fs));}}
@media (max-width:680px){.post__title{font-size:calc(34px*var(--fs));}.post__body{font-size:calc(20px*var(--fs));}}
@media (max-width:560px){.grid{grid-template-columns:1fr;}.header-actions .btn--outline{display:none;}
  /* Narrow windows: only the icon in the header, wordmark gone — makes room
     for the Steady login button (otherwise overlap). */
  .brand__name{display:none;}
  /* Touch-Targets (≥44px): Pills + Login-Fallback */
  .pill{padding:7px 14px;}
  .login-link{padding:10px 6px;}}
.card__pin{display:none;align-items:center;gap:5px;margin-left:auto;padding:2px 7px;font:inherit;font-size:12px;line-height:1;color:var(--color-ink-soft);background:none;border:1px solid transparent;border-radius:0;cursor:pointer;}
.card__pin svg{width:15px;height:15px;flex:none;}
.card__pin-t{display:none;}
.card__pin:hover{color:var(--color-brand);}
.card__pin.is-pinned{color:var(--color-brand);border-color:currentColor;}
.card__pin.is-pinned .card__pin-t{display:inline;}
html.cz-on .card__date,html.cz-on .hero__date,html.cz-on .aufmacher__meta{display:flex;align-items:center;gap:8px;}
html.cz-on .card__pin{display:inline-flex;}
