:root{
  --cream:#F6F2E8;
  --cream-deep:#EFE8D8;
  --paper:#FCFAF4;
  --ink:#2B2A25;
  --sage-deep:#33523B;
  --sage:#5C7C5F;
  --sage-soft:#A9BCA1;
  --honey:#C08F2E;
  --honey-soft:#E4C777;
  --line: rgba(43,42,37,0.12);
  --shadow: 0 20px 50px -25px rgba(43,42,37,0.35);
  --radius: 22px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  font-size:17px;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--sage-deep);
  line-height:1.12;
}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
section{padding: 100px 0;}
.eyebrow{
  font-family:'Work Sans', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:13px;
  font-weight:600;
  color:var(--honey);
  margin-bottom:14px;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--honey);}
.eyebrow.center::before{display:none;}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px;
  border-radius:100px;
  font-weight:600;
  font-size:15.5px;
  border:1.5px solid transparent;
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease, color .25s ease;
  cursor:pointer;
  white-space:nowrap;
}
.btn-primary{background:var(--sage-deep); color:var(--paper);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(51,82,59,0.55);}
.btn-ghost{border-color:var(--sage-deep); color:var(--sage-deep);}
.btn-ghost:hover{background:var(--sage-deep); color:var(--paper); transform:translateY(-2px);}
.btn-honey{background:var(--honey); color:var(--paper);}
.btn-honey:hover{transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(192,143,46,0.55);}

/* HEADER */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(246,242,232,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, box-shadow .3s ease;
}
header.scrolled{border-color:var(--line); box-shadow:0 8px 24px -20px rgba(0,0,0,0.4);}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px;
  max-width:1180px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-weight:600; font-size:20px; color:var(--sage-deep);}
.brand img{height:40px; width:auto; border-radius:8px;}
nav ul{display:flex; gap:34px; align-items:center;}
nav a.navlink{font-size:15px; font-weight:500; position:relative; padding:4px 0;}
nav a.navlink::after{content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--honey); transition:width .25s ease;}
nav a.navlink:hover::after, nav a.navlink.active::after{width:100%;}
nav a.navlink.active{color:var(--sage-deep); font-weight:700;}
.nav-cta{display:flex; gap:12px; align-items:center;}
.nav-cta .btn{padding:11px 22px; font-size:14px;}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.burger span{width:26px; height:2px; background:var(--sage-deep); border-radius:2px;}

