/* SolarLead — handwerker-solarrechner.de */

@font-face{
  font-family:'Bricolage Grotesque';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url('../fonts/bricolage-grotesque.woff2') format('woff2');
}
@font-face{
  font-family:'Bricolage Grotesque';
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url('../fonts/bricolage-grotesque.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/ibm-plex-sans.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/ibm-plex-sans.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('../fonts/ibm-plex-sans.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../fonts/ibm-plex-mono-400.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../fonts/ibm-plex-mono-500.woff2') format('woff2');
}

:root{
  --bg:#F5F8F6;
  --surface:#FFFFFF;
  --surface-2:#E9F1EC;
  --ink:#101C17;
  --ink-soft:#4B5C54;
  --ink-faint:#7C8C83;
  --line:rgba(16,28,23,0.12);
  --line-strong:rgba(16,28,23,0.26);

  --accent-vivid:#21DF51;
  --accent:#1B9A47;
  --accent-strong:#0D7C39;
  --accent-soft:rgba(33,223,81,0.13);
  --on-accent:#0B1710;

  --accent2:#2C4FBE;
  --accent2-soft:rgba(44,79,190,0.08);

  --good:#1B9A47;
  --shadow:0 20px 50px -25px rgba(16,28,23,0.35);

  --font-display:'Bricolage Grotesque','Arial Black',sans-serif;
  --font-body:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;

  color-scheme:light;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#131A16;
    --surface:#1B241F;
    --surface-2:#212C26;
    --ink:#E9F3EE;
    --ink-soft:#A5BAB0;
    --ink-faint:#788B81;
    --line:rgba(233,243,238,0.13);
    --line-strong:rgba(233,243,238,0.26);
    --accent-vivid:#33EC6B;
    --accent:#49D077;
    --accent-strong:#2AA857;
    --accent-soft:rgba(51,236,107,0.16);
    --accent2:#7C9BFF;
    --accent2-soft:rgba(124,155,255,0.15);
    --good:#49D077;
    --shadow:0 20px 50px -20px rgba(0,0,0,0.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#131A16;
  --surface:#1B241F;
  --surface-2:#212C26;
  --ink:#E9F3EE;
  --ink-soft:#A5BAB0;
  --ink-faint:#788B81;
  --line:rgba(233,243,238,0.13);
  --line-strong:rgba(233,243,238,0.26);
  --accent-vivid:#33EC6B;
  --accent:#49D077;
  --accent-strong:#2AA857;
  --accent-soft:rgba(51,236,107,0.16);
  --accent2:#7C9BFF;
  --accent2-soft:rgba(124,155,255,0.15);
  --good:#49D077;
  --shadow:0 20px 50px -20px rgba(0,0,0,0.6);
  color-scheme:dark;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.02;
  margin:0;
  text-wrap:balance;
}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
a{color:inherit;}
img{max-width:100%;display:block;}
.mono{font-family:var(--font-mono);}
.eyebrow{
  font-family:var(--font-mono);
  font-size:0.74rem;
  font-weight:500;
  letter-spacing:0.13em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:0.55em;
}
.eyebrow::before{
  content:"";
  width:7px;height:7px;
  border-radius:50%;
  background:var(--accent);
  flex:none;
}
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding-left:clamp(1.25rem,4vw,3rem);
  padding-right:clamp(1.25rem,4vw,3rem);
}
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:2px;
}

/* NAV */
.nav{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--line);}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:0.85rem 0;}
.brand{
  display:flex;align-items:baseline;gap:0.4rem;
  font-family:var(--font-display);font-weight:800;font-size:1.3rem;
  text-decoration:none;white-space:nowrap;
}
.nav-links{display:flex;align-items:center;gap:1.7rem;}
.nav-links a{font-size:0.9rem;text-decoration:none;color:var(--ink-soft);transition:color .15s ease;}
.nav-links a:hover{color:var(--ink);}
@media (max-width:900px){.nav-links a:not(.btn){display:none;}}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  font-family:var(--font-body);font-weight:600;font-size:0.92rem;
  padding:0.7rem 1.3rem;border-radius:8px;text-decoration:none;cursor:pointer;
  border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,transform .15s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--accent-vivid);color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-strong);color:#fff;}
.btn-primary:active{transform:translateY(1px);}
.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:transparent;}
.btn-ghost:hover{border-color:var(--ink);}
.btn-dark{background:var(--ink);color:var(--bg);}
.btn-dark:hover{opacity:0.88;}

