/* ==== Lokal gehostete Google Fonts (kein Google-Server-Kontakt) ==== */
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/inter-v19-latin-400.woff2') format('woff2');
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/inter-v19-latin-500.woff2') format('woff2');
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/inter-v19-latin-600.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/poppins-v23-latin-500.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/poppins-v23-latin-600.woff2') format('woff2');
}
@font-face{
  font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/poppins-v23-latin-700.woff2') format('woff2');
}
@font-face{
  font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;
  src:url('fonts/caveat-v18-latin-600.woff2') format('woff2');
}
@font-face{
  font-family:'Caveat';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/caveat-v18-latin-700.woff2') format('woff2');
}

:root{
  --navy:#0B1E3D;
  --navy-dark:#071426;
  --navy-light:#152B4E;
  --copper:#8A6A32;
  --copper-light:#C7A968;
  --white:#ffffff;
  --off-white:#F7F3EC;
  --grey:#6b7280;
  --grey-light:#e6e1d6;
  --shadow: 0 10px 30px rgba(11,30,61,0.12);
  --radius: 14px;
  font-family: 'Inter', -apple-system, "Segoe UI", Arial, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Visually hides content while keeping it available to screen readers –
   used for form <label>s that are redundant on-screen (placeholder covers it
   visually) but required for an accessible name per WCAG 1.3.1 / 4.1.2. */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
/* Visible keyboard focus indicator for all interactive elements (WCAG 2.4.7 / 2.4.13). */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:2.5px solid var(--copper-light);outline-offset:2px;border-radius:4px;
}
/* "Skip to content" link (WCAG 2.4.1) – hidden until it receives keyboard focus,
   then jumps to the top of the visible viewport so keyboard/screen-reader users
   can bypass the repeated header navigation. */
.skip-link{
  position:absolute;top:-60px;left:16px;z-index:2000;
  background:var(--navy-dark);color:var(--white);padding:12px 20px;border-radius:8px;
  font-weight:600;font-size:14px;transition:top .2s ease;
}
.skip-link:focus{top:16px;}
body{color:var(--navy-dark);background:var(--white);line-height:1.6;overflow-x:hidden;}
h1,h2,h3,h4{
  font-family:'Poppins', 'Inter', sans-serif;font-weight:600;line-height:1.2;color:var(--navy-dark);
  overflow-wrap:break-word;hyphens:auto;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
section{padding:96px 0;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;letter-spacing:2px;font-weight:600;text-transform:uppercase;
  color:var(--copper);margin-bottom:16px;
}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--copper);display:inline-block;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 30px;border-radius:999px;font-weight:600;font-size:15px;
  cursor:pointer;border:2px solid transparent;transition:all .25s ease;white-space:nowrap;
}
.btn-primary{background:var(--copper);color:var(--white);}
.btn-primary:hover{background:var(--copper-light);transform:translateY(-2px);box-shadow:0 12px 24px rgba(166,129,60,0.35);}
.btn-outline{border-color:rgba(255,255,255,0.75);color:var(--white);background:transparent;}
.btn-outline:hover{background:rgba(255,255,255,0.12);transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:var(--white);}
.btn-navy:hover{background:var(--navy-light);transform:translateY(-2px);box-shadow:0 12px 24px rgba(11,30,61,0.3);}
.btn-navy-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
.btn-navy-outline:hover{background:rgba(11,30,61,0.06);transform:translateY(-2px);}
.btn-sm{padding:11px 22px;font-size:13.5px;}

/* HEADER */
header{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  padding:20px 0;transition:all .35s ease;
}
header.scrolled, header.solid{
  background:rgba(255,255,255,0.96);backdrop-filter:blur(8px);
  box-shadow:0 4px 24px rgba(11,30,61,0.08);padding:12px 0;
}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:44px;width:auto;transition:height .3s ease;}
header.scrolled .brand img, header.solid .brand img{height:38px;}
.brand-text{color:var(--white);transition:color .3s ease;}
header.scrolled .brand-text, header.solid .brand-text{color:var(--navy-dark);}
.brand-text strong{display:block;font-family:'Poppins',sans-serif;font-size:17px;font-weight:600;}
.brand-text span{display:block;font-size:11px;letter-spacing:1.5px;opacity:.85;}
nav ul{display:flex;gap:30px;list-style:none;}
nav a{
  font-size:14.5px;font-weight:500;color:var(--white);position:relative;padding:4px 0;
  transition:color .3s ease;
}
header.scrolled nav a, header.solid nav a{color:var(--navy-dark);}
nav a::after{
  content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--copper);
  transition:width .25s ease;
}
nav a:hover::after, nav a.active::after{width:100%;}
nav a.active{color:var(--copper-light);}
header.scrolled nav a.active, header.solid nav a.active{color:var(--copper);}
.nav-cta{display:none;}
.nav-contact{display:none;}
.burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;
  background:none;border:none;z-index:1001;padding:12px;margin:-12px;
  -webkit-tap-highlight-color:transparent;
}
.burger span{width:26px;height:2px;background:var(--white);transition:.3s;}
header.scrolled .burger span, header.solid .burger span{background:var(--navy-dark);}

/* HERO (Startseite) */
.hero{
  position:relative;height:100vh;height:100svh;min-height:640px;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  overflow:hidden;color:var(--white);
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media video{
  position:absolute;top:50%;left:50%;min-width:100%;min-height:100%;width:auto;height:auto;
  transform:translate(-50%,-50%);object-fit:cover;background:var(--navy-dark);
}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(120deg, rgba(7,20,38,0.88) 0%, rgba(11,30,61,0.72) 45%, rgba(11,30,61,0.55) 100%);
}
.hero-content{position:relative;z-index:2;max-width:680px;width:100%;padding:0 24px;}
.hero-content h1{font-size:clamp(2.4rem, 5vw, 3.6rem);color:var(--white);margin-bottom:20px;}
.hero-content h1 .accent{color:var(--copper-light);}
.hero-content p{font-size:18px;color:rgba(255,255,255,0.88);max-width:520px;margin-bottom:0;}
.hero-lower{position:relative;z-index:2;max-width:680px;width:100%;padding:0 24px;margin-top:36px;}
.hero-buttons{display:flex;gap:16px;flex-wrap:wrap;}
.scroll-cue{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,0.75);font-size:12px;
  letter-spacing:1px;
}
.scroll-cue .dot{width:1px;height:36px;background:rgba(255,255,255,0.5);position:relative;overflow:hidden;}
@media (max-width:640px){
  /* The "Florian Schober" eyebrow directly repeats the logo text right above it in the
     header on narrow screens where there's no room between them – hide it here only. */
  .hero-content .eyebrow{display:none;}
  /* Three stacked buttons push into the scroll indicator's fixed position at the
     bottom of the hero on short/narrow screens – the scroll cue is dropped on mobile,
     where swiping to scroll is already the natural gesture anyway. */
  .scroll-cue{display:none;}
}
@media (max-width:760px){
  /* Mobile hero: white headline + subline stay overlaid on the video, centered in its
     box – and the 3 CTAs live in their own solid band strictly BELOW the video, never
     overlapping it. The video box uses aspect-ratio (matching the mobile video file's
     own 540:960 canvas) instead of a fixed viewport-height fraction, so object-fit:cover
     never has to crop anything – the box's aspect exactly equals the video's aspect,
     guaranteeing every clip in the sequence is shown in full, edge to edge. */
  .hero{height:auto;min-height:0;display:block;overflow:visible;padding:0;}
  .hero-media{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:544/960;overflow:hidden;}
  .hero-overlay{
    background:linear-gradient(180deg, rgba(7,20,38,0.55) 0%, rgba(7,20,38,0.68) 45%, rgba(7,20,38,0.55) 100%);
  }
  .hero-content{
    position:absolute;top:0;left:0;right:0;z-index:2;
    width:100%;height:auto;aspect-ratio:544/960;
    display:flex;flex-direction:column;justify-content:center;
    max-width:none;padding:0 24px;
  }
  .hero-lower{
    max-width:none;width:auto;background:var(--navy-dark);
    padding:28px 24px 40px;margin-top:0;
  }
  .hero-buttons{flex-direction:column;gap:12px;}
  .hero-buttons .btn{width:100%;}
  .scroll-cue{display:none;}
}
.scroll-cue .dot::after{
  content:"";position:absolute;top:0;left:0;width:100%;height:12px;background:var(--copper-light);
  animation:scrollDown 1.8s infinite;
}
@keyframes scrollDown{0%{top:-12px;}100%{top:36px;}}

