﻿:root{
  color-scheme: light;
  --bg:#c7dfcc;
  --surface:#dceddf;
  --surface-alt:#c6dacb;
  --text:#122219;
  --muted:#4f6156;
  --accent:#2f8f5f;
  --accent-dark:#1f4f36;
  --accent-soft:#a7d2b3;
  --border:#a3bfa9;
  --shadow:0 24px 60px rgba(11,24,17,.2);
  --shadow-soft:0 12px 30px rgba(11,24,17,.12);
  --radius:16px;
  --max-width:1200px;
  --container-pad:1.25rem;
  --logo-width:190px;
  --glass-surface-bg:linear-gradient(135deg,rgba(9,16,12,.72),rgba(3,6,4,.48));
  --glass-surface-border:rgba(255,255,255,.32);
  --glass-surface-shadow:0 35px 90px rgba(2,4,3,.55);
  --glass-panel-bg:rgba(7,12,9,.62);
  --glass-panel-border:rgba(255,255,255,.22);
  --glass-panel-highlight:rgba(255,255,255,.2);
  --hero-text-strong:#f6faf5;
  --hero-pill-bg:rgba(255,255,255,.08);
  --hero-pill-border:rgba(255,255,255,.2);
  --hero-reference-glow:rgba(118,255,189,.25);
  --hero-stats-border:rgba(255,255,255,.14);
  --header-overlap:120px;
  --header-max-width:1100px;
  --header-shell-bg:linear-gradient(140deg,rgba(8,28,15,.96),rgba(15,44,27,.88));
  --header-shell-border:rgba(255,255,255,.12);
  --header-shell-shadow:0 30px 55px rgba(3,8,5,.6);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;color:var(--text);background:var(--bg);line-height:1.6;font-weight:400}
h1,h2,h3,h4,h5,h6{font-weight:600}
strong{font-weight:600}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--container-pad)}

.site-header{
  position:sticky;
  top:0;
  z-index:250;
  width:100%;
  display:flex;
  justify-content:center;
  padding:1rem 1.25rem 0;
  background:linear-gradient(180deg,rgba(5,8,6,.7),rgba(5,8,6,0));
  isolation:isolate;
}
.header-shell{
  width:100%;
  max-width:calc(var(--max-width) + 3rem);
  position:relative;
  background:var(--header-shell-bg);
  border:1px solid var(--header-shell-border);
  border-radius:32px;
  box-shadow:var(--header-shell-shadow);
  backdrop-filter:blur(24px) saturate(1.28);
  -webkit-backdrop-filter:blur(24px) saturate(1.28);
  padding:1rem 1.4rem 1.15rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;
  overflow:hidden;
  pointer-events:auto;
}
.header-shell::before{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  opacity:.85;
  z-index:1;
}
.header-shell::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(520px 160px at 20% 0,rgba(255,255,255,.18),transparent 70%);
  opacity:.55;
  z-index:0;
}
.header-shell > *{
  position:relative;
  z-index:2;
}
.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.header-row--meta{
  font-size:.9rem;
  color:rgba(255,255,255,.85);
}
.header-contact{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
}
.header-phone{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  text-decoration:none;
  color:#fff;
  font-weight:600;
}
.header-phone-icon{
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(132,224,162,.15);
  display:grid;
  place-items:center;
  color:#a4f0b5;
  font-size:.95rem;
}
.header-hours{
  opacity:.8;
}
.header-meta-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
}
.header-meta-actions a{
  color:rgba(255,255,255,.82);
  text-decoration:none;
  font-weight:500;
}
.header-row--main{
  gap:1.5rem;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:1.5rem;
}
.nav-list{
  display:flex;
  align-items:center;
  gap:1.4rem;
  list-style:none;
  margin:0;
  padding:0;
}
.nav-list li:not(:last-child){
  padding-right:0;
  border-right:0;
}
.nav-list a{
  text-decoration:none;
  color:rgba(255,255,255,.82);
  font-weight:500;
  position:relative;
  padding:.35rem 0;
  letter-spacing:.01em;
}
.nav-list a::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  border-radius:999px;
  background:rgba(132,224,162,.95);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .2s ease;
}
.nav-list a:hover::after,
.nav-list a:focus-visible::after,
.nav-list a[aria-current="page"]::after{
  transform:scaleX(1);
}
.nav-list a:hover,
.nav-list a:focus{
  color:#c3f7cf;
}
.nav-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.85rem 1.7rem;
  margin:0;
  border-radius:999px;
  background:linear-gradient(125deg,#94f1a2,#45a963);
  color:#0b1a0f;
  font-weight:600;
  border:1px solid rgba(209,255,223,.55);
  box-shadow:0 18px 35px rgba(2,8,4,.45);
  transition:transform .2s ease,box-shadow .2s ease;
}
.nav-cta:hover,
.nav-cta:focus{
  transform:translateY(-1px);
  box-shadow:0 24px 40px rgba(2,8,4,.5);
  color:#0b1a0f;
}
.header-actions{
  display:flex;
  align-items:center;
  gap:.85rem;
}
.site-header .brand{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  text-decoration:none;
  padding:.4rem 1rem;
  border-radius:20px;
  background:var(--surface);
  border:1px solid rgba(155,196,171,.45);
  box-shadow:0 16px 30px rgba(6,16,10,.22);
}
.site-header .brand-logo{
  height:72px;
  width:auto;
  object-fit:contain;
  filter:drop-shadow(0 6px 10px rgba(20,40,28,.15));
}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  background:rgba(255,255,255,.7);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:12px;
  padding:0;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(20,40,28,.12);
}
.nav-toggle__icon{
  position:relative;
  display:block;
  width:22px;
  height:2px;
  background:var(--text);
  border-radius:999px;
}
.nav-toggle__icon::before,
.nav-toggle__icon::after{
  content:'';
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:var(--text);
  border-radius:999px;
}
.nav-toggle__icon::before{top:-7px}
.nav-toggle__icon::after{top:7px}
.nav-scrim{
  position:fixed;
  inset:0;
  background:rgba(20,40,28,.3);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
  z-index:90;
}
.nav-scrim.is-visible{
  opacity:1;
  pointer-events:auto;
}
body.nav-open{
  overflow:hidden;
}

