
/* =========================
   Löwenstein Concept
   Core Styles (Institutional)
   ========================= */

/* ---------- Variables ---------- */
:root{
  --gold:#D4AF37;
  --bg:#0b0e10;
  --bg-soft:#101418;
  --text:#e9edf1;
  --muted:#a9b2ba;
  --line:rgba(233,237,241,0.08);
  --lineGold:rgba(212,175,55,0.22);
}

/* ---------- Reset / Base ---------- */
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }

body{
  background:var(--bg);
  color:var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.6;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
}

/* =========================
   Header / Navigation
   ========================= */

.site-header{
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(11,14,16,0.92);
  backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(0,0,0,0.35);

  height: 56px;
}


.header-inner{
  min-height: 56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.brand{
  display:flex;
  align-items:center;
  min-width:160px;
}

.brand-logo{
  height: 44px;
  width: auto;
  display:block;
  transform: translateY(1px);
}

/* Desktop menu */
.menu{
  display:flex;
  align-items:center;
  gap:22px;
  white-space:nowrap;
  margin-left: auto;
  justify-content: flex-end;
}


.menu a{
  position: relative;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  color: var(--text);
  background: transparent;
}

/* Underline ONLY on hover */
.menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-4px;
  height:1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin:left;
  transition: transform 220ms ease;
}

.menu a:hover{ color: var(--gold); }
.menu a:hover::after{ transform: scaleX(1); }

/* Active page = GOLD ONLY (no underline) */
.menu a.is-active{ color: var(--gold); }

/* Kontakt nur auf Startseite ausblenden */
body.home .menu .nav-contact{
  visibility: hidden;     /* Platz bleibt -> kein Springen */
  pointer-events: none;
}


/* Burger */
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  border:0;
  background:transparent;
  padding:10px;
  color: var(--text);
}

.nav-toggle span{
  display:block;
  height:1px;
  margin:7px 0;
  background:currentColor;
}

/* Mobile Menu */
@media (max-width: 980px){
  .nav-toggle{ display:inline-block; }

  .menu{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:56px;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    padding:18px 18px 22px;
    background:rgba(0,0,0,0.92);
    border-top:1px solid var(--lineGold);
    backdrop-filter:blur(8px);
  }

  body.nav-open .menu{ display:flex; }
}

/* =========================
   Layout / Typography
   ========================= */

main.page{
  padding:48px 24px 80px;
}
/* Kontakt – Textbereich kompakter */
body[data-page="kontakt"] main.page{
  padding:32px 24px 80px;
}


body[data-page="konzept"] main.page{
  padding: 48px 24px 24px;
}


/* Home: Hero should start flush */
body.home main.page{
  padding: 0;
}

h1{
  margin:0 0 12px;
  font-size:42px;
  line-height:1.15;
  letter-spacing:0.2px;
}

p.lead{
  margin:0;
  color:var(--muted);
  max-width:820px;
}
/* Absatzabstand im Textblock reduzieren */
.section p{
  margin: 0 0 10px;
}
.section p:last-child{
  margin-bottom: 0;
}

.section{
  padding: 28px 0 36px 0;
}


/* =========================
   HERO
   ========================= */

.hero{
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: #000;
  min-height: 520px;
}

/* Home hero sizing */
body.home .hero{
  /* Fallback für ältere Browser */
  height: calc(100vh - 56px);

  /* Moderne Viewport-Units (Safari/iOS stabiler) */
  height: calc(100svh - 56px);
  height: calc(100dvh - 56px);

  min-height: 560px;
}

.hero-media{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
 filter: brightness(1.00) contrast(1.04);


}


.hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(
    to right,
    rgba(11,14,16,0.46) 0%,
    rgba(11,14,16,0.32) 42%,
    rgba(11,14,16,0.18) 78%,
    rgba(11,14,16,0.12) 100%
  );
}



/* HERO: Lesbarkeit */
.hero .lead{
  color: rgba(233,237,241,0.86); /* heller als --muted, aber nicht hartweiß */
}

.hero h1,
.hero .lead{
  text-shadow:
    0 2px 18px rgba(0,0,0,0.55),
    0 1px 2px rgba(0,0,0,0.85);
}


.hero-inner{
  position: relative;
  padding: 96px 0 72px;
  color: #fff;
  max-width: 980px;
}


@media (max-width: 900px){
  body.home .hero{
    height: calc(100vh - 56px);
    min-height: 520px;
  }
  .hero-inner{ padding: 78px 0 56px; }
  h1{ font-size: 34px; }
}

/* =========================
   Image Breaks (Base)
   ========================= */
/* Image Break – Vermögensarchitektur (Primary) */
.image-break{
  width: 100%;
  height: 540px;
  margin: 0 auto;
  position: relative;
  background: #0b0e10;
  overflow: hidden;

  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}



