@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bodoni-moda-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/bodoni-moda-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/bodoni-moda-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jost-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2")}

:root{
  --ink:#111;--grey:#6f6f6f;--line:#e6e6e6;--bg:#fff;--g:16px;--edge:40px;
  --serif:"Bodoni Moda",Didot,"Times New Roman",serif;
  --sans:"Jost",system-ui,-apple-system,sans-serif;
  --num:"Inter",system-ui,sans-serif;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.wrap{padding:0 var(--g)}
.small{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:400}

/* Header */
.hd{position:sticky;top:0;z-index:20;background:#fff}
.hd::after{content:"";position:absolute;left:var(--edge);right:var(--edge);bottom:0;height:1px;background:var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:var(--g);padding:20px var(--edge)}
.brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;min-width:0}
.brand .nm{font-family:var(--serif);font-weight:500;font-size:34px;letter-spacing:.04em;line-height:1.6;white-space:nowrap}
.brand .rl{color:var(--grey);font-size:11px;font-weight:600;letter-spacing:.28em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;align-items:center;gap:30px}
.nav a{text-decoration:none;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.nav a:hover,.lang button:hover{color:var(--grey)}
.lang{display:flex;gap:6px;align-items:center;font-size:11px;letter-spacing:.14em;color:var(--grey);border-left:1px solid var(--line);padding-left:18px}
.lang button{font-size:11px;letter-spacing:.14em;color:var(--grey);padding:6px 2px}
.lang button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.menu-btn{display:none;font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:10px 0}

/* Hero */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--g);padding:40px var(--edge) 0}
.hero button{display:block;width:100%}
.ph{position:relative;aspect-ratio:3/4;overflow:hidden;background:#f4f4f4}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1),opacity .4s}
button.ph:hover img{transform:scale(1.015)}

/* Sections */
section{padding:110px var(--edge) 0}
.sh{display:flex;align-items:baseline;gap:18px;margin-bottom:46px}
#kontakt .sh{border-top:1px solid var(--line);padding-top:var(--g)}
.sh .no{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--grey)}
.sh h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,46px);line-height:1.6;margin:0;letter-spacing:.02em}
.sh .sp{flex:1}