main section{padding:3.5rem 0}
.services{margin-top:0;padding-bottom:2.5rem}


.hero{
  position:relative;
  overflow:hidden;

  --hero-pad-top:clamp(3.5rem,8vh,5.5rem);
  --hero-pad-bottom:clamp(2.5rem,6vh,4rem);
  --hero-content-gap:clamp(1.5rem,3vw,2.8rem);
  --hero-overlap:var(--header-overlap,0px);
  padding:calc(var(--hero-pad-top) + var(--hero-overlap)) 0 var(--hero-pad-bottom);
  margin-top:calc(-1 * var(--hero-overlap));
  min-height:clamp(560px,90vh,960px);
  width:100%;

  padding:5rem 0 3.5rem;
  min-height:90vh;


  padding:5rem 0 3.5rem;
  min-height:90vh;
  display:flex;
  align-items:center;
  background:#0c150e;
  color:#f5f7f2;
  isolation:isolate;
}
.hero::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:140px;
  background:linear-gradient(180deg,rgba(7,16,10,0) 0%,rgba(199,223,204,.7) 55%,var(--bg) 100%);
  pointer-events:none;
  z-index:0;
}
.hero--cinematic{
  background:#071007;
}
.hero-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
  background:#071007;
}
.hero-media::after{
  content:'';
  position:absolute;
  inset:-10% -5% -15% -5%;
  background:
    radial-gradient(650px 450px at 80% 25%, rgba(120,200,147,.38), transparent 68%),
    radial-gradient(520px 320px at 15% 15%, rgba(64,108,86,.4), transparent 70%);
  mix-blend-mode:screen;
  opacity:.6;
}
.hero-photo{
  position:absolute;
  inset:0;
  transform-origin:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.06) contrast(1.03) brightness(1.18);
  will-change:transform;
}
.hero--cinematic .hero-media{
  background:#030705;
}
.hero--cinematic .hero-photo img{
  object-fit:cover;
  object-position:center;
  background:#030705;
}
.hero-media-gradient{
  position:absolute;
  inset:0;
  background:linear-gradient(200deg,rgba(6,12,8,.2) 8%,rgba(6,14,9,.68) 62%,rgba(6,12,9,.9) 100%);
}
.hero-media-glow{
  position:absolute;
  inset:auto 12% 26% auto;
  width:340px;
  height:340px;
  border-radius:50%;
  background:radial-gradient(circle at 60% 40%,rgba(243,189,118,.6) 0%,rgba(243,189,118,.24) 45%,rgba(243,189,118,0) 75%);
  filter:blur(22px);
  opacity:.65;
}
.hero-noise{
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' seed='12'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
  opacity:.35;
}
.hero-inner{
  position:relative;
  z-index:1;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:2.5rem;
}
.hero--centered .hero-inner{
  align-items:center;
  text-align:center;
}
.hero-center-content{
  max-width:860px;
  display:flex;
  flex-direction:column;
  gap:1.4rem;
}
.hero--centered h1{
  font-size:clamp(2.6rem,4.5vw,4.6rem);
  line-height:1.05;
  margin:0;
  letter-spacing:.02em;
  text-shadow:0 18px 45px rgba(5,10,7,.7);
}
.hero--centered p{
  margin:0;
  font-size:clamp(1.05rem,1.4vw,1.25rem);
  color:rgba(255,255,255,.86);
  text-shadow:0 12px 36px rgba(5,10,7,.65);
}
.hero-scroll{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.6rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.7rem;
  color:rgba(255,255,255,.7);
}
.hero-scroll__indicator{
  width:2px;
  height:54px;
  border-radius:999px;
  background:rgba(255,255,255,.2);
  position:relative;
  overflow:hidden;
}
.hero-scroll__indicator::after{
  content:'';
  position:absolute;
  top:-40%;
  left:0;
  right:0;
  height:45%;
  background:rgba(255,255,255,.9);
  border-radius:inherit;
  animation:scrollPulse 1.8s ease-in-out infinite;
}
.hero-topline{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}
.hero-pill{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .95rem;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--hero-text-strong);
  border-radius:999px;
  background:var(--hero-pill-bg);
  border:1px solid var(--hero-pill-border);
  box-shadow:0 12px 28px rgba(3,7,4,.55);
}
.hero-badges{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
.hero-badge{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.85rem 1.15rem;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.8) 0%,rgba(233,246,236,.82) 100%);
  border:1px solid rgba(131,171,146,.4);
  box-shadow:0 25px 40px rgba(7,15,10,.32);
  backdrop-filter:blur(18px);
  color:#1f2e22;
}
.hero-badge span{
  font-weight:600;
  display:block;
  font-size:.95rem;
}
.hero-badge small{
  display:block;
  font-size:.78rem;
  color:#4b6a51;
}
.hero-badge-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(63,122,86,.12);
  color:#3fa86a;
  display:grid;
  place-items:center;
}
.hero-badge-icon svg{
  width:22px;
  height:22px;
}
.hero-content{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  align-items:flex-start;
  gap:1.5rem;
  align-items:flex-start;
  padding:2.1rem;
  border-radius:36px;
  background:var(--glass-panel-bg);
  border:1px solid var(--glass-panel-border);
  box-shadow:0 35px 75px rgba(3,7,4,.72);
  backdrop-filter:blur(24px) saturate(1.35);
  position:relative;
  overflow:hidden;
}
.hero-content::before,
.hero-content::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
}
.hero-content::before{
  background:linear-gradient(125deg,rgba(255,255,255,.18),rgba(255,255,255,0) 55%);
  mix-blend-mode:screen;
  opacity:.9;
}
.hero-content::after{
  background:radial-gradient(circle at 22% 25%,rgba(118,255,189,.14),transparent 55%);
  mix-blend-mode:screen;
  opacity:.65;
}
.hero-content > *{
  position:relative;
  z-index:1;
}
.hero--cinematic .hero-content{
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  isolation:unset;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,0.9fr);
  gap:2rem;
  grid-template-columns:minmax(0,1.15fr) minmax(0,0.9fr);
  gap:2rem;
}
.hero--cinematic .hero-content::before,
.hero--cinematic .hero-content::after{
  display:none;
}
.hero--cinematic .glass-card{
  background:linear-gradient(140deg,rgba(9,16,12,.78),rgba(6,10,8,.6));
  border:1px solid rgba(255,255,255,.18);
  border-radius:36px;
  box-shadow:0 30px 80px rgba(2,4,3,.75);
  padding:2.6rem;
  padding:2.6rem;
  backdrop-filter:blur(36px) saturate(1.35);
  -webkit-backdrop-filter:blur(36px) saturate(1.35);
  color:var(--hero-text-strong);
  position:relative;
  overflow:hidden;
}
.hero--cinematic .glass-card::after{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  opacity:.6;
}
.hero-content__primary{
  animation:heroFadeUp .9s ease-out both;
}
.hero-subline{
  margin:0 0 2rem;
  font-size:1.15rem;
  color:rgba(245,250,246,.92);
  max-width:52ch;
}
.hero-benefits{
  list-style:none;
  margin:0 0 2.2rem;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.hero-benefit{
  display:flex;
  gap:.8rem;
  padding:1rem 1.1rem;
  border-radius:24px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 45px rgba(2,4,3,.35);
}
.hero-benefit strong{
  display:block;
  font-size:1rem;
  margin-bottom:.15rem;
}
.hero-benefit small{
  display:block;
  color:rgba(255,255,255,.75);
  font-size:.85rem;
}
.hero-benefit-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#7fe0a5;
  background:linear-gradient(145deg,rgba(95,166,119,.2),rgba(28,41,33,.05));
  border:1px solid rgba(136,217,165,.4);
  flex-shrink:0;
}
.hero-benefit-icon svg{
  width:22px;
  height:22px;
}
.hero--cinematic .hero-actions{
  gap:1.2rem;
}
.hero--cinematic .hero-actions .btn{
  min-width:200px;
  font-size:1rem;
  padding:1rem 1.5rem;
  box-shadow:0 18px 35px rgba(3,6,4,.5);
}
.hero--cinematic .hero-actions .btn.primary{
  background:linear-gradient(130deg,#58d081,#3f9c60);
  border:none;
  color:#fff;
}
.hero--cinematic .hero-actions .btn.ghost{
  border-color:rgba(255,255,255,.35);
  color:#fff;
}
.hero-content__reference{
  padding:2.4rem 2.2rem 2.6rem;
  animation:heroFadeUp 1.2s ease-out .08s both;
}
.hero-content__reference::before{
  content:'';
  position:absolute;
  inset:10% 8% 8% 8%;
  border-radius:32px;
  background:radial-gradient(circle at 30% 20%, var(--hero-reference-glow), transparent 60%);
  filter:blur(25px);
  opacity:.8;
  z-index:0;
  pointer-events:none;
}
.hero-reference{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}
.hero-reference__media{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 22px 50px rgba(2,4,3,.6);
}
.hero-reference__media img{
  display:block;
  width:100%;
  height:230px;
  height:230px;
  object-fit:cover;
  filter:saturate(1.05) contrast(1.05);
}
.hero-reference__badge{
  position:absolute;
  bottom:1rem;
  left:1rem;
  padding:.35rem .8rem;
  border-radius:999px;
  background:rgba(7,12,9,.7);
  border:1px solid rgba(255,255,255,.35);
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-reference__meta{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.hero-reference__meta h3{
  margin:0;
  font-size:1.2rem;
}
.hero-reference__meta small{
  color:rgba(255,255,255,.75);
}
.hero-reference__rating{
  font-size:1.25rem;
  letter-spacing:.15em;
  color:#ffd479;
  text-shadow:0 8px 22px rgba(0,0,0,.35);
}
.hero-reference__quote{
  margin:0;
  font-size:1.05rem;
  line-height:1.6;
  color:rgba(255,255,255,.92);
  font-style:italic;
}
.hero-stats{
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.hero-stats div{
  padding:1rem 1.1rem;
  border-radius:20px;
  border:1px solid var(--hero-stats-border);
  background:rgba(0,0,0,.18);
}
.hero-stats dt{
  margin:0 0 .35rem;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
}
.hero-stats dd{
  margin:0;
  font-size:1.05rem;
  font-weight:600;
  color:#fefefe;
}
.hero-reference__cta{
  align-self:flex-start;
  text-decoration:none;
  font-weight:600;
  color:#9fe5b7;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  position:relative;
}
.hero-reference__cta::after{
  content:'›';
  font-size:1.2rem;
  transition:transform .2s ease;
}
.hero-reference__cta:hover::after,
.hero-reference__cta:focus-visible::after{
  transform:translateX(4px);
}
@media (max-width:1100px){
  :root{
    --header-overlap:110px;
  }
}
@media (max-width:900px){
  .hero{
    min-height:75vh;
    padding:3.5rem 0 2.5rem;
    min-height:75vh;
    padding:3.5rem 0 2.5rem;
  }
}
@media (max-width:640px){
  .hero-badges{
    gap:.75rem;
  }
  .hero-badge{
    width:100%;
    justify-content:flex-start;
  }
}
@media (max-width:1200px){
  .hero--cinematic .hero-content{
    grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);
  }
}
@media (max-width:960px){
  :root{
    --header-overlap:100px;
  }
  .hero{
    align-items:flex-start;
    min-height:auto;
  }
  .hero-inner{
    gap:2rem;
  }
}
@media (max-width:960px){
  .hero--cinematic .hero-content{
    grid-template-columns:1fr;
  }
  .hero-content__reference{
    order:2;
  }
  .hero-benefits{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hero-reference__media img{
    height:260px;
  }
}
@media (max-width:720px){
  :root{
    --header-overlap:84px;
  }
  .hero{
    padding:3rem 0 2rem;
  }
  .hero-meta{
    gap:.5rem;
  }
  .hero-benefits{
    grid-template-columns:1fr;
  }
  .hero-reference__media img{
    height:220px;
  }
}
@media (max-width:640px){
  :root{
    --header-overlap:88px;
  }
  .hero-photo img{
    object-fit:contain;
    min-height:60vh;
    object-fit:contain;
    min-height:60vh;
    background:#030705;
  }
  .hero--cinematic .glass-card{
    padding:2rem;
  }
  .hero--cinematic .hero-actions .btn{
    width:100%;
    min-width:0;
    justify-content:center;
  }
}
@media (max-width:560px){
  :root{
    --header-overlap:30px;
  }
  .siteHeader{
    padding:4px 8px;
  }
  .headerMain{
    min-height:52px;
    padding:6px 4px;
  }
  .brand{
    width:104px;
    height:56px;
  }
  .hero{
    --hero-pad-top:2.4rem;
    --hero-pad-bottom:1.6rem;
  }
  .hero-content{
    padding:1.5rem;
    gap:1.4rem;
  }
  .hero-actions{
    width:100%;
    gap:.8rem;
  }
  .hero-actions .btn{
    width:100%;
    min-width:0;
  }

  .hero-benefit-icon{
    display:none;
  }
  .hero-benefit{
    padding:.9rem 1rem;
  }
  .hero-stats{
    grid-template-columns:1fr;
  }
}
@media (prefers-reduced-motion: reduce){
  .hero-photo,
  .hero-photo img{
    transform:none!important;
  }
  .hero-content__primary,
  .hero-content__reference{
    animation:none!important;
  }
  .hero-scroll__indicator::after{
    animation:none!important;
  }
}
.hero-eyebrow{
  margin:0 0 .6rem;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent-dark);
  font-weight:600;
}
.hero--cinematic .hero-eyebrow{
  color:#f4f8f0;
  text-shadow:0 4px 20px rgba(6,12,8,.6);
}
.hero-card h1{
  font-size:clamp(2.3rem,3.2vw,3.5rem);
  line-height:1.12;
  margin:0 0 1rem;
}
.hero--cinematic h1{
  font-size:clamp(2.6rem,4vw,3.8rem);
  line-height:1.08;
  color:#fff;
  margin-bottom:1rem;
}
.hero--cinematic .hero-topline{
  gap:1.4rem;
}
.hero--cinematic .hero-inner{
  gap:3rem;
}
.hero--cinematic .hero-meta{
  gap:.8rem;
}
.hero--cinematic .hero-content__reference{
  border:1px solid rgba(255,255,255,.22);
}
.hero--cinematic .hero-reference__rating span{
  font-family:'Inter',system-ui;
}
.hero-card p{
  margin:0 0 1.8rem;
  color:#344435;
  font-size:1.05rem;
  font-weight:500;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
@keyframes slideshow-pop{
  0%{transform:scale(1.02)}
  100%{transform:scale(1)}
}
@keyframes heroFadeUp{
  0%{
    opacity:0;
    transform:translate3d(0,35px,0);
  }
  100%{
    opacity:1;
    transform:translate3d(0,0,0);
  }
}
@keyframes scrollPulse{
  0%{
    transform:translateY(-120%);
    opacity:0;
  }
  35%{
    opacity:1;
  }
  100%{
    transform:translateY(140%);
    opacity:0;
  }
}

.section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.5rem}
.section-title h2{font-size:clamp(1.8rem,2.3vw,2.4rem);margin:0;position:relative}
.section-title h2::after{
  content:'';
  display:block;
  width:64px;
  height:3px;
  margin-top:.65rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--accent),rgba(63,168,106,.2));
}
.section-title p{margin:0;color:var(--muted)}

.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.4rem;border-radius:999px;text-decoration:none;background:var(--surface-alt);color:var(--text);border:1px solid var(--border);font-weight:600;transition:transform .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,0,0,.12)}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 10px 24px rgba(20,40,28,.15)}
.btn.ghost{background:transparent;border:1px solid var(--border)}