/* soften transition from text band into image */
.image-break::before{
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 120px;
  background: linear-gradient(
    to bottom,
    rgba(11,14,16,1) 0%,
    rgba(11,14,16,0.85) 35%,
    rgba(11,14,16,0.35) 70%,
    rgba(11,14,16,0) 100%
  );
  pointer-events: none;
  z-index: 2;
}
/* Konzept – Übergang ultrafein */
body[data-page="konzept"] .image-break::before{
  height: 48px;
  background: linear-gradient(
    to bottom,
    rgba(11,14,16,0.90) 0%,
    rgba(11,14,16,0.35) 60%,
    rgba(11,14,16,0) 100%
  );
  filter: blur(10px);
  transform: translateY(-10px);
}
/* Vermögensarchitektur – souveräner Übergang */
body[data-page="vermoegen"] .image-break::before{
  height: 160px;
  background: linear-gradient(
    to bottom,
    rgba(11,14,16,1) 0%,
    rgba(11,14,16,0.75) 45%,
    rgba(11,14,16,0.25) 75%,
    rgba(11,14,16,0) 100%
  );
}
body[data-page="vermoegen"] .image-break{
  height: 420px;
}


/* Optional: image tag variant (if used somewhere) */
.image-break img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Concept background-image breaks */
.image-break-concept-01{
  background-image: url("../images/konzept-01.jpg");
  background-size: cover;
  background-position: center;
}
body[data-page="konzept"] .image-break-concept-01{
  height: 393px;
}

.image-break-concept-02{
  background-image: url("../images/image-break-concept-02.jpg");
  background-size: cover;
   background-position: center 65%;

  filter: contrast(0.95) brightness(0.92);
}
/* Vermögensarchitektur – Image Break (FULL BLEED) */
.image-break.image-break-vermoegen-01{
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);

  background-image: url("../images/vermoegen-01.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

/* =========================
   Image Break – Kooperationen (FULL BLEED)
   ========================= */
.image-break.image-break-coop-01{
  background-image: url("../images/image-break-cooperation-01.jpg");
  background-position: center 55%;
  background-size: cover;
  background-repeat: no-repeat;
  filter: contrast(0.95) brightness(0.85);
}

body[data-page="kooperationen"] .image-break.image-break-coop-01{
  height: 320px;
}


/* Deaktiviert den dunklen Übergangs-Overlay NUR für Kooperationen */
.image-break.image-break-coop-01::before{
  display: none;
}


/* =========================
   Footer – Institutional Signature
   ========================= */
.site-footer .footer-wrap{
  max-width: 1200px;      /* exakt wie Content-Breite */
  margin: 0 auto;
  padding: 0 24px;        /* exakt wie .container */
  text-align: center;
}

/* Claim – EIN Satz, EINE Zeile (Desktop) */
.footer-text{
  color: var(--muted);
  margin: 8px 0 12px;
  font-size: 14px;
  line-height: 1.45;
  white-space: nowrap;           /* entscheidend */
  text-align: center;
}

/* Links – dichter, ruhiger */
.footer-links{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 0 10px;
}

.footer-links a{
  position: relative;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  color: var(--text);
}

/* Hover-Underline */
.footer-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-4px;
  height:1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin:left;
  transition: transform 220ms ease;
}

.footer-links a:hover{
  color: var(--gold);
}

.footer-links a:hover::after{
  transform: scaleX(1);
}

/* Copyright */
.footer-copy{
  margin: 0;
  font-size: 13px;
  color: var(--muted);
  opacity: 0.85;
}

/* Mobile: Umbruch erlauben */
@media (max-width: 820px){
  .footer-text{
    white-space: normal;
  }
}


.footer-links a:hover{
  color: var(--gold);
  opacity: 1;
}


