:root{--navy:#050a0c;--navy2:#0a1719;--ink:#111a1d;--muted:#6d7b80;--line:#e2e8e8;--yellow:#ffe000;--lime:#a8e600;--orange:#f36b17}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);line-height:1.65;background:#fff}a{text-decoration:none;color:inherit}.container{width:min(1140px,calc(100% - 40px));margin:auto}
.header{position:sticky;top:0;z-index:50;background:rgba(5,10,12,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.09);color:#fff}.nav{height:82px;display:flex;align-items:center;justify-content:space-between}.logo-link{display:flex;align-items:center;gap:10px}.logo-link img{width:55px;height:55px;object-fit:contain}.logo-link b{display:block;font-size:15px;letter-spacing:.1px}.logo-link small{display:block;color:#95a0a2;text-transform:uppercase;letter-spacing:2px;font-size:9px}.menu{display:flex;align-items:center;gap:28px;font-size:14px;color:#c7d0d1}.menu a:hover{color:#fff}.nav-button{background:var(--yellow);color:#071012!important;padding:9px 18px;border-radius:999px;font-weight:900}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:27px}
.hero{background:radial-gradient(circle at 78% 28%,#15383b 0,#0b1e21 29%,#050a0c 66%);color:#fff;padding:95px 0 70px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:55px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:950;color:var(--yellow);margin:0 0 15px}.eyebrow>span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--yellow);margin-right:8px;box-shadow:0 0 0 5px rgba(255,224,0,.08)}.dark-eyebrow{color:#a17c00}.dark-eyebrow>span{background:#a17c00;box-shadow:none}.hero h1{font-size:clamp(44px,6.3vw,76px);line-height:1.01;letter-spacing:-3.5px;margin:0 0 24px}.hero h1 em,.about h2 em,.section h2 em,.contact h2 em{font-style:normal;color:var(--yellow)}.lead{font-size:18px;color:#bac5c7;max-width:700px}.actions{display:flex;gap:12px;margin:30px 0 35px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:12px;font-weight:900;border:1px solid transparent;transition:.18s}.btn:hover{transform:translateY(-2px)}.primary{background:var(--yellow);color:#0a1112}.ghost{color:#fff;border-color:rgba(255,255,255,.22)}.outline{border-color:#cfd9dc}.stats{display:flex;gap:30px}.stats div{display:grid}.stats strong{font-size:17px}.stats span{font-size:10px;color:#829093}.hero-logo{position:relative;min-height:430px;display:grid;place-items:center}.hero-logo>img{position:relative;width:min(310px,68%);z-index:2;filter:drop-shadow(0 0 30px rgba(255,224,0,.14))}.glow{position:absolute;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(255,224,0,.12),transparent 65%)}.ring{position:absolute;border:1px solid rgba(255,224,0,.22);border-radius:50%}.ring1{width:340px;height:340px}.ring2{width:465px;height:465px;border-color:rgba(255,255,255,.07)}.hero-note{position:absolute;right:0;bottom:20px;z-index:3;display:flex;gap:10px;align-items:center;padding:13px 16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:15px;backdrop-filter:blur(12px)}.hero-note b,.hero-note small{display:block}.hero-note b{font-size:12px}.hero-note small{font-size:10px;color:#98a6a8}.live-dot{width:9px;height:9px;border-radius:50%;background:#6be83b;box-shadow:0 0 0 5px rgba(107,232,59,.08)}
.intro-strip{background:#f7f9f8;border-bottom:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:repeat(4,1fr)}.intro-grid>div{padding:22px;border-right:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;column-gap:12px}.intro-grid>div:last-child{border:0}.intro-grid span{grid-row:1/3;color:#b18d00;font-size:10px;font-weight:900}.intro-grid b{font-size:13px}.intro-grid small{font-size:10px;color:#7b898c}
.section{padding:100px 0}.section-head{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:end;margin-bottom:45px}.section h2,.about h2,.contact h2,.cta h2{font-size:clamp(34px,4.1vw,52px);line-height:1.07;letter-spacing:-2px;margin:0}.section-head>p{color:var(--muted);margin:0}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{position:relative;min-height:235px;padding:29px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 12px 38px rgba(10,28,30,.05);overflow:hidden;transition:.2s}.service:hover{transform:translateY(-4px);box-shadow:0 18px 55px rgba(10,28,30,.1)}.service.featured{background:#fbffd9;border-color:#d7e96d}.service.solar{background:linear-gradient(145deg,#faffd9,#fff)}.num{position:absolute;top:19px;right:20px;font-size:10px;color:#adb7b9;font-weight:900}.ico{font-size:27px;color:#bd9300;margin-bottom:17px}.service h3{margin:0 0 8px;font-size:19px}.service p{margin:0;color:var(--muted);font-size:13px}
.about{background:var(--navy);color:#fff;padding:105px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.about h2{color:#fff}.about p:not(.eyebrow){color:#aebabc}.brand-panel{min-height:390px;border:1px solid rgba(255,255,255,.12);border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015));padding:35px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.2)}.brand-panel img{width:210px;max-width:65%;object-fit:contain;margin-bottom:20px}.brand-panel-text strong{display:block;letter-spacing:2px;font-size:15px}.brand-panel-text span{display:block;color:#91a0a3;font-size:12px;margin-top:4px}.chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:26px}.chips span{border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:7px 11px;color:#bdc8ca;font-size:10px}
.process{background:#f7f9f8}.center{text-align:center;display:block;max-width:760px;margin-left:auto;margin-right:auto}.center>p{margin:16px auto 0}.timeline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dbe3e4}.timeline>div{position:relative;padding:35px 22px 10px;border-right:1px solid #dbe3e4}.timeline>div:last-child{border:0}.timeline span{position:absolute;top:-17px;left:22px;width:34px;height:34px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;font-weight:950;font-size:12px}.timeline h3{margin:13px 0 6px;font-size:18px}.timeline p{margin:0;color:var(--muted);font-size:13px}
.cta{background:linear-gradient(100deg,var(--yellow),#b8ea00);padding:45px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta .eyebrow{color:#645300}.cta .eyebrow>span{background:#645300;box-shadow:none}.dark-btn{background:#071012;color:#fff}
.contact{background:#edf2f3;padding:95px 0}.contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:center}.contact h2{margin-bottom:18px}.contact p:not(.eyebrow){color:var(--muted)}.contact-buttons{display:flex;gap:10px;margin-top:28px}.contact-card{background:#fff;border:1px solid #dce4e6;border-radius:22px;padding:10px;box-shadow:0 20px 60px rgba(15,30,35,.09)}.contact-card>div{padding:20px;border-bottom:1px solid #e8eeee}.contact-card>div:last-child{border:0}.contact-card small{display:block;text-transform:uppercase;letter-spacing:1.3px;font-size:10px;color:#7d8a8d}.contact-card a,.contact-card span{display:block;font-size:17px;font-weight:850;margin-top:3px}.contact-card a:hover{color:#9c7a00}
footer{background:#030708;color:#849295;padding:26px 0}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer>div{display:flex;align-items:center;gap:10px}.footer img{width:42px;height:42px;object-fit:contain}.footer span{font-size:12px;color:#fff}.footer small{font-size:10px}
@media(max-width:880px){.menu{display:none;position:absolute;top:76px;left:14px;right:14px;padding:15px;background:#081315;border:1px solid rgba(255,255,255,.1);border-radius:16px;flex-direction:column;align-items:stretch}.menu.open{display:flex}.menu-toggle{display:block}.hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr}.hero-logo{min-height:320px;order:-1}.section-head{grid-template-columns:1fr;gap:12px}.services{grid-template-columns:1fr 1fr}.intro-grid{grid-template-columns:1fr 1fr}.intro-grid>div:nth-child(2){border-right:0}.timeline{grid-template-columns:1fr 1fr}.timeline>div:nth-child(2){border-right:0}.timeline>div{border-bottom:1px solid #dbe3e4}.cta-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.container{width:calc(100% - 28px)}.nav{height:72px}.logo-link img{width:48px;height:48px}.hero{padding-top:65px}.hero h1{letter-spacing:-2.5px}.actions,.contact-buttons{flex-direction:column}.stats{display:grid;grid-template-columns:1fr 1fr;gap:15px}.hero-logo{min-height:270px}.hero-logo>img{width:180px}.ring1{width:235px;height:235px}.ring2{width:305px;height:305px}.hero-note{right:0;font-size:10px}.services,.intro-grid,.timeline{grid-template-columns:1fr}.intro-grid>div{border-right:0;border-bottom:1px solid var(--line)}.timeline>div{border-right:0}.footer{align-items:flex-start;flex-direction:column}}


/* V4 legal / impressum */
.legal { background: #f5f7f4; }
.legal-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:22px; margin-top:36px; }
.legal-card { background:#fff; border:1px solid rgba(5,10,12,.09); border-radius:18px; padding:28px; box-shadow:0 12px 30px rgba(5,10,12,.05); }
.legal-wide { grid-column:1/-1; }
.legal-kicker { display:block; font-size:.72rem; letter-spacing:.16em; font-weight:800; margin-bottom:12px; opacity:.7; }
.legal-card h3 { margin:0 0 18px; font-size:1.35rem; }
.legal-card dl { display:grid; grid-template-columns:150px 1fr; gap:10px 16px; margin:0; }
.legal-card dt { font-weight:800; }
.legal-card dd { margin:0; }
.legal-card a { color:inherit; text-underline-offset:3px; }
.legal-note { margin-top:20px; padding-top:16px; border-top:1px solid rgba(5,10,12,.08); font-size:.9rem; opacity:.78; }
.footer a { color:inherit; }
@media (max-width: 760px) {
  .legal-grid { grid-template-columns:1fr; }
  .legal-wide { grid-column:auto; }
  .legal-card dl { grid-template-columns:1fr; gap:5px; }
  .legal-card dt { margin-top:8px; }
}


/* Mobile process-step fix: keep numbered markers clear of text */
@media (max-width: 760px) {
  .process,
  .steps,
  .timeline {
    overflow: visible;
  }

  .process-step,
  .step,
  .timeline-item {
    position: relative;
  }

  /* Common layouts used by the process section */
  .process-step,
  .step,
  .timeline-item {
    padding-left: 72px !important;
  }

  .process-step .number,
  .process-step .step-number,
  .step .number,
  .step .step-number,
  .timeline-item .number,
  .timeline-item .step-number {
    position: absolute !important;
    left: 0 !important;
    top: 0.15rem !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 2;
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .process-step h3,
  .process-step h4,
  .step h3,
  .step h4,
  .timeline-item h3,
  .timeline-item h4 {
    margin-left: 0 !important;
    position: relative;
    z-index: 1;
  }

  .process-step p,
  .step p,
  .timeline-item p {
    margin-left: 0 !important;
  }
}


/* FINAL MOBILE FIX – process timeline/steps */
@media (max-width: 760px) {
  /* Any step/timeline container */
  .process-step, .step, .timeline-item,
  .process .item, .steps .item, .timeline .item {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    column-gap: 18px !important;
    align-items: start !important;
    position: relative !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    min-height: 72px;
  }

  .process-step > .number, .process-step > .step-number,
  .step > .number, .step > .step-number,
  .timeline-item > .number, .timeline-item > .step-number,
  .process .item > .number, .process .item > .step-number,
  .steps .item > .number, .steps .item > .step-number,
  .timeline .item > .number, .timeline .item > .step-number {
    position: static !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    transform: none !important;
    margin: 0 !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    box-sizing: border-box !important;
    justify-self: center !important;
    align-self: start !important;
    z-index: 1 !important;
  }

  .process-step > div:not(.number):not(.step-number),
  .step > div:not(.number):not(.step-number),
  .timeline-item > div:not(.number):not(.step-number),
  .process .item > div:not(.number):not(.step-number),
  .steps .item > div:not(.number):not(.step-number),
  .timeline .item > div:not(.number):not(.step-number) {
    grid-column: 2 !important;
    min-width: 0 !important;
  }

  .process-step h3, .process-step h4,
  .step h3, .step h4,
  .timeline-item h3, .timeline-item h4,
  .process .item h3, .process .item h4,
  .steps .item h3, .steps .item h4,
  .timeline .item h3, .timeline .item h4 {
    margin: 0 0 8px 0 !important;
    position: static !important;
  }

  .process-step p, .step p, .timeline-item p,
  .process .item p, .steps .item p, .timeline .item p {
    margin-left: 0 !important;
    position: static !important;
  }

  /* If the original markup places the number before a content wrapper,
     ensure the wrapper occupies the second column. */
  .process-step > :nth-child(2),
  .step > :nth-child(2),
  .timeline-item > :nth-child(2) {
    grid-column: 2 !important;
    min-width: 0 !important;
  }
}


/* Precise mobile fix for the actual .timeline markup */
@media (max-width: 760px) {
  .timeline {
    display: grid !important;
    grid-template-columns: 1fr !important;
    border-top: 1px solid #dbe3e4;
    margin-top: 28px;
  }

  .timeline > div {
    position: relative !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 88px !important;
    padding: 24px 14px 24px 64px !important;
    border-right: 0 !important;
    border-bottom: 1px solid #dbe3e4 !important;
  }

  .timeline > div:last-child {
    border-bottom: 0 !important;
  }

  .timeline > div > span {
    position: absolute !important;
    left: 10px !important;
    top: 24px !important;
    width: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    z-index: 2 !important;
  }

  .timeline > div > h3 {
    display: block !important;
    margin: 0 0 7px 0 !important;
    padding: 0 !important;
    position: static !important;
  }

  .timeline > div > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
  }
}
