:root{
  /* Unified VICOVI blues (match header/footer/waves) */
  --navy:#0b2a55;
  --navy-2:#112f61;
  --navy-dark:#071c38;
  --gold:#d4a21f;

  --white:#ffffff;
  --text:#0d1220;
  --muted:#5b677a;
  --shadow: 0 14px 40px rgba(11,42,85,.14);
  --radius:18px;
  --max:1200px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:#ffffff;
}

/* ==== Wave background (gold + dark blue) ==== */
.page-wrap{
  min-height:100vh;
  position:relative;
  overflow:hidden;
  background: var(--white);
}

/* top wave (bigger + not clipped) */
.page-wrap::before{
  content:"";
  position:absolute;
  top:-70px;              /* pull up so the curve doesn't look cut */
  left:-6px;
  width:120%;
  height:560px;           /* more headroom */
  background: url("../img/wave-top.svg") no-repeat top left;
  background-size: cover;
  z-index:0;
  pointer-events:none;
}

/* bottom wave */
.page-wrap::after{
  content:"";
  position:absolute;
  bottom:-70px;
  right:-6px;
  width:120%;
  height:560px;
  background: url("../img/wave-bottom.svg") no-repeat bottom right;
  background-size: cover;
  z-index:0;
  pointer-events:none;
}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding:0 18px;
  position:relative;
  z-index:2;
}

/* keep content away from waves (fix for Impressum/Datenschutz visibility) */
main{
  position:relative;
  z-index:2;
  padding-bottom:340px;   /* prevents overlap with bottom wave */
}

a{color:inherit; text-decoration:none}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px; border-radius:999px;
  background:var(--navy); color:var(--white);
  border:1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(11,42,85,.22);
  gap:10px;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px)}
.btn.secondary{background:transparent; color:var(--navy); border:1px solid rgba(11,42,85,.22); box-shadow:none}
.badge{
  display:inline-block; padding:6px 10px; border-radius:999px;
  background:rgba(212,162,31,.18);
  border:1px solid rgba(212,162,31,.50);
  color:var(--navy);
  font-weight:600; font-size:13px;
}

/* Header */
header.site-header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.86);
  border-bottom:1px solid rgba(11,42,85,.08);
}
.navbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:54px; width:auto; display:block} /* a bit bigger */
.brand .brand-sub{font-size:12px; color:var(--muted); margin-top:2px;}
nav ul{list-style:none; margin:0; padding:0; display:flex; gap:18px; align-items:center;}
nav a{font-weight:650; padding:10px 10px; border-radius:12px; position:relative;}
nav a.active::after, nav a:hover::after{
  content:""; position:absolute; left:10px; right:10px; bottom:6px;
  height:2px; background:var(--gold); border-radius:2px;
}
.menu-btn{display:none}
.mobile-nav{display:none} /* ensure not shown on desktop (fix duplicates) */
.mobile-nav.open{display:block}

