/* =====================================================================
   WN Immobilien GmbH — wn-immobilien.at
   Corporate Design: Petrol #0E3A40 · Akzent #2C7A82 · Cremeweiß #F5F2EA
   Schrift: EB Garamond (Headlines) + Inter (Text) — self-hosted
   ===================================================================== */

/* ---------- Fonts (self-hosted, DSGVO-konform) ---------- */
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/eb-garamond-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/eb-garamond-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/eb-garamond-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/eb-garamond-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/inter-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/inter-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/inter-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/inter-latin-700-normal.woff2') format('woff2');}

/* ---------- Tokens ---------- */
:root{
  --petrol:#0E3A40; --petrol-700:#0b2e33; --petrol-900:#072025;
  --accent:#2C7A82; --accent-600:#256b72;
  --cream:#F5F2EA; --cream-200:#efe9da; --cream-300:#e7dfcb;
  --ink:#1c2b2d; --muted:#5d6c6d; --white:#ffffff;
  --line:#e4ddcd; --line-soft:#ece6d8;
  --frei:#3c8c6e; --frei-bg:#e9f2ec;
  --vermietet:#8b9596; --vermietet-bg:#eef0ef;
  --reserviert:#b07d2b; --reserviert-bg:#f6efdf;
  --ff-serif:'EB Garamond',Georgia,'Times New Roman',serif;
  --ff-sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --container:1400px; --radius:6px; --radius-lg:10px;
  --shadow-sm:0 1px 2px rgba(14,58,64,.06),0 6px 18px rgba(14,58,64,.05);
  --shadow-md:0 6px 24px rgba(14,58,64,.10),0 2px 6px rgba(14,58,64,.06);
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:76px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--ff-sans);font-size:17px;line-height:1.65;color:var(--ink);
  background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent-600);text-decoration:none;transition:color .2s var(--ease);}
a:hover{color:var(--petrol);}
h1,h2,h3,h4{font-family:var(--ff-serif);font-weight:500;color:var(--petrol);line-height:1.14;
  margin:0 0 .5em;letter-spacing:.1px;}
h1{font-size:clamp(2.5rem,5.4vw,4.1rem);font-weight:500;}
h2{font-size:clamp(1.95rem,3.4vw,2.85rem);}
h3{font-size:clamp(1.3rem,2vw,1.6rem);}
p{margin:0 0 1.1em;}
ul{margin:0 0 1.1em;padding-left:1.2em;}
strong{font-weight:600;}
::selection{background:var(--accent);color:#fff;}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:3px;}

/* ---------- Layout helpers ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:24px;}
.section{padding:clamp(4rem,8vw,7.5rem) 0;}
.section--cream{background:var(--cream);}
.section--petrol{background:var(--petrol);color:#e8eeee;}
.section--tight{padding:clamp(3rem,5vw,4.5rem) 0;}
.narrow{max-width:760px;}
.center{text-align:center;}
.eyebrow{font-family:var(--ff-sans);font-size:.74rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);margin:0 0 1rem;display:block;}
.section--petrol .eyebrow{color:#7fb4ba;}
.lead{font-size:1.18rem;color:var(--muted);line-height:1.7;}
.section--petrol .lead{color:#bcd0d1;}
.section-head{max-width:720px;margin-bottom:clamp(2.2rem,4vw,3.4rem);}
.section-head.center{margin-inline:auto;}
.divider{width:54px;height:2px;background:var(--accent);border:0;margin:0 0 1.6rem;}
.center .divider{margin-inline:auto;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--ff-sans);font-size:.95rem;
  font-weight:600;letter-spacing:.01em;padding:.85em 1.7em;border-radius:var(--radius);
  border:1.5px solid transparent;cursor:pointer;transition:all .22s var(--ease);white-space:nowrap;}
.btn--primary{background:var(--petrol);color:#fff;border-color:var(--petrol);}
.btn--primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(14,58,64,.22);}
.btn--ghost{background:transparent;color:var(--petrol);border-color:var(--cream-300);}
.btn--ghost:hover{border-color:var(--petrol);background:var(--petrol);color:#fff;transform:translateY(-2px);}
.btn--light{background:#fff;color:var(--petrol);border-color:#fff;}
.btn--light:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.btn--outline-light:hover{background:#fff;color:var(--petrol);border-color:#fff;}
.btn--sm{padding:.6em 1.15em;font-size:.85rem;}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;}

/* ---------- Header / Nav ---------- */
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:100;
  display:flex;align-items:center;transition:background .3s var(--ease),box-shadow .3s var(--ease),height .3s var(--ease);}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.site-header.is-solid{background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(8px);
  box-shadow:0 1px 0 var(--line-soft),0 6px 20px rgba(14,58,64,.05);}
