/* 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 }
}

/* ---------- Final design pass: depth, hover states, focus polish ---------- */
:root{
  --surface:#ffffff;
  --surface-soft:#f6f7f9;
  --line:#e5e7eb;
  --shadow-soft:0 12px 34px rgba(15,23,42,0.08);
  --shadow-lift:0 22px 54px rgba(15,23,42,0.14);
}

body{
  background:
    linear-gradient(180deg,#f7f8fa 0%,#ffffff 42%,#f6f7f9 100%);
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,0.92);
  border-bottom:1px solid rgba(163,32,32,0.18);
  box-shadow:0 10px 30px rgba(15,23,42,0.06);
  backdrop-filter:blur(12px);
}

.brand{
  letter-spacing:0.2px;
  transition:color .2s ease, transform .2s ease;
}

.brand:hover{
  color:var(--accent);
  transform:translateX(2px);
}

.logo{
  filter:drop-shadow(0 6px 12px rgba(15,23,42,0.14));
}

.nav a{
  position:relative;
  padding:.4rem .1rem;
  font-weight:600;
}

.nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.12rem;
  height:2px;
  background:var(--accent);
  border-radius:999px;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .22s ease;
}

.nav a:hover::after{
  transform:scaleX(1);
}

.lang-toggle,
.nav-toggle{
  border-radius:999px;
}

.lang-toggle{
  padding:.25rem .45rem;
  background:#f3f4f6;
  border:1px solid var(--line);
}

.lang-toggle:hover,
.nav-toggle:hover{
  opacity:1;
  box-shadow:0 8px 18px rgba(15,23,42,0.10);
}

.banner-animation{
  min-height:320px;
  isolation:isolate;
}

.banner-overlay{
  background:
    linear-gradient(90deg,rgba(12,18,32,0.78),rgba(12,18,32,0.42)),
    linear-gradient(180deg,rgba(0,0,0,0.08),rgba(0,0,0,0.38));
}

.banner-content{
  text-align:left;
  width:min(100% - 3rem, var(--container));
}

.banner-content h2{
  max-width:680px;
  text-shadow:0 14px 34px rgba(0,0,0,0.34);
}

.banner-content p{
  display:inline-block;
  padding:.45rem .72rem;
  border-left:3px solid var(--accent);
  background:rgba(255,255,255,0.12);
  backdrop-filter:blur(8px);
}

.hero{
  background:
    linear-gradient(115deg,#ffffff 0%,#f6f7f9 68%,#fff1f1 100%);
  border-bottom:1px solid var(--line);
}

.hero-copy h1{
  max-width:11ch;
  line-height:0.98;
}

.hero-copy p{
  color:#4b5563;
}

.btn{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:0;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  box-shadow:0 12px 28px rgba(163,32,32,0.22);
}

.btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(135deg,#1f1f1f,#343434);
  opacity:0;
  transition:opacity .2s ease;
}

.btn::after{
  content:"";
  display:inline-block;
  width:.42rem;
  height:.42rem;
  margin-left:.55rem;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
  transition:transform .2s ease;
}

.btn:hover{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
}

.btn:hover::before{
  opacity:1;
}

.btn:hover::after{
  transform:rotate(45deg) translate(2px,-3px);
}

.btn:focus-visible,
.nav a:focus-visible,
.lang-toggle:focus-visible,
.nav-toggle:focus-visible,
.form-row input:focus-visible,
.form-row textarea:focus-visible{
  outline:3px solid rgba(163,32,32,0.24);
  outline-offset:3px;
}

.hero-illustration{
  position:relative;
  background:#fff;
  border:1px solid rgba(163,32,32,0.12);
  box-shadow:var(--shadow-soft);
  transform:translateZ(0);
}

.hero-illustration::after{
  content:"";
  position:absolute;
  inset:auto 1.2rem 1rem 1.2rem;
  height:3px;
  background:repeating-linear-gradient(90deg,var(--accent) 0 26px,transparent 26px 38px);
  border-radius:999px;
  opacity:.8;
}

.hero-illustration img,
.service-img,
.director-photo img{
  transition:transform .35s ease, filter .35s ease;
}

.hero-illustration:hover img,
.card:hover .service-img,
.director-photo:hover img{
  transform:scale(1.035);
  filter:saturate(1.05) contrast(1.04);
}

.section h2::after{
  background:linear-gradient(90deg,var(--accent),rgba(163,32,32,0.15));
}

.card{
  position:relative;
  border:1px solid rgba(15,23,42,0.08);
  border-left:0;
  box-shadow:0 10px 28px rgba(15,23,42,0.06);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  overflow:hidden;
}

.card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
}

.card:hover{
  transform:translateY(-7px);
  box-shadow:var(--shadow-lift);
  border-color:rgba(163,32,32,0.24);
}

.card h3{
  line-height:1.15;
}

.service-img{
  border-radius:6px;
  box-shadow:0 8px 20px rgba(15,23,42,0.08);
}

.about,
.contact{
  background:#fff;
}

.director{
  background:linear-gradient(180deg,#f6f7f9 0%,#ffffff 100%);
}

.stat{
  position:relative;
  overflow:hidden;
}

.stat::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:rgba(255,255,255,0.46);
}

.contact-form{
  padding:1.2rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.form-row input,
.form-row textarea{
  border-color:var(--line);
  background:#fafafa;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.form-row input:hover,
.form-row textarea:hover{
  border-color:rgba(163,32,32,0.36);
  background:#fff;
}

.form-row input:focus,
.form-row textarea:focus{
  border-color:var(--accent);
  background:#fff;
  box-shadow:0 0 0 4px rgba(163,32,32,0.10);
}

.site-footer{
  border-top:1px solid rgba(163,32,32,0.18);
  box-shadow:0 -10px 28px rgba(15,23,42,0.04);
}

@media (max-width:900px){
  .site-header .container{ padding:1rem 1.2rem; }
  .header-inner{ position:relative; }
  .nav{
    position:absolute;
    top:calc(100% + .75rem);
    right:0;
    width:min(220px, calc(100vw - 2.4rem));
    flex-direction:column;
    gap:.15rem;
    padding:.65rem;
    background:rgba(255,255,255,0.98);
    border:1px solid rgba(163,32,32,0.16);
    border-radius:12px;
    box-shadow:var(--shadow-lift);
  }
  .nav a{
    padding:.72rem .8rem;
    border-radius:8px;
  }
  .nav a:hover{
    background:#f6f7f9;
  }
  .nav a::after{ display:none; }
  .nav-toggle{
    width:38px;
    height:38px;
    background:#f3f4f6;
    border:1px solid var(--line);
    line-height:1;
  }
  .banner-animation{ min-height:280px; }
  .banner-content{
    text-align:left;
    width:min(100% - 2rem, var(--container));
  }
  .banner-content p{ font-size:1rem; }
  .hero-copy h1{ max-width:12ch; line-height:1.02; }
  .contact-form{ padding:1rem; }
  .footer-inner{ gap:1rem; flex-wrap:wrap; }
}

@media (max-width:560px){
  .stats{
    flex-direction:column;
  }
  .stat{
    width:100%;
    min-width:0;
    align-items:flex-start;
    text-align:left;
  }
  .stat strong{
    font-size:1.55rem;
  }
}
