:root{--do-bg:#111;--do-head:#fff;--do-menu:#fff;--do-active:#e53935;--do-footer-bg:#0b0b0b;--do-footer-text:#fff;--do-header-title-size:34px;--do-menu-size:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,sans-serif;color:#111;background:#f5f3ef}a{text-decoration:none}.container{width:min(1200px,92vw);margin:0 auto}
.site-header{background:linear-gradient(180deg,#111,#121a2a);color:var(--do-head);border-bottom:4px solid var(--do-active)}.header-inner{display:flex;align-items:center;gap:1rem;padding:.9rem 0}.do-logo{display:inline-flex;align-items:center}.do-logo img{display:block;max-width:100%}.header-title{font-size:var(--do-header-title-size);font-weight:800;line-height:1}.main-nav{margin-left:auto}.main-nav ul{display:flex;list-style:none;gap:1.25rem;margin:0;padding:0;align-items:center}.main-nav a{color:var(--do-menu);font-size:var(--do-menu-size);font-weight:700;text-transform:uppercase}.main-nav a:hover,.main-nav a:focus{color:var(--do-active)}.menu-toggle{display:none;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:14px;padding:.85rem 1rem;font-size:1rem}
.hero{position:relative;min-height:70vh;display:grid;align-items:center;overflow:hidden;background:#111}.hero-slider,.hero-slide,.hero-overlay{position:absolute;inset:0}.hero-slide{background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease}.hero-slide.active{opacity:1}.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.55))}.hero-content{position:relative;z-index:2;color:#fff;padding:8rem 0 6rem;text-align:center}.hero-badge{display:inline-block;color:#ff4b47;font-size:clamp(1rem,2vw,1.6rem);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.hero h1{font-size:clamp(2.3rem,6vw,5rem);line-height:1.04;margin:.25rem 0 1rem;font-weight:900}.hero p{font-size:clamp(1rem,2vw,1.25rem);max-width:760px;margin:0 auto 1.5rem}.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.4rem;border-radius:999px;font-weight:700}.btn-primary{background:var(--do-active);color:#fff}.btn-secondary{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25)}.hero-logo-wrap{margin:0 auto 1rem;display:inline-flex;align-items:center;justify-content:center}.hero-logo-wrap.boxed{background:rgba(255,255,255,.9);padding:1rem 1.25rem;border-radius:22px;box-shadow:0 10px 28px rgba(0,0,0,.18)}.hero-logo{display:block;max-width:100%;height:auto}
.content-section,.contact-section{padding:4.5rem 0;background:var(--section-bg);color:var(--section-text);background-size:cover;background-position:center;position:relative}.content-section .container,.contact-section .container{position:relative;z-index:1}.content-section::before,.contact-section::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.08)}.content-section[style*='transparent']::before{background:rgba(0,0,0,.45)}.section-badge{color:var(--section-badge);font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.content-section h2,.contact-section h2{color:var(--section-title);font-family:var(--section-font);font-size:var(--section-title-size);margin:.1rem 0 1.1rem;line-height:1.08}.content-section p,.contact-section p{font-family:var(--section-font);font-size:var(--section-text-size);line-height:1.65}.section-banner{height:220px;background-size:cover;background-position:center;margin-bottom:2rem}
.standard-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}.standard-layout.img-left .section-image{order:1}.standard-layout.img-left .section-copy{order:2}.standard-layout.img-right .section-copy{order:1}.standard-layout.img-right .section-image{order:2}.standard-layout.img-none{grid-template-columns:1fr}.section-image img,.feature-image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:18px}
.grid-right-layout{display:grid;grid-template-columns:2fr 1fr;gap:0}.grid6{display:grid;grid-template-columns:repeat(3,1fr);background:#1f1f1f;border:1px solid rgba(255,255,255,.1)}.grid-card{min-height:210px;padding:1.4rem;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:.85rem;justify-content:center;align-items:center;text-align:center;color:#fff}.grid-card:nth-child(3n){border-right:none}.grid-card .icon,.info-card .icon{width:62px;height:62px;display:inline-flex;align-items:center;justify-content:center;color:var(--do-active)}.grid-card .icon svg,.info-card .icon svg{width:100%;height:100%;fill:currentColor}.card-title{font-size:1.9rem;font-weight:800}.card-text{font-size:1rem;opacity:.92}.feature-image{min-height:420px}
.info3-layout{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.info-card{text-align:left;color:#fff}.info-card .round{background:var(--do-active);color:#fff;border-radius:50%;padding:1rem;width:78px;height:78px}.info-card h3{font-size:2rem;margin:1rem 0 .5rem;color:#fff}.info-card p{margin:0}
.team-intro{max-width:820px;margin:0 auto 2rem;text-align:center;color:#fff}.team-layout{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.team-card{text-align:center;color:#fff}.team-image{width:min(300px,100%);aspect-ratio:1/1;margin:0 auto 1rem;border-radius:50%;overflow:hidden;background:#fff;padding:0}.team-image img{width:100%;height:100%;object-fit:cover}.team-card h3{font-size:1.8rem;margin:.3rem 0}.team-card p{margin:0 auto;max-width:320px}
.contact-section{--section-title:var(--contact-title);--section-text:var(--contact-text);--section-badge:var(--contact-badge);background:var(--contact-bg)}.contact-section::before{background:rgba(0,0,0,.18)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.contact-details{display:grid;gap:.75rem;margin-top:1rem}.contact-form{display:grid;gap:1rem}.contact-form label{display:grid;gap:.35rem;color:#fff;font-weight:700}.contact-form input,.contact-form textarea{width:100%;padding:.9rem 1rem;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff}.hp-field{position:absolute;left:-9999px;opacity:0}.contact-message{padding:.9rem 1rem;border-radius:14px;margin-bottom:1rem}.contact-message.success{background:#1b5e20;color:#fff}.contact-message.error{background:#8e1720;color:#fff}
.site-footer{background:var(--do-footer-bg);color:var(--do-footer-text);padding:1.15rem 0;text-align:center}
.fade-section{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.fade-section.visible{opacity:1;transform:none}
@media (max-width:980px){.main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#111a;border-top:1px solid rgba(255,255,255,.1)}.main-nav.open{display:block}.main-nav ul{flex-direction:column;padding:1rem}.menu-toggle{display:inline-block}.header-title{display:none}.grid-right-layout,.standard-layout,.contact-layout{grid-template-columns:1fr}.grid6,.info3-layout,.team-layout{grid-template-columns:1fr}.feature-image{min-height:300px}.hero-triangle::after{border-left-width:120px;border-right-width:120px;border-top-width:36px}.content-section,.contact-section{padding:3.3rem 0}}

/* 2.1.5 theme fixes */
.hero{margin-bottom:0}.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:72px;z-index:3;pointer-events:none}.hero-shape-straight::after{display:none}.hero-shape-triangle::after{background:#f5f3ef;clip-path:polygon(0 0,100% 0,50% 100%)}.hero-shape-zigzag::after{background:#f5f3ef;clip-path:polygon(0 0,10% 35%,20% 0,30% 35%,40% 0,50% 35%,60% 0,70% 35%,80% 0,90% 35%,100% 0,100% 100%,0 100%)}.hero-shape-wave::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23f5f3ef' d='M0,64 C180,104 320,8 540,36 C760,64 860,126 1080,88 C1240,60 1340,28 1440,44 L1440,120 L0,120 Z'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%}.page-content-wrap{padding:3rem 0}@media (min-width:981px){.hero-content{padding-top:12rem;padding-bottom:7rem}}@media (max-width:980px){.hero::after{height:42px}.hero-shape-zigzag::after{clip-path:polygon(0 0,16.66% 35%,33.33% 0,50% 35%,66.66% 0,83.33% 35%,100% 0,100% 100%,0 100%)}}

/* 2.1.6 theme fixes */
:root{--hero-edge-fill:#0f1115;}
.site-main{background:transparent;}
.hero{overflow:hidden;}
.hero::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:72px;z-index:3;pointer-events:none;background:transparent;}
.hero-shape-straight::after{display:none!important;}
.hero-shape-triangle::after{background:var(--hero-edge-fill)!important;clip-path:polygon(0 0,100% 0,50% 100%)!important;}
.hero-shape-zigzag::after{background:var(--hero-edge-fill)!important;clip-path:polygon(0 0,10% 35%,20% 0,30% 35%,40% 0,50% 35%,60% 0,70% 35%,80% 0,90% 35%,100% 0,100% 100%,0 100%)!important;}
.hero-shape-wave::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%230f1115' d='M0,64 C180,104 320,8 540,36 C760,64 860,126 1080,88 C1240,60 1340,28 1440,44 L1440,120 L0,120 Z'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%!important;}
@media (max-width:980px){.hero::after{height:42px;}}


/* 2.1.7 hero shape fix */
.hero{position:relative;overflow:hidden;margin-bottom:0;background:#0f1115}
.hero::after{display:none!important;content:none!important}
.hero-shape-straight{clip-path:none;-webkit-clip-path:none}
.hero-shape-triangle{-webkit-clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%);clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%)}
.hero-shape-zigzag{-webkit-clip-path:polygon(0 0,100% 0,100% 88%,84% 95%,68% 88%,52% 95%,36% 88%,20% 95%,0 88%);clip-path:polygon(0 0,100% 0,100% 88%,84% 95%,68% 88%,52% 95%,36% 88%,20% 95%,0 88%)}
.hero-shape-wave{clip-path:none;-webkit-clip-path:none}
.hero-shape-wave::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:88px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%230f1115' d='M0,64 C180,104 320,8 540,36 C760,64 860,126 1080,88 C1240,60 1340,28 1440,44 L1440,120 L0,120 Z'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;z-index:3;pointer-events:none}
.site-main,.content-section:first-of-type{position:relative;z-index:2}
@media (max-width:980px){
 .hero-shape-triangle{-webkit-clip-path:polygon(0 0,100% 0,100% 91%,50% 100%,0 91%);clip-path:polygon(0 0,100% 0,100% 91%,50% 100%,0 91%)}
 .hero-shape-zigzag{-webkit-clip-path:polygon(0 0,100% 0,100% 91%,83% 96%,66% 91%,50% 96%,33% 91%,16% 96%,0 91%);clip-path:polygon(0 0,100% 0,100% 91%,83% 96%,66% 91%,50% 96%,33% 91%,16% 96%,0 91%)}
 .hero-shape-wave::before{height:54px}
}
.doerren-secret-wrap{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.doerren-secret-wrap .doerren-secret-input{max-width:420px}

/* 2.1.8 fixes */
.doerren-head-actions{display:flex;gap:.35rem;align-items:center}
.hero-logo-wrap + .hero-badge{margin-top:1.6rem}
@media (min-width:981px){.hero-content{padding-top:14rem!important;padding-bottom:7rem!important}.hero-badge{margin-bottom:1.25rem}.hero-logo-wrap + .hero-badge{margin-top:2.25rem}}
.hero{background:var(--hero-edge-fill,#0f1115)!important}
.hero-shape-straight,.hero-shape-triangle,.hero-shape-zigzag{background:transparent!important}
.hero-shape-straight{clip-path:none!important;-webkit-clip-path:none!important}
.hero-shape-straight::before,.hero-shape-straight::after{display:none!important;content:none!important}
.hero-shape-triangle{clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%)!important;-webkit-clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%)!important}
.hero-shape-zigzag{clip-path:polygon(0 0,100% 0,100% 88%,84% 95%,68% 88%,52% 95%,36% 88%,20% 95%,0 88%)!important;-webkit-clip-path:polygon(0 0,100% 0,100% 88%,84% 95%,68% 88%,52% 95%,36% 88%,20% 95%,0 88%)!important}
.hero-shape-wave::before{background:var(--hero-edge-fill,#0f1115)!important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,64 C180,104 320,8 540,36 C760,64 860,126 1080,88 C1240,60 1340,28 1440,44 L1440,120 L0,120 Z'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,64 C180,104 320,8 540,36 C760,64 860,126 1080,88 C1240,60 1340,28 1440,44 L1440,120 L0,120 Z'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%}
.hero{isolation:isolate}
.hero-shape-wave::before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:88px;z-index:3;pointer-events:none}
.page-content-wrap{padding-top:2rem}


/* 2.1.9 admin/welcome fixes */
.hero{--hero-edge-fill: var(--hero-edge-fill, #0f1115);} 
.hero-shape-straight::before,.hero-shape-straight::after{display:none!important;content:none!important}
.hero-shape-triangle,.hero-shape-zigzag{overflow:hidden}
.hero-logo-wrap + .hero-badge{display:block;margin-top:3rem!important}
.hero-logo-wrap{margin-bottom:0!important}
@media (min-width: 1200px){
  .hero-content{padding-top:16rem!important;padding-bottom:7rem!important}
  .hero-logo-wrap + .hero-badge{margin-top:4rem!important;margin-bottom:1.75rem!important}
}
@media (min-width: 981px) and (max-width: 1199px){
  .hero-content{padding-top:14.5rem!important;padding-bottom:6.5rem!important}
  .hero-logo-wrap + .hero-badge{margin-top:3.2rem!important;margin-bottom:1.35rem!important}
}


/* 2.1.10 admin + welcome + team fixes */
@media (min-width: 1100px){
  .hero-content{
    padding-top: 14rem !important;
    padding-bottom: 6.5rem !important;
  }
  .hero-logo-wrap{
    margin-bottom: 2.4rem !important;
  }
  .hero-badge{
    display:block !important;
    margin-top: 2.6rem !important;
    margin-bottom: 1.35rem !important;
  }
}
.team-card.is-hidden{display:none}
.team-layout.has-more .team-card{display:block}
.team-layout.has-more .team-card.team-extra.is-hidden{display:none}
.team-more-wrap{text-align:center;margin-top:1.75rem}
.doerren-secret-wrap{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.doerren-top-actions{position:sticky;top:12px;z-index:50;background:#f6f7f7;padding:.75rem 0}


/* 2.1.11 hero vertical tweak */
@media (min-width: 981px){
  .hero-content{padding-top:6.75rem !important;padding-bottom:6rem !important}
  .hero-logo-wrap{margin:0 auto .45rem !important}
  .hero-badge{margin-top:-.15rem !important;margin-bottom:.55rem !important}
}

/* references grid */
.references-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);overflow:hidden}
.reference-card{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#161616}
.reference-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease, opacity .35s ease}
.reference-card:hover img{transform:scale(1.04);opacity:.92}
.reference-title{position:absolute;left:.8rem;right:.8rem;bottom:.8rem;background:rgba(0,0,0,.5);color:#fff;padding:.45rem .6rem;border-radius:10px;font-weight:700;font-size:.95rem}
.refs-more-wrap{margin-top:1.4rem;text-align:center}
.reference-card.is-hidden{display:none}
.doerren-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:99999}
.doerren-lightbox img{max-width:min(1200px,92vw);max-height:88vh;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.doerren-lightbox-close{position:absolute;top:1rem;right:1rem;background:#fff;border:0;border-radius:999px;padding:.55rem .8rem;font-weight:700;cursor:pointer}
@media (max-width:980px){.references-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.references-grid{grid-template-columns:1fr}}


/* 2.1.13 contact form options */
.contact-privacy-check{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem;line-height:1.45}
.contact-privacy-check input{margin-top:.2rem}
.contact-privacy-check a{text-decoration:underline;color:inherit}


.contact-message{margin:0 0 1rem;padding:.9rem 1rem;border-radius:14px;font-weight:700}
.contact-message.success{background:rgba(56,142,60,.16);color:#d8ffd8;border:1px solid rgba(56,142,60,.45)}
.contact-message.error{background:rgba(229,57,53,.14);color:#ffd8d8;border:1px solid rgba(229,57,53,.45)}
.contact-message[hidden]{display:none!important}
.contact-form .contact-privacy-check{display:flex;align-items:flex-start;justify-content:flex-start;gap:.75rem;text-align:left;width:100%;margin:1rem 0}
.contact-form .contact-privacy-check input{margin:.2rem 0 0;flex:0 0 auto}
.contact-form .contact-privacy-check span{display:block;flex:1 1 auto}


/* 2.1.16 contact checkbox alignment fix */
.contact-form .form-row-checkbox,
.contact-form .checkbox-row,
.contact-form .do-checkbox-row,
.contact-form .privacy-row{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:.75rem !important;
  width:100% !important;
  text-align:left !important;
  margin:1rem 0 1rem 0 !important;
}

.contact-form .form-row-checkbox input[type="checkbox"],
.contact-form .checkbox-row input[type="checkbox"],
.contact-form .do-checkbox-row input[type="checkbox"],
.contact-form .privacy-row input[type="checkbox"]{
  flex:0 0 auto !important;
  margin:.2rem 0 0 0 !important;
  width:18px !important;
  height:18px !important;
}

.contact-form .form-row-checkbox label,
.contact-form .checkbox-row label,
.contact-form .do-checkbox-row label,
.contact-form .privacy-row label{
  flex:1 1 auto !important;
  margin:0 !important;
  text-align:left !important;
  line-height:1.45 !important;
  max-width:none !important;
}

.contact-form .form-row-checkbox a,
.contact-form .checkbox-row a,
.contact-form .do-checkbox-row a,
.contact-form .privacy-row a{
  display:inline !important;
}


/* 2.1.17 footer links */
.site-footer{background:var(--do-footer-bg);color:var(--do-footer-text)}
.site-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 0}
.site-footer-text{color:var(--do-footer-text)}
.site-footer-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.site-footer-links a{color:var(--do-footer-text);text-decoration:underline;text-underline-offset:2px}
.site-footer-links a:hover,.site-footer-links a:focus{opacity:.85}
@media (max-width: 700px){
  .site-footer-inner{align-items:flex-start;flex-direction:column}
}


/* 2.1.18 contact + footer fix */
.contact-privacy-row{
  display:grid !important;
  grid-template-columns: 22px 1fr !important;
  align-items:start !important;
  gap:.75rem !important;
  width:100% !important;
  margin:1rem 0 1rem !important;
}
.contact-privacy-row input[type="checkbox"]{
  width:18px !important;
  height:18px !important;
  margin:.2rem 0 0 0 !important;
  justify-self:start !important;
}
.contact-privacy-label{
  display:block !important;
  margin:0 !important;
  text-align:left !important;
  line-height:1.45 !important;
}
.contact-privacy-label a{display:inline !important}
.site-footer{background:var(--do-footer-bg);color:var(--do-footer-text)}
.site-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 0}
.site-footer-text{color:var(--do-footer-text)}
.site-footer-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.site-footer-links a{color:var(--do-footer-text)!important;text-decoration:underline;text-underline-offset:2px}
.site-footer-links a:hover,.site-footer-links a:focus{opacity:.85}
@media (max-width: 700px){
  .site-footer-inner{align-items:flex-start;flex-direction:column}
  .contact-privacy-row{grid-template-columns:20px 1fr !important;gap:.6rem !important}
}


/* 2.1.19 footer center + separator fix */
.site-footer-inner-centered{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:.55rem;
}
.site-footer-links-centered{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  text-align:center;
}
.site-footer-links-centered a{
  display:inline-block;
}
.site-footer-links-centered .footer-sep{
  display:inline-block;
  margin:0 .55rem;
  opacity:.9;
}
