:root{
  --bg:#ffffff;
  --text:#2D241B;
  --muted:#2D241B;
  --line:#d9d4cf;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.08);
  --topbar-h: 70px;
}

*{box-sizing:border-box}
figure{margin:0}
html,body{height:100%}

body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
  padding-top: var(--topbar-h); /* space for fixed header */
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{
  width:min(1380px, 100%);
  margin:0 auto;
  padding:28px 100px 36px;
}

.topbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:9999;
  background:#fff;
  border-bottom:1px solid rgba(45,36,27,0.10);
}

.topbar__inner{
  max-width:1380px;
  margin:0 auto;
  height:var(--topbar-h);
  padding:0 80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.topbar__logo{
  display:flex;
  align-items:center;
  gap:10px;
}

.topbar__logo img{
  height:70px;
  width:auto;
}

.topbar__right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:25px;
  flex-wrap:nowrap;
}

.topbar__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:12px;
  background:#151515;
  color:#fff;
  text-decoration:none;
  font-weight:600;
  font-size:16px;
  line-height:1;
  white-space:nowrap;
}

.topbar__icons{
  display:flex;
  align-items:center;
  gap:14px;
}

.topbar__icons a{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
}

.topbar__icons a:hover{opacity:.92}
.topbar__icons a:focus-visible{outline:2px solid rgba(0,0,0,.35); outline-offset:3px;}

.topbar__icons img{
  width:25px;
  height:25px;
  display:block;
}

.topbar__lang{
  display:flex;
  align-items:center;
  gap:14px;
  font-weight:700;
  letter-spacing:0.06em;
}

.topbar__lang-link{
  text-decoration:none;
  color:#151515;
  font-weight:400;
}

.topbar__lang-link.is-active{
  font-weight:800;
}

@media (max-width: 1024px){
  .topbar__inner{padding:0 60px;}
}

@media (max-width: 640px){
  :root{ --topbar-h: 90px; }

  .topbar__inner{
    padding:10px 12px;
    gap:10px;
  }

  .topbar__right{
    display:grid;
    grid-template-columns:auto auto;
    grid-template-areas:
      "icons lang"
      "btn   btn";
    column-gap:15px;
    row-gap:10px;
    align-items:center;
    justify-items:end;
  }

  .topbar__icons{grid-area:icons;}
  .topbar__lang{grid-area:lang;}
  .topbar__btn{
    grid-area:btn;
    justify-self:end;
    width:100%;
    max-width:180px;
  }

  .topbar__icons a{width:25px;height:25px;}
  .topbar__icons img{width:25px;height:25px;}
}

.hero{
  display:grid;
  grid-template-columns: 1.15fr 0.95fr 1fr 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "title  title   title  title"
    "main   content before after";
  gap:14px;
  align-items:stretch;
}

.hero-title{
  grid-area:title;
  display:flex;
  justify-content:center;
  padding:6px 6px 0;
}

h1{
  margin:0;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.02;
  font-size:60px;
  text-wrap:balance;
  text-align:left;
  width:100%;
}

.hero-content{
  grid-area:content;
  padding:6px 6px 0 6px;
  align-self:end;
}

.lede{
  margin:30px 0 45px;
  color:var(--muted);
  font-size:18px;
  line-height:1.35;
  max-width:42ch;
}

.bullets{
  display:grid;
  gap:10px;
  margin:0 0 45px;
  padding:0;
  list-style:none;
  color:var(--text);
  font-size:15px;
}
.bullets li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size: 18px;
}
.check{
  width:18px;height:18px;
  border-radius:999px;
  background:#2b241f;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  margin-top:1px;
}
.check svg{width:12px;height:12px;fill:#fff}

.cta{
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px 18px 16px;
  max-width:360px;
  background:#fff;
}
.cta p{
  margin:0 0 12px;
  text-align:center;
  color:#2f2a25;
  font-size:18px;
  line-height:1.25;
}
.cta .btn{
  width:100%;
  border:0;
  background:#151515;
  color:#fff;
  padding:12px 14px;
  border-radius:999px;
  cursor:pointer;
  font-size:16px;
}
.cta .btn:focus{outline:3px solid rgba(0,0,0,.2); outline-offset:3px}

.img-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  background:#f4f4f4;
  align-self:end; /* bottom-align like in reference */
}
.img-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.img-card.diagonal::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.10);
  clip-path:polygon(0 0, 72% 0, 0 72%);
  pointer-events:none;
}