/* Filter */
.filter{display:flex;flex-wrap:wrap;gap:6px 22px}
.filter button{font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);padding:6px 0;border-bottom:1px solid transparent}
.filter button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--g);grid-auto-flow:row dense}
.grid .it{display:block;width:100%;aspect-ratio:2/3;animation:fade .5s ease both}
.grid .it.wide{grid-column:span 2;aspect-ratio:auto}
.grid .it img{width:100%;height:100%;object-fit:cover}
.grid .it[hidden]{display:none}
@keyframes fade{from{opacity:0}to{opacity:1}}
.polas{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--g)}
.polas button{display:block;width:100%;background:#f4f4f4}
.polas img{width:100%;height:auto}

/* Profile */
.profile{display:grid;grid-template-columns:6fr 5fr;gap:80px;align-items:start;border-top:1px solid var(--line);padding-top:64px}
.lead{font-family:var(--serif);font-weight:400;font-size:clamp(23px,2.3vw,30px);line-height:1.42;color:#161616;margin:0 0 44px}
.txt{max-width:46ch;margin:0 0 44px;font-family:var(--num);font-size:16px;line-height:1.8;color:#555}
.line{color:#9a9a9a;font-family:var(--num);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin:0}
.stats{margin:0}
.stat{display:flex;justify-content:space-between;align-items:baseline;gap:var(--g);padding:16px 0;border-bottom:1px solid var(--line)}
.stat:first-child{border-top:1px solid #1d1d1d}
.stat dt{color:#9a9a9a;font-family:var(--num);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin:0}
.stat dd{margin:0;font-family:var(--num);font-size:12px;font-weight:500;letter-spacing:.04em;color:#444}
.sed{display:inline-flex;align-items:center;gap:10px;margin-top:44px;border:1px solid var(--ink);padding:14px 22px;text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;transition:background .2s,color .2s}
.sed:hover{background:var(--ink);color:#fff}

/* Contact (dunkler Abschluss) */
#kontakt{background:#111;color:#fff;margin-top:110px;padding:72px var(--edge)}
#kontakt .fld textarea{min-height:96px}
#kontakt form.cf{gap:14px}
.contact{display:grid;grid-template-columns:5fr 6fr;align-items:start}
.c-head{padding-right:80px}
.c-head .kick{color:#c4c4c4;font-size:12px;font-weight:600;letter-spacing:.28em}
.c-head h2{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(28px,4vw,46px);line-height:1.6;margin:10px 0 18px;letter-spacing:.01em;color:#fff}
.c-head .mail{display:inline-block;font-family:var(--serif);font-style:italic;font-size:23px;color:#fff;text-decoration:none;border-bottom:1px solid #fff;padding-bottom:3px}
.socials{margin-top:34px;display:flex;gap:28px;flex-wrap:wrap;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.socials a{color:#f2f2f2;text-decoration:none}.socials a:hover{color:#fff}
.socials .off{color:#9a9a9a;cursor:default}
.contact form.cf{border-left:1px solid #3a3a3a;padding-left:80px}
#kontakt .fld label{color:#c4c4c4}
#kontakt .fld input,#kontakt .fld textarea{background:transparent;color:#fff;border-bottom-color:#6a6a6a}
#kontakt .fld input:focus,#kontakt .fld textarea:focus{border-bottom-color:#fff}
#kontakt .fld input:-webkit-autofill{-webkit-text-fill-color:#fff;-webkit-box-shadow:0 0 0 40px #111 inset}
#kontakt .chk{color:#e0e0e0}#kontakt .chk a{color:#fff}
#kontakt .chk input{accent-color:#fff}
#kontakt .btn{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55);margin-top:22px;transition:background .25s,color .25s,border-color .25s}
#kontakt .btn:hover{background:#fff;color:#111;border-color:#fff;opacity:1}
#kontakt .msg{color:#e6e6e6}#kontakt .msg.err{color:#ff9b9b}
#kontakt :focus-visible{outline-color:#fff}
form.cf{display:grid;gap:var(--g)}
.cf .row2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.fld label{display:block;color:var(--grey);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin:0}
.fld input,.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:0;border-bottom:1px solid #cfcfcf;border-radius:0;padding:8px 0;outline:0;transition:border-color .2s}
.fld textarea{min-height:130px;resize:vertical}
.fld input:focus,.fld textarea:focus{border-bottom-color:var(--ink)}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:#333;line-height:1.5}
.chk input{margin-top:3px;width:16px;height:16px;accent-color:#111;flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn{justify-self:start;background:var(--ink);color:#fff;padding:15px 28px;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;transition:opacity .2s}
.btn:hover{opacity:.82}.btn:disabled{opacity:.45;cursor:default}
.msg{font-size:14px;min-height:1.5em;margin:0}
.msg.err{color:#a31515}

/* Footer */
.ft{margin:110px var(--edge) 0;border-top:1px solid var(--line);padding:30px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;color:var(--grey);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
body[data-page=home] .ft{margin-top:0;border-top:0}
.ft nav{display:flex;gap:20px}
.ft a{text-decoration:none}.ft a:hover{color:var(--ink)}

/* Legal pages */
.legal{max-width:calc(760px + 2*var(--edge));padding:80px var(--edge) 0}
.legal h1{font-family:var(--serif);font-weight:400;font-size:clamp(38px,6vw,64px);line-height:1;margin:0 0 calc(var(--g)*2)}
.legal h2{font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin:calc(var(--g)*2) 0 8px}
.legal p{margin:0 0 var(--g)}
.back{display:inline-block;margin:var(--g) var(--edge) 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--grey)}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(255,255,255,.98);display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:calc(100vw - 140px);max-height:calc(100vh - 100px);object-fit:contain;user-select:none}
.lb button{position:absolute;font-size:26px;line-height:1;padding:16px;color:var(--ink);font-family:var(--num);font-weight:300}
.lb .x{top:8px;right:10px;font-size:22px}
.lb .pv{left:8px;top:50%;transform:translateY(-50%);font-size:40px}
.lb .nx{right:8px;top:50%;transform:translateY(-50%);font-size:40px}
.lb .ct{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-family:var(--num);font-size:12px;color:var(--grey);font-variant-numeric:tabular-nums}

:focus-visible{outline:1px solid var(--ink);outline-offset:3px}

/* Responsive */
@media (max-width:860px){
  :root{--edge:20px;--g:12px}
  section{padding:80px var(--edge) 0}
  #kontakt{margin-top:80px;padding:56px var(--edge)}
  .contact{grid-template-columns:1fr}
  .c-head{position:static;padding-right:0}
  .contact form.cf{border-left:0;padding-left:0;margin-top:36px}
  .cf .row2{grid-template-columns:1fr;gap:14px}
  .hd-in{padding:16px var(--edge)}
  .hero{padding:20px var(--edge) 0}
  .ft{flex-direction:column;gap:8px}
}
@media (max-width:600px){
  :root{--edge:18px}
  .hd-in{padding:14px var(--edge)}
}
@media (max-width:980px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .profile{grid-template-columns:1fr;gap:40px}
}
@media (max-width:760px){
  .menu-btn{display:block}
  .nav{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:0 var(--edge) var(--g);display:none}
  .nav.open{display:flex}
  .nav a{padding:12px 0;width:100%;border-bottom:1px solid var(--line)}
  .lang{border-left:0;padding:12px 0 0}
  .brand{flex-direction:column;gap:4px}
  .brand .nm{font-size:22px}
  .brand .rl{font-size:9px;letter-spacing:.22em}
  .sh{flex-wrap:wrap}.sh .sp{display:none}.sh .filter{flex-basis:100%;gap:6px 18px}
  .grid{gap:10px}
  .polas{grid-template-columns:1fr}
  .lb img{max-width:100vw;max-height:calc(100vh - 120px)}
  .lb .pv,.lb .nx{top:auto;bottom:4px;transform:none}
}
@media (max-width:420px){.hero{gap:10px}.grid{grid-template-columns:repeat(2,1fr)}}

/* Sedcard (A4) */
body[data-page=sedcard]{background:#ececec}
.sc-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--g);padding:var(--g);max-width:210mm;margin:0 auto;flex-wrap:wrap}
.sc-bar a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--grey)}
.sheet{width:210mm;height:297mm;margin:0 auto var(--g);background:#fff;padding:11mm;display:grid;grid-template-rows:auto 1fr;gap:7mm;overflow:hidden;box-shadow:0 1px 18px rgba(0,0,0,.08)}
.sc-top{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:.3mm solid #111;padding-bottom:4mm}
.sc-top .nm{font-family:var(--serif);font-size:34pt;line-height:1}
.sc-top .rl{font-size:8pt;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.sc-body{display:flex;flex-direction:column;gap:8mm;min-height:0}
.sc-imgs{display:grid;grid-template-columns:2fr 1fr;gap:4mm;align-items:stretch;flex:1;min-height:0;max-height:212mm}
.sc-imgs .big{overflow:hidden}
.sc-imgs .big img,.sc-imgs .sm img{width:100%;height:100%;object-fit:cover}
.sc-imgs .smg{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:4mm;min-height:0}
.sc-imgs .sm{overflow:hidden;min-height:0}
.sc-bot{display:grid;grid-template-columns:2fr 1fr;gap:6mm;align-items:end;border-top:.3mm solid #e6e6e6;padding-top:4mm}
.sc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm 6mm}
.sc-stats dt{font-size:6.5pt;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.sc-stats dd{margin:0;font-family:var(--num);font-size:11pt}
.sc-ct{text-align:right;font-size:8.5pt;line-height:1.6}
.sc-ct .cr{color:var(--grey);font-size:7pt;letter-spacing:.06em;margin-top:2mm}
@media screen and (max-width:830px){
  .sheet{zoom:var(--z,1)}
}
.sheet2{grid-template-rows:auto 1fr auto}
.sc-top .nm.sm2{font-size:20pt}
.p2{display:grid;gap:4mm;min-height:0}
.p2>div{overflow:hidden;min-height:0}
.p2 img{width:100%;height:100%;object-fit:cover}
.p2-g{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.p2-g.p2-2{grid-template-rows:1fr}
.p2-l{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1.1fr}
.p2-l .w{grid-column:span 2}
.sc-foot{display:flex;justify-content:space-between;gap:6mm;border-top:.3mm solid #e6e6e6;padding-top:3mm;font-size:7.5pt;letter-spacing:.06em;color:var(--grey)}
@page{size:A4;margin:0}
@media print{
  html,body{background:#fff!important}
  .sc-bar{display:none!important}
  .sheet{margin:0;box-shadow:none;zoom:1!important;break-after:page}
  .sheet:last-child{break-after:auto}
}
/* Fotograf:in in der Großansicht */
.lb .by{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);white-space:nowrap}
.lb .by a{color:var(--grey);text-decoration:none;border-bottom:1px solid #cfcfcf}
.lb .by a:hover{color:var(--ink);border-color:var(--ink)}
.lb .by:empty{display:none}
/* Vorschau-Leiste aus dem Editor */
.pvbar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:90;background:#111;color:#fff;display:flex;gap:18px;align-items:center;padding:12px 18px;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 6px 24px rgba(0,0,0,.18);white-space:nowrap;max-width:calc(100vw - 24px);overflow-x:auto}
.pvbar span{color:#f0cf8a}
.pvbar a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
@media (max-width:600px){.pvbar{gap:12px;padding:10px 12px;font-size:10px;letter-spacing:.1em}.lb .by{bottom:64px}}
@media print{.pvbar{display:none}}
.lb img{max-height:calc(100vh - 160px)}
.lb.open ~ .pvbar{display:none}
@media (max-width:600px){.lb img{max-height:calc(100vh - 190px)}}
