:root {
	--kv-black: #070707;
	--kv-ink: #171717;
	--kv-paper: #f7f5f1;
	--kv-white: #ffffff;
	--kv-sand: #b9956f;
	--kv-line: rgba(20, 20, 20, .14);
	--kv-muted: #6f6c68;
	--kv-shell: 1320px;
	--kv-serif: "Cormorant Garamond", Georgia, serif;
	--kv-sans: "Montserrat", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--kv-ink); background: var(--kv-white); font-family: var(--kv-sans); font-size: 16px; font-weight: 400; line-height: 1.75; -webkit-font-smoothing: antialiased; }
body.kv-panel-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
::selection { color: var(--kv-white); background: var(--kv-sand); }

.kv-shell { width: min(calc(100% - 64px), var(--kv-shell)); margin-inline: auto; }
.kv-main { min-height: 60vh; overflow: hidden; }
.kv-section { padding: 128px 0; }
.kv-eyebrow { display: block; margin-bottom: 20px; color: var(--kv-sand); font-size: 11px; font-weight: 600; letter-spacing: .28em; line-height: 1.5; text-transform: uppercase; }
.kv-skip-link { position: fixed; z-index: 99999; top: 12px; left: 12px; padding: 10px 16px; color: var(--kv-black); background: var(--kv-white); transform: translateY(-150%); }
.kv-skip-link:focus { transform: none; }

.kv-button { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; gap: 16px; padding: 0 30px; border: 1px solid transparent; font-size: 11px; font-weight: 600; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.kv-button svg { width: 19px; transition: transform .25s ease; }
.kv-button:hover svg { transform: translateX(5px); }
.kv-button-light { color: var(--kv-black); background: var(--kv-white); }
.kv-button-light:hover { color: var(--kv-white); background: var(--kv-sand); }
.kv-button-dark { color: var(--kv-white); background: var(--kv-black); }
.kv-button-dark:hover { background: var(--kv-sand); }
.kv-button-outline { border-color: var(--kv-black); color: var(--kv-black); background: transparent; }
.kv-button-outline:hover { color: var(--kv-white); background: var(--kv-black); }
.kv-text-link { display: inline-flex; align-items: center; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: var(--kv-white); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.kv-text-link-dark { color: var(--kv-black); }
.kv-centered-action { margin-top: 64px; text-align: center; }

.kv-topbar { height: 34px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.74); background: var(--kv-black); border-bottom: 1px solid rgba(255,255,255,.12); font-size: 9px; font-weight: 500; letter-spacing: .28em; text-align: center; text-transform: uppercase; }
.kv-header { position: sticky; z-index: 1000; top: 0; color: var(--kv-white); background: var(--kv-black); border-bottom: 1px solid rgba(255,255,255,.12); transition: background .25s ease, box-shadow .25s ease; }
.admin-bar .kv-header { top: 32px; }
.kv-header.is-scrolled { box-shadow: 0 14px 40px rgba(0,0,0,.12); }
.kv-header-inner { min-height: 92px; display: grid; grid-template-columns: 220px 1fr auto; align-items: center; gap: 32px; }
.kv-logo { display: inline-flex; align-items: center; gap: 14px; color: var(--kv-white); }
.kv-logo-mark { display: inline-flex; width: 58px; height: 58px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.55); font-family: var(--kv-serif); font-size: 27px; font-weight: 500; letter-spacing: -.05em; line-height: 1; }
.kv-logo-copy { font-family: var(--kv-serif); font-size: 13px; letter-spacing: .08em; line-height: 1.25; text-transform: uppercase; }
.kv-desktop-nav { justify-self: center; }
.kv-menu { display: flex; align-items: center; gap: clamp(20px, 2.6vw, 42px); margin: 0; padding: 0; list-style: none; }
.kv-menu li { position: relative; }
.kv-menu > li > a { position: relative; display: block; padding: 33px 0; color: rgba(255,255,255,.82); font-size: 10px; font-weight: 500; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; transition: color .2s ease; }
.kv-menu > li > a::after { content: ""; position: absolute; right: 0; bottom: 26px; left: 0; height: 1px; background: var(--kv-white); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.kv-menu > li:hover > a, .kv-menu > .current-menu-item > a { color: var(--kv-white); }
.kv-menu > li:hover > a::after, .kv-menu > .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.kv-menu .sub-menu { position: absolute; top: calc(100% - 10px); left: -24px; min-width: 250px; margin: 0; padding: 18px 0; border: 1px solid rgba(255,255,255,.12); color: var(--kv-white); background: var(--kv-black); list-style: none; opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s ease; }
.kv-menu li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.kv-menu .sub-menu a { display: block; padding: 9px 24px; font-size: 11px; letter-spacing: .08em; }
.kv-menu .sub-menu a:hover { color: var(--kv-sand); }
.kv-header-actions { display: flex; align-items: center; gap: 6px; }
.kv-icon-button { position: relative; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; }
.kv-icon-button:hover { color: var(--kv-sand); }
.kv-cart-count { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; padding: 0 4px; color: var(--kv-black); background: var(--kv-sand); font-size: 9px; font-weight: 600; line-height: 1; }
.kv-menu-toggle { display: none; }

.kv-mobile-panel { position: fixed; z-index: 2200; top: 0; right: 0; width: min(440px, 92vw); height: 100dvh; padding: 28px 36px 40px; color: var(--kv-white); background: var(--kv-black); visibility: hidden; transform: translateX(105%); transition: visibility .4s, transform .4s cubic-bezier(.76,0,.24,1); }
.kv-mobile-panel.is-open { visibility: visible; transform: none; }
.kv-mobile-panel-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.14); }
.kv-mobile-panel .kv-logo-mark { width: 48px; height: 48px; }
.kv-mobile-nav { margin-top: 48px; }
.kv-mobile-nav .kv-menu { display: block; }
.kv-mobile-nav .kv-menu > li > a { padding: 12px 0; font-family: var(--kv-serif); font-size: 34px; font-weight: 400; letter-spacing: 0; line-height: 1.15; text-transform: none; }
.kv-mobile-nav .kv-menu > li > a::after { display: none; }
.kv-mobile-nav .sub-menu { position: static; min-width: 0; padding: 0 0 10px 18px; border: 0; opacity: 1; visibility: visible; transform: none; }
.kv-mobile-contact { position: absolute; right: 36px; bottom: 36px; left: 36px; display: grid; gap: 4px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: 12px; }
.kv-panel-overlay { position: fixed; z-index: 2100; inset: 0; background: rgba(0,0,0,.62); opacity: 0; visibility: hidden; transition: .3s ease; }
.kv-panel-overlay.is-open { opacity: 1; visibility: visible; }

