/*
 * KIMsis — theme styles.
 * Ported 1:1 from the approved design export (inline styles -> classes).
 * Colours are the design's own; only the accent is a variable (Customizer).
 */

/* ---------- Fonts (local, variable, latin + latin-ext only) ---------- */
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400 600; font-display: swap; src: url(../fonts/ibm-plex-sans-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400 600; font-display: swap; src: url(../fonts/ibm-plex-sans-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 500; font-display: swap; src: url(../fonts/jetbrains-mono-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 500; font-display: swap; src: url(../fonts/jetbrains-mono-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/space-grotesk-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/space-grotesk-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Base ---------- */
:root {
	--accent: #0B7A47;
	--accent-on-dark: #4FD48F;
	--ink: #201E1B;
	--paper: #F4F2EE;
	--line: #E3DED5;
	--mono: "JetBrains Mono", ui-monospace, monospace;
	--display: "Space Grotesk", "IBM Plex Sans", sans-serif;
}
@supports (color: color-mix(in oklab, red 50%, white)) {
	:root { --accent-on-dark: color-mix(in oklab, var(--accent) 55%, white); }
}
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "IBM Plex Sans", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
input, select, textarea, button { font: inherit; }
@keyframes kim-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .3; transform: scale(.7); } }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.k-dot { animation: none !important; }
}
[id] { scroll-margin-top: 84px; }

.k-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--paper); color: var(--ink); padding: 10px 16px; border-radius: 999px; font-weight: 600; }
.k-skip:focus { top: 12px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* page wrapper: clip instead of hidden, so the sticky header keeps working */
.k-page { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
.k-wrap { max-width: 1280px; margin: 0 auto; }

/* shared bits */
.k-mono { font-family: var(--mono); }
.k-eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; color: #7A736B; margin-bottom: 26px; }
.k-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent-on-dark); animation: kim-pulse 2.4s ease-in-out infinite; display: inline-block; flex: 0 0 auto; }
.k-dot.is-off { background: #A6A09A; animation: none; }
.k-h2 { font-family: var(--display); font-weight: 600; letter-spacing: -.03em; margin: 0; text-wrap: pretty; }
.k-cover { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.k-btn { display: inline-block; font-weight: 600; font-size: 16px; padding: 15px 26px; border-radius: 999px; border: 0; cursor: pointer; transition: background-color .2s ease, filter .2s ease; }
.k-btn--accent, .k-btn--accent:hover { background: var(--accent); color: #FFFFFF; }
.k-btn--accent:hover { filter: brightness(1.1); }
.k-btn--ghost, .k-btn--ghost:hover { background: rgba(244, 242, 238, .12); border: 1px solid rgba(244, 242, 238, .5); color: #F4F2EE; }
.k-btn--ghost:hover { background: rgba(244, 242, 238, .2); }
.k-btn--light, .k-btn--light:hover { background: #F4F2EE; color: #201E1B; }
.k-btn--light:hover { background: #FFFFFF; }

/* ---------- Header ---------- */
.k-hdr { position: sticky; top: 0; z-index: 60; padding: 12px 12px 0; }
.k-hdr__bar { max-width: 1280px; margin: 0 auto; background: rgba(26, 24, 22, .88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-radius: 999px; padding: 10px 12px 10px 22px; display: flex; align-items: center; gap: 20px; }
.k-logo { display: flex; align-items: center; background: #F4F2EE; border-radius: 8px; padding: 6px 10px; flex: 0 0 auto; }
.k-logo img { height: 30px; width: auto; display: block; }
.k-nav { display: flex; gap: 24px; flex: 1 1 auto; justify-content: center; }
.k-nav a { font-size: 14px; color: #DDD8D2; }
.k-nav a:hover { color: #FFFFFF; }
.k-hdr__mail, .k-hdr__mail:hover { font-family: var(--mono); font-size: 13px; color: #F4F2EE; }
.k-hdr__btn, .k-hdr__btn:hover { background: #F4F2EE; color: #201E1B; font-size: 14px; font-weight: 600; padding: 10px 18px; border-radius: 999px; white-space: nowrap; }
.k-hdr__btn:hover { background: #FFFFFF; }

/* ---------- Hero ---------- */
.k-main--home { margin-top: -72px; }
.k-hero { position: relative; background: #201E1B; display: flex; align-items: center; min-height: 94vh; isolation: isolate; }
.k-hero__img { position: absolute; inset: 0 0 46% 0; z-index: 0; }
.k-hero__shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(32, 30, 27, .6) 0%, rgba(32, 30, 27, .5) 26%, rgba(32, 30, 27, .92) 50%, #201E1B 56%, #201E1B 100%); }
.k-hero__in { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; width: 100%; padding: clamp(96px, 13vh, 150px) 28px; color: #F4F2EE; }
.k-hero__copy { max-width: 60ch; }
.k-status { display: flex; align-items: center; gap: 9px; margin-bottom: 22px; }
.k-status span:last-child { font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: #E4DFD8; }
.k-hero h1 { font-family: var(--display); font-weight: 600; font-size: clamp(34px, 5.6vw, 72px); line-height: 1.02; letter-spacing: -.035em; margin: 0 0 22px; max-width: 17ch; text-wrap: pretty; }
.k-hero__lead { font-size: clamp(16px, 1.5vw, 19px); line-height: 1.55; color: #DDD8D2; max-width: 52ch; margin: 0 0 34px; text-wrap: pretty; }
.k-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.k-tools { margin-top: 44px; }
.k-tools__label { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: #D6D0C8; margin-bottom: 12px; }
/* --n = number of tiles (tools + e-mail); 4 in the design, max-width keeps each tile its design width */
.k-tools__grid { --n: 4; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 10px; max-width: calc(var(--n) * 212.5px + (var(--n) - 1) * 10px); }
.k-tool, .k-tool:hover { background: rgba(32, 30, 27, .72); border: 1px solid #4A453F; color: #F4F2EE; border-radius: 12px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; min-height: 56px; transition: background-color .2s ease, border-color .2s ease; }
.k-tool:hover { background: rgba(32, 30, 27, .92); border-color: var(--accent-on-dark); }
.k-tool--light, .k-tool--light:hover { background: #F4F2EE; color: #201E1B; border-color: #F4F2EE; }
.k-tool--light:hover { background: #FFFFFF; border-color: #FFFFFF; }
.k-tool__ico { width: 26px; height: 26px; border-radius: 6px; background: #F4F2EE; color: #201E1B; display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 700; font-size: 13px; flex: 0 0 auto; }
.k-tool--light .k-tool__ico { background: #201E1B; color: #F4F2EE; }
.k-tool__ico--accent { background: var(--accent); color: #FFFFFF; font-family: inherit; font-weight: 400; }
/* brand marks of the remote tools: white tile so both brand colours read on any background */
.k-ico--logo, .k-tool--light .k-ico--logo { background: #FFFFFF; }
.k-ico--logo svg { width: 64%; height: 64%; display: block; }
.k-tool--light .k-ico--logo { box-shadow: inset 0 0 0 1px #E3DED5; }
.k-tool__name { font-weight: 600; font-size: 15px; }
.k-tool__mono { font-family: var(--mono); font-size: 13px; min-width: 0; }
.k-tool__mono .k-sm { display: none; }

/* ---------- Icons (sprite assets/img/ikone.svg) ---------- */
.k-ik { --ik-line: #201E1B; --ik-fill: #CFE5D9; --ik-bg: #FFFFFF; display: inline-block; flex: 0 0 auto; width: 24px; height: 24px; }
@supports (color: color-mix(in oklab, red 50%, white)) {
	.k-ik { --ik-fill: color-mix(in oklab, var(--accent) 22%, white); }
}

/* ---------- Strip ---------- */
.k-strip { background: #F4F2EE; border-bottom: 1px solid #E3DED5; }
.k-strip__in { max-width: 1280px; margin: 0 auto; padding: 26px 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 32px; justify-content: space-between; }
.k-strip__label { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: #7A736B; }
.k-strip__list { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin: 0; padding: 0; list-style: none; }
.k-strip__list li { font-family: var(--display); font-weight: 600; font-size: 15px; color: #5C564E; display: flex; align-items: center; gap: 10px; }
.k-strip__list .k-ik { width: 26px; height: 26px; --ik-line: #5C564E; --ik-bg: #F4F2EE; }

/* ---------- O nas ---------- */
.k-about { background: #F4F2EE; }
.k-about__in { max-width: 1280px; margin: 0 auto; padding: clamp(56px, 8vw, 112px) 28px; }
.k-about h2 { font-size: clamp(28px, 4vw, 52px); line-height: 1.06; margin: 0 0 56px; max-width: 24ch; }
.k-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.k-about__cols { gap: clamp(24px, 4vw, 56px); }
.k-about__cols p { margin: 0; font-size: 16px; line-height: 1.65; color: #4B463F; text-wrap: pretty; }
.k-about__img { margin-top: clamp(32px, 4vw, 56px); border-radius: 16px; overflow: hidden; height: clamp(220px, 32vw, 380px); background: #2A2724; display: flex; }

/* ---------- Storitve ---------- */
.k-services { background: #F4F2EE; }
.k-services__in { max-width: 1280px; margin: 0 auto; padding: 0 28px clamp(56px, 8vw, 112px); }
.k-services__head { text-align: center; margin-bottom: 44px; }
.k-services__head .k-eyebrow { margin-bottom: 18px; }
.k-services__head h2 { font-size: clamp(28px, 3.6vw, 48px); line-height: 1.06; margin: 0 auto 14px; max-width: 22ch; }
.k-services__head p { margin: 0 auto; font-size: 16px; line-height: 1.6; color: #5C564E; max-width: 56ch; }
.k-services__grid { gap: 20px; }
.k-card { background: #FFFFFF; border-radius: 14px; overflow: hidden; border: 1px solid #E3DED5; display: flex; flex-direction: column; }
.k-card__bar { background: #201E1B; padding: 12px 18px; display: flex; align-items: center; gap: 10px; }
.k-card__sq { width: 7px; height: 7px; border-radius: 2px; background: var(--accent-on-dark); display: inline-block; flex: 0 0 auto; }
.k-card__tag { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: #E4DFD8; }
.k-card__img { height: 190px; background: #201E1B; padding: 0 18px 18px; }
.k-card__img img { border-radius: 8px; }
.k-card__body { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 16px; }
.k-card h3 { font-family: var(--display); font-size: 20px; font-weight: 600; letter-spacing: -.02em; margin: 0; display: flex; align-items: center; gap: 12px; }
.k-card h3 .k-ik { width: 34px; height: 34px; }
.k-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.k-list li { display: flex; gap: 11px; font-size: 15px; line-height: 1.5; color: #3C382F; }
.k-list__n { font-family: var(--mono); font-size: 11px; color: var(--accent); padding-top: 3px; flex: 0 0 auto; }

/* ---------- Podpora ---------- */
.k-support { background: #201E1B; color: #F4F2EE; border-radius: 28px 28px 0 0; }
.k-support__in { max-width: 1280px; margin: 0 auto; padding: clamp(56px, 8vw, 104px) 28px clamp(56px, 7vw, 96px); }
.k-support__top { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 32px; }
.k-support__top .k-eyebrow { color: #A6A09A; margin: 0; }
.k-support__status { display: flex; align-items: center; gap: 9px; }
.k-support__status span:last-child { font-family: var(--mono); font-size: 12px; color: #E4DFD8; }
.k-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.k-support__head { gap: clamp(24px, 5vw, 64px); align-items: end; margin-bottom: 44px; }
.k-support__head h2 { font-size: clamp(28px, 4vw, 52px); line-height: 1.04; }
.k-support__head p { margin: 0; font-size: 16px; line-height: 1.65; color: #C4BEB6; max-width: 46ch; }
.k-support__grid, .k-steps { gap: 18px; }
.k-support__grid { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }
.k-app, .k-app:hover { background: #2A2724; border: 1px solid #3B3733; border-radius: 14px; padding: 26px; min-height: 200px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; color: #F4F2EE; transition: background-color .2s ease, border-color .2s ease; }
.k-app:hover { background: #332F2B; border-color: var(--accent-on-dark); }
.k-app__ico { width: 48px; height: 48px; border-radius: 10px; background: #F4F2EE; color: #201E1B; display: flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 700; font-size: 20px; }
.k-app__name { font-family: var(--display); font-size: 23px; font-weight: 600; letter-spacing: -.02em; margin-bottom: 8px; }
.k-app__more { font-family: var(--mono); font-size: 12px; color: var(--accent-on-dark); }
.k-steps { margin: 20px 0 0; padding: 0; list-style: none; }
.k-step { background: #191715; border-radius: 14px; padding: 24px; }
.k-step__n { font-family: var(--display); font-size: 34px; font-weight: 600; color: var(--accent-on-dark); letter-spacing: -.03em; margin-bottom: 10px; }
.k-step__t { font-size: 15px; line-height: 1.55; color: #DDD8D2; }
.k-support__foot { margin-top: 36px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.k-support__note { font-family: var(--mono); font-size: 12px; color: #A6A09A; }

/* ---------- Partnerji ---------- */
.k-partners { background: #F4F2EE; }
.k-partners__in { max-width: 1280px; margin: 0 auto; padding: clamp(56px, 8vw, 104px) 28px; }
.k-partners__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 20px; }
.k-partner, .k-partner:hover { background: #FFFFFF; border: 1px solid #E3DED5; border-radius: 14px; padding: 30px; display: flex; flex-direction: column; justify-content: space-between; gap: 30px; min-height: 230px; color: #201E1B; transition: border-color .2s ease; }
.k-partner:hover { border-color: #201E1B; }
.k-partner__logo { width: 160px; height: 56px; display: flex; align-items: center; }
.k-partner__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; display: block; }
.k-partner__logo--empty { border: 1px dashed #C9C2B8; border-radius: 8px; justify-content: center; font-family: var(--mono); font-size: 10px; color: #8A847B; letter-spacing: .06em; }
.k-partner__name { font-family: var(--display); font-size: 24px; font-weight: 600; letter-spacing: -.02em; margin-bottom: 6px; }
.k-partner__desc { font-size: 15px; color: #5C564E; margin-bottom: 16px; }
.k-partner__more { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.k-offer, .k-offer:hover { position: relative; border-radius: 14px; overflow: hidden; min-height: 230px; display: flex; flex-direction: column; justify-content: flex-end; padding: 30px; color: #F4F2EE; background: #201E1B; isolation: isolate; }
.k-offer__img { position: absolute; inset: 0; z-index: -2; opacity: .55; transition: transform .6s ease; }
.k-offer:hover .k-offer__img { transform: scale(1.03); }
.k-offer__shade { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(24, 22, 20, .45), rgba(24, 22, 20, .9)); }
.k-offer__tag { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: #C4BEB6; margin-bottom: auto; }
.k-offer__title { font-family: var(--display); font-size: clamp(24px, 3vw, 36px); font-weight: 600; letter-spacing: -.03em; line-height: 1.1; margin: 24px 0 20px; max-width: 20ch; }
.k-offer .k-btn { align-self: flex-start; padding: 14px 24px; }
.k-offer:hover .k-btn { filter: brightness(1.1); }

/* ---------- Kontakt ---------- */
.k-contact { background: #F4F2EE; }
.k-contact__in { max-width: 1280px; margin: 0 auto; padding: 0 28px clamp(56px, 8vw, 104px); }
.k-contact__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 20px; }
.k-box { background: #FFFFFF; border: 1px solid #E3DED5; border-radius: 14px; padding: clamp(24px, 3vw, 34px); }
.k-box--info { display: flex; flex-direction: column; }
.k-contact h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.06; margin: 0 0 26px; }
.k-dl { margin: 0 0 26px; display: flex; flex-direction: column; border-top: 1px solid #E3DED5; }
.k-dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border-bottom: 1px solid #EDE9E2; }
.k-dl dt { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: #7A736B; }
.k-dl dd { margin: 0; font-size: 15px; text-align: right; line-height: 1.5; }
.k-u { border-bottom: 1px solid #C9C2B8; }
.k-dl .k-u { font-family: var(--mono); font-size: 15px; }
.k-dl dd.k-mono { color: #4B463F; }
.k-map { position: relative; display: block; border-radius: 10px; overflow: hidden; border: 1px solid #E3DED5; margin-top: auto; height: 230px; background: #E9E6E1; }
.k-map img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.k-map__pin { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -22px 0 0 -11px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--accent); box-shadow: 0 0 0 3px #FFFFFF; }
.k-map__pin::after { content: ""; position: absolute; left: 7px; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: #FFFFFF; }
.k-map__open { position: absolute; right: 8px; bottom: 8px; background: rgba(255, 255, 255, .92); color: #201E1B; font-family: var(--mono); font-size: 11px; padding: 6px 10px; border-radius: 999px; }
.k-map__attr { position: absolute; left: 8px; bottom: 8px; background: rgba(255, 255, 255, .8); color: #4B463F; font-size: 10px; padding: 2px 6px; border-radius: 4px; }
.k-map:hover .k-map__open { background: #FFFFFF; color: var(--accent); }
.k-map--live iframe { display: block; width: 100%; height: 100%; border: 0; }

/* form */
.k-form { display: flex; flex-direction: column; gap: 18px; position: relative; }
.k-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.k-field { display: flex; flex-direction: column; gap: 7px; }
.k-field > label { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: #4B463F; }
.k-input { padding: 13px 15px; border: 1px solid #E3DED5; border-radius: 10px; background: #FBFAF8; font-size: 15px; color: #201E1B; width: 100%; min-height: 48px; transition: border-color .2s ease; }
.k-input:focus { border-color: #A6A09A; }
textarea.k-input { resize: vertical; line-height: 1.55; }
select.k-input { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23201E1B' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; }
.k-input[aria-invalid="true"] { border-color: #B4231C; }
.k-err { margin: 0; font-family: var(--mono); font-size: 11px; color: #B4231C; }
.k-err:empty { display: none; }
.k-check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.k-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--accent); flex: 0 0 auto; }
.k-check span { font-size: 14px; line-height: 1.55; color: #4B463F; }
.k-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.k-form__foot { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; border-top: 1px solid #EDE9E2; padding-top: 18px; }
.k-form__foot .k-btn { padding: 15px 28px; }
.k-form__foot .k-btn[disabled] { opacity: .7; cursor: progress; }
.k-form__req { font-family: var(--mono); font-size: 11px; color: #7A736B; }
.k-form__alert { margin: 0; font-size: 14px; color: #B4231C; line-height: 1.5; }
.k-form__alert:empty { display: none; }
.k-sent { display: flex; flex-direction: column; gap: 18px; min-height: 440px; justify-content: center; }
.k-sent[hidden] { display: none; }
.k-sent__ok { width: 46px; height: 46px; border-radius: 999px; background: var(--accent); color: #FFFFFF; display: flex; align-items: center; justify-content: center; font-size: 20px; }
.k-sent h3 { font-family: var(--display); font-size: 28px; font-weight: 600; letter-spacing: -.02em; margin: 0; }
.k-sent p { margin: 0; font-size: 16px; line-height: 1.6; color: #4B463F; max-width: 44ch; }
.k-sent .k-u { font-family: var(--mono); }

/* ---------- Footer ---------- */
.k-ftr { background: #201E1B; color: #C4BEB6; border-radius: 28px 28px 0 0; overflow: hidden; }
.k-ftr__grid { max-width: 1280px; margin: 0 auto; padding: clamp(40px, 5vw, 64px) 28px 0; display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
.k-ftr__logo { display: inline-flex; background: #F4F2EE; border-radius: 8px; padding: 8px 12px; margin-bottom: 16px; }
.k-ftr__logo img { height: 38px; width: auto; display: block; }
.k-ftr__about { margin: 0; font-size: 14px; line-height: 1.6; max-width: 32ch; }
.k-ftr__col { display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
/* 3px padding + 3px gap = the design's 9px rhythm, but each link is a 24px+ tap target */
.k-ftr__col > a, .k-ftr__col > span { padding: 3px 0; }
.k-ftr__h { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: #A6A09A; margin-bottom: 8px; }
.k-ftr a { color: #C4BEB6; }
.k-ftr a:hover { color: #FFFFFF; }
.k-ftr a.k-ftr__hi { color: #F4F2EE; font-family: var(--mono); font-size: 13px; }
.k-ftr__bottom { max-width: 1280px; margin: 32px auto 0; padding: 18px 28px 28px; border-top: 1px solid #34302C; display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.k-ftr__bottom, .k-ftr__bottom a { font-family: var(--mono); font-size: 11px; color: #A6A09A; }
.k-ftr__bottom a { text-transform: uppercase; display: inline-block; padding: 5px 0; margin: -5px 0; }
.k-ftr__ttm { text-transform: uppercase; }
.k-ftr__bottom .k-ftr__ttm a { color: #E4DFD8; }
.k-ftr__bottom a:hover, .k-ftr__bottom .k-ftr__ttm a:hover { color: #FFFFFF; }
.k-wordmark { font-family: var(--display); font-weight: 700; font-size: 15vw; line-height: .82; letter-spacing: -.05em; color: #F4F2EE; padding: 0 28px; margin-bottom: -.16em; text-align: center; user-select: none; }

/* mobile thumb bar */
.k-thumb { display: none; position: fixed; bottom: 14px; z-index: 70; align-items: center; justify-content: center; padding: 15px; border-radius: 999px; font-weight: 600; font-size: 15px; min-height: 50px; }
.k-thumb--l, .k-thumb--l:hover { left: 14px; right: 50%; margin-right: 7px; background: #201E1B; color: #F4F2EE; }
.k-thumb--r, .k-thumb--r:hover { left: 50%; right: 14px; margin-left: 7px; background: var(--accent); color: #FFFFFF; }

/* ---------- Text pages (privacy policy, 404) ---------- */
.k-text { max-width: 1280px; margin: 0 auto; padding: clamp(56px, 8vw, 104px) 28px; }
.k-text__head { max-width: 760px; margin-bottom: 40px; }
.k-text h1 { font-family: var(--display); font-weight: 600; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.04; letter-spacing: -.035em; margin: 0; text-wrap: pretty; }
.k-prose { max-width: 760px; font-size: 16px; line-height: 1.7; color: #3C382F; }
.k-prose > * { margin: 0 0 1em; }
.k-prose h2 { font-family: var(--display); font-weight: 600; font-size: 24px; letter-spacing: -.02em; line-height: 1.2; color: #201E1B; margin: 1.8em 0 .6em; }
.k-prose h3 { font-family: var(--display); font-weight: 600; font-size: 19px; color: #201E1B; margin: 1.5em 0 .5em; }
.k-prose a { border-bottom: 1px solid #C9C2B8; }
.k-prose ul, .k-prose ol { padding-left: 1.3em; }
.k-prose li { margin-bottom: .35em; }
.k-prose table { border-collapse: collapse; width: 100%; font-size: 15px; }
.k-prose th, .k-prose td { border-bottom: 1px solid #E3DED5; padding: 10px 8px; text-align: left; vertical-align: top; }

/* reveal on scroll (hidden state is set by JS only, so no-JS users see everything) */
[data-reveal][data-hidden] { opacity: 0; transform: translateY(14px); }
[data-reveal] { transition: opacity .6s ease, transform .6s ease; }

/* ---------- Responsive (breakpoints from the design) ---------- */
@media (max-width: 1000px) {
	.k-cols3, .k-split, .k-partners__grid, .k-contact__grid, .k-ftr__grid { grid-template-columns: minmax(0, 1fr); }
	.k-wordmark { font-size: 21vw; }
}
@media (max-width: 639px) {
	.k-pair { grid-template-columns: minmax(0, 1fr); }
	.k-thumb { display: flex; }
	.k-nav, .k-hdr__mail { display: none; }
	.k-hdr__bar { justify-content: space-between; }
	.k-ftr__bottom { padding-bottom: 96px; }
	.k-hero { min-height: 660px; }
	.k-tools__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.k-tools__grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
	.k-dl dd { word-break: break-word; }
}
/* the e-mail does not fit a quarter of a narrow row */
@media (max-width: 760px) {
	.k-tool__mono .k-lg { display: none; }
	.k-tool__mono .k-sm { display: inline; }
}
@media print {
	.k-hdr, .k-thumb, .k-hero__img, .k-wordmark, .k-form { display: none !important; }
}
