/* Theme-only additions (not part of the static draft): language links and the article template. */
.svh-langbar{max-width:1344px;margin:0 auto;padding:10px 24px 0;box-sizing:border-box;display:flex;justify-content:flex-end}
.svh-langbar nav{display:flex;gap:14px;font-size:11px;font-weight:600;letter-spacing:.24em}
.svh-langbar a{text-decoration:none;color:var(--ink);opacity:.55;min-height:24px;display:inline-flex;align-items:center}
.svh-langbar a[aria-current]{opacity:1;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:6px}

/* Article (single-artikel.php): calm reading width, large type, pull quotes */
.article-head{max-width:1344px;margin:0 auto;padding:56px 24px 40px;box-sizing:border-box;display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.article-head .h1{max-width:16em;font-size:clamp(40px,5.6vw,84px);line-height:1.02}
.article-figure{max-width:1344px;margin:0 auto;padding:0 24px;box-sizing:border-box}
.article-figure .a-visual{aspect-ratio:21/9;max-height:520px;max-width:1120px;margin-inline:auto}  /* the source images are ~1250 px wide: never show them bigger than that */
.article-body{max-width:704px;margin:0 auto;padding:64px 24px 120px;box-sizing:border-box;font-family:'Source Serif 4',Georgia,serif;font-size:clamp(19px,1.6vw,21px);line-height:1.7}
.article-body>*{margin:0 0 1.4em}
.article-body h2{margin-top:2.2em;font-family:'Manrope',system-ui,sans-serif;font-size:clamp(26px,2.6vw,34px);line-height:1.15;font-weight:600;letter-spacing:-.02em}
.article-body h3{margin-top:1.8em;font-family:'Manrope',system-ui,sans-serif;font-size:20px;font-weight:600}
.article-body a{color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.article-body blockquote{margin:2.2em -4vw 2.2em;padding:0 0 0 28px;border-left:3px solid var(--accent);font-weight:500;font-size:clamp(26px,3vw,38px);line-height:1.25}
.article-body img{max-width:100%;height:auto}
.article-body figcaption{margin-top:8px;font-family:'Manrope',system-ui,sans-serif;font-size:13px;opacity:.7}
.article-body hr{border:0;height:1px;background:var(--ink);opacity:.4;margin:3em 0}
.article-more{max-width:1344px;margin:0 auto;padding:0 24px 96px;box-sizing:border-box}
@media (max-width:900px){.article-body blockquote{margin-left:0;margin-right:0}}

/* ==========================================================================
   Scroll motion (assets/js/scroll.js). Everything is scoped to html.js-motion, which the script
   only sets when motion is allowed, so no-JS and reduced-motion visitors see the page as designed.
   ========================================================================== */
:root{--svh-ease:cubic-bezier(.2,.7,.2,1)}
html{scroll-padding-top:96px}

/* reveal on scroll */
html.js-motion [data-reveal]{opacity:0;transition:opacity .9s var(--svh-ease),translate .9s var(--svh-ease),clip-path 1s var(--svh-ease)}
html.js-motion [data-reveal="rise"]{translate:0 26px}
html.js-motion [data-reveal="img"]{clip-path:inset(10% 0 0 0)}
html.js-motion [data-reveal].is-in{opacity:1;translate:0 0;clip-path:inset(0 0 0 0)}

/* hero entrance (plays once on load) */
@keyframes svh-rise{from{opacity:0;translate:0 24px}}
@keyframes svh-rise-big{from{opacity:0;translate:0 38%}}
@keyframes svh-grow{0%{opacity:0;scale:.42;translate:0 8%}45%{opacity:1}100%{opacity:1;scale:1;translate:0 0}}
@keyframes svh-bloom{from{opacity:0;scale:.9}}
@keyframes svh-portrait{from{opacity:0;scale:1.03}}
html.js-motion .hero-copy>*{animation:svh-rise .9s var(--svh-ease) both}
html.js-motion .hero-copy>:nth-child(1){animation-delay:.1s}
html.js-motion .hero-copy>:nth-child(2){animation-delay:.2s}
html.js-motion .hero-copy>:nth-child(3){animation-delay:.32s}
html.js-motion .hero-copy>:nth-child(n+4){animation-delay:.44s}
/* READY. SET. GROW.: written letter by letter (scroll.js wraps the letters), one word after the other, with a caret */
@keyframes svh-type{from{opacity:0}to{opacity:1}}
@keyframes svh-caret{0%,99%{border-right-color:currentColor}100%{border-right-color:transparent}}
@keyframes svh-caret-end{0%,49%{border-right-color:currentColor}50%,100%{border-right-color:transparent}}
html.js-motion .signature:not(.is-typed) span{opacity:0}
html.js-motion .signature .ch{display:inline-block;line-height:.8;font-style:normal;opacity:0;border-right:.05em solid transparent;margin-right:-.05em;animation:svh-type 1ms linear var(--d) both,svh-caret var(--s) linear var(--d) both}
html.js-motion .signature span:last-child .ch:last-child{animation:svh-type 1ms linear var(--d) both,svh-caret-end 1s steps(1) var(--d) 4 both}
html.js-motion .hero-art .f-back,html.js-motion .home-art .f-back{animation:svh-bloom 1.8s var(--svh-ease) both}
html.js-motion .hero-art .f-front,html.js-motion .home-art .f-front{animation:svh-bloom 1.8s .35s var(--svh-ease) both}
html.js-motion .hero-art .portrait,html.js-motion .home-art .portrait{animation:svh-portrait 1.2s .1s var(--svh-ease) both}

/* sticky header: hides when scrolling down, returns on the way up */
html.js-motion #svh-wrap{overflow-x:clip!important}      /* overflow:hidden would break position:sticky */
html.js-motion .svh-header{position:sticky;top:0;z-index:60;transition:transform .4s var(--svh-ease),background-color .3s,box-shadow .3s}
html.js-motion .svh-header::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;pointer-events:none;
  background:rgba(245,240,231,0);box-shadow:0 1px 0 rgba(23,35,49,0);transition:background-color .3s,box-shadow .3s,backdrop-filter .3s}
html.js-motion .svh-header.is-stuck::before{background:rgba(245,240,231,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(23,35,49,.08)}
html.js-motion .svh-header.is-hidden{transform:translateY(-100%)}
.admin-bar .svh-header{top:32px!important}
@media (max-width:782px){.admin-bar .svh-header{top:46px!important}}

/* reading progress */
.svh-progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:100;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.admin-bar .svh-progress{top:32px}
@media (max-width:782px){.admin-bar .svh-progress{top:46px}}

/* buttons: small lift, arrow nudges */
a[style*="border-radius: 999px"]{transition:translate .3s var(--svh-ease),box-shadow .3s var(--svh-ease),background-color .2s}
a[style*="border-radius: 999px"]:hover{opacity:1;translate:0 -2px;box-shadow:0 10px 22px -12px rgba(23,35,49,.5)}
a[style*="border-radius: 999px"]>span[aria-hidden]{display:inline-block;transition:translate .3s var(--svh-ease)}
a[style*="border-radius: 999px"]:hover>span[aria-hidden]{translate:4px 0}

/* phones/tablets: the two-row menu would eat too much screen, so the header stays in the flow there */
@media (max-width:900px){
	html.js-motion .svh-header{position:relative;top:auto!important;transform:none!important}
	html.js-motion .svh-header::before{display:none}
}

/* ==========================================================================
   Magazine article: one master template (inc/article-template.php). Same tokens as the rest of the site.
   ========================================================================== */
.article-head{max-width:var(--max);margin:0 auto;padding:clamp(32px,5vw,64px) var(--gutter) clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.article-head .t-h1{max-width:14em;font-size:clamp(40px,5.4vw,80px);line-height:1.02}
.article-head .t-lead{max-width:30em}
.article-figure{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.article-figure img{display:block;width:100%;height:auto;max-height:560px;object-fit:cover}
.article-body{max-width:44rem;margin:0 auto;padding:clamp(40px,6vw,72px) var(--gutter) clamp(72px,9vw,120px);font-family:var(--font-serif);font-size:clamp(19px,1.5vw,21px);line-height:1.7}
.article-body>*{margin:0 0 1.35em}
.article-body h2{margin-top:2.1em;font-family:var(--font-sans);font-size:clamp(26px,2.6vw,34px);line-height:1.15;font-weight:600;letter-spacing:-.02em}
.article-body h3{margin-top:1.6em;font-family:var(--font-sans);font-size:clamp(20px,1.7vw,24px);line-height:1.25;font-weight:600}
.article-body a{text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.article-body ul,.article-body ol{padding-left:1.3em}
.article-body figure{margin:2.2em 0}
.article-body figure img{display:block;width:100%;height:auto}
.article-body figcaption{margin-top:10px;font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--ink-soft)}
.article-body .wp-block-image.is-style-full-width{margin-left:calc(50% - 50vw + var(--gutter));margin-right:calc(50% - 50vw + var(--gutter));max-width:none}
.article-body p.is-style-lead{font-size:clamp(22px,2vw,28px);line-height:1.38}
.article-body .wp-block-quote.is-style-pull{margin:2.2em 0;padding:0 0 0 28px;border-left:3px solid var(--accent)}
.article-body .wp-block-quote.is-style-pull p{font-weight:500;font-size:clamp(26px,3vw,38px);line-height:1.22;margin:0}
.article-body .wp-block-quote cite{display:block;margin-top:12px;font-family:var(--font-sans);font-style:normal;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.article-body .wp-block-group.is-style-highlight{padding:28px 32px;background:var(--sun-soft);border-radius:4px}
.article-body .wp-block-group.is-style-highlight>*:last-child{margin-bottom:0}
.article-body .wp-block-group.is-style-highlight h3{margin-top:0}
.article-body hr.wp-block-separator{border:0;height:1px;background:var(--line);margin:3em 0}
.article-body .wp-block-group.is-style-cta{padding:clamp(28px,4vw,48px);background:var(--paper-2);border-radius:4px}
.article-body .wp-block-group.is-style-cta h3{margin-top:0}
.article-body .wp-block-buttons{display:flex;flex-wrap:wrap;gap:14px}
.article-body .wp-block-button__link{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-family:var(--font-sans);font-size:15px;font-weight:600;text-decoration:none}

/* ── Kontakt: topic buttons, contact cards, social links ── */
.contact-cards{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.c-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:32px 30px 28px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.55);transition:translate .35s var(--ease,ease),box-shadow .35s var(--ease,ease),border-color .25s}
.c-card::before{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(closest-side,var(--accent),transparent);opacity:0;transition:opacity .4s;pointer-events:none}
.c-card:hover,.c-card:focus-within{translate:0 -6px;border-color:var(--accent);box-shadow:0 22px 44px -26px rgba(23,35,49,.4)}
.c-card:hover::before,.c-card:focus-within::before{opacity:.22}
.c-card .c-icon{width:48px;height:48px;margin-bottom:6px;color:var(--ink);transition:rotate .4s var(--ease,ease),scale .4s var(--ease,ease)}
.c-card:hover .c-icon{rotate:-6deg;scale:1.08}
.c-card .t-h3,.c-card p{margin:0}
.c-address{overflow-wrap:anywhere}
.c-address a{text-decoration:none;background:linear-gradient(var(--accent),var(--accent)) 0 100%/0 2px no-repeat;transition:background-size .35s}
.c-address a:hover{background-size:100% 2px}
.c-action{margin-top:auto!important;padding-top:14px}
.c-copy{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font:600 15px/1 var(--font-sans,inherit);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.c-copy:hover{background:var(--ink);color:var(--paper)}
.c-copy .c-copy-ic{width:20px;height:20px}
.c-copy.is-copied{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#172331)}
/* the splash in the Kontakt hero follows the pointer a little */
body.p-kontakt .hero-art .portrait{transition:transform .5s cubic-bezier(.2,.8,.2,1);transform:translate(calc(var(--mx,0)*16px),calc(var(--my,0)*12px)) rotate(calc(var(--mx,0)*1.6deg))}
@media (prefers-reduced-motion:reduce){.c-card,.chip,body.p-kontakt .hero .t-h1{hyphens:manual;-webkit-hyphens:manual}
body.p-kontakt{--accent:var(--coral);--accent-2:var(--sun);--on-accent:var(--ink)}
.c-copy.is-copied .c-copy-ic{display:none}

.article-figure .a-visual.is-thumb{aspect-ratio:16/9;max-height:none}