.main{ grid-area:main; aspect-ratio: 3 / 4; }
.before{ grid-area:before; aspect-ratio: 3 / 4; }
.after{ grid-area:after; aspect-ratio: 3 / 4; }

@media (max-width: 960px){
  .before, .after{align-self:start;}
  .main{align-self:stretch; aspect-ratio:auto;}

    .wrap{padding:18px 16px 26px}

  .hero{
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "title   title"
      "content content"
      "main    before"
      "main    after";
    gap:10px;
    align-items:stretch;
  }

  .hero-title{padding:2px 0 0}
  h1{font-size:40px}
  
  .hero-content{ align-self:start; }
  
  .lede{max-width:none; margin: 0 0 20px;}
  .bullets {margin: 0 0 20px;}
  .cta{max-width:none}
  .before, .after{ aspect-ratio: 1 / 1; }
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important; transition:none !important; animation:none !important;}
}

/* ===== PRICES + WORKS ===== */
.pw{
  padding: 34px 0 54px;
  background: #F7F7F7;
}

.pw__kicker{
  color: #2D241B;
  font-size: 20px;
  line-height: 1.35;
  max-width: 82ch;
}

.pw__title{
  margin: 0 0 16px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: #2D241B;
}

.pw__title--mt{
  margin-top: 34px;
}