/* HERO SPLIT VARIANT (Startseite mit aktuellem Angebot statt Video) */
.hero-split{
  background:linear-gradient(120deg, var(--navy-dark) 0%, var(--navy) 60%, var(--navy-light) 100%);
}
.hero-split-wrap{
  position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:100%;
}
.hero-split .hero-content{max-width:none;}
.hero-listing{
  display:block;border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--white);
  position:relative;min-height:560px;height:100%;transition:transform .4s ease,box-shadow .4s ease;
}
.hero-listing:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(0,0,0,0.35);}
.hero-listing:hover .hero-listing-media video{transform:scale(1.04);}
.hero-listing-media{position:absolute;inset:0;width:100%;height:100%;background:var(--navy-dark);}
.hero-listing-media video{
  position:absolute;top:0;left:0;inset:0;width:100%;height:100%;min-width:0;min-height:0;
  object-fit:cover;transform:none;transition:transform .6s ease;
}
.hero-listing-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(7,20,38,0.15) 0%, rgba(7,20,38,0.05) 35%, rgba(7,20,38,0.9) 100%);
}
.hero-listing-tag{
  position:absolute;top:18px;left:18px;z-index:2;background:rgba(255,255,255,0.94);color:var(--navy-dark);
  font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:7px 14px;border-radius:30px;
}
.hero-listing-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px 28px 30px;}
.hero-listing-body h3{color:var(--white);font-size:22px;margin-bottom:8px;}
.hero-listing-body p{color:rgba(255,255,255,0.85);font-size:15px;margin-bottom:16px;}
.hero-listing-link{
  display:inline-flex;align-items:center;gap:8px;color:var(--copper-light);font-weight:600;font-size:14.5px;
}
@media (max-width:900px){
  .hero-split-wrap{grid-template-columns:1fr;gap:40px;}
  .hero-split{padding-top:140px;padding-bottom:60px;height:auto;min-height:0;}
  .hero-listing{min-height:420px;}
}

/* PAGE HERO (Unterseiten) */
.page-hero{
  position:relative;padding:180px 0 80px;color:var(--white);
  background:linear-gradient(135deg,var(--navy) 0%, var(--navy-dark) 100%);
  overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;top:-60px;right:-60px;width:340px;height:340px;border-radius:50%;
  background:rgba(166,129,60,0.15);
}
.page-hero .container{position:relative;z-index:1;}
.breadcrumb{font-size:13px;color:rgba(255,255,255,0.6);margin-bottom:18px;}
.breadcrumb a{color:rgba(255,255,255,0.75);}
.breadcrumb a:hover{color:var(--copper-light);}
.page-hero h1{color:var(--white);font-size:clamp(1.6rem,7vw,2.9rem);margin-bottom:14px;}
.page-hero p{color:rgba(255,255,255,0.82);max-width:620px;font-size:16.5px;}

/* STATS */
.stats{
  background:var(--navy-dark);color:var(--white);padding:40px 0;
}
.stats .container{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;text-align:center;
}
.stat{flex:1;min-width:160px;}
.stat strong{display:block;font-family:'Poppins',sans-serif;font-size:28px;color:var(--copper-light);}
.stat span{font-size:13.5px;color:rgba(255,255,255,0.75);}

/* PULL QUOTE (Startseite) */
.pull-quote{background:var(--off-white);padding:130px 0;text-align:center;position:relative;overflow:hidden;}
.pull-quote::before{
  content:"";position:absolute;top:-140px;left:50%;transform:translateX(-50%);width:520px;height:520px;
  border-radius:50%;background:radial-gradient(circle, rgba(166,129,60,0.08) 0%, rgba(166,129,60,0) 70%);
}
.pull-quote .container{max-width:760px;position:relative;z-index:1;}
.quote-mark{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:110px;line-height:1;color:var(--copper);
  opacity:.4;margin-bottom:-18px;
}
.quote-text{
  font-family:'Poppins',sans-serif;font-weight:500;font-size:clamp(1.4rem,3vw,2.05rem);
  color:var(--navy-dark);line-height:1.5;margin-bottom:40px;letter-spacing:-0.01em;
}
.quote-sign{display:inline-flex;flex-direction:column;align-items:center;gap:0;}
.signature{
  font-family:'Caveat',cursive;font-size:46px;font-weight:600;color:var(--navy);line-height:1;
  display:inline-block;position:relative;padding-bottom:10px;
}
.signature-underline{
  display:block;height:2px;width:0;background:var(--copper);margin-top:4px;
  transition:width .7s cubic-bezier(.16,.8,.24,1) .25s;
}
.reveal.is-visible .signature-underline{width:100%;}
.quote-role{font-size:13.5px;color:var(--grey);letter-spacing:.03em;margin-top:6px;display:block;}

/* ABOUT TEASER / GENERIC TEXT+IMAGE */
.about{background:var(--white);}

/* ALTERNATING NAVY / WHITE SECTION RHYTHM */
.bg-navy,.split.bg-navy,section.bg-navy{background:var(--navy);}
.bg-navy .eyebrow{color:var(--copper-light);}
.bg-navy h2,.bg-navy h3,.bg-navy .split-head h2{color:var(--white);}
.bg-navy .split-head p,.bg-navy>.container>p{color:rgba(255,255,255,0.78);}
.bg-navy .btn-navy-outline{border-color:rgba(255,255,255,0.7);color:var(--white);}
.bg-navy .btn-navy-outline:hover{background:rgba(255,255,255,0.1);}
.about .container{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;}
.about-photo{position:relative;}
.about-photo::before{
  content:"";position:absolute;top:-20px;left:-20px;width:100%;height:100%;
  background:var(--copper);border-radius:var(--radius);z-index:0;opacity:.9;
}
.about-photo img{
  position:relative;z-index:1;border-radius:var(--radius);width:100%;
  box-shadow:var(--shadow);
}
.badges{display:flex;gap:10px;margin:22px 0 26px;flex-wrap:wrap;}
.badge{
  font-size:12.5px;font-weight:600;color:var(--navy);background:rgba(11,30,61,0.08);
  padding:7px 14px;border-radius:999px;
}
.about h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:18px;}
.about p{color:var(--grey);font-size:16px;margin-bottom:16px;max-width:540px;}