.brand{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;}
.brand img{height:36px;width:auto;display:block;transition:opacity .3s var(--ease);}
.brand .logo-petrol{opacity:0;}
.brand .logo-weiss{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:1;}
.site-header.is-solid .brand .logo-petrol{opacity:1;}
.site-header.is-solid .brand .logo-weiss{opacity:0;}
.nav{display:flex;align-items:center;gap:2.1rem;}
.nav a{font-family:var(--ff-sans);font-size:.93rem;font-weight:500;color:var(--petrol);letter-spacing:.01em;
  position:relative;padding:.3em 0;}
.nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);
  transition:width .25s var(--ease);}
.nav a:hover::after,.nav a.active::after{width:100%;}
.site-header:not(.is-solid) .nav a{color:#fff;text-shadow:0 1px 8px rgba(7,32,37,.35);}
.site-header:not(.is-solid) .nav .btn{color:#fff;border-color:rgba(255,255,255,.6);text-shadow:none;}
.site-header:not(.is-solid) .nav .btn:hover{background:#fff;color:var(--petrol);}
.nav-toggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;
  flex-direction:column;justify-content:center;gap:5px;padding:0;}
.nav-toggle span{display:block;height:2px;width:26px;background:var(--petrol);margin-inline:auto;
  transition:transform .3s var(--ease),opacity .2s var(--ease);}
.site-header:not(.is-solid) .nav-toggle span{background:#fff;}

/* mobile nav panel */
@media (max-width:900px){
  .nav-toggle{display:flex;}
  .nav{position:fixed;inset:0 0 0 auto;width:min(82vw,340px);background:var(--petrol);
    flex-direction:column;align-items:flex-start;justify-content:center;gap:1.6rem;padding:2rem 2.2rem;
    transform:translateX(100%);transition:transform .35s var(--ease);box-shadow:-12px 0 40px rgba(7,32,37,.3);}
  .nav a{color:#fff!important;font-size:1.25rem;font-family:var(--ff-serif);text-shadow:none!important;}
  .nav a::after{background:#7fb4ba;}
  .nav .btn{margin-top:.6rem;color:#fff!important;border-color:rgba(255,255,255,.6)!important;}
  body.nav-open .nav{transform:translateX(0);}
  body.nav-open .nav-toggle{position:fixed;right:18px;top:16px;z-index:120;}
  body.nav-open .nav-toggle span{background:#fff;}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(7,32,37,.45);z-index:110;}
  body.nav-open .nav{z-index:115;}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;color:#fff;overflow:hidden;}
.hero__bg{position:absolute;inset:0;z-index:-2;}
.hero__bg img{width:100%;height:100%;object-fit:cover;}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,32,37,.55) 0%,rgba(7,32,37,.30) 35%,rgba(7,32,37,.62) 100%),
            linear-gradient(90deg,rgba(7,32,37,.55),rgba(7,32,37,.05));}
.hero .container{padding-top:var(--header-h);}
.hero__inner{max-width:760px;}
.hero h1{color:#fff;margin-bottom:.35em;text-shadow:0 2px 30px rgba(7,32,37,.35);}
.hero__descriptor{font-family:var(--ff-sans);font-size:.8rem;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:#cfe0e1;margin-bottom:1.5rem;}
.hero__sub{font-size:1.22rem;line-height:1.6;color:#e9f0f0;max-width:560px;margin-bottom:2rem;
  text-shadow:0 1px 12px rgba(7,32,37,.3);}
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);color:#cfe0e1;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;
  align-items:center;gap:.5rem;opacity:.85;}
.hero__scroll span{width:1px;height:34px;background:linear-gradient(#cfe0e1,transparent);animation:scrolldot 2s infinite;}
@keyframes scrolldot{0%{opacity:0;transform:scaleY(.3);transform-origin:top;}50%{opacity:1;}100%{opacity:0;transform:scaleY(1);}}

/* page hero (sub pages) */
.page-hero{position:relative;padding:calc(var(--header-h) + 4.5rem) 0 3.6rem;background:var(--petrol);color:#fff;overflow:hidden;}
.page-hero::before{content:"";position:absolute;inset:0;opacity:.16;
  background:radial-gradient(900px 380px at 85% -10%,var(--accent),transparent 60%);}
.page-hero .container{position:relative;}
.page-hero h1{color:#fff;margin-bottom:.2em;}
.page-hero p{color:#bcd0d1;max-width:620px;margin:0;}
.page-hero .eyebrow{color:#7fb4ba;}
.breadcrumb{font-size:.82rem;color:#8fb0b3;margin-bottom:1.4rem;}
.breadcrumb a{color:#bcd0d1;} .breadcrumb a:hover{color:#fff;}

/* ---------- Stats strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.stat{text-align:center;padding:.5rem;}
.stat__num{font-family:var(--ff-serif);font-size:clamp(1.9rem,4.5vw,2.6rem);color:var(--petrol);line-height:1.05;}
.section--petrol .stat__num{color:#fff;}
.stat__label{font-size:.86rem;color:var(--muted);letter-spacing:.02em;margin-top:.5rem;}
.section--petrol .stat__label{color:#9fbabc;}

/* ---------- Leistungen ---------- */
.cards{display:grid;gap:1.5rem;}
.cards--3{grid-template-columns:repeat(3,1fr);}
.cards--2{grid-template-columns:repeat(2,1fr);}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.2rem 2rem;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);height:100%;}
.section--cream .card{background:#fff;}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--cream-300);}
.card__icon{width:54px;height:54px;border-radius:50%;background:var(--cream);display:flex;align-items:center;
  justify-content:center;margin-bottom:1.3rem;color:var(--accent);}
.card__icon svg{width:26px;height:26px;}
.card h3{margin-bottom:.4em;}
.card p{color:var(--muted);margin-bottom:0;font-size:1rem;}

/* ---------- Split feature ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.split__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;
  aspect-ratio:4/3;object-fit:cover;}
.split--reverse .split__media{order:2;}
.feature-list{list-style:none;padding:0;margin:1.4rem 0 0;}
.feature-list li{position:relative;padding-left:2rem;margin-bottom:.85rem;color:var(--ink);}
.feature-list li::before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 4px rgba(44,122,130,.15);}

/* ---------- Objekt cards ---------- */
.objekt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem;}
.objekt-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.objekt-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.objekt-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;}
.objekt-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.objekt-card:hover .objekt-card__media img{transform:scale(1.05);}
.objekt-card__badge{position:absolute;left:14px;top:14px;display:flex;gap:.4rem;flex-wrap:wrap;}
.objekt-card__body{padding:1.6rem 1.7rem 1.8rem;display:flex;flex-direction:column;flex:1;}
.objekt-card__loc{font-size:.84rem;color:var(--accent);font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;margin-bottom:.5rem;}
.objekt-card h3{margin-bottom:.35em;}
.objekt-card__meta{display:flex;flex-wrap:wrap;gap:.4rem 1.3rem;color:var(--muted);font-size:.92rem;
  margin:.4rem 0 1.2rem;}
.objekt-card__meta span{display:inline-flex;align-items:center;gap:.4rem;}
.objekt-card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-top:1.1rem;border-top:1px solid var(--line-soft);}
.units-avail{font-size:.9rem;color:var(--ink);}
.units-avail strong{color:var(--frei);}

/* ---------- Status pills ---------- */
.pill{display:inline-flex;align-items:center;gap:.45em;font-family:var(--ff-sans);font-size:.72rem;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.4em .8em;border-radius:50px;
  backdrop-filter:blur(2px);}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.pill--frei{background:var(--frei-bg);color:var(--frei);}
.pill--vermietet{background:var(--vermietet-bg);color:#6f7a7b;}
.pill--reserviert{background:var(--reserviert-bg);color:var(--reserviert);}
.objekt-card__badge .pill{box-shadow:0 2px 10px rgba(7,32,37,.18);}

/* ---------- Filter bar ---------- */
.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:2.2rem;}
.filterbar .label{font-size:.85rem;color:var(--muted);margin-right:.3rem;letter-spacing:.02em;}
.chip{font-family:var(--ff-sans);font-size:.86rem;font-weight:500;padding:.5em 1.1em;border-radius:50px;
  border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:all .2s var(--ease);}
.chip:hover{border-color:var(--accent);color:var(--accent);}
.chip.active{background:var(--petrol);border-color:var(--petrol);color:#fff;}
.count-note{margin-left:auto;font-size:.86rem;color:var(--muted);}

/* ---------- Objekt detail ---------- */
.detail-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:1fr;gap:10px;
  border-radius:var(--radius-lg);overflow:hidden;}
.detail-gallery a{position:relative;display:block;overflow:hidden;background:var(--cream-200);}
.detail-gallery a:first-child{grid-row:span 2;grid-column:1;}
.detail-gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform .5s var(--ease);}
.detail-gallery a:first-child img{aspect-ratio:auto;height:100%;}
.detail-gallery a:hover img{transform:scale(1.05);}
.detail-gallery .more{position:absolute;inset:0;background:rgba(7,32,37,.55);color:#fff;display:flex;
  align-items:center;justify-content:center;font-family:var(--ff-serif);font-size:1.5rem;}
.detail-gallery a:nth-child(n+6){display:none;}
.eckdaten{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;background:#fff;}
.eckdaten div{display:flex;justify-content:space-between;gap:1rem;padding:.95rem 1.3rem;
  border-bottom:1px solid var(--line-soft);}
.eckdaten div:nth-last-child(-n+2){border-bottom:0;}
.eckdaten dt{color:var(--muted);font-size:.92rem;}
.eckdaten dd{margin:0;font-weight:600;color:var(--petrol);text-align:right;font-size:.95rem;}

/* unit list */
.unit{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  margin-bottom:1.3rem;transition:box-shadow .3s var(--ease);}
.unit:hover{box-shadow:var(--shadow-sm);}
.unit--frei{border-color:#bfe0cf;}
.unit__head{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.25rem 1.5rem;cursor:pointer;}
.unit__title{font-family:var(--ff-serif);font-size:1.3rem;color:var(--petrol);margin:0;flex:1 1 auto;}
.unit__quick{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;color:var(--muted);font-size:.9rem;width:100%;}
.unit__quick span{display:inline-flex;align-items:center;gap:.4rem;}
.unit__body{padding:0 1.5rem;max-height:0;overflow:hidden;transition:max-height .4s var(--ease),padding .4s var(--ease);}
.unit.open .unit__body{padding:.4rem 1.5rem 1.6rem;max-height:1400px;}
.unit__toggle{border:0;background:var(--cream);color:var(--petrol);width:34px;height:34px;border-radius:50%;
  cursor:pointer;font-size:1.1rem;line-height:1;flex:0 0 auto;transition:transform .3s var(--ease),background .2s;}
.unit.open .unit__toggle{transform:rotate(45deg);background:var(--accent);color:#fff;}
.unit__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.8rem;align-items:start;}
.unit__photos{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.unit__photos a{overflow:hidden;border-radius:6px;}
.unit__photos img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s var(--ease);}
.unit__photos a:hover img{transform:scale(1.06);}
.specs{list-style:none;padding:0;margin:0 0 1.2rem;}
.specs li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line-soft);font-size:.95rem;}
.specs li span:first-child{color:var(--muted);}
.specs li span:last-child{font-weight:600;color:var(--petrol);}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem;}
.member{display:flex;gap:1.4rem;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.6rem 1.8rem;}
.member__avatar{width:84px;height:84px;border-radius:50%;flex:0 0 auto;background:var(--petrol);
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--ff-serif);font-size:1.9rem;}
.member h3{margin:0 0 .15em;font-size:1.35rem;}
.member__role{color:var(--accent);font-weight:600;font-size:.9rem;margin-bottom:.5rem;}
.member__contact{font-size:.9rem;color:var(--muted);}
.member__contact a{display:block;}

/* ---------- Kontakt ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;}
.form-field{margin-bottom:1.2rem;}
.form-field label{display:block;font-size:.86rem;font-weight:600;color:var(--petrol);margin-bottom:.45rem;letter-spacing:.01em;}
.form-field input,.form-field select,.form-field textarea{width:100%;font-family:var(--ff-sans);font-size:1rem;
  padding:.85em 1em;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(44,122,130,.12);}
.form-field textarea{min-height:140px;resize:vertical;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.form-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--muted);margin-bottom:1.3rem;}
.form-check input{width:18px;height:18px;margin-top:3px;flex:0 0 auto;accent-color:var(--accent);}
.form-note{font-size:.84rem;color:var(--muted);}
.contact-info{background:var(--petrol);color:#dce7e7;border-radius:var(--radius-lg);padding:2.2rem;}
.contact-info h3{color:#fff;}
.contact-info a{color:#cfe0e1;} .contact-info a:hover{color:#fff;}
.contact-item{display:flex;gap:.9rem;margin-bottom:1.3rem;}
.contact-item svg{width:20px;height:20px;flex:0 0 auto;color:#7fb4ba;margin-top:3px;}
.contact-item div strong{display:block;color:#fff;font-size:.95rem;margin-bottom:.1rem;}
.form-success{background:var(--frei-bg);border:1px solid #bfe0cf;color:#236047;padding:1rem 1.2rem;
  border-radius:var(--radius);margin-bottom:1.2rem;display:none;}
.form-success.show{display:block;}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,var(--petrol),var(--petrol-700));color:#fff;
  border-radius:var(--radius-lg);padding:clamp(2.4rem,4vw,3.6rem);display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;gap:1.8rem;position:relative;overflow:hidden;}
.cta-band::before{content:"";position:absolute;inset:0;opacity:.2;
  background:radial-gradient(600px 300px at 90% 120%,var(--accent),transparent 60%);}
.cta-band>*{position:relative;}
.cta-band h2{color:#fff;margin-bottom:.2em;}
.cta-band p{color:#bcd0d1;margin:0;max-width:520px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--petrol-900);color:#9fb6b8;font-size:.92rem;padding:4rem 0 1.8rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem;margin-bottom:3rem;}

.site-footer img.foot-logo{height:160px;max-width:100%;margin-bottom:1.3rem;}
@media(max-width:600px){.site-footer img.foot-logo{height:110px;}}
.site-footer h4{color:#fff;font-family:var(--ff-sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;margin:0 0 1.1rem;}
.site-footer a{color:#9fb6b8;}.site-footer a:hover{color:#fff;}
.footer-links{list-style:none;padding:0;margin:0;}
.footer-links li{margin-bottom:.6rem;}
.foot-descriptor{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:#6f8b8d;margin-top:1rem;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.6rem;display:flex;flex-wrap:wrap;
  gap:.6rem 1.5rem;justify-content:space-between;align-items:center;font-size:.84rem;color:#6f8b8d;}
.footer-bottom a{color:#9fb6b8;}
.footer-fn{max-width:560px;font-size:.8rem;line-height:1.6;color:#7c9698;}

/* ---------- Legal pages ---------- */
.prose{max-width:820px;}
.prose h2{font-size:1.7rem;margin-top:2.4rem;}
.prose h3{font-size:1.2rem;margin-top:1.8rem;}
.prose p,.prose li{color:#37474a;}
.prose .placeholder{background:#fff6e0;border:1px dashed var(--reserviert);color:#8a6418;
  padding:.1em .45em;border-radius:4px;font-size:.92em;font-weight:600;}
.prose dl{background:var(--cream);border-radius:var(--radius-lg);padding:1.4rem 1.6rem;}
.prose dt{font-weight:600;color:var(--petrol);margin-top:.8rem;}
.prose dt:first-child{margin-top:0;}
.prose dd{margin:0 0 .2rem;}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(7,32,37,.92);z-index:200;display:none;
  align-items:center;justify-content:center;padding:4vw;}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox__close,.lightbox__nav{position:absolute;background:rgba(255,255,255,.12);border:0;color:#fff;
  cursor:pointer;width:52px;height:52px;border-radius:50%;font-size:1.5rem;display:flex;align-items:center;
  justify-content:center;transition:background .2s;}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.28);}
.lightbox__close{top:24px;right:24px;}
.lightbox__nav{top:50%;transform:translateY(-50%);}
.lightbox__nav.prev{left:24px;}.lightbox__nav.next{right:24px;}
.lightbox__cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#cfe0e1;font-size:.9rem;}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.08s;}
.reveal[data-delay="2"]{transition-delay:.16s;}
.reveal[data-delay="3"]{transition-delay:.24s;}
/* Fallback: ist JavaScript deaktiviert, Inhalte trotzdem sichtbar */
@media (scripting:none){.reveal{opacity:1!important;transform:none!important;}}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  .hero__scroll span{animation:none;}
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem;}
  .stats{grid-template-columns:repeat(2,1fr);gap:2rem 1rem;}
}
@media (max-width:820px){
  .cards--3,.objekt-grid,.team{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;gap:2rem;}
  .split--reverse .split__media{order:0;}
  .contact-grid{grid-template-columns:1fr;}
  .unit__grid{grid-template-columns:1fr;}
  .eckdaten{grid-template-columns:1fr;}
  .eckdaten div:nth-last-child(2){border-bottom:1px solid var(--line-soft);}
}
@media (max-width:560px){
  body{font-size:16px;}
  .form-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .cta-band{flex-direction:column;align-items:flex-start;}
  .detail-gallery{grid-template-columns:1fr 1fr;}
  .detail-gallery a:first-child{grid-column:span 2;grid-row:auto;}
  .member{flex-direction:column;text-align:center;}
}

/* ============ Erweiterung: Technik · Verfügbarkeit · Lage · Grundrisse ============ */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.tech-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2rem 1.8rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.tech-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.tech-card__icon{width:52px;height:52px;border-radius:14px;background:var(--cream);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;}
.tech-card__icon svg{width:26px;height:26px;}
.tech-card h3{font-size:1.25rem;margin-bottom:.35em;}
.tech-card p{color:var(--muted);margin:0;font-size:.97rem;}

.warteliste{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem;background:var(--petrol);color:#dce7e7;border-radius:var(--radius-lg);padding:1.6rem 1.9rem;margin-bottom:2rem;}
.warteliste strong{color:#fff;}
.frei-hint{background:var(--frei-bg);border:1px solid #bfe0cf;color:#236047;border-radius:var(--radius);padding:.9rem 1.2rem;margin-bottom:1.6rem;font-size:1rem;}
.unit-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;}
.unit-mini{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem 1.5rem 1.6rem;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.unit-mini--frei{border-color:#bfe0cf;box-shadow:0 0 0 3px rgba(60,140,110,.10);}
.unit-mini--vermietet{opacity:.94;}
.unit-mini:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.unit-mini__top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.9rem;}
.unit-mini__etage{font-size:.8rem;color:var(--muted);}
.unit-mini h3{font-size:1.3rem;margin-bottom:.5rem;}
.unit-mini__meta{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem;margin-bottom:.4rem;}
.unit-mini__meta .ic{color:var(--accent);}
.unit-mini__aussen{color:var(--muted);font-size:.9rem;margin:0 0 1.1rem;}
.unit-mini .btn{margin-top:auto;align-self:flex-start;}
.ic{vertical-align:-3px;}

.lage-map{position:relative;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:2.2rem;box-shadow:var(--shadow-sm);}
.lage-terrain{width:100%;height:auto;display:block;aspect-ratio:1200/340;}
.lage-map__btn{position:absolute;right:18px;bottom:18px;}
.dist-row{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin:0 0 2.6rem;}
.dist{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem .7rem;text-align:center;}
.dist__v{display:block;font-family:var(--ff-serif);font-size:1.25rem;color:var(--petrol);line-height:1.1;}
.dist__z{display:block;font-size:.8rem;color:var(--muted);margin-top:.25rem;}
.infra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.infra-col{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.6rem 1.7rem;}
.infra-col__h{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;}
.infra-col__h svg{width:24px;height:24px;color:var(--accent);flex:0 0 auto;}
.infra-col__h h4{font-family:var(--ff-serif);font-weight:500;font-size:1.25rem;color:var(--petrol);margin:0;}
.infra-col ul{list-style:none;padding:0;margin:0;}
.infra-col li{position:relative;padding-left:1.3rem;margin-bottom:.6rem;color:var(--ink);font-size:.95rem;}
.infra-col li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--accent);}

.unit__media{display:flex;flex-direction:column;gap:10px;}
.unit-plan{display:block;position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--cream);}
.unit-plan img{width:100%;height:auto;display:block;}
.unit-plan span{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.93);color:var(--petrol);font-size:.8rem;font-weight:600;padding:.35em .7em;border-radius:50px;}
.unit-plan span svg{width:15px;height:15px;}

@media (max-width:980px){
  .tech-grid{grid-template-columns:repeat(2,1fr);}
  .unit-mini-grid{grid-template-columns:repeat(2,1fr);}
  .dist-row{grid-template-columns:repeat(3,1fr);}
  .infra-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .tech-grid{grid-template-columns:1fr;}
  .unit-mini-grid{grid-template-columns:1fr;}
  .dist-row{grid-template-columns:repeat(2,1fr);}
  .warteliste{flex-direction:column;align-items:flex-start;}
  .lage-map__btn{position:static;display:inline-flex;margin:12px;}
}

/* ============ Erweiterung 2: Logo prominent · Impressionen · Grundrisse · Architekt ============ */
:root{ --header-h:90px; }
.brand img{height:48px;}
@media (max-width:600px){ :root{ --header-h:72px; } .brand img{height:38px;} }

.impressionen{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:12px;}
.impressionen a{overflow:hidden;border-radius:10px;display:block;background:var(--cream-200);position:relative;}
.impressionen a img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.impressionen a:hover img{transform:scale(1.06);}
.impressionen a.big{grid-column:span 2;grid-row:span 2;}
.impressionen a.wide{grid-column:span 2;}
@media (max-width:820px){ .impressionen{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;} .impressionen a.big{grid-column:span 2;grid-row:span 2;} .impressionen a.wide{grid-column:span 2;} }
@media (max-width:520px){ .impressionen{grid-template-columns:1fr 1fr;grid-auto-rows:140px;} .impressionen a.big{grid-row:span 2;} }

.grundriss-feature{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.grundriss-feature figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.grundriss-feature img{width:100%;height:auto;display:block;cursor:zoom-in;transition:transform .4s var(--ease);}
.grundriss-feature figure:hover img{transform:scale(1.02);}
.grundriss-feature figcaption{padding:.9rem 1.3rem;font-family:var(--ff-serif);color:var(--petrol);font-size:1.15rem;border-top:1px solid var(--line);display:flex;align-items:center;gap:.5rem;}
@media (max-width:700px){ .grundriss-feature{grid-template-columns:1fr;} }

.partner{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.partner-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);padding:2rem;}
.partner-card .eyebrow{margin-bottom:.5rem;color:#7fb4ba;}
.partner-card h3{font-size:1.45rem;margin-bottom:.3em;color:#fff;}
.partner-card p{color:#bcd0d1;margin-bottom:1rem;}
.partner-card a.tlink{color:#cfe0e1;font-weight:600;}
.partner-card a.tlink:hover{color:#fff;}
@media (max-width:700px){ .partner{grid-template-columns:1fr;} }

/* Google-Maps-Einbettung (Lage) */
.lage-embed{margin-top:2.4rem;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);}
.lage-embed iframe{width:100%;height:440px;border:0;display:block;}
@media (max-width:560px){ .lage-embed iframe{height:320px;} }

/* ===== Logo nochmals deutlich größer (gut lesbar) ===== */
:root{ --header-h:98px; }
.brand img{height:56px;}
.site-header.is-solid{height:84px;}
@media (max-width:600px){ :root{ --header-h:76px; } .brand img{height:40px;} .site-header.is-solid{height:68px;} }

/* ===== Natur & Wandern (Saminatal) ===== */
.natur-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;}
.natur-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);padding:1.7rem;}
.natur-card svg{width:30px;height:30px;color:#7fb4ba;margin-bottom:.9rem;}
.natur-card h3{color:#fff;font-size:1.2rem;margin-bottom:.35em;}
.natur-card p{color:#bcd0d1;font-size:.94rem;margin:0;}
.natur-note{color:#9fbabc;font-size:.9rem;margin-top:1.6rem;}
@media (max-width:900px){ .natur-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .natur-grid{grid-template-columns:1fr;} }

/* ===== LOGO GROSS (final, spezifischer Selektor – überschreibt alles davor) ===== */
:root{ --header-h:116px; }
.site-header{ height:var(--header-h); }
.site-header .brand img{ height:72px; }
.site-header.is-solid{ height:92px; }
.site-header.is-solid .brand img{ height:60px; }
@media (max-width:600px){
  :root{ --header-h:80px; }
  .site-header .brand img{ height:48px; }
  .site-header.is-solid{ height:70px; }
  .site-header.is-solid .brand img{ height:44px; }
}

/* === Hero: zentriertes Logo-Emblem in CC-Farben ============== */
.home .site-header:not(.is-solid) .brand{visibility:hidden;}
.hero__inner{max-width:860px;margin-inline:auto;text-align:center;}
.hero__sub{margin-inline:auto;}
.hero .btn-row{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;}
.hero__logo{display:inline-block;background:rgba(245,242,234,.95);
  border-radius:18px;padding:clamp(16px,2.6vw,28px) clamp(26px,4.4vw,48px);
  margin:0 auto 1.7rem;box-shadow:0 18px 48px rgba(7,32,37,.30);}
.hero__logo img{display:block;width:clamp(210px,30vw,350px);height:auto;}
@media (max-width:600px){ .hero__logo img{width:clamp(180px,64vw,260px);} .hero__logo{border-radius:14px;} }

/* === Navigation stärker + Hero-Logo größer ================== */
.nav{gap:1.7rem;}
.nav a{font-size:1.04rem;font-weight:600;letter-spacing:.015em;}
.site-header:not(.is-solid) .nav a{text-shadow:0 1px 10px rgba(7,32,37,.55);}
.hero__logo img{width:clamp(265px,42vw,480px);}
@media (max-width:600px){ .hero__logo img{width:clamp(205px,70vw,300px);} }

/* === Vollflächiges Ausblick-Band ============================ */
.fullband{position:relative;background-size:cover;background-position:center 60%;
  min-height:clamp(360px,52vh,560px);display:flex;align-items:center;color:#fff;
  background-attachment:scroll;}
.fullband::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(7,32,37,.66),rgba(7,32,37,.20));}
.fullband__inner{position:relative;z-index:1;max-width:640px;}
.fullband .eyebrow{color:#cfe0e1;}
.fullband h2{color:#fff;margin:.2em 0 .45em;text-shadow:0 2px 24px rgba(7,32,37,.4);}
.fullband p{color:#eef4f4;font-size:1.12rem;line-height:1.6;text-shadow:0 1px 12px rgba(7,32,37,.35);}
@media (max-width:700px){ .fullband{background-attachment:scroll;min-height:300px;} }

/* === Landschaftsbilder: Lage-Feature, Bergband, Bildnachweis === */
.lage-foto{margin:0 0 2rem;border-radius:14px;overflow:hidden;box-shadow:0 16px 40px rgba(7,32,37,.14);}
.lage-foto img{width:100%;height:auto;display:block;}
.fullband--berg{background-position:center 42%;}
.footer-credits{margin:1.3rem 0 0;font-size:.76rem;color:rgba(255,255,255,.5);line-height:1.5;}

/* === Wohnungsspiegel (Gebäude-Grafik) ======================= */
.wspiegel{max-width:1240px;margin:.6rem auto 2.8rem;}
.wspiegel svg{width:100%;height:auto;display:block;}
.ws-unit{transition:opacity .2s var(--ease);}
.ws-unit:hover{opacity:.9;}

/* === Bänder als echte <img> (zuverlässig) + Saminatal-Foto === */
.fullband{overflow:hidden;}
.fullband__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;z-index:0;}
.fullband::after{z-index:1;}
.fullband__inner{z-index:2;}
.sam-photo{margin:0 auto 2.4rem;max-width:1000px;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px rgba(0,0,0,.30);}
.sam-photo img{width:100%;height:auto;display:block;}

/* === Plan/Ansicht in Split: vollständig zeigen (kein Crop) === */
.split__media img.plan-img{aspect-ratio:auto;object-fit:contain;height:auto;background:#fff;padding:clamp(.5rem,1.2vw,1rem);}

/* === Saminatal Swipe-Galerie ================================ */
.sam-gallery{position:relative;max-width:1240px;margin:0 auto 2.4rem;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px rgba(0,0,0,.30);}
.sam-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.sam-track::-webkit-scrollbar{display:none;}
.sam-slide{flex:0 0 100%;scroll-snap-align:center;position:relative;margin:0;}
.sam-slide img{width:100%;height:clamp(300px,42vw,480px);object-fit:cover;display:block;}
.sam-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.6rem .9rem;background:linear-gradient(transparent,rgba(7,32,37,.65));color:#fff;font-size:.95rem;}
.sam-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.88);color:#0E3A40;font-size:1.7rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.28);}
.sam-arrow--prev{left:14px;} .sam-arrow--next{right:14px;}
.sam-arrow:hover{background:#fff;}
.sam-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:8px;}
.sam-dots button{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.55);cursor:pointer;padding:0;}
.sam-dots button.is-active{background:#fff;}
.sam-gallery[data-single] .sam-arrow,.sam-gallery[data-single] .sam-dots{display:none;}

/* === Geschichte: Bild links neben Text ====================== */
.gesch-row{display:grid;grid-template-columns:minmax(200px,290px) 1fr;gap:clamp(1.6rem,4vw,3rem);align-items:start;max-width:1180px;margin:0 auto;}
.gesch-img{margin:0;}
.gesch-img img{width:100%;border-radius:10px;box-shadow:0 12px 30px rgba(7,32,37,.18);display:block;}
.gesch-img figcaption{margin-top:.55rem;font-size:.76rem;color:#6b7572;line-height:1.45;}
@media(max-width:760px){.gesch-row{grid-template-columns:1fr;}.gesch-img{max-width:300px;}}

.footer-credits a{color:#9fc3c6;text-decoration:underline;}

/* === Klick-zum-Laden-Karte (Map-Consent) ==================== */
.map-consent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;min-height:340px;padding:2rem;background:#eaeee9;border-radius:var(--radius-lg);color:var(--muted);}
.map-consent__txt{max-width:440px;margin:0;font-size:.95rem;line-height:1.55;}
.map-consent__note{margin:0;font-size:.8rem;}

/* === Scroll-Hinweis auf Handy ausblenden (Überlappung) ====== */
@media (max-width:768px){ .hero__scroll{display:none;} }
