
  :root{
    color-scheme:dark;
    --bg:#0c1626;
    --bg-soft:#152238;
    --ink:#ece7de;
    --ink-dim:#9aa5b5;
    --gold:#C9A85C;
    --line:rgba(236,231,222,.14);
    --serif:'Cormorant Garamond',serif;
    --sans:'Inter',sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{-webkit-tap-highlight-color:transparent}
  body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a,button,summary{touch-action:manipulation}
  [id]{scroll-margin-top:5.5rem}
  h1,h2{text-wrap:balance}
  @media (prefers-reduced-motion: reduce){
    .reveal{transition:none;opacity:1;transform:none}
    .tour-hint::after{animation:none}
    .btn-solid:hover{transform:none}
  }
  ::selection{background:var(--gold);color:#0c1626}

  .reveal{opacity:0;transform:translateY(36px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
  .reveal.visible{opacity:1;transform:none}
  .reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

  /* ---------- Nav ---------- */
  nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 4vw;transition:background .4s,backdrop-filter .4s,padding .4s}
  nav.scrolled{background:rgba(12,22,38,.82);backdrop-filter:blur(14px);padding:1rem 4vw;border-bottom:1px solid var(--line)}
  .logo{font-family:var(--serif);font-size:1.35rem;letter-spacing:.08em;text-decoration:none;color:var(--ink)}
  .logo span{color:var(--gold);font-style:italic}
  .nav-links{display:flex;gap:2.4rem;align-items:center}
.nav-links a,.logo,#topbar .logo,.nav-cta,#topbar .nav-cta{white-space:nowrap}
@media(max-width:1240px){.nav-links{gap:1.5rem}.nav-links a{font-size:.74rem;letter-spacing:.12em}.nav-cta{padding:.55rem 1.1rem}}
@media(max-width:1040px){.nav-links{gap:1.1rem}.nav-links a{letter-spacing:.08em}}
  .nav-links a{color:var(--ink-dim);text-decoration:none;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;transition:color .3s}
  .nav-links a:hover{color:var(--ink)}
  .nav-cta{border:1px solid var(--gold);color:var(--gold)!important;padding:.6rem 1.4rem;border-radius:2rem;transition:background .3s,color .3s!important}
  .nav-cta:hover{background:var(--gold);color:#0c1626!important}
  @media(max-width:1000px){.nav-links a:not(.nav-cta){display:none}}
@media(max-width:430px){#nav .logo,#topbar .logo,.logo{font-size:1.08rem}.nav-cta,#topbar .nav-cta{font-size:.7rem;padding:.5rem .9rem;letter-spacing:.09em}}
@media(max-width:380px){#nav .logo,#topbar .logo,.logo{font-size:.92rem}.nav-cta,#topbar .nav-cta{font-size:.62rem;padding:.45rem .7rem;letter-spacing:.05em}}
.contact-info,.contact-info *,footer a,.lp-orte a{overflow-wrap:anywhere}
.sec-label{flex-wrap:wrap}

  /* ---------- Scroll-Rundgang (Engine) ---------- */
  #tour{position:relative;height:440vh}
  .tour-stage{position:sticky;top:0;height:100vh;overflow:hidden}
  .scene{position:absolute;inset:0;opacity:0}
  .scene .bg{position:absolute;inset:-6%;background-size:cover;background-position:center;will-change:transform;transform-origin:center 42%}
  .scene .shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(12,22,38,.12) 0%,rgba(12,22,38,.62) 100%)}
  .scene .word{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;will-change:transform,opacity;width:92vw}
  .scene .word h3{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,10vw,8.5rem);line-height:1.02;letter-spacing:.02em;text-shadow:0 4px 60px rgba(0,0,0,.55)}
  .scene .word h3 em{font-style:italic;color:var(--gold)}
  .scene .word p{font-size:clamp(.8rem,1.1vw,1rem);letter-spacing:.3em;text-transform:uppercase;color:var(--ink);opacity:.85;margin-top:1.2rem;text-shadow:0 2px 30px rgba(0,0,0,.7)}
  .scene .hero-copy{position:absolute;left:4vw;bottom:10vh;max-width:1100px;will-change:transform,opacity}
  .eyebrow{font-weight:400;font-size:.75rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem}
  .display{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.08;max-width:18ch}
  .display em{font-style:italic;color:var(--gold)}
  .hero-sub{margin-top:1.8rem;max-width:52ch;color:var(--ink);opacity:.85;font-size:clamp(.95rem,1.2vw,1.1rem)}
  .hero-actions{display:flex;gap:1.2rem;margin-top:2.6rem;flex-wrap:wrap}
  .btn{display:inline-block;text-decoration:none;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;padding:1rem 2.2rem;border-radius:2.5rem;transition:background .35s,color .35s,border-color .35s,transform .35s;border:none;cursor:pointer;font-family:var(--sans)}
  .btn-solid{background:var(--gold);color:#0c1626;font-weight:500}
  .btn-solid:hover{background:#d9bc74;transform:translateY(-2px)}
  .btn-ghost{border:1px solid rgba(236,231,222,.4);color:var(--ink);background:transparent}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
  .tour-progress{position:absolute;right:2.2rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.9rem;z-index:5}
  .tp-dot{width:6px;height:6px;border-radius:50%;background:rgba(236,231,222,.3);transition:background .4s,box-shadow .4s}
  .tp-dot.on{background:var(--gold);box-shadow:0 0 12px var(--gold)}
  .tour-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:5;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--ink);opacity:.7;display:flex;flex-direction:column;align-items:center;gap:.6rem}
  .tour-hint::after{content:'';width:1px;height:44px;background:linear-gradient(var(--gold),transparent);animation:drip 2.2s ease-in-out infinite}
  @keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

  /* ---------- Sections ---------- */
  section{padding:8rem 4vw}
  .shell{max-width:1200px;margin:0 auto}
  .sec-label{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:2.4rem}
  .sec-label::before{content:'';width:44px;height:1px;background:var(--gold)}
  h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.14;max-width:24ch}
  h2 em{font-style:italic;color:var(--gold)}

  .statement p.big{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.45;max-width:36ch}
  .statement p.big em{color:var(--gold);font-style:italic}
  .statement .cols{display:grid;grid-template-columns:1.4fr 1fr;gap:5rem;align-items:start}
  .statement .side{color:var(--ink-dim);font-size:.98rem;border-left:1px solid var(--line);padding-left:2.2rem}
  @media(max-width:900px){.statement .cols{grid-template-columns:1fr;gap:2.5rem}.statement .side{border-left:none;padding-left:0}}

  .services{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:4rem;border:1px solid var(--line)}
  .card{background:var(--bg-soft);padding:2.6rem 2.2rem;transition:background .4s}
  .card:hover{background:#1e2c49}
  .card .num{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.05rem;margin-bottom:1.4rem}
  .card h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;margin-bottom:.9rem;line-height:1.25}
  .card p{color:var(--ink-dim);font-size:.93rem}
  @media(max-width:900px){.cards{grid-template-columns:1fr}}

  /* Angebot / Wertsteigerung */
  .offer{position:relative;overflow:hidden}
  .offer .inner{max-width:1200px;margin:0 auto;border:1px solid var(--gold);padding:4rem 3.4rem;position:relative;background:linear-gradient(160deg,rgba(201,168,92,.07),transparent 55%)}
  .offer .badge{position:absolute;top:-1px;right:-1px;background:var(--gold);color:#0c1626;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;padding:.7rem 1.6rem}
  .offer h2{margin-bottom:1.4rem}
  .offer p{color:var(--ink-dim);max-width:72ch}
  .offer p strong{color:var(--ink);font-weight:500}
  .steps{display:flex;gap:0;margin-top:2.8rem;flex-wrap:wrap}
  .step{flex:1;min-width:220px;padding:1.6rem 1.8rem;border-left:1px solid var(--line)}
  .step:first-child{border-left:2px solid var(--gold)}
  .step .n{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.6rem}
  .step .t{font-weight:500;margin-top:.4rem}
  .step .s{color:var(--ink-dim);font-size:.88rem;margin-top:.3rem}
  .offer .fine{font-size:.78rem;color:var(--ink-dim);margin-top:2rem}

  /* Warum Dominik */
  .why ul{list-style:none;margin-top:3rem;columns:2;column-gap:4rem}
  .why li{break-inside:avoid;padding:1.1rem 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:1rem;display:flex;gap:1rem;align-items:baseline}
  .why li::before{content:'✓';color:var(--gold);font-family:var(--serif);font-size:1.2rem}
  @media(max-width:820px){.why ul{columns:1}}

  .about .grid{display:grid;grid-template-columns:1fr 1.2fr;gap:5rem;align-items:center;margin-top:3rem}
  .portrait{aspect-ratio:3/4;background:linear-gradient(160deg,#1e2c49,#0c1626);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}
  .portrait .mono{font-family:var(--serif);font-size:5rem;color:var(--gold);font-style:italic}
  .portrait .note{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-dim)}
  .about p{color:var(--ink-dim);margin-bottom:1.2rem;font-size:.98rem}
  .about p strong{color:var(--ink);font-weight:500}
  .about blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.7rem);color:var(--ink);line-height:1.5;border-left:2px solid var(--gold);padding-left:1.6rem;margin:2rem 0 1rem}
  .about cite{display:block;font-family:var(--sans);font-style:normal;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin-top:.8rem}
  .facts{display:flex;gap:3rem;margin-top:2.4rem;flex-wrap:wrap}
  .fact .v{font-family:var(--serif);font-size:2.2rem;color:var(--gold)}
  .fact .k{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}
  @media(max-width:900px){.about .grid{grid-template-columns:1fr;gap:3rem}.portrait{max-width:340px}}

  .faq{background:var(--bg-soft);border-top:1px solid var(--line)}
  .faq-list{margin-top:3.4rem;border-top:1px solid var(--line)}
  details{border-bottom:1px solid var(--line)}
  summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.8rem 0;font-family:var(--serif);font-size:1.35rem;font-weight:500;transition:color .3s}
  summary:hover{color:var(--gold)}
  summary::-webkit-details-marker{display:none}
  summary::after{content:'+';font-family:var(--serif);font-size:1.6rem;color:var(--gold);transition:transform .35s}
  details[open] summary::after{transform:rotate(45deg)}
  details p{color:var(--ink-dim);padding:0 0 1.8rem;max-width:68ch;font-size:.96rem}

  /* Kontakt */
  .contact{position:relative;overflow:hidden}
  .contact-bg{position:absolute;inset:-12% 0;background:url('/assets/img/kontakt-bg.jpg') center/cover;will-change:transform}
  .contact-shade{position:absolute;inset:0;background:rgba(12,22,38,.9)}
  .contact .shell{position:relative;z-index:2}
  .contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;margin-top:3rem}
  .contact-info p{color:var(--ink-dim);margin-bottom:1.6rem;max-width:44ch}
  .c-line{display:flex;gap:1rem;align-items:baseline;margin-bottom:1rem;color:var(--ink)}
  .c-line .k{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);min-width:86px}
  .c-line a{color:var(--ink);text-decoration:none}
  .c-line a:hover{color:var(--gold)}
  form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
  input,select,textarea{width:100%;background:rgba(236,231,222,.05);border:1px solid var(--line);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:.95rem;padding:1rem 1.2rem;margin-bottom:1.2rem;outline:none;transition:border .3s}
  input:focus,select:focus,textarea:focus{border-color:var(--gold)}
  textarea{min-height:120px;resize:vertical}
  select{appearance:none}
  .consent{display:flex;gap:.9rem;align-items:flex-start;margin:-.2rem 0 1.4rem;font-size:.82rem;line-height:1.6;color:var(--ink-dim);cursor:pointer}
  .consent input{width:18px;height:18px;flex:0 0 18px;margin:.15rem 0 0;padding:0;accent-color:var(--gold);cursor:pointer}
  .consent a{color:var(--gold)}
  .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
  #cformInfo{margin:1.2rem 0 0;font-size:.92rem;line-height:1.6}
  #cformInfo.form-ok{color:var(--gold)}
  #cformInfo.form-fehler{color:#e08b7a}
  #cform button[disabled]{opacity:.6;cursor:progress}
  @media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:3rem}form .row{grid-template-columns:1fr}}

  footer{border-top:1px solid var(--line);padding:4rem 4vw 3rem;color:var(--ink-dim);font-size:.85rem}
  .foot-grid{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
  footer a{color:var(--ink-dim);text-decoration:none}
  footer a:hover{color:var(--gold)}
  .foot-links{display:flex;gap:1.8rem}


/* ---------- LP-OVERRIDES (Ortsseiten) ---------- */
#topbar .nav-cta{background:transparent;border:1px solid var(--gold);color:var(--gold)}
#topbar .nav-cta:hover{background:var(--gold);color:#0c1626}
main a,footer a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(200,169,110,.35)}
main a:hover,footer a:hover{border-bottom-color:var(--gold)}
main .sec-label a,footer .sec-label a{border-bottom:none}
main .btn{border-bottom:none}
.lp-orte a{border-bottom:none;color:var(--ink-dim)}
.lp-orte a:hover{color:var(--gold)}
main .hero-actions .btn.btn-solid{color:#0c1626}



/* LP-OVERRIDES */
#topbar .nav-cta{background:transparent;border:1px solid var(--gold);color:var(--gold)}
#topbar .nav-cta:hover{background:var(--gold);color:#0c1626}
main a,footer a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(200,169,110,.35)}
main a:hover,footer a:hover{border-bottom-color:var(--gold)}
main .sec-label a,footer .sec-label a{border-bottom:none}
main .btn{border-bottom:none}
.lp-orte a{border-bottom:none;color:var(--ink-dim)}
.lp-orte a:hover{color:var(--gold)}
main .hero-actions .btn.btn-solid{color:#0c1626}
.lp-orte ul{list-style:none;padding:0;margin:1rem 0 2rem;display:flex;flex-wrap:wrap;gap:1rem 2.2rem}
.lp-orte .sec-label{margin-bottom:1.2rem}