/* ABOUT TEASER (Startseite) – editorial portrait: Geister-Ziffer + schwebende Stat-Karte */
.about-photo--bold{position:relative;}
.about-photo-ghost{
  position:absolute;top:-44px;right:-14px;z-index:2;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(90px,11vw,150px);
  line-height:1;color:transparent;-webkit-text-stroke:2px rgba(11,30,61,0.16);
  pointer-events:none;user-select:none;
}
.about-photo--bold .about-photo-frame{
  position:relative;z-index:1;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);aspect-ratio:1180/1600;
}
.about-photo--bold .about-photo-frame img{
  position:static;width:100%;height:100%;object-fit:cover;object-position:center 14%;border-radius:0;
  box-shadow:none;transform:scale(1.05);will-change:transform;
}
.about-photo-badge{
  position:absolute;left:-26px;bottom:34px;z-index:3;
  background:var(--navy);color:var(--white);border-radius:var(--radius);
  padding:18px 22px;box-shadow:var(--shadow);max-width:210px;
  display:flex;align-items:baseline;gap:12px;
}
.about-photo-badge strong{font-family:'Poppins',sans-serif;font-weight:700;font-size:2rem;color:var(--copper-light);white-space:nowrap;}
.about-photo-badge span{font-size:12px;line-height:1.35;color:rgba(255,255,255,0.85);}
@media(max-width:900px){
  .about-photo-ghost{display:none;}
  .about-photo--bold{margin-bottom:52px;}
  .about-photo-badge{left:14px;bottom:-26px;max-width:180px;padding:14px 16px;}
}

/* KAUFEN / VERKAUFEN SPLIT */
.split{background:var(--white);}
.split-head{text-align:center;max-width:640px;margin:0 auto 56px;}
.split-head h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:14px;}
.split-head p{color:var(--grey);font-size:16px;}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.split-card{
  background:var(--white);color:var(--navy-dark);border:1px solid var(--grey-light);
  border-top:3px solid var(--grey-light);
  padding:44px 38px;border-radius:var(--radius);position:relative;overflow:hidden;
  box-shadow:var(--shadow);
}
.split-card.sell{border-top-color:var(--copper);}
.split-card.buy{border-top-color:var(--navy);}
.split-card .icon{
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
}
.split-card.sell .icon{background:rgba(166,129,60,0.12);color:var(--copper);}
.split-card.buy .icon{background:rgba(11,30,61,0.08);color:var(--navy);}
.split-card h3{font-size:22px;margin-bottom:12px;color:var(--navy-dark);}
.split-card p{color:var(--grey);margin-bottom:26px;font-size:15px;}
.split-card ul{list-style:none;margin-bottom:28px;}
.split-card li{font-size:14.5px;margin-bottom:9px;padding-left:22px;position:relative;color:var(--navy-dark);}
.split-card li::before{content:"✓";position:absolute;left:0;color:var(--copper);font-weight:700;}

/* DIAGONAL SPLIT-SCREEN (Startseite – Verkaufen/Kaufen) */
.tt-split{position:relative;min-height:620px;overflow:hidden;}
.tt-bg{position:absolute;inset:0;transition:filter .35s ease;}
.tt-bg.sell{background:var(--navy);clip-path:polygon(0 0,55% 0,45% 100%,0 100%);}
.tt-bg.buy{background:var(--off-white);clip-path:polygon(55% 0,100% 0,100% 100%,45% 100%);}
.tt-split:has(.tt-panel.sell:hover) .tt-bg.sell{filter:brightness(1.12);}
.tt-split:has(.tt-panel.buy:hover) .tt-bg.buy{filter:brightness(0.97);}
.tt-content{
  position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;
  min-height:620px;align-items:center;
}
.tt-panel{
  display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;
  max-width:400px;padding:60px 0;
}
.tt-panel.sell{justify-self:start;padding-left:56px;color:var(--white);}
.tt-panel.buy{justify-self:end;padding-right:56px;color:var(--navy-dark);text-align:right;align-items:flex-end;}
.tt-num{
  font-family:'Poppins',sans-serif;font-size:14px;font-weight:600;letter-spacing:.12em;
  margin-bottom:14px;
}
.tt-panel.sell .tt-num{color:var(--copper-light);}
.tt-panel.buy .tt-num{color:var(--copper);}
.tt-panel h3{
  font-size:clamp(2.1rem,4.6vw,3.2rem);font-weight:700;letter-spacing:-0.01em;
  margin-bottom:18px;line-height:1;
}
.tt-panel.sell h3{color:var(--white);}
.tt-panel.buy h3{color:var(--navy-dark);}
.tt-panel p{font-size:15.5px;margin-bottom:30px;}
.tt-panel.sell p{color:rgba(255,255,255,0.78);}
.tt-panel.buy p{color:var(--grey);}
.tt-cta{
  display:inline-flex;align-items:center;gap:9px;font-family:'Poppins',sans-serif;
  font-size:14.5px;font-weight:600;position:relative;
}
.tt-cta svg{transition:transform .25s ease;}
.tt-panel:hover .tt-cta svg{transform:translateX(5px);}
.tt-cta-underline{
  position:absolute;left:0;bottom:-6px;height:1.5px;width:100%;
  transform-origin:left;transform:scaleX(0.35);transition:transform .3s ease;
}
.tt-panel.sell .tt-cta-underline{background:var(--copper-light);}
.tt-panel.buy .tt-cta-underline{background:var(--copper);right:0;left:auto;transform-origin:right;}
.tt-panel:hover .tt-cta-underline{transform:scaleX(1);}
@media(max-width:760px){
  .tt-split{min-height:0;}
  .tt-bg{display:none;}
  .tt-content{display:block;min-height:0;}
  .tt-panel{max-width:none;padding:56px 24px;}
  .tt-panel.sell{background:var(--navy);align-items:flex-start;padding-left:24px;}
  .tt-panel.buy{background:var(--off-white);text-align:left;align-items:flex-start;padding-right:24px;}
}

/* PROCESS STEPS (Verkaufen) */
.steps{background:var(--white);}
.steps.bg-navy .step-num{background:var(--copper);}
.steps.bg-navy .step h3{color:var(--white);}
.steps.bg-navy .step p{color:rgba(255,255,255,0.75);}
.steps.bg-navy .step{border-color:rgba(255,255,255,0.12);}
.steps-list{display:flex;flex-direction:column;gap:0;max-width:820px;margin:0 auto;}
.step{display:grid;grid-template-columns:64px 1fr;gap:26px;padding:32px 0;position:relative;}
.step:not(:last-child){border-bottom:1px solid var(--grey-light);}
.step-num{
  width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;
  font-size:20px;font-weight:600;flex-shrink:0;
}
.step h3{font-size:19px;margin-bottom:8px;}
.step p{color:var(--grey);font-size:15px;}