/* HERO */
.hero{padding-top:clamp(3rem,6vw,5rem);padding-bottom:clamp(2.5rem,5vw,3.5rem);}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr;}}
.hero h1{margin-top:0.9rem;font-size:clamp(2.4rem,3.6vw + 1rem,3.6rem);}
.hero-sub{margin-top:1.3rem;max-width:50ch;font-size:1.1rem;color:var(--ink-soft);}
.hero-ctas{margin-top:2rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;}
.link-arrow{font-size:0.92rem;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-strong);padding-bottom:2px;}
.link-arrow:hover{border-color:var(--ink);}

/* HERO SCREENSHOT (real screenshot in a browser frame) */
.hero-shot{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:var(--surface);
}
.hero-shot-chrome{
  display:flex;align-items:center;gap:0.7rem;
  padding:0.65rem 0.9rem;
  background:var(--surface-2);
  border-bottom:1px solid var(--line);
}
.hero-shot-dots{display:flex;gap:0.32rem;}
.hero-shot-dots span{width:8px;height:8px;border-radius:50%;background:var(--line-strong);}
.hero-shot-url{
  font-family:var(--font-mono);font-size:0.72rem;color:var(--ink-faint);
  background:var(--surface);border:1px solid var(--line);border-radius:6px;
  padding:0.28rem 0.65rem;flex:1;
}
.hero-shot img{width:100%;display:block;}
.hero-shot-caption{
  padding:0.9rem 1.1rem;border-top:1px solid var(--line);
  font-size:0.86rem;color:var(--ink-soft);
}
.hero-shot-caption b{color:var(--ink);}

/* TRUST BAR */
.trust{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.trust-row{display:flex;overflow-x:auto;scrollbar-width:none;}
.trust-row::-webkit-scrollbar{display:none;}
.trust-item{flex:1 0 auto;padding:1.1rem clamp(1rem,3vw,2rem);border-right:1px solid var(--line);min-width:210px;}
.trust-item:last-child{border-right:none;}
.trust-item .label{font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.1em;color:var(--ink-faint);text-transform:uppercase;}
.trust-item .value{margin-top:0.3rem;font-weight:600;font-size:0.98rem;}

/* SECTIONS */
section{padding-top:clamp(3.5rem,7vw,6rem);padding-bottom:clamp(3.5rem,7vw,6rem);}
section + section{border-top:1px solid var(--line);}
.sec-head{max-width:64ch;}
.sec-head h2{margin-top:0.6rem;font-size:clamp(1.85rem,2.5vw + 1rem,2.6rem);}
.sec-head .lede{margin-top:1rem;font-size:1.04rem;color:var(--ink-soft);max-width:60ch;}

/* PROCESS */
.process-row{margin-top:3rem;display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem;}
@media (max-width:900px){.process-row{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.process-row{grid-template-columns:1fr;}}
.process-step{border-top:2px solid var(--line-strong);padding-top:1.1rem;}
.process-step .num{font-family:var(--font-mono);font-size:0.85rem;color:var(--accent);}
.process-step h3{margin-top:0.6rem;font-family:var(--font-body);font-weight:600;font-size:1.06rem;}
.process-step p{margin-top:0.5rem;color:var(--ink-soft);font-size:0.94rem;}

/* COMPARISON SPEC TABLE */
.spec-table{margin-top:2.8rem;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);}
.spec-row{display:grid;grid-template-columns:190px repeat(3,1fr);}
.spec-row + .spec-row{border-top:1px solid var(--line);}
.spec-cell{padding:1.05rem 1.1rem;font-size:0.92rem;}
.spec-row.head-row{background:var(--surface-2);}
.spec-row.head-row .spec-cell{padding-top:1.3rem;padding-bottom:1.05rem;}
.spec-cell.rowlabel{
  font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--ink-faint);display:flex;align-items:center;
}
.spec-cell:not(.rowlabel){border-left:1px solid var(--line);}
.spec-cell.win{background:var(--accent-soft);}
.pkg-name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;}
.pkg-tag{display:block;margin-top:0.35rem;font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);}
.pkg-tag.good{color:var(--good);}
@media (max-width:820px){
  .spec-table{border:none;background:transparent;}
  .spec-row{grid-template-columns:1fr;}
  .spec-row.head-row{display:none;}
  .spec-cell.rowlabel{border-top:1px solid var(--line);padding-top:1.2rem;}
  .spec-cell:not(.rowlabel){border-left:none;}
}

