/* Storchenbau site styles.
   Self-hosted webfonts (no third-party requests): Playfair Display + Inter,
   variable woff2, latin + latin-ext subsets pulled from Google Fonts. */
@font-face{font-family:'Inter';font-style:normal;font-weight:300 600;font-display:swap;src:url('/assets/fonts/inter-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 600;font-display:swap;src:url('/assets/fonts/inter-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 600;font-display:swap;src:url('/assets/fonts/playfair-display-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 600;font-display:swap;src:url('/assets/fonts/playfair-display-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url('/assets/fonts/playfair-display-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url('/assets/fonts/playfair-display-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --bg:#0a141f;
  --bg2:#0e1b29;
  --panel:#12233466;
  --ink:#edf2f7;
  --muted:#93a5b5;
  --gold:#c8a35f;
  --gold-soft:rgba(200,163,95,.35);
  --line:rgba(147,165,181,.14);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}
::selection{background:var(--gold);color:#0a141f}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 32px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15}
.eyebrow{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:500}
.rule{width:56px;height:1px;background:var(--gold);margin:22px 0}

/* NAV */
header{position:fixed;inset:0 0 auto;z-index:50;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(10,20,31,.88);backdrop-filter:blur(14px);border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:14px}
.brand svg{width:40px;height:40px;color:var(--gold)}
.brand-name{font-family:var(--serif);font-size:21px;letter-spacing:.06em}
.brand-name small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:var(--muted)}
.nav-links{display:flex;gap:34px;font-size:13px;letter-spacing:.08em;color:var(--muted)}
.nav-links a{transition:color .3s}
.nav-links a:hover{color:var(--gold)}
.btn{display:inline-block;padding:14px 30px;border:1px solid var(--gold);color:var(--gold);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;transition:.35s;cursor:pointer;background:transparent;font-family:var(--sans)}
.btn:hover{background:var(--gold);color:#0a141f}
.btn.solid{background:var(--gold);color:#0a141f}
.btn.solid:hover{background:transparent;color:var(--gold)}
.burger{display:none;background:none;border:0;color:var(--gold);cursor:pointer;padding:8px}
.burger svg{width:26px;height:26px}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 70% 30%,rgba(200,163,95,.10),transparent 60%),radial-gradient(ellipse 46% 46% at 82% 78%,rgba(200,163,95,.13),transparent 62%),radial-gradient(ellipse 60% 50% at 15% 85%,rgba(46,90,130,.18),transparent 60%)}
.hero-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(147,165,181,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(147,165,181,.05) 1px,transparent 1px);background-size:110px 110px;mask-image:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 75%)}
.hero .wrap{position:relative;z-index:2;padding-top:120px;padding-bottom:80px}
.hero h1{font-size:clamp(42px,6.4vw,84px);margin:26px 0 30px;max-width:16ch}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero p{max-width:52ch;color:var(--muted);font-size:18px}
.hero-cta{display:flex;gap:18px;margin-top:46px;flex-wrap:wrap}
.hero-stork{position:absolute;right:54px;bottom:44px;width:min(36vw,430px);color:rgba(200,163,95,.46);z-index:1;pointer-events:none;filter:drop-shadow(0 20px 50px rgba(0,0,0,.6))}
.scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);color:var(--muted);font-size:10px;letter-spacing:.4em;text-transform:uppercase;z-index:2}
.scroll-hint::after{content:'';display:block;width:1px;height:44px;background:linear-gradient(var(--gold),transparent);margin:12px auto 0}

/* SECTIONS */
section{padding:110px 0;position:relative}
section + section{border-top:1px solid var(--line)}
.sec-head{display:flex;align-items:baseline;gap:26px;margin-bottom:56px}
.sec-num{font-family:var(--serif);color:var(--gold-soft);font-size:15px;letter-spacing:.2em}
.sec-head h2{font-size:clamp(30px,3.6vw,46px)}
.lead{font-size:19px;color:var(--muted);max-width:62ch}
.two-col{display:grid;grid-template-columns:1.25fr .75fr;gap:72px;align-items:start}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{border:1px solid var(--line);padding:44px 36px;background:var(--panel);transition:.4s;position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s}
.card:hover{transform:translateY(-6px);border-color:var(--gold-soft)}
.card:hover::before{transform:scaleX(1)}
.card .ico{color:var(--gold);margin-bottom:24px}
.card .ico svg{width:34px;height:34px}
.card h3{font-size:22px;margin-bottom:12px}
.card p{font-size:14.5px;color:var(--muted)}