.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.8rem}
.service-card{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);border:1px solid var(--border);transition:transform .25s ease,box-shadow .25s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.service-card img{filter:saturate(1.05)}
.service-card img{width:100%;height:190px;object-fit:cover}
.service-card .card-body{padding:1.35rem}
.service-card h3{margin:.2rem 0 .5rem}
.service-card p{margin:0;color:var(--muted)}
.process{background:var(--surface-alt)}
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
.process-card{background:var(--surface);border-radius:20px;padding:1.6rem;box-shadow:var(--shadow-soft);border:1px solid var(--border);display:grid;gap:.9rem}
.process-card span{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:var(--accent);color:#fff;font-weight:700}
.process-card h3{margin:0}
.process-card p{margin:0;color:var(--muted)}

@media (max-width: 1024px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 720px){
  .services-grid{grid-template-columns:1fr;gap:1.4rem}
  .service-card img{height:170px}
}

.services-carousel{--radius:300px;--count:4;display:grid;gap:1.2rem;place-items:center;margin:1.6rem 0 2.8rem}
.carousel-viewport{position:relative;width:100%;height:340px;perspective:1000px;display:flex;align-items:center;justify-content:center;outline:none;cursor:grab;touch-action:pan-y}
.carousel-viewport:active{cursor:grabbing}
.carousel-track{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.carousel-card{position:absolute;top:50%;left:50%;width:min(260px,68vw);transform-style:preserve-3d;transform:translate(-50%,-50%) rotateY(calc(var(--i) * (360deg / var(--count)))) translateZ(var(--radius))}
.carousel-card .card-inner{background:var(--surface);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .5s ease,opacity .5s ease,box-shadow .5s ease;opacity:.25;transform:scale(.8)}
.carousel-card.is-near .card-inner{opacity:.7;transform:scale(.92)}
.carousel-card.is-front-secondary .card-inner{opacity:.95;transform:scale(.98);box-shadow:var(--shadow)}
.carousel-card.is-front .card-inner{opacity:1;transform:scale(1.02);box-shadow:var(--shadow)}
.carousel-card img{width:100%;height:150px;object-fit:cover}
.carousel-card .card-body{padding:1.3rem}
.carousel-card h3{margin:.2rem 0 .5rem}
.carousel-card p{margin:0;color:var(--muted)}
.carousel-controls{display:flex;gap:.8rem;justify-content:center}
.carousel-btn{width:44px;height:44px;border-radius:999px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);cursor:pointer;font-size:1.4rem;display:grid;place-items:center;transition:transform .2s ease,box-shadow .2s ease}
.carousel-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.carousel-hint{margin:0;text-align:center;color:var(--muted);font-size:.95rem}
.carousel-viewport:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:24px}

