:root{--kb-blue:#003660;--kb-blue-dark:#062f4c;--kb-lav:#9595c1;--kb-ink:#162936;--kb-paper:#f7f7f5;--kb-soft:#ececf3;--kb-line:rgba(0,54,96,.15)}
html{scroll-behavior:smooth}.klaube-site,.klaube-site *{box-sizing:border-box}.klaube-site{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--kb-ink);background:var(--kb-paper);font-size:16px;line-height:1.6;overflow:hidden}.klaube-site a{text-decoration:none}.klaube-site img{display:block;max-width:100%}
.klaube-nav-wrap{position:absolute;z-index:30;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:28px clamp(24px,5vw,78px);transition:.35s}.klaube-nav-wrap.is-sticky{position:fixed;background:rgba(247,247,245,.95);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--kb-line);padding-top:15px;padding-bottom:15px}.klaube-brand{width:170px;filter:brightness(0) invert(1)}.klaube-nav-wrap.is-sticky .klaube-brand{filter:none;width:155px}.klaube-nav{display:flex;gap:34px}.klaube-nav a{color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.klaube-nav-wrap.is-sticky .klaube-nav a{color:var(--kb-blue)}.klaube-menu-toggle{display:none;background:none;border:0}.klaube-menu-toggle span{display:block;width:26px;height:2px;background:#fff;margin:6px}

.klaube-hero{position:relative;min-height:100svh;background:var(--kb-blue-dark);color:#fff;display:flex;align-items:center;overflow:hidden}.klaube-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to right,#000,transparent 75%)}.klaube-hero-mark{position:absolute;right:-3vw;top:50%;transform:translateY(-50%);width:min(55vw,820px);opacity:.9}.klaube-hero-mark img{width:100%;filter:drop-shadow(0 30px 80px rgba(0,0,0,.15))}.klaube-hero-content{position:relative;z-index:2;width:min(750px,84vw);margin-left:clamp(24px,8vw,125px)}.klaube-kicker,.klaube-eyebrow{display:block;color:var(--kb-lav);font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}.klaube-hero h1{font-size:clamp(4.2rem,9vw,8.7rem);line-height:.84;letter-spacing:-.055em;margin:0 0 34px}.klaube-hero p{max-width:570px;font-size:clamp(1rem,1.6vw,1.25rem);color:rgba(255,255,255,.8);margin:0 0 34px}.klaube-hero-meta{position:absolute;left:clamp(24px,8vw,125px);bottom:35px;font-size:.67rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.52)}.klaube-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 25px;background:var(--kb-blue);color:#fff!important;font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;border:1px solid var(--kb-blue)}.klaube-button-light{background:#fff;color:var(--kb-blue)!important;border-color:#fff}.klaube-scroll{position:absolute;right:4vw;bottom:35px;color:#fff!important;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;writing-mode:vertical-rl}

.klaube-section{padding:clamp(90px,12vw,170px) clamp(24px,8vw,125px)}.klaube-section-number{font-size:.72rem;color:var(--kb-lav);font-weight:800}.klaube-intro{display:grid;grid-template-columns:1fr 3fr;gap:40px}.klaube-intro-copy{max-width:930px}.klaube-intro h2,.klaube-section-head h2,.klaube-about h2,.klaube-contact h2{color:var(--kb-blue);font-size:clamp(3rem,7vw,7.1rem);line-height:.92;letter-spacing:-.05em;margin:0}.klaube-intro p{font-size:clamp(1.05rem,1.7vw,1.4rem);max-width:760px;margin:38px 0 0;color:#4a5b66}

.klaube-portfolio{padding-top:60px}.klaube-section-head{display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--kb-line);padding-top:28px;margin-bottom:95px}.klaube-section-head .klaube-eyebrow{display:inline-block;margin-left:28px}.klaube-feature{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.7fr);gap:clamp(40px,6vw,95px);align-items:start;margin-bottom:clamp(120px,15vw,200px)}.klaube-feature-portrait{grid-template-columns:minmax(0,1.7fr) minmax(230px,.72fr)}.klaube-feature-copy{position:sticky;top:125px;padding-top:16px}.klaube-feature-copy h3{font-size:clamp(2.7rem,5vw,5.4rem);line-height:.95;letter-spacing:-.04em;color:var(--kb-blue);margin:0 0 24px}.klaube-feature-copy p{max-width:430px;color:#52616b}

/* Masonry: jedes Bild bleibt in seinem ORIGINALEN Seitenverhältnis. Kein Cropping. */
.klaube-masonry{columns:3 220px;column-gap:16px;width:100%}.klaube-photo{display:block;width:100%;height:auto;margin:0 0 16px;padding:0;border:0;background:transparent;break-inside:avoid;cursor:zoom-in;overflow:hidden}.klaube-photo img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial!important;transition:transform .4s ease}.klaube-photo:hover img{transform:scale(1.018)}.klaube-masonry-portraits{columns:3 230px}

.klaube-quote-strip{min-height:72vh;display:grid;grid-template-columns:1.25fr .75fr;background:var(--kb-blue-dark);color:#fff}.klaube-quote-photo{background-size:cover;background-position:center}.klaube-quote-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(50px,7vw,100px);font-size:clamp(2rem,4vw,4.3rem);line-height:1.04}.klaube-quote-copy span{color:rgba(255,255,255,.66)}.klaube-quote-copy strong{color:var(--kb-lav);margin-top:18px}

.klaube-about{display:grid;grid-template-columns:1fr 3fr;gap:40px}.klaube-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px)}.klaube-about-text{padding-top:48px}.klaube-about-text p{font-size:1.1rem;color:#50606a}.klaube-contact{background:var(--kb-soft);padding:clamp(100px,13vw,180px) clamp(24px,8vw,125px)}.klaube-contact-inner{max-width:1200px}.klaube-contact-actions{display:flex;gap:30px;align-items:center;margin-top:38px;flex-wrap:wrap}.klaube-text-link{color:var(--kb-blue)!important;font-weight:800;border-bottom:1px solid var(--kb-lav)}

.klaube-footer{background:var(--kb-blue-dark);color:rgba(255,255,255,.72);padding:clamp(48px,6vw,80px) clamp(24px,5vw,78px) 28px}.klaube-footer-main{display:grid;grid-template-columns:1.2fr .9fr 1fr auto;gap:clamp(32px,5vw,80px);align-items:start}.klaube-footer-brand img{width:165px;filter:brightness(0) invert(1)}.klaube-footer address{font-style:normal;line-height:1.7;margin:0}.klaube-footer address strong{color:#fff;font-weight:700}.klaube-footer-contact{display:flex;flex-direction:column;gap:7px}.klaube-footer-links{display:flex;flex-direction:column;gap:7px;text-align:right}.klaube-footer a{color:#fff!important}.klaube-footer-bottom{margin-top:55px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;font-size:.72rem}.klaube-footer-bottom a{color:rgba(255,255,255,.7)!important}

.klaube-lightbox{position:fixed;z-index:99999;inset:0;background:rgba(2,22,35,.94);display:none;align-items:center;justify-content:center;padding:5vw}.klaube-lightbox.is-open{display:flex}.klaube-lightbox img{max-height:88vh;max-width:90vw;width:auto;height:auto}.klaube-lightbox-close{position:absolute;right:30px;top:18px;background:none;border:0;color:#fff;font-size:3rem;cursor:pointer}

@media(max-width:980px){.klaube-hero-mark{right:-18vw;width:75vw;opacity:.55}.klaube-feature,.klaube-feature-portrait{grid-template-columns:1fr}.klaube-feature-copy{position:static;order:1}.klaube-feature .klaube-masonry{order:2}.klaube-feature-portrait .klaube-feature-copy{order:1}.klaube-feature-portrait .klaube-masonry{order:2}.klaube-intro,.klaube-about{grid-template-columns:1fr}.klaube-about-grid{grid-template-columns:1fr}.klaube-quote-strip{grid-template-columns:1fr}.klaube-quote-photo{min-height:55vh}.klaube-footer-main{grid-template-columns:1fr 1fr}.klaube-footer-links{text-align:left}}
@media(max-width:700px){.klaube-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;background:var(--kb-paper);padding:25px}.klaube-nav.is-open{display:flex}.klaube-nav a{color:var(--kb-blue)}.klaube-menu-toggle{display:block}.klaube-nav-wrap:not(.is-sticky) .klaube-menu-toggle span{background:#fff}.klaube-hero{min-height:820px}.klaube-hero-mark{width:105vw;right:-48vw;top:38%;opacity:.32}.klaube-hero-content{margin-top:130px}.klaube-hero-meta{display:none}.klaube-scroll{display:none}.klaube-section-head{display:block}.klaube-section-head h2{margin-top:20px}.klaube-section-head .klaube-eyebrow{margin-left:18px}.klaube-masonry,.klaube-masonry-portraits{columns:2 150px}.klaube-footer-main{grid-template-columns:1fr}.klaube-footer-links{flex-direction:row;gap:24px}.klaube-footer-bottom{align-items:flex-start;gap:20px}.klaube-footer-brand img{width:145px}}
@media(max-width:430px){.klaube-masonry,.klaube-masonry-portraits{columns:1}.klaube-footer-bottom{flex-direction:column}}

/* =========================
   v1.3 CLEAN HERO
   Original-Logo, weißer Hintergrund, klare Kontraste
   ========================= */
.klaube-nav-wrap{
    position:absolute;
    color:var(--kb-blue);
}
.klaube-brand{
    width:170px;
    filter:none!important;
}
.klaube-nav a{
    color:var(--kb-blue)!important;
}
.klaube-menu-toggle span{
    background:var(--kb-blue)!important;
}
.klaube-nav-wrap.is-sticky{
    background:rgba(255,255,255,.94);
}
.klaube-nav-wrap.is-sticky .klaube-brand{
    filter:none!important;
}

.klaube-hero{
    position:relative;
    min-height:100svh;
    background:#fff;
    color:var(--kb-blue);
    display:flex;
    align-items:center;
    overflow:hidden;
}
.klaube-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 78% 48%, rgba(149,149,193,.08), transparent 34%),
        linear-gradient(90deg, rgba(0,54,96,.028) 1px, transparent 1px),
        linear-gradient(rgba(0,54,96,.028) 1px, transparent 1px);
    background-size:auto, 96px 96px, 96px 96px;
    pointer-events:none;
}
.klaube-hero-content{
    position:relative;
    z-index:5;
    width:min(720px,44vw);
    margin-left:clamp(24px,7vw,118px);
}
.klaube-kicker{
    color:var(--kb-lav)!important;
}
.klaube-hero h1{
    color:var(--kb-blue)!important;
    font-size:clamp(4rem,7.8vw,8.1rem);
    line-height:.86;
    letter-spacing:-.055em;
    margin:0 0 34px;
}
.klaube-hero p{
    color:#425764!important;
    max-width:560px;
    font-size:clamp(1rem,1.5vw,1.2rem);
    margin:0 0 36px;
}
.klaube-hero .klaube-button{
    background:var(--kb-blue);
    border-color:var(--kb-blue);
    color:#fff!important;
}
.klaube-hero-logo-stage{
    position:absolute;
    z-index:2;
    right:-2vw;
    top:50%;
    transform:translateY(-50%);
    width:min(58vw,980px);
    height:min(58vw,760px);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:visible;
}
.klaube-hero-logo-main{
    position:relative;
    z-index:3;
    width:86%;
    height:auto;
    filter:none!important;
}
.klaube-hero-logo-blur{
    position:absolute;
    z-index:1;
    inset:10% -8% 10% 18%;
    background:url("../images/logo/klaube-logo.svg") center/contain no-repeat;
    filter:blur(36px);
    opacity:.16;
    transform:scale(1.08);
}
.klaube-hero-logo-fade{
    position:absolute;
    z-index:4;
    inset:-4% -10% -4% 40%;
    background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.58) 54%, #fff 92%);
    pointer-events:none;
}
.klaube-hero-meta{
    color:rgba(0,54,96,.52)!important;
}
.klaube-scroll{
    color:var(--kb-blue)!important;
}

@media(max-width:1100px){
    .klaube-hero-content{
        width:min(650px,52vw);
    }
    .klaube-hero-logo-stage{
        right:-12vw;
        width:68vw;
    }
}
@media(max-width:780px){
    .klaube-hero{
        min-height:920px;
        align-items:flex-start;
        padding-top:155px;
    }
    .klaube-hero-content{
        width:auto;
        max-width:calc(100vw - 48px);
        margin:0 24px;
    }
    .klaube-hero h1{
        font-size:clamp(3.9rem,15vw,6rem);
    }
    .klaube-hero-logo-stage{
        top:auto;
        bottom:60px;
        right:-28vw;
        transform:none;
        width:118vw;
        height:58vw;
        opacity:.9;
    }
    .klaube-hero-logo-main{
        width:82%;
    }
    .klaube-hero-logo-fade{
        inset:-8% -8% -8% 46%;
    }
}
@media(max-width:500px){
    .klaube-hero{
        min-height:860px;
    }
    .klaube-hero-logo-stage{
        bottom:80px;
        right:-38vw;
        width:138vw;
        height:72vw;
    }
}

/* v2.0 canvas + dynamische Inhalte */
body.klaube-portfolio-canvas{margin:0!important;padding:0!important;background:#fff}
body.klaube-portfolio-canvas #wpadminbar{z-index:100000}
.klaube-portfolio-canvas .klaube-site{width:100%;max-width:none;margin:0}
.klaube-hero-logo-blur{background-position:center;background-size:contain;background-repeat:no-repeat}

/* =========================================================
   v2.1 – Original-Seitenverhältnisse, keine Abschnittsnummern,
   robuster Footer
   ========================================================= */

/* Abschnittsnummern vollständig ausblenden, auch falls gecachte HTML-Versionen
   noch kurz vorhanden sind. */
.klaube-site .klaube-section-number{
    display:none!important;
}

/* Nach Entfernen der Nummern keine leere erste Grid-Spalte mehr. */
.klaube-site .klaube-intro,
.klaube-site .klaube-about{
    grid-template-columns:minmax(0,1fr)!important;
}
.klaube-site .klaube-intro-copy{
    margin-left:clamp(0px,8vw,120px);
}
.klaube-site .klaube-about-grid{
    margin-left:clamp(0px,8vw,120px);
}

/* Der Portfolio-Kopf beginnt ohne Nummer direkt mit "Ausgewählte Arbeiten". */
.klaube-site .klaube-section-head > div{
    display:flex;
    align-items:center;
}
.klaube-site .klaube-section-head .klaube-eyebrow{
    margin-left:0!important;
}

/* Mediathek-Bilder:
   Originaldatei + intrinsische width/height-Werte werden verwendet.
   Diese Regeln überschreiben bewusst Theme-/OceanWP-Bildregeln. */
.klaube-site .klaube-masonry{
    line-height:normal!important;
}
.klaube-site .klaube-masonry .klaube-photo{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    margin:0 0 16px!important;
    border:0!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    position:relative!important;
}
.klaube-site .klaube-masonry .klaube-photo img,
.klaube-site .klaube-masonry img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    transform:none;
}
.klaube-site .klaube-masonry .klaube-photo:hover img{
    transform:scale(1.018)!important;
}

/* Footer: eigene Zeilenhöhe und Abstände, unabhängig von Theme-Regeln. */
.klaube-site .klaube-footer{
    line-height:1.5!important;
}
.klaube-site .klaube-footer-main{
    align-items:start!important;
}
.klaube-site .klaube-footer-contact,
.klaube-site .klaube-footer-links{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:10px!important;
    row-gap:10px!important;
    line-height:1.5!important;
}
.klaube-site .klaube-footer-links{
    align-items:flex-end!important;
    text-align:right!important;
}
.klaube-site .klaube-footer-contact a,
.klaube-site .klaube-footer-links a{
    display:block!important;
    position:static!important;
    float:none!important;
    clear:both!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    line-height:1.5!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    white-space:nowrap!important;
}
.klaube-site .klaube-footer-address{
    line-height:1.65!important;
}

@media(max-width:980px){
    .klaube-site .klaube-intro-copy,
    .klaube-site .klaube-about-grid{
        margin-left:0;
    }
    .klaube-site .klaube-footer-links{
        align-items:flex-start!important;
        text-align:left!important;
    }
}
@media(max-width:700px){
    .klaube-site .klaube-footer-links{
        flex-direction:column!important;
        gap:10px!important;
    }
}

/* =========================================================
   v2.2 – reduziertes Legal-Template für Impressum & Datenschutz
   ========================================================= */
body.klaube-legal-canvas{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    color:#243746;
}
.klaube-legal-site{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    background:#fff;
}
.klaube-legal-header{
    background:#fff;
    border-bottom:1px solid rgba(0,54,96,.10);
}
.klaube-legal-header-inner{
    width:min(1180px,calc(100% - 48px));
    min-height:92px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.klaube-legal-brand{
    display:inline-flex;
    align-items:center;
    text-decoration:none!important;
}
.klaube-legal-brand img{
    display:block!important;
    width:auto!important;
    height:42px!important;
    max-width:190px!important;
    object-fit:contain!important;
}
.klaube-legal-home-link{
    color:#003660!important;
    text-decoration:none!important;
    font-size:14px;
    font-weight:650;
}
.klaube-legal-home-link:hover{
    text-decoration:underline!important;
}
.klaube-legal-main{
    flex:1;
    width:100%;
}
.klaube-legal-article{
    width:min(960px,calc(100% - 64px));
    margin:0 auto;
    padding:clamp(64px,8vw,112px) 0 clamp(72px,9vw,128px);
}
.klaube-legal-title-wrap{
    margin-bottom:48px;
}
.klaube-legal-kicker{
    display:block;
    margin-bottom:12px;
    color:#9595c1;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:11px;
    font-weight:750;
}
.klaube-legal-title-wrap h1{
    margin:0!important;
    color:#003660!important;
    font-size:clamp(42px,6vw,76px)!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
    font-weight:750!important;
}
.klaube-legal-content{
    color:#344c5d;
    font-size:17px;
    line-height:1.75;
}
.klaube-legal-content > *{
    max-width:100%;
}
.klaube-legal-content h2{
    margin:56px 0 18px!important;
    color:#003660!important;
    font-size:clamp(27px,3vw,36px)!important;
    line-height:1.15!important;
    letter-spacing:-.015em;
}
.klaube-legal-content h3{
    margin:38px 0 14px!important;
    color:#003660!important;
    font-size:22px!important;
    line-height:1.25!important;
}
.klaube-legal-content h4{
    margin:30px 0 12px!important;
    color:#003660!important;
}
.klaube-legal-content p{
    margin:0 0 20px!important;
}
.klaube-legal-content ul,
.klaube-legal-content ol{
    margin:0 0 24px 1.25em!important;
    padding:0!important;
}
.klaube-legal-content li{
    margin:0 0 8px!important;
}
.klaube-legal-content a{
    color:#003660!important;
    text-decoration:underline!important;
    text-underline-offset:3px;
}
.klaube-legal-content img{
    max-width:100%!important;
    height:auto!important;
}
.klaube-legal-content table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    border-collapse:collapse;
}
.klaube-legal-content blockquote{
    margin:32px 0!important;
    padding:4px 0 4px 24px!important;
    border-left:3px solid #9595c1!important;
    color:#536674!important;
}
.klaube-legal-footer{
    border-top:1px solid rgba(0,54,96,.10);
    background:#f7f7f5;
}
.klaube-legal-footer-inner{
    width:min(1180px,calc(100% - 48px));
    min-height:92px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    color:#536674;
    font-size:13px;
}
.klaube-legal-footer nav{
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
}
.klaube-legal-footer a{
    color:#003660!important;
    text-decoration:none!important;
    white-space:nowrap;
}
.klaube-legal-footer a:hover{
    text-decoration:underline!important;
}
@media(max-width:700px){
    .klaube-legal-header-inner{
        width:min(100% - 32px,1180px);
        min-height:78px;
    }
    .klaube-legal-brand img{
        height:34px!important;
        max-width:155px!important;
    }
    .klaube-legal-home-link{
        font-size:13px;
    }
    .klaube-legal-article{
        width:min(100% - 36px,960px);
        padding:48px 0 72px;
    }
    .klaube-legal-title-wrap{
        margin-bottom:34px;
    }
    .klaube-legal-content{
        font-size:16px;
        line-height:1.7;
    }
    .klaube-legal-content h2{
        margin-top:44px!important;
    }
    .klaube-legal-footer-inner{
        width:min(100% - 32px,1180px);
        padding:22px 0;
        min-height:0;
        flex-direction:column;
        align-items:flex-start;
    }
    .klaube-legal-footer nav{
        gap:14px 18px;
    }
}