/* ---- PRICE GRID ---- */
.pw__price-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.pw__price-card{
  background:#fff;
  border-radius:16px;
  padding: 18px 40px;
  display:grid;
  grid-template-columns: 140px 1fr;
  align-items:center;
  column-gap: 18px;
  min-height: 116px;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.pw__price-icon{
  width:140px;
  height:86px;
  display:grid;
  place-items:center;
}

.pw__price-icon img{
  width:120px;
  height:86px;
  object-fit:contain;
}

.pw__price-name{
  font-size:16px;
  color: var(--muted);
  margin: 0 0 6px;
}

.pw__price-value{
  font-weight:600;
  font-size:40px;
  line-height:1;
  margin:0;
}

/* ---- WORKS GRID ---- */
.pw__works-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.pw__work-card{
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
}

.pw__work-media{
  aspect-ratio: 16 / 9;
  background: #ececec;
}

.pw__work-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pw__work-caption{
  padding: 12px 14px;
  text-align: center;
  font-size: 16px;
  border-top: 1px solid var(--line);
  color: var(--text);
}

/* ---- MOBILE ---- */
@media (max-width: 960px){
  .pw{
    padding: 24px 0 42px;
  }

  .pw__price-grid,
  .pw__works-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .pw__price-card{
    grid-template-columns: 120px max-content;
    justify-content: center;
    column-gap: 14px;
    padding: 16px 16px;
    min-height: 104px;
  }

.pw__price-icon{
    width:120px;
    height:78px;
  }

  .pw__price-icon img{
    width: 96px;
    height: 78px;
  }

  .pw__price-value{
    font-size: 34px;
  }

  .pw__title--mt{
    margin-top: 26px;
  }
}

/* ===== WINDOWS: Preise + Works (wf) ===== */
.wf{
  background:#fff;
  padding: 44px 0 54px;
}

.wf__title{
  margin: 0 0 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.wf__title--mt{ margin-top: 28px; }

.wf__sub{
  margin: 20px 0 20px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.35;
}

.wf__kicker{
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.35;
  max-width: 90ch;
}

/* Cards grid */
.wf__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

/* Card */
.wf__card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 18px;
  overflow:hidden;
}

.wf__media{
  aspect-ratio: 16/9;
  background:#e9e9e9;
}

.wf__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.wf__caption{
  padding: 12px 14px;
  text-align:center;
  font-size: 16px;
  line-height: 1.25;
  color: var(--text);
  border-top: 1px solid rgba(0,0,0,.12);
  background:#fff;
}

/* Mobile */
@media (max-width: 960px){
  .wf{ padding: 28px 0 40px; }

  .wf__sub{ margin-bottom: 18px; }

  .wf__grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .wf__media{
    aspect-ratio: 16/10;
  }
}

/* ===== Türen: Preise + Arbeiten (td) ===== */
.td{
  background:#F7F7F7;     
  padding: 46px 0 60px;
}

.td__kicker{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.35;
  max-width: 95ch;
}

.td__title{
  margin: 0 0 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.td__title--mt{
  margin-top: 34px;
}

/* ---- PREISE ---- */
.td__price-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.td__price-card{
  background:#fff;
  border-radius:16px;
  padding: 18px 22px;
  display:grid;
  grid-template-columns: 140px 1fr;
  align-items:center;
  column-gap: 18px;
  min-height: 116px;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.td__price-icon{
  width:140px;
  height:86px;
  display:grid;
  place-items:center;
}

.td__price-icon img{
  width:120px;
  height:86px;
  object-fit:contain;
}

.td__price-name{
  font-size:16px;
  color: var(--muted);
  margin: 0 0 6px;
}

.td__price-value{
  font-weight:600;
  font-size:40px;
  line-height:1;
  margin:0;
  color: var(--text);
}

/* ---- ENTHALTENE ARBEITEN ---- */
.td__works-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.td__work-card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.35);
  border-radius: 18px;
  overflow:hidden;
}

.td__work-media{
  aspect-ratio: 16 / 9;
  background:#e9e9e9;
}

.td__work-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.td__work-caption{
  padding: 12px 14px;
  text-align:center;
  font-size: 16px;
  line-height: 1.25;
  color: var(--text);
  border-top: 1px solid rgba(0,0,0,.35);
}

/* ---- MOBILE ---- */
@media (max-width: 960px){
  .td{ padding: 28px 0 44px; }

  .td__price-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .td__price-card{
    grid-template-columns: 120px max-content;
    justify-content: center;
    column-gap: 14px;
    padding: 16px 16px;
    min-height: 104px;
  }

  .td__price-icon{
    width:120px;
    height:78px;
  }

  .td__price-icon img{
    width: 96px;
    height: 78px;
  }

  .td__price-value{
    font-size:34px;
  }

  .td__title--mt{
    margin-top: 26px;
  }

  .td__works-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .td__work-media{
    aspect-ratio: 16 / 10;
  }
}

.fw2{
  background:#fff;   
  padding: 46px 0 10px;
}

.fw2__kicker{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.35;
  max-width: 95ch;
}

.fw2__title{
  margin: 0 0 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.fw2__title--mt{ margin-top: 34px; }

.fw2__sub{
  margin: 0;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.35;
}

/* ---- PREISE – TÜREN ---- */
.fw2__price-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.fw2__price-card{
  background:#f6f6f6;
  border-radius:16px;
  padding: 18px 22px;
  display:grid;
  grid-template-columns: 140px 1fr;
  align-items:center;
  column-gap: 18px;
  min-height: 116px;
}

.fw2__price-icon{
  width:140px;
  height:86px;
  display:grid;
  place-items:center;
}

.fw2__price-icon img{
  width:120px;
  height:86px;
  object-fit:contain;
}

.fw2__price-name{
  font-size:14px;
  color: var(--muted);
  margin: 0 0 6px;
}

.fw2__price-value{
  font-weight:800;
  font-size:40px;
  line-height:1;
  margin:0;
  color: var(--text);
}

.fw2__works-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.fw2__work-card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.35);
  border-radius: 18px;
  overflow:hidden;
}

.fw2__work-media{
  aspect-ratio: 16 / 9;
  background:#e9e9e9;
}

.fw2__work-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.fw2__work-caption{
  padding: 12px 14px;
  text-align:center;
  font-size: 16px;
  line-height: 1.25;
  color: var(--text);
  border-top: 1px solid rgba(0,0,0,.35);
}