/* Visual break when two bg-navy sections sit directly back to back */
section.bg-navy + section.bg-navy{border-top:1px solid rgba(255,255,255,0.1);}

/* PROCESS PATH TIMELINE (Verkaufen – alternating connected path) */
.path-timeline{position:relative;max-width:920px;margin:0 auto;padding:20px 0 0;}
.path-timeline::before{
  content:'';position:absolute;left:50%;top:6px;bottom:6px;width:2px;
  background:linear-gradient(to bottom, rgba(255,255,255,0.05), rgba(255,255,255,0.35) 8%, rgba(255,255,255,0.35) 92%, rgba(255,255,255,0.05));
  transform:translateX(-50%);
}
.path-step{
  display:grid;grid-template-columns:1fr 76px 1fr;align-items:start;column-gap:0;
  position:relative;padding:0 0 64px;
}
.path-step:last-child{padding-bottom:6px;}
.path-step-node{
  grid-column:2;justify-self:center;position:relative;z-index:2;
  width:56px;height:56px;border-radius:50%;background:var(--navy-dark);
  border:2px solid var(--copper);color:var(--copper-light);
  display:flex;align-items:center;justify-content:center;
  font-family:'Poppins',sans-serif;font-size:19px;font-weight:600;
}
.path-step-content{
  grid-column:1;justify-self:end;text-align:right;max-width:380px;padding-top:6px;
}
.path-step:nth-child(even) .path-step-content{
  grid-column:3;justify-self:start;text-align:left;
}
.path-step-content h3{color:var(--white);font-size:19px;margin-bottom:8px;}
.path-step-content p{color:rgba(255,255,255,0.75);font-size:15px;}
.path-step-tag{
  display:inline-block;font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--copper-light);margin-bottom:6px;
}
@media(max-width:760px){
  .path-timeline::before{left:27px;}
  .path-step{grid-template-columns:56px 1fr;column-gap:22px;padding:0 0 40px;}
  .path-step-node{grid-column:1;justify-self:start;width:48px;height:48px;font-size:17px;}
  .path-step-content,.path-step:nth-child(even) .path-step-content{
    grid-column:2;justify-self:start;text-align:left;max-width:none;padding-top:2px;
  }
}

/* FEATURE GRID (generic 3-col) */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.feature-card{
  background:var(--white);border:1px solid var(--grey-light);border-radius:var(--radius);
  padding:32px 28px;box-shadow:var(--shadow);
}
.feature-card .icon{
  width:48px;height:48px;border-radius:12px;background:rgba(166,129,60,0.12);color:var(--copper);
  display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:18px;
}
.feature-card h3{font-size:17.5px;margin-bottom:10px;}
.feature-card p{color:var(--grey);font-size:14.5px;}

/* PROOF STRIP (Verkaufen – Kennzahlen direkt unter dem Hero) */
.proof-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;
  padding:52px 0 8px;border-top:1px solid var(--grey-light);
}
.proof-item{position:relative;}
.proof-ghost{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:52px;line-height:1;
  /* rgba fill is a fallback for browsers without text-stroke support, and
     also gives the outline a touch more presence – still a light "ghost"
     numeral, just with a bit more brand-colour contrast against the page. */
  color:rgba(138,106,50,0.16);-webkit-text-stroke:1.75px var(--copper);
  display:block;margin-bottom:12px;
}
.proof-item h3{font-size:1.02rem;color:var(--navy-dark);margin-bottom:8px;}
.proof-item p{font-size:13.5px;color:var(--grey);line-height:1.55;margin:0;}
@media(max-width:900px){
  .proof-strip{grid-template-columns:1fr 1fr;gap:36px 28px;}
}
@media(max-width:600px){
  .proof-strip{grid-template-columns:1fr;gap:32px;}
}

/* TRUST LIST (Über mich – „Worauf Sie sich bei mir verlassen können") */
.trust-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 64px;max-width:1000px;margin:0 auto;}
.trust-item{
  display:grid;grid-template-columns:64px 1fr;gap:22px;padding:28px 0;
  border-bottom:1px solid rgba(255,255,255,0.14);
}
.trust-num{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:42px;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,0.35);padding-top:2px;
}
.trust-body h3{color:var(--white);font-size:17px;margin-bottom:8px;}
.trust-body p{color:rgba(255,255,255,0.72);font-size:14px;line-height:1.6;margin:0;}
.trust-item:last-child:nth-child(odd){grid-column:1 / -1;}
@media(max-width:900px){
  .trust-list{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .trust-item{grid-template-columns:48px 1fr;gap:14px;}
  .trust-num{font-size:32px;}
}

/* BIG NUMBER SHOWCASE */
.stat-big-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-top:16px;}
.stat-big{border-top:3px solid var(--copper);padding-top:22px;}
.stat-big:nth-child(even){border-top-color:var(--navy);}
.stat-big strong{
  display:block;font-family:'Poppins',sans-serif;font-weight:700;
  font-size:clamp(2.6rem,5vw,3.6rem);color:var(--navy);line-height:1;margin-bottom:12px;
  letter-spacing:-0.02em;
}
.stat-big span{font-size:14px;color:var(--grey);display:block;line-height:1.5;}
@media(min-width:901px){
  .stat-big:nth-child(2){transform:translateY(30px);}
  .stat-big:nth-child(4){transform:translateY(-14px);}
}
@media(max-width:900px){
  .stat-big-grid{grid-template-columns:1fr 1fr;}
  .stat-big:nth-child(2),.stat-big:nth-child(4){transform:none;}
}

/* METRIC / FEATURE STRIP (4 navy cards) */
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.metric-card{
  background:linear-gradient(155deg,var(--navy) 0%, var(--navy-dark) 100%);color:var(--white);
  border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow);
}
.metric-card .icon{
  width:44px;height:44px;border-radius:10px;background:rgba(166,129,60,0.2);color:var(--copper-light);
  display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:16px;
}
.metric-card h3{color:var(--white);font-size:17px;margin-bottom:8px;}
.metric-card p{color:rgba(255,255,255,0.75);font-size:13.5px;}

/* REFERENZEN GRID */
.ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}

