/* Basic reset and layout */
:root{
  --bg:#fff7ed;
  --card:#ffffff;
  --muted:#6b7280;
  /* Palette: charcoal + deep red accents */
  --accent:#a32020;   /* primary red accent (buttons, borders) */
  --accent-2:#7f1e1e; /* darker/deeper red for hover/variants */
  --danger:#c53030;   /* error/red */
  /* headings / strong text use a near-black charcoal */
  --dark-blue:#1f1f1f; /* used as primary text color */
  --container:1100px;
  --radius:10px;
  color-scheme: light;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,Arial,Helvetica,sans-serif;
  color:#0b1220;
  background:linear-gradient(180deg,#fffaf0 0%, #ffffff 100%);
  -webkit-font-smoothing:antialiased;
}
.container{max-width:var(--container);margin:0 auto;padding:1.5rem}
.site-header .container{padding:1.5rem 1.5rem;margin:0}
.header-inner{display:flex;align-items:center;justify-content:space-between;width:100%}
.header-right{display:flex;align-items:center;gap:1.5rem}
.brand-group{display:flex;align-items:center;gap:0.75rem}
.logo{height:40px;width:auto}
.brand{font-weight:700;text-decoration:none;color:var(--dark-blue);font-size:1.125rem}
.nav{display:flex;gap:1rem}
.nav a{color:var(--muted);text-decoration:none;transition:color 0.3s ease}
.nav a:hover{color:var(--accent)}
.nav-toggle{display:none;background:transparent;border:0;font-size:1.3rem;cursor:pointer;transition:opacity 0.3s ease}
.nav-toggle:hover{opacity:0.7}
.lang-toggle{background:transparent;border:0;padding:0;cursor:pointer;transition:opacity 0.3s ease;display:flex;align-items:center;gap:0.5rem;font-size:1.3rem;margin-left:auto}
.lang-toggle:hover{opacity:0.7}
.lang-btn{display:inline-block;opacity:0.5;transition:opacity 0.3s ease}
body.lang-en .en-btn{opacity:1}
body.lang-de .de-btn{opacity:1}
.site-header{background:#fff;border-bottom:3px solid var(--accent)}

.banner-animation{position:relative;width:100%;height:300px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.banner-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.banner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4)}
.banner-content{position:relative;z-index:10;text-align:center;color:#fff}
.banner-content h2{font-size:2.5rem;margin:0 0 .5rem;text-shadow:2px 2px 8px rgba(0,0,0,0.5)}
.banner-content p{font-size:1.25rem;margin:0;text-shadow:1px 1px 4px rgba(0,0,0,0.5)}

.banner-content{max-width:720px;margin:0 auto;padding:0 1rem}

.hero{padding:3rem 0;background:linear-gradient(90deg,#fff7ed 0%, #fff4e6 100%)}
.hero-inner{display:grid;grid-template-columns:1fr 450px;gap:1.5rem;align-items:center}
.hero-copy h1{font-size:2rem;margin:0 0 .5rem;color:var(--dark-blue)}
.hero-copy p{color:var(--muted);margin:0 0 1rem}
.btn{display:inline-block;padding:.6rem 1rem;background:var(--accent);color:#fff;border-radius:8px;text-decoration:none;transition:all 0.3s ease;border:2px solid var(--accent)}
.btn:hover{background:var(--dark-blue);border-color:var(--dark-blue)}
.hero-illustration{height:300px;max-width:100%;background:linear-gradient(135deg,#fff1e0,#fff4e6);border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(0,0,0,0.04);box-shadow:0 8px 24px rgba(10,20,30,0.06)}
.hero-illustration img{width:100%;height:100%;object-fit:cover;border-radius:10px}

.section{padding:2.5rem 0}
.section h2{color:var(--dark-blue)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:#fff;padding:1.25rem;border-radius:10px;box-shadow:0 6px 18px rgba(10,20,30,0.04);border-left:4px solid var(--accent)}
.card h3{margin-top:0;color:var(--dark-blue)}
.service-img{
  width:100%;
  /* use proportional sizing instead of fixed height to reduce cropping */
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  object-position: center center;
  border-radius:8px;
  margin:0 0 .75rem;
  border:1px solid rgba(0,0,0,0.06);
  transition:object-position .25s ease,height .25s ease;
}
/* ensure images focus on center area by default */
.services-grid .card:nth-child(1) .service-img,
.services-grid .card:nth-child(2) .service-img,
.services-grid .card:nth-child(3) .service-img{
  object-position: center center;
}

.about-inner{display:flex;justify-content:space-between;gap:2rem;align-items:center}
.stats{display:flex;gap:1rem}
.stat{background:linear-gradient(135deg,#a32020,#7f1e1e);padding:1rem;border-radius:8px;text-align:center;min-width:100px;color:#fff}
.stat strong{color:#fff}

.director{background:#f8f9fa}
.director-inner{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.director-photo{width:100%;max-width:360px;margin:0 auto}
.director-photo img{width:100%;height:auto;border-radius:12px;box-shadow:0 12px 32px rgba(10,20,30,0.12)}
.director-bio h3{font-size:1.75rem;color:var(--dark-blue);margin:0 0 0.25rem}
.director-bio .title{color:var(--accent);font-weight:600;font-size:1.1rem;margin:0 0 1rem}
.director-bio p{color:var(--muted);line-height:1.6;margin:0 0 1rem}

.privacy{min-height:60vh}
.privacy h1{font-size:2.2rem;color:var(--dark-blue);margin:0 0 1.5rem}
.privacy h2{font-size:1.5rem;color:var(--dark-blue);margin:1.5rem 0 1rem}
.legal-info{background:#f8f9fa;padding:1.5rem;border-left:4px solid var(--accent);border-radius:8px;margin:1rem 0 1.5rem}
.legal-info p{color:var(--muted);line-height:1.8;margin:0}

.contact-form{max-width:720px}
.form-row{margin-bottom:1rem}
.form-row label{display:block;margin-bottom:.35rem;color:var(--muted)}
.form-row input,.form-row textarea{width:100%;padding:.6rem;border:1px solid #e6eef5;border-radius:8px}
.form-checkbox{margin:1rem 0}
.form-checkbox label{display:flex;align-items:flex-start;gap:0.5rem;color:var(--muted);line-height:1.5;font-size:0.95rem;cursor:pointer}
.form-checkbox input[type="checkbox"]{margin-top:0.25rem;cursor:pointer;flex-shrink:0;width:18px;height:18px}
.form-actions{display:flex;align-items:center;gap:1rem}
.form-status{color:green;font-size:.95rem}

.site-footer{border-top:3px solid var(--accent);background:#fff}
.footer-inner{display:flex;justify-content:space-between;align-items:center}
.footer-inner p{color:var(--dark-blue);font-weight:500}
.footer-nav a{color:var(--muted);text-decoration:none;margin-left:.75rem;transition:color 0.3s ease}
.footer-nav a:hover{color:var(--accent)}

/* Language switching */
.de{display:none}
body.lang-de .en{display:none}
body.lang-de .de{display:inline}
body.lang-de .de-block{display:block}
body.lang-en .de-block{display:none}

@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  .services-grid{grid-template-columns:1fr}
  .about-inner{flex-direction:column}
  .director-inner{grid-template-columns:1fr}
  .nav{display:none}
  .nav-toggle{display:block}
  .lang-toggle{display:flex;margin-left:0}
}

@media (min-width:901px){
  .lang-toggle{margin-right:0}
}

/* --- Visual polish (small, non-structural) --- */

/* stronger section headings and subtle accent bar */
.section h2{
  color:var(--dark-blue);
  font-size:1.6rem;
  font-weight:700;
  margin:0 0 0.9rem;
  position:relative;
  padding-bottom:0.5rem;
}

/* small accent bar under section titles */
.section h2::after{
  content:"";
  display:block;
  width:56px;
  height:3px;
  background:var(--accent);
  border-radius:3px;
  margin-top:0.5rem;
  opacity:0.95;
}

/* Banner/Hero: slightly stronger hero heading and tighter tracking for premium feel */
.banner-content h2{
  font-weight:700;
  letter-spacing:-0.3px;
  line-height:1.05;
}
.hero-copy h1{
  font-size:2.25rem;
  font-weight:700;
  letter-spacing:-0.4px;
  margin-bottom:0.5rem;
}

/* body copy refinement for readability */
.hero-copy p,
.director-bio p,
.legal-info p,
.card p{
  color:var(--muted);
  line-height:1.6;
  font-size:1rem;
}

/* CTA polishing: subtle lift and smoother shadow */
.btn{
  padding:.66rem 1.1rem;
  border-radius:10px;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  box-shadow:0 6px 18px rgba(10,20,30,0.06);
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(10,20,30,0.08);
}

/* Stat cards: slightly more premium spacing and emphasis */
.stat{
  padding:1.15rem;
  border-radius:10px;
  box-shadow:0 10px 26px rgba(10,20,30,0.06);
  min-width:120px;
  text-align:center;
}
.stat strong{
  display:block;
  font-size:1.35rem;
  line-height:1;
  margin-bottom:0.45rem;
}
.stat span{font-size:0.95rem;opacity:0.96;display:block}

/* About copy column balance */
.about-inner > div:first-child p{
  margin-bottom:0.75rem;
  max-width:60ch; /* keep lines comfortable */
}

/* Director bio: slightly narrower paragraph for easier reading */
.director-bio p{ max-width:48ch; color:var(--muted); }

/* Small responsive tweaks to preserve hierarchy on small screens */
@media (max-width:900px){
  .hero-copy h1{ font-size:1.6rem; }
  .section h2{ font-size:1.375rem; }
  .section h2::after{ width:48px; height:3px; }
  .stat strong{ font-size:1.15rem; }
}

/* ---------- Visual polish (typography & spacing, non-structural) ---------- */

/* stronger, more premium section headings */
.section h2{
  font-size:1.85rem;
  font-weight:800;
  line-height:1.08;
  margin:0 0 1rem;
  color:var(--dark-blue);
  letter-spacing:-0.3px;
}

/* banner / hero stronger hierarchy */
.banner-content h2{
  font-size:3rem;
  font-weight:800;
  line-height:1.02;
  letter-spacing:-0.6px;
  margin-bottom:0.35rem;
}
.banner-content p{ font-size:1.125rem; opacity:0.95; margin-bottom:0; }

/* hero copy refinement */
.hero-copy h1{
  font-size:2.6rem;
  font-weight:800;
  margin:0 0 .6rem;
  color:var(--dark-blue);
  letter-spacing:-0.4px;
}
.hero-copy p{ font-size:1.02rem; color:var(--muted); max-width:56ch; margin-bottom:1rem; }

/* CTA polished */
.btn{
  border-radius:12px;
  padding:.7rem 1.15rem;
  font-weight:700;
  box-shadow:0 10px 30px rgba(10,20,30,0.06);
}
.btn span{ display:inline-block; vertical-align:middle }

/* subtle emphasis using accent for small labels or important role text */
.director-bio .title{ color:var(--accent); font-weight:700; letter-spacing:0.2px }

/* About block: narrower measure and more breathing room */
.about-inner > div:first-child{
  max-width:62ch;
  padding-right:1rem;
}
.about-inner > div:first-child p{
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.66;
  margin-bottom:1rem;
}

/* Stat cards: more premium spacing, cleaner typography */
.stats{ display:flex; gap:1rem; align-items:stretch; margin-top:0.6rem }
.stat{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  padding:1.15rem 1rem;
  border-radius:12px;
  min-width:120px;
  box-shadow:0 14px 36px rgba(10,20,30,0.06);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.stat strong{
  font-size:1.45rem;
  line-height:1;
  display:block;
  margin-bottom:0.35rem;
}
.stat span{ font-size:0.95rem; opacity:0.98; }

/* Director photo/text balance */
.director-inner{ align-items:center; gap:2.25rem }
.director-photo{ max-width:360px; flex:0 0 360px }
.director-photo img{ border-radius:14px; box-shadow:0 18px 46px rgba(10,20,30,0.12) }

/* Director bio text polish */
.director-bio p{ color:var(--muted); line-height:1.7; max-width:52ch; margin:0 }

/* Slightly increased rhythm between major sections */
.section{ padding:3rem 0 }

/* Keep small screens readable but preserved layout */
@media (max-width:900px){
  .banner-content h2{ font-size:2rem }
  .hero-copy h1{ font-size:1.5rem }
  .about-inner{ gap:1rem; }
  .about-inner > div:first-child{ max-width:100%; padding-right:0 }
  .stats{ flex-direction:row; gap:0.6rem }
  .stat{ min-width:86px; padding:.9rem; border-radius:10px }
}