/* HOME HERO */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  padding-top:120px;
  background:radial-gradient(circle at 85% 12%, rgba(228,199,119,0.35), transparent 45%), var(--cream);
  overflow:hidden;
}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; width:100%;}
.hero-motto{font-family:'Fraunces', serif; font-style:italic; font-weight:500; color:var(--honey); font-size:22px; margin-bottom:22px;}
.hero h1{font-size:clamp(40px, 6.2vw, 68px); max-width:640px;}
.hero h1 em{font-style:italic; color:var(--honey);}
.hero .lead{margin-top:26px; font-size:19.5px; max-width:500px; color:#3d3c35;}
.hero-actions{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap;}
.hero-trust{margin-top:46px; display:flex; gap:32px; flex-wrap:wrap;}
.hero-trust .stat{display:flex; flex-direction:column;}
.hero-trust .stat b{font-family:'Work Sans',sans-serif; font-weight:700; font-size:22px; color:var(--sage-deep); display:block;}
.hero-trust .stat span{font-size:13.5px; color:#6b6a62;}
.hero-visual{position:relative;}
.hero-photo-frame{position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--cream-deep);}
.hero-photo-frame img{width:100%; height:580px; object-fit:contain; object-position:center;}
.hero-badge{
  position:absolute; left:-30px; bottom:-30px; background:var(--paper); border-radius:18px;
  padding:18px 22px; box-shadow:var(--shadow); display:flex; align-items:center; gap:14px; max-width:250px;
}
.hero-badge .mark{width:44px; height:44px; border-radius:50%; background:var(--sage-deep); flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.hero-badge .mark svg{width:22px; height:22px; stroke:var(--honey-soft);}
.hero-badge b{display:block; font-family:'Fraunces',serif; font-size:15px; color:var(--sage-deep);}
.hero-badge span{font-size:12.5px; color:#6b6a62;}

/* PULL QUOTE (emotional statement block) */
.pull-quote{background:var(--cream); padding:90px 0;}
.pull-quote blockquote{
  font-family:'Fraunces',serif; font-style:italic; font-weight:500; color:var(--sage-deep);
  font-size:clamp(26px,3.6vw,40px); line-height:1.35; max-width:920px; margin:0 auto; text-align:center;
}
.pull-quote cite{display:block; margin-top:26px; font-family:'Work Sans',sans-serif; font-style:normal; font-weight:600; font-size:15px; color:var(--honey); letter-spacing:0.02em;}

/* PAGE HERO (interior pages) */
.page-hero{
  padding:170px 0 80px;
  background:radial-gradient(circle at 88% 0%, rgba(228,199,119,0.3), transparent 45%), var(--cream);
}
.breadcrumb{font-size:13.5px; color:var(--sage); margin-bottom:18px; display:flex; gap:8px; align-items:center;}
.page-hero h1{font-size:clamp(32px,4.4vw,50px); max-width:760px;}
.page-hero p.lead{margin-top:18px; font-size:18px; color:#4a4940; max-width:620px;}

/* SECTION HEADS */
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.2vw,40px);}
.section-head p{margin-top:16px; font-size:17.5px; color:#4a4940;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.center .eyebrow{justify-content:center;}

/* LEISTUNGEN CARDS */
.leistungen{background:var(--paper);}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.service-card{
  background:var(--cream); border-radius:20px; padding:34px 30px;
  border:1px solid var(--line);
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); background:var(--paper);}
.service-card .icon{
  width:52px; height:52px; border-radius:14px; background:var(--sage-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.service-card .icon svg{width:26px; height:26px; stroke:var(--honey-soft); fill:none; stroke-width:1.6;}
.service-card h3{font-size:20px; margin-bottom:10px;}
.service-card p{font-size:15.3px; color:#57564c;}
.service-note{
  margin-top:40px; background:var(--sage-deep); color:var(--paper);
  border-radius:18px; padding:26px 30px; display:flex; gap:18px; align-items:flex-start;
}
.service-note svg{width:26px; flex-shrink:0; margin-top:3px; stroke:var(--honey-soft);}
.service-note b{color:var(--honey-soft);}

/* SPLIT */
.split{background:var(--cream-deep);}
.split.on-paper{background:var(--paper);}
.split-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.split-grid.reverse .split-image{order:2;}
.split-image{background:var(--cream-deep); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;}
.split-image img{border-radius:var(--radius); height:440px; width:100%; object-fit:contain; box-shadow:none; display:block;}
.check-list li{display:flex; gap:14px; margin-bottom:16px; align-items:flex-start; font-size:16px;}
.check-list li svg{width:20px; flex-shrink:0; margin-top:3px; stroke:var(--sage-deep);}

/* FINANCE CARDS */
.finance{background:var(--paper);}
.finance-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.finance-card{padding:30px 24px; border-radius:18px; background:var(--cream); border:1px solid var(--line);}
.finance-card .num{font-family:'Fraunces',serif; color:var(--honey); font-size:15px; margin-bottom:14px; font-weight:600;}
.finance-card h3{font-size:17.5px; margin-bottom:10px;}
.finance-card p{font-size:14.6px; color:#57564c;}

/* WHY */
.why{background:var(--sage-deep); color:var(--paper);}
.why .section-head h2{color:var(--paper);}
.why .section-head p{color:#d6ddd2;}
.why .eyebrow{color:var(--honey-soft);}
.why .eyebrow::before{background:var(--honey-soft);}
.why-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px 40px;}
.why-item{display:flex; gap:16px; align-items:flex-start; padding:18px 0; border-bottom:1px solid rgba(255,255,255,0.14);}
.why-item svg{width:22px; flex-shrink:0; margin-top:2px; stroke:var(--honey-soft);}
.why-item h3{color:var(--paper); font-size:17px; margin-bottom:4px;}
.why-item p{font-size:14.5px; color:#c9d2c4;}

/* ABOUT */
.about{background:var(--cream);}
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
.about-photos{position:relative; height:520px;}
.about-photos img{position:absolute; border-radius:20px; box-shadow:var(--shadow); object-fit:contain; background:var(--cream-deep);}
.about-photos .p1{width:62%; height:78%; top:0; left:0; z-index:2;}
.about-photos .p2{width:52%; height:52%; bottom:0; right:0; z-index:1; border:6px solid var(--cream);}
.about h2{margin-bottom:20px;}
.about p{color:#4a4940; margin-bottom:16px; font-size:17px;}
.signature{font-family:'Fraunces',serif; font-style:italic; color:var(--honey); font-size:20px; margin-top:24px;}

.team-strip{background:var(--paper); padding:70px 0;}
.team-strip .wrap > p{text-align:center; max-width:560px; margin:0 auto 34px; color:#57564c;}
.team-row{display:flex; gap:20px; overflow-x:auto; padding-bottom:10px; scrollbar-width:none;}
.team-row::-webkit-scrollbar{display:none;}
.team-row img{width:210px; height:270px; object-fit:contain; background:var(--cream-deep); border-radius:16px; flex-shrink:0;}

/* REVIEWS */
.reviews{background:var(--cream-deep);}
.review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.review-card{background:var(--paper); border-radius:18px; padding:30px; border:1px solid var(--line);}
.stars{color:var(--honey); letter-spacing:3px; margin-bottom:14px; font-size:16px;}
.review-card p{font-size:15.3px; color:#4a4940; font-style:italic;}
.review-card .who{margin-top:16px; font-style:normal; font-weight:600; font-size:14px; color:var(--sage-deep);}
.review-placeholder{border:1.5px dashed var(--sage); display:flex; align-items:center; justify-content:center; text-align:center; color:#6b6a62; font-size:14px; padding:30px;}

/* FAQ */
.faq{background:var(--paper);}
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none; cursor:pointer; padding:24px 0; display:flex; justify-content:space-between; align-items:center;
  font-family:'Fraunces',serif; font-size:18.5px; color:var(--sage-deep); font-weight:500;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{
  width:28px; height:28px; border-radius:50%; border:1.5px solid var(--sage-deep); position:relative; flex-shrink:0; margin-left:18px;
  transition:transform .3s ease, background .3s ease;
}
.faq-item summary .plus::before, .faq-item summary .plus::after{content:""; position:absolute; background:var(--sage-deep); transition:transform .3s ease;}
.faq-item summary .plus::before{width:12px; height:1.6px; top:50%; left:50%; transform:translate(-50%,-50%);}
.faq-item summary .plus::after{width:1.6px; height:12px; top:50%; left:50%; transform:translate(-50%,-50%);}
.faq-item[open] summary .plus{background:var(--sage-deep);}
.faq-item[open] summary .plus::before, .faq-item[open] summary .plus::after{background:var(--paper);}
.faq-item[open] summary .plus::after{transform:translate(-50%,-50%) rotate(90deg) scaleY(0);}
.faq-item .faq-a{padding:0 0 26px; max-width:680px; color:#4a4940; font-size:15.6px;}

/* CONTACT (used on kontakt.html and CTA bands) */
.contact{background:var(--sage-deep); color:var(--paper); position:relative; overflow:hidden;}
.contact::before{content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(228,199,119,0.18), transparent 70%); top:-200px; right:-160px;}
.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px;}
.contact h2{color:var(--paper);}
.contact .section-head p{color:#d6ddd2;}
.contact-list{margin-top:30px;}
.contact-list li{display:flex; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.14); font-size:16px;}
.contact-list svg{width:20px; stroke:var(--honey-soft);}
.contact-form{background:var(--paper); border-radius:20px; padding:36px; color:var(--ink); box-shadow:var(--shadow);}
.contact-form input, .contact-form textarea{
  width:100%; padding:13px 16px; border-radius:10px; border:1px solid var(--line);
  font-family:inherit; font-size:15px; margin-bottom:16px; background:var(--cream);
}
.contact-form label{font-size:13px; font-weight:600; color:var(--sage-deep); display:block; margin-bottom:6px;}
.contact-form .btn{width:100%; justify-content:center;}
.map-embed{border-radius:18px; overflow:hidden; margin-top:26px; box-shadow:var(--shadow);}
.map-embed iframe{width:100%; height:260px; border:0; display:block;}

/* CTA band (used at bottom of interior pages) */
.cta-band{background:var(--sage-deep); color:var(--paper); text-align:center;}
.cta-band h2{color:var(--paper);}
.cta-band p{color:#d6ddd2; max-width:560px; margin:16px auto 30px;}
.cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* LEGAL PAGES */
.legal{background:var(--paper);}
.legal h2{margin-top:34px; margin-bottom:12px; font-size:22px;}
.legal p, .legal li{color:#4a4940; font-size:15.5px; margin-bottom:10px;}
.legal ul{list-style:disc; padding-left:22px;}

/* FOOTER */
footer{background:#26382B; color:#cfd6ca; padding:60px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; color:var(--paper); font-size:19px; margin-bottom:14px;}
.footer-brand img{height:32px; border-radius:6px;}
footer h4{color:var(--paper); font-size:14px; margin-bottom:16px; letter-spacing:0.04em; text-transform:uppercase;}
footer li{margin-bottom:10px; font-size:14.5px;}
footer a:hover{color:var(--honey-soft);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:13px; flex-wrap:wrap; gap:10px;}
.footer-motto{font-family:'Fraunces',serif; font-style:italic; color:var(--honey-soft);}

.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (max-width:960px){
  nav ul, .nav-cta{display:none;}
  .burger{display:flex;}
  .hero-grid, .split-grid, .about-grid, .contact-grid{grid-template-columns:1fr;}
  .split-grid.reverse .split-image{order:0;}
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .finance-grid{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:1fr;}
  .review-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:26px;}
  section{padding:70px 0;}
  .page-hero{padding:140px 0 60px;}
  .hero{min-height:auto; padding-top:110px; padding-bottom:60px;}
  .hero-photo-frame img{height:360px;}
  .hero-badge{display:none;}
  .hero-trust{gap:22px;}
  .about-photos{height:auto; display:flex; flex-direction:column; gap:16px; position:static;}
  .about-photos img{position:static; width:100% !important; height:280px !important; border:none !important;}
  .pull-quote{padding:60px 0;}
}
@media (max-width:560px){
  body{font-size:16.5px;}
  .service-grid{grid-template-columns:1fr;}
  .finance-grid{grid-template-columns:1fr;}
  .wrap{padding:0 20px;}
  section{padding:56px 0;}
  .hero{padding-top:100px;}
  .hero-actions{flex-direction:column; align-items:stretch;}
  .hero-actions .btn{width:100%; justify-content:center;}
  .hero-trust{flex-direction:column; gap:16px; align-items:flex-start;}
  .cta-actions{flex-direction:column; align-items:stretch;}
  .cta-actions .btn{width:100%; justify-content:center;}
  .btn{padding:16px 26px; min-height:50px;}
  .nav-cta .btn{min-height:44px;}
  .service-card, .finance-card{padding:26px 22px;}
  .team-row img{width:170px; height:220px;}
  .faq-item summary{font-size:16.5px; gap:12px;}
  .contact-form{padding:26px;}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}
