:root{
  --navy-950:#0B1E33;
  --navy-800:#132C48;
  --navy-700:#1B3A5C;
  --navy-600:#2C5479;
  --brass:#A6812E;
  --brass-light:#C9A24A;
  --paper:#F5F3EE;
  --paper-dim:#EBE8E0;
  --ink:#1B2430;
  --ink-soft:#4C5566;
  --line:#D3D0C7;
  --line-dark:rgba(255,255,255,.14);
}

*{box-sizing:border-box}
.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--brass); color:var(--navy-950);
  padding:12px 20px; z-index:100;
  text-decoration:none; font-weight:600; font-size:14.5px;
}
.skip-link:focus{left:16px; top:16px;}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'IBM Plex Sans',sans-serif}
a{color:inherit}
h1,h2,h3{font-family:'Spectral',serif;line-height:1.18;margin:0;color:var(--navy-950)}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:.05em}
.wrap{max-width:1140px;margin:0 auto;padding:0 32px}

/* ---------- Header (identisch fuer alle Root-Seiten und leistungen/) ---------- */
header{position:sticky;top:0;z-index:20;background:var(--navy-950);border-bottom:1px solid var(--line-dark)}
.nav-row{height:110px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--paper)}
.brand-mark{width:80px;height:80px;background:var(--paper);border:1px solid var(--brass-light);display:flex;align-items:center;justify-content:center;padding:9px;flex:none}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.brand-text{font-family:'Spectral',serif;font-size:18px;letter-spacing:.01em}
.brand-text b{font-weight:600}
.back{color:#C4CDD8;text-decoration:none;font-size:14px;border-bottom:1px solid transparent;padding:8px 0}
.back:hover,.back:focus-visible{color:var(--brass-light);border-color:var(--brass-light)}

/* ---------- Hero / Titleblock (genutzt von kontakt.html) ---------- */
.hero{color:var(--paper);background:repeating-linear-gradient(0deg,transparent 0 39px,rgba(255,255,255,.035) 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,rgba(255,255,255,.035) 39px 40px),linear-gradient(180deg,var(--navy-950),var(--navy-800));padding:32px 0 0}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--brass-light);font:12px 'IBM Plex Mono',monospace;letter-spacing:.17em;text-transform:uppercase;margin-bottom:18px}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor}
.hero h1{color:var(--paper);font-size:46px;max-width:15ch}
.hero-lede{font-size:18px;max-width:60ch;color:#CDD5DF;margin:22px 0 0}
.hero-lede p{margin:0}
.hero-lede p+p{margin-top:14px}
.detail-hero{padding-bottom:41px}
.detail-hero h1{max-width:18ch}
.titleblock{margin-top:36px;border-top:1px solid var(--line-dark);display:grid;grid-template-columns:repeat(4,1fr)}
.titleblock>div{padding:15px 18px 19px;border-right:1px solid var(--line-dark)}
.titleblock>div:last-child{border-right:0}
.tb-label{text-transform:uppercase;color:var(--brass-light);font-size:11px;font-weight:500;line-height:1.35;margin-bottom:8px}
.tb-value{font-size:13px;color:var(--paper)}
.consultation-options .tb-value{margin-bottom:5px}
.consultation-options .tb-note{color:#C9D2DD;font-size:12px;line-height:1.4}

/* ---------- Kontaktseite (kontakt.html) ---------- */
.contact-page{padding:32px 0;background:var(--paper-dim)}

/* ---------- Rechts-/Info-Seiten (impressum.html, datenschutz.html, schriftarten-lizenznachweis.html) ---------- */
.legal-main{padding:32px 0;background:var(--paper)}

/* Hero-Layout-Regel: rechts Box/Menue -> linke Spalte nutzt volle Spaltenbreite (kein Zusatz-max-width).
   Rechts Freiraum -> H1 goldener Schnitt 3/5 der Wrap-Breite (1140px * 0.6 = 684px), Fliesstext (.hero-lede) fest 800px. */
.hero-golden h1{max-width:684px;white-space:nowrap}
.hero-golden .hero-lede{max-width:800px}
.contact-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;margin-bottom:46px}
.contact-heading .eyebrow{color:var(--brass)}
.contact-heading h2{font-size:34px}
.contact-heading p{margin:0;color:var(--ink-soft);max-width:62ch}
.contact-heading .contact-lede{max-width:calc(100% - 38px)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}
.contact-info .row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.contact-info .row:first-child{padding-top:0}
.contact-info .k{width:90px;flex:none;color:var(--ink-soft);font:11.5px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase}
.contact-info .v{font-size:15px;overflow-wrap:anywhere}
.contact-info a{color:var(--navy-600);text-underline-offset:3px}
.contact-info a:hover,.contact-info a:focus-visible{color:var(--brass)}
.contact-page form{display:grid;gap:18px}
.form-intro{margin-bottom:28px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.contact-heading .form-intro{margin-bottom:0}
.form-intro .eyebrow{margin-bottom:10px;color:var(--brass)}
.form-intro h3{margin:0 0 12px;font:400 25px/1.2 'Spectral',serif;color:var(--navy-950)}
.form-intro p{margin:0;color:var(--ink-soft)}
.field{display:flex;flex-direction:column;gap:8px}
.field label{color:var(--ink-soft);font:11.5px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase}
.field input,.field textarea{border:1px solid var(--line);background:var(--paper);padding:12px 14px;color:var(--ink);font:14.5px 'IBM Plex Sans',sans-serif;outline:none}
.field input:focus,.field textarea:focus{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-button{width:fit-content;border:1px solid var(--brass);background:var(--brass);padding:14px 32px;color:var(--navy-950);font:500 14.5px 'IBM Plex Sans',sans-serif;cursor:pointer}
.contact-button:hover,.contact-button:focus-visible{background:var(--brass-light);border-color:var(--brass-light)}
.form-status{margin:14px 0 0;color:var(--ink-soft);font-size:13px}

/* ---------- Seiten-Fussnavigation + Footer ---------- */
.page-nav{background:var(--navy-950);color:var(--paper)}
.page-nav-grid{display:grid;grid-template-columns:1fr 1fr}
.page-nav a{padding:34px 0;text-decoration:none;color:#C7D0DA}
.page-nav a:last-child{text-align:right}
.page-nav a:hover{color:var(--brass-light)}
.page-nav span{display:block;color:#758497;text-transform:uppercase;font-size:10px;margin-bottom:5px}
footer{background:#071625;color:#8391A3;padding:28px 0;font-size:12px}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media(max-width:780px){
  .nav-row{height:74px}.back{font-size:12px}
  .hero{padding-top:32px}.hero h1{font-size:35px}.hero-golden h1{white-space:normal;max-width:none}
  .titleblock{grid-template-columns:1fr 1fr}
  .titleblock>div:nth-child(2n){border-right:0}.titleblock>div:nth-child(-n+2){border-bottom:1px solid var(--line-dark)}
  .contact-heading,.contact-grid{grid-template-columns:1fr;gap:40px}
  .two-col{grid-template-columns:1fr}
  .page-nav-grid{grid-template-columns:1fr}.page-nav a:last-child{text-align:left;border-top:1px solid var(--line-dark)}
}

@media(max-width:480px){.wrap{padding:0 20px}.hero h1{font-size:31px}}
