/*
Theme Name: Knippschild Modern
Theme URI: https://knippschild-gmbh.de/
Author: Knippschild GmbH
Description: Schlankes, Elementor-freundliches Startseiten-Theme für Gustav Knippschild GmbH.
Version: 1.0.0
Text Domain: knippschild-modern
*/

:root { --kc-ink:#0a1725; --kc-blue:#173f6e; --kc-blue-deep:#0d2b4d; --kc-sky:#d9eafa; --kc-steel:#60717e; --kc-line:#dbe2e8; --kc-paper:#f7f9fb; --kc-white:#fff; --kc-max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--kc-ink); background:var(--kc-white); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.kc-shell { width:min(calc(100% - 48px), var(--kc-max)); margin:auto; }
.kc-topbar { background:var(--kc-ink); color:#dce7f1; font-size:.78rem; letter-spacing:.02em; }
.kc-topbar .kc-shell { min-height:38px; display:flex; align-items:center; justify-content:flex-end; gap:23px; }
.kc-topbar a:hover { color:#fff; }
.kc-header { position:relative; z-index:20; background:#fff; border-bottom:1px solid rgba(10,23,37,.08); }
.kc-header .kc-shell { height:88px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.kc-brand { display:flex; align-items:center; gap:12px; font-weight:800; color:var(--kc-blue); letter-spacing:-.04em; font-size:1.45rem; }
.kc-header .custom-logo-link { display:block; line-height:0; }
.kc-header .custom-logo { display:block; width:auto; max-width:250px; max-height:55px; }
.kc-brand-mark { width:38px; height:38px; display:grid; place-items:center; color:#fff; background:var(--kc-blue); border-radius:50% 50% 8px 8px; font-size:1rem; letter-spacing:-.12em; transform:skew(-7deg); }
.kc-brand span { display:block; font-size:.52rem; color:var(--kc-steel); letter-spacing:.18em; text-transform:uppercase; margin-top:-3px; }
.kc-nav { display:flex; align-items:center; gap:28px; font-weight:700; font-size:.9rem; }
.kc-nav a { position:relative; }
.kc-nav a:not(.kc-button)::after { content:""; position:absolute; left:0; bottom:-7px; height:2px; width:0; background:var(--kc-blue); transition:width .2s ease; }
.kc-nav a:hover::after { width:100%; }
.kc-button { display:inline-flex; align-items:center; justify-content:center; gap:11px; border:0; padding:13px 20px; min-height:48px; background:var(--kc-blue); color:#fff; font:700 .83rem/1 Inter, sans-serif; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; transition:transform .2s ease, background .2s ease; }
.kc-button:hover { background:var(--kc-blue-deep); transform:translateY(-2px); }
.kc-button--light { color:var(--kc-blue); background:#fff; }
.kc-button--light:hover { background:#e9f2fa; }
.kc-button--outline { color:var(--kc-blue); background:transparent; border:1px solid #adc2d4; }
.kc-button--outline:hover { background:var(--kc-blue); color:#fff; }
.kc-menu-toggle { display:none; background:none; border:0; padding:8px; font-size:1.3rem; }

.kc-hero { position:relative; overflow:hidden; padding:clamp(82px,11vw,150px) 0 100px; color:#fff; background:linear-gradient(118deg, #071624 0%, #0d2f54 55%, #194c7d 100%); }
.kc-hero:before { content:""; position:absolute; inset:0; opacity:.2; background:repeating-linear-gradient(135deg, transparent 0 36px, rgba(255,255,255,.1) 37px 38px, transparent 39px 74px); }
.kc-hero:after { content:""; position:absolute; width:51vw; height:51vw; min-width:540px; min-height:540px; right:-14vw; top:-17vw; border:1px solid rgba(190,220,245,.36); border-radius:50%; box-shadow:0 0 0 58px rgba(190,220,245,.06), 0 0 0 115px rgba(190,220,245,.04); }
.kc-hero .kc-shell { position:relative; z-index:1; }
.kc-eyebrow { margin:0 0 20px; color:#a9d0f1; font-size:.75rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.kc-hero h1 { max-width:850px; margin:0; font-size:clamp(3rem,7.2vw,7.1rem); line-height:.91; letter-spacing:-.075em; font-weight:800; }
.kc-hero .elementor-heading-title, .kc-hero .elementor-widget-text-editor { color:inherit; }
.kc-hero h1 em { color:#9ec9eb; font-style:normal; }
.kc-hero-copy { max-width:540px; margin:30px 0 34px; color:#d2e5f4; font-size:1.12rem; }
.kc-hero-meta { display:flex; align-items:center; gap:26px; margin-top:60px; color:#d5e8f6; font-size:.82rem; font-weight:700; }
.kc-hero-meta b { display:block; color:#fff; font-size:1.1rem; }
.kc-scroll-cue { display:inline-flex; align-items:center; gap:12px; color:#fff; font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.kc-scroll-cue i { width:38px; height:38px; border:1px solid rgba(255,255,255,.55); border-radius:50%; display:grid; place-items:center; font-style:normal; animation:kc-bob 1.8s infinite ease-in-out; }

.kc-section { padding:clamp(70px,10vw,138px) 0; }
.kc-section--tint { background:var(--kc-paper); }
.kc-section-heading { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); gap:50px; align-items:end; margin-bottom:52px; }
.kc-section-heading h2, .kc-copy-title { margin:0; max-width:760px; font-size:clamp(2.25rem,4.5vw,4.4rem); line-height:.98; letter-spacing:-.065em; }
.kc-section-heading p { margin:0; color:#526370; }
.kc-section-kicker { margin:0 0 15px; color:var(--kc-blue); font-size:.76rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }

.kc-process { position:relative; display:grid; grid-template-columns:repeat(6, 1fr); gap:0; padding:26px 0; }
.kc-process__rail { position:absolute; top:56px; left:8.33%; right:8.33%; height:2px; background:linear-gradient(90deg, #9fc4e1 25%, var(--kc-blue) 25% 50%, #9fc4e1 50% 75%, var(--kc-blue) 75%); background-size:42px 2px; }
.kc-process__rail:after { content:""; position:absolute; top:50%; left:0; width:13px; height:13px; border-radius:50%; background:#83b5dc; box-shadow:0 0 0 7px rgba(131,181,220,.18); transform:translate(-50%,-50%); animation:kc-travel 7s linear infinite; }
.kc-process__step { position:relative; z-index:1; min-width:0; padding:0 13px; }
.kc-process__number { width:62px; height:62px; display:grid; place-items:center; margin-bottom:29px; color:var(--kc-blue); background:#fff; border:1px solid #b8cede; border-radius:50%; font-size:.92rem; font-weight:800; transition:background .25s, color .25s, transform .25s; }
.kc-process__step:hover .kc-process__number { background:var(--kc-blue); color:#fff; transform:translateY(-6px); }
.kc-process__step h3 { margin:0 0 9px; font-size:1.05rem; line-height:1.1; letter-spacing:-.035em; }
.kc-process__step p { margin:0; color:#5d6c76; font-size:.82rem; line-height:1.45; }

.kc-stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--kc-line); border-left:1px solid var(--kc-line); }
.kc-stat { min-height:184px; padding:25px 28px; border-right:1px solid var(--kc-line); border-bottom:1px solid var(--kc-line); }
.kc-stat b { display:block; color:var(--kc-blue); font-size:clamp(2.4rem,4vw,4rem); line-height:1; letter-spacing:-.07em; }
.kc-stat span { display:block; max-width:140px; margin-top:12px; font-size:.82rem; font-weight:700; line-height:1.25; }
.kc-stat .elementor-heading-title { color:var(--kc-blue); font-size:clamp(2.4rem,4vw,4rem); line-height:1; letter-spacing:-.07em; }
.kc-stat .elementor-widget-text-editor { max-width:140px; margin-top:12px; font-size:.82rem; font-weight:700; line-height:1.25; }

.kc-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(45px,9vw,150px); align-items:center; }
.kc-frame { position:relative; min-height:460px; overflow:hidden; background:linear-gradient(145deg,#d8eaf8,#8ca9bd); }
.kc-frame:before { content:""; position:absolute; width:86%; height:62%; right:-7%; bottom:-8%; background:linear-gradient(135deg,#183e64,#071c31); clip-path:polygon(17% 0,100% 22%,83% 100%,0 78%); }
.kc-frame:after { content:""; position:absolute; left:13%; top:16%; width:47%; height:47%; border:11px solid rgba(255,255,255,.86); border-radius:50%; box-shadow:24px 27px 0 rgba(20,62,101,.42); }
.kc-frame-label { position:absolute; z-index:2; left:27px; bottom:26px; color:#fff; font-size:.73rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.kc-rich-copy p { max-width:530px; color:#526370; font-size:1.04rem; }
.kc-rich-copy .kc-button { margin-top:15px; }

.kc-quality { color:#fff; background:var(--kc-ink); }
.kc-quality .kc-section-kicker { color:#9bc9ec; }
.kc-quality-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:50px; align-items:end; }
.kc-quality h2 { margin:0; max-width:700px; font-size:clamp(2.3rem,4.7vw,4.8rem); line-height:.98; letter-spacing:-.065em; }
.kc-certificates { display:flex; flex-direction:column; gap:12px; }
.kc-certificate { border:1px solid rgba(191,218,238,.3); padding:18px 19px; color:#d5e8f5; font-size:.88rem; }
.kc-certificate strong { display:block; color:#fff; font-size:1.06rem; margin-bottom:3px; }

.kc-cta { background:var(--kc-sky); }
.kc-cta .kc-shell { display:flex; justify-content:space-between; align-items:end; gap:40px; }
.kc-cta h2 { max-width:720px; margin:0; color:var(--kc-blue-deep); font-size:clamp(2.4rem,5vw,5rem); line-height:.93; letter-spacing:-.075em; }
.kc-cta .kc-button { flex:0 0 auto; }
.kc-footer { padding:58px 0 24px; color:#d6e2eb; background:#0a1725; }
.kc-footer-main { display:grid; grid-template-columns:1.3fr .9fr .9fr; gap:40px; padding-bottom:54px; }
.kc-footer .kc-brand { color:#fff; }
.kc-footer .kc-brand span { color:#8ca3b6; }
.kc-footer h3 { margin:0 0 13px; color:#fff; font-size:.86rem; letter-spacing:.08em; text-transform:uppercase; }
.kc-footer p, .kc-footer a { margin:0; color:#b7c9d6; font-size:.9rem; }
.kc-footer a:hover { color:#fff; }
.kc-footer-bottom { display:flex; justify-content:space-between; padding-top:20px; border-top:1px solid rgba(255,255,255,.13); color:#7890a1; font-size:.74rem; }
.kc-elementor-content .elementor-section-wrap { overflow:hidden; }

@keyframes kc-bob { 50% { transform:translateY(7px); } }
@keyframes kc-travel { from { left:0; } to { left:100%; } }
@media (max-width: 900px) { .kc-nav { gap:15px; } .kc-process { grid-template-columns:repeat(3,1fr); row-gap:38px; } .kc-process__rail { display:none; } .kc-process__step { padding:0 7px; } .kc-section-heading, .kc-quality-grid { grid-template-columns:1fr; gap:20px; } .kc-stats { grid-template-columns:repeat(2,1fr); } .kc-split { grid-template-columns:1fr; } .kc-frame { min-height:320px; } .kc-cta .kc-shell { align-items:flex-start; flex-direction:column; } }
@media (max-width: 680px) { .kc-shell { width:min(calc(100% - 32px),var(--kc-max)); } .kc-topbar .kc-shell { justify-content:center; gap:12px; font-size:.68rem; } .kc-header .kc-shell { height:74px; } .kc-brand { font-size:1.15rem; } .kc-header .custom-logo { max-width:205px; max-height:47px; } .kc-nav { display:none; position:absolute; top:74px; left:0; right:0; padding:25px 16px; background:#fff; box-shadow:0 10px 20px rgba(0,0,0,.08); flex-direction:column; align-items:flex-start; } .kc-nav.is-open { display:flex; } .kc-menu-toggle { display:block; } .kc-hero { padding-top:78px; } .kc-hero-meta { gap:14px; margin-top:43px; } .kc-process { grid-template-columns:repeat(2,1fr); } .kc-process__number { margin-bottom:16px; } .kc-stats { grid-template-columns:1fr 1fr; } .kc-stat { min-height:145px; padding:22px 17px; } .kc-footer-main { grid-template-columns:1fr; gap:26px; } .kc-footer-bottom { flex-direction:column; gap:8px; } }
@media (prefers-reduced-motion: reduce) { *, *:before, *:after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; } }

/* Sander-inspired editorial composition for the Knippschild home page. */
.kc-ref { --ref-blue:#123f69; --ref-dark:#0c2d4b; --ref-lime:#bddb7a; --ref-pale:#edf4df; --ref-ink:#123f69; max-width:1260px; margin:0 auto; padding:42px 42px 0; color:var(--ref-ink); font-family:Inter,Arial,sans-serif; }
.kc-ref * { box-sizing:border-box; }.kc-ref img{display:block;width:100%;height:100%;object-fit:cover}.kc-ref__logo{display:flex;align-items:center;gap:10px;margin:0 0 35px;color:var(--ref-blue);font-weight:900;font-size:27px;letter-spacing:-.06em}.kc-ref__logo i{display:grid;place-items:center;width:36px;height:36px;border:2px solid currentColor;transform:rotate(45deg);font-style:normal;font-size:19px}.kc-ref__logo small{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase}
.kc-ref__split{display:grid;grid-template-columns:1.08fr .92fr;max-width:980px;margin:0 0 84px;min-height:490px}.kc-ref__panel{padding:58px 52px 44px;background:var(--ref-blue);color:#fff;position:relative;overflow:hidden}.kc-ref__panel:after,.kc-ref__career-copy:after{content:"◇  ○  △  ✦  ⊞  ◇  ○  △";position:absolute;bottom:15px;left:25px;right:0;color:rgba(255,255,255,.18);font-size:25px;letter-spacing:10px;white-space:nowrap}.kc-ref__eyebrow{margin:0 0 13px;font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.kc-ref h1,.kc-ref h2,.kc-ref h3{margin:0;font-weight:900;line-height:.95;letter-spacing:-.05em;text-transform:uppercase}.kc-ref h1{font-size:42px;color:var(--ref-lime)}.kc-ref h2{font-size:38px}.kc-ref__panel p,.kc-ref__career-copy p{max-width:350px;font-size:13px;line-height:1.5}.kc-ref__button{display:inline-block;margin-top:17px;padding:11px 16px;border:1px solid currentColor;color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.kc-ref__possibility{grid-template-columns:1.08fr .92fr;min-height:330px;margin-left:0}.kc-ref__possibility .kc-ref__panel{background:var(--ref-lime);color:var(--ref-blue);padding:58px 52px}.kc-ref__possibility .kc-ref__panel:after{display:none}.kc-ref__possibility h2{font-size:37px}.kc-ref__measure{margin-top:34px;display:flex;align-items:center;gap:21px;font-size:21px;font-weight:900;line-height:1.1}.kc-ref__measure b{display:block;font-size:29px}.kc-ref__services{max-width:1060px;margin:0 0 78px;padding:0 0 40px;background-image:radial-gradient(#d7e4ee 1px,transparent 1px);background-size:18px 18px}.kc-ref__services-head{padding:4px 0 29px}.kc-ref__services-head h2{font-size:38px}.kc-ref__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.kc-ref__card{position:relative;height:310px;overflow:hidden;background:#123}.kc-ref__card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,24,42,.6),transparent 60%)}.kc-ref__card b{position:absolute;z-index:1;bottom:0;left:0;right:0;padding:16px;background:var(--ref-lime);font-size:19px;line-height:.9;text-transform:uppercase}.kc-ref__stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:860px;margin:0 auto 92px;text-align:center}.kc-ref__stats b{display:block;font-size:58px;line-height:1;color:var(--ref-blue)}.kc-ref__stats span{display:block;margin-top:8px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.kc-ref__career{max-width:980px;margin:0 0 95px;grid-template-columns:.95fr 1.05fr;min-height:405px}.kc-ref__career-copy{position:relative;overflow:hidden;background:var(--ref-dark);color:#fff;padding:59px 50px}.kc-ref__career-copy h2{color:var(--ref-lime);font-size:36px}.kc-ref__career-copy p{font-size:12px}.kc-ref__contact{text-align:center;max-width:650px;margin:0 auto 100px;padding:40px 0}.kc-ref__contact h2{font-size:34px}.kc-ref__contact h2 em{display:block;color:var(--ref-lime);font-style:normal}.kc-ref__contact p{font-size:13px;color:#536978}.kc-ref__contact a{display:inline-block;margin:10px 5px;padding:11px 15px;border:1px solid var(--ref-blue);font-size:11px;font-weight:800}.kc-ref__footer{border-top:2px solid var(--ref-blue);padding:36px 0 48px;display:flex;justify-content:space-between;align-items:flex-start;font-size:12px}.kc-ref__footer .kc-ref__logo{margin:0}.kc-ref__footer p{margin:0;line-height:1.55}@media(max-width:700px){.kc-ref{padding:25px 18px 0}.kc-ref__split,.kc-ref__possibility,.kc-ref__career{grid-template-columns:1fr;margin-bottom:50px}.kc-ref__split{min-height:0}.kc-ref__split>.kc-ref__image{min-height:290px}.kc-ref__panel,.kc-ref__possibility .kc-ref__panel,.kc-ref__career-copy{padding:40px 30px}.kc-ref h1{font-size:34px}.kc-ref h2,.kc-ref__services-head h2{font-size:30px}.kc-ref__cards{gap:10px}.kc-ref__card{height:210px}.kc-ref__card b{font-size:12px;padding:10px}.kc-ref__stats b{font-size:39px}.kc-ref__stats span{font-size:8px}.kc-ref__footer{gap:20px;flex-direction:column}}