/* FORM VS SOLARLEAD COMPARISON */
.compare-kicker{margin-top:2.8rem;font-size:0.78rem;color:var(--ink-faint);letter-spacing:0.02em;}
.compare-stack{margin-top:1rem;display:flex;flex-direction:column;gap:1.8rem;}
.compare-block{
  border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;
  transition:border-color .15s ease;
}
#cmp-solarlead{border-color:var(--accent-soft);}
.compare-block-head{
  display:flex;align-items:center;justify-content:space-between;gap:0.8rem;flex-wrap:wrap;
  padding:1.05rem 1.4rem;border-bottom:1px solid var(--line);background:var(--surface-2);
}
.compare-block-head h3{font-family:var(--font-body);font-weight:600;font-size:1rem;}
.badge-warn{
  font-size:0.62rem;letter-spacing:0.07em;text-transform:uppercase;white-space:nowrap;
  color:var(--ink-soft);background:var(--surface);border:1px solid var(--line-strong);
  padding:0.28rem 0.55rem;border-radius:5px;
}
.badge-good{
  font-size:0.62rem;letter-spacing:0.07em;text-transform:uppercase;white-space:nowrap;
  color:var(--accent-strong);background:var(--accent-soft);
  padding:0.28rem 0.55rem;border-radius:5px;
}