/* Image Break – Kontakt (FULL WIDTH) */
.image-break.image-break-contact-01{
  width: 100vw;
  height: 360px;          /* diese Zeile kannst du auch weglassen */
  margin-top: 48px;

  position: relative;
  left: 50%;
  transform: translateX(-50%);

  background-image: url("../images/kontakt-01.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  filter: contrast(0.95) brightness(0.9);
}

body[data-page="kontakt"] .image-break.image-break-contact-01{
  height: 440px;
}

/* kein Overlay für Kontakt */
.image-break.image-break-contact-01::before{
  display: none;
}

@media (max-width: 820px){
  .image-break.image-break-contact-01{
    height: 220px;
    margin-top: 32px;
  }
}
/* Image Break – Home 03 */
.image-break-home-03{
  background-image: url("../images/image-break-home-03.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.image-break-home-03::before{
  display:none !important;
}

/* HOME HERO – Balkon immer vollständig sichtbar */
body.home .hero .hero-media{
  object-fit: cover;
  object-position: center 100% !important;
}


@media (max-width: 560px){
  body.home .hero .hero-media{
    object-position: center 88% !important;
  }
}


/* Konzept – finaler, ruhiger Hero-Abschluss */
body:not(.home) .hero{
  position: relative;
  overflow: hidden;
}


/* Verhindert, dass Sections sich überlappen */
main.page{
  position: relative;
  z-index: 1;
}


/* Container darf nicht kollabieren */
.container::after,
main.page::after{
  content:"";
  display:block;
  clear:both;
}

.gold{
  background: linear-gradient(
    180deg,
    #F2E6B3 0%,
    #D6B25E 35%,
    #B8943E 55%,
    #E7D08A 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Hero – Text bewusst leicht nach rechts ausrichten */
.hero-inner{
  margin-left: 6vw;
}
.footer-dot{
  color: #D4AF37;
  font-size: 22px;
  line-height: 1;
  display: inline-block;
  margin: 0 12px;
  transform: translateY(-1px);
  pointer-events: none;
}
/* Header-Container breiter als Content (Navigation weiter rechts) */
.site-header .container{
  max-width: 1400px;
}

/* =========================
   Sticky Footer – final
   ========================= */

body{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main.page{
  flex: 1 0 auto;
}

.site-footer{
  flex-shrink: 0;
  margin-top: 0;
}

/* Konzept – Header absolut deckend */
body[data-page="konzept"] .site-header{
  background:#0b0e10 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* =========================
   Immobilien – Hero Fix (kein schwarzer Balken)
   ========================= */
body[data-page="immobilien"] .hero{
  height: calc(100vh - 56px);
  min-height: unset;
}
body[data-page="immobilien"] .hero::after{
  display: none;
}

/* =========================
   Immobilien – Image-Break (Final Crop)
   ========================= */

/* Desktop: ruhiger, weniger herohaft */
body[data-page="immobilien"] .image-break.image-break-immobilien-01{
  height: 62vh;
  min-height: 520px;
}

/* Fokuspunkt: Skyline-Mitte / Wasser unten – vermeidet Hero-Ähnlichkeit */
body[data-page="immobilien"] .image-break.image-break-immobilien-01 img{
  object-position: center 62%;
  filter: contrast(0.98) brightness(0.92);
}

/* Tablet */
@media (max-width: 980px){
  body[data-page="immobilien"] .image-break.image-break-immobilien-01{
    height: 46vh;
    min-height: 360px;
  }
  body[data-page="immobilien"] .image-break.image-break-immobilien-01 img{
    object-position: center 60%;
  }
}

/* Mobile */
@media (max-width: 560px){
  body[data-page="immobilien"] .image-break.image-break-immobilien-01{
    height: 38vh;
    min-height: 280px;
  }
  body[data-page="immobilien"] .image-break.image-break-immobilien-01 img{
    object-position: center 58%;
  }
}

/* =========================
   Mobile Feinschliff
   ========================= */

@media (max-width: 480px){

  /* Hero kompakter */
  .hero-inner{
    padding: 70px 0 40px;
    margin-left: 0;
  }

  /* H1 kleiner */
  h1{
    font-size: 28px;
    line-height: 1.2;
  }

  /* Image-Break weniger dominant */
  .image-break{
    height: 300px;
  }

  /* Container etwas schmaler */
  .container{
    padding: 0 18px;
  }
}
@media (max-width: 480px){

  body[data-page="vermoegen"] .image-break{
    height: 280px;
  }

}

@media (max-width: 480px){

  body[data-page="vermoegen"] .image-break{
    padding-left: 0;
    padding-right: 0;
  }

}
/* Fix: H1 darf auf sehr kleinen Breiten nicht abgeschnitten werden */
@media (max-width: 380px){
  body.home .hero h1{
    font-size: 30px;
    line-height: 1.15;
    overflow-wrap: anywhere;  /* verhindert Abschneiden */
    word-break: normal;
    hyphens: auto;
  }
}
@media (min-width: 600px) and (max-width: 900px){

  .container{
    padding-left: 48px;
    padding-right: 48px;
  }

}
/* =========================
   Tablet Typografie & Layout
   ========================= */
@media (min-width: 768px) and (max-width: 1100px){

  /* Text größer / lesbarer */
  body{
    font-size: 17px;
  }

  /* Headline sauber skalieren */
  h1{
    font-size: 38px;
    line-height: 1.15;
  }

  /* Lead nicht zu klein */
  p.lead{
    font-size: 16px;
  }

  /* Container etwas breiter wirken lassen */
  .container{
    padding-left: 48px;
    padding-right: 48px;
  }
}
@media (max-width: 480px){
  body[data-page="vermoegen"] .image-break.image-break-vermoegen-01{
    height: 280px;
  }
}
/* Vermögensarchitektur: kein Overlay-Verlauf (verhindert die „Linie“) */
.image-break.image-break-vermoegen-01::before{
  display: none;
}

