/* Design 3005 – wie 3004, aber Rot statt Grün */
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans.woff2") format("woff2");font-weight:100 1000;font-display:swap}
:root{--brand:#cd0039;--red:#cd0039;--red-dark:#a40030;--red-soft:#fbe6ec;--ink:#14161a;--ink-2:#1d2025;--paper:#f5f3ef;--white:#fffdfb;--r:22px;--mute:#5d6068;--sans:"DM Sans","Inter Tight",system-ui,sans-serif}
h1,h2,h3{letter-spacing:-.035em}
.status.err{background:#fdecef;color:#a40030}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#cd0039;background:#fdecef}
.btn:hover{box-shadow:0 12px 28px rgba(15,26,46,.25)}
.eyebrow::before{background:var(--brand)}
.timeline li::before{background:var(--brand)}
.tagbar i,.pillar .no,.checks li::before{color:var(--brand)}
.person .meta{border-top-color:var(--brand)}
.hero h1 .serif,.cta .serif{color:inherit;padding:0;background:linear-gradient(transparent 82%,var(--brand) 82%,var(--brand) 93%,transparent 93%)}
.hero{color:#fff;background:var(--ink);min-height:100svh}
.hero::before{display:none}
.hero .wrap{position:static}
.hero .wrap>div:first-child{position:relative;z-index:2}
.hero-visual{position:absolute;inset:0;width:auto;justify-self:auto;z-index:0}
.hero-visual::before,.badge{display:none}
.hero-visual .frame{position:absolute;inset:0;aspect-ratio:auto;height:100%;border-radius:0;box-shadow:none}
.hero-visual .frame img{object-position:50% 30%}
.hero-visual .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,16,19,.9) 0%,rgba(15,16,19,.58) 48%,rgba(15,16,19,.12) 100%),linear-gradient(0deg,rgba(15,16,19,.55),transparent 38%)}
.hero .eyebrow{color:#fff}
.hero .lead{color:rgba(255,255,255,.88)}
.hero h1{font-size:clamp(2.4rem,7.2vw,6.8rem)}
.hero .btn:not(.ghost){background:var(--paper);color:var(--ink)}
.hero .btn:not(.ghost):hover{background:#fff;color:var(--ink)}
.hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6)}
.hero .btn.ghost:hover{background:#fff;color:var(--ink)}
.scroll-hint{background:linear-gradient(#fff,transparent);z-index:2}
body:not(:has(.hero)) .site-header::before{opacity:1}
body:has(.hero) .site-header:not(.scrolled) .brand img{filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}
body:has(.hero) .site-header:not(.scrolled) .burger span{background:#fff}
.site-header.scrolled::before{background:rgba(255,253,251,.92)}
.tagbar{background:var(--white);color:var(--ink);border-bottom:1px solid var(--line)}
.card,.person,.svc-row,.news,.form,.photo{border-radius:var(--r)}
.card{min-height:560px}
.card::before{background:linear-gradient(to top,rgba(15,16,19,.92) 8%,rgba(15,16,19,.3) 55%,rgba(15,16,19,.05))}
.card:hover::before{background:linear-gradient(to top,rgba(164,0,48,.96) 8%,rgba(164,0,48,.45) 75%,rgba(164,0,48,.05))}
.sec.dark{background:var(--ink)}
.pillars{border-top:0;gap:1.25rem}
.pillar,.pillar+.pillar{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:2rem}
.cta{background:linear-gradient(120deg,#a40030,#cd0039)}
.cta::before,.cta::after{border-color:rgba(255,255,255,.12)}
.cta .btn.light{background:var(--paper);color:var(--ink)}
.cta .btn.light:hover{background:var(--brand);color:#fff}
.site-footer{background:var(--ink)}
@media (min-width:1021px){
  body:has(.hero) .site-header:not(.scrolled) .menu>li>a:not(.btn){color:#fff}
  body:has(.hero) .site-header:not(.scrolled) .menu>li>a:not(.btn)::after{background:#fff}
}
@media (max-width:1020px){
  .hero-visual .frame::after{background:linear-gradient(180deg,rgba(15,16,19,.55),rgba(15,16,19,.8))}
  .hero{align-items:flex-end;padding-bottom:64px}
}
.hero-visual .frame img{object-position:50% 92%}
/* Leise Überschrift: eine Zeile, kleiner, ohne Unterstreichung */
.hero h1{font-size:clamp(1.9rem,4vw,3.6rem);line-height:1.15;font-weight:600;letter-spacing:-.03em;margin:1.1rem 0 1.5rem}
.hero h1 span{display:block;margin:0;animation:none}
.hero h1 .serif,.cta .serif{background:none;color:inherit}
.hero .lead{font-size:1.15rem}
/* Rote Buttons */
.btn,.hero .btn:not(.ghost),.cta .btn.light{background:var(--brand);color:#fff}
.btn:hover,.hero .btn:not(.ghost):hover,.cta .btn.light:hover{background:#a40030;color:#fff;box-shadow:0 10px 26px rgba(205,0,57,.3)}
.btn.ghost,.hero .btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(15,16,19,.4)}
.hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6)}
.btn.ghost:hover{background:var(--ink);color:#fff;box-shadow:none}
.hero .btn.ghost:hover{background:#fff;color:var(--ink)}
.btn.ghost-light{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6)}
.btn.ghost-light:hover{background:#fff;color:var(--ink)}
.menu .btn{background:var(--brand);color:#fff}
/* Rotes Kontaktband: weisser Button, Menü-Button rot, kein Grün */
.cta{background:linear-gradient(120deg,#a40030,#cd0039)}
.cta .btn.light,.cta .btn:not(.ghost-light){background:#fff;color:#cd0039}
.cta .btn.light:hover,.cta .btn:not(.ghost-light):hover{background:#14161a;color:#fff}
.hero-visual .frame img{object-position:50% 92%}
/* Keine roten Wörter in Überschriften (z. B. "Ein", "Festungsfelsens", "sprechen") */
.red,.serif,.hero h1 .serif,.page-hero h1 .serif,.page-hero h1 .red,.sec-head h2 .red,.split h2 .red,.cta h2 .serif{color:inherit;background:none}

/* ===== Überschrift in EINER Zeile (Desktop); auf kleinen Bildschirmen darf sie umbrechen ===== */
.hero h1 span{display:inline;margin:0 .28em 0 0;animation:none}
.hero h1 span:last-child{margin-right:0}
.hero h1{max-width:none;font-size:clamp(1.4rem,2.4vw,2.4rem);white-space:nowrap;text-wrap:nowrap}
@media (max-width:900px){.hero h1{white-space:normal;text-wrap:balance;font-size:clamp(1.55rem,6.4vw,2.3rem)}}

/* Dunkles Gestrüpp am linken Bildrand ausblenden: Foto heranzoomen, rechte Seite (Haus) bleibt */
@media (min-width:1021px){
  .hero-visual .frame img{transform:scale(1.5);transform-origin:100% 74%;object-position:50% 74%}
}
@media (max-width:1020px){
  .hero-visual .frame img{object-position:92% 50%}
}