/* REFERENZEN HORIZONTAL GALLERY */
.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap;}
.gallery-head .split-head{text-align:left;margin:0;max-width:640px;}
.gallery-nav{display:flex;gap:10px;flex-shrink:0;}
.gallery-btn{
  width:48px;height:48px;border-radius:50%;border:1.5px solid var(--grey-light);background:var(--white);
  color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .25s ease;flex-shrink:0;
}
.gallery-btn:hover{background:var(--navy);border-color:var(--navy);color:var(--white);}
.gallery-btn:disabled{opacity:.35;cursor:default;}
.gallery-btn:disabled:hover{background:var(--white);border-color:var(--grey-light);color:var(--navy);}
.gallery-viewport{overflow:hidden;margin:0 -24px;padding:0 24px;}
.gallery-scroll{
  display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x proximity;
  padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;
  scroll-behavior:smooth;
}
.gallery-scroll.dragging{cursor:grabbing;scroll-behavior:auto;}
.gallery-scroll::-webkit-scrollbar{display:none;}
.gallery-scroll .ref-card{flex:0 0 auto;width:min(380px,82vw);scroll-snap-align:start;}
.gallery-progress{height:2px;background:var(--grey-light);margin-top:28px;border-radius:2px;overflow:hidden;}
.gallery-progress-bar{height:100%;width:20%;background:var(--copper);border-radius:2px;transition:transform .2s ease,width .2s ease;transform-origin:left;}
.ref-card{
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--white);
  border:1px solid var(--grey-light);
}
.ref-photo{position:relative;height:220px;overflow:hidden;}
.ref-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.ref-card:hover .ref-photo img{transform:scale(1.06);}
.ref-tag{
  position:absolute;top:14px;left:14px;background:var(--copper);color:var(--white);
  font-size:11.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;z-index:1;
}
.ref-body{padding:22px 24px;}
.ref-body h3{font-size:17px;margin-bottom:6px;}
.ref-body .ref-loc{color:var(--copper);font-size:13px;font-weight:600;margin-bottom:10px;}
.ref-body p{color:var(--grey);font-size:14px;}
.ref-meta{display:flex;gap:14px;margin-top:14px;flex-wrap:wrap;}
.ref-meta span{font-size:12.5px;color:var(--navy);background:rgba(11,30,61,0.06);padding:5px 10px;border-radius:8px;}
.ref-facts{list-style:none;margin:14px 0 12px;}
.ref-facts li{font-size:13.5px;color:var(--navy-dark);margin-bottom:7px;padding-left:20px;position:relative;}
.ref-facts li::before{content:"→";position:absolute;left:0;color:var(--copper);font-weight:700;}
.ref-facts li.muted{color:var(--grey);font-style:italic;}
.ref-divider{border:none;border-top:1px solid var(--grey-light);margin:14px 0;}
.ref-sold-tag{font-size:13px;color:var(--copper);font-style:italic;font-weight:500;}

/* CASE DOSSIER (Referenzen – Akte + Herausforderung/Lösung/Ergebnis) */
.dossier-item{
  display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;
  border-bottom:1px solid var(--grey-light);
}
.dossier-item:last-child{border-bottom:none;}
.dossier-item:nth-child(even) .dossier-media{order:2;}
.dossier-item:nth-child(even) .dossier-body{order:1;}
.dossier-media{position:relative;overflow:hidden;min-height:420px;background:var(--navy-dark);}
.dossier-media img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(0.97);
  transition:filter .5s ease,transform .5s ease;
}
.dossier-media::after{
  content:"";position:absolute;inset:0;background:var(--navy);mix-blend-mode:color;
  opacity:.62;transition:opacity .5s ease;pointer-events:none;
}
.dossier-item:hover .dossier-media img{filter:grayscale(0) contrast(1) brightness(1);transform:scale(1.03);}
.dossier-item:hover .dossier-media::after{opacity:0;}
/* Touch devices have no real hover gesture, so the grayscale/tint-until-hover effect
   would otherwise trap the photos in monochrome for most mobile visitors – show them
   in full color by default here instead, keeping the hover reveal for mouse users. */
@media (hover:none){
  .dossier-media img{filter:none;}
  .dossier-media::after{opacity:0;}
}
.dossier-tag-pill{
  position:absolute;top:20px;left:20px;background:rgba(255,255,255,0.92);color:var(--navy-dark);
  font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;padding:7px 14px;border-radius:30px;z-index:1;
}
.dossier-body{padding:64px 56px;display:flex;flex-direction:column;justify-content:center;}
.dossier-num{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:88px;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--grey-light);margin-bottom:10px;
}
.dossier-loc{
  font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--copper);margin-bottom:10px;font-weight:600;
}
.dossier-body h3{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:22px;}
.dossier-stats{display:flex;gap:32px;margin-bottom:8px;flex-wrap:wrap;}
.dossier-stats div{display:flex;flex-direction:column;}
.dossier-stats strong{font-family:'Poppins',sans-serif;font-size:18px;color:var(--navy-dark);}
.dossier-stats span{font-size:12px;color:var(--grey);margin-top:2px;}
.dossier-stats strong.muted,.dossier-stats span.muted{color:var(--grey);font-style:italic;}
.dossier-story{margin-top:26px;padding-top:26px;border-top:1px solid var(--grey-light);display:flex;flex-direction:column;gap:14px;}
.dossier-step{display:grid;grid-template-columns:132px 1fr;gap:16px;}
.dossier-step-label{
  font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--copper);padding-top:1px;
}
.dossier-step p{font-size:14px;color:var(--grey);margin:0;line-height:1.55;}
.dossier-pending{margin-top:22px;padding-top:22px;border-top:1px solid var(--grey-light);}
.dossier-pending p{font-size:13.5px;color:var(--grey);font-style:italic;margin:0;}
@media(max-width:860px){
  .dossier-item,.dossier-item:nth-child(even){display:block;}
  .dossier-item:nth-child(even) .dossier-media,.dossier-item:nth-child(even) .dossier-body{order:0;}
  .dossier-media{min-height:280px;}
  .dossier-body{padding:40px 24px;}
  .dossier-num{font-size:64px;}
  .dossier-step{grid-template-columns:1fr;gap:4px;}
}

/* BEWERTUNGEN */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.review-card{
  background:var(--off-white);border-radius:var(--radius);padding:32px 28px;
  border:1px solid var(--grey-light);position:relative;
}
.review-stars{color:var(--copper);font-size:16px;letter-spacing:2px;margin-bottom:14px;}
.review-card p.quote{font-size:15px;color:var(--navy-dark);margin-bottom:20px;font-style:italic;}
.review-author{display:flex;align-items:center;gap:12px;}
.review-avatar{
  width:42px;height:42px;border-radius:50%;background:var(--navy);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;
  font-weight:600;font-size:15px;flex-shrink:0;
}
.review-author strong{display:block;font-size:14px;color:var(--navy-dark);}
.review-author span{font-size:12.5px;color:var(--grey);}
.review-source{
  display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--grey-light);
  border-radius:999px;padding:8px 18px;font-size:13px;color:var(--grey);margin-top:8px;
}

