:root {
    --kj-ink: #171413;
    --kj-ink-soft: #292421;
    --kj-paper: #f2eee6;
    --kj-paper-light: #faf8f3;
    --kj-cognac: #a55a2a;
    --kj-cognac-dark: #71371d;
    --kj-brass: #c4a46a;
    --kj-muted: #6f655f;
    --kj-line: rgba(23, 20, 19, .16);
    --kj-serif: Iowan Old Style, Baskerville, "Times New Roman", serif;
    --kj-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cassiopeia-color-primary: var(--kj-cognac);
    --cassiopeia-color-link: var(--kj-cognac-dark);
    --cassiopeia-color-hover: var(--kj-cognac);
    --body-bg: var(--kj-paper);
    --body-color: var(--kj-ink);
    --body-font-family: var(--kj-sans);
}

html { overflow-x: clip; scroll-behavior: smooth; }
body.kj-site { background: var(--kj-paper); color: var(--kj-ink); font-family: var(--kj-sans); line-height: 1.65; }
body.kj-site a { text-underline-offset: .18em; }
body.kj-site h1,
body.kj-site h2,
body.kj-site h3,
body.kj-site h4 { color: var(--kj-ink); font-family: var(--kj-serif); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; }
.kj-shell { margin-inline: auto; max-width: none; padding-inline: max(clamp(1rem, 5vw, 5.5rem), calc((100vw - 1380px) / 2)); width: 100%; }