.kv-search-panel { position: fixed; z-index: 2300; inset: 0; display: flex; align-items: center; justify-content: center; padding: 40px; color: var(--kv-white); background: rgba(7,7,7,.98); opacity: 0; visibility: hidden; transition: .3s ease; }
.kv-search-panel.is-open { opacity: 1; visibility: visible; }
.kv-search-close { position: absolute; top: 32px; right: 36px; }
.kv-search-form { width: min(820px, 100%); }
.kv-search-form label { display: block; margin-bottom: 20px; font-family: var(--kv-serif); font-size: clamp(36px, 5vw, 66px); line-height: 1; }
.kv-search-row { display: grid; grid-template-columns: 1fr 62px; border-bottom: 1px solid rgba(255,255,255,.5); }
.kv-search-row input { min-width: 0; padding: 20px 0; border: 0; outline: 0; color: var(--kv-white); background: transparent; font-size: 17px; }
.kv-search-row input::placeholder { color: rgba(255,255,255,.45); }
.kv-search-row button { display: flex; align-items: center; justify-content: flex-end; border: 0; color: var(--kv-white); background: transparent; cursor: pointer; }

.kv-hero { --kv-hero-image: none; position: relative; min-height: 790px; display: flex; align-items: center; color: var(--kv-white); background: var(--kv-black); isolation: isolate; }
.kv-hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background-image: var(--kv-hero-image); background-position: center; background-size: cover; filter: grayscale(1); opacity: .63; }
.kv-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.76) 42%, rgba(0,0,0,.15) 78%, rgba(0,0,0,.4) 100%); }
.kv-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: end; gap: 100px; padding-top: 100px; padding-bottom: 100px; }
.kv-hero-copy { max-width: 780px; }
.kv-hero-copy .kv-eyebrow { color: rgba(255,255,255,.65); }
.kv-hero h1 { max-width: 760px; margin: 0 0 30px; font-family: var(--kv-serif); font-size: clamp(72px, 8vw, 126px); font-weight: 400; letter-spacing: -.035em; line-height: .77; }
.kv-hero-copy > p { max-width: 640px; margin: 0 0 44px; color: rgba(255,255,255,.78); font-size: 17px; font-weight: 300; line-height: 1.8; }
.kv-hero-actions { display: flex; align-items: center; gap: 34px; }
.kv-hero-side { padding: 0 0 8px 28px; border-left: 1px solid rgba(255,255,255,.3); }
.kv-hero-side span { display: block; font-family: var(--kv-serif); font-size: 78px; font-weight: 400; line-height: .8; }
.kv-hero-side p { max-width: 120px; margin: 14px 0 0; color: rgba(255,255,255,.65); font-size: 10px; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; }
.kv-scroll-cue { position: absolute; right: 40px; bottom: 34px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.6); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; transform: rotate(-90deg); transform-origin: right bottom; }
.kv-scroll-cue span { width: 55px; height: 1px; background: rgba(255,255,255,.4); }

.kv-about { background: var(--kv-paper); }
.kv-about-grid { display: grid; grid-template-columns: minmax(350px, .9fr) minmax(420px, 1fr); align-items: center; gap: clamp(70px, 9vw, 150px); }
.kv-about-image { position: relative; max-width: 540px; margin-left: 5vw; padding: 28px 28px 0 0; border-top: 1px solid var(--kv-black); border-right: 1px solid var(--kv-black); }
.kv-about-image img { width: 100%; aspect-ratio: 4 / 5.4; object-fit: cover; object-position: center 12%; background: var(--kv-white); filter: grayscale(.15); }
.kv-image-note { position: absolute; right: -64px; bottom: 48px; min-width: 185px; padding: 20px 22px; color: var(--kv-white); background: var(--kv-black); }
.kv-image-note strong, .kv-image-note span { display: block; }
.kv-image-note strong { font-family: var(--kv-serif); font-size: 23px; font-weight: 500; }
.kv-image-note span { color: rgba(255,255,255,.6); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.kv-about-copy { max-width: 580px; }
.kv-about-copy h2, .kv-section-head h2, .kv-philosophy h2, .kv-instagram h2, .kv-footer-cta h2 { margin: 0; font-family: var(--kv-serif); font-size: clamp(54px, 5.5vw, 86px); font-weight: 400; letter-spacing: -.03em; line-height: .95; }
.kv-about-copy .kv-lead { margin: 42px 0 18px; color: var(--kv-black); font-family: var(--kv-serif); font-size: 28px; line-height: 1.3; }
.kv-about-copy p:not(.kv-lead) { color: var(--kv-muted); }
.kv-about-copy .kv-button { margin-top: 26px; }

.kv-services-section { background: var(--kv-white); }
.kv-section-head { display: grid; grid-template-columns: 1fr minmax(300px, 470px); align-items: end; gap: 60px; margin-bottom: 64px; }
.kv-section-head > p { margin: 0 0 8px; color: var(--kv-muted); }
.kv-section-head .kv-eyebrow { margin-bottom: 12px; }
.kv-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 54px 24px; }
.kv-service-card a { display: block; }
.kv-service-image { position: relative; overflow: hidden; background: #ddd; }
.kv-service-image::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.12); transition: background .35s ease; }
.kv-service-image img { width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; filter: grayscale(.75); transform: scale(1.01); transition: filter .5s ease, transform .7s ease; }
.kv-service-card:hover .kv-service-image img { filter: grayscale(0); transform: scale(1.055); }
.kv-service-card:hover .kv-service-image::after { background: rgba(0,0,0,0); }
.kv-service-card-copy { display: grid; grid-template-columns: 34px 1fr 24px; align-items: start; gap: 14px; padding-top: 22px; border-top: 1px solid var(--kv-black); }
.kv-service-card-copy > span { padding-top: 6px; color: var(--kv-sand); font-size: 9px; font-weight: 600; letter-spacing: .16em; }
.kv-service-card-copy h3 { margin: 0; font-family: var(--kv-serif); font-size: clamp(26px, 2.2vw, 36px); font-weight: 500; line-height: 1.05; }
.kv-service-card-copy svg { width: 20px; margin-top: 8px; transition: transform .25s ease; }
.kv-service-card:hover svg { transform: translateX(5px); }