@media (max-width: 720px){
  .carousel-viewport{height:300px;perspective:800px}
  .services-carousel{--radius:240px}
  .carousel-card img{height:140px}
}

.references{background:var(--surface-alt)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
.gallery-card{position:relative;text-decoration:none;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);color:#fff}
.gallery-card img{width:100%;height:240px;object-fit:cover;transform:scale(1);transition:transform .3s ease}
.gallery-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.55))}
.gallery-card:hover img{transform:scale(1.05)}
.gallery-card .caption{position:absolute;left:1rem;bottom:1rem;font-weight:600;z-index:1}

.why-us{background:var(--surface);overflow:hidden}
.why-us-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center}
.why-us-text h2{margin-top:0}
.why-us-text p{color:var(--muted)}
.why-us-list{margin:1.2rem 0 0;padding:0;list-style:none;display:grid;gap:.6rem}
.why-us-list li{background:var(--surface-alt);padding:.7rem 1rem;border-radius:12px;box-shadow:var(--shadow-soft);font-weight:600}
.why-us-media{margin:0;display:flex;justify-content:flex-end;align-items:stretch;overflow:hidden;border-radius:24px;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--surface)}
.why-us-media-inner{width:100%;height:120%;transform-origin:center;will-change:transform}
.why-us-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}

