/* Local fonts (self-hosted) */
@font-face{
  font-family: "EB Garamond";
  src: url("assets/fonts/eb-garamond-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "EB Garamond";
  src: url("assets/fonts/eb-garamond-latin-500-normal.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root{
  --marine:#1C2533;
  --anth:#2A2A2A;
  --muted:#6E6E6E;
  --bg:#ffffff;
  --bg-alt:#f5f6f7;
  --card:#ffffff;
  --border:rgba(0,0,0,.10);
  --shadow:0 10px 25px rgba(0,0,0,.06);
  --radius:18px;
  --max:1100px;
}

/* System-Schriftstack (keine externen Fonts) */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--anth);
  font-family: "EB Garamond", ui-serif, Georgia, "Times New Roman", Times, serif;
  line-height:1.5;
}

a{color:inherit}
.container{max-width:var(--max); margin:0 auto; padding:0 20px}
.skip{
  position:absolute; left:-999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip:focus{left:20px; top:20px; width:auto; height:auto; background:#fff; padding:10px 12px; border:1px solid var(--border); border-radius:10px}

.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

.site-header{
  position:sticky; top:0; z-index:10;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
  gap:16px;
}
.brand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  line-height:1;
}
.brand-logo{
  display:block;
  height:52px;
  width:auto;
  max-width: 240px;
  object-fit: contain;
}

.site-nav{display:flex; gap:18px; align-items:center}
.site-nav a{ text-decoration:none; padding:8px 10px; border-radius:10px }
.site-nav a:hover{ background:var(--bg-alt) }


.hero{ padding:54px 0 28px; }
.hero-inner{
  display:grid;
  grid-template-columns: 1.3fr .9fr;
  gap:22px;
  align-items:start;
}
.kicker{
  margin:0 0 10px;
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
}
h1{
  margin:0 0 10px;
  color:var(--marine);
  font-size:44px;
  line-height:1.1;
}
.lead{
  margin:0 0 18px;
  font-size:18px;
  color:var(--anth);
}
.cta-row{display:flex; gap:12px; flex-wrap:wrap}

.btn{
  display:inline-block;
  text-decoration:none;
  border-radius:14px;
  padding:10px 14px;
  border:1px solid var(--marine);
  background:var(--marine);
  color:#fff;
}
.btn:hover{opacity:.92}
.btn-ghost{ background:transparent; color:var(--marine); }

.hero-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px 18px 14px;
}
.hero-card-title{
  color:var(--marine);
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.hero-list{margin:0; padding-left:18px}
.hero-list li{margin:8px 0}

.section{padding:34px 0}
.section.alt{background:var(--bg-alt); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}

h2{margin:0 0 14px; color:var(--marine); font-size:30px; line-height:1.2}
h3{margin:0 0 10px; color:var(--marine); font-size:20px}
.muted{color:var(--muted)}
.small{font-size:12px}

.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.panel{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}

.checklist{margin:0; padding-left:18px}
.checklist li{margin:8px 0}

.cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}

.form label{display:block; margin:10px 0}
.form input, .form textarea{
  width:100%;
  margin-top:6px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  font:inherit;
}
.form input:focus, .form textarea:focus{
  outline:2px solid rgba(28,37,51,.18);
  border-color:rgba(28,37,51,.25);
}

.contact-box{
  margin-top:14px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px 16px;
  background:#fff;
}
.contact-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.contact-row:last-child{border-bottom:none}
.label{color:var(--muted); min-width:90px}

.site-footer{
  border-top:1px solid var(--border);
  padding:18px 0;
  background:#fff;
}
.footer-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.footer-right{display:flex; gap:14px; flex-wrap:wrap}
.footer-right a{text-decoration:none}
.footer-right a:hover{text-decoration:underline}

/* Responsive */
@media (max-width: 900px){
  .hero-inner{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  h1{font-size:38px}
  .contact-row{flex-direction:column; align-items:flex-start}
  .brand-logo{height:48px}
}

@media (max-width: 760px){
    .site-nav{
    display:none;
    position:absolute;
    right:20px;
    top:62px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:14px;
    padding:10px;
    box-shadow:var(--shadow);
    flex-direction:column;
    align-items:stretch;
    min-width:220px;
  }
  .site-header .container{position:relative}
  .site-nav a{padding:10px 12px}
  .site-nav.open{display:flex}
}


/* Accessibility: sichtbarer Fokus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(28, 37, 51, .35);
  outline-offset: 3px;
  border-radius: 10px;
}

/* Accessibility: Hover/Fokus für Navigation */
.site-nav a:focus-visible {
  background: var(--bg-alt);
}

/* Accessibility: Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}


/* Presence Site (ultra minimal) */
.presence{
  min-height: calc(100vh - 140px);
  display:flex;
  align-items:center;
  padding: 60px 0;
}
.presence-inner{
  max-width: 760px;
}
.presence-title{
  margin: 0 0 8px;
  color: var(--marine);
  font-size: 34px;
  line-height: 1.15;
}
.presence-line{
  margin: 0 0 18px;
  color: var(--anth);
  font-size: 16px;
}
.presence-links{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.presence-links a{
  text-decoration:none;
  padding: 6px 8px;
  border-radius: 10px;
}
.presence-links a:hover,
.presence-links a:focus-visible{
  background: var(--bg-alt);
}


/* One-line Presence Startseite */
.one-line{
  min-height: calc(100vh - 140px);
  display:flex;
  align-items:center;
  padding: 60px 0;
}
.one-line-inner{ display:flex; align-items:center; }
.claim{
  margin:0;
  color: var(--anth);
  font-size: 18px;
  letter-spacing: .01em;
}
/* Header: ohne Navigation */
.header-inner{ justify-content:flex-start; }


/* Centered logo + one-line claim (Homepage) */
.center-logo{
  min-height: calc(100vh - 140px);
  display:flex;
  align-items:center;
  padding: 60px 0;
}
.center-logo-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap: 14px;
}
.center-logo-img{
  height: 164px;
  width: auto;
  display:block;
}

/* Header without navigation (logo top-left) */
.header-inner{ justify-content:flex-start; }

@media (max-width: 760px){
  .center-logo-img{ height: 148px; }
}
