:root{
  --ink:#0E1526;
  --panel:#161F36;
  --panel-2:#1C2745;
  --ivory:#EDE7DA;
  --ivory-dim:#B9B4A6;
  --brass:#C6A05F;
  --brass-dim:#8C7245;
  --slate:#6B7690;
  --hairline: rgba(237,231,218,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--ivory);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:920px; margin:0 auto; padding:0 28px;}

/* Eyebrow / tick-mark signature */
.eyebrow{
  display:flex; align-items:center; gap:10px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass); margin-bottom:18px;
}
.tick{
  width:16px; height:16px; position:relative; flex-shrink:0;
}
.tick svg{width:16px; height:16px; display:block;}
.tick path{
  fill:none; stroke:var(--brass); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:24; stroke-dashoffset:24;
  transition:stroke-dashoffset .6s ease .1s;
}
.reveal.in-view .tick path{stroke-dashoffset:0;}

/* Ledger double-rule divider — the sig. structural device */
.ledger-rule{margin:0; border:0; height:6px; position:relative;}
.ledger-rule::before,.ledger-rule::after{
  content:""; position:absolute; left:0; right:0; height:1px; background:var(--hairline);
}
.ledger-rule::before{top:0;}
.ledger-rule::after{top:4px;}

nav{
  position:sticky; top:0; z-index:10;
  background:rgba(14,21,38,0.88); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--hairline);
}
nav .wrap{display:flex; justify-content:space-between; align-items:center; height:64px;}
.brand{font-family:'Fraunces', serif; font-weight:600; font-size:19px; letter-spacing:.02em; color:var(--ivory); text-decoration:none;}
.brand span{color:var(--brass);}
nav a.cta{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.06em;
  color:var(--ink); background:var(--brass); padding:9px 16px; text-decoration:none;
  border-radius:2px; text-transform:uppercase;
}

header.hero{padding:100px 0 80px;}
.hero h1{
  font-family:'Fraunces', serif; font-weight:700; font-optical-sizing:auto;
  font-size:clamp(38px, 6vw, 64px); line-height:1.06; letter-spacing:-.01em;
  max-width:15ch;
}
.hero h1 em{color:var(--brass); font-style:normal;}
.hero p.lede{
  margin-top:26px; max-width:52ch; font-size:18px; color:var(--ivory-dim);
}
.hero .actions{display:flex; gap:16px; margin-top:38px; flex-wrap:wrap;}
.btn-primary{
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.05em; text-transform:uppercase;
  background:var(--brass); color:var(--ink); padding:14px 24px; text-decoration:none; border-radius:2px;
}
.btn-ghost{
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.05em; text-transform:uppercase;
  border:1px solid var(--hairline); color:var(--ivory); padding:14px 24px; text-decoration:none; border-radius:2px;
}

section{padding:72px 0;}
h2{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(26px,3.6vw,36px);
  max-width:20ch; margin-bottom:14px;
}
.lead-text{color:var(--ivory-dim); max-width:60ch; margin-bottom:44px;}

/* Simple text page (Impressum / Datenschutz) */
.legal h1{
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(30px,4.5vw,44px);
  margin-bottom:32px;
}
.legal h2{font-size:20px; margin-top:40px;}
.legal p, .legal li{color:var(--ivory-dim); max-width:70ch; margin-bottom:14px;}
.legal ul{padding-left:20px; margin-bottom:14px;}
.legal a{color:var(--brass);}
.legal h1 + p.lead-text{margin-top:-16px;}

/* FAQ accordion */
.faq-item{
  border-bottom:1px solid var(--hairline); padding:20px 0;
}
.faq-item:first-of-type{border-top:1px solid var(--hairline);}
.faq-item summary{
  cursor:pointer; list-style:none; font-family:'Fraunces', serif; font-weight:600;
  font-size:18px; color:var(--ivory); display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; font-family:'IBM Plex Mono', monospace; font-size:20px; color:var(--brass); flex-shrink:0;
}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:14px; margin-bottom:0;}

/* Cal.com booking embed */
.booking-embed{
  background:var(--panel); border:1px solid var(--hairline); border-radius:6px;
  padding:8px; min-height:650px; margin-top:8px;
}
.placeholder{
  color:var(--brass); font-family:'IBM Plex Mono', monospace; font-size:14px;
  border:1px dashed var(--brass-dim); padding:2px 8px; border-radius:2px;
}

/* Offer — invoice-line style pricing */
.offer-card{
  background:var(--panel); border:1px solid var(--hairline); border-radius:6px; padding:40px;
}
.offer-card h3{font-family:'Fraunces', serif; font-weight:600; font-size:24px; margin-bottom:8px;}
.offer-card .sub{color:var(--brass); font-family:'IBM Plex Mono', monospace; font-size:13px; margin-bottom:28px;}
.line-item{
  display:flex; align-items:baseline; gap:8px; padding:14px 0;
  border-bottom:1px dashed var(--hairline);
}
.line-item:last-of-type{border-bottom:none;}
.line-item .label{flex-shrink:0;}
.line-item .dots{flex:1; border-bottom:1px dotted var(--slate); transform:translateY(-4px); opacity:.6;}
.line-item .val{
  font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--ivory-dim); white-space:nowrap;
}
.price-row{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-top:28px; padding-top:24px; border-top:2px solid var(--brass);
}
.price-row .price-label{font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--ivory-dim);}
.price-row .price{font-family:'Fraunces', serif; font-weight:700; font-size:30px; color:var(--brass);}
.offer-card .meta{margin-top:18px; font-size:14px; color:var(--slate);}

/* About */
.about{display:grid; grid-template-columns:auto 1fr; gap:32px; align-items:start;}
.about .initials{
  width:88px; height:88px; border-radius:50%; border:1px solid var(--brass-dim);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-size:26px; color:var(--brass); flex-shrink:0;
}
.about h2{margin-bottom:6px;}
.about .role{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--brass); margin-bottom:20px;}
.about p{color:var(--ivory-dim); max-width:56ch; margin-bottom:14px;}
.credential{
  display:inline-flex; align-items:center; gap:8px; margin-top:10px;
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--ivory-dim);
  border:1px solid var(--hairline); padding:8px 14px; border-radius:2px;
}

/* Contact */
.contact-card{
  background:var(--panel-2); border:1px solid var(--hairline); border-radius:6px;
  padding:44px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
}
.contact-card h2{margin-bottom:8px;}
.contact-card p{color:var(--ivory-dim);}
.contact-note{
  margin-top:18px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass);
  border:1px dashed var(--brass-dim); padding:10px 14px; border-radius:2px; display:inline-block;
}

footer{padding:36px 0 50px; border-top:1px solid var(--hairline); margin-top:20px;}
footer .wrap{display:flex; justify-content:space-between; color:var(--slate); font-size:13px; flex-wrap:wrap; gap:8px;}
footer .legal-links{display:flex; gap:16px;}
footer a{color:var(--slate); text-decoration:none;}
footer a:hover{color:var(--ivory-dim);}

@media (max-width:640px){
  .about{grid-template-columns:1fr;}
  .contact-card{flex-direction:column; align-items:flex-start;}
}

.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in-view{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal, .reveal.in-view, .tick path{transition:none; opacity:1; transform:none; stroke-dashoffset:0;}
}
a:focus-visible, .btn-primary:focus-visible, .btn-ghost:focus-visible{
  outline:2px solid var(--brass); outline-offset:3px;
}