/* Hero */
.hero{padding:34px 0 10px;}
.hero-grid{display:grid; grid-template-columns: 1.15fr .85fr; gap:22px; align-items:stretch;}
.hero-card{
  background: rgba(255,255,255,.92);
  border:1px solid rgba(11,42,85,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.hero-text{padding:26px 24px;}
.hero h1{margin:10px 0 8px; font-size:42px; line-height:1.08; letter-spacing:-0.02em}
.hero p{margin:0 0 18px; color:var(--muted); font-size:16px; line-height:1.6}
.hero-actions{display:flex; gap:10px; flex-wrap:wrap}

.hero-slider{position:relative; height:100%; min-height:360px; background:#000;}
.slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity .7s ease;}
.slide.active{opacity:1}
.slider-overlay{
  position:absolute; inset:0;
  background: linear-gradient(120deg, rgba(7,28,56,.55), transparent 55%),
              linear-gradient(180deg, rgba(0,0,0,.15), transparent 30%);
}
.slider-caption{
  position:absolute; left:18px; bottom:16px;
  color:#fff; font-weight:700;
  text-shadow:0 6px 22px rgba(0,0,0,.35);
  display:flex; gap:10px; align-items:center;
}
.dotbar{position:absolute; right:14px; bottom:14px; display:flex; gap:8px}
.dot{width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.35); border:1px solid rgba(255,255,255,.35)}
.dot.active{background:var(--gold); border-color:rgba(255,255,255,.65)}

/* Sections */
.section{padding:22px 0}
.section-title{display:flex; justify-content:space-between; gap:12px; align-items:end; margin:10px 0 14px;}
.section-title h2{margin:0; font-size:28px}
.section-title p{margin:0; color:var(--muted)}

.grid-3{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px;}
.card{
  background: rgba(255,255,255,.92);
  border:1px solid rgba(11,42,85,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.card-pad{padding:16px}
.card h3{margin:0 0 8px; font-size:18px}
.card p{margin:0; color:var(--muted); line-height:1.55}
.card-img{height:190px; background:#e9edf8; background-size:cover; background-position:center;}
.card a.link{display:inline-flex; gap:8px; margin-top:12px; font-weight:700; color:var(--navy);}
.card a.link span{color:var(--gold)}

/* CTA */
.cta{
  margin:18px 0 26px;
  padding:18px;
  border-radius: var(--radius);
  background: linear-gradient(120deg, var(--navy-dark), var(--navy));
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 55px rgba(11,42,85,.28);
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.cta strong{font-size:18px}
.cta small{display:block; opacity:.85; margin-top:4px}

/* Footer (match same blues as waves) */
footer{
  margin-top:26px;
  padding:26px 0 28px;
  color:rgba(255,255,255,.92);
  background: linear-gradient(120deg, var(--navy-dark), var(--navy));
  position:relative;
  z-index:2;
}
.footer-grid{display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap:16px;}
footer a{color:#fff; opacity:.92}
footer a:hover{opacity:1; text-decoration:underline}
.footer-note{margin-top:14px; opacity:.8; font-size:13px; border-top:1px solid rgba(255,255,255,.12); padding-top:12px}

/* Pages */
.page-header{padding:18px 0 8px;}
.page-header h1{margin:0; font-size:34px}
.page-content{
  background: rgba(255,255,255,.94);
  border:1px solid rgba(11,42,85,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:18px;
  color: var(--text); /* ensure readability */
}
.page-content p, .page-content li, .page-content span{color: var(--text)}

/* Form */
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.form-row.single{grid-template-columns:1fr}
input, textarea, select{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(11,42,85,.18);
  background:rgba(255,255,255,.97);
  outline:none;
}
input:focus, textarea:focus, select:focus{
  border-color: rgba(212,162,31,.95);
  box-shadow: 0 0 0 4px rgba(212,162,31,.22);
}
label{display:block; font-weight:700; margin:8px 0 6px}
.help{color:var(--muted); font-size:13px; margin-top:6px}
.alert{
  padding:12px 12px; border-radius:14px;
  border:1px solid rgba(11,42,85,.12);
  background: rgba(255,255,255,.92);
  margin-bottom:12px;
}
.alert.ok{border-color: rgba(46,160,67,.35); background: rgba(46,160,67,.08)}
.alert.err{border-color: rgba(220,53,69,.35); background: rgba(220,53,69,.08)}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* Responsive */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  nav ul{display:none}
  .menu-btn{display:inline-flex; padding:10px 12px; border-radius:12px; border:1px solid rgba(11,42,85,.15); background:#fff}
  .mobile-nav{display:none; padding:10px 0 14px;}
  .mobile-nav.open{display:block}
  .mobile-nav a{display:block; padding:10px 10px; border-radius:12px;}
  .mobile-nav a:hover{background:rgba(11,42,85,.06)}
  .page-wrap::before, .page-wrap::after{height:420px; top:-60px; bottom:-60px}
  main{padding-bottom:300px}
}

/* Abrissarbeiten: Motiv nach oben priorisieren (Köpfe sichtbar) */
.card-img.abris{
  background-position: top center !important;
}
@media (min-width: 981px){
  .card-img.abris{ height: 220px; }
}



/* FINAL FIX: white page headers on wave background */
.page-header-wave h1,
.page-header-wave p{
  color:#ffffff !important;
  text-shadow:0 8px 22px rgba(0,0,0,.35);
}