.slideshow-section{background:var(--surface)}
.slideshow{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--surface-alt);aspect-ratio:16/9;width:100%;max-height:70vh}
.slideshow::before{
  content:'';
  position:absolute;
  inset:-6%;
  background:var(--slide-bg, #e9efe6);
  background-size:cover;
  background-position:center;
  filter:blur(24px) saturate(1.05) brightness(1.08);
  transform:scale(1.04);
  opacity:1;
  z-index:0;
}
.slideshow::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(0,0,0,.12));opacity:.18;z-index:1}
.slideshow a{display:flex;align-items:center;justify-content:center;min-height:100%;background:transparent;position:relative;z-index:2}
.slideshow img{width:100%;height:100%;max-height:70vh;object-fit:contain;transition:opacity .6s ease,filter .6s ease}
.slideshow img.is-fading{opacity:.35;filter:blur(2px)}
.slideshow img.is-zooming{animation:slideshow-pop .9s ease}
.slideshow-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;pointer-events:none;z-index:3}
.slideshow-btn{pointer-events:auto;width:44px;height:44px;border-radius:50%;border:0;background:rgba(32,60,45,.55);color:#fff;font-size:2rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background .2s ease}
.slideshow-btn:hover{background:rgba(32,60,45,.75);transform:scale(1.05)}
.slideshow-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.slideshow-indicator{position:absolute;right:1rem;bottom:1rem;background:rgba(32,60,45,.55);color:#fff;padding:.35rem .75rem;border-radius:999px;font-size:.85rem;letter-spacing:.01em}
.slideshow-hint{margin-top:1rem;color:var(--muted)}

.about{padding-top:2.5rem}

.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:start}
.about-grid > div:first-child{background:var(--surface);border-radius:20px;padding:2rem;box-shadow:var(--shadow-soft);border:1px solid var(--border)}
.about-list{display:grid;gap:.8rem;margin-top:1.5rem;padding:0;list-style:none}
.about-list li{background:var(--surface);padding:.9rem 1rem;border-radius:14px;box-shadow:0 10px 22px rgba(25,40,32,.08);display:flex;align-items:flex-start;gap:.6rem}
.about-list li::before{content:'✓';color:var(--accent);font-weight:700}
.about-map{border-radius:18px;overflow:hidden;box-shadow:var(--shadow-soft);min-height:320px;background:var(--surface-alt);display:flex}
.about-map iframe{width:100%;height:100%;min-height:320px;border:0;display:block;flex:1}
.map-consent{display:flex;align-items:center;justify-content:center;text-align:center;gap:1rem;padding:2rem;flex:1}
.map-consent h3{margin-top:0}
.map-note{color:var(--muted);font-size:.9rem;margin:1rem 0 0}

.cta{
  background:url("../../docs/Bilder/Galabau-Leistungen/3.png");
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center 35%;
  margin-top:2.5rem;
  position:relative;
  isolation:isolate;
  color:#fff;
  border-radius:28px;
  padding:3rem;
  display:grid;
  gap:1rem;
  box-shadow:var(--shadow)
}
.cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(30,55,40,.65),rgba(30,55,40,.25));
  border-radius:inherit;
  z-index:-1;
}
.cta-actions{display:flex;flex-wrap:wrap;gap:1rem}
.cta .btn{background:var(--accent);color:#fff;border:1px solid transparent}
.cta .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}