.kj-topbar { background: #0e0d0d; color: rgba(255,255,255,.72); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.kj-topbar .kj-shell { align-items: center; display: flex; justify-content: space-between; min-height: 34px; }
.kj-topbar .kj-shell > div,
.kj-topbar__contacts { display: flex; gap: clamp(.8rem, 1.6vw, 1.5rem); }
.kj-topbar a { color: inherit; text-decoration: none; }

body.kj-site .container-header {
    background: var(--kj-paper-light) !important;
    background-image: none !important;
    border-bottom: 1px solid var(--kj-line);
    box-shadow: none;
    color: var(--kj-ink);
    display: block;
    padding: 0;
    transition: background-color .25s ease, box-shadow .25s ease;
}
body.kj-site .container-header .kj-header__inner { box-sizing: border-box; column-gap: 1.1rem; display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: auto auto auto; margin-inline: auto; padding: .9rem clamp(1rem, 4vw, 4.5rem) .65rem; transition: grid-template-columns .25s ease, padding .25s ease; width: min(100%, 1380px); }
body.kj-site .container-header .kj-header__inner > .grid-child:first-child,
body.kj-site .container-header .navbar-brand { display: contents; }
body.kj-site .container-header .navbar-brand a { color: var(--kj-ink); display: contents; text-decoration: none; }
body.kj-site .container-header .navbar-brand a > span { align-self: end; grid-column: 2; grid-row: 1; }
.kj-brand-mark { align-self: center; display: block; grid-column: 1; grid-row: 1 / 4; height: 100px; object-fit: contain; transition: height .25s ease, width .25s ease; width: 100px; }
body.kj-site .container-header .site-title,
.kj-site-title,
body.kj-site .container-header .navbar-brand a > span { color: var(--kj-ink); font-family: var(--kj-serif); font-size: clamp(1.4rem, 2.2vw, 1.8rem); font-weight: 500; letter-spacing: .02em; line-height: 1; }
body.kj-site .container-header .site-description,
.kj-site-description { align-self: start; color: var(--kj-muted); display: block; font-size: .58rem; grid-column: 2; grid-row: 2; letter-spacing: .2em; margin-top: .35rem; text-transform: uppercase; }
body.kj-site .container-header .container-nav { grid-column: 2; grid-row: 3; justify-content: flex-start; margin: 0; max-width: none; min-height: 43px; min-width: 0; padding: 0; position: relative; width: auto; z-index: 2; }
body.kj-site .container-header .mod-menu { flex-wrap: nowrap; gap: clamp(.8rem, 1.7vw, 1.75rem); justify-content: flex-start; width: auto; }
body.kj-site .container-header .mod-menu > li > a { border-bottom: 1px solid transparent; color: var(--kj-ink); font-size: clamp(.6rem, .72vw, .7rem); font-weight: 750; letter-spacing: .1em; padding: .72rem 0 .55rem; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
body.kj-site .container-header .mod-menu > li.active > a,
body.kj-site .container-header .mod-menu > li > a:hover,
body.kj-site .container-header .mod-menu > li > a:focus-visible { border-color: var(--kj-cognac); color: var(--kj-cognac-dark); }
.kj-menu-toggle { display: none; }
body.kj-site .container-header.kj-scrolled { background: var(--kj-paper-light) !important; background-image: none !important; box-shadow: 0 12px 35px rgba(0,0,0,.18); }
body.kj-site .container-header.kj-scrolled .kj-header__inner { grid-template-columns: 54px minmax(0, 1fr); grid-template-rows: 64px; padding-block: 0; }
body.kj-site .container-header.kj-scrolled .kj-brand-mark { grid-row: 1; height: 48px; width: 48px; }
body.kj-site .container-header.kj-scrolled .navbar-brand a > span,
body.kj-site .container-header.kj-scrolled .site-description { display: none; }
body.kj-site .container-header.kj-scrolled .container-nav { align-items: center; align-self: center; grid-column: 2; grid-row: 1; height: 64px; min-height: 64px; }
body.kj-site .container-header.kj-scrolled .mod-menu { align-items: center; margin-block: 0; }
body.kj-site .container-header.kj-scrolled .mod-menu > li > a { align-items: center; padding-block: .55rem; }

body.kj-site .site-grid { grid-gap: 0; }
body.kj-site .container-component { max-width: 1380px; padding: clamp(3rem, 6vw, 7rem) clamp(1rem, 4vw, 4.5rem); }
body.kj-site .breadcrumbs { background: var(--kj-paper-light); border-bottom: 1px solid var(--kj-line); margin: 0; padding: .85rem clamp(1rem, 4vw, 4.5rem); }
body.kj-site .breadcrumb { margin: 0 auto; max-width: 1380px; }
body.kj-site .page-header h1 { font-size: clamp(3rem, 7vw, 7rem); margin-bottom: 2.2rem; }
body.kj-site .com-content-article__body { font-size: 1.02rem; }
body.kj-site .com-content-article__body > p { max-width: 760px; }

/* Category catalogs */
body.kj-site .com-content-category-blog > .page-header { border-bottom: 1px solid var(--kj-line); margin-bottom: 2.5rem; padding-bottom: clamp(1.5rem, 3vw, 2.8rem); }
body.kj-site .com-content-category-blog > .page-header h1 { font-size: clamp(2.1rem, 4.9vw, 4.9rem); }
.kj-catalog-heading { align-items: end; display: grid; gap: .35rem 2rem; grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr); }
.kj-catalog-heading h1 { font-size: clamp(2.25rem, 4.9vw, 4.9rem); grid-column: 1; margin: 0; }
.kj-catalog-kicker { color: var(--kj-cognac); font-size: .68rem !important; font-weight: 750; grid-column: 1; letter-spacing: .2em; margin: 0 !important; text-transform: uppercase; }
.kj-catalog-intro { align-self: end; color: var(--kj-muted); grid-column: 2; grid-row: 1 / 3; margin: 0 !important; max-width: 410px; }
body.kj-site .com-content-category-blog .blog-items,
body.kj-site .com-content-category-blog .blog-items[class*="columns-"] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem 1rem; }
body.kj-site .com-content-category-blog .blog-item { background: transparent; border: 0; border-bottom: 1px solid var(--kj-line); display: flex; flex-direction: column; min-width: 0; overflow: visible; padding: 0 0 1.4rem; }
body.kj-site .com-content-category-blog .blog-item .item-image { aspect-ratio: .78; background: #e3dcd2; margin: 0 0 1rem; overflow: hidden; order: -1; }
body.kj-site .com-content-category-blog .blog-item .item-image a { display: block; height: 100%; }
body.kj-site .com-content-category-blog .blog-item .item-image img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
body.kj-site .com-content-category-blog .blog-item:hover .item-image img { transform: scale(1.035); }
body.kj-site .com-content-category-blog .blog-item .page-header h2,
body.kj-site .com-content-category-blog .blog-item .item-title { font-size: clamp(.85rem, 1.15vw, 1.05rem); line-height: 1.12; margin: 0; }
body.kj-site .com-content-category-blog .blog-item .page-header h2 a,
body.kj-site .com-content-category-blog .blog-item .item-title a { color: var(--kj-ink); text-decoration: none; }
body.kj-site .com-content-category-blog .blog-item .article-info,
body.kj-site .com-content-category-blog .blog-item .tags { display: none; }
body.kj-site .com-content-category-blog .blog-item .kj-product-layout { display: none; }
body.kj-site .com-content-category-blog .blog-item p { color: var(--kj-muted); font-size: .9rem; }
body.kj-site .com-content-category-blog .blog-item .readmore a { border-bottom: 1px solid var(--kj-ink); color: var(--kj-ink); display: inline-flex; font-size: .67rem; font-weight: 750; letter-spacing: .12em; padding: .35rem 0; text-decoration: none; text-transform: uppercase; }
.kj-card-cta { border-bottom: 1px solid var(--kj-ink); color: var(--kj-ink); display: inline-flex; font-size: .67rem; font-weight: 750; letter-spacing: .12em; margin-top: .65rem; padding: .3rem 0; text-decoration: none; text-transform: uppercase; width: max-content; }
.kj-card-cta::after { content: "↗"; margin-left: .55rem; }

/* Individual product article */
body.kj-product-page .container-component { padding-top: clamp(2rem, 4vw, 4rem); }
body.kj-product-page .com-content-article > figure.item-image { display: none; }
body.kj-product-page .com-content-article > .page-header:has(h1) { display: block; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
body.kj-product-page .com-content-article > .page-header h1,
body.kj-product-page .com-content-article > .page-header h2 { font-size: clamp(1.5rem, 3vw, 3rem); line-height: 1.08; margin: 0; max-width: 900px; }
.kj-product-layout { align-items: start; display: grid; gap: clamp(2rem, 6vw, 7rem); grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); width: 100%; }
.kj-product-gallery { min-width: 0; }
.kj-product-main { background: #e4ddd3; margin: 0; min-height: 620px; overflow: hidden; }
.kj-product-main img { height: min(72vw, 760px); object-fit: contain; width: 100%; }
.kj-lightbox-trigger { cursor: zoom-in; }
.kj-lightbox-trigger:focus-visible { outline: 3px solid var(--kj-cognac); outline-offset: -3px; }
.kj-lightbox { background: rgba(10,9,9,.97); border: 0; color: #fff; height: 100dvh; margin: 0; max-height: none; max-width: none; padding: 0; width: 100vw; }
.kj-lightbox::backdrop { background: rgba(10,9,9,.95); }
.kj-lightbox__stage { display: grid; height: 100%; place-items: center; position: relative; width: 100%; }
.kj-lightbox figure { display: grid; height: calc(100dvh - 5rem); margin: 2.5rem auto; max-width: calc(100vw - 11rem); place-items: center; width: 100%; }
.kj-lightbox figure img { background: #eeece8; max-height: calc(100dvh - 7rem); max-width: 100%; object-fit: contain; }
.kj-lightbox figcaption { bottom: 1rem; color: rgba(255,255,255,.72); font-size: .7rem; letter-spacing: .14em; position: absolute; }
.kj-lightbox button { align-items: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.28); color: #fff; cursor: pointer; display: flex; justify-content: center; position: absolute; z-index: 2; }
.kj-lightbox button:hover, .kj-lightbox button:focus-visible { background: var(--kj-cognac); border-color: var(--kj-cognac); }
.kj-lightbox__close { font-size: 2rem; height: 48px; right: 1.25rem; top: 1.25rem; width: 48px; }
.kj-lightbox__nav { border-radius: 50%; font-size: 2.6rem; height: 58px; top: calc(50% - 29px); width: 58px; }
.kj-lightbox__nav--prev { left: 1.5rem; }
.kj-lightbox__nav--next { right: 1.5rem; }
.kj-product-thumbs { display: grid; gap: .6rem; grid-template-columns: repeat(5, 1fr); margin-top: .7rem; }
.kj-product-thumbs button { aspect-ratio: 1; background: #e4ddd3; border: 1px solid transparent; cursor: pointer; overflow: hidden; padding: 0; }
.kj-product-thumbs button.is-active { border-color: var(--kj-ink); }
.kj-product-thumbs img { height: 100%; object-fit: cover; width: 100%; }
.kj-product-copy { min-width: 0; overflow-wrap: anywhere; position: sticky; top: 5rem; }
.kj-product-kicker { color: var(--kj-cognac); font-size: .68rem; font-weight: 750; letter-spacing: .18em; margin: 0 0 1rem; text-transform: uppercase; }
.kj-product-copy > p { color: #514a46; font-size: 1.06rem; }
.kj-product-badges { border-block: 1px solid var(--kj-line); display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 1.5rem 0; padding: 1rem 0; }
.kj-product-badges span { color: var(--kj-muted); font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; }
.kj-product-colors { background: #eee7dd; border-left: 4px solid var(--kj-cognac); display: grid; gap: 1rem; margin: 1.75rem 0 2rem; padding: 1.15rem 1.25rem; }
.kj-product-colors__current, .kj-product-colors__alternatives { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem 1rem; }
.kj-product-colors__current > strong, .kj-product-colors__alternatives > strong { font-family: var(--kj-serif); font-size: 1.1rem; font-weight: 500; }
.kj-product-colors__alternatives { border-top: 1px solid rgba(75,58,48,.14); padding-top: 1rem; }
.kj-product-colors__alternatives > strong { flex: 0 0 100%; }
.kj-product-color-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.kj-product-color { align-items: center; background: rgba(255,255,255,.72); border: 1px solid rgba(75,58,48,.16); color: var(--kj-ink); display: inline-flex; font-size: .7rem; font-weight: 750; gap: .55rem; letter-spacing: .045em; min-height: 34px; padding: .4rem .7rem; text-transform: uppercase; }
.kj-product-color::before { background: var(--kj-color-swatch, linear-gradient(135deg, #332b28, #b37a4b)); border: 1px solid rgba(0,0,0,.18); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); content: ""; flex: 0 0 auto; height: 16px; width: 16px; }
.kj-product-color--link { color: var(--kj-ink) !important; text-decoration: none !important; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.kj-product-color--link:hover, .kj-product-color--link:focus-visible { border-color: var(--kj-cognac); box-shadow: 0 5px 14px rgba(63,44,32,.13); transform: translateY(-1px); }
.kj-product-color--variant { text-transform: none; }
.kj-product-color--variant::before { background: transparent; border: 0; border-radius: 0; box-shadow: none; color: var(--kj-cognac); content: "+"; font-size: 1rem; font-weight: 800; height: auto; width: auto; }
.kj-product-price { background: var(--kj-ink); color: #fff; display: grid; gap: 1.25rem; grid-template-columns: minmax(110px, .6fr) minmax(0, 1.4fr); margin: 2rem 0; padding: 1.25rem; }
.kj-product-price__heading { border-right: 1px solid rgba(255,255,255,.18); display: flex; flex-direction: column; justify-content: center; padding-right: 1.2rem; }
.kj-product-price__heading span { color: var(--kj-brass); font-size: .6rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.kj-product-price__heading strong { font-family: var(--kj-serif); font-size: 1.15rem; font-weight: 500; line-height: 1.15; margin-top: .4rem; }
.kj-product-price dl { display: grid; gap: 0; margin: 0; }
.kj-product-price dl div { align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.12); display: flex; gap: 1rem; justify-content: space-between; padding: .42rem 0; }
.kj-product-price dl div:last-child { border-bottom: 0; }
.kj-product-price dt { color: rgba(255,255,255,.64); font-size: .68rem; letter-spacing: .05em; }
.kj-product-price dd { color: #fff; font-size: .78rem; font-weight: 750; margin: 0; text-align: right; }
.kj-product-contact { background: #e4d9ca; display: grid; gap: .8rem; margin: 2rem 0; padding: 1.4rem; }
.kj-product-contact strong { font-family: var(--kj-serif); font-size: 1.3rem; font-weight: 500; }
.kj-product-phone-list { align-items: flex-start; display: flex; flex-direction: column; gap: .5rem; }
.kj-product-contact .kj-phone-button { align-items: center; background: var(--kj-cognac); color: #fff !important; display: inline-flex; font-size: .62rem; font-weight: 750; gap: 1.4rem; justify-content: space-between; letter-spacing: .1em; min-height: 42px; min-width: 205px; padding: .6rem .8rem; text-decoration: none !important; text-transform: uppercase; width: max-content; }
.kj-product-contact .kj-phone-button:hover, .kj-product-contact .kj-phone-button:focus-visible { background: #c16d37; }
.kj-product-contact .kj-phone-button strong { color: #fff; font-family: var(--kj-sans); font-size: .72rem; font-weight: 750; letter-spacing: .04em; }
.kj-button { align-items: center; background: var(--kj-cognac); color: #fff !important; display: inline-flex; font-size: .72rem; font-weight: 750; justify-content: center; letter-spacing: .11em; min-height: 50px; padding: .85rem 1.2rem; text-decoration: none !important; text-transform: uppercase; width: max-content; }
.kj-button:hover, .kj-button:focus-visible { background: #c16d37; }
.kj-product-copy details { border-top: 1px solid var(--kj-line); padding: 1rem 0; }
.kj-product-copy details:last-child { border-bottom: 1px solid var(--kj-line); }
.kj-product-copy summary { cursor: pointer; font-weight: 700; }
.kj-product-copy details p { color: var(--kj-muted); }

/* Modern homepage article */
body.kj-site .container-component:has(.kj-home) { background: #111; grid-area: comp / full-start / comp / full-end !important; max-width: none; padding: 0; width: 100%; }
body.kj-site .container-component:has(.kj-home) > main { margin-top: 0; }
body.kj-site .com-content-article:has(.kj-home) > .page-header { display: none; }
body.kj-site .com-content-article:has(.kj-home) > figure.item-image { display: none; }
.kj-home { margin: 0; }
.kj-home-hero { background: radial-gradient(circle at 18% 28%, #3a2b26 0, #1c1918 32%, #111 74%); color: #fff; display: grid; grid-template-columns: .88fr 1.12fr; height: calc(100svh - 160px); min-height: 520px; overflow: hidden; padding-inline: max(clamp(1rem, 5vw, 5.5rem), calc((100vw - 1380px) / 2 + 4.5rem)); }
.kj-home-hero__copy { align-self: center; padding: clamp(4rem, 6vw, 6rem) clamp(1.5rem, 4vw, 4.5rem) clamp(4rem, 6vw, 6rem) 0; }
.kj-home-eyebrow { color: var(--kj-brass); font-size: .7rem; font-weight: 750; letter-spacing: .2em; margin: 0 0 1rem; text-transform: uppercase; }
.kj-home-hero h1 { color: #fff !important; font-size: clamp(2.4rem, 4.9vw, 4.9rem); margin-bottom: 1.5rem; }
.kj-home-hero h1 em { color: var(--kj-brass); font-weight: 400; }
.kj-home-hero__copy > p:not(.kj-home-eyebrow) { color: rgba(255,255,255,.7); font-size: 1.1rem; max-width: 520px; }
.kj-home-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.kj-home-hero__visual { height: 100%; min-height: 0; position: relative; }
.kj-home-hero__visual::before { border: 1px solid rgba(196,164,106,.2); border-radius: 50%; content: ""; inset: 5% 1% 3% 2%; position: absolute; }
.kj-home-hero__visual:not(.kj-hero-mosaic) > a { background: #1a1716; box-shadow: 0 26px 60px rgba(0,0,0,.4); display: block; height: 70%; left: 10%; overflow: hidden; position: absolute; top: 18%; width: 48%; }
.kj-home-hero__visual:not(.kj-hero-mosaic) > a:nth-child(2) { height: 38%; left: auto; right: 6%; top: 11%; width: 32%; }
.kj-home-hero__visual:not(.kj-hero-mosaic) > a:nth-child(3) { bottom: 8%; height: 35%; left: auto; right: 10%; top: auto; width: 30%; }
.kj-home-hero__visual:not(.kj-hero-mosaic) > a img { background: #eeece8; height: 100%; object-fit: contain; transition: transform .5s ease; width: 100%; }
.kj-home-hero__visual:not(.kj-hero-mosaic) > a:hover img, .kj-home-hero__visual:not(.kj-hero-mosaic) > a:focus-visible img { transform: scale(1.035); }
.kj-home-hero__visual--composite { align-items: end; display: grid; justify-items: center; }
.kj-home-hero__visual--composite > img { filter: drop-shadow(0 28px 38px rgba(0,0,0,.38)); height: auto; max-height: calc(100svh - 210px); max-width: 100%; object-fit: contain; position: relative; width: auto; z-index: 1; }
.kj-home-categories { background: var(--kj-paper-light); padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 5vw, 5.5rem); }
.kj-home-heading { display: grid; gap: 2rem; grid-template-columns: 1fr .7fr; margin: 0 auto 3rem; max-width: 1380px; }
.kj-home-heading h2 { font-size: clamp(2.8rem, 5vw, 5rem); margin: 0; }
.kj-home-heading p { align-self: end; color: var(--kj-muted); }
.kj-home-category-grid { display: grid; gap: 1rem; grid-template-columns: 1.15fr 1fr 1fr; margin: 0 auto; max-width: 1380px; }
.kj-home-category { color: #fff !important; min-height: 520px; overflow: hidden; position: relative; text-decoration: none !important; }
.kj-home-category::after { background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,.82)); content: ""; inset: 0; position: absolute; }
.kj-home-category img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.kj-home-category:hover img { transform: scale(1.04); }
.kj-home-category strong { bottom: 1.4rem; color: #fff; font-family: var(--kj-serif); font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 400; left: 1.4rem; line-height: .92; position: absolute; z-index: 2; }

/* Featured models on the homepage */
.kj-featured-module { margin: 0 !important; }
.kj-featured-block { background: #e8e0d5; padding: clamp(4rem, 8vw, 8rem) max(clamp(1rem, 5vw, 5.5rem), calc((100vw - 1380px) / 2 + 4.5rem)); }
.kj-featured-heading { align-items: baseline; display: flex; gap: clamp(1rem, 2.5vw, 2.5rem); margin-bottom: 3rem; }
.kj-featured-heading h2 { font-size: clamp(2.25rem, 4vw, 4rem); margin: 0; white-space: nowrap; }
.kj-featured-kicker { color: var(--kj-cognac); flex: 0 0 auto; font-size: .68rem; font-weight: 750; letter-spacing: .2em; margin: 0; text-transform: uppercase; }
.kj-featured-grid { display: grid; gap: 3.5rem clamp(1.5rem, 2.3vw, 2.5rem); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kj-featured-card { border-bottom: 1px solid var(--kj-line); min-width: 0; padding-bottom: 1.2rem; }
.kj-featured-card__image { aspect-ratio: .677; background: #d9cfc2; box-shadow: 0 18px 38px rgba(45,34,28,.2); display: block; overflow: hidden; position: relative; transition: box-shadow .35s ease, transform .35s ease; }
.kj-featured-card__image img { height: 100%; object-fit: cover; transition: transform .55s ease; width: 100%; }
.kj-featured-card:hover .kj-featured-card__image { box-shadow: 0 24px 48px rgba(45,34,28,.28); transform: translateY(-3px); }
.kj-featured-card:hover .kj-featured-card__image img { transform: scale(1.035); }
.kj-featured-card__overlay { backdrop-filter: blur(5px); background: rgba(17,15,14,.74); bottom: 0; color: #fff; display: block; left: 0; padding: .9rem 1rem 1rem; position: absolute; right: 0; }
.kj-featured-card__category { color: var(--kj-brass); display: block; font-size: .56rem; font-weight: 750; letter-spacing: .13em; margin-bottom: .35rem; text-transform: uppercase; }
.kj-featured-card h3 { color: #fff !important; font-size: clamp(1rem, 1.45vw, 1.3rem); line-height: 1.08; margin: 0; text-shadow: 0 2px 10px rgba(0,0,0,.5); }

.kj-footer { background: #0d0c0c; color: rgba(255,255,255,.68); padding-top: 4rem; }
.kj-footer__grid { display: grid; gap: 2.5rem; grid-template-columns: 1.35fr .9fr .9fr 1fr; }
.kj-footer__brand { align-items: center; color: #fff; display: flex; gap: 1rem; }
.kj-footer__logo { flex: 0 0 auto; height: 72px; object-fit: contain; width: 72px; }
.kj-footer__brand strong { display: block; font-family: var(--kj-serif); font-size: 1.5rem; font-weight: 500; }
.kj-footer__brand small { display: block; font-size: .58rem; letter-spacing: .18em; margin-top: .3rem; text-transform: uppercase; }
.kj-footer h2 { color: #fff !important; font-family: var(--kj-sans) !important; font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.kj-footer address { font-style: normal; }
.kj-footer__grid > div:not(:first-child) { display: flex; flex-direction: column; gap: .45rem; }
.kj-footer a { color: inherit; width: max-content; }
.kj-footer__bottom { border-top: 1px solid rgba(255,255,255,.13); display: flex; font-size: .65rem; justify-content: space-between; margin-top: 3rem; padding-block: 1.2rem; text-transform: uppercase; }
.kj-social-links, .kj-contact-social__links { display: flex; flex-wrap: wrap; gap: .6rem; }
.kj-footer .kj-social-links { align-items: stretch; flex-direction: column; }
.kj-social-button { align-items: center; border: 1px solid currentColor; display: inline-flex; font-size: .64rem; font-weight: 750; gap: 1.5rem; justify-content: space-between; letter-spacing: .11em; min-height: 44px; padding: .65rem .85rem; text-decoration: none; text-transform: uppercase; transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.kj-footer .kj-social-button { border-color: rgba(255,255,255,.28); color: #fff; min-width: 148px; }
.kj-footer .kj-social-button:hover, .kj-footer .kj-social-button:focus-visible { background: var(--kj-cognac); border-color: var(--kj-cognac); }
.kj-contact-social { align-items: center; background: #e8e0d5; display: flex; gap: 2rem; justify-content: space-between; margin: 3rem 0; max-width: 760px; padding: 1.5rem; }
.kj-contact-social__kicker { color: var(--kj-cognac); font-size: .62rem !important; font-weight: 750; letter-spacing: .15em; margin: 0 0 .35rem !important; text-transform: uppercase; }
.kj-contact-social h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); margin: 0; }
.kj-contact-social .kj-social-button { background: var(--kj-ink); border-color: var(--kj-ink); color: #fff; min-width: 142px; }
.kj-contact-social .kj-social-button:hover, .kj-contact-social .kj-social-button:focus-visible { background: var(--kj-cognac); border-color: var(--kj-cognac); }

/* Informational pages */
.kj-info-article { max-width: none; }
.kj-info-hero { background: #171413; color: #fff; display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr); margin-bottom: clamp(3rem, 6vw, 6rem); min-height: 480px; overflow: hidden; }
.kj-info-hero__copy { align-self: center; padding: clamp(3rem, 6vw, 6rem); }
.kj-info-hero__kicker { color: var(--kj-brass) !important; font-size: .66rem !important; font-weight: 750; letter-spacing: .18em; margin: 0 0 1rem !important; text-transform: uppercase; }
.kj-info-hero h1 { color: #fff !important; font-size: clamp(2.8rem, 5vw, 5rem); margin: 0; max-width: 760px; }
.kj-info-hero__copy > p:last-child { color: rgba(255,255,255,.68); font-size: 1.05rem; margin: 1.5rem 0 0; max-width: 590px; }
.kj-info-hero__media { background: #e7e0d6; float: none !important; height: 100%; margin: 0 !important; overflow: hidden; width: 100%; }
.kj-info-hero__media img { height: 100%; object-fit: cover; width: 100%; }
.kj-info-spray .kj-info-hero__media img { object-fit: contain; padding: clamp(2rem, 5vw, 5rem); }
.kj-info-hero__aside { align-content: center; background: #28211e; display: grid; gap: .7rem 1rem; grid-template-columns: auto 1fr; padding: clamp(3rem, 6vw, 6rem); }
.kj-info-hero__aside span { color: var(--kj-brass); font-size: .62rem; letter-spacing: .12em; }
.kj-info-hero__aside strong { border-bottom: 1px solid rgba(255,255,255,.14); font-family: var(--kj-serif); font-size: clamp(1.4rem, 2.2vw, 2rem); font-weight: 500; padding-bottom: .75rem; }
.kj-info-content { margin-inline: auto; max-width: 1020px; }
.kj-info-content > p { color: #4f4844; font-size: 1.02rem; line-height: 1.75; max-width: 900px !important; }
.kj-info-lead { color: var(--kj-ink) !important; font-family: var(--kj-serif); font-size: clamp(1.35rem, 2.3vw, 2rem) !important; line-height: 1.35 !important; }
.kj-spray-instructions { background: #e8e0d5; border-left: 4px solid var(--kj-cognac); margin: 2.5rem 0; padding: 1.35rem 1.5rem; }
.kj-spray-benefits { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 2.5rem 0; padding: 0; }
.kj-spray-benefits li { background: #f0ebe3; border: 1px solid var(--kj-line); color: #4f4844; padding: 1.1rem 1.2rem 1.1rem 2.6rem; position: relative; }
.kj-spray-benefits li::before { color: var(--kj-cognac); content: "✓"; font-weight: 800; left: 1rem; position: absolute; }
.kj-service-nav { background: #e8e0d5; display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 2.5rem 0 4rem; }
.kj-service-nav a { background: rgba(255,255,255,.36); color: var(--kj-ink); font-size: .67rem; font-weight: 750; letter-spacing: .08em; padding: 1rem 1.1rem; text-decoration: none; text-transform: uppercase; }
.kj-service-nav a:hover, .kj-service-nav a:focus-visible { background: var(--kj-cognac); color: #fff; }
.kj-info-service .kj-info-content > h2 { border-top: 1px solid var(--kj-line); font-size: clamp(1.8rem, 3.4vw, 3rem); margin: 4.5rem 0 1.5rem; padding-top: 2.2rem; scroll-margin-top: 6rem; }
.kj-info-service .kj-info-content > p { max-width: 940px !important; }
.kj-contact-gallery { margin: clamp(2rem, 4vw, 3.5rem) 0 clamp(3.5rem, 6vw, 5.5rem); }
.kj-contact-gallery header { align-items: end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1.35rem; }
.kj-contact-gallery h2 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); margin: 0; }
.kj-contact-gallery__grid { display: grid; gap: clamp(.75rem, 1.4vw, 1.25rem); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kj-contact-gallery__item { aspect-ratio: 4 / 3; background: #eee9e2; border: 1px solid rgba(78,61,49,.14); box-shadow: 0 14px 30px rgba(45,34,28,.12); cursor: zoom-in; overflow: hidden; padding: 0; transition: box-shadow .25s ease, transform .25s ease; }
.kj-contact-gallery__item:hover, .kj-contact-gallery__item:focus-visible { box-shadow: 0 20px 38px rgba(45,34,28,.2); outline: 2px solid var(--kj-cognac); outline-offset: 3px; transform: translateY(-3px); }
.kj-contact-gallery__item img { height: 100%; object-fit: contain; transition: transform .35s ease; width: 100%; }
.kj-contact-gallery__item:hover img { transform: scale(1.025); }
.kj-contact-gallery--certificates .kj-contact-gallery__item { aspect-ratio: 1.12 / 1; }
.kj-contact-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 3.5rem 0; }
.kj-contact-grid article { background: #e8e0d5; display: flex; flex-direction: column; min-height: 225px; padding: 1.5rem; }
.kj-contact-grid article > p { color: var(--kj-cognac); font-size: .62rem; font-weight: 750; letter-spacing: .14em; margin: 0 0 .55rem; text-transform: uppercase; }
.kj-contact-grid h2 { font-size: clamp(1.5rem, 2.5vw, 2.1rem); margin: 0 0 1.2rem; }
.kj-contact-grid address { color: #4f4844; font-style: normal; line-height: 1.65; }
.kj-contact-grid a { color: var(--kj-ink); margin-bottom: .4rem; width: max-content; }
.kj-contact-map { margin: 4rem 0; }
.kj-contact-map header { align-items: end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1.5rem; }
.kj-contact-map h2 { font-size: clamp(1.8rem, 3.4vw, 3rem); margin: 0; }
.kj-contact-map header > a { border-bottom: 1px solid currentColor; color: var(--kj-ink); flex: 0 0 auto; font-size: .65rem; font-weight: 750; letter-spacing: .1em; padding-bottom: .25rem; text-decoration: none; text-transform: uppercase; }
.kj-contact-map__frame { background: #ddd3c7; box-shadow: 0 20px 45px rgba(45,34,28,.16); height: clamp(360px, 42vw, 520px); overflow: hidden; }
.kj-contact-map iframe { border: 0; height: 100%; width: 100%; }
.kj-company-data { align-items: end; border-block: 1px solid var(--kj-line); display: grid; gap: 2rem; grid-template-columns: 1fr 1.5fr; margin: 3.5rem 0 0; padding: 2rem 0; }
.kj-company-data h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); margin: 0; }
.kj-company-data dl { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.kj-company-data dl div { border-left: 1px solid var(--kj-line); padding-left: 1rem; }
.kj-company-data dt { color: var(--kj-muted); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.kj-company-data dd { color: var(--kj-ink); font-weight: 700; margin: .35rem 0 0; }
.kj-info-contact .kj-contact-social { max-width: none; }

@media (max-width: 1050px) {
    body.kj-site .container-header .kj-header__inner { grid-template-columns: 96px minmax(0, 1fr); }
    .kj-brand-mark { height: 92px; width: 92px; }
    body.kj-site .container-header .mod-menu { gap: .75rem; }
    body.kj-site .container-header .mod-menu > li > a { font-size: .56rem; letter-spacing: .06em; }
    body.kj-site .com-content-category-blog .blog-items,
    body.kj-site .com-content-category-blog .blog-items[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kj-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    body.kj-site .container-header { background: var(--kj-paper-light) !important; background-image: none !important; }
    body.kj-site .container-header .kj-header__inner { grid-template-columns: 60px minmax(0, 1fr) auto; grid-template-rows: auto auto; min-height: 88px; padding-block: .65rem; }
    .kj-brand-mark { grid-column: 1; grid-row: 1 / 3; height: 58px; width: 58px; }
    body.kj-site .container-header .navbar-brand a > span { grid-column: 2; grid-row: 1; }
    body.kj-site .container-header .site-description { grid-column: 2; grid-row: 2; }
    body.kj-site .container-header .container-nav { grid-column: 3; grid-row: 1 / 3; min-height: 64px; position: static; }
    body.kj-site .container-header.kj-scrolled { background: var(--kj-paper-light) !important; background-image: none !important; }
    body.kj-site .container-header.kj-scrolled .kj-header__inner { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-rows: 68px; min-height: 68px; padding-block: 0; }
    body.kj-site .container-header.kj-scrolled .kj-brand-mark { grid-column: 1; grid-row: 1; height: 44px; width: 44px; }
    body.kj-site .container-header.kj-scrolled .container-nav { grid-column: 3; grid-row: 1; height: 68px; min-height: 68px; }
    .kj-menu-toggle { align-items: center; background: transparent; border: 1px solid var(--kj-line); display: flex; flex-direction: column; gap: 5px; height: 44px; justify-content: center; padding: 0; width: 48px; }
    .kj-menu-toggle span { background: var(--kj-ink); display: block; height: 1px; transition: transform .25s ease, opacity .25s ease; width: 20px; }
    .kj-menu-open .kj-menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .kj-menu-open .kj-menu-toggle span:nth-child(2) { opacity: 0; }
    .kj-menu-open .kj-menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    body.kj-site .container-header .mod-menu { background: var(--kj-paper-light); border-top: 1px solid var(--kj-line); box-shadow: 0 22px 40px rgba(0,0,0,.22); display: none !important; flex-direction: column; gap: 0; left: 0; max-height: calc(100vh - 88px); overflow-y: auto; padding: .75rem clamp(1rem, 4vw, 4.5rem) 1.2rem; position: absolute; right: 0; top: 100%; width: auto; }
    body.kj-site .container-header.kj-menu-open .mod-menu { display: flex !important; }
    body.kj-site .container-header .mod-menu > li > a { border-bottom: 1px solid var(--kj-line); color: var(--kj-ink); font-size: .72rem; justify-content: space-between; letter-spacing: .11em; padding: 1rem 0; width: 100%; }
    body.kj-site .container-header.kj-scrolled .kj-menu-toggle { border-color: var(--kj-line); }
    body.kj-site .container-header.kj-scrolled .kj-menu-toggle span { background: var(--kj-ink); }
    .kj-home-hero { grid-template-columns: 1fr; height: auto; min-height: 0; }
    .kj-home-hero__visual { min-height: 650px; }
    .kj-home-hero__visual--composite > img { height: 94%; max-height: none; }
    .kj-home-category-grid { grid-template-columns: 1fr 1fr; }
    .kj-home-category:first-child { grid-column: 1 / -1; }
    .kj-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kj-info-hero { grid-template-columns: 1fr; }
    .kj-info-hero__media { min-height: 420px; }
    .kj-contact-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kj-contact-grid { grid-template-columns: 1fr; }
    .kj-contact-grid article { min-height: 0; }
    .kj-company-data { align-items: start; grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .kj-topbar { display: none; }
    body.kj-site .container-header .kj-header__inner { grid-template-columns: 52px minmax(0, 1fr) auto; min-height: 82px; padding-inline: 1rem; width: 100%; }
    .kj-brand-mark { height: 52px; width: 52px; }
    body.kj-site .container-header .navbar-brand a > span { font-size: 1.12rem; }
    .kj-site-description { font-size: .45rem; letter-spacing: .13em; }
    body.kj-site .container-component { padding: 3.5rem 1rem; }
    .kj-product-price { grid-template-columns: 1fr; }
    .kj-product-price__heading { border-bottom: 1px solid rgba(255,255,255,.18); border-right: 0; padding: 0 0 1rem; }
    .kj-contact-gallery header { align-items: start; flex-direction: column; gap: .2rem; }
    .kj-catalog-heading { display: block; }
    .kj-catalog-heading h1 { margin: .35rem 0 1rem; }
    .kj-catalog-intro { max-width: 32rem; }
    body.kj-site .com-content-category-blog .blog-items,
    body.kj-site .com-content-category-blog .blog-items[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem .65rem; }
    .kj-product-layout { grid-template-columns: 1fr; }
    .kj-product-main { min-height: 0; }
    .kj-product-main img { height: 125vw; max-height: 680px; }
    .kj-product-copy { position: static; }
    .kj-lightbox figure { height: calc(100dvh - 8rem); margin: 4rem auto; max-width: calc(100vw - 2rem); }
    .kj-lightbox figure img { max-height: calc(100dvh - 10rem); }
    .kj-lightbox__nav { bottom: 1.2rem; top: auto; }
    .kj-lightbox__nav--prev { left: calc(50% - 74px); }
    .kj-lightbox__nav--next { right: calc(50% - 74px); }
    .kj-home-hero__copy { padding: 5rem 1rem; }
    .kj-home-hero__visual { min-height: 580px; }
    .kj-home-hero__visual--composite > img { height: 94%; width: auto; }
    .kj-home-categories { padding: 4rem 1rem; }
    .kj-home-heading { grid-template-columns: 1fr; }
    .kj-home-category-grid { grid-template-columns: 1fr; }
    .kj-home-category:first-child { grid-column: auto; }
    .kj-home-category { min-height: 460px; }
    .kj-featured-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .kj-featured-heading h2 { white-space: normal; }
    .kj-featured-grid { gap: 2.5rem 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kj-contact-social { align-items: flex-start; flex-direction: column; }
    .kj-contact-map header { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .kj-contact-map__frame { height: 380px; }
    .kj-spray-benefits, .kj-service-nav { grid-template-columns: 1fr; }
    .kj-company-data dl { grid-template-columns: 1fr; }
    .kj-company-data dl div { border-left: 0; border-top: 1px solid var(--kj-line); padding: .8rem 0 0; }
    .kj-footer { padding-top: 3rem; }
    .kj-footer__grid { grid-template-columns: 1fr; }
    .kj-footer__bottom { align-items: flex-start; flex-direction: column; gap: .4rem; }
}

@media (max-width: 430px) {
    body.kj-site .com-content-category-blog .blog-items,
    body.kj-site .com-content-category-blog .blog-items[class*="columns-"] { grid-template-columns: 1fr; }
    .kj-featured-grid { grid-template-columns: 1fr; }
}

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