/* ---- MOBILE ---- */
@media (max-width: 960px){
  .fw2{ padding: 28px 0 10px; }

  .fw2__price-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .fw2__price-card{
    grid-template-columns: 120px max-content;
    justify-content: center;
    column-gap: 14px;
    padding: 16px 16px;
    min-height: 104px;
  }

  .fw2__price-icon{ width:120px; height:78px; }

  .fw2__price-icon img{ width:96px; height:78px; }

  .fw2__price-value{ font-size:34px; }

  .fw2__works-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .fw2__work-media{ aspect-ratio: 16 / 10; }

  .fw2__title--mt{ margin-top: 26px; }
}

/* ===== Discount banner ===== */
.discount{
  padding: 34px 0 54px;
  background:#fff;
}

.discount .wrap{
  position: relative;
}

.discount__bg{
  height: 400px;
  border-radius: 0;
  background:
    url("assets/discount-bg.webp") center/cover no-repeat;
  filter: saturate(.95);
}

.discount__card{
  position: absolute;
  left: 50%;
  top: 50%; 
  transform: translate(-50%, -50%);
  width: min(640px, calc(100% - 80px)); 
  padding: 42px 52px; 
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 24px 60px rgba(0,0,0,.12);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  text-align: center;
}


.discount__title{
  margin: 0 0 6px;
  font-weight: 800;
  font-size: clamp(34px, 3.2vw, 44px);
  line-height: 1.05;
  color: var(--text);
}

.discount__subtitle{
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  margin: 0 0 18px;
  color: var(--text);
}

.discount__text{
  margin: 0 0 22px;
  color: var(--text);
  opacity: .85;
  font-size: 18px;
  line-height: 1.35;
}

.discount__btn{
  display: inline-block;
  min-width: 170px;
  padding: 12px 24px;
  border-radius: 999px;
  background: #2c241c;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: .01em;
}

.discount__btn:hover{
  filter: brightness(.95);
}

/* Mobile */
@media (max-width: 960px){
  .discount{ padding: 22px 0 38px; }

 .discount__bg{
    height: 300px;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background:
      linear-gradient(rgba(255,255,255,.70), rgba(255,255,255,.70)),
      url("assets/discount-bg-mobile.webp") center/cover no-repeat;

    border-radius: 0;
  }

  .discount__card{
    top: 50%;              
    width: calc(100% - 28px);
    padding: 22px 18px;
  }
  .discount__subtitle{
    font-size: 20px;
    margin-bottom: 14px;
  }

  .discount__text{
    font-size: 18px;
    margin-bottom: 18px;
  }
}

/* ===== Proof / Vorteile block ===== */
.proof{
  background:#F7F7F7;
  padding: 54px 0 54px;
}

.proof__grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 48px;
  align-items:start;
}

