/* === RESET & BASE === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#2d2d2d;background:#faf8f5;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button,input,textarea,select{font:inherit;color:inherit}

/* === CUSTOM PROPERTIES === */
:root{
  --green:#1b4332;
  --green-light:#2d6a4f;
  --green-lighter:#40916c;
  --sand:#d4c5a9;
  --sand-light:#e8dcc8;
  --sand-lighter:#f5f0e8;
  --beige:#faf8f5;
  --white:#fff;
  --text:#2d2d2d;
  --text-light:#5a5a5a;
  --radius:8px;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px rgba(0,0,0,.04);
  --shadow-lg:0 4px 12px rgba(0,0,0,.1),0 12px 32px rgba(0,0,0,.06);
  --max-w:1120px;
  --section-py:5rem;
  --transition:200ms ease;
}

/* === UTILITY === */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 1.25rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.section{padding:var(--section-py) 0}
.section--alt{background:var(--white)}
.section-label{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green-lighter);margin-bottom:.5rem}
.section-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;color:var(--green);line-height:1.2;margin-bottom:1rem}
.section-subtitle{font-size:1.0625rem;color:var(--text-light);max-width:600px;margin-bottom:2.5rem}

/* === BUTTONS === */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:var(--radius);font-weight:600;font-size:.9375rem;border:none;cursor:pointer;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--green);color:var(--white)}
.btn--primary:hover{background:var(--green-light);box-shadow:var(--shadow)}
.btn--secondary{background:var(--sand-light);color:var(--green)}
.btn--secondary:hover{background:var(--sand);box-shadow:var(--shadow)}
.btn--outline{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.4)}
.btn--outline:hover{border-color:#fff;background:rgba(255,255,255,.1)}

/* === HEADER / NAV === */
.header{position:fixed;top:0;left:0;width:100%;z-index:100;background:rgba(250,248,245,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);transition:box-shadow var(--transition)}
.header--scrolled{box-shadow:var(--shadow)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:3.75rem}
.logo{font-size:1.125rem;font-weight:700;color:var(--green);display:flex;align-items:center;gap:.5rem}
.logo svg{width:28px;height:28px}
.nav{display:flex;align-items:center;gap:2rem}
.nav a{font-size:.875rem;font-weight:500;color:var(--text-light);transition:color var(--transition);position:relative}
.nav a:hover,.nav a.active{color:var(--green)}
.nav a::after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--green);transition:width var(--transition)}
.nav a:hover::after{width:100%}
.nav .btn{padding:.5rem 1.25rem;font-size:.8125rem}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.25rem}
.menu-toggle svg{width:24px;height:24px;color:var(--green)}

/* === HERO === */
.hero{padding:7rem 0 4rem;background:linear-gradient(160deg,var(--green) 0%,var(--green-light) 100%);color:var(--white);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to bottom,transparent,var(--beige))}
.hero .container{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.hero-content h1{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15;margin-bottom:1rem}
.hero-content h1 span{color:var(--sand)}
.hero-content p{font-size:1.125rem;opacity:.88;max-width:480px;margin-bottom:2rem;line-height:1.7}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-visual{display:flex;justify-content:center;align-items:center}
.hero-card{background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:2.5rem;text-align:center;width:100%;max-width:340px}
.hero-card-icon{width:64px;height:64px;margin:0 auto 1.25rem;background:rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center}
.hero-card-icon svg{width:32px;height:32px}
.hero-stat{font-size:2.5rem;font-weight:800;margin-bottom:.25rem}
.hero-stat-label{font-size:.875rem;opacity:.8}
.trust-bar{display:flex;flex-wrap:wrap;gap:2rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.15)}
.trust-item{font-size:.8125rem;opacity:.75;display:flex;align-items:center;gap:.375rem}
.trust-item svg{width:16px;height:16px;opacity:.6}

/* === SERVICES === */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}
.service-card{background:var(--white);border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);padding:1.75rem;transition:box-shadow var(--transition),transform var(--transition)}
.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.service-icon{width:48px;height:48px;border-radius:var(--radius);background:var(--sand-lighter);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.service-icon svg{width:24px;height:24px;color:var(--green)}
.service-card h3{font-size:1.0625rem;font-weight:600;color:var(--green);margin-bottom:.5rem}
.service-card p{font-size:.9375rem;color:var(--text-light);line-height:1.6}

/* === BENEFITS === */
.benefits-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.benefit-list{display:flex;flex-direction:column;gap:1.5rem}
.benefit-item{display:flex;gap:1rem;align-items:flex-start}
.benefit-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--sand-lighter);display:flex;align-items:center;justify-content:center}
.benefit-icon svg{width:20px;height:20px;color:var(--green)}
.benefit-item h3{font-size:1rem;font-weight:600;color:var(--green);margin-bottom:.25rem}
.benefit-item p{font-size:.875rem;color:var(--text-light)}
.benefits-cta{background:var(--green);border-radius:12px;padding:2.5rem;color:var(--white);text-align:center}
.benefits-cta h3{font-size:1.5rem;font-weight:700;margin-bottom:.75rem}
.benefits-cta p{opacity:.8;margin-bottom:1.5rem;max-width:360px;margin-inline:auto}
.benefits-cta .btn{margin-top:.5rem}

/* === ABOUT === */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.stat-card{background:var(--sand-lighter);border-radius:var(--radius);padding:1.25rem;text-align:center}
.stat-card .num{font-size:1.75rem;font-weight:800;color:var(--green)}
.stat-card .label{font-size:.8125rem;color:var(--text-light);margin-top:.25rem}
.about-text p{color:var(--text-light);margin-bottom:1rem;font-size:.9375rem}