/* SELLER */
.seller .two-col{gap:60px}
.check-list{list-style:none}
.check-list li{padding:14px 0 14px 34px;position:relative;border-bottom:1px solid var(--line);font-size:15.5px}
.check-list li::before{content:'';position:absolute;left:0;top:22px;width:16px;height:8px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.seller h3{font-size:22px;margin-bottom:20px;color:var(--gold)}

/* CONTACT */
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px;margin-bottom:70px}
.member{border:1px solid var(--line);padding:32px 26px;text-align:center;background:var(--panel);transition:.35s}
.member:hover{border-color:var(--gold-soft);transform:translateY(-4px)}
.avatar{width:74px;height:74px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;color:var(--gold);border:1px solid var(--gold-soft);background:rgba(200,163,95,.07)}
.member b{font-family:var(--serif);font-weight:500;font-size:18px;display:block}
.member .role{display:block;margin-top:6px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);line-height:1.5;hyphens:auto;overflow-wrap:break-word}
.member a{display:block;margin-top:10px;font-size:11.5px;color:var(--muted);letter-spacing:0;transition:color .3s;overflow-wrap:anywhere}
.member a:hover{color:var(--gold)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:60px}
.c-line a{transition:color .3s}
.c-line a:hover{color:var(--gold)}
.single-col{max-width:70ch}
.c-info p{color:var(--muted);margin-bottom:26px;max-width:none}
.c-line{padding:16px 0;border-bottom:1px solid var(--line);font-size:15px;max-width:620px}
.c-line b{color:var(--gold);font-weight:500;display:block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;margin-bottom:4px}

/* FOOTER */
footer{border-top:1px solid var(--line);padding:46px 0;color:var(--muted);font-size:13px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.foot-links{display:flex;gap:26px}
.foot-links a:hover{color:var(--gold)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

/* team: 4 across only at full width, then a balanced 2x2, then single file */
@media(max-width:1159px){.team{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.team{grid-template-columns:1fr}}

@media(max-width:900px){
  .two-col,.contact-grid{grid-template-columns:1fr;gap:44px}
  .cards{grid-template-columns:1fr}
  .nav-links{position:fixed;inset:76px 0 auto;flex-direction:column;background:rgba(10,20,31,.97);padding:34px 32px;gap:22px;display:none;border-bottom:1px solid var(--line)}
  .nav-links.open{display:flex}
  .burger{display:block}
  .hero{align-items:flex-start}
  .hero .wrap{padding-top:118px;padding-bottom:0}
  .hero-stork{width:54vw;right:0;bottom:52px;color:rgba(200,163,95,.42)}
  section{padding:80px 0}
}

/* TEMPLATE ADDITIONS
   Classes the markdown-to-design mapping in page.php needs, plus the plain
   text page used by Impressum and 404. Everything above is the approved
   design as delivered. */
.muted{color:var(--muted)}
.section-cta{margin-top:52px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--gold);color:#0a141f;padding:12px 20px;z-index:100}
.skip-link:focus{left:0}

/* PLAIN TEXT PAGE (Impressum, 404) */
.text-page{padding:170px 0 120px;min-height:70vh}
.text-page h1{font-size:clamp(32px,4.4vw,52px);margin-bottom:34px}
.text-page h2{font-size:22px;color:var(--gold);margin:48px 0 14px}
.text-page p{color:var(--muted);max-width:62ch;margin-bottom:18px}
.text-page a{color:var(--gold);border-bottom:1px solid var(--gold-soft)}
.text-page a:hover{border-color:var(--gold)}
.text-page ul{list-style:none;max-width:62ch}
.text-page li{padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.text-page .btn{margin-top:30px;color:var(--gold);border:1px solid var(--gold)}
.text-page .btn:hover{background:var(--gold);color:#0a141f}

/* FALLBACK PAGE NAVIGATION
   Sub-pages have no `## ` sections, so layout.php falls back to Garuda's page
   navigation, which comes as <ul><li><a>. Flatten it into the same row as the
   section links. */
.nav-links ul{list-style:none;display:flex;gap:34px;margin:0;padding:0}
.nav-links li{margin:0}
.nav-links .active > a{color:var(--gold)}
/* Scrollspy state, set by site.js on the link for the section in view.
   scroll-margin-top keeps a clicked section clear of the fixed header (76px
   nav + 1px border) and parks it exactly on the line the spy measures. */
section[id]{scroll-margin-top:77px}
.nav-links a{position:relative}
.nav-links a.is-current{color:var(--gold)}
.nav-links a.is-current::after{content:'';position:absolute;left:0;bottom:-8px;width:100%;height:1px;background:var(--gold-soft)}
@media(max-width:900px){
  .nav-links a.is-current::after{content:none}
}
@media(max-width:900px){
  .nav-links ul{flex-direction:column;gap:22px}
}
