/* Karalus Relaunch — Art Direction: Präzision trifft Licht */
:root {
  --kr-ink: #102932;
  --kr-deep: #07384d;
  --kr-blue: #087cac;
  --kr-sky: #dbeaf0;
  --kr-mist: #e8edeb;
  --kr-paper: #f6f4ef;
  --kr-white: #fff;
  --kr-copper: #bd653b;
  --kr-line: rgba(16, 41, 50, .16);
  --kr-shadow: 0 28px 70px rgba(7, 56, 77, .14);
  --kr-serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", Georgia, serif;
  --kr-sans: "Aptos", "Segoe UI Variable", "Segoe UI", sans-serif;
}

html { scroll-behavior: smooth; }
body[data-karalus-relaunch="1"] { background: var(--kr-paper); color: var(--kr-ink); font-family: var(--kr-sans); }
body[data-karalus-relaunch="1"] .topbar { display: none; }
body[data-karalus-relaunch="1"] .container { width: min(100% - clamp(2rem, 6vw, 6rem), 1320px); }
body[data-karalus-relaunch="1"] .site-header { background: rgba(255, 255, 255, .97); border-bottom: 1px solid rgba(16, 41, 50, .1); box-shadow: 0 8px 30px rgba(7, 31, 41, .06); backdrop-filter: blur(18px); }
body[data-karalus-relaunch="1"] .header-inner { min-height: 92px; gap: clamp(1rem, 2vw, 2.5rem); }
body[data-karalus-relaunch="1"] .brand img { display: block; width: 146px; height: auto; }
body[data-karalus-relaunch="1"] .desktop-nav,
body[data-karalus-relaunch="1"] .mobile-nav { display: none !important; }
body[data-karalus-relaunch="1"] .desktop-nav { gap: clamp(.25rem, .7vw, .8rem); }
body[data-karalus-relaunch="1"] .desktop-nav > a,
body[data-karalus-relaunch="1"] .desktop-nav .nav-group > a { background: transparent; border: 0; border-radius: 0; box-shadow: none; color: var(--kr-ink); font-size: .89rem; padding: .8rem .35rem; position: relative; }
body[data-karalus-relaunch="1"] .desktop-nav > a::after,
body[data-karalus-relaunch="1"] .desktop-nav .nav-group > a::after { background: var(--kr-copper); bottom: .25rem; content: ""; height: 2px; left: .35rem; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; width: calc(100% - .7rem); }
body[data-karalus-relaunch="1"] .desktop-nav a:hover::after,
body[data-karalus-relaunch="1"] .desktop-nav a:focus-visible::after,
body[data-karalus-relaunch="1"] .desktop-nav a.active::after { transform: scaleX(1); }
body[data-karalus-relaunch="1"] .nav-dropdown { border: 1px solid var(--kr-line); border-radius: 2px; box-shadow: var(--kr-shadow); padding: .65rem; }
body[data-karalus-relaunch="1"] .nav-dropdown a { border-radius: 2px; }
body[data-karalus-relaunch="1"] .header-cta,
body[data-karalus-relaunch="1"] .button { border-radius: 3px; font-family: var(--kr-sans); font-size: .94rem; font-weight: 680; letter-spacing: .005em; box-shadow: none; }
body[data-karalus-relaunch="1"] .header-cta { display: none !important; }
body[data-karalus-relaunch="1"] .header-cta:hover { background: #a9512c; }
body[data-karalus-relaunch="1"] .studio-menu-kicker { color: var(--kr-deep); font-size: 1rem; font-weight: 680; margin-left: auto; margin-right: -.45rem; white-space: nowrap; }
body[data-karalus-relaunch="1"] .menu-button.studio-menu-button { align-items: center; background: transparent; border: 0; border-radius: 0; box-shadow: none; color: var(--kr-deep); display: inline-flex !important; flex-direction: column; gap: 7px; height: 52px; justify-content: center; padding: 8px 0; width: 62px; }
body[data-karalus-relaunch="1"] .studio-menu-button span { background: currentColor; display: block; height: 2px; transform-origin: center; transition: transform .3s ease, width .3s ease; width: 54px; }
body[data-karalus-relaunch="1"] .studio-menu-button span:nth-child(2) { width: 42px; }
body[data-karalus-relaunch="1"] .studio-menu-button:hover span:nth-child(2),
body[data-karalus-relaunch="1"] .studio-menu-button:focus-visible span:nth-child(2) { width: 54px; }
body[data-karalus-relaunch="1"] .button-secondary { background: transparent; border: 1px solid rgba(7,56,77,.28); color: var(--kr-deep); }
body[data-karalus-relaunch="1"] .button-secondary:hover { background: var(--kr-deep); border-color: var(--kr-deep); color: #fff; }

/* Full-screen studio navigation: every existing content route stays reachable. */
body.studio-nav-open { overflow: hidden; }
.studio-navigation[hidden] { display: none; }
.studio-navigation { background: linear-gradient(108deg, #062f41 0 63%, var(--kr-copper) 63% 100%); color: #fff; inset: 0; opacity: 0; overflow: auto; position: fixed; transform: translateY(-18px); transition: opacity .38s ease, transform .42s cubic-bezier(.2,.75,.25,1); z-index: 100000; }
.studio-navigation.is-open { opacity: 1; transform: translateY(0); }
.studio-nav-shell { display: grid; grid-template-rows: auto 1fr auto; min-height: 100%; padding: clamp(1.5rem, 3vw, 3.2rem) clamp(1.4rem, 4vw, 5rem); }
.studio-nav-top { align-items: center; display: flex; justify-content: space-between; }
.studio-nav-brand { color: #fff; display: grid; gap: .15rem; text-decoration: none; }
.studio-nav-brand strong { font-family: var(--kr-sans); font-size: clamp(2rem, 3vw, 3.15rem); font-weight: 650; letter-spacing: -.04em; line-height: .9; }
.studio-nav-brand span { color: rgba(255,255,255,.64); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.studio-nav-close { background: transparent; border: 0; cursor: pointer; height: 58px; position: relative; width: 58px; }
.studio-nav-close span { background: #fff; height: 2px; left: 2px; position: absolute; top: 28px; width: 54px; }
.studio-nav-close span:first-child { transform: rotate(45deg); }
.studio-nav-close span:last-child { transform: rotate(-45deg); }
.studio-nav-layout { align-items: center; display: grid; gap: clamp(3rem, 8vw, 10rem); grid-template-columns: minmax(310px, .72fr) 1.28fr; padding-block: clamp(3rem, 7vh, 6.5rem); }
.studio-nav-context { align-self: stretch; border-right: 1px solid rgba(255,255,255,.2); display: grid; gap: 1.4rem; padding-right: clamp(2rem, 5vw, 5rem); }
.studio-nav-eyebrow { color: #efaa83; font-size: .72rem; font-weight: 800; letter-spacing: .15em; margin: 0; text-transform: uppercase; }
.studio-nav-context nav { display: grid; gap: .15rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.studio-nav-context nav a { color: rgba(255,255,255,.76); font-size: clamp(.86rem, 1vw, 1rem); padding: .25rem 0; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.studio-nav-context nav a:hover,
.studio-nav-context nav a:focus-visible { color: #fff; transform: translateX(5px); }
.studio-nav-checks { border-block: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: 1fr 1fr; }
.studio-nav-checks a { color: #fff; display: grid; gap: .3rem; padding: 1rem 1rem 1rem 0; text-decoration: none; }
.studio-nav-checks a + a { border-left: 1px solid rgba(255,255,255,.2); padding-left: 1rem; }
.studio-nav-checks span { color: #efaa83; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.studio-nav-checks b { font-size: .88rem; font-weight: 650; }
.studio-nav-planning { border-top: 0 !important; }
.studio-nav-primary { align-content: center; display: grid; gap: clamp(.2rem, 1vh, .8rem); }
.studio-nav-primary a { color: #fff; font-family: var(--kr-sans); font-size: clamp(2.25rem, 4.7vw, 5.8rem); font-weight: 380; letter-spacing: -.045em; line-height: .95; text-decoration: none; transform: translateY(30px); transition: color .22s ease, transform .65s cubic-bezier(.2,.75,.25,1); }
.studio-navigation.is-open .studio-nav-primary a { transform: translateY(0); }
.studio-nav-primary a:nth-child(2) { transition-delay: 40ms; }
.studio-nav-primary a:nth-child(3) { transition-delay: 80ms; }
.studio-nav-primary a:nth-child(4) { transition-delay: 120ms; }
.studio-nav-primary a:nth-child(5) { transition-delay: 160ms; }
.studio-nav-primary a:nth-child(6) { transition-delay: 200ms; }
.studio-nav-primary a:nth-child(7) { transition-delay: 240ms; }
.studio-nav-primary a:hover,
.studio-nav-primary a:focus-visible { color: #ffd4bf; transform: translateX(12px); }
.studio-nav-bottom { align-items: end; border-top: 1px solid rgba(255,255,255,.25); display: grid; gap: clamp(1rem, 2.5vw, 2.5rem); grid-template-columns: auto auto 1fr auto; padding-top: 1.35rem; }
.studio-nav-bottom > div { display: grid; gap: .25rem; }
.studio-nav-bottom span { color: rgba(255,255,255,.6); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.studio-nav-bottom a,
.studio-nav-bottom b { color: #fff; font-size: .95rem; font-style: normal; font-weight: 650; text-decoration: none; }
.studio-nav-legal { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem 1rem; }
.studio-nav-legal a { color: rgba(255,255,255,.72); font-size: .78rem; font-weight: 560; }
.studio-nav-legal a:hover,
.studio-nav-legal a:focus-visible { color: #fff; }
.studio-nav-request { align-items: center; background: #fff; color: var(--kr-deep) !important; display: flex; gap: 1rem; justify-self: end; min-height: 58px; padding: .9rem 1.35rem; }
.studio-nav-request i { font-size: 1.35rem; font-style: normal; }

body[data-karalus-relaunch="1"] h1,
body[data-karalus-relaunch="1"] h2 { color: var(--kr-ink); font-family: var(--kr-serif); font-weight: 500; letter-spacing: -.035em; line-height: .98; text-wrap: balance; }
body[data-karalus-relaunch="1"] h1 { font-size: clamp(3rem, 6.5vw, 6.6rem); }
body[data-karalus-relaunch="1"] h2 { font-size: clamp(2.35rem, 4.4vw, 4.8rem); }
body[data-karalus-relaunch="1"] h3 { color: var(--kr-ink); letter-spacing: -.02em; }
body[data-karalus-relaunch="1"] p { line-height: 1.62; }
body[data-karalus-relaunch="1"] .eyebrow { color: var(--kr-copper); font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
body[data-karalus-relaunch="1"] .section { padding-block: clamp(4.25rem, 7vw, 6.75rem); }
body[data-karalus-relaunch="1"] .section.white { background: linear-gradient(180deg, #faf9f6 0%, var(--kr-paper) 52%, #f2f0ea 100%); }
body[data-karalus-relaunch="1"] .section.soft { background: linear-gradient(180deg, #eef2f0 0%, var(--kr-mist) 55%, #e2e9e7 100%); }
body[data-karalus-relaunch="1"] .section-heading { max-width: 760px; margin-bottom: clamp(2.2rem, 4vw, 3.8rem); }
body[data-karalus-relaunch="1"] .section-heading h2 { margin: .75rem 0 0; }
body[data-karalus-relaunch="1"] .section-heading p { margin: 1.15rem 0 0; max-width: 680px; }
body[data-karalus-relaunch="1"] .split-intro { align-items: start; gap: clamp(2rem, 6vw, 6rem); }
body[data-karalus-relaunch="1"] .split-intro .lead-copy { font-size: clamp(1.03rem, 1.5vw, 1.18rem); line-height: 1.65; max-width: 610px; }

body[data-karalus-relaunch="1"] .home-hero,
body[data-karalus-relaunch="1"] .page-hero { min-height: min(830px, calc(100svh - 92px)); }
body[data-karalus-relaunch="1"] .home-hero > img,
body[data-karalus-relaunch="1"] .page-hero > img { transform: scale(1.045) translate3d(0, var(--kr-hero-shift, 0), 0); transform-origin: center; will-change: transform; }
body[data-karalus-relaunch="1"] .home-hero::after,
body[data-karalus-relaunch="1"] .page-hero .hero-overlay { background: linear-gradient(90deg, rgba(5, 32, 43, .88) 0%, rgba(5, 32, 43, .62) 49%, rgba(5, 32, 43, .08) 78%); }
body[data-karalus-relaunch="1"] .home-hero-content,
body[data-karalus-relaunch="1"] .page-hero-content { max-width: 880px; padding-block: clamp(6rem, 11vw, 10rem); text-align: left; }
body[data-karalus-relaunch="1"] .home-hero h1,
body[data-karalus-relaunch="1"] .page-hero h1 { color: var(--kr-white); max-width: 900px; }
body[data-karalus-relaunch="1"] .home-hero p,
body[data-karalus-relaunch="1"] .page-hero p { color: rgba(255, 255, 255, .88); font-size: clamp(1.05rem, 1.7vw, 1.35rem); max-width: 670px; }
body[data-karalus-relaunch="1"] .home-hero .button-primary { background: var(--kr-copper); border-color: var(--kr-copper); }
body[data-karalus-relaunch="1"] .home-hero .button-secondary { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.55); color: #fff; }
body[data-karalus-relaunch="1"] .hero-trust { border-radius: 2px; }

body[data-karalus-relaunch="1"] .service-world-grid,
body[data-karalus-relaunch="1"] .product-grid { gap: 1px; background: var(--kr-line); border: 1px solid var(--kr-line); }
body[data-karalus-relaunch="1"] .service-world-card,
body[data-karalus-relaunch="1"] .product-card { background: var(--kr-paper); border: 0; border-radius: 0; box-shadow: none; }
body[data-karalus-relaunch="1"] .service-world-card img,
body[data-karalus-relaunch="1"] .product-card img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
body[data-karalus-relaunch="1"] .service-world-card:hover img,
body[data-karalus-relaunch="1"] .product-card:hover img { transform: scale(1.035); }
body[data-karalus-relaunch="1"] .world-grid { gap: clamp(.85rem, 1.8vw, 1.5rem); margin-top: clamp(2.5rem, 5vw, 4.5rem); }
body[data-karalus-relaunch="1"] .world-card { border-radius: 4px; box-shadow: 0 12px 36px rgba(7, 31, 41, .1); overflow: hidden; }
body[data-karalus-relaunch="1"] .world-card h3 { color: #fff; font-family: var(--kr-sans); font-size: clamp(1.55rem, 2.2vw, 2.15rem); font-weight: 720; letter-spacing: -.025em; line-height: 1.08; }
body[data-karalus-relaunch="1"] .world-card p { color: rgba(255,255,255,.86); line-height: 1.55; max-width: 39rem; }
body[data-karalus-relaunch="1"] .world-card b,
body[data-karalus-relaunch="1"] .world-card strong { color: #fff; font-family: var(--kr-sans); font-weight: 680; }
body[data-karalus-relaunch="1"] .home-service-links { align-items: center; border-block: 1px solid var(--kr-line); display: flex; flex-wrap: wrap; gap: .65rem; margin-top: clamp(2rem, 4vw, 3.5rem); padding-block: 1.1rem; }
body[data-karalus-relaunch="1"] .home-service-links > span { color: #50666e; font-size: .72rem; font-weight: 800; letter-spacing: .12em; margin-right: .2rem; text-transform: uppercase; }
body[data-karalus-relaunch="1"] .home-service-links a { align-items: center; background: #fff; border: 1px solid rgba(7, 56, 77, .28); color: var(--kr-deep); display: inline-flex; font-size: .9rem; font-weight: 720; gap: .65rem; justify-content: space-between; min-height: 46px; padding: .7rem .9rem; text-decoration: none; transform-origin: center; transition: background .24s ease, border-color .24s ease, box-shadow .24s ease, color .24s ease, transform .26s cubic-bezier(.2,.75,.25,1); }
body[data-karalus-relaunch="1"] .home-service-links a::after { content: "\2192"; font-size: 1.05rem; line-height: 1; transition: transform .24s ease; }
body[data-karalus-relaunch="1"] .home-service-links a:hover,
body[data-karalus-relaunch="1"] .home-service-links a:focus-visible { background: var(--kr-deep); border-color: var(--kr-deep); box-shadow: 0 10px 24px rgba(7, 56, 77, .18); color: #fff; transform: translateY(-2px) scale(1.025); }
body[data-karalus-relaunch="1"] .home-service-links a:hover::after,
body[data-karalus-relaunch="1"] .home-service-links a:focus-visible::after { transform: translateX(3px); }
body[data-karalus-relaunch="1"] .home-manufacturing .text-link { align-items: center; border-bottom: 2px solid var(--kr-copper); color: var(--kr-deep); display: inline-flex; font-size: clamp(1.02rem, 1.5vw, 1.18rem); font-weight: 760; gap: .7rem; justify-content: flex-start; margin-left: 0 !important; margin-top: 1.5rem; max-width: 100%; padding: .55rem 0 !important; text-decoration: none; transition: color .24s ease, transform .24s ease; width: max-content; }
body[data-karalus-relaunch="1"] .home-manufacturing .text-link svg { flex: 0 0 auto; transition: transform .24s ease; }
body[data-karalus-relaunch="1"] .home-manufacturing .text-link:hover,
body[data-karalus-relaunch="1"] .home-manufacturing .text-link:focus-visible { color: var(--kr-copper); transform: translateY(-2px); }
body[data-karalus-relaunch="1"] .home-manufacturing .text-link:hover svg,
body[data-karalus-relaunch="1"] .home-manufacturing .text-link:focus-visible svg { transform: translateX(4px); }
body[data-karalus-relaunch="1"] .home-manufacturing > div:last-child { text-align: left; }
body[data-karalus-relaunch="1"] .feature-grid { gap: 0; }
body[data-karalus-relaunch="1"] .home-quick-choice .feature-card { background: transparent; border: 0; border-left: 1px solid var(--kr-line); border-radius: 0; box-shadow: none; padding: 1.25rem clamp(1.25rem, 2.5vw, 2.25rem); }
body[data-karalus-relaunch="1"] .home-quick-choice .feature-card:last-child { border-right: 1px solid var(--kr-line); }
body[data-karalus-relaunch="1"] .home-quick-choice .feature-card h3 { font-family: var(--kr-sans); font-size: clamp(1.15rem, 1.7vw, 1.45rem); font-weight: 690; }
body[data-karalus-relaunch="1"] .home-quick-choice .button-secondary { background: var(--kr-copper); border-color: var(--kr-copper); color: #fff; display: inline-flex; gap: .75rem; padding: .9rem 1.2rem; }
body[data-karalus-relaunch="1"] .home-quick-choice .button-secondary::after { content: "→"; font-size: 1.15rem; line-height: 1; }
body[data-karalus-relaunch="1"] .home-quick-choice .button-secondary:hover { background: #a9512c; border-color: #a9512c; color: #fff; }
body[data-karalus-relaunch="1"] .reviews-showcase + .section.soft article { background: transparent; border: 0; border-top: 1px solid var(--kr-line); border-radius: 0; box-shadow: none; padding: 1.5rem 0; }
body[data-karalus-relaunch="1"] .reviews-showcase + .section.soft article h3 { font-family: var(--kr-sans); font-size: 1.2rem; font-weight: 690; }
body[data-karalus-relaunch="1"] .related-card,
body[data-karalus-relaunch="1"] .variant-card,
body[data-karalus-relaunch="1"] .decision-card,
body[data-karalus-relaunch="1"] .service-card { border-radius: 4px; box-shadow: none; }
body[data-karalus-relaunch="1"] .related-card h3,
body[data-karalus-relaunch="1"] .variant-card h3,
body[data-karalus-relaunch="1"] .decision-card h3,
body[data-karalus-relaunch="1"] .service-card h3 { font-family: var(--kr-sans); font-weight: 690; }

body[data-karalus-relaunch="1"] .project-grid,
body[data-karalus-relaunch="1"] .reference-project-grid { display: grid; gap: clamp(1.25rem, 2.4vw, 2.4rem); grid-template-columns: repeat(12, 1fr); }
body[data-karalus-relaunch="1"] .project-card,
body[data-karalus-relaunch="1"] .reference-project-card { border: 0; border-radius: 0; box-shadow: none; grid-column: span 6; overflow: hidden; }
body[data-karalus-relaunch="1"] .project-card:nth-child(4n + 1),
body[data-karalus-relaunch="1"] .project-card:nth-child(4n + 4) { grid-column: span 7; }
body[data-karalus-relaunch="1"] .project-card:nth-child(4n + 2),
body[data-karalus-relaunch="1"] .project-card:nth-child(4n + 3) { grid-column: span 5; }
body[data-karalus-relaunch="1"] .project-card img { aspect-ratio: 4 / 3; border-radius: 0; object-fit: cover; }
body[data-karalus-relaunch="1"] .project-card > div { background: transparent; padding: 1.4rem 0 2.5rem; }
body[data-karalus-relaunch="1"] .project-card h3 { font-family: var(--kr-serif); font-size: clamp(1.55rem, 2.2vw, 2.35rem); font-weight: 500; }

.relaunch-checks { background: linear-gradient(135deg, #062f41 0%, var(--kr-deep) 55%, #0b536c 100%); color: var(--kr-white); padding-block: clamp(4.5rem, 7vw, 6.5rem); }
.checks-layout { align-items: start; display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: .85fr 1.15fr; }
.checks-intro { max-width: 540px; }
.checks-intro h2 { color: var(--kr-white) !important; margin: 1rem 0 1.6rem; }
.checks-intro p { color: rgba(255,255,255,.72); font-size: 1.08rem; }
.checks-project-link { background: var(--kr-copper) !important; border-color: var(--kr-copper) !important; display: inline-flex; font-size: 1rem !important; margin-top: 1rem; padding: 1.05rem 1.4rem !important; transform-origin: center; transition: background .25s ease, box-shadow .25s ease, transform .28s cubic-bezier(.2,.75,.25,1) !important; }
.checks-project-link:hover,
.checks-project-link:focus-visible { background: #d1784d !important; box-shadow: 0 14px 30px rgba(0,0,0,.2) !important; transform: translateY(-3px) scale(1.035) !important; }
.checks-links { border-top: 1px solid rgba(255,255,255,.25); }
.checks-links a { color: #fff; display: grid; gap: .6rem; padding: 2rem .25rem; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.25); transition: padding .25s ease, background .25s ease; }
.checks-links a:hover { background: rgba(255,255,255,.05); padding-inline: 1rem; }
.checks-links span { color: #e7a17d; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.checks-links strong { font-family: var(--kr-sans); font-size: clamp(1.35rem, 2.1vw, 2rem); font-weight: 680; letter-spacing: -.02em; }
.checks-links em { color: rgba(255,255,255,.72); font-style: normal; }

.relaunch-mid-cta { align-items: center; background: var(--kr-deep); color: #fff; display: flex; gap: 2rem; justify-content: space-between; margin: clamp(3.5rem, 7vw, 7rem) auto; max-width: 1180px; padding: clamp(2rem, 4vw, 4rem); }
.relaunch-mid-cta span { color: #e7a17d; display: block; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.relaunch-mid-cta strong { display: block; font-family: var(--kr-serif); font-size: clamp(1.7rem, 3vw, 3rem); font-weight: 500; margin-top: .7rem; }

body[data-karalus-relaunch="1"] .reviews-showcase { background: var(--kr-sky); }
body[data-karalus-relaunch="1"] .reviews-track { animation: none !important; }
body[data-karalus-relaunch="1"] .review-card { background: transparent; border: 0; border-left: 1px solid rgba(7,56,77,.25); border-radius: 0; box-shadow: none; }
.relaunch-rating-proof { align-items: center; border-block: 1px solid rgba(7,56,77,.22); color: var(--kr-ink); display: grid; gap: clamp(1rem, 3vw, 3rem); grid-template-columns: minmax(0, 1fr) auto; margin-top: clamp(2rem, 5vw, 4rem); padding: clamp(2rem, 5vw, 4rem) max(2rem, calc((100vw - 1320px) / 2)); text-decoration: none; }
.rating-metric { align-items: baseline; display: inline-flex; gap: .12em; grid-column: 2; grid-row: 1; white-space: nowrap; }
.rating-score { font-family: var(--kr-serif); font-size: clamp(4.5rem, 9vw, 8.5rem); line-height: .8; }
.rating-stars { color: #d5783f; font-family: var(--kr-serif); font-size: clamp(4.5rem, 9vw, 8.5rem); line-height: .8; }
.rating-copy { display: grid; gap: .5rem; grid-column: 1; grid-row: 1; justify-self: start; text-align: left; }
.rating-copy strong { font-family: var(--kr-serif); font-size: clamp(1.45rem, 2.5vw, 2.4rem); font-weight: 500; }
.rating-copy small { color: #557078; font-size: .95rem; }

body[data-karalus-relaunch="1"] .blue-section { background: linear-gradient(135deg, #06364a 0%, #0a5570 100%); color: rgba(255,255,255,.84); }
body[data-karalus-relaunch="1"] .blue-section h2,
body[data-karalus-relaunch="1"] .blue-section h3,
body[data-karalus-relaunch="1"] .blue-section strong { color: #fff; }
body[data-karalus-relaunch="1"] .blue-section .eyebrow { color: #efaa83; }
body[data-karalus-relaunch="1"] .blue-section article { border-color: rgba(255,255,255,.18); }
body[data-karalus-relaunch="1"] .contact-cta { display: none; }
body[data-karalus-relaunch="1"] .contact-cta h2 { color: #fff; }
body[data-karalus-relaunch="1"] .contact-cta p { color: rgba(255,255,255,.86); }
body[data-karalus-relaunch="1"] .contact-cta .button-white { background: var(--kr-deep); border-color: var(--kr-deep); color: #fff; }
body[data-karalus-relaunch="1"] .contact-cta .button-white:hover { background: #052a3a; border-color: #052a3a; color: #fff; }
body[data-karalus-relaunch="1"] .home-location-section .home-hours-card,
body[data-karalus-relaunch="1"] .home-location-section .map-card { border-radius: 4px; }
body[data-karalus-relaunch="1"] .contact-cards { border-top: 1px solid var(--kr-line); display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-karalus-relaunch="1"] .contact-cards > a { background: transparent; border: 0; border-bottom: 1px solid var(--kr-line); border-radius: 0; box-shadow: none; min-height: 112px; padding: 1.35rem 1rem; }
body[data-karalus-relaunch="1"] .contact-cards > a:nth-child(odd) { border-right: 1px solid var(--kr-line); }
body[data-karalus-relaunch="1"] .contact-cards > a:hover { background: rgba(8,124,172,.045); }
body[data-karalus-home="1"] .site-footer,
body[data-karalus-relaunch="1"]:has(.home-hero) .site-footer { display: none !important; }
body[data-karalus-relaunch="1"] .site-footer .footer-grid { align-items: start; display: grid; grid-template-columns: 1fr; }
body[data-karalus-relaunch="1"] .site-footer .footer-brand { display: none; }
body[data-karalus-relaunch="1"] .site-footer .footer-brand > p { color: #526b74; font-size: .92rem; margin: 0; max-width: 340px; }
body[data-karalus-relaunch="1"] .site-footer .footer-badges { border-top: 1px solid var(--kr-line); display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: 1.4rem; padding-top: 1rem; }
body[data-karalus-relaunch="1"] .site-footer .master-pill { background: transparent; border: 0; color: var(--kr-deep); font-size: .76rem; padding: 0; }
body[data-karalus-relaunch="1"] .site-footer .google-review-button { background: transparent; border: 0; border-bottom: 1px solid var(--kr-deep); border-radius: 0; color: var(--kr-deep); display: inline-flex; font-size: .8rem; margin-top: 1.15rem; padding: .3rem 0; }
body[data-karalus-relaunch="1"] .site-footer .footer-links-grid { display: grid; gap: clamp(1.5rem, 3vw, 3rem); grid-template-columns: .8fr 1.35fr 1fr; }
body[data-karalus-relaunch="1"] .site-footer h3 { color: var(--kr-copper); font-family: var(--kr-sans); font-size: .68rem; font-weight: 800; letter-spacing: .13em; margin: 0 0 .8rem; text-transform: uppercase; }
body[data-karalus-relaunch="1"] .site-footer a { color: var(--kr-deep); }
body[data-karalus-relaunch="1"] .site-footer .footer-links-grid > div > a { font-size: .86rem; line-height: 1.45; padding-block: .14rem; }
body[data-karalus-relaunch="1"] .site-footer .footer-address,
body[data-karalus-relaunch="1"] .site-footer .footer-hours { color: #526b74; font-size: .82rem; line-height: 1.55; margin: .85rem 0 0; }
body[data-karalus-relaunch="1"] .site-footer .footer-bottom { border-top: 1px solid var(--kr-line); color: #667b82; margin-top: clamp(2rem, 4vw, 3.5rem); min-height: 64px; padding-block: 1rem; }
body[data-karalus-relaunch="1"] .site-footer .footer-bottom a { color: var(--kr-deep); font-size: .78rem; }

/* Persistent contact remains present, but enters as a clear action instead of two loose bubbles. */
.studio-contact-rail { backdrop-filter: blur(14px); background: rgba(5,43,58,.94); border: 1px solid rgba(255,255,255,.22); bottom: 22px; box-shadow: 0 16px 44px rgba(7,31,41,.22); display: grid; grid-template-columns: minmax(0, 1fr) 68px; opacity: 0; position: fixed; right: 22px; transform: translateX(calc(100% + 40px)); transition: opacity .35s ease, transform .55s cubic-bezier(.2,.75,.25,1); width: min(330px, calc(100vw - 44px)); z-index: 9000; }
.studio-contact-rail.is-visible { opacity: 1; transform: translateX(0); }
.studio-contact-copy { display: grid; gap: .18rem; padding: .72rem .9rem; }
.studio-contact-copy span { color: #efaa83; font-size: .61rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.studio-contact-copy strong { color: #fff; font-size: .8rem; line-height: 1.22; }
.studio-contact-request { align-items: center; background: var(--kr-copper); color: #fff; display: flex; font-weight: 720; justify-content: center; text-decoration: none; }
.studio-contact-request span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.studio-contact-request b { font-size: 1.55rem; font-weight: 450; }
.studio-contact-shortcuts { border-top: 1px solid rgba(255,255,255,.18); display: flex; grid-column: 1 / -1; }
.studio-contact-shortcuts a { color: rgba(255,255,255,.78); display: grid; flex: 1; font-size: .68rem; font-weight: 620; gap: .08rem; padding: .48rem .85rem; text-decoration: none; }
.studio-contact-shortcuts a span { color: rgba(255,255,255,.64); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.studio-contact-shortcuts a strong { color: #fff; font-size: .72rem; font-weight: 760; white-space: nowrap; }
.studio-contact-shortcuts a + a { border-left: 1px solid rgba(255,255,255,.18); }
body[data-karalus-relaunch="1"] .floating-actions { display: none; }

/* Calm entrance choreography. Content stays in the DOM and fully crawlable. */
html.studio-motion .kr-reveal { opacity: 0; transform: translateY(34px); transition: opacity .72s ease var(--kr-reveal-delay, 0ms), transform .78s cubic-bezier(.2,.75,.25,1) var(--kr-reveal-delay, 0ms); }
html.studio-motion .kr-reveal.is-visible { opacity: 1; transform: translateY(0); }
html.studio-motion .kr-media-reveal { clip-path: inset(0 0 100% 0); opacity: .35; transform: translateY(38px); transition: clip-path .9s cubic-bezier(.2,.75,.25,1) var(--kr-reveal-delay, 0ms), opacity .7s ease var(--kr-reveal-delay, 0ms), transform .85s cubic-bezier(.2,.75,.25,1) var(--kr-reveal-delay, 0ms); }
html.studio-motion .kr-media-reveal.is-visible { clip-path: inset(-1px); opacity: 1; transform: translateY(0); }
html.studio-motion .kr-media-reveal img { transform: scale(1.07); transition: transform 1.05s cubic-bezier(.2,.75,.25,1) var(--kr-reveal-delay, 0ms); }
html.studio-motion .kr-media-reveal.is-visible img { transform: scale(1); }
html.studio-motion .kr-hero-rise { opacity: 0; transform: translateY(28px); transition: opacity .75s ease var(--kr-hero-delay, 0ms), transform .82s cubic-bezier(.2,.75,.25,1) var(--kr-hero-delay, 0ms); }
html.studio-motion .kr-hero-rise.is-visible { opacity: 1; transform: translateY(0); }

/* Multi-step request: existing server-side form and nonce stay intact. */
body[data-karalus-relaunch="1"] .contact-form[data-multi-step="true"] { background: linear-gradient(155deg, #fff 0%, #fbfaf7 100%); border: 1px solid var(--kr-line); border-top: 3px solid var(--kr-copper); border-radius: 2px; box-shadow: 0 18px 48px rgba(7,31,41,.07); padding: clamp(1.4rem, 4vw, 3.5rem); }
.request-wizard fieldset { border: 0; margin: 0; min-inline-size: 0; padding: 0; }
.request-wizard fieldset[hidden] { display: none; }
.request-wizard legend { color: var(--kr-ink); font-family: var(--kr-serif); font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 500; letter-spacing: -.035em; line-height: 1; margin-bottom: 1rem; }
.wizard-head { align-items: center; display: flex; gap: 1.4rem; margin-bottom: clamp(2.2rem, 5vw, 4rem); }
.wizard-head p { font-size: .78rem; font-weight: 800; letter-spacing: .12em; margin: 0; text-transform: uppercase; white-space: nowrap; }
.wizard-progress { background: var(--kr-mist); height: 3px; overflow: hidden; width: 100%; }
.wizard-progress i { background: var(--kr-copper); display: block; height: 100%; transition: width .35s ease; }
.wizard-note { color: #56717a; margin-bottom: 2rem; max-width: 650px; }
.request-wizard label { color: var(--kr-ink); font-weight: 650; }
.request-wizard input,
.request-wizard select,
.request-wizard textarea { background: #fbfaf7; border: 1px solid rgba(16,41,50,.25); border-radius: 2px; font: inherit; min-height: 54px; }
.request-wizard input:focus,
.request-wizard select:focus,
.request-wizard textarea:focus { border-color: var(--kr-blue); box-shadow: 0 0 0 3px rgba(8,124,172,.14); outline: 0; }
.stage-options { display: grid; gap: .75rem; grid-template-columns: repeat(3, 1fr); margin-top: 1.4rem; }
.stage-options label { cursor: pointer; }
.stage-options input { opacity: 0; position: absolute; }
.stage-options span { border: 1px solid var(--kr-line); display: block; min-height: 90px; padding: 1.4rem; }
.stage-options input:checked + span { background: var(--kr-deep); border-color: var(--kr-deep); color: #fff; }
.wizard-contact { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
.wizard-actions { display: flex; gap: 1rem; justify-content: space-between; margin-top: 2rem; }
.wizard-actions button { border-radius: 2px; cursor: pointer; font: inherit; font-weight: 750; min-height: 52px; padding: .8rem 1.5rem; }
.wizard-next { background: var(--kr-deep); border: 1px solid var(--kr-deep); color: #fff; margin-left: auto; }
.wizard-back { background: transparent; border: 1px solid var(--kr-line); color: var(--kr-ink); }

.mobile-request-bar { display: none; }

body[data-karalus-relaunch="1"] :focus-visible { outline: 3px solid #f1a079; outline-offset: 4px; }

@media (max-width: 1080px) {
  .studio-nav-layout { gap: 3rem; grid-template-columns: minmax(290px, .9fr) 1.1fr; }
  .studio-nav-context { padding-right: 2rem; }
  body[data-karalus-relaunch="1"] .section { padding-block: clamp(4rem, 7vw, 5.4rem); }
}

@media (max-width: 900px) {
  .studio-navigation { background: linear-gradient(155deg, #062f41 0 76%, var(--kr-copper) 76% 100%); }
  .studio-nav-shell { display: block; }
  .studio-nav-layout { display: flex; flex-direction: column; padding-block: 3rem; }
  .studio-nav-primary { order: -1; width: 100%; }
  .studio-nav-primary a { font-size: clamp(2.3rem, 7vw, 4.4rem); }
  .studio-nav-context { border-right: 0; border-top: 1px solid rgba(255,255,255,.2); padding-right: 0; padding-top: 2rem; width: 100%; }
  .studio-nav-bottom { grid-template-columns: 1fr 1fr; }
  .studio-nav-request { grid-column: 1 / -1; justify-self: stretch; justify-content: space-between; }
  body[data-karalus-relaunch="1"] .site-footer .footer-grid { grid-template-columns: 1fr; }
  body[data-karalus-relaunch="1"] .site-footer .footer-links-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body[data-karalus-relaunch="1"] .site-footer .footer-links-grid > div:nth-child(2) { grid-column: auto; grid-row: auto; order: 0; }
  body[data-karalus-relaunch="1"] .site-footer .footer-section-content[hidden] { display: grid !important; gap: .12rem; }
  body[data-karalus-relaunch="1"] .site-footer .footer-toggle { all: unset; color: var(--kr-copper); cursor: default; font-family: var(--kr-sans); font-size: .68rem; font-weight: 800; letter-spacing: .13em; pointer-events: none; text-transform: uppercase; }
  body[data-karalus-relaunch="1"] .site-footer .footer-toggle::after { display: none !important; }
  body[data-karalus-relaunch="1"] .split-intro { grid-template-columns: 1fr; gap: 1.25rem; }
  body[data-karalus-relaunch="1"] .split-intro .lead-copy { max-width: 680px; }
  .checks-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body[data-karalus-relaunch="1"] { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  body[data-karalus-relaunch="1"] .container { width: min(100% - 2rem, 1320px); }
  body[data-karalus-relaunch="1"] .header-inner { min-height: 74px; }
  body[data-karalus-relaunch="1"] .brand img { width: 124px; }
  body[data-karalus-relaunch="1"] .header-cta { display: none; }
  body[data-karalus-relaunch="1"] .studio-menu-kicker { display: inline; font-size: 1.02rem; margin-right: -.55rem; }
  body[data-karalus-relaunch="1"] .menu-button.studio-menu-button { margin-left: 0; width: 50px; }
  body[data-karalus-relaunch="1"] .studio-menu-button span { width: 44px; }
  body[data-karalus-relaunch="1"] .studio-menu-button span:nth-child(2) { width: 34px; }
  .studio-nav-shell { padding: 1.25rem 1rem 2rem; }
  .studio-nav-brand strong { font-size: 2rem; }
  .studio-nav-layout { gap: 2.4rem; padding-block: 2.5rem; }
  .studio-nav-primary a { font-size: clamp(2rem, 10vw, 3rem); line-height: 1; }
  .studio-nav-context nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-nav-checks { grid-template-columns: 1fr; }
  .studio-nav-checks a + a { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding-left: 0; }
  .studio-nav-bottom { grid-template-columns: 1fr; }
  .studio-nav-request { grid-column: auto; }
  body[data-karalus-relaunch="1"] .site-footer { padding-top: 3rem; }
  body[data-karalus-relaunch="1"] .site-footer .footer-grid { grid-template-columns: 1fr; }
  body[data-karalus-relaunch="1"] .site-footer .footer-brand > p { max-width: none; }
  body[data-karalus-relaunch="1"] .site-footer .footer-links-grid { grid-template-columns: 1fr 1fr; }
  body[data-karalus-relaunch="1"] .site-footer .footer-links-grid > div:nth-child(2) { grid-column: 1 / -1; grid-row: auto; order: -1; }
  body[data-karalus-relaunch="1"] .site-footer .footer-bottom { align-items: flex-start; flex-direction: column; gap: .6rem; }
  body[data-karalus-relaunch="1"] .home-hero,
  body[data-karalus-relaunch="1"] .page-hero { min-height: 700px; }
  body[data-karalus-relaunch="1"] .home-hero::after,
  body[data-karalus-relaunch="1"] .page-hero .hero-overlay { background: linear-gradient(180deg, rgba(5,32,43,.45), rgba(5,32,43,.9)); }
  body[data-karalus-relaunch="1"] .home-hero-content,
  body[data-karalus-relaunch="1"] .page-hero-content { align-items: flex-start; justify-content: flex-end; padding-block: 4rem; text-align: left; }
  body[data-karalus-relaunch="1"] .home-hero .hero-badge { display: none; }
  body[data-karalus-relaunch="1"] .home-hero h1,
  body[data-karalus-relaunch="1"] .home-hero p { margin-inline: 0; text-align: left; }
  body[data-karalus-relaunch="1"] h1 { font-size: clamp(2.65rem, 11.5vw, 3.65rem); }
  body[data-karalus-relaunch="1"] h2 { font-size: clamp(2.35rem, 10vw, 3.4rem); }
  body[data-karalus-relaunch="1"] .hero-actions { align-items: stretch; flex-direction: column; width: 100%; }
  body[data-karalus-relaunch="1"] .hero-actions .button { justify-content: center; width: 100%; }
  body[data-karalus-relaunch="1"] .section { padding-block: 4.25rem; }
  body[data-karalus-relaunch="1"] .project-grid,
  body[data-karalus-relaunch="1"] .reference-project-grid { display: block; }
  body[data-karalus-relaunch="1"] .project-card { display: block; margin-bottom: 2.5rem; }
  body[data-karalus-relaunch="1"] .home-service-links { gap: .55rem; }
  body[data-karalus-relaunch="1"] .home-service-links > span { flex-basis: 100%; margin-bottom: .15rem; }
  body[data-karalus-relaunch="1"] .home-service-links a { flex: 1 1 calc(50% - .55rem); font-size: .84rem; min-width: 145px; }
  body[data-karalus-relaunch="1"] .home-manufacturing .text-link { font-size: 1.04rem; }
  body[data-karalus-relaunch="1"] .home-quick-choice .feature-card,
  body[data-karalus-relaunch="1"] .home-quick-choice .feature-card:last-child { border: 0; border-top: 1px solid var(--kr-line); padding-inline: 0; }
  body[data-karalus-relaunch="1"] .contact-cards { grid-template-columns: 1fr; }
  body[data-karalus-relaunch="1"] .contact-cards > a:nth-child(odd) { border-right: 0; }
  .relaunch-mid-cta { align-items: stretch; flex-direction: column; margin-inline: 1rem; }
  .relaunch-mid-cta .button { justify-content: center; }
  .stage-options,
  .wizard-contact { grid-template-columns: 1fr; }
  .relaunch-rating-proof { grid-template-columns: 1fr; padding-inline: 1rem; }
  .rating-copy { grid-column: 1 / -1; grid-row: 1; justify-self: start; text-align: left; }
  .rating-metric { grid-column: 1; grid-row: 2; justify-self: start; }
  .stage-options span { min-height: 64px; }
  .studio-contact-rail { display: none; }
  .mobile-request-bar { background: #071f29; bottom: 0; display: grid; grid-template-columns: 1.04fr .76fr 1.2fr; left: 0; padding: .7rem max(.7rem, env(safe-area-inset-left)) calc(.7rem + env(safe-area-inset-bottom)) max(.7rem, env(safe-area-inset-right)); position: fixed; right: 0; z-index: 9999; }
  .mobile-request-bar a { align-items: center; color: #fff; display: flex; font-weight: 760; justify-content: center; min-height: 50px; text-decoration: none; }
  .mobile-request-bar a:first-child { flex-direction: column; font-size: .72rem; gap: .05rem; line-height: 1.1; }
  .mobile-request-bar a:first-child span { color: rgba(255,255,255,.62); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
  .mobile-request-bar a:first-child strong { color: #fff; font-size: .76rem; white-space: nowrap; }
  .mobile-request-bar .mobile-whatsapp { border-left: 1px solid rgba(255,255,255,.16); flex-direction: column; font-size: .61rem; gap: .12rem; }
  .mobile-request-bar .mobile-whatsapp svg { height: 19px; width: 19px; }
  .mobile-request-bar a:last-child { background: var(--kr-copper); font-size: .74rem; gap: .38rem; }
  body[data-karalus-relaunch="1"] .floating-actions { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
  .wizard-progress i, .mobile-request-bar a:last-child { forced-color-adjust: auto; }
}