/* Klick-Assistent (typisches Formular) */
.wizard{padding:1.8rem clamp(1rem,3vw,2.4rem) 2rem;}
.wizard-steps{
  display:flex;align-items:flex-start;margin:0 auto 2rem;max-width:620px;
}
.wizard-step{display:flex;flex-direction:column;align-items:center;gap:0.5rem;}
.wizard-step .dot{
  width:30px;height:30px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.8rem;font-weight:600;
  background:var(--surface);border:2px solid var(--line-strong);color:var(--ink-faint);
}
.wizard-step .lbl{font-size:0.72rem;color:var(--ink-faint);white-space:nowrap;}
.wizard-step.done .dot{background:var(--ink-faint);border-color:var(--ink-faint);color:var(--surface);}
.wizard-step.active .dot{background:#5B6472;border-color:#5B6472;color:#fff;}
.wizard-step.active .lbl{color:var(--ink);font-weight:600;}
.wizard-connector{flex:1;height:2px;background:var(--line-strong);margin-top:15px;}
.wizard-connector.done{background:#5B6472;}
.wizard-panel{border:1px solid var(--line);border-radius:12px;padding:1.5rem;max-width:620px;margin:0 auto;background:var(--surface);}
.wizard-eyebrow{color:#5B6472;letter-spacing:0.1em;text-transform:uppercase;font-size:0.68rem;}
.wizard-panel h4{margin-top:0.5rem;font-family:var(--font-body);font-weight:700;font-size:1.2rem;}
.wizard-panel .help{margin-top:0.55rem;color:var(--ink-soft);font-size:0.9rem;}
.wizard-grid{margin-top:1.3rem;display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;}
.wizard-option{
  border:1px solid var(--line-strong);border-radius:10px;padding:1.1rem 0.8rem;text-align:center;
  cursor:pointer;transition:all .15s ease;background:var(--surface);
}
.wizard-option:hover{border-color:#5B6472;}
.wizard-option svg{width:26px;height:26px;margin:0 auto 0.55rem;color:var(--ink-faint);display:block;}
.wizard-option.selected{border-color:#5B6472;background:rgba(91,100,114,0.08);}
.wizard-option.selected svg{color:#5B6472;}
.wizard-option .name{font-size:0.87rem;font-weight:600;}
.wizard-panel .f-row label{
  display:block;margin-bottom:0.4rem;font-family:var(--font-mono);font-size:0.66rem;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);
}
.wizard-panel input[type="range"]{width:100%;accent-color:#5B6472;}
.range-value{margin-top:0.5rem;font-size:0.78rem;color:var(--ink-faint);}
.fake-cta{
  padding:0.65rem 1.3rem;border-radius:7px;border:1px solid var(--line-strong);
  background:var(--surface-2);color:var(--ink-faint);font-family:var(--font-body);font-weight:600;font-size:0.88rem;
  cursor:not-allowed;
}
.wizard-actions{display:flex;justify-content:space-between;gap:1rem;max-width:620px;margin:1.6rem auto 0;}
.btn-wizard-back{border:1px solid var(--line-strong);background:transparent;color:var(--ink-soft);}
.btn-wizard-back:disabled{opacity:0.4;cursor:not-allowed;}
.btn-wizard-next{background:#5B6472;color:#fff;}
.btn-wizard-next:hover{background:#48505C;}

/* SolarLead Screenshot-Karussell */
.carousel-stage{position:relative;background:var(--surface-2);}
.carousel-track{display:flex;transition:transform .35s ease;}
.carousel-slide{flex:0 0 100%;min-width:0;}
.carousel-slide img{width:100%;display:block;}
.carousel-nav{
  position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;
  background:rgba(16,28,23,0.55);color:#fff;border:none;font-size:1.3rem;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease;
}
.carousel-nav:hover{background:rgba(16,28,23,0.78);}
.carousel-prev{left:14px;}
.carousel-next{right:14px;}
.carousel-dots{display:flex;justify-content:center;gap:0.5rem;padding:0.9rem;background:var(--surface);}
.carousel-dots button{width:8px;height:8px;border-radius:50%;border:none;background:var(--line-strong);cursor:pointer;padding:0;transition:all .2s ease;}
.carousel-dots button.active{background:var(--accent);width:22px;border-radius:4px;}
.carousel-caption{
  padding:1.1rem 1.4rem;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.carousel-caption p{font-size:0.88rem;color:var(--ink-soft);}
.carousel-step-label{font-family:var(--font-mono);color:var(--accent-strong);letter-spacing:0.05em;}

/* FEATURES GRID */
.feat-grid{margin-top:2.6rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
@media (max-width:860px){.feat-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.feat-grid{grid-template-columns:1fr;}}
.feat-card{padding:1.5rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.feat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong);}
.feat-card .icon{
  width:38px;height:38px;border-radius:9px;background:var(--accent2-soft);color:var(--accent2);
  display:flex;align-items:center;justify-content:center;margin-bottom:0.9rem;
}
.feat-card .icon svg{width:19px;height:19px;}
.feat-card h3{font-family:var(--font-body);font-weight:600;font-size:1.02rem;}
.feat-card p{margin-top:0.5rem;color:var(--ink-soft);font-size:0.92rem;}

/* PRICING */
.pricing-grid{margin-top:2.8rem;display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
@media (max-width:780px){.pricing-grid{grid-template-columns:1fr;}}
.price-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:1.8rem;display:flex;flex-direction:column;gap:1.1rem;transition:transform .15s ease,box-shadow .15s ease;}
.price-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.price-card.featured{border-color:var(--accent-vivid);box-shadow:0 0 0 1px var(--accent-vivid);}
.price-card.featured:hover{box-shadow:0 0 0 1px var(--accent-vivid),var(--shadow);}
.price-card .top-row{display:flex;align-items:center;justify-content:space-between;}
.price-card h3{font-family:var(--font-display);font-weight:800;font-size:1.5rem;}
.price-tag{
  font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:0.3rem 0.6rem;border-radius:5px;background:var(--accent-soft);color:var(--accent-strong);
}
.price-amount{font-family:var(--font-mono);font-size:2.1rem;font-weight:500;font-variant-numeric:tabular-nums;}
.price-amount span{font-size:0.95rem;color:var(--ink-faint);font-weight:400;}
.price-card ul{display:flex;flex-direction:column;gap:0.6rem;}
.price-card li{display:flex;gap:0.6rem;font-size:0.92rem;color:var(--ink-soft);}
.price-card li::before{
  content:"";flex:none;width:16px;height:16px;margin-top:0.2rem;background:var(--accent);
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center / contain;
}
.price-note{margin-top:2rem;font-family:var(--font-mono);font-size:0.8rem;color:var(--ink-faint);}

/* REFERENZEN */
.ref-row{margin-top:2.6rem;display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
@media (max-width:700px){.ref-row{grid-template-columns:1fr;}}
.ref-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:1.6rem;transition:border-color .15s ease,box-shadow .15s ease;}
a.ref-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);}
.ref-logo{display:inline-flex;background:#fff;border-radius:8px;padding:0.6rem 0.9rem;}
.ref-logo img{height:28px;width:auto;display:block;}
.ref-card .ref-name{font-family:var(--font-display);font-weight:700;font-size:1.15rem;}
.ref-card .ref-loc{margin-top:0.2rem;font-family:var(--font-mono);font-size:0.72rem;color:var(--ink-faint);letter-spacing:0.04em;}
.ref-card p{margin-top:0.8rem;color:var(--ink-soft);font-size:0.94rem;}
.ref-card.placeholder{border-style:dashed;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink-faint);font-size:0.94rem;}

.blog-card{
  display:flex;align-items:stretch;gap:1.6rem;padding:0;overflow:hidden;
  text-decoration:none;color:inherit;flex-wrap:wrap;
}
.blog-card-img{width:260px;flex:none;object-fit:cover;border-radius:10px;}
.blog-card-body{padding:1.4rem 1.6rem 1.4rem 0;flex:1;min-width:240px;}
.blog-card-body h3{
  margin-top:0.5rem;font-family:var(--font-display);font-weight:700;font-size:1.25rem;
}
.blog-card-body p{margin-top:0.6rem;max-width:56ch;color:var(--ink-soft);font-size:0.95rem;}
@media (max-width:640px){
  .blog-card{flex-direction:column;}
  .blog-card-img{width:100%;height:180px;}
  .blog-card-body{padding:1.2rem 1.4rem 1.4rem;}
}

/* FAQ */
.faq-list{margin-top:2.6rem;max-width:76ch;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{cursor:pointer;list-style:none;padding:1.15rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600;font-size:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item .plus{flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);position:relative;}
.faq-item .plus::before,.faq-item .plus::after{content:"";position:absolute;background:var(--ink);top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-item .plus::before{width:9px;height:1.4px;}
.faq-item .plus::after{width:1.4px;height:9px;transition:transform .15s ease;}
.faq-item[open] .plus::after{transform:translate(-50%,-50%) scaleY(0);}
.faq-item .a{padding:0 0 1.3rem;color:var(--ink-soft);font-size:0.97rem;max-width:66ch;}

/* KONTAKT */
.kontakt-grid{margin-top:2.6rem;display:grid;grid-template-columns:1.05fr 0.85fr;gap:clamp(2rem,5vw,4rem);}
@media (max-width:900px){.kontakt-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1.1rem;}
.field label{font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:0.98rem;color:var(--ink);background:var(--surface);
  border:1px solid var(--line-strong);border-radius:8px;padding:0.75rem 0.85rem;resize:vertical;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.contact-side{border:1px solid var(--line);border-radius:12px;padding:1.6rem;background:var(--surface-2);height:fit-content;}
.contact-side .label{font-family:var(--font-mono);font-size:0.64rem;letter-spacing:0.1em;color:var(--ink-faint);text-transform:uppercase;}
.contact-side .row{margin-top:1.3rem;}
.contact-side .row:first-child{margin-top:0;}
.contact-side .big-link{display:block;margin-top:0.4rem;font-weight:600;text-decoration:none;font-size:1.02rem;}
.contact-side .big-link:hover{color:var(--accent);}

/* ANFRAGE-FORMULAR: geteilte Elemente (Modal + Inline-Formular) */
.field-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.field-check{
  display:flex;align-items:flex-start;gap:0.6rem;margin:0.3rem 0 1.2rem;
  font-size:0.84rem;color:var(--ink-soft);cursor:pointer;
}
.field-check input{margin-top:0.2rem;accent-color:var(--accent);flex:none;}
.field-check a{color:var(--accent-strong);text-decoration:underline;}
.form-msg{margin-top:0.9rem;font-size:0.88rem;min-height:1.2em;}
.form-msg.is-success{color:var(--good);}
.form-msg.is-error{color:#C0463A;}
.btn[disabled]{opacity:0.6;cursor:not-allowed;}

/* MODAL */
.modal-overlay{
  position:fixed;inset:0;z-index:100;
  background:rgba(10,15,12,0.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:1.2rem;
}
.modal-overlay[hidden]{display:none;}
.modal-box{
  position:relative;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;
  background:var(--surface);border-radius:16px;border:1px solid var(--line);
  box-shadow:var(--shadow);padding:2rem 2rem 1.8rem;
}
@media (prefers-reduced-motion: no-preference){
  .modal-box{animation:modal-in .18s ease-out;}
}
@keyframes modal-in{
  from{opacity:0;transform:translateY(8px) scale(0.98);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.modal-close{
  position:absolute;top:1.1rem;right:1.1rem;
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);
  background:transparent;color:var(--ink-soft);cursor:pointer;font-size:0.9rem;
}
.modal-close:hover{background:var(--surface-2);color:var(--ink);}
.modal-title{margin-top:0.5rem;font-size:1.6rem;}
.modal-sub{margin-top:0.7rem;color:var(--ink-soft);font-size:0.92rem;}
.modal-box form{margin-top:1.5rem;}

/* FOOTER */
footer{border-top:1px solid var(--line);background:var(--surface-2);}
.footer-row{padding-top:2.6rem;padding-bottom:2.6rem;display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap;}
.footer-brand p{margin-top:0.4rem;color:var(--ink-soft);font-size:0.9rem;max-width:38ch;}
.footer-links{display:flex;flex-direction:column;align-items:flex-end;gap:0.6rem;font-size:0.88rem;}
.footer-links .row1{display:flex;gap:1.4rem;}
.footer-links a{text-decoration:none;color:var(--ink-soft);}
.footer-links a:hover{color:var(--ink);}
.footer-links .op{color:var(--ink-faint);font-family:var(--font-mono);font-size:0.74rem;}
@media (max-width:600px){.footer-row{flex-direction:column;}.footer-links{align-items:flex-start;}}
