/* Schriften inline (entkettet, vorher @import fonts.css) */
/* Selbstgehostete Schriften – DSGVO-konform, keine Zustimmung noetig */
/* Cormorant Garamond 300 italic (latin-ext) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-300-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Cormorant Garamond 300 italic (latin) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-300-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Cormorant Garamond 400 italic (latin-ext) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-400-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Cormorant Garamond 400 italic (latin) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Cormorant Garamond 300 normal (latin-ext) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-300-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Cormorant Garamond 300 normal (latin) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-300-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Cormorant Garamond 400 normal (latin-ext) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Cormorant Garamond 400 normal (latin) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-400-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Great Vibes 400 normal (latin-ext) */
@font-face {
  font-family: 'Great Vibes';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/great-vibes-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Great Vibes 400 normal (latin) */
@font-face {
  font-family: 'Great Vibes';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/great-vibes-400-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 300 normal (latin-ext) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/jost-300-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 300 normal (latin) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/jost-300-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 400 normal (latin-ext) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jost-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 400 normal (latin) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jost-400-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 500 normal (latin-ext) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/jost-500-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 500 normal (latin) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/jost-500-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* site.css – helles, editoriales Theme (Dominik Olesch Photography)
   Gemeinsame Basis für die neu gestalteten Seiten – passend zur Startseite. */

:root{
    --paper:#f7f6f0; --paper2:#edefe6; --ink:#262a24; --ink2:#414539; --muted:#868a7c;
    --line:#e0e3d8; --accent:#7f9070; --accent-d:#5e6c50; --see:#3f6367; --see-d:#2f4d50; --see-l:#5c7d80;
    --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --sans:'Jost', system-ui, -apple-system, sans-serif;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-padding-top:80px; }
body{ background:var(--paper); color:var(--ink); font-family:var(--sans); font-weight:300; line-height:1.75; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body.menu-open{ overflow:hidden; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; line-height:1.12; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.narrow{ max-width:860px; margin:0 auto; padding:0 32px; }
.eyebrow{ font-family:var(--sans); font-size:.7rem; font-weight:500; letter-spacing:.32em; text-transform:uppercase; color:var(--accent-d); }
.rule{ display:inline-block; width:48px; height:1px; background:var(--accent); opacity:.7; vertical-align:middle; }
.reveal{ opacity:0; transform:translateY(28px); transition:opacity 1.1s ease, transform 1.1s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ── Buttons ── */
.btn{ display:inline-block; font-family:var(--sans); font-size:.74rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; padding:15px 36px; border:1px solid var(--ink); color:var(--ink); border-radius:100px; transition:background .3s, color .3s, border-color .3s, transform .3s cubic-bezier(.34,1.4,.5,1), box-shadow .3s; cursor:pointer; }
.btn:hover{ background:var(--ink); color:var(--paper); }
.btn.light{ background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:0 8px 24px rgba(127,144,112,.32); }
.btn.light:hover{ background:var(--accent-d); color:#fff; border-color:var(--accent-d); transform:translateY(-2px); }
.btn.solid, .btn.gold{ background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:0 8px 24px rgba(127,144,112,.32); }
.btn.solid:hover, .btn.gold:hover{ background:var(--accent-d); border-color:var(--accent-d); color:#fff; transform:translateY(-2px); }
/* Button-Feinschliff: Glanz-Sweep, tieferer Hover-Schatten, Press- & Fokus-Zustand */
.btn.light, .btn.solid, .btn.gold{ position:relative; overflow:hidden; }
.btn.light::before, .btn.solid::before, .btn.gold::before{ content:""; position:absolute; top:0; left:-130%; width:55%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent); transform:skewX(-22deg); transition:left .6s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.btn.light:hover::before, .btn.solid:hover::before, .btn.gold:hover::before{ left:135%; }
.btn.light:hover, .btn.solid:hover, .btn.gold:hover{ box-shadow:0 13px 30px rgba(127,144,112,.45); }
.btn.light:active, .btn.solid:active, .btn.gold:active{ transform:translateY(0); box-shadow:0 5px 16px rgba(127,144,112,.3); }
.btn:focus-visible{ outline:2px solid var(--accent-d); outline-offset:3px; }
.tlink{ display:inline-block; font-family:var(--sans); font-size:.74rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--accent); padding-bottom:5px; transition:color .25s,border-color .25s; }
.tlink:hover{ color:var(--accent-d); }

/* ── Header ── */
header.site{ position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:24px 32px; transition:background .35s, padding .35s, box-shadow .35s; }
header.site.solid{ background:rgba(251,248,243,.96); padding:15px 32px; box-shadow:0 1px 0 var(--line); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.brand{ display:flex; align-items:center; }
.brand-logo{ height:40px; width:auto; display:block; filter:brightness(0) invert(1); transition:filter .35s; }
header.site.solid .brand-logo{ filter:none; }
header.site.has-light-hero .brand-logo{ filter:none; }
header.site.has-light-hero.solid .brand-logo{ filter:none; }
@media (max-width:480px){ .brand-logo{ height:32px; } }
nav.main{ display:flex; align-items:center; gap:0; }
nav.main a{ font-family:var(--sans); font-size:.88rem; font-weight:400; letter-spacing:.07em; color:rgba(255,255,255,.92); transition:color .25s; text-shadow:0 1px 6px rgba(0,0,0,.25); }
header.site.solid nav.main a{ color:var(--ink2); text-shadow:none; }
nav.main a:hover{ color:var(--accent); }
nav.main a.current{ color:var(--accent); }
header.site.solid nav.main a.current{ color:var(--accent-d); }
nav.main a.cta{ background:var(--accent); color:#fff; border:1px solid var(--accent); padding:10px 24px; letter-spacing:.16em; text-transform:uppercase; font-size:.68rem; text-shadow:none; box-shadow:0 4px 16px rgba(127,144,112,.35); border-radius:100px; }
header.site.solid nav.main a.cta{ border-color:var(--accent); color:#fff; }
nav.main a.cta:hover{ background:var(--accent-d); border-color:var(--accent-d); color:#fff; transform:translateY(-1px); }
.burger{ display:none; background:none; border:none; cursor:pointer; width:30px; height:22px; position:relative; z-index:120; }
.burger span{ position:absolute; left:0; width:100%; height:1.5px; background:#fff; transition:transform .3s, opacity .3s, background .3s; }
header.site.solid .burger span{ background:var(--ink); }
.burger span:nth-child(1){ top:0; } .burger span:nth-child(2){ top:10px; } .burger span:nth-child(3){ top:20px; }
.lang-mobile{ display:none; align-items:center; gap:6px; margin-left:auto; margin-right:16px; z-index:120; font-family:var(--sans); font-size:.8rem; font-weight:600; letter-spacing:.06em; text-decoration:none; color:rgba(255,255,255,.92); border:1px solid rgba(255,255,255,.6); border-radius:999px; padding:5px 12px; text-shadow:0 1px 6px rgba(0,0,0,.25); transition:color .3s, border-color .3s; }
header.site.solid .lang-mobile, header.site.has-light-hero .lang-mobile{ color:var(--ink2); border-color:var(--line); text-shadow:none; }
body.menu-open .burger span{ background:var(--ink); }
body.menu-open .burger span:nth-child(1){ transform:translateY(10px) rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ transform:translateY(-10px) rotate(-45deg); }
.mobile{ position:fixed; inset:0; z-index:110; background:var(--paper); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:78px 24px 40px; overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
body.menu-open .mobile{ opacity:1; visibility:visible; }
.mobile a{ position:relative; font-family:var(--serif); font-size:clamp(1.3rem,5.2vw,1.6rem); color:var(--ink); letter-spacing:.01em; opacity:0; }
body.menu-open .mobile a{ animation:mobIn .5s cubic-bezier(.22,1,.36,1) both; }
.mobile a:nth-of-type(1){ animation-delay:.05s; } .mobile a:nth-of-type(2){ animation-delay:.1s; } .mobile a:nth-of-type(3){ animation-delay:.15s; } .mobile a:nth-of-type(4){ animation-delay:.2s; } .mobile a:nth-of-type(5){ animation-delay:.25s; } .mobile a:nth-of-type(6){ animation-delay:.3s; } .mobile a:nth-of-type(7){ animation-delay:.35s; } .mobile a:nth-of-type(8){ animation-delay:.4s; }
.mobile a::after{ content:''; position:absolute; left:50%; bottom:-7px; width:0; height:1px; background:var(--accent); transform:translateX(-50%); transition:width .3s ease; }
.mobile a:hover{ color:var(--accent-d); }
.mobile a:hover::after{ width:42px; }
@keyframes mobIn{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.mobile-close{ position:absolute; top:20px; right:22px; width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:var(--paper2); color:var(--ink); font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s, color .25s, transform .35s, border-color .25s; }
.mobile-close:hover{ background:var(--accent); color:#fff; border-color:var(--accent); transform:rotate(90deg); }
body.menu-open .burger{ opacity:0; pointer-events:none; }
@media (max-width:980px){ nav.main{ display:none; } .burger{ display:block; } .lang-mobile{ display:inline-flex; } }

/* ── Interior Page Hero ── */
.phero{ position:relative; min-height:62vh; display:flex; align-items:flex-end; overflow:hidden; }
.phero.tall{ min-height:78vh; }
.phero .bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.phero .veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,15,.46) 0%, rgba(20,18,15,.16) 36%, rgba(20,18,15,.68) 100%); }
.phero-inner{ position:relative; z-index:2; color:#fff; max-width:1180px; margin:0 auto; padding:0 32px 84px; width:100%; }
.phero .eyebrow{ color:rgba(255,255,255,.9); }
.phero h1{ font-size:clamp(2.4rem,6vw,4.6rem); margin:16px 0 14px; max-width:18ch; text-shadow:0 2px 30px rgba(0,0,0,.3); }
.phero h1 em{ font-style:italic; color:#fff; }
.phero h1 em.hw{ font-family:'Great Vibes', cursive; font-style:normal; font-weight:400; color:#e9d6ab; font-size:1.2em; line-height:1.05; display:inline-block; padding:0 .04em; clip-path:inset(-.5em 100% -.4em -.1em); animation:hwWrite 2.2s cubic-bezier(.72,.02,.3,1) .45s forwards; }
@keyframes hwWrite{ from{ clip-path:inset(-.5em 100% -.4em -.1em); } to{ clip-path:inset(-.5em -.15em -.4em -.1em); } }
@media (prefers-reduced-motion:reduce){ .phero h1 em.hw{ clip-path:none; animation:none; } }
.phero p.sub{ font-size:1.05rem; max-width:520px; color:rgba(255,255,255,.92); text-shadow:0 1px 14px rgba(0,0,0,.3); }

/* ── Sections ── */
section{ position:relative; }
.section{ padding:110px 0; }
.section.alt{ background:var(--paper2); }
.section.dark{ background:var(--ink); color:#f4efe7; }
.section.tight{ padding:80px 0; }
.shead{ text-align:center; max-width:720px; margin:0 auto 56px; }
.shead .eyebrow{ display:block; margin-bottom:16px; }
.shead h2{ font-size:clamp(2.1rem,5vw,3.1rem); }
.shead h2 em{ font-style:italic; color:var(--accent-d); }
.shead p{ color:var(--muted); margin-top:14px; }
.section.dark .shead h2{ color:#fff; } .section.dark .shead .eyebrow{ color:var(--accent); } .section.dark .shead p{ color:rgba(244,239,231,.7); }

/* Fließtext / Prosa */
.rich{ max-width:760px; margin:0 auto; }
.rich p{ color:var(--ink2); margin-bottom:18px; font-size:1.02rem; }
.rich h2{ font-size:clamp(1.7rem,3.4vw,2.3rem); margin:42px 0 14px; }
.rich h2 em{ font-style:italic; color:var(--accent-d); }
.rich h3{ font-size:1.4rem; margin:30px 0 10px; }
.rich ul{ list-style:none; margin:8px 0 26px; }
.rich ul li{ position:relative; padding:9px 0 9px 26px; color:var(--ink2); border-bottom:1px solid var(--line); }
.rich ul li::before{ content:''; position:absolute; left:0; top:18px; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.rich strong{ color:var(--ink); font-weight:500; }
.rich a:not(.btn):not(.tlink){ color:var(--accent-d); border-bottom:1px solid var(--line); }

/* Split (Bild + Text) */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split.imgright .pic{ order:2; }
.split .pic{ position:relative; }
.split .pic img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.split .pic.framed::after{ content:''; position:absolute; inset:14px; border:1px solid rgba(127,144,112,.5); pointer-events:none; }
.split .txt h2{ font-size:clamp(2rem,4.4vw,2.8rem); margin:14px 0 18px; }
.split .txt h2 em{ font-style:italic; color:var(--accent-d); }
.split .txt p{ color:var(--ink2); margin-bottom:16px; }
.split .txt .sign{ font-family:var(--serif); font-style:italic; font-size:1.6rem; color:var(--accent-d); margin:6px 0 22px; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; gap:36px; } .split.imgright .pic{ order:0; } .split .pic{ max-width:460px; } }

/* Facts / Zahlen */
.facts{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; max-width:900px; margin:0 auto; }
.facts .f{ text-align:center; }
.facts .f .v{ font-family:var(--serif); font-size:2.4rem; color:var(--accent-d); display:block; line-height:1; }
.facts .f .l{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-top:10px; display:block; }
@media (max-width:680px){ .facts{ grid-template-columns:1fr 1fr; gap:30px 18px; } }

/* Karten-Grid (Leistungen / Links) */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card{ position:relative; overflow:hidden; display:block; aspect-ratio:3/4; }
.card img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.card:hover img{ transform:scale(1.06); }
.card .ov{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,15,.05) 30%, rgba(20,18,15,.62)); display:flex; flex-direction:column; justify-content:flex-end; padding:24px; color:#fff; }
.card .ov h3{ font-size:1.5rem; }
.card .ov span{ font-family:var(--sans); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-top:6px; }
@media (max-width:860px){ .cards{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .cards{ grid-template-columns:1fr; } }

/* Galerie (Masonry-ähnlich) */
.galy{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.galy .g{ overflow:hidden; background:var(--paper2); }
.galy .g img{ width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; transition:transform 1.2s ease; cursor:zoom-in; }
.galy .g:hover img{ transform:scale(1.05); }
.galy .g.wide{ grid-column:span 2; }
.galy .g.wide img{ aspect-ratio:16/10; }
@media (max-width:760px){ .galy{ grid-template-columns:1fr 1fr; gap:10px; } .galy .g.wide img{ aspect-ratio:16/11; } }

/* CTA-Band */
.cta-band{ text-align:center; padding:120px 0; }
.cta-band h2{ font-size:clamp(2.2rem,5.2vw,3.3rem); margin:16px 0 14px; }
.cta-band h2 em{ font-style:italic; color:var(--accent-d); }
.cta-band p{ color:var(--muted); max-width:520px; margin:0 auto 32px; }

/* Teaser-Box (Querverweis) */
.teaser{ max-width:760px; margin:34px auto 0; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px 32px; background:var(--paper2); border:1px solid rgba(127,144,112,.4); border-radius:6px; }
.teaser .tl{ display:inline-block; font-size:.66rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-d); margin-bottom:6px; }
.teaser h3{ font-size:1.5rem; margin:0 0 8px; }
.teaser p{ font-size:.92rem; color:var(--ink2); margin:0; line-height:1.6; }
.teaser .btn{ flex-shrink:0; }
@media (max-width:640px){ .teaser{ flex-direction:column; text-align:center; gap:16px; padding:24px; } }

/* ── Footer ── */
footer.site{ position:relative; background:#20383b; color:rgba(238,240,235,.62); padding:104px 0 30px; }
footer.site::before{ content:''; position:absolute; top:0; left:0; right:0; height:72px; pointer-events:none; opacity:.6; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 72' preserveAspectRatio='none'%3E%3Cpath d='M0 72 L0 30 L130 38 L260 18 L390 40 L520 22 L650 42 L780 20 L910 40 L1040 24 L1170 38 L1200 34 L1200 72 Z' fill='%2331514f'/%3E%3Cpath d='M0 72 L0 50 L160 44 L320 56 L480 42 L640 58 L800 44 L960 58 L1120 46 L1200 52 L1200 72 Z' fill='%23284648'/%3E%3C/svg%3E") top/100% 100% no-repeat; }
footer.site .fgrid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.3fr; gap:46px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.1); }
footer.site .flogo{ height:50px; width:auto; display:block; filter:brightness(0) invert(1); }
footer.site .fblurb{ font-size:.9rem; line-height:1.75; color:rgba(244,239,231,.58); max-width:36ch; margin:20px 0 22px; }
footer.site .fsoc{ display:flex; gap:12px; }
footer.site .fsoc a{ width:40px; height:40px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(244,239,231,.72); transition:background .25s,color .25s,border-color .25s; }
footer.site .fsoc a:hover{ background:var(--accent); color:#20383b; border-color:var(--accent); }
footer.site .fcol h4{ font-family:var(--serif); font-weight:500; color:#fff; font-size:1.12rem; margin-bottom:15px; }
footer.site .fcol > a{ display:block; font-size:.88rem; color:rgba(244,239,231,.62); padding:6px 0; transition:color .25s; }
footer.site .fcol > a:hover{ color:var(--accent); }
footer.site .fcontact a, footer.site .fcontact span{ display:block; font-size:.88rem; color:rgba(244,239,231,.62); padding:6px 0; }
footer.site .fcontact a:hover{ color:var(--accent); }
footer.site .fcontact i{ width:16px; color:var(--accent); margin-right:9px; }
footer.site .fcontact a.fbtn{ display:inline-block; margin-top:16px; background:var(--accent); color:#fff; padding:13px 26px; font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; border-radius:100px; transition:background .25s, transform .25s; }
footer.site .fcontact a.fbtn:hover{ background:var(--accent-d); color:#fff; transform:translateY(-2px); }
footer.site .fbottom{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:24px; font-size:.8rem; color:rgba(244,239,231,.5); }
footer.site .fbottom nav{ display:flex; gap:22px; flex-wrap:wrap; }
footer.site .fbottom nav a{ color:rgba(244,239,231,.6); transition:color .25s; }
footer.site .fbottom nav a:hover{ color:var(--accent); }
@media (max-width:860px){ footer.site .fgrid{ grid-template-columns:1fr 1fr; gap:36px; } footer.site .fbrand-col{ grid-column:1/-1; } }
@media (max-width:520px){ footer.site .fgrid{ grid-template-columns:1fr; } footer.site .fbottom{ justify-content:flex-start; } }

/* ── Lightbox ── */
.lb{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(14,12,10,.94); opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; cursor:zoom-out; }
.lb.open{ opacity:1; visibility:visible; }
.lb img{ max-width:min(94vw,1200px); max-height:90vh; width:auto; height:auto; box-shadow:0 24px 70px rgba(0,0,0,.6); transform:scale(.97); transition:transform .35s cubic-bezier(.22,1,.36,1); }
.lb.open img{ transform:scale(1); }
.lb .x{ position:absolute; top:18px; right:22px; width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.06); color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }


/* ── Speed-Dial Schnellkontakt (Mobil) ───────────────────── */
.fab{ display:none; }
@media (max-width:760px){
  .fab{ display:block; position:fixed; right:16px; bottom:calc(18px + env(safe-area-inset-bottom)); z-index:95; }
  .fab-main{ position:relative; width:56px; height:56px; border-radius:50%; border:none; background:var(--accent); color:#fff; box-shadow:0 8px 22px rgba(127,144,112,.5); cursor:pointer; transition:background .3s; }
  .fab-main i{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:1.4rem; transition:opacity .25s, transform .3s; }
  .fab-main .ic-close{ opacity:0; transform:rotate(-90deg); }
  .fab.open .fab-main{ background:var(--ink); }
  .fab.open .fab-main .ic-open{ opacity:0; transform:rotate(90deg); }
  .fab.open .fab-main .ic-close{ opacity:1; transform:none; }
  .fab-actions{ position:absolute; right:6px; bottom:66px; display:flex; flex-direction:column; align-items:flex-end; gap:13px; }
  .fab-act{ display:inline-flex; align-items:center; gap:10px; opacity:0; transform:translateY(12px) scale(.85); pointer-events:none; transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.4,.5,1); }
  .fab.open .fab-act{ opacity:1; transform:none; pointer-events:auto; }
  .fab.open .fab-act:nth-child(1){ transition-delay:.03s; }
  .fab.open .fab-act:nth-child(2){ transition-delay:.07s; }
  .fab.open .fab-act:nth-child(3){ transition-delay:.11s; }
  .fab-act span{ background:#fff; color:var(--ink); font-family:var(--sans); font-size:.78rem; font-weight:500; letter-spacing:.02em; padding:7px 13px; border-radius:20px; box-shadow:0 4px 12px rgba(34,32,29,.2); white-space:nowrap; }
  .fab-act i{ flex-shrink:0; width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.05rem; color:#fff; box-shadow:0 5px 14px rgba(34,32,29,.28); }
  .fab-act.wa i{ background:#25D366; }
  .fab-act.mail i{ background:var(--accent); }
  .fab-act.call i{ background:var(--ink2); }
  body.menu-open .fab{ display:none; }
}



/* ── Cookie-Consent-Banner + eingebettete Karte ───────────────── */
.cc-banner{ position:fixed; left:0; right:0; bottom:0; z-index:200; transform:translateY(115%); transition:transform .45s cubic-bezier(.4,0,.2,1); background:var(--ink); box-shadow:0 -6px 30px rgba(0,0,0,.32); }
.cc-banner.show{ transform:none; }
.cc-inner{ max-width:1100px; margin:0 auto; padding:15px 22px calc(15px + env(safe-area-inset-bottom)); display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between; }
.cc-text{ font-family:var(--sans); font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.85); max-width:700px; margin:0; }
.cc-text strong{ color:#fff; } .cc-text a{ color:var(--accent); text-decoration:underline; }
.cc-btns{ display:flex; gap:10px; flex-shrink:0; }
.cc-btns button{ font-family:var(--sans); font-size:.74rem; font-weight:500; letter-spacing:.04em; padding:11px 22px; border-radius:100px; cursor:pointer; border:1px solid transparent; transition:background .25s, border-color .25s; }
.cc-decline{ background:transparent; color:rgba(255,255,255,.82); border-color:rgba(255,255,255,.32); }
.cc-decline:hover{ border-color:rgba(255,255,255,.6); }
.cc-accept{ background:var(--accent); color:#fff; }
.cc-accept:hover{ background:var(--accent-d); }
@media (max-width:620px){ .cc-inner{ gap:12px; } .cc-btns{ width:100%; } .cc-btns button{ flex:1; } }
.kmap{ border-radius:8px; overflow:hidden; border:1px solid var(--line); box-shadow:0 14px 40px rgba(34,32,29,.1); }
.kmap iframe{ display:block; width:100%; height:440px; border:0; }
.cc-ph{ background:var(--paper2); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:320px; padding:42px 24px; }
.cc-ph i{ font-size:2.3rem; color:var(--accent); margin-bottom:14px; }
.cc-ph p{ max-width:430px; font-size:.86rem; color:var(--ink2); line-height:1.55; margin-bottom:20px; }
.cc-ph-btn{ font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; padding:13px 28px; border-radius:100px; background:var(--accent); color:#fff; border:none; cursor:pointer; transition:background .25s; }
.cc-ph-btn:hover{ background:var(--accent-d); }
@media (max-width:600px){ .kmap iframe{ height:340px; } .cc-ph{ min-height:240px; } }


/* ── Locations-Dropdown (Nav) ───────────────────────────────── */
.nav-dd{ position:relative; display:inline-flex; align-items:center; }
.nav-dd > a{ display:inline-flex!important; align-items:center; gap:6px; }
.nav-dd-ic{ font-size:.6em; opacity:.65; transition:transform .25s; }
.nav-dd:hover .nav-dd-ic, .nav-dd:focus-within .nav-dd-ic{ transform:rotate(180deg); }
nav.main .nav-ic{ margin-right:8px; color:#e9d6ab; font-size:1.22em; }
header.site.solid nav.main .nav-ic{ color:var(--accent); }
nav.main a.cta .nav-ic{ color:#fff; margin-right:6px; }
nav.main > a:not(.cta), nav.main > .nav-dd{ display:inline-flex; align-items:center; padding:6px 14px; }
nav.main > *:not(:first-child):not(.cta){ border-left:1px solid rgba(255,255,255,.28); }
header.site.solid nav.main > *:not(:first-child):not(.cta){ border-left-color:rgba(34,32,29,.14); }
nav.main a.cta{ margin-left:14px; }
.nav-dd::after{ content:""; position:absolute; top:100%; left:0; right:0; height:16px; }
.nav-dd-menu{ position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); margin-top:8px; min-width:248px; background:var(--paper); border:1px solid var(--line); border-radius:8px; box-shadow:0 18px 44px rgba(34,32,29,.16); padding:8px; opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease; }
.nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav-dd-menu a{ display:block!important; padding:9px 14px; border-radius:5px; font-family:var(--sans); font-size:.78rem; font-weight:400; letter-spacing:.03em; text-transform:none; color:var(--ink2)!important; white-space:nowrap; transition:background .2s, color .2s; }
.nav-dd-menu a:hover{ background:var(--paper2); color:var(--ink)!important; }


/* ── FAQ-Accordion ─────────────────────────────────────────── */
.faq-list{ max-width:780px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 4px; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary h3{ font-family:var(--serif); font-weight:500; font-size:1.22rem; color:var(--ink); margin:0; line-height:1.32; }
.faq-item summary i{ color:var(--accent); font-size:.9rem; flex-shrink:0; transition:transform .3s ease; }
.faq-item[open] summary i{ transform:rotate(45deg); }
.faq-a{ padding:0 4px 24px; }
.faq-a p{ font-family:var(--sans); color:var(--ink2); font-size:.95rem; line-height:1.72; margin:0; max-width:700px; }
@media (max-width:600px){ .faq-item summary h3{ font-size:1.05rem; } }

/* ── PWA: Installations-Banner + Anleitung-Sheet ──────────────── */
.pwa-install-band{ background:var(--paper2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pwa-install-band .wrap{ display:flex; align-items:center; gap:18px; padding:18px 32px; }
.pwa-install-band > .wrap > i{ font-size:1.7rem; color:var(--accent); flex-shrink:0; }
.pwa-install-txt{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.pwa-install-txt strong{ font-family:var(--sans); font-size:.95rem; color:var(--ink); }
.pwa-install-txt span{ font-family:var(--sans); font-size:.82rem; color:var(--ink2); }
.pwa-install-cta{ flex-shrink:0; font-family:var(--sans); font-size:.74rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; padding:13px 24px; border-radius:100px; background:var(--accent); color:#fff; border:none; cursor:pointer; transition:background .25s; }
.pwa-install-cta:hover{ background:var(--accent-d); }
.pwa-standalone .pwa-install-band{ display:none; }
@media (max-width:640px){ .pwa-install-band .wrap{ flex-wrap:wrap; gap:12px; padding:16px 20px; } .pwa-install-cta{ width:100%; } }

.pwa-sheet{ position:fixed; inset:0; z-index:300; background:rgba(20,18,16,.55); display:flex; align-items:flex-end; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s; }
.pwa-sheet.show{ opacity:1; visibility:visible; }
.pwa-sheet-card{ position:relative; width:100%; max-width:440px; background:var(--paper); border-radius:16px 16px 0 0; padding:34px 28px calc(34px + env(safe-area-inset-bottom)); transform:translateY(100%); transition:transform .35s cubic-bezier(.4,0,.2,1); text-align:center; }
.pwa-sheet.show .pwa-sheet-card{ transform:none; }
@media (min-width:560px){ .pwa-sheet{ align-items:center; } .pwa-sheet-card{ border-radius:16px; } }
.pwa-sheet-x{ position:absolute; top:14px; right:16px; background:none; border:none; font-size:1.8rem; line-height:1; color:var(--muted); cursor:pointer; }
.pwa-sheet-ic{ width:64px; height:64px; margin:0 auto 16px; border-radius:50%; background:var(--paper2); display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:1.6rem; }
.pwa-sheet-card h3{ font-family:var(--serif); font-weight:500; font-size:1.6rem; color:var(--ink); margin-bottom:8px; }
.pwa-sheet-card p{ font-family:var(--sans); font-size:.9rem; color:var(--ink2); line-height:1.6; margin-bottom:18px; }
.pwa-sheet-card ol{ text-align:left; max-width:320px; margin:0 auto; padding-left:22px; }
.pwa-sheet-card ol li{ font-family:var(--sans); font-size:.9rem; color:var(--ink2); line-height:1.5; margin-bottom:12px; }
.pwa-sheet-card ol li strong{ color:var(--ink); }

/* ── Tool-Wechsler (Planungstools) ──────────────────────────── */
.tool-switcher{ position:sticky; top:58px; z-index:60; background:var(--paper2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.tool-switcher-inner{ display:flex; gap:8px; max-width:1100px; margin:0 auto; padding:11px 20px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.tool-switcher-inner::-webkit-scrollbar{ display:none; }
.ts-item{ flex-shrink:0; display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:100px; background:var(--paper); border:1px solid var(--line); font-family:var(--sans); font-size:.8rem; color:var(--ink2); white-space:nowrap; text-decoration:none; transition:border-color .2s, color .2s, background .2s; }
.ts-item i{ color:var(--accent); font-size:.82rem; }
.ts-item:hover{ border-color:var(--accent); color:var(--ink); }
.ts-item.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.ts-item.active i{ color:#fff; }
.ts-all{ background:transparent; border-style:dashed; }
@media (max-width:600px){ .tool-switcher-inner{ padding:9px 14px; } .ts-item{ padding:10px 14px; font-size:.78rem; } }
@media print{ .tool-switcher{ display:none !important; } }

/* Tool-Wechsler: Scroll-Hinweis (Verlauf am Rand) */
.tool-switcher::before, .tool-switcher::after{ content:""; position:absolute; top:0; bottom:0; width:38px; pointer-events:none; z-index:2; transition:opacity .2s; }
.tool-switcher::before{ left:0; background:linear-gradient(90deg, var(--paper2), rgba(241,235,225,0)); }
.tool-switcher::after{ right:0; background:linear-gradient(270deg, var(--paper2), rgba(241,235,225,0)); }
.tool-switcher.at-start::before{ opacity:0; }
.tool-switcher.at-end::after{ opacity:0; }


/* ── Bergketten-Motiv: Alpen-Signet + Wasserzeichen ── */
.shead::before{ content:''; display:block; width:104px; height:20px; margin:0 auto 18px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24'%3E%3Cpath d='M2 22 L16 17 L30 13 L44 5 L52 2 L62 10 L74 7 L84 13 L96 8 L108 15 L118 21' fill='none' stroke='%237f9070' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; opacity:.85; }
.cta-band{ position:relative; overflow:hidden; }
.cta-band > .wrap{ position:relative; z-index:1; }
.cta-band::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:clamp(90px,20%,180px); z-index:0; pointer-events:none; opacity:.07; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 180' preserveAspectRatio='none'%3E%3Cpath d='M0 180 L0 120 L110 78 L210 108 L330 62 L450 104 L560 74 L690 112 L820 66 L950 106 L1070 80 L1200 108 L1200 180 Z' fill='%237f9070'/%3E%3Cpath d='M0 180 L0 140 L150 130 L300 150 L450 126 L600 152 L750 130 L900 154 L1050 134 L1200 148 L1200 180 Z' fill='%233f6367'/%3E%3C/svg%3E") bottom/100% 100% no-repeat; }