.proof__title{
  margin: 0 0 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.proof__list{
  margin: 0;
  padding-left: 18px;
  color: var(--text);
  opacity: .85;
  font-size: 18px;
  line-height: 1.6;
}

.proof__list li{
  margin: 0 0 10px;
}

.proof__right{
  border-radius: 18px;
  overflow:hidden;
}

.proof__right img{
  width:100%;
  height:auto;
  display:block;
  border-radius: 18px;
}

/* Mobile */
@media (max-width: 960px){
  .proof{
    padding: 32px 0 44px;
  }

  .proof__grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .proof__title{
    font-size: 40px;
    margin-bottom: 14px;
  }

  .proof__list{
    font-size: 18px;
  }

  .proof__right{
    margin-top: 10px;
  }
}

/* ===== Qualification block ===== */
.qual{
  background:#fff;
  padding: 54px 0 64px;
}

.qual__title{
  margin: 0 0 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.qual__text{
  margin: 0 0 28px;
  color: var(--text);
  opacity: .85;
  font-size: 20px;
  line-height: 1.55;
  max-width: 92ch;
}

.qual__subtitle{
  margin: 0 0 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

/* cards */
.qual__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.qual__card{
  background:#f3f3f3;
  border-radius: 14px;
  padding: 22px 26px;
  display:grid;
  grid-template-columns: 132px 1fr;
  align-items:center;
  column-gap: 18px;
  min-height: 132px;
}

.qual__icon{
  width: 132px;
  height: 88px;
  display:grid;
  place-items:center;
}

.qual__icon img{
  width: 120px;
  height: 88px;
  object-fit: contain;
}

.qual__card-text{
  color: var(--text);
  font-size: 16px;
  line-height: 1.3;
}

/* Mobile */
@media (max-width: 960px){
  .qual{
    padding: 34px 0 44px;
  }

  .qual__title{
    font-size: 40px;
  }

  .qual__text{
    font-size: 20px;
    margin-bottom: 22px;
  }

  .qual__grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .qual__card{
    grid-template-columns: 120px max-content;
    justify-content: center;
    column-gap: 14px;
    padding: 16px 16px;
    min-height: 104px;
  }

  .qual__icon{
    width: 118px;
    height: 78px;
  }

  .qual__icon img{
    width: 104px;
    height: 78px;
  }

  .qual__card-text{
    font-size: 16px;
  }
}

/* ===== Steps (price estimation) ===== */
.steps {
  background: #F7F7F7;
  width: 100%;
  margin: 0;
}

.steps__title{
  margin: 0 0 22px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
   hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
}

.steps__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.steps__card{
  background:#fff;
  border: 1px solid rgba(0,0,0,.35);
  border-radius: 18px;
  overflow:hidden;
}

.steps__media{
  aspect-ratio: 16 / 7; 
  background:#e9e9e9;
}

.steps__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.steps__caption{
  padding: 14px 16px;
  text-align:center;
  font-size: 16px;
  line-height: 1.25;
  color: var(--text);
  border-top: 1px solid rgba(0,0,0,.35);
}

/* Mobile */
@media (max-width: 960px){
  .steps{
    padding: 34px 0 44px;
  }

  .steps__grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .steps__media{
    aspect-ratio: 16 / 9;
  }

  .steps__caption{
    font-size: 16px;
    padding: 14px 14px;
  }
}

/* ===== FAQ ===== */
.faq{
  background:#fff;
  padding: 54px 0 54px;
}

.faq__title{
  margin: 0 0 18px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.05;
  font-size: 40px;
  color: var(--text);
}

.faq__title-mobile{ display:none; }

.faq__list{
  border-top: 1px solid rgba(0,0,0,.15);
}

.faq__item{
  border-bottom: 1px solid rgba(0,0,0,.15);
}

.faq__q{
  list-style: none;
  cursor: pointer;
  padding: 16px 44px 16px 0;
  position: relative;
  font-weight:600;
  font-size: 18px;
  line-height: 1.25;
  color: var(--text);
}

.faq__q::-webkit-details-marker{ display:none; }

.faq__q::after{
  content:"";
  position:absolute;
  right: 8px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  opacity: .7;
  background: no-repeat center/18px 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5 7l5 6 5-6' fill='none' stroke='%232b241e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.faq__item[open] .faq__q::after{
  transform: translateY(-50%) rotate(180deg);
}

.faq__a{
  padding: 0 44px 16px 0;
  color: var(--text);
  opacity: .85;
  font-size: 16px;
  line-height: 1.55;
}

.faq__a p{ margin: 0; }

/* Mobile */
@media (max-width: 960px){
  .faq{
    padding: 34px 0 34px;
  }

  .faq__title-desktop{ display:none; }
  .faq__title-mobile{ display:inline; }

  .faq__q{
    font-size: 18px;
    padding-right: 40px;
  }

  .faq__a{
    padding-right: 40px;
  }
}

/* ===== CTA Photo ===== */
.cta-photo{
  background:#fff;
  padding: 44px 0 44px;
}

.cta-photo__bg{
  position: relative;
  height: 350px;
  border-radius: 0px;
  overflow: hidden;

  background:
    url("assets/cta-photo-bg.webp") center/cover no-repeat;
}

.cta-photo__card{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
  width: min(720px, calc(100% - 80px));
  padding: 34px 42px;
  border-radius: 18px;
  border: 1px solid #6D5D50;
  box-shadow: 0 24px 60px rgba(0,0,0,.12);
  backdrop-filter: blur(2px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);

  text-align:center;
}

.cta-photo__title{
  font-weight: 700;
  font-size: 20px;
  line-height: 1.25;
  color: var(--text);
  margin: 0 0 14px;
}

.cta-photo__subtitle{
  font-size: 18px;
  line-height: 1.25;
  color: var(--text);
  opacity: .9;
  margin: 0 0 18px;
}

.cta-photo__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 64px;
  border-radius: 999px;
  background: #2b241e;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  letter-spacing: .02em;
}

/* Mobile */
@media (max-width: 960px){
  .cta-photo{
    padding: 26px 0 5px;
  }

  .cta-photo__bg{
    height: 260px;

    /* full-bleed on mobile */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);

    border-radius: 0;

    background:
      linear-gradient(rgba(255,255,255,.72), rgba(255,255,255,.72)),
      url("assets/cta-photo-bg-mobile.webp") center/cover no-repeat;
  }

  .cta-photo__card{
    width: calc(100% - 28px);
    padding: 22px 16px;
  }

  .cta-photo__title{
    font-size: 20px;
  }

  .cta-photo__subtitle{
    font-size: 18px;
  }

  .cta-photo__btn{
    width: 200px;
    padding: 0;
  }
}

/* ===== Legal links ===== */
.legal-links{
  background:#fff;           
  padding: 36px 0 72px;       
}

.legal-links__inner{
  width: min(1160px, 92vw);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(24px, 6vw, 140px);   
  flex-wrap: wrap;           
  text-align: center;
}

.legal-links__a{
  color: #2D241B;
  font-size: 16px;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
  transition: opacity .2s ease;
}

.legal-links__a:hover,
.legal-links__a:focus{
  opacity: .7;
}

.hp{ display:none !important; }

.form-status{ margin-top:.75rem; font-size:.95rem; opacity:.9 }

button.loading{ opacity:.6; pointer-events:none }

@media (hover:hover) {
  .topbar .soc:hover .soc__bg {
    background: transparent !important;
    box-shadow: none !important;
    border-color: inherit !important; 
  }
}

/* === Zusatzleistungen === */
.add-services{
  background: #F7F7F7;
  padding: 40px 0 40px;
}

.add-services__head{
  max-width: 980px;
  text-align: left;    
  margin: 0 0 44px 0;
}

.add-services__title{
  margin: 0 0 18px 0;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.06;
  font-size: 40px;
  color: var(--text);

  hyphens: auto;
  -webkit-hyphens: auto;
}

.add-services__lead{
  margin: 0;
  font-size: 20px;
  line-height: 1.6;
  color: var(--text);
  opacity: .9;

  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: anywhere;
}

.add-services__cards{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 44px;
}

.add-card{
  display: flex;
  gap: 28px;
  align-items: center;
  background: #fff;
  color: #2D241B;
  text-decoration: none;

  border-radius: 18px;
  padding: 26px 52px;
  min-height: 240px;

  box-shadow: 0 22px 60px rgba(0,0,0,.18);
  transition: transform .18s ease, box-shadow .18s ease;
}

.add-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 28px 70px rgba(0,0,0,.20);
}

.add-card__icon{
  flex: 0 0 110px;
  width: 110px;
  height: 110px;
  display: grid;
  place-items: center;
  color: #fff; /* svg stroke inherits */
  opacity: .95;
}

.add-card__body{
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.add-card__title{
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;

  hyphens: auto;
  -webkit-hyphens: auto;
}

.add-card__text{
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  opacity: .92;

  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: anywhere;
}

.add-card__more{
  margin-top: 8px;
  font-size: 16px;
  font-weight: 700;
  opacity: .95;
}

@media (max-width: 980px){
  .add-services{
    padding: 54px 0 54px;
  }

  .add-services__head{
    max-width: none;
    margin-bottom: 28px;
  }

  .add-services__title{
    font-size: 40px;
  }

  .add-services__lead{
    font-size: 20px;
  }

  .add-services__cards{
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .add-card{
    padding: 30px 22px;
    min-height: auto;
    gap: 18px;
  }

  .add-card__icon{
    flex-basis: 86px;
    width: 86px;
    height: 86px;
  }

  .add-card__title{
    font-size: 18px;
  }

  .add-card__text{
    font-size: 16px;
  }

  .add-card__more{
    font-size: 16px;
  }
}