/* QUOTE FEED (Bewertungen – große, alternierende Zitat-Sequenz) */
.quote-feed-item{padding:88px 0;border-bottom:1px solid var(--grey-light);}
.quote-feed-item:last-child{border-bottom:none;}
.quote-feed-item.bg-navy{border-bottom-color:rgba(255,255,255,0.1);}
.quote-feed-inner{max-width:760px;}
.quote-feed-item.align-right .quote-feed-inner{margin-left:auto;text-align:right;}
.quote-feed-stars{
  display:block;color:var(--copper);font-size:15px;letter-spacing:3px;margin-bottom:22px;
}
.quote-feed-mark{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:88px;line-height:1;
  color:var(--copper);opacity:.32;margin-bottom:-16px;
}
.quote-feed-item.align-right .quote-feed-mark{margin-left:auto;}
.quote-feed-text{
  font-family:'Poppins',sans-serif;font-weight:500;font-size:clamp(1.25rem,2.4vw,1.7rem);
  color:var(--navy-dark);line-height:1.55;margin-bottom:32px;letter-spacing:-0.01em;
}
.quote-feed-author{display:flex;flex-direction:column;gap:2px;}
.quote-feed-item.align-right .quote-feed-author{align-items:flex-end;}
.quote-feed-sign{font-family:'Caveat',cursive;font-weight:600;font-size:32px;color:var(--navy);line-height:1;}
.quote-feed-meta{font-size:13px;color:var(--grey);}
.quote-feed-item.bg-navy .quote-feed-text{color:var(--white);}
.quote-feed-item.bg-navy .quote-feed-mark{color:var(--copper-light);opacity:.4;}
.quote-feed-item.bg-navy .quote-feed-sign{color:var(--white);}
.quote-feed-item.bg-navy .quote-feed-meta{color:rgba(255,255,255,0.7);}
.quote-feed-item.bg-navy .quote-feed-stars{color:var(--copper-light);}
@media(max-width:700px){
  .quote-feed-item{padding:56px 0;}
  .quote-feed-item.align-right .quote-feed-inner{margin-left:0;text-align:left;}
  .quote-feed-item.align-right .quote-feed-mark{margin-left:0;}
  .quote-feed-item.align-right .quote-feed-author{align-items:flex-start;}
  .quote-feed-mark{font-size:60px;}
}
.notice-box{
  background:rgba(166,129,60,0.08);border:1px dashed var(--copper);border-radius:var(--radius);
  padding:20px 24px;font-size:14px;color:var(--navy-dark);margin-top:36px;
}
.notice-box strong{color:var(--copper);}

/* OBJECT LANDING PAGE (Kaufen – Einzelobjekt) */
.obj-back{
  display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--grey);
  margin-bottom:18px;text-decoration:none;
}
.obj-back:hover{color:var(--copper);}
.obj-desc{max-width:760px;margin:0 auto;}
.obj-desc h2{font-size:clamp(1.6rem,2.6vw,2rem);margin-bottom:20px;}
.obj-desc p{color:var(--grey);font-size:16px;line-height:1.75;margin-bottom:18px;}
.obj-desc p:last-child{margin-bottom:0;}
.obj-features{
  max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;
  gap:14px 32px;list-style:none;padding:0;
}
.obj-features li{
  display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--navy-dark);line-height:1.5;
}
.obj-features li svg{flex:none;margin-top:3px;color:var(--copper);}
@media(max-width:640px){
  .obj-features{grid-template-columns:1fr;}
}
.obj-disclaimer{
  max-width:760px;margin:32px auto 0;font-size:12.5px;color:var(--grey);line-height:1.6;
}
.obj-main{display:grid;grid-template-columns:1fr 320px;gap:64px;align-items:start;}
.obj-main .obj-desc{max-width:none;margin:0;}
.obj-main .obj-desc .eyebrow{margin-bottom:14px;}
.obj-main .obj-desc h2{margin-bottom:22px;}
.obj-facts-card{
  position:sticky;top:104px;background:var(--off-white);border:1px solid var(--grey-light);
  border-radius:var(--radius);padding:32px 26px;
}
.obj-facts-card .price{
  display:block;font-family:'Poppins',sans-serif;font-weight:700;font-size:28px;color:var(--navy-dark);
}
.obj-facts-card .price-label{display:block;font-size:12px;color:#5a6472;margin-bottom:24px;}
.obj-facts-list{display:flex;flex-direction:column;gap:14px;margin-bottom:26px;}
.obj-facts-list div{
  display:flex;justify-content:space-between;gap:12px;font-size:13.5px;
  border-bottom:1px solid var(--grey-light);padding-bottom:12px;
}
.obj-facts-list span{color:#5a6472;}
.obj-facts-list strong{font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;color:var(--navy-dark);text-align:right;}
.obj-facts-card .btn{width:100%;text-align:center;display:block;}
@media(max-width:900px){
  .obj-main{grid-template-columns:1fr;gap:36px;}
  .obj-facts-card{position:static;}
}

/* CONCERNS / OBJECTION HANDLING (Verkaufen – "Ihre Bedenken, meine Antwort") */
.concern-list{max-width:880px;margin:0 auto;}
.concern-item{
  display:grid;grid-template-columns:64px 1fr;gap:26px;padding:30px 0;
  border-bottom:1px solid var(--grey-light);
}
.concern-item:last-child{border-bottom:none;}
.concern-num{
  font-family:'Poppins',sans-serif;font-weight:700;font-size:15px;color:var(--copper);padding-top:3px;
}
.concern-q{
  font-family:'Poppins',sans-serif;font-weight:600;font-style:italic;font-size:18px;
  color:var(--navy-dark);margin-bottom:10px;line-height:1.4;
}
.concern-a{font-size:14.5px;color:var(--grey);line-height:1.65;}
.bg-navy .concern-item{border-color:rgba(255,255,255,0.14);}
.bg-navy .concern-q{color:var(--white);}
.bg-navy .concern-a{color:rgba(255,255,255,0.75);}
.bg-navy .concern-num{color:var(--copper-light);}
@media(max-width:600px){
  .concern-item{grid-template-columns:1fr;gap:6px;}
}

/* LISTING CARDS (Kaufen) */
.listing-empty{
  text-align:center;max-width:560px;margin:0 auto;padding:60px 40px;background:var(--off-white);
  border-radius:var(--radius);border:1px solid var(--grey-light);
}
.listing-empty .icon{font-size:36px;margin-bottom:18px;}
.listing-empty h3{font-size:20px;margin-bottom:12px;}
.listing-empty p{color:var(--grey);font-size:15px;margin-bottom:24px;}

/* LARGE-FORMAT PORTFOLIO SHOWCASE (Kaufen) */
.buy-showcase-item{
  position:relative;min-height:86vh;display:flex;align-items:flex-end;overflow:hidden;
}
.buy-showcase-media{position:absolute;inset:0;z-index:0;background:var(--navy-dark);overflow:hidden;}
.buy-showcase-bg{
  position:absolute;inset:-20px;z-index:0;
  background-size:cover;background-position:center;
  filter:blur(35px) brightness(0.5) saturate(1.1);
  transform:scale(1.1);
}
.buy-showcase-media video{
  position:absolute;inset:0;z-index:1;width:100%;height:100%;
  object-fit:cover;display:block;opacity:0;transition:opacity .5s ease;
}
.buy-showcase-media video:first-child,.buy-showcase-media video.active{opacity:1;}
.buy-showcase-media img{
  position:absolute;inset:0;z-index:1;width:100%;height:100%;
  object-fit:cover;display:block;opacity:0;transition:opacity .5s ease;
}
.buy-showcase-media img:first-child,.buy-showcase-media img.active{opacity:1;}
/* OBJECT LANDING PAGE — full-bleed photo hero (replaces the old flat navy
   page-hero + separate boxed gallery tile). The strongest photo IS the hero:
   the fixed site header sits transparently over it, headline/facts and the
   back-link/breadcrumb are overlaid with a top+bottom vignette for legibility.
   Photos are always shown in full (object-fit:contain, no cropping); a
   blurred, cover-fit copy of the same photo fills any leftover space around
   it, so every photo – whatever its native shape – reads as a deliberate,
   large-format frame rather than an empty box. The frame height itself also
   adapts per photo (see site.js) so portrait/landscape shots each get a
   sensible amount of room instead of one rigid box for all of them. */
.obj-hero-gallery{position:relative;padding:0;}
.obj-hero-gallery>.container{padding-bottom:32px;}
.obj-gallery-item{
  position:relative;min-height:0 !important;display:block;overflow:hidden;
  height:min(58vh,620px);width:100%;
  box-shadow:0 10px 28px rgba(7,20,38,0.22);
  transition:height .45s cubic-bezier(.4,0,.2,1);
}
.obj-gallery-item .buy-showcase-media{will-change:transform;}
.obj-gallery-item .buy-showcase-media img,
.obj-gallery-item .buy-showcase-media video{object-fit:contain;}
/* Thumbnail strip (added by site.js) replaces the plain dots for this variant –
   with dozens of photos per object, jump-to thumbnails are far more useful. */
.obj-gallery-item .buy-showcase-dots{display:none;}
.obj-hero-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(7,20,38,0.80) 0%, rgba(7,20,38,0.22) 20%,
    rgba(7,20,38,0.05) 42%, rgba(7,20,38,0.18) 62%, rgba(7,20,38,0.92) 100%);
}
.obj-hero-top{position:absolute;top:0;left:0;right:0;z-index:2;padding:118px 0 0;}
.obj-hero-top .obj-back{color:rgba(255,255,255,0.78);}
.obj-hero-top .obj-back:hover{color:var(--copper-light);}
.obj-hero-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:0 0 44px;color:var(--white);transition:opacity .3s ease;}
/* Headline/facts are only shown on the first photo – once someone starts
   browsing through the gallery, the text would just sit in the way of the
   very photos they're looking at. */
