/* Native Elementor implementation of the home page.
 * Content remains in standard Elementor containers and widgets; these rules only
 * translate the established Knippschild design system to Elementor's wrappers. */
.kc-elementor-home .elementor-widget { margin-bottom: 0; }
.kc-elementor-home .elementor-widget-container > :first-child { margin-top: 0; }
.kc-elementor-home .elementor-widget-container > :last-child { margin-bottom: 0; }

.kc-elementor-home .kc-ref__emotion { position: relative; min-height: min(760px, 72vw); overflow: hidden; isolation: isolate; }
.kc-elementor-home .kc-ref__emotion-media { position: absolute; inset: 0; z-index: -2; }
.kc-elementor-home .kc-ref__emotion-media .elementor-widget-container,
.kc-elementor-home .kc-ref__emotion-media .elementor-video { display: block; width: 100%; height: 100%; }
.kc-elementor-home .kc-ref__emotion-media .elementor-video { object-fit: cover; }
.kc-elementor-home .kc-ref__emotion-overlay { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(4,18,35,.94) 0%, rgba(5,25,46,.78) 43%, rgba(5,25,46,.14) 76%); }
.kc-elementor-home .kc-ref__emotion-copy { display: flex; min-height: min(760px, 72vw); max-width: 780px; flex-direction: column; justify-content: center; padding: clamp(42px, 7vw, 116px) var(--kc-page-gutter); color: #fff; }
.kc-elementor-home .kc-ref__emotion-copy .elementor-heading-title,
.kc-elementor-home .kc-ref__emotion-copy .elementor-widget-text-editor { color: inherit; }
.kc-elementor-home .kc-ref__emotion-copy h1 { max-width: 12ch; margin: 14px 0 22px; color: #fff; font-size: var(--kc-type-h1); line-height: .91; letter-spacing: -.062em; text-wrap: balance; }
.kc-elementor-home .kc-ref__emotion-copy .elementor-widget-text-editor { max-width: 54ch; color: #e5f0f8; font-size: 1rem; line-height: 1.65; }

.kc-elementor-home .kc-ref__button .elementor-button { display: inline-flex; width: auto; min-height: 44px; margin-top: 28px; padding: 13px 18px; border: 1px solid currentColor; border-radius: 0; background: transparent; color: inherit; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; transition: background-color .25s ease, color .25s ease; }
.kc-elementor-home .kc-ref__button .elementor-button:hover { background: #fff; color: #092743; }

.kc-elementor-home .kc-ref__possibility,
.kc-elementor-home .kc-ref__career { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(360px, .87fr); }
.kc-elementor-home .kc-ref__image { overflow: hidden; }
.kc-elementor-home .kc-ref__image .elementor-widget-container,
.kc-elementor-home .kc-ref__image img,
.kc-elementor-home .kc-ref__image .elementor-video { display: block; width: 100%; height: 100%; }
.kc-elementor-home .kc-ref__image img,
.kc-elementor-home .kc-ref__image .elementor-video { object-fit: cover; }
.kc-elementor-home .kc-ref__possibility .kc-ref__image { min-height: 405px; margin-top: clamp(20px, 3vw, 48px); }
.kc-elementor-home .kc-ref__panel { display: flex; min-height: 470px; flex-direction: column; justify-content: center; padding: clamp(42px, 5vw, 78px); background: #e5f1f9; }
.kc-elementor-home .kc-ref__panel h2,
.kc-elementor-home .kc-ref__career-copy h2 { max-width: 12ch; margin: 14px 0 22px; color: #173f6e; font-size: clamp(2rem, 3.5vw, 3.35rem); line-height: .95; letter-spacing: -.055em; }
.kc-elementor-home .kc-ref__panel .elementor-widget-text-editor { max-width: 44ch; color: #405d79; font-size: .98rem; line-height: 1.65; }

.kc-elementor-home .kc-ref__services { width: min(100%, var(--kc-flow-wide)); margin: 0 auto clamp(var(--kc-space-5), 8vw, 126px); padding: 0 var(--kc-page-gutter) clamp(42px, 4vw, 64px); }
.kc-elementor-home .kc-ref__services-head { width: min(100%, 860px); padding: clamp(22px, 2.5vw, 36px) clamp(18px, 2.4vw, 36px) clamp(34px, 3.5vw, 52px) 0; background: #fff; }
.kc-elementor-home .kc-ref__services-head h2 { margin-top: 12px; color: #173f6e; font-size: var(--kc-type-h2); line-height: .95; letter-spacing: -.05em; white-space: nowrap; }
.kc-elementor-home .kc-ref__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 32px); }
.kc-elementor-home .kc-ref__card { position: relative; display: flex; height: 342px; overflow: hidden; flex-direction: column; background: #f4f8fb; isolation: isolate; transition: transform .32s cubic-bezier(.2,.75,.2,1), box-shadow .32s ease; }
.kc-elementor-home .kc-ref__card-image { height: 100%; }
.kc-elementor-home .kc-ref__card-image .elementor-widget-container,
.kc-elementor-home .kc-ref__card-image img { display: block; width: 100%; height: 100%; }
.kc-elementor-home .kc-ref__card-image img { object-fit: cover; transition: transform .55s cubic-bezier(.2,.75,.2,1), filter .4s ease; }
.kc-elementor-home .kc-ref__card-copy { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; min-height: 116px; padding: 17px 18px 18px; background: #f4f8fb; color: #102f50; transition: background .32s ease; }
.kc-elementor-home .kc-ref__card-copy h3 { margin: 0 0 8px; color: #173f6e; font-size: var(--kc-type-h3); line-height: .98; letter-spacing: -.035em; }
.kc-elementor-home .kc-ref__card-copy .elementor-widget-text-editor { max-width: 30ch; color: #102f50; font-size: clamp(.78rem, .82vw, .9rem); font-weight: 600; line-height: 1.45; }
.kc-elementor-home .kc-ref__card-icon { position: absolute; top: 18px; left: 18px; z-index: 3; display: grid; width: 52px; height: 52px; place-items: center; border: 1px solid rgba(255,255,255,.75); background: #092743; color: #fff; box-shadow: 0 8px 15px rgba(0,0,0,.13); transition: transform .28s cubic-bezier(.2,.75,.2,1), background-color .28s ease, color .28s ease; }
.kc-elementor-home .kc-ref__card-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (hover:hover) { .kc-elementor-home .kc-ref__card:hover { transform: translateY(-8px); box-shadow: 0 18px 34px rgba(9,29,49,.2); } .kc-elementor-home .kc-ref__card:hover .kc-ref__card-image img { transform: scale(1.075); filter: saturate(1.08) contrast(1.04); } .kc-elementor-home .kc-ref__card:hover .kc-ref__card-icon { transform: scale(1.16); background: #8dbde0; color: #092743; } .kc-elementor-home .kc-ref__card:hover .kc-ref__card-copy { background: #e5f1f9; } }

.kc-elementor-home .kc-ref__quality { display: grid; width: min(100%, var(--kc-flow-wide)); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kc-space-2); margin: 0 auto clamp(var(--kc-space-5), 9vw, 132px); padding: 0 var(--kc-page-gutter); }
.kc-elementor-home .kc-ref__quality-card { min-height: 360px; padding: clamp(38px, 4.5vw, 68px); border: 1px solid #c4d6e4; transition: background-color .38s ease, box-shadow .38s ease; }
.kc-elementor-home .kc-ref__quality-card--tint { background: #e5f1f9; }
.kc-elementor-home .kc-ref__quality-card h2 { margin: 14px 0 var(--kc-space-2); color: #173f6e; font-size: clamp(2rem, 2.4vw, 2.75rem); line-height: .96; letter-spacing: -.055em; }
.kc-elementor-home .kc-ref__quality-card .elementor-widget-text-editor { max-width: 42ch; color: #405d79; font-size: .98rem; line-height: 1.65; }

.kc-elementor-home .kc-ref__heritage,
.kc-elementor-home .kc-ref__promise { display: grid; width: min(100%, var(--kc-flow-wide)); grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr); margin: 0 auto clamp(var(--kc-space-5), 9vw, 140px); padding: 0 var(--kc-page-gutter); }
.kc-elementor-home .kc-ref__heritage-slider { min-height: clamp(360px, 37vw, 560px); overflow: hidden; background: #091d31; }
.kc-elementor-home .kc-ref__heritage-slider .elementor-widget-container,
.kc-elementor-home .kc-ref__heritage-slider .elementor-image-carousel-wrapper,
.kc-elementor-home .kc-ref__heritage-slider .swiper,
.kc-elementor-home .kc-ref__heritage-slider .swiper-wrapper,
.kc-elementor-home .kc-ref__heritage-slider .swiper-slide { height: 100%; }
.kc-elementor-home .kc-ref__heritage-slider img { width: 100%; height: 100%; object-fit: cover; }
.kc-elementor-home .kc-ref__heritage-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 5vw, 80px); background: #e5f1f9; }
.kc-elementor-home .kc-ref__heritage-copy h2,
.kc-elementor-home .kc-ref__promise-copy h2 { max-width: 13ch; margin: 14px 0 24px; color: #173f6e; font-size: clamp(2rem, 3vw, 3.25rem); line-height: .96; letter-spacing: -.055em; }
.kc-elementor-home .kc-ref__heritage-copy .elementor-widget-text-editor,
.kc-elementor-home .kc-ref__promise-copy .elementor-widget-text-editor { max-width: 43ch; color: #405d79; font-size: 1rem; line-height: 1.62; }
.kc-elementor-home .kc-ref__promise { grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr); background: #091d31; }
.kc-elementor-home .kc-ref__promise-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 5vw, 78px); color: #fff; }
.kc-elementor-home .kc-ref__promise-copy h2 { color: #fff; }
.kc-elementor-home .kc-ref__promise-copy .elementor-widget-text-editor { color: #d8e8f3; }
.kc-elementor-home .kc-ref__certificate { display: grid; min-height: clamp(570px, 46vw, 680px); place-items: center; padding: clamp(34px, 4vw, 68px); background: #e5f1f9; }
.kc-elementor-home .kc-ref__certificate img { display: block; width: min(100%, 390px); height: auto; aspect-ratio: 210 / 297; object-fit: contain; border: 6px solid #fff; box-shadow: 0 20px 46px rgba(9,29,49,.2); }

.kc-elementor-home .kc-ref__stats { display: grid; width: min(100%, var(--kc-flow-wide)); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0 auto clamp(var(--kc-space-5), 9vw, 140px); padding: clamp(32px, 4vw, 56px) clamp(18px, 3vw, 42px); background: #091d31; color: #fff; }
.kc-elementor-home .kc-ref__stat { padding: 0 clamp(18px, 3vw, 48px); text-align: center; }
.kc-elementor-home .kc-ref__stat + .kc-ref__stat { border-left: 1px solid rgba(185,215,237,.26); }
.kc-elementor-home .kc-ref__stat-number .elementor-heading-title { color: #fff; font-size: clamp(2.8rem, 4.4vw, 4.8rem); font-variant-numeric: tabular-nums; line-height: .94; white-space: nowrap; }
.kc-elementor-home .kc-ref__stat-label .elementor-widget-text-editor { margin-top: 13px; color: #b9d7ed; font-size: .72rem; font-weight: 800; letter-spacing: .12em; line-height: 1.35; text-transform: uppercase; }
.kc-elementor-home .kc-ref__career { width: min(100%, var(--kc-flow-main)); grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr); margin: 0 auto clamp(var(--kc-space-5), 9vw, 142px); padding: 0 var(--kc-page-gutter); }
.kc-elementor-home .kc-ref__career-copy { display: flex; min-height: 442px; flex-direction: column; justify-content: center; margin-bottom: clamp(20px, 3vw, 48px); padding: clamp(42px, 5vw, 76px); background: #091d31; color: #fff; }
.kc-elementor-home .kc-ref__career-copy h2 { color: #8dbde0; }
.kc-elementor-home .kc-ref__career-copy .elementor-widget-text-editor { max-width: 43ch; color: #e6f2fa; line-height: 1.62; }
.kc-elementor-home .kc-ref__career .kc-ref__image { min-height: 442px; margin-top: clamp(20px, 3vw, 48px); }
.kc-elementor-home .kc-ref__contact { width: min(100%, 800px); margin: 0 auto clamp(var(--kc-space-5), 9vw, 142px); padding: 0 var(--kc-page-gutter); text-align: center; }
.kc-elementor-home .kc-ref__contact h2 { margin-bottom: 18px; color: #173f6e; font-size: clamp(2rem, 3.6vw, 3.5rem); line-height: .95; letter-spacing: -.06em; }
.kc-elementor-home .kc-ref__contact h2 em { display: block; color: #8dbde0; font-style: normal; }
.kc-elementor-home .kc-ref__contact .elementor-widget-text-editor { color: #405d79; font-size: .95rem; line-height: 1.55; }
.kc-elementor-home .kc-ref__contact-actions { display: flex; justify-content: center; gap: 10px; margin-top: 24px; }
.kc-elementor-home .kc-ref__contact-actions .elementor-button { min-height: 42px; border: 1px solid #173f6e; border-radius: 0; background: transparent; color: #173f6e; font-size: .68rem; font-weight: 800; }

@media (max-width:700px) {
 .kc-elementor-home .kc-ref__emotion { min-height: min(620px, calc(100svh - 72px)); }
 .kc-elementor-home .kc-ref__emotion-copy { min-height: min(620px, calc(100svh - 72px)); padding: 42px 24px 34px; }
 .kc-elementor-home .kc-ref__emotion-copy h1 { font-size: clamp(1.95rem, 9.2vw, 2.4rem); }
 .kc-elementor-home .kc-ref__possibility, .kc-elementor-home .kc-ref__career, .kc-elementor-home .kc-ref__heritage, .kc-elementor-home .kc-ref__promise, .kc-elementor-home .kc-ref__quality { grid-template-columns: 1fr; }
 .kc-elementor-home .kc-ref__possibility, .kc-elementor-home .kc-ref__career, .kc-elementor-home .kc-ref__heritage, .kc-elementor-home .kc-ref__promise, .kc-elementor-home .kc-ref__quality, .kc-elementor-home .kc-ref__services { padding-inline: 18px; }
 .kc-elementor-home .kc-ref__possibility .kc-ref__image, .kc-elementor-home .kc-ref__career .kc-ref__image { min-height: 260px; margin: 0; }
 .kc-elementor-home .kc-ref__panel, .kc-elementor-home .kc-ref__career-copy { min-height: 0; margin: 0; padding: 34px 24px; }
 .kc-elementor-home .kc-ref__services-head h2 { white-space: normal; font-size: clamp(2.15rem, 10vw, 3rem); }
 .kc-elementor-home .kc-ref__cards { grid-template-columns: 1fr; gap: 16px; }
 .kc-elementor-home .kc-ref__card { height: 360px; }
 .kc-elementor-home .kc-ref__quality { gap: 0; }
 .kc-elementor-home .kc-ref__quality-card { min-height: 0; padding: 34px 24px; }
 .kc-elementor-home .kc-ref__heritage-slider { min-height: 290px; }
 .kc-elementor-home .kc-ref__heritage-copy, .kc-elementor-home .kc-ref__promise-copy { padding: 38px 24px; }
 .kc-elementor-home .kc-ref__certificate { min-height: 0; padding: 36px 24px; }
 .kc-elementor-home .kc-ref__certificate img { width: min(100%, 360px); border-width: 4px; }
 .kc-elementor-home .kc-ref__stats { grid-template-columns: 1fr; margin-inline: 18px; width: calc(100% - 36px); }
 .kc-elementor-home .kc-ref__stat { padding-block: 28px; }
 .kc-elementor-home .kc-ref__stat + .kc-ref__stat { border-top: 1px solid rgba(185,215,237,.26); border-left: 0; }
 .kc-elementor-home .kc-ref__contact-actions { display: grid; }
}