/* === CONTACT === */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.contact-info{display:flex;flex-direction:column;gap:1.5rem}
.contact-item{display:flex;gap:1rem;align-items:flex-start}
.contact-item-icon{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius);background:var(--sand-lighter);display:flex;align-items:center;justify-content:center}
.contact-item-icon svg{width:20px;height:20px;color:var(--green)}
.contact-item h3{font-size:.9375rem;font-weight:600;margin-bottom:.125rem}
.contact-item p,.contact-item a{font-size:.875rem;color:var(--text-light)}
.contact-item a:hover{color:var(--green)}
.form{display:flex;flex-direction:column;gap:.875rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
.form-group{display:flex;flex-direction:column;gap:.375rem}
.form-group label{font-size:.8125rem;font-weight:600;color:var(--text)}
.form-group input,.form-group textarea,.form-group select{padding:.625rem .875rem;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius);background:var(--white);transition:border-color var(--transition),box-shadow var(--transition);font-size:.9375rem}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--green-lighter);box-shadow:0 0 0 3px rgba(27,67,50,.1)}
.form-group textarea{resize:vertical;min-height:100px}
.form-status{font-size:.875rem;padding:.625rem;border-radius:var(--radius);display:none}
.form-status--success{display:block;background:#e8f5e9;color:#2e7d32}
.form-status--error{display:block;background:#fce4ec;color:#c62828}

/* === FOOTER === */
.footer{background:var(--green);color:var(--white);padding:3rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-bottom:2rem}
.footer-brand p{opacity:.7;font-size:.875rem;margin-top:.5rem;max-width:320px;line-height:1.6}
.footer h4{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.6;margin-bottom:.75rem}
.footer-links a{display:block;font-size:.875rem;opacity:.8;padding:.25rem 0;transition:opacity var(--transition)}
.footer-links a:hover{opacity:1}
.footer-contact a,.footer-contact p{font-size:.875rem;opacity:.8;display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;opacity:.6}
.footer-bottom a:hover{opacity:1}

/* === PAGE (Impressum, Referenzen) === */
.page-header{padding:6.5rem 0 2.5rem;background:var(--green);color:var(--white)}
.page-header h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700}
.page-header p{opacity:.75;margin-top:.5rem}
.page-content{padding:3rem 0 4rem}
.page-content h2{font-size:1.375rem;font-weight:700;color:var(--green);margin:2rem 0 .75rem}
.page-content h2:first-child{margin-top:0}
.page-content p,.page-content li{font-size:.9375rem;color:var(--text-light);line-height:1.7;margin-bottom:.75rem}
.page-content ul{padding-left:1.25rem;list-style:disc}
.page-content a{color:var(--green-lighter);text-decoration:underline}
.page-content a:hover{color:var(--green)}

/* === REFERENZEN GRID === */
.ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-top:2rem}
.ref-card{background:var(--white);border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);overflow:hidden;transition:box-shadow var(--transition),transform var(--transition)}
.ref-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.ref-card img{width:100%;height:200px;object-fit:cover;background:var(--sand-lighter)}
.ref-card-body{padding:1.5rem}
.ref-card-body h3{font-size:1.0625rem;font-weight:600;color:var(--green);margin-bottom:.375rem}
.ref-card-body .ref-meta{font-size:.8125rem;color:var(--text-light);margin-bottom:.75rem}
.ref-card-body p{font-size:.875rem;color:var(--text-light);line-height:1.6}
.ref-placeholder{border:2px dashed rgba(0,0,0,.1);border-radius:var(--radius);padding:3rem;text-align:center;color:var(--text-light)}
.ref-placeholder svg{width:48px;height:48px;opacity:.3;margin:0 auto .75rem}
.ref-placeholder p{font-size:.875rem}

/* === MOBILE === */
@media(max-width:768px){
  :root{--section-py:3.5rem}
  .hero{padding:6rem 0 3rem}
  .hero-grid,.benefits-grid,.about-grid,.contact-grid,.footer-grid{grid-template-columns:1fr}
  .hero-visual{order:-1;margin-bottom:1rem}
  .hero-card{max-width:280px;padding:1.75rem;margin:0 auto}
  .form-row{grid-template-columns:1fr}
  .footer-grid{gap:1.5rem}
  .footer-bottom{flex-direction:column;gap:.5rem;text-align:center}
  .nav{position:fixed;top:3.75rem;right:0;width:260px;height:calc(100vh - 3.75rem);background:var(--white);flex-direction:column;align-items:flex-start;padding:1.5rem;gap:0;transform:translateX(100%);transition:transform .3s ease;box-shadow:var(--shadow-lg);z-index:99}
  .nav.open{transform:translateX(0)}
  .nav a{padding:.75rem 0;width:100%;font-size:1rem;border-bottom:1px solid rgba(0,0,0,.06)}
  .nav .btn{margin-top:.75rem;width:100%;justify-content:center}
  .menu-toggle{display:block}
  .services-grid{grid-template-columns:1fr}
  .about-stats{grid-template-columns:1fr 1fr}
  .ref-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .hero-content h1{font-size:1.75rem}
  .about-stats{grid-template-columns:1fr}
  .trust-bar{flex-direction:column;gap:.75rem}
}

/* === PRINT === */
@media print{
  .header,.hero::after,.menu-toggle,.footer{display:none}
  .hero{background:var(--green) !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .section{padding:2rem 0}
}