.obj-gallery-item.hero-text-hidden .obj-hero-content{opacity:0;pointer-events:none;}
@media(prefers-reduced-motion: reduce){
  .obj-hero-content{transition:none;}
}
.obj-hero-content h1{color:var(--white);font-size:clamp(1.6rem,4.4vw,2.9rem);margin-bottom:12px;text-shadow:0 2px 16px rgba(0,0,0,0.5);max-width:820px;}
.obj-hero-content p{color:rgba(255,255,255,0.88);max-width:620px;font-size:16.5px;text-shadow:0 1px 10px rgba(0,0,0,0.45);}
.obj-gallery-expand{
  position:absolute;bottom:20px;right:24px;z-index:3;
  width:38px;height:38px;border-radius:50%;
  background:rgba(7,20,38,0.55);border:1px solid rgba(255,255,255,0.35);color:var(--white);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;
}
.obj-gallery-expand:hover{background:rgba(7,20,38,0.85);}
.obj-gallery-wrap{position:relative;}
.obj-gallery-thumbs{
  display:flex;gap:8px;overflow-x:auto;padding:12px 24px;
  background:var(--navy-dark);scrollbar-width:none;-ms-overflow-style:none;
}
.obj-gallery-thumbs::-webkit-scrollbar{display:none;}
.obj-gallery-thumb{
  flex:none;width:64px;height:48px;border-radius:6px;overflow:hidden;
  border:2px solid transparent;padding:0;cursor:pointer;opacity:.55;background:rgba(255,255,255,0.08);
  transition:opacity .2s,border-color .2s;-webkit-tap-highlight-color:transparent;
}
.obj-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.obj-gallery-thumb.active{opacity:1;border-color:var(--copper-light);}
.obj-gallery-thumb:hover{opacity:.85;}
/* Full-screen lightbox (added by site.js) */
.obj-lightbox{position:fixed;inset:0;z-index:5000;background:rgba(5,12,24,0.97);display:flex;align-items:center;justify-content:center;}
.obj-lightbox[hidden]{display:none;}
.obj-lightbox-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:24px;}
.obj-lightbox-img{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;}
.obj-lightbox-close,.obj-lightbox-arrow{
  position:absolute;border-radius:50%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.3);
  color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;
}
.obj-lightbox-close:hover,.obj-lightbox-arrow:hover{background:rgba(255,255,255,0.18);}
.obj-lightbox-close{top:20px;right:20px;width:42px;height:42px;font-size:22px;line-height:1;}
.obj-lightbox-arrow{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:24px;}
.obj-lightbox-arrow.prev{left:16px;}
.obj-lightbox-arrow.next{right:16px;}
.obj-lightbox-counter{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:rgba(255,255,255,0.85);
}
@media(max-width:700px){
  /* Edge-to-edge on mobile too – no side container padding to cancel out
     since the hero now has no wrapping .container of its own. */
  .obj-hero-top{padding-top:104px;}
  .obj-hero-content{padding-bottom:32px;}
  .obj-lightbox-arrow{width:40px;height:40px;font-size:20px;}
  .obj-lightbox-arrow.prev{left:8px;}
  .obj-lightbox-arrow.next{right:8px;}
}
@media(prefers-reduced-motion: reduce){
  .obj-gallery-item{transition:none;}
  .obj-gallery-item .buy-showcase-media{transition:none;}
}
.buy-showcase-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg, rgba(7,20,38,0.97) 0%, rgba(7,20,38,0.8) 32%, rgba(7,20,38,0.35) 60%, rgba(7,20,38,0.05) 85%);
}
.buy-showcase-badge{
  position:absolute;top:32px;left:32px;z-index:2;
  background:rgba(255,255,255,0.94);color:var(--navy-dark);
  font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.08em;
  padding:8px 16px;border-radius:30px;text-transform:uppercase;
}
.buy-showcase-nav{
  position:absolute;top:32px;right:32px;z-index:3;
  display:flex;align-items:center;gap:14px;
}
/* The hero-gallery variant sits at the very top of the page, so its nav
   needs to clear the fixed site header instead of the generic top:32px. */