.page-hero{padding:4rem 0 3rem;background:linear-gradient(135deg,#d7eadb,#c6dfce)}
.page-hero .container{display:grid;gap:1rem}
.page-hero p{color:var(--muted);max-width:600px}
.page-hero .page-actions{display:flex;flex-wrap:wrap;gap:.8rem}

.gallery-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;margin:1.5rem 0 0}
.gallery-note{margin:0;color:var(--muted)}

.legal-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}
.legal-stack{display:grid;gap:1.5rem}
.legal-section{background:var(--surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-soft);border:1px solid var(--border)}
.legal-section h2{margin-top:0}
.legal-section p{margin:0 0 .75rem}
.legal-section p:last-child{margin-bottom:0}
.legal-credit .credit-content{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}
.legal-credit .credit-logo{max-width:220px;flex:0 1 220px}
.legal-credit svg{width:100%;height:auto;display:block}
.legal-list{margin:0;padding-left:1.2rem;display:grid;gap:.5rem}
.legal-aside{background:var(--surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-soft);border:1px solid var(--border)}
.legal-aside h2{margin-top:0}
.legal-note{margin-top:1rem;background:var(--accent-soft);border-radius:12px;padding:.9rem;color:var(--accent-dark)}

.contact-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:start;margin-top:1.5rem}
.contact-form{display:grid;gap:1rem;background:var(--surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.contact-form label{display:grid;gap:.4rem;font-weight:600}
.contact-form input,.contact-form textarea{border-radius:12px;border:1px solid var(--border);padding:.75rem;font:inherit;background:#f9fbf8}
.contact-form .contact-checkbox{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;line-height:1.4}
.contact-form .contact-checkbox input{margin-top:.2rem}
.contact-form .contact-checkbox .checkbox-text{display:block}
.contact-form .form-note{font-size:.9rem;color:var(--muted);margin:0}
.contact-form .form-result{font-weight:600;margin:0;min-height:1.2em}
.contact-info{background:var(--surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.contact-cards{display:grid;gap:1rem;margin:1.2rem 0}
.contact-card{background:var(--surface-alt);border-radius:16px;padding:1rem;border:1px solid var(--border);box-shadow:0 10px 24px rgba(25,40,32,.08)}
.contact-card span{display:block;font-weight:600;margin-bottom:.3rem}
.contact-card a{text-decoration:none;color:var(--accent);font-weight:600}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
.gitem{margin:0;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);aspect-ratio:4/3}
.gitem figcaption{display:none}
.gitem a{display:block;height:100%}
.gitem img{width:100%;height:100%;object-fit:cover}

.site-footer{border-top:1px solid var(--border);padding:3rem 0;background:var(--surface);margin-top:2rem}
.site-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}
.footer-logo{height:150px;margin-bottom:.6rem}
.footer-logo-main{height:150px}
.footer-left p,.footer-right p{margin:0;color:var(--muted)}
.footer-links{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-top:.75rem}
.footer-links a{text-decoration:none;color:var(--muted);font-weight:600}
.footer-links a:hover,.footer-links a:focus{color:var(--text)}

.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:9999;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:1.25rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.cookie-text{flex:1 1 260px}
.cookie-text p{margin:.35rem 0 0;color:var(--muted)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.6rem}

.text-center{text-align:center}

.btn:focus-visible,
.nav-list a:focus-visible,
.gallery-card:focus-visible,
.contact-card a:focus-visible,
.slideshow-btn:focus-visible,
.carousel-btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
  border-radius:999px;
}

.slideshow-btn:focus-visible{
  border-radius:50%;
}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:9999}
.lightbox-inner{max-width:90%;max-height:90%;text-align:center}
.lightbox-inner img{max-width:100%;max-height:80vh;border-radius:12px}
.lightbox .close{margin-top:.6rem;background:var(--surface);color:var(--text);border:0;padding:.4rem .6rem;border-radius:6px;cursor:pointer}
.lightbox .caption{color:#fff;margin-top:.5rem}

@media (max-width:1000px){
  .hero-card{max-width:100%}
  .why-us-inner{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  .legal-layout{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .about{padding:3.5rem 2rem;margin:2rem auto}
}

@media (max-width:1024px){
  .site-header{
    padding:.85rem 1rem 0;
  }
  .header-shell{
    border-radius:28px;
    padding:.9rem 1.1rem 1rem;
  }
}
@media (max-width:900px){
  .header-row--main{
    flex-direction:column;
    align-items:flex-start;
  }
  .main-nav{
    width:100%;
  }
  .nav-list{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:1rem;
  }
  .header-actions{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}
@media (max-width:700px){
  .site-header{
    padding:.75rem .75rem 0;
  }
  .header-row--meta{
    flex-direction:column;
    align-items:flex-start;
    gap:.35rem;
  }
  .header-contact{
    gap:.65rem;
  }
  .header-meta-actions{
    width:100%;
    justify-content:flex-start;
  }
  .header-row--main{
    gap:1rem;
  }
  .header-actions{
    flex-direction:column;
    align-items:stretch;
    gap:.65rem;
  }
  .nav-cta{
    width:100%;
  }
}
@media (max-width:480px){
  .header-shell{
    border-radius:22px;
  }
  .site-header .brand{
    padding:.35rem .7rem;
  }
  .site-header .brand-logo{
    height:58px;
  }
}

/* =========================================================
   HEADER Anfang
========================================================= */

.siteHeader{
  position: sticky;
  top: 0;
  z-index: 80;
  padding: 12px 14px;
  background: linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,0));
}

/* IMPORTANT: muss overflow sichtbar sein, sonst wird das überlappende Logo abgeschnitten */
.headerShell{
  width: min(var(--header-max-width), 100%);
  margin: 0 auto;
  border-radius: 22px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(25,25,25,.55);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
  overflow: visible;
  position: relative;
}
/* rechte "Abschluss-Kanten" wie im Referenzbild */
/* Clean right-side shaping (no “second box”) */



/* Meta row */
.headerMeta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 10px 22px;
  color: rgba(238,247,240,.74);
  font-size: 13px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}

/* Screenshot: links quasi leer */
.metaLeft{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  opacity:0;
  pointer-events:none;
}

.metaRight{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}

.metaLink{
  text-decoration:none;
  color: rgba(238,247,240,.92);
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.metaLink:hover{ border-bottom-color: rgba(34,197,94,.34); }
.metaSep{ opacity:.6; }
.metaIcon{ opacity:.9; margin-right:6px; }

/* Main row: GRID statt FLEX -> Nav sitzt wirklich in der Mitte */
.headerMain{
  display:grid;
  grid-template-columns: 1fr auto;   /* links: nav-zone | rechts: button */
  align-items:center;
  gap: 18px;
  padding: 12px 18px 14px;
  min-height: 66px;
  position: relative;                /* für Logo/Offsets */
}

/* Nav-Zone bekommt linken Abstand fürs überlappende Logo */
.headerMain .nav{
  justify-content: flex-end;
  padding-left: calc(210px + 24px); /* .brand width + Abstand */
  padding-right: 16px;
}

/* Logo "Badge": ragt über die Shell nach oben */
.brand{
  width: 210px;
  height: 115px;                 /* <- hier darfst du größer werden */
  border-radius: 16px;
  background: rgba(255,255,255,.0);
  border: 0px solid rgba(255,255,255,.14);
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
  padding: 8px;

  position: absolute;           /* <- AUS dem Layout, kein Header-Wachstum */
  left: 0px;                   /* <- bündig zur headerMain Padding */
  top: 35%;
  transform: translateY(-55%);  /* <- zieht’s leicht über die Mitte hinaus */
  z-index: 5;

  display:flex;
  align-items:center;
  justify-content:center;                 /* <-- DAS ist das “überlappt” */
}

/* Logo füllt Karte */
.brandLogo{
  width: 100%;
  height: 85%;
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  object-fit: contain;
  transform: scale(1.35) translateY(-2px); /* <-- macht’s lesbar */
  transform-origin: center;
}

/* optionaler Text (Screenshot hat den nicht) */
.brandText strong{ display:block; letter-spacing:-.01em; }
.brandText small{ display:block; color: rgba(238,247,240,.68); margin-top:2px; }

/* Nav centered */
.nav{
  position:relative;
  display:flex;
  justify-content:center;
}

/* Toggle bleibt wie gehabt */
.navToggle{
  display:none;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(238,247,240,.92);
  border-radius: 14px;
  padding: 10px 12px;
  cursor:pointer;
}

.navList{
  list-style:none; padding:0; margin:0;
  display:flex; align-items:center;
  gap: 26px;
  justify-content:flex-end;
}

/* Textlinks + underline */
.navList a{
  text-decoration:none;
  padding: 10px 6px;
  border-radius: 10px;
  border: 0;
  background: transparent;
  color: rgba(238,247,240,.90);
  font-weight: 600;
  position: relative;
  transition: color .18s var(--easeOut);
}

.navList a:hover{ color: rgba(163,230,53,.95); }
.navList a.isActive{ color: rgba(163,230,53,.95); }

.navList a.isActive::after,
.navList a:hover::after{
  content:"";
  position:absolute;
  left: 6px;
  right: 6px;
  bottom: 4px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}

/* CTA rechts */
.navCtaItem{ margin-left: 6px; }

.navCta{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  height: 44px;
  padding: 0 22px;
  border-radius: 999px;

  width: fit-content;     /* <-- verhindert Balken */
  justify-self: end;      /* <-- bleibt rechts kompakt */
  align-self: center;     /* <-- kein vertical stretch */

  border: 1px solid rgba(163,230,53,.42);
  background: linear-gradient(180deg, rgba(140,230,95,1), rgba(70,170,55,1));
  color: rgba(6,35,17,.95);
  font-weight: 800;
  text-decoration:none;
  box-shadow: 0 14px 26px rgba(34,197,94,.25);

  white-space: nowrap;
  letter-spacing: .01em;
  transition: filter .18s var(--easeOut), transform .18s var(--easeOut), box-shadow .18s var(--easeOut);
}
.navCta:hover{
  filter: brightness(1.05);
  transform: translateY(-1px);
}

/* mobile nav */
@media (max-width: 920px){
  .siteHeader{
    padding: 6px 10px;
    background: linear-gradient(180deg, rgba(6,10,8,.82), rgba(6,10,8,.3));
  }
  .headerShell{
    background: rgba(10,16,12,.86);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 18px 36px rgba(0,0,0,.28);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-radius: 18px;
  }
  .headerMeta{
    display:none;
  }
  .navToggle{ display:inline-flex; align-items:center; justify-content:center; }
  .headerMain{
    display:flex;
    align-items:center;
    justify-content:space-between;
    grid-template-columns: none;
    padding: 10px 6px;
    gap: 12px;
    min-height: 58px;
  }
  .headerMain .nav{
    justify-content:flex-end;
    padding-left: 0;
    padding-right: 0;
  }

  /* Logo auf mobile: größer, weiter unten, integriert */
  .brand{
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: 120px;
    height: 64px;
    margin: 0;
    box-shadow: 0 12px 24px rgba(0,0,0,.28);
  }
  .brandLogo{ transform: scale(1.05); }

  .navList{
    position: static;
    flex-direction:row;
    align-items:center;
    justify-content:flex-end;
    width: auto;
    padding: 0;
    gap: 14px;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .navList a{
    padding: 6px 4px;
    border-radius: 10px;
    background: transparent;
    font-size: 13px;
  }
  .navList a::after{ display:none; }

  .navCtaItem{
    margin-left: 0;
    margin-top: 0;
  }
  .navCta{
    width:auto;
    justify-self:center;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
  }
  .metaRight{
    width: 100%;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
  }
}
/* =========================================================
   HEADER ENDE
========================================================= */

/* =========================================================
   Referenzen Page Styles (scoped to .page-referenzen)
========================================================= */
body.page-referenzen{
  --bg0:#f4f8f1;
  --bg1:#edf4ee;
  --bg2:#e3efe6;
  --fg:#1b2a21;
  --mut:rgba(95,114,101,.85);
  --surface:#ffffff;
  --surface-alt:#edf4ee;
  --border:#d9e6dd;
  --accent:#4aa96c;
  --accent-dark:#2a6f45;
  --glass:rgba(255,255,255,.78);
  --glassB:rgba(27,42,33,.08);
  --g1:#4aa96c;
  --g2:#3a9a5f;
  --g3:#8fd4a8;
  --soil:#8b5e34;
  --shadow: 0 24px 60px rgba(20,40,28,.12);
  --shadowSoft: 0 12px 30px rgba(20,40,28,.08);
  --radius-xl: 34px;
  --radius-lg: 26px;
  --radius-md: 18px;
  --radius-sm: 14px;
  --ring: rgba(74,169,108,.22);
  --ring2: rgba(74,169,108,.18);
  --easeOut: cubic-bezier(.16,1,.3,1);
  --easeInOut: cubic-bezier(.65,0,.35,1);
  --container: 1180px;
  --vh: 1vh;
  --gradeHue: 0deg;
  --gradeSat: 1;
  margin:0;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  color:var(--fg);
  background:
    radial-gradient(1100px 820px at 18% -18%, rgba(74,169,108,.10), transparent 60%),
    radial-gradient(900px 680px at 92% -10%, rgba(143,212,168,.12), transparent 60%),
    radial-gradient(900px 760px at 55% 115%, rgba(139,94,52,.08), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
  overscroll-behavior-y: none;
}

.page-referenzen a{ color:inherit; }
.page-referenzen main img{ max-width:100%; display:block; height:auto; }
.page-referenzen .container{
  width: min(var(--container), calc(100% - 28px));
  margin: 0 auto;
  padding: 0;
  max-width: none;
}

/* Buttons */
.page-referenzen .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 14px;
  border-radius: 16px;
  border:1px solid var(--border);
  background: var(--surface);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadowSoft);
  color: var(--fg);
  text-decoration:none;
  cursor:pointer;
  user-select:none;
  transition: transform .18s var(--easeOut), border-color .18s var(--easeOut);
}
.page-referenzen .btn:hover{ transform: translateY(-1px); border-color: rgba(74,169,108,.34); }
.page-referenzen .btn.primary{
  border-color: rgba(74,169,108,.35);
  background: linear-gradient(135deg, rgba(74,169,108,.16), rgba(143,212,168,.12));
}

/* Page hero */
.page-referenzen main{ position:relative; z-index:3; }
.page-referenzen .pageHero{
  padding: 64px 0 22px;
}
.page-referenzen .pageHero h1{
  font-size: clamp(34px, 4.2vw, 54px);
  line-height: 1.02;
  margin: 0 0 10px;
  letter-spacing: -.03em;
}
.page-referenzen .pageHero p{
  margin: 0;
  max-width: 70ch;
  color: var(--mut);
  line-height: 1.7;
}

/* Gallery */
.page-referenzen .galleryToolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  margin: 18px 0 12px;
}
.page-referenzen .filterChips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.page-referenzen .chip{
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  padding: 8px 10px;
  border-radius: 999px;
  cursor:pointer;
  user-select:none;
  transition: transform .18s var(--easeOut), border-color .18s var(--easeOut);
}
.page-referenzen .chip:hover{ transform: translateY(-1px); border-color: rgba(74,169,108,.34); }
.page-referenzen .chip.isActive{
  border-color: rgba(74,169,108,.42);
  box-shadow: 0 0 0 4px rgba(74,169,108,.12);
}
.page-referenzen .gallery{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
@media (max-width: 1100px){ .page-referenzen .gallery{ grid-template-columns: repeat(3, 1fr);} }
@media (max-width: 760px){ .page-referenzen .gallery{ grid-template-columns: repeat(2, 1fr);} }
.page-referenzen .gitem{
  margin:0;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadowSoft);
  transform: translateZ(0);
}
.page-referenzen .gitem a{ display:block; }
.page-referenzen .gitem img{
  width:100%;
  height: 220px;
  object-fit: cover;
  transition: transform .35s var(--easeOut), filter .35s var(--easeOut);
  filter: saturate(1.05);
}
.page-referenzen .gitem:hover img{
  transform: scale(1.03);
  filter: saturate(1.2);
}
.page-referenzen .galleryActions{
  margin: 18px 0 0;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}
.page-referenzen .galleryNote{ color: var(--mut); margin:0; }

/* Lightbox */
.page-referenzen .lightbox{
  position:fixed;
  inset:0;
  z-index: 200;
  display:none;
  place-items:center;
  background: rgba(0,0,0,.75);
  backdrop-filter: blur(6px);
  padding: 18px;
}
.page-referenzen .lightbox.isOpen{ display:grid; }
.page-referenzen .lightboxInner{
  width: min(1040px, 100%);
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.24);
  box-shadow: var(--shadow);
  background: rgba(0,0,0,.45);
}
.page-referenzen .lightboxTop{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding: 12px 12px;
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.page-referenzen .lightboxTop strong{ font-size: 14px; color: rgba(238,247,240,.90); }
.page-referenzen .lightboxClose{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(238,247,240,.92);
  border-radius: 14px;
  padding: 8px 10px;
  cursor:pointer;
}
.page-referenzen .lightboxImg{
  width:100%;
  height: min(72vh, 760px);
  object-fit: contain;
  background: rgba(0,0,0,.55);
}