.kv-values { padding: 65px 0; color: var(--kv-white); background: var(--kv-black); }
.kv-values-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.kv-values-grid > div { padding: 8px 34px; border-right: 1px solid rgba(255,255,255,.17); text-align: center; }
.kv-values-grid > div:first-child { padding-left: 0; }
.kv-values-grid > div:last-child { padding-right: 0; border-right: 0; }
.kv-values strong, .kv-values span { display: block; }
.kv-values strong { font-family: var(--kv-serif); font-size: 27px; font-weight: 500; }
.kv-values span { color: rgba(255,255,255,.55); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }

.kv-products-section { background: var(--kv-paper); }
.kv-products-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.kv-product-card { min-width: 0; }
.kv-product-image { position: relative; display: block; overflow: hidden; background: var(--kv-white); }
.kv-product-image img { width: 100%; aspect-ratio: 1 / 1.14; object-fit: contain; padding: 28px; transition: transform .5s ease; }
.kv-product-card:hover .kv-product-image img { transform: scale(1.04); }
.kv-sale-badge { position: absolute; z-index: 2; top: 14px; left: 14px; padding: 6px 10px; color: var(--kv-white); background: var(--kv-black); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.kv-product-copy { padding-top: 20px; }
.kv-product-copy h3 { min-height: 52px; margin: 0 0 10px; font-size: 12px; font-weight: 500; letter-spacing: .04em; line-height: 1.45; text-transform: uppercase; }
.kv-product-price { color: var(--kv-sand); font-family: var(--kv-serif); font-size: 21px; }
.kv-product-price del { color: #aaa; font-size: 15px; }
.kv-product-price ins { text-decoration: none; }
.kv-product-more { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding-bottom: 3px; border-bottom: 1px solid var(--kv-black); font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.kv-product-more svg { width: 16px; }

.kv-philosophy { padding: 0; color: var(--kv-white); background: var(--kv-black); }
.kv-philosophy-grid { width: 100%; max-width: none; display: grid; grid-template-columns: 1fr 1fr; }
.kv-philosophy-copy { display: flex; min-height: 720px; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(70px, 9vw, 150px); }
.kv-philosophy-copy h2 { max-width: 620px; }
.kv-philosophy-copy p { max-width: 580px; margin: 34px 0; color: rgba(255,255,255,.65); }
.kv-philosophy-image img { width: 100%; height: 100%; min-height: 720px; object-fit: cover; filter: grayscale(1); }

.kv-instagram { padding: 110px 0 0; background: var(--kv-white); }
.kv-instagram-head { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 48px; }
.kv-instagram-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.kv-instagram-grid a { position: relative; overflow: hidden; background: #ddd; }
.kv-instagram-grid a::after { content: "Instagram"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--kv-white); background: rgba(0,0,0,.6); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; opacity: 0; transition: opacity .3s ease; }
.kv-instagram-grid a:hover::after { opacity: 1; }
.kv-instagram-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; filter: grayscale(.45); transition: transform .5s ease; }
.kv-instagram-grid a:hover img { transform: scale(1.04); }

.kv-page-hero { position: relative; min-height: 410px; display: flex; align-items: flex-end; padding: 90px 0 76px; color: var(--kv-white); background: var(--kv-black); isolation: isolate; }
.kv-page-hero.has-image::before { content: ""; position: absolute; z-index: -2; inset: 0; background-image: var(--kv-page-image); background-position: center; background-size: cover; filter: grayscale(1); opacity: .38; }
.kv-page-hero.has-image::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.52)); }
.kv-page-hero .kv-shell { position: relative; }
.kv-page-hero h1 { max-width: 980px; margin: 0; font-family: var(--kv-serif); font-size: clamp(55px, 7vw, 104px); font-weight: 400; letter-spacing: -.035em; line-height: .9; }
.kv-page-hero p { max-width: 680px; margin: 26px 0 0; color: rgba(255,255,255,.7); }
.kv-breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; color: rgba(255,255,255,.55); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.kv-breadcrumbs a:hover { color: var(--kv-white); }
.kv-page-content { background: var(--kv-white); }
.kv-content-layout { max-width: 1000px; }
.kv-service-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 90px; }
.kv-prose { min-width: 0; color: #393735; font-size: 16px; line-height: 1.9; }
.kv-prose > :first-child { margin-top: 0; }
.kv-prose h1 { display: none !important; }
.kv-prose h2 { margin: 52px 0 20px; color: var(--kv-black); font-family: var(--kv-serif); font-size: 43px; font-weight: 500; line-height: 1.05; }
.kv-prose h3 { margin: 38px 0 14px; color: var(--kv-black); font-family: var(--kv-serif); font-size: 30px; font-weight: 500; }
.kv-prose p { margin: 0 0 22px; }
.kv-prose a:not(.button):not(.elementor-button) { border-bottom: 1px solid currentColor; }
.kv-prose ul, .kv-prose ol { padding-left: 24px; }
.kv-prose img { width: 100%; margin: 32px 0; }
.kv-prose table { width: 100%; border-collapse: collapse; }
.kv-prose th, .kv-prose td { padding: 14px; border: 1px solid var(--kv-line); text-align: left; }
.kv-prose [style*="color"] { color: inherit !important; }
.kv-prose .elementor, .kv-prose .elementor-section, .kv-prose .elementor-container, .kv-prose .elementor-column, .kv-prose .elementor-widget-wrap, .kv-prose .elementor-widget-container { max-width: none; }
.kv-prose .elementor-section, .kv-prose .elementor-container { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.kv-prose .elementor-column { width: 100% !important; }
.kv-prose .elementor-widget-wrap { padding: 0 !important; }
.kv-prose .elementor-element { margin: 0 !important; }
.kv-prose .elementor-button, .kv-prose input[type="submit"] { display: inline-flex; min-height: 54px; align-items: center; padding: 0 28px; border: 0; color: var(--kv-white); background: var(--kv-black); font-size: 10px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.kv-service-prose .elementor > .elementor-section:first-child { display: none; }
.kv-service-prose .elementor > .elementor-section:not(:first-child) .elementor-container { display: block !important; }
.kv-booking-card { position: sticky; top: 140px; padding: 46px 38px; color: var(--kv-white); background: var(--kv-black); }
.kv-booking-card h2 { margin: 0 0 20px; font-family: var(--kv-serif); font-size: 39px; font-weight: 500; line-height: 1.05; }
.kv-booking-card p { color: rgba(255,255,255,.62); }
.kv-booking-card .kv-button { width: 100%; margin-top: 16px; }
.kv-booking-phone { display: block; margin-top: 22px; color: var(--kv-sand); font-size: 13px; text-align: center; }

.kv-service-detail { padding-top: 120px; padding-bottom: 120px; background: var(--kv-paper); }
.kv-service-overview { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 100px; }
.kv-service-intro { max-width: 790px; }
.kv-service-intro h2 { max-width: 800px; margin: 12px 0 30px; font-family: var(--kv-serif); font-size: clamp(54px, 5.5vw, 82px); font-weight: 400; letter-spacing: -.035em; line-height: .94; }
.kv-service-lead { max-width: 700px; margin: 0; color: #494642; font-size: 20px; line-height: 1.7; }
.kv-service-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 58px; border-top: 1px solid var(--kv-black); }
.kv-service-highlights > div { min-height: 130px; padding: 22px 24px 20px 0; border-right: 1px solid var(--kv-line); }
.kv-service-highlights > div:not(:first-child) { padding-left: 24px; }
.kv-service-highlights > div:last-child { border-right: 0; }
.kv-service-highlights span { display: block; margin-bottom: 22px; color: var(--kv-sand); font-size: 9px; letter-spacing: .16em; }
.kv-service-highlights strong { display: block; font-family: var(--kv-serif); font-size: 22px; font-weight: 500; line-height: 1.15; }
.kv-service-feature-image { position: relative; margin: 105px 0 0; overflow: hidden; background: #ddd; }
.kv-service-feature-image img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; filter: grayscale(.22); }
.kv-service-feature-image figcaption { position: absolute; right: 0; bottom: 0; width: min(440px, 45%); padding: 34px 38px; color: var(--kv-white); background: rgba(8,8,8,.93); }
.kv-service-feature-image figcaption span { display: block; margin-bottom: 10px; color: var(--kv-sand); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.kv-service-feature-image figcaption strong { font-family: var(--kv-serif); font-size: 25px; font-weight: 500; line-height: 1.2; }
.kv-service-copy-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); align-items: start; gap: 105px; padding-top: 110px; }
.kv-service-copy-head { position: sticky; top: 145px; }
.kv-service-copy-head h2 { margin: 12px 0 0; font-family: var(--kv-serif); font-size: 49px; font-weight: 400; letter-spacing: -.03em; line-height: .96; }
.kv-service-copy { max-width: 760px; color: #3d3a37; font-size: 17px; line-height: 1.9; }
.kv-service-copy p { margin: 0 0 26px; }
.kv-service-copy p:first-child { color: var(--kv-black); font-family: var(--kv-serif); font-size: 25px; line-height: 1.55; }
.kv-service-copy h2, .kv-service-copy h3 { margin: 52px 0 18px; color: var(--kv-black); font-family: var(--kv-serif); font-weight: 500; line-height: 1.1; }
.kv-service-copy h2 { font-size: 40px; }
.kv-service-copy h3 { font-size: 29px; }
.kv-service-copy ul, .kv-service-copy ol { margin: 32px 0; padding: 30px 34px; list-style: none; background: var(--kv-white); }
.kv-service-copy li { position: relative; padding: 12px 0 12px 27px; border-bottom: 1px solid var(--kv-line); }
.kv-service-copy li:last-child { border-bottom: 0; }
.kv-service-copy li::before { content: ""; position: absolute; top: 24px; left: 0; width: 10px; height: 1px; background: var(--kv-sand); }
.kv-service-copy a { border-bottom: 1px solid currentColor; }
.kv-service-visit { padding: 105px 0 112px; color: var(--kv-white); background: var(--kv-black); }
.kv-service-visit-head { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: end; gap: 80px; margin-bottom: 68px; }
.kv-service-visit-head h2 { max-width: 760px; margin: 0; font-family: var(--kv-serif); font-size: clamp(48px, 5vw, 74px); font-weight: 400; letter-spacing: -.03em; line-height: .95; }
.kv-service-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.2); }
.kv-service-steps > div { min-height: 250px; padding: 36px 42px 10px 0; border-right: 1px solid rgba(255,255,255,.14); }
.kv-service-steps > div:not(:first-child) { padding-left: 42px; }
.kv-service-steps > div:last-child { border-right: 0; }
.kv-service-steps span { color: var(--kv-sand); font-size: 9px; letter-spacing: .16em; }
.kv-service-steps h3 { margin: 42px 0 14px; font-family: var(--kv-serif); font-size: 34px; font-weight: 500; }
.kv-service-steps p { max-width: 300px; margin: 0; color: rgba(255,255,255,.6); font-size: 14px; line-height: 1.75; }

.kv-all-services { background: var(--kv-paper); }
.kv-services-list { border-top: 1px solid var(--kv-black); }
.kv-service-row { display: grid; grid-template-columns: 50px 170px minmax(0, 1fr) 30px; align-items: center; gap: 34px; padding: 28px 0; border-bottom: 1px solid var(--kv-line); transition: padding .25s ease, background .25s ease; }
.kv-service-row:hover { padding-right: 18px; padding-left: 18px; background: var(--kv-white); }
.kv-service-row-number { color: var(--kv-sand); font-size: 9px; letter-spacing: .16em; }
.kv-service-row img { width: 170px; height: 104px; object-fit: cover; filter: grayscale(.75); transition: filter .3s ease; }
.kv-service-row:hover img { filter: grayscale(0); }
.kv-service-row h2 { margin: 0 0 6px; font-family: var(--kv-serif); font-size: clamp(27px, 3vw, 44px); font-weight: 500; line-height: 1; }
.kv-service-row p { margin: 0; color: var(--kv-muted); font-size: 13px; }
.kv-service-row > svg { width: 22px; }

.page-id-61 .kv-prose .elementor-section:not(:first-child) .elementor-widget-wrap { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.page-id-61 .kv-prose img { aspect-ratio: 1; margin: 0; object-fit: cover; }
.page-id-1145 .kv-content-layout { max-width: var(--kv-shell); }
.page-id-1145 .kv-prose .elementor-container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 70px; }
.wpcf7-form p { margin-bottom: 18px; }
.wpcf7-form label { display: block; color: var(--kv-black); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.wpcf7-form input:not([type="submit"]), .wpcf7-form textarea, .wpcf7-form select { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; outline: 0; background: transparent; }

.kv-about-page { background: var(--kv-paper); }
.kv-about-page-grid { display: grid; grid-template-columns: minmax(360px, .82fr) minmax(440px, 1fr); align-items: center; gap: clamp(70px, 9vw, 150px); }
.kv-about-page-image { position: relative; max-width: 540px; }
.kv-about-page-image::before { content: ""; position: absolute; top: -24px; right: -24px; width: 70%; height: 70%; border-top: 1px solid var(--kv-black); border-right: 1px solid var(--kv-black); }
.kv-about-page-image img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5.3; object-fit: cover; object-position: center top; filter: grayscale(.12); }
.kv-about-signature { position: absolute; z-index: 2; right: -45px; bottom: 42px; min-width: 190px; padding: 22px 24px; color: var(--kv-white); background: var(--kv-black); }
.kv-about-signature strong, .kv-about-signature span { display: block; }
.kv-about-signature strong { font-family: var(--kv-serif); font-size: 31px; font-weight: 500; line-height: 1; }
.kv-about-signature span { margin-top: 8px; color: rgba(255,255,255,.62); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.kv-about-page-copy { max-width: 640px; }
.kv-about-page-copy h2, .kv-contact-copy h2, .kv-contact-form-card h2 { margin: 0; font-family: var(--kv-serif); font-size: clamp(48px, 5vw, 76px); font-weight: 400; letter-spacing: -.03em; line-height: .96; }
.kv-about-page-copy .kv-lead { margin: 34px 0 18px; color: var(--kv-black); font-family: var(--kv-serif); font-size: 26px; line-height: 1.35; }
.kv-about-page-copy p:not(.kv-lead) { margin: 0 0 18px; color: var(--kv-muted); }
.kv-about-page-copy .kv-button { margin-top: 18px; }
.kv-about-values { padding: 80px 0; color: var(--kv-white); background: var(--kv-black); }
.kv-about-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.kv-about-values-grid > div { padding: 0 55px; border-right: 1px solid rgba(255,255,255,.16); }
.kv-about-values-grid > div:first-child { padding-left: 0; }
.kv-about-values-grid > div:last-child { padding-right: 0; border-right: 0; }
.kv-about-values-grid span { color: var(--kv-sand); font-size: 9px; letter-spacing: .18em; }
.kv-about-values-grid h2 { margin: 14px 0 12px; font-family: var(--kv-serif); font-size: 32px; font-weight: 500; }
.kv-about-values-grid p { margin: 0; color: rgba(255,255,255,.58); font-size: 13px; }
.kv-cert-preview { background: var(--kv-white); }
.kv-cert-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.kv-cert-preview-grid img { width: 100%; aspect-ratio: 4 / 3.2; padding: 24px; background: var(--kv-paper); object-fit: contain; filter: grayscale(.15); }

.kv-gallery-page { background: var(--kv-paper); }
.kv-certificate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.kv-certificate-grid a { display: flex; min-height: 330px; align-items: center; justify-content: center; padding: 20px; background: var(--kv-white); overflow: hidden; }
.kv-certificate-grid img { width: 100%; height: 100%; max-height: 420px; object-fit: contain; filter: grayscale(.2); transition: filter .3s ease, transform .45s ease; }
.kv-certificate-grid a:hover img { filter: grayscale(0); transform: scale(1.025); }

.kv-contact-page { background: var(--kv-paper); }
.kv-contact-grid { display: grid; grid-template-columns: minmax(340px, .82fr) minmax(440px, 1fr); align-items: start; gap: clamp(60px, 8vw, 125px); }
.kv-contact-copy > p { max-width: 570px; margin: 32px 0; color: var(--kv-muted); }
.kv-contact-list { display: grid; gap: 0; margin: 0 0 36px; padding: 0; list-style: none; border-top: 1px solid var(--kv-line); }
.kv-contact-list li { display: grid; grid-template-columns: 28px 1fr; gap: 17px; padding: 20px 0; border-bottom: 1px solid var(--kv-line); }
.kv-contact-list svg { width: 20px; color: var(--kv-sand); }
.kv-contact-list span, .kv-contact-list strong { display: block; }
.kv-contact-list span { margin-bottom: 2px; color: var(--kv-muted); font-size: 9px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.kv-contact-list strong { color: var(--kv-black); font-size: 14px; font-weight: 500; }
.kv-contact-form-card { padding: 58px; background: var(--kv-white); }
.kv-contact-form-card h2 { margin-bottom: 34px; font-size: clamp(40px, 4vw, 59px); }
.kv-contact-form-card .wpcf7-form p { margin: 0 0 20px; }
.kv-contact-form-card .wpcf7-form label { display: block; color: var(--kv-black); font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.kv-contact-form-card .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.kv-contact-form-card input:not([type="submit"]), .kv-contact-form-card textarea { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; outline: 0; background: transparent; font-size: 14px; }
.kv-contact-form-card textarea { min-height: 120px; resize: vertical; }
.kv-contact-form-card input[type="submit"] { min-height: 52px; padding: 0 30px; border: 1px solid var(--kv-black); border-radius: 0; color: var(--kv-white); background: var(--kv-black); font-size: 10px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; cursor: pointer; }
.kv-contact-form-card input[type="submit"]:hover { border-color: var(--kv-sand); background: var(--kv-sand); }
.kv-contact-form-card .wpcf7-spinner { margin-top: 14px; }
.kv-contact-form-card .wpcf7-response-output { margin: 24px 0 0 !important; padding: 12px 14px !important; border-width: 1px !important; font-size: 12px; }

.kv-posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 28px; }
.kv-post-image { display: block; margin-bottom: 20px; overflow: hidden; }
.kv-post-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: grayscale(.6); transition: .5s ease; }
.kv-post-card:hover .kv-post-image img { filter: grayscale(0); transform: scale(1.035); }
.kv-post-card > span { color: var(--kv-sand); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.kv-post-card h2 { margin: 10px 0 12px; font-family: var(--kv-serif); font-size: 34px; font-weight: 500; line-height: 1.05; }
.kv-post-card p { color: var(--kv-muted); font-size: 14px; }

.kv-shop-intro { padding: 80px 0 70px; color: var(--kv-white); background: var(--kv-black); }
.kv-shop-intro h1 { margin: 0; font-family: var(--kv-serif); font-size: clamp(52px, 6vw, 88px); font-weight: 400; line-height: .95; }
.kv-shop-shell { padding-top: 95px; padding-bottom: 120px; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 30px; color: var(--kv-muted); font-size: 10px; letter-spacing: .08em; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 35px; color: var(--kv-muted); font-size: 12px; }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 0 36px 0 12px; border: 1px solid var(--kv-line); border-radius: 0; background: var(--kv-white); }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 52px 26px; margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1.12; margin: 0 0 18px !important; padding: 22px; background: var(--kv-paper); object-fit: contain; transition: transform .4s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.025); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 54px; padding: 0 !important; color: var(--kv-black); font-size: 12px !important; font-weight: 500; letter-spacing: .035em; line-height: 1.5; text-transform: uppercase; }
.woocommerce ul.products li.product .price { color: var(--kv-sand) !important; font-family: var(--kv-serif); font-size: 21px !important; }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; margin-top: 14px; padding: 0 22px !important; border: 1px solid var(--kv-black) !important; border-radius: 0 !important; color: var(--kv-white) !important; background: var(--kv-black) !important; font-size: 9px !important; font-weight: 600 !important; letter-spacing: .14em; line-height: 1 !important; text-transform: uppercase; transition: .25s ease; }
.woocommerce ul.products li.product .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { border-color: var(--kv-sand) !important; background: var(--kv-sand) !important; }
.woocommerce span.onsale { z-index: 3; top: 12px !important; right: auto !important; left: 12px !important; min-width: 0 !important; min-height: 0 !important; padding: 7px 10px !important; border-radius: 0 !important; color: var(--kv-white) !important; background: var(--kv-black) !important; font-size: 8px !important; font-weight: 500 !important; letter-spacing: .13em; line-height: 1 !important; text-transform: uppercase; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, .85fr); gap: clamp(50px, 7vw, 100px); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none !important; width: auto !important; margin: 0 !important; }
.woocommerce div.product div.images img { background: var(--kv-paper); }
.woocommerce div.product .product_title { margin: 0 0 22px; font-family: var(--kv-serif); font-size: clamp(42px, 5vw, 66px); font-weight: 500; line-height: .95; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--kv-sand) !important; font-family: var(--kv-serif); font-size: 31px !important; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--kv-muted); }
.woocommerce .quantity .qty { width: 72px; min-height: 48px; border: 1px solid var(--kv-line); border-radius: 0; }
.woocommerce div.product form.cart { display: flex; align-items: center; gap: 10px; margin-top: 30px; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 80px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { margin: 0 0 34px !important; padding: 0 !important; border-bottom: 1px solid var(--kv-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 34px 0 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0 !important; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 920px; color: #454341; }
.woocommerce div.product .related { grid-column: 1 / -1; margin-top: 70px; }
.woocommerce div.product .related > h2 { margin-bottom: 38px; font-family: var(--kv-serif); font-size: 48px; font-weight: 500; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { padding: 18px 22px 18px 52px !important; border-top: 2px solid var(--kv-sand) !important; color: var(--kv-black); background: var(--kv-paper); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--kv-sand) !important; }
.woocommerce table.shop_table { border: 1px solid var(--kv-line) !important; border-collapse: collapse !important; border-radius: 0 !important; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 16px !important; border-color: var(--kv-line) !important; }
.woocommerce-cart table.cart img { width: 84px !important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single { min-height: 48px; padding: 10px 12px; border: 1px solid var(--kv-line); border-radius: 0; background: var(--kv-white); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 27px; }
.woocommerce-checkout #customer_details { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.woocommerce-checkout #order_review_heading { margin-top: 60px; font-family: var(--kv-serif); font-size: 38px; }
.woocommerce-checkout #payment { border-radius: 0 !important; background: var(--kv-paper) !important; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 250px 1fr; gap: 60px; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto !important; float: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--kv-line); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 12px 0; border-bottom: 1px solid var(--kv-line); }
.woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce nav.woocommerce-pagination ul { border: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li { border: 0 !important; margin: 0 3px !important; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li span.current { color: var(--kv-white); background: var(--kv-black); }

.kv-footer-cta { padding: 82px 0; color: var(--kv-white); background: var(--kv-sand); }
.kv-footer-cta .kv-eyebrow { color: rgba(255,255,255,.72); }
.kv-footer-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 60px; }
.kv-footer-cta h2 { max-width: 840px; font-size: clamp(45px, 5vw, 72px); }
.kv-footer { padding: 86px 0 0; color: rgba(255,255,255,.68); background: var(--kv-black); }
.kv-footer-grid { display: grid; grid-template-columns: 1.25fr 1.2fr .8fr .8fr; gap: 70px; padding-bottom: 74px; }
.kv-footer .kv-logo { margin-bottom: 26px; }
.kv-footer-brand p { max-width: 320px; font-size: 13px; }
.kv-footer h3 { margin: 0 0 26px; color: var(--kv-white); font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.kv-footer-list, .kv-footer-nav { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: 13px; }
.kv-footer-list li { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 12px; }
.kv-footer-list svg { width: 18px; color: var(--kv-sand); }
.kv-footer a:hover { color: var(--kv-white); }
.kv-socials { display: flex; gap: 10px; margin-top: 26px; }
.kv-socials a { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.22); color: var(--kv-white); font-size: 10px; text-transform: uppercase; }
.kv-socials a:hover { border-color: var(--kv-sand); background: var(--kv-sand); }
.kv-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 26px; padding-bottom: 26px; border-top: 1px solid rgba(255,255,255,.13); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }

.kv-error-page { min-height: 720px; display: flex; align-items: center; color: var(--kv-white); background: var(--kv-black); text-align: center; }
.kv-error-page .kv-shell { display: flex; flex-direction: column; align-items: center; }
.kv-error-number { color: rgba(255,255,255,.08); font-family: var(--kv-serif); font-size: clamp(160px, 25vw, 350px); line-height: .55; }
.kv-error-page h1 { margin: 0; font-family: var(--kv-serif); font-size: clamp(50px, 6vw, 86px); font-weight: 400; }
.kv-error-page p { margin-bottom: 32px; color: rgba(255,255,255,.62); }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
	.kv-header-inner { grid-template-columns: 190px 1fr auto; }
	.kv-logo-copy { display: none; }
	.kv-logo-mark { width: 52px; height: 52px; }
	.kv-menu { gap: 20px; }
	.kv-menu > li > a { font-size: 9px; letter-spacing: .13em; }
	.kv-service-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 55px; }
	.kv-service-overview { grid-template-columns: minmax(0, 1fr) 320px; gap: 55px; }
	.kv-service-copy-layout { grid-template-columns: 250px minmax(0, 1fr); gap: 65px; }
	.kv-certificate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kv-footer-grid { grid-template-columns: 1.25fr 1.2fr 1fr; }
	.kv-footer-grid > div:last-child { grid-column: 3; }
}

@media (max-width: 980px) {
	.kv-shell { width: min(calc(100% - 42px), var(--kv-shell)); }
	.kv-section { padding: 94px 0; }
	.kv-header-inner { grid-template-columns: 1fr auto; min-height: 76px; }
	.kv-desktop-nav { display: none; }
	.kv-menu-toggle { display: inline-flex; }
	.kv-account-link { display: none; }
	.kv-hero { min-height: 720px; }
	.kv-hero-inner { grid-template-columns: 1fr; gap: 60px; }
	.kv-hero-side { display: none; }
	.kv-hero h1 { font-size: clamp(72px, 14vw, 104px); }
	.kv-about-grid { grid-template-columns: minmax(280px, .85fr) 1fr; gap: 72px; }
	.kv-about-image { margin-left: 0; }
	.kv-image-note { right: -35px; }
	.kv-services-grid { grid-template-columns: repeat(2, 1fr); }
	.kv-products-grid { grid-template-columns: repeat(2, 1fr); gap: 48px 24px; }
	.kv-values-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 0; }
	.kv-values-grid > div:nth-child(2) { border-right: 0; }
	.kv-philosophy-grid { grid-template-columns: 1fr; }
	.kv-philosophy-copy { min-height: 0; padding: 95px 7vw; }
	.kv-philosophy-image img { min-height: 520px; max-height: 650px; }
	.kv-service-layout { grid-template-columns: 1fr; }
	.kv-booking-card { position: static; }
	.kv-service-overview { grid-template-columns: 1fr; }
	.kv-service-copy-layout { grid-template-columns: 1fr; gap: 45px; }
	.kv-service-copy-head { position: static; max-width: 520px; }
	.kv-service-feature-image figcaption { width: min(520px, 68%); }
	.kv-service-visit-head { grid-template-columns: 1fr; gap: 24px; }
	.kv-about-page-grid { grid-template-columns: minmax(280px, .8fr) 1fr; gap: 65px; }
	.kv-about-signature { right: -24px; }
	.kv-about-values-grid > div { padding: 0 28px; }
	.kv-contact-grid { grid-template-columns: 1fr 1fr; gap: 45px; }
	.kv-contact-form-card { padding: 42px; }
	.kv-footer-cta-inner { align-items: flex-start; flex-direction: column; }
	.kv-footer-grid { grid-template-columns: 1fr 1fr; }
	.kv-footer-grid > div:last-child { grid-column: auto; }
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related { grid-column: auto; }
}

@media (max-width: 700px) {
	body { font-size: 15px; }
	.kv-shell { width: min(calc(100% - 30px), var(--kv-shell)); }
	.kv-section { padding: 76px 0; }
	.kv-topbar { height: 30px; padding: 0 14px; font-size: 7px; letter-spacing: .17em; }
	.admin-bar .kv-header { top: 46px; }
	.kv-header-inner { min-height: 70px; }
	.kv-logo-mark { width: 46px; height: 46px; font-size: 23px; }
	.kv-header-actions { gap: 0; }
	.kv-icon-button { width: 40px; height: 40px; }
	.kv-header-actions .kv-icon-button:first-child { display: none; }
	.kv-mobile-panel { padding: 20px 24px 32px; }
	.kv-mobile-nav { margin-top: 38px; }
	.kv-mobile-nav .kv-menu > li > a { font-size: 31px; }
	.kv-mobile-contact { right: 24px; bottom: 30px; left: 24px; }
	.kv-hero { min-height: 680px; align-items: flex-end; }
	.kv-hero::before { background-position: 62% center; opacity: .5; }
	.kv-hero::after { background: linear-gradient(0deg, rgba(0,0,0,.96), rgba(0,0,0,.26) 75%, rgba(0,0,0,.45)); }
	.kv-hero-inner { padding-top: 80px; padding-bottom: 74px; }
	.kv-hero h1 { margin-bottom: 24px; font-size: clamp(64px, 21vw, 88px); line-height: .8; }
	.kv-hero-copy > p { margin-bottom: 32px; font-size: 14px; }
	.kv-hero-actions { align-items: flex-start; flex-direction: column; gap: 24px; }
	.kv-scroll-cue { display: none; }
	.kv-about-grid { grid-template-columns: 1fr; gap: 70px; }
	.kv-about-image { width: calc(100% - 20px); padding: 18px 18px 0 0; }
	.kv-image-note { right: -20px; bottom: 24px; }
	.kv-about-copy h2, .kv-section-head h2, .kv-philosophy h2, .kv-instagram h2, .kv-footer-cta h2 { font-size: 53px; }
	.kv-about-copy .kv-lead { margin-top: 30px; font-size: 24px; }
	.kv-section-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 42px; }
	.kv-services-grid { grid-template-columns: 1fr; gap: 48px; }
	.kv-service-image img { aspect-ratio: 4 / 4; }
	.kv-centered-action { margin-top: 46px; }
	.kv-values { padding: 50px 0; }
	.kv-values-grid { grid-template-columns: 1fr 1fr; }
	.kv-values-grid > div { padding: 12px 10px; }
	.kv-values strong { font-size: 22px; }
	.kv-products-grid { grid-template-columns: 1fr 1fr; gap: 38px 12px; }
	.kv-product-image img { padding: 12px; }
	.kv-product-copy h3 { min-height: 0; font-size: 10px; }
	.kv-philosophy-copy { padding: 76px 15px; }
	.kv-philosophy-image img { min-height: 400px; }
	.kv-instagram { padding-top: 74px; }
	.kv-instagram-head { align-items: flex-start; flex-direction: column; }
	.kv-instagram-grid { grid-template-columns: 1fr 1fr; }
	.kv-page-hero { min-height: 360px; padding: 72px 0 58px; }
	.kv-page-hero h1 { font-size: 54px; }
	.kv-breadcrumbs { margin-bottom: 28px; }
	.kv-service-row { grid-template-columns: 34px 86px 1fr 20px; gap: 14px; padding: 18px 0; }
	.kv-service-row img { width: 86px; height: 74px; }
	.kv-service-row h2 { font-size: 24px; }
	.kv-service-row p { display: none; }
	.kv-service-row:hover { padding-right: 8px; padding-left: 8px; }
	.kv-service-detail { padding-top: 76px; padding-bottom: 78px; }
	.kv-service-intro h2 { margin-top: 10px; font-size: 50px; }
	.kv-service-lead { font-size: 17px; }
	.kv-service-highlights { grid-template-columns: 1fr; margin-top: 42px; }
	.kv-service-highlights > div, .kv-service-highlights > div:not(:first-child) { min-height: 0; padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--kv-line); }
	.kv-service-highlights > div:last-child { border-bottom: 0; }
	.kv-service-highlights span { margin-bottom: 9px; }
	.kv-service-highlights strong { font-size: 21px; }
	.kv-booking-card { padding: 38px 25px; }
	.kv-booking-card h2 { font-size: 35px; }
	.kv-service-feature-image { margin-top: 68px; }
	.kv-service-feature-image img { min-height: 420px; aspect-ratio: auto; }
	.kv-service-feature-image figcaption { position: relative; width: 100%; padding: 27px 24px; }
	.kv-service-feature-image figcaption strong { font-size: 22px; }
	.kv-service-copy-layout { padding-top: 72px; }
	.kv-service-copy-head h2 { font-size: 43px; }
	.kv-service-copy { font-size: 16px; }
	.kv-service-copy p:first-child { font-size: 22px; }
	.kv-service-copy ul, .kv-service-copy ol { padding: 22px 20px; }
	.kv-service-visit { padding: 76px 0 82px; }
	.kv-service-visit-head { margin-bottom: 45px; }
	.kv-service-visit-head h2 { font-size: 48px; }
	.kv-service-steps { grid-template-columns: 1fr; }
	.kv-service-steps > div, .kv-service-steps > div:not(:first-child) { min-height: 0; padding: 28px 0 32px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
	.kv-service-steps > div:last-child { border-bottom: 0; }
	.kv-service-steps h3 { margin-top: 18px; }
	.kv-about-page-grid { grid-template-columns: 1fr; gap: 66px; }
	.kv-about-page-image { width: calc(100% - 20px); }
	.kv-about-signature { right: -20px; bottom: 24px; }
	.kv-about-page-copy h2, .kv-contact-copy h2, .kv-contact-form-card h2 { font-size: 49px; }
	.kv-about-values-grid { grid-template-columns: 1fr; gap: 32px; }
	.kv-about-values-grid > div { padding: 0 0 32px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); }
	.kv-about-values-grid > div:last-child { padding-bottom: 0; border-bottom: 0; }
	.kv-cert-preview-grid { grid-template-columns: 1fr; }
	.kv-certificate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.kv-certificate-grid a { min-height: 220px; padding: 10px; }
	.kv-contact-grid { grid-template-columns: 1fr; gap: 50px; }
	.kv-contact-form-card { padding: 34px 24px; }
	.page-id-61 .kv-prose .elementor-section:not(:first-child) .elementor-widget-wrap { grid-template-columns: repeat(2, 1fr); gap: 8px; }
	.page-id-1145 .kv-prose .elementor-container { grid-template-columns: 1fr; gap: 35px; }
	.kv-posts-grid { grid-template-columns: 1fr; }
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; font-size: 10px !important; }
	.woocommerce div.product .product_title { font-size: 44px; }
	.woocommerce div.product form.cart { align-items: stretch; flex-direction: column; }
	.woocommerce .quantity .qty { width: 100%; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin-right: 18px !important; }
	.woocommerce-checkout #customer_details { grid-template-columns: 1fr; gap: 10px; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 35px; }
	.kv-footer-cta { padding: 65px 0; }
	.kv-footer { padding-top: 65px; }
	.kv-footer-grid { grid-template-columns: 1fr; gap: 45px; padding-bottom: 55px; }
	.kv-footer-bottom { align-items: flex-start; flex-direction: column; }
}

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