.obj-gallery-item .buy-showcase-nav{top:96px;}
@media(max-width:700px){
  .obj-gallery-item .buy-showcase-nav{top:84px;right:20px;}
}
.buy-showcase-arrow{
  width:34px;height:34px;border-radius:50%;flex:none;
  background:rgba(7,20,38,0.55);border:1px solid rgba(255,255,255,0.35);color:var(--white);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;
}
.buy-showcase-arrow:hover{background:rgba(7,20,38,0.85);}
.buy-showcase-dots{display:flex;}
.buy-showcase-dot{
  width:28px;height:28px;border-radius:50%;border:none;padding:0;cursor:pointer;
  background:transparent;position:relative;
  -webkit-tap-highlight-color:transparent;
}
.buy-showcase-dot::before{
  content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;
  transform:translate(-50%,-50%);background:rgba(255,255,255,0.4);transition:background .2s,transform .2s;
}
.buy-showcase-dot.active::before{background:var(--white);transform:translate(-50%,-50%) scale(1.35);}
.buy-showcase-counter{
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--white);
  min-width:56px;text-align:center;letter-spacing:.02em;
}
.buy-showcase-content{position:relative;z-index:2;padding:56px 0 60px;color:var(--white);width:100%;}
.buy-showcase-tag{
  display:block;font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--copper-light);margin-bottom:12px;
  text-shadow:0 2px 10px rgba(0,0,0,0.65);
}
.buy-showcase-content h3{
  font-size:clamp(1.8rem,4vw,2.7rem);color:var(--white);margin-bottom:20px;max-width:640px;
  text-shadow:0 2px 14px rgba(0,0,0,0.55);
}
.buy-showcase-facts{display:flex;gap:36px;margin-bottom:28px;flex-wrap:wrap;}
.buy-showcase-facts div{display:flex;flex-direction:column;}
.buy-showcase-facts strong{font-family:'Poppins',sans-serif;font-size:19px;color:var(--white);}
.buy-showcase-facts span{font-size:12.5px;color:rgba(255,255,255,0.7);margin-top:2px;}
.buy-showcase-item:nth-child(even) .buy-showcase-content{text-align:right;}
.buy-showcase-item:nth-child(even) .buy-showcase-content h3{margin-left:auto;}
.buy-showcase-item:nth-child(even) .buy-showcase-facts{justify-content:flex-end;}
.buy-showcase-item:nth-child(even) .buy-showcase-facts div{align-items:flex-end;}
@media(max-width:760px){
  .buy-showcase-item{min-height:70vh;}
  .buy-showcase-item:nth-child(even) .buy-showcase-content{text-align:left;}
  .buy-showcase-item:nth-child(even) .buy-showcase-content h3{margin-left:0;}
  .buy-showcase-item:nth-child(even) .buy-showcase-facts{justify-content:flex-start;}
  .buy-showcase-item:nth-child(even) .buy-showcase-facts div{align-items:flex-start;}
}

/* CONTACT */
.contact{background:var(--navy-dark);color:var(--white);}
.contact:not(.contact-page) .eyebrow{color:var(--copper-light);}
.contact .container{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;}
.contact h2{color:var(--white);font-size:clamp(1.8rem,3vw,2.3rem);margin-bottom:16px;}
.contact p{color:rgba(255,255,255,0.75);margin-bottom:28px;font-size:15.5px;}
.contact-info{display:flex;flex-direction:column;gap:18px;margin-top:6px;}
.contact-info div{display:flex;align-items:center;gap:14px;font-size:15px;}
.contact-info .ic{
  width:40px;height:40px;border-radius:50%;background:rgba(166,129,60,0.18);color:var(--copper-light);
  display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
}
form{display:grid;gap:16px;align-content:start;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
input,select,textarea{
  width:100%;padding:14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.06);color:var(--white);font-size:14.5px;font-family:inherit;
}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,0.45);}
select option{color:#000;}
textarea{resize:vertical;min-height:110px;}
form .btn{margin-top:6px;justify-self:start;}
.contact.contact-page{background:var(--white);color:var(--navy-dark);}
.contact.contact-page h2{color:var(--navy-dark);}
.contact.contact-page p{color:var(--grey);}
.contact.contact-page .contact-info .ic{background:rgba(166,129,60,0.14);color:var(--copper);}
.contact.contact-page input,.contact.contact-page select,.contact.contact-page textarea{
  border:1px solid var(--grey-light);background:var(--off-white);color:var(--navy-dark);
}
.contact.contact-page input::placeholder,.contact.contact-page textarea::placeholder{color:var(--grey);}
.map-embed{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-top:32px;}
.map-embed iframe{width:100%;height:280px;border:0;display:block;}

/* SIMPLE TEXT PAGES (Impressum, Datenschutz) */
.legal{padding:180px 0 100px;}
.legal h1{font-size:clamp(1.6rem,7vw,2.6rem);margin-bottom:30px;}
.legal h2{font-size:19px;margin:32px 0 10px;}
.legal p, .legal li{color:var(--grey);font-size:15px;margin-bottom:10px;}
.legal ul{padding-left:20px;margin-bottom:14px;}

/* CTA BAND */
.cta-band{
  background:linear-gradient(120deg,var(--navy) 0%,var(--navy-dark) 100%);color:var(--white);
  text-align:center;
}
.cta-band h2{color:var(--white);font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:16px;}
.cta-band p{color:rgba(255,255,255,0.8);max-width:560px;margin:0 auto 30px;}
.cta-band .hero-buttons{justify-content:center;}
.cta-band.on-white{background:var(--white);color:var(--navy-dark);}
.cta-band.on-white h2{color:var(--navy-dark);}
.cta-band.on-white p{color:var(--grey);}

/* FOOTER */
footer{background:var(--navy-dark);border-top:1px solid rgba(255,255,255,0.08);padding:40px 0;}
footer .container{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
}
.footer-brand{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,0.7);font-size:13.5px;}
.footer-brand img{height:30px;}
.footer-links{display:flex;gap:22px;list-style:none;flex-wrap:wrap;}
.footer-links a{color:rgba(255,255,255,0.6);font-size:13.5px;}
.footer-links a:hover{color:var(--copper-light);}

/* SCROLL REVEAL */
.reveal{
  opacity:0;transform:translateY(22px);
  transition:opacity .45s cubic-bezier(.16,.8,.24,1),transform .45s cubic-bezier(.16,.8,.24,1);
  will-change:opacity,transform;
}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .signature-underline{width:100%;transition:none;}
}
.stagger>.reveal:nth-child(1){transition-delay:0ms;}
.stagger>.reveal:nth-child(2){transition-delay:70ms;}
.stagger>.reveal:nth-child(3){transition-delay:140ms;}
.stagger>.reveal:nth-child(4){transition-delay:210ms;}
.stagger>.reveal:nth-child(5){transition-delay:280ms;}
.stagger>.reveal:nth-child(6){transition-delay:350ms;}
.stagger>.reveal:nth-child(n+7){transition-delay:400ms;}

@media(max-width:900px){
  .about .container, .contact .container{grid-template-columns:1fr;gap:40px;}
  .about-photo{max-width:340px;margin:0 auto;}
  .split-grid{grid-template-columns:1fr;}
  .feature-grid, .ref-grid, .reviews-grid{grid-template-columns:1fr;}
  .metric-grid{grid-template-columns:1fr 1fr;}
  .step{grid-template-columns:48px 1fr;gap:18px;}
  nav{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:78%;max-width:320px;
    background:var(--navy-dark);padding:100px 36px;transform:translateX(100%);
    transition:transform .35s ease;box-shadow:-10px 0 40px rgba(0,0,0,0.3);overflow-y:auto;}
  nav.open{transform:translateX(0);}
  nav ul{flex-direction:column;gap:26px;}
  nav a{color:var(--white)!important;font-size:16px;}
  .burger{display:flex;}
  .nav-contact{
    display:flex;flex-direction:column;gap:14px;width:100%;
    margin-top:36px;padding-top:28px;border-top:1px solid rgba(255,255,255,0.14);
  }
  .nav-contact .btn{width:100%;}
  .row2{grid-template-columns:1fr;}
  section{padding:64px 0;}
  .page-hero{padding:150px 0 60px;}
  /* 16px minimum prevents iOS Safari from auto-zooming into the field on focus */
  input,select,textarea{font-size:16px;}
}
