/* Koduvalve – component styles. Tokens come from theme.json (--wp--preset--*). */

:root {
  --kv-r-s: 4px; --kv-r-m: 8px; --kv-r-l: 12px;
  --kv-shadow: 0 1px 2px rgba(28,21,23,.06), 0 8px 24px rgba(28,21,23,.08);
  --kv-font: var(--wp--preset--font-family--open-sans);
}
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { text-wrap: balance; }
.kv-num, .kv-price, .is-style-compare td, .is-style-price { font-variant-numeric: tabular-nums; }

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link { transition: background .15s, color .15s; }
.wp-block-button.is-style-secondary .wp-block-button__link {
  background: var(--wp--preset--color--ground-deep); color: var(--wp--preset--color--ink);
}
.wp-block-button.is-style-secondary .wp-block-button__link:hover { background: var(--wp--preset--color--line); color: var(--wp--preset--color--ink); }
.has-ink-background-color .wp-block-button.is-style-secondary .wp-block-button__link,
.has-red-background-color .wp-block-button.is-style-secondary .wp-block-button__link {
  background: rgba(255,255,255,.14); color: #fff;
}
.has-ink-background-color .wp-block-button.is-style-secondary .wp-block-button__link:hover,
.has-red-background-color .wp-block-button.is-style-secondary .wp-block-button__link:hover { background: rgba(255,255,255,.22); }
.wp-block-button.is-style-ghost .wp-block-button__link {
  background: transparent; color: var(--wp--preset--color--red-dark); padding-left: .25rem; padding-right: .25rem;
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover { text-decoration: underline; background: transparent; }
.wp-block-button.is-style-ghost .wp-block-button__link::after { content: " →"; }
.wp-block-button.is-style-on-red .wp-block-button__link { background: #fff; color: var(--wp--preset--color--red-dark); }
.wp-block-button.is-style-on-red .wp-block-button__link:hover { background: var(--wp--preset--color--red-tint); color: var(--wp--preset--color--red-dark); }
.wp-block-button.kv-small .wp-block-button__link { padding: .75rem 1rem; font-size: .9375rem; }
.wp-block-button.kv-large .wp-block-button__link { padding: 1.25rem 1.75rem; font-size: 1.0625rem; }
.wp-block-button.kv-full { width: 100%; }
.wp-block-button.kv-full .wp-block-button__link { width: 100%; }

/* ---------- Paragraph styles ---------- */
.is-style-eyebrow { font-size: .75rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--red); }
.is-style-muted { color: var(--wp--preset--color--muted); font-size: .875rem !important; }
.is-style-price { font-size: var(--wp--preset--font-size--price) !important; font-weight: 800; color: var(--wp--preset--color--ink); letter-spacing: -.01em; line-height: 1.1; }
.is-style-price small, .is-style-price .kv-sub { font-size: .9375rem; font-weight: 600; color: var(--wp--preset--color--muted); letter-spacing: 0; }

/* ---------- Check list ---------- */
.wp-block-list.is-style-checks { list-style: none; padding-left: 0; display: grid; gap: .5rem; }
.wp-block-list.is-style-checks li { display: flex; gap: .625rem; align-items: flex-start; }
.wp-block-list.is-style-checks li::before {
  content: ""; flex: 0 0 18px; height: 18px; margin-top: 3px; border-radius: 50%; background: var(--wp--preset--color--red-tint);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%23AF1E23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- Cards ---------- */
.wp-block-group.is-style-card, .wp-block-group.is-style-card-featured {
  background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.5rem; position: relative;
}
.wp-block-group.is-style-card-featured { border-color: var(--wp--preset--color--red); box-shadow: var(--kv-shadow); }
.kv-flag { position: absolute; top: -12px; left: 1.5rem; background: var(--wp--preset--color--red); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; margin: 0 !important; }

.wp-block-group.is-style-device-card {
  background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-m); padding: .75rem .75rem .875rem;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.wp-block-group.is-style-device-card:hover { border-color: var(--wp--preset--color--red-line); transform: translateY(-2px); box-shadow: var(--kv-shadow); }
.wp-block-group.is-style-device-card .wp-block-image { position: relative; border-radius: var(--kv-r-s); overflow: hidden; background: var(--wp--preset--gradient--device); aspect-ratio: 4/3; display: grid; place-items: center; margin: 0; }
.wp-block-group.is-style-device-card .wp-block-image img { max-height: 80%; width: auto; object-fit: contain; }
.wp-block-group.is-style-device-card h4 { font-size: .9375rem; }
.wp-block-group.is-style-device-card .kv-device-price { font-size: 1.125rem; font-weight: 800; color: var(--wp--preset--color--red); letter-spacing: -.01em; }
.wp-block-group.is-style-device-card .kv-device-price small { font-weight: 400; color: var(--wp--preset--color--muted); font-size: .8125rem; letter-spacing: 0; }
.wp-block-group.is-style-device-card p { font-size: .8125rem; }
.wp-block-group.is-style-device-card .wp-block-button__link { background: var(--wp--preset--color--red-tint); color: var(--wp--preset--color--red-dark); padding: .6875rem 1rem; font-size: .875rem; }
.wp-block-group.is-style-device-card .wp-block-button__link:hover { background: var(--wp--preset--color--red); color: #fff; }
.wp-block-group.is-style-device-card .wp-block-button__link::before { content: "+ "; }
.kv-tag { position: absolute; top: 8px; left: 8px; z-index: 1; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--red-dark); font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; }

/* ---------- Trust bar ---------- */
.wp-block-group.is-style-trust-bar { background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); padding: .875rem 1.25rem; }
.wp-block-group.is-style-trust-bar p { font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--ink); margin: 0; display: inline-flex; gap: .5rem; align-items: center; }
.wp-block-group.is-style-trust-bar p::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--red); }

/* ---------- CTA bar ---------- */
.wp-block-group.is-style-cta-bar { background: var(--wp--preset--color--red); color: #fff; border-radius: var(--kv-r-l); padding: 2.25rem 2rem; }
.wp-block-group.is-style-cta-bar h2, .wp-block-group.is-style-cta-bar h3 { color: #fff; }
.wp-block-group.is-style-cta-bar p { color: rgba(255,255,255,.9); }
.wp-block-group.is-style-cta-bar .wp-block-button__link { background: #fff; color: var(--wp--preset--color--red-dark); }
.wp-block-group.is-style-cta-bar .wp-block-button__link:hover { background: var(--wp--preset--color--red-tint); }
.wp-block-group.is-style-cta-bar a:not(.wp-block-button__link) { color: #fff; }

/* ---------- FAQ (core/details) ---------- */
.wp-block-group.is-style-faq { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 0 1.25rem; }
.wp-block-group.is-style-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line-soft); margin: 0; padding: 1rem 0; }
.wp-block-group.is-style-faq .wp-block-details:last-child { border-bottom: 0; }
.wp-block-group.is-style-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; font-weight: 700; color: var(--wp--preset--color--ink); }
.wp-block-group.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-group.is-style-faq summary::after { content: "+"; color: var(--wp--preset--color--red); font-size: 1.375rem; line-height: 1; font-weight: 400; }
.wp-block-group.is-style-faq details[open] summary::after { content: "–"; }
.wp-block-group.is-style-faq .wp-block-details > :not(summary) { font-size: .9375rem; max-width: 70ch; margin-top: .5rem; }

/* ---------- Comparison table ---------- */
.wp-block-table.is-style-compare { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); overflow-x: auto; }
.wp-block-table.is-style-compare table { border-collapse: collapse; min-width: 640px; }
.wp-block-table.is-style-compare th, .wp-block-table.is-style-compare td { padding: .75rem 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--line-soft); vertical-align: top; text-align: center; }
.wp-block-table.is-style-compare thead th { font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; border-bottom: 1px solid var(--wp--preset--color--line); }
.wp-block-table.is-style-compare tbody td:first-child, .wp-block-table.is-style-compare thead th:first-child { text-align: left; font-weight: 600; color: var(--wp--preset--color--ink); width: 38%; }
.wp-block-table.is-style-compare tbody tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-compare td:nth-child(3), .wp-block-table.is-style-compare th:nth-child(3) { background: var(--wp--preset--color--red-tint); }
.wp-block-table.is-style-compare tr.kv-row-price td { font-weight: 800; color: var(--wp--preset--color--ink); font-size: 1.25rem; }
.wp-block-table.is-style-compare tbody tr:hover > * { background: var(--wp--preset--color--ground); box-shadow: inset 0 2px 0 var(--wp--preset--color--red), inset 0 -2px 0 var(--wp--preset--color--red); color: var(--wp--preset--color--ink); }
.wp-block-table.is-style-compare tbody tr:hover > :first-child { box-shadow: inset 2px 0 0 var(--wp--preset--color--red), inset 0 2px 0 var(--wp--preset--color--red), inset 0 -2px 0 var(--wp--preset--color--red); }
.wp-block-table.is-style-compare tbody tr:hover > :last-child { box-shadow: inset -2px 0 0 var(--wp--preset--color--red), inset 0 2px 0 var(--wp--preset--color--red), inset 0 -2px 0 var(--wp--preset--color--red); }

/* ---------- Buy / rent toggle ---------- */
.kv-toggle { display: inline-grid; grid-template-columns: 1fr 1fr; background: var(--wp--preset--color--ground-deep); border-radius: 999px; padding: 4px; gap: 2px; }
.kv-toggle button { border: 0; background: transparent; font: 600 .9375rem/1 var(--kv-font); color: var(--wp--preset--color--muted); padding: .625rem 1.375rem; border-radius: 999px; cursor: pointer; }
.kv-toggle button[aria-pressed="true"] { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink); box-shadow: 0 1px 2px rgba(28,21,23,.12); }
.kv-toggle button:focus-visible { outline: 3px solid var(--wp--preset--color--red-line); }

/* ---------- Header ---------- */
.kv-header { background: var(--wp--preset--color--surface); border-bottom: 1px solid var(--wp--preset--color--line); position: sticky; top: 0; z-index: 50; }
.kv-header .kv-logo { margin: 0; } .kv-header .kv-logo img { height: 56px; width: auto; display: block; }
.kv-header .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-m); box-shadow: var(--kv-shadow); padding: .5rem; min-width: 280px; }
.kv-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem .75rem; border-radius: var(--kv-r-s); }
.kv-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--ground); }
.kv-lang { width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--line); display: inline-grid; place-items: center; font-size: 0; color: transparent; text-decoration: none; background: linear-gradient(to bottom, #0072CE 0 33.4%, #000 33.4% 66.7%, #fff 66.7% 100%); box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.kv-lang[data-lang="ru"] { background: linear-gradient(to bottom, #fff 0 33.4%, #0039A6 33.4% 66.7%, #D52B1E 66.7% 100%); }
.kv-lang[data-lang="en"] { background: linear-gradient(to bottom, #012169 0 33.4%, #fff 33.4% 66.7%, #C8102E 66.7% 100%); }
.wp-site-blocks > main { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-site-blocks > footer { margin-block-start: 0 !important; }
.kv-header .wp-block-button__link { padding: .75rem 1rem; font-size: .9375rem; }
@media (max-width: 781px) { .kv-header .kv-logo img { height: 44px; } }

/* ---------- Footer ---------- */
.kv-footer { background: var(--wp--preset--color--ink); color: #C9BFC1; }
.kv-footer .kv-logo { margin: 0 0 .75rem; } .kv-footer .kv-logo img { height: 64px; width: auto; }
.kv-footer h4 { color: #fff; font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .625rem; }
.kv-footer a { color: #C9BFC1; text-decoration: none; }
.kv-footer a:hover { color: #fff; }
.kv-footer p { font-size: .875rem; }
.kv-footer .wp-block-navigation { font-weight: 400; font-size: .875rem; }
.kv-footer .wp-block-navigation a { color: #C9BFC1; }
.kv-footer .wp-block-navigation a:hover { color: #fff; }
.kv-footer .kv-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 1rem; font-size: .8125rem; }
.kv-footer .kv-white { color: #fff; }

/* ---------- Forms (Contact Form 7) ---------- */
.wpcf7 label { font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--ink); display: block; margin-bottom: .375rem; }
.wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .wpcf7 select, .wpcf7 textarea {
  font: 400 1rem var(--kv-font); color: var(--wp--preset--color--ink); background: var(--wp--preset--color--surface);
  border: 1.5px solid var(--wp--preset--color--line); border-radius: var(--kv-r-s); padding: .75rem .875rem; width: 100%;
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { outline: 0; border-color: var(--wp--preset--color--red); box-shadow: 0 0 0 3px var(--wp--preset--color--red-line); }
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: .5rem; }
.wpcf7 .wpcf7-radio .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-radio label { display: inline-flex; align-items: center; gap: .5rem; border: 1.5px solid var(--wp--preset--color--line); border-radius: 999px; padding: 7px 14px; font-size: .9375rem; font-weight: 400; line-height: 1.2; white-space: nowrap; cursor: pointer; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); margin: 0; }
.wpcf7 .wpcf7-radio label:has(input:checked) { border-color: var(--wp--preset--color--red); background: var(--wp--preset--color--red-tint); color: var(--wp--preset--color--ink); font-weight: 600; }
.wpcf7 input[type="radio"], .wpcf7 input[type="checkbox"] { accent-color: var(--wp--preset--color--red); margin: 0; width: 16px; height: 16px; }
.wpcf7 input[type="submit"] { font: 600 1.0625rem/1 var(--kv-font); background: var(--wp--preset--color--red); color: #fff; border: 0; border-radius: var(--kv-r-s); padding: 1.25rem 1.75rem; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--red-dark); }
.wpcf7 .kv-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.wpcf7 .kv-form-grid .kv-span { grid-column: 1 / -1; }
@media (max-width: 640px) { .wpcf7 .kv-form-grid { grid-template-columns: 1fr; } }
.wpcf7 .wpcf7-response-output { border-radius: var(--kv-r-s); }

/* ---------- Misc ---------- */
.kv-section { padding-block: var(--wp--preset--spacing--50); }
.kv-hero-img img { border-radius: var(--kv-r-l); }
.kv-step-num { width: 40px; height: 40px; border-radius: 50%; background: var(--wp--preset--color--red); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.125rem; }
.kv-app-store img { height: 44px; width: auto; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Spline hero ---------- */
.kv-hero3d .kv-accent { color: var(--wp--preset--color--red); }
.kv-hero3d .kv-on-dark { color: rgba(255,255,255,.78); }
.kv-hero3d .kv-on-dark-muted { color: rgba(255,255,255,.55) !important; }
.kv-hero3d h1 { font-size: clamp(2.25rem, 4.1vw, 4rem); letter-spacing: -.03em; line-height: 1.02; text-wrap: balance; }
.kv-hero3d .kv-on-dark { max-width: 34rem; }
.kv-hero3d { overflow: hidden; }
.kv-hero3d > .wp-block-columns.alignfull, .kv-hero3d__bar { padding-inline: clamp(1.25rem, 5vw, 5rem); }
.kv-hero3d__bar { position: relative; z-index: 1; margin-top: clamp(1rem, 3vw, 2rem) !important; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.14); gap: .75rem 2.25rem !important; }
.kv-hero3d__bar p { margin: 0; font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.72); display: inline-flex; gap: .5rem; align-items: center; }
.kv-hero3d__bar p::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-spline { position: relative; aspect-ratio: 4 / 3; width: 116%; margin: -6% -16% -14% 0; }
.kv-spline__stage, .kv-spline__stage spline-viewer { position: absolute; inset: 0; width: 100%; height: 100%; }
.kv-spline__stage spline-viewer { pointer-events: none; -webkit-mask-image: radial-gradient(ellipse 62% 60% at 50% 52%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 62% 60% at 50% 52%, #000 55%, transparent 100%); }
.kv-spline__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: var(--kv-r-l); }
.kv-notify { position: absolute; z-index: 2; left: 8%; bottom: 18%; width: 300px; display: grid; gap: 8px; pointer-events: none; }
.kv-notice { display: flex; gap: 10px; align-items: flex-start; background: rgba(255,255,255,.96); color: var(--wp--preset--color--ink); border-radius: 18px; padding: 11px 13px; box-shadow: 0 18px 40px rgba(0,0,0,.45); animation: kv-drop .45s cubic-bezier(.2,.8,.2,1); font-family: var(--kv-font); }
.kv-notice + .kv-notice { opacity: .7; transform: scale(.97); }
.kv-notice__icon { flex: none; width: 34px; height: 34px; border-radius: 9px; background: var(--wp--preset--color--red); position: relative; }
.kv-notice__icon::after { content: ''; position: absolute; inset: 9px; border: 2.5px solid #fff; border-radius: 50%; border-bottom-color: transparent; }
.kv-notice__body { display: grid; gap: 1px; min-width: 0; }
.kv-notice__meta { display: flex; justify-content: space-between; font-size: .6875rem; color: var(--wp--preset--color--muted); }
.kv-notice b { font-size: .875rem; line-height: 1.25; }
.kv-notice__body > span { font-size: .8125rem; color: var(--wp--preset--color--text); }
.kv-notice--alert .kv-notice__meta span:first-child { color: var(--wp--preset--color--red); font-weight: 700; }
.kv-notice--ok .kv-notice__icon { background: var(--wp--preset--color--ok); }
@keyframes kv-drop { from { transform: translateY(-8px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 781px) { .kv-notify { position: static; width: 100%; margin-top: 1rem; } }

/* ---------- Packages section (dark top bleeding from the hero) ---------- */
.kv-hero3d + .kv-packages { margin-block-start: 0 !important; }
.kv-packages { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0, var(--wp--preset--color--ink) 300px, var(--wp--preset--color--ground) 300px); }
.kv-packages .kv-on-dark { color: rgba(255,255,255,.72); max-width: 34rem; }
.kv-packages .kv-on-dark-muted { color: rgba(255,255,255,.5) !important; }
.kv-packages .kv-toggle { background: rgba(255,255,255,.12); }
.kv-packages .kv-toggle button { color: rgba(255,255,255,.7); }
.kv-packages .kv-toggle button[aria-pressed="true"] { background: #fff; color: var(--wp--preset--color--ink); }
.kv-packages__cards .wp-block-group.is-style-card, .kv-packages__cards .wp-block-group.is-style-card-featured { transition: transform .25s ease, box-shadow .25s ease; box-shadow: 0 18px 40px rgba(28,21,23,.18); }
.kv-packages__cards .wp-block-group.is-style-card:hover, .kv-packages__cards .wp-block-group.is-style-card-featured:hover { transform: translateY(-6px); box-shadow: 0 28px 50px rgba(28,21,23,.26); }
.kv-plan { width: 100%; height: auto; max-height: 120px; display: block; margin-bottom: .75rem; fill: none; stroke: var(--wp--preset--color--line); stroke-width: 2; }
.kv-plan .kv-hub { fill: var(--wp--preset--color--ink); stroke: none; }
.kv-plan .kv-dot { fill: var(--wp--preset--color--red); stroke: none; animation: kv-pulse 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.kv-plan .kv-dot--cam { fill: var(--wp--preset--color--red-dark); }
@keyframes kv-pulse { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: 1; transform: scale(1.35); } }
.kv-card-dark { background: #26191c !important; border-color: rgba(255,255,255,.16) !important; color: #fff; }
.kv-card-dark h3, .kv-card-dark .is-style-price, .kv-card-dark .wp-block-list.is-style-checks li { color: #fff; }
.kv-card-dark .is-style-muted { color: rgba(255,255,255,.6); }
.kv-card-dark .kv-plan { stroke: rgba(255,255,255,.3); }
.kv-card-dark .kv-plan .kv-hub { fill: #fff; }
.kv-card-dark .wp-block-list.is-style-checks li::before { background-color: rgba(255,255,255,.16); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.kv-card-dark .wp-block-separator { border-color: rgba(255,255,255,.18); }
.kv-card-dark .wp-block-button.is-style-ghost .wp-block-button__link { color: #fff; }
@media (prefers-reduced-motion: reduce) { .kv-plan .kv-dot { animation: none; opacity: 1; } }

/* ---------- Steps timeline ---------- */
.wp-block-columns.kv-steps { position: relative; }
.wp-block-columns.kv-steps::before { content: ""; position: absolute; left: 6%; right: 6%; top: 20px; height: 3px; background: linear-gradient(90deg, var(--wp--preset--color--red) 0, var(--wp--preset--color--red) 33%, var(--wp--preset--color--red-line) 33%); border-radius: 2px; background-size: 300% 100%; animation: kv-line 6s linear infinite; }
@keyframes kv-line { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
.kv-step { background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.5rem; position: relative; height: 100%; transition: transform .25s ease, box-shadow .25s ease; }
.kv-step:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(28,21,23,.12); }
.kv-step__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.kv-step__art { width: 120px; height: 80px; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.kv-step__art .kv-fill { fill: var(--wp--preset--color--red); stroke: none; }
.kv-step__art .kv-on-fill { stroke: #fff; }
.kv-step__art .kv-card { fill: #fff; stroke: var(--wp--preset--color--line); }
.kv-step__art .kv-dash { stroke: var(--wp--preset--color--red); stroke-dasharray: 3 3; }
.kv-step h3 { margin-top: 0; }
@media (max-width: 781px) { .wp-block-columns.kv-steps::before { display: none; } }
ol.kv-steps { padding-left: 1.25rem; display: grid; gap: .5rem; }

/* ---------- Why us bento ---------- */
.kv-bento { display: grid; grid-template-columns: 1.2fr 1fr 1fr; grid-template-rows: auto auto; gap: 1rem; margin-top: var(--wp--preset--spacing--40); }
.kv-tile { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.5rem; transition: transform .25s ease, box-shadow .25s ease; }
.kv-tile:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(28,21,23,.12); }
.kv-tile h3 { font-size: 1.125rem; margin: 0 0 .5rem; }
.kv-tile p { margin: 0; color: var(--wp--preset--color--text); }
.kv-tile--big { grid-row: 1 / 3; background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; position: relative; overflow: hidden; min-height: 320px; }
.kv-tile--big h3 { color: #fff; font-size: 1.375rem; }
.kv-tile--big p { color: rgba(255,255,255,.72); }
.kv-tile__year { position: absolute; top: -.1em; right: -.05em; font-size: clamp(6rem, 12vw, 10rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.18); pointer-events: none; }
.kv-tile__row { display: flex; gap: .5rem; margin-top: 1rem; }
.kv-tile__row span { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; padding: 4px 10px; color: rgba(255,255,255,.85); }
.kv-tile--wide { grid-column: 2 / 4; display: flex; gap: 1.25rem; align-items: flex-start; }
.kv-tile__ico { width: 48px; height: 48px; flex: none; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 1rem; }
.kv-tile__ico .kv-red { stroke: var(--wp--preset--color--red); }
.kv-tile__ico .kv-red-fill { fill: var(--wp--preset--color--red); stroke: none; }
@media (max-width: 781px) { .kv-bento { grid-template-columns: 1fr; } .kv-tile--big { grid-row: auto; min-height: 240px; } .kv-tile--wide { grid-column: auto; } }

/* Sections sit flush against each other; tighter gap after the package cards. */
.entry-content > .alignfull + .alignfull { margin-block-start: 0 !important; }
.kv-packages { padding-bottom: var(--wp--preset--spacing--40) !important; }
.kv-steps-section { padding-top: var(--wp--preset--spacing--50) !important; }

/* Section rhythm: 60 → 48/40 on the inner sections. */
.kv-steps-section, .kv-why, .kv-section.kv-faq-section, .kv-special { padding-top: var(--wp--preset--spacing--50) !important; padding-bottom: var(--wp--preset--spacing--50) !important; }
.kv-why .kv-bento { margin-top: var(--wp--preset--spacing--30); }

/* ---------- Special packages ---------- */
.kv-special__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: var(--wp--preset--spacing--30); }
.kv-special__card { display: grid; grid-template-rows: 200px auto; border-radius: var(--kv-r-l); overflow: hidden; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); transition: transform .25s ease, box-shadow .25s ease; }
.kv-special__card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(28,21,23,.14); }
.kv-special__media { display: grid; place-items: center; padding: 1rem; }
.kv-special__card--alarm .kv-special__media { background: linear-gradient(135deg, var(--wp--preset--color--red-tint), #fff); }
.kv-special__card--smoke .kv-special__media { background: linear-gradient(135deg, var(--wp--preset--color--ink), #3a2d31); }
.kv-special__art { width: min(100%, 300px); height: 100%; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.kv-special__art .kv-body { fill: #fff; }
.kv-special__art .kv-btn { fill: var(--wp--preset--color--red); stroke: none; }
.kv-special__art .kv-strap { stroke: var(--wp--preset--color--ink); }
.kv-special__art .kv-ring { stroke: var(--wp--preset--color--red); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: kv-ring 2.4s ease-out infinite; }
.kv-special__art .kv-ring--2 { animation-delay: 1.2s; }
@keyframes kv-ring { 0% { transform: scale(.9); opacity: .9; } 100% { transform: scale(1.9); opacity: 0; } }
.kv-special__art .kv-wave { stroke: var(--wp--preset--color--red); stroke-dasharray: 4 4; }
.kv-special__art .kv-phone { fill: #fff; }
.kv-special__art .kv-msg { fill: #fff; stroke: var(--wp--preset--color--line); filter: drop-shadow(0 6px 10px rgba(28,21,23,.15)); }
.kv-special__art .kv-lines { stroke: var(--wp--preset--color--line); }
.kv-special__card--smoke .kv-special__art { stroke: rgba(255,255,255,.85); }
.kv-special__card--smoke .kv-special__art .kv-body { fill: #f3efef; stroke: none; }
.kv-special__card--smoke .kv-special__art .kv-vent { stroke: var(--wp--preset--color--line); }
.kv-special__card--smoke .kv-special__art .kv-strap { stroke: rgba(255,255,255,.25); }
.kv-special__art .kv-smoke { stroke: rgba(255,255,255,.55); stroke-width: 2.5; animation: kv-smoke 3s ease-in-out infinite; transform-box: fill-box; transform-origin: bottom; }
@keyframes kv-smoke { 0%, 100% { transform: translateY(0); opacity: .35; } 50% { transform: translateY(-6px); opacity: .8; } }
.kv-blink { animation: kv-blink 1.6s steps(2, end) infinite; }
@keyframes kv-blink { 0%, 60% { opacity: 1; } 61%, 100% { opacity: .2; } }
.kv-special__body { padding: 1.5rem; display: grid; gap: .5rem; align-content: start; }
.kv-special__body h3 { margin: 0; font-size: 1.375rem; }
.kv-special__body > p { margin: 0; color: var(--wp--preset--color--text); }
.kv-special__body .is-style-eyebrow { margin: 0; }
.kv-special__body .is-style-checks { margin: .5rem 0 0; font-size: .9375rem; }
.kv-special__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .625rem; margin-top: .75rem; }
.kv-special__price > .kv-price:first-child { white-space: nowrap; font-size: 2rem; font-weight: 800; letter-spacing: -.01em; color: var(--wp--preset--color--ink); }
.kv-special__price small { flex-basis: 100%; color: var(--wp--preset--color--muted); font-size: .875rem; }
.kv-special__actions { display: flex; align-items: center; gap: 1.25rem; margin-top: .5rem; flex-wrap: wrap; }
.kv-special__actions .kv-link { font-weight: 600; color: var(--wp--preset--color--red-dark); text-decoration: none; }
.kv-special__actions .kv-link:hover { text-decoration: underline; }
@media (max-width: 781px) { .kv-special__grid { grid-template-columns: 1fr; } .kv-special__card { grid-template-rows: 160px auto; } }

/* Compact order form */
.wpcf7 .kv-form-grid { gap: .625rem .875rem; }
.wpcf7 .kv-form-grid p { margin: 0 !important; }
.wpcf7 label { margin-bottom: .2rem; font-size: .8125rem; }
.wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .wpcf7 select { padding: .55rem .75rem; font-size: .9375rem; }
.wpcf7 textarea { padding: .55rem .75rem; font-size: .9375rem; min-height: 4.5rem; }
.wpcf7 .wpcf7-radio label { padding: 6px 12px; font-size: .875rem; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; } .wpcf7 .wpcf7-acceptance label { font-weight: 400; font-size: .8125rem; display: inline-flex; gap: .5rem; align-items: flex-start; color: var(--wp--preset--color--text); }
.wpcf7 input[type="submit"] { padding: .9rem 1.5rem; font-size: 1rem; }
.wpcf7 .kv-form-grid p.kv-submit { margin-top: .25rem !important; }
ol.kv-steps::before { content: none !important; display: none !important; }
ol.kv-list-steps { padding-left: 1.25rem; display: grid; gap: .5rem; }

/* Form polish: equal columns, block-level controls, card wrapper */
.wpcf7 form { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.5rem; box-shadow: 0 18px 40px rgba(28,21,23,.06); }
.wpcf7 .kv-form-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: .875rem 1rem; }
.wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
.wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .wpcf7 select, .wpcf7 textarea { box-sizing: border-box; max-width: 100%; background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-m); }
.wpcf7 select { appearance: none; -webkit-appearance: none; padding-right: 2.25rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%233B3336' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .75rem center; background-size: 16px; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { background-color: #fff; }
.wpcf7 label { color: var(--wp--preset--color--text); font-weight: 600; }
.wpcf7 .wpcf7-radio label { background: var(--wp--preset--color--ground); }
.wpcf7 .wpcf7-radio label:has(input:checked) { background: var(--wp--preset--color--red-tint); }
.wpcf7 .wpcf7-acceptance label { background: none; border: 0; padding: 0; }
.wpcf7 input[type="submit"] { width: 100%; }
@media (max-width: 640px) { .wpcf7 form { padding: 1rem; } }

/* ---------- FAQ (two columns, numbered accordion) ---------- */
.kv-faq { counter-reset: faq; }
.kv-faq .wp-block-details { margin: 0 0 .625rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-m); background: var(--wp--preset--color--ground); padding: 0; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.kv-faq .wp-block-details[open] { border-color: var(--wp--preset--color--red); box-shadow: 0 12px 30px rgba(28,21,23,.08); background: var(--wp--preset--color--surface); }
.kv-faq summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 2rem 1fr 1.5rem; align-items: center; gap: .75rem; padding: 1rem 1.125rem; font-weight: 700; color: var(--wp--preset--color--ink); }
.kv-faq summary::-webkit-details-marker { display: none; }
.kv-faq summary::before { counter-increment: faq; content: "0" counter(faq); font-size: .75rem; font-weight: 700; letter-spacing: .06em; color: var(--wp--preset--color--red); }
.kv-faq summary::after { content: ""; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--wp--preset--color--red-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3v10M3 8h10' stroke='%23AF1E23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat; transition: transform .25s ease; }
.kv-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.kv-faq .wp-block-details p { margin: 0; padding: 0 1.125rem 1.125rem 3.875rem; color: var(--wp--preset--color--text); }
@media (max-width: 640px) { .kv-faq .wp-block-details p { padding-left: 1.125rem; } }

/* ---------- Dark closing CTA ---------- */
.kv-cta { overflow: hidden; }
.kv-cta__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 2rem; align-items: center; }
.kv-cta__text h2 { color: #fff; font-size: clamp(1.75rem, 3.2vw, 2.75rem); letter-spacing: -.02em; line-height: 1.08; margin: .5rem 0 1rem; }
.kv-cta__text .kv-accent { color: var(--wp--preset--color--red); }
.kv-cta__text .kv-on-dark { color: rgba(255,255,255,.78); max-width: 34rem; margin: 0; }
.kv-cta__text .kv-on-dark-muted { color: rgba(255,255,255,.5) !important; }
.kv-cta__text .is-style-eyebrow { margin: 0; }
.kv-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.kv-cta__actions .kv-btn-ghost { background: rgba(255,255,255,.12); color: #fff; }
.kv-cta__actions .kv-btn-ghost:hover { background: rgba(255,255,255,.22); }
.kv-cta__note { margin: 1rem 0 0; font-size: .875rem; }
.kv-cta__note a { color: rgba(255,255,255,.85); }
.kv-cta__media { display: grid; place-items: center; }
.kv-cta__art { width: min(100%, 360px); height: auto; fill: none; stroke: rgba(255,255,255,.35); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.kv-cta__art .kv-dot { fill: var(--wp--preset--color--red); stroke: none; animation: kv-pulse 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.kv-cta__art .kv-cta__signal { stroke: var(--wp--preset--color--red); stroke-dasharray: 4 5; opacity: .8; }
@media (max-width: 781px) { .kv-cta__grid { grid-template-columns: 1fr; } .kv-cta__media { order: -1; } .kv-cta__art { width: 220px; } }

/* ---------- KKK page ---------- */
.kv-faq-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.kv-faq-nav a { text-decoration: none; font-weight: 600; font-size: .9375rem; color: var(--wp--preset--color--ink); border: 1.5px solid var(--wp--preset--color--line); border-radius: 999px; padding: .5rem 1rem; background: var(--wp--preset--color--surface); transition: border-color .2s, background .2s; }
.kv-faq-nav a:hover { border-color: var(--wp--preset--color--red); background: var(--wp--preset--color--red-tint); }
.kv-faq-group { scroll-margin-top: 6rem; padding-block: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--line); }
.kv-faq-group:first-child { border-top: 0; padding-top: 0; }
.kv-faq-group__title { font-size: 1.5rem; margin: 0 0 .5rem; }
.kv-faq-group .kv-faq { counter-reset: faq; }
.kv-cta__img { width: 100%; max-width: 520px; height: auto; border-radius: var(--kv-r-l); box-shadow: 0 30px 60px rgba(0,0,0,.5); display: block; }

/* ---------- Paketid page ---------- */
.kv-cmp { margin-top: var(--wp--preset--spacing--40); }
.wp-block-table.is-style-compare.kv-cmp thead th { text-transform: none; letter-spacing: 0; vertical-align: bottom; padding-top: 1.25rem; position: relative; }
.kv-cmp__name { display: block; font-size: 1.375rem; font-weight: 800; color: var(--wp--preset--color--ink); letter-spacing: -.01em; }
.kv-cmp__for { display: block; font-size: .8125rem; font-weight: 500; color: var(--wp--preset--color--muted); }
.kv-cmp__flag { display: inline-block; background: var(--wp--preset--color--red); color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; margin-bottom: .375rem; }
.wp-block-table.is-style-compare.kv-cmp tr.kv-row-sub td { font-size: .875rem; color: var(--wp--preset--color--text); }
.wp-block-table.is-style-compare.kv-cmp tr.kv-row-sub td:first-child { font-weight: 500; color: var(--wp--preset--color--muted); }
.wp-block-table.is-style-compare.kv-cmp tr.kv-row-btn td { padding-top: 1rem; padding-bottom: 1.25rem; }
.wp-block-table.is-style-compare.kv-cmp tr.kv-row-btn:hover > * { box-shadow: none; background: inherit; }
.kv-cmp__btns { display: grid; gap: .5rem; justify-items: center; }
.kv-cmp__btns .wp-block-button__link { width: 100%; text-align: center; white-space: nowrap; padding-inline: 1rem; }
.wp-block-table.is-style-compare.kv-cmp thead th:first-child, .wp-block-table.is-style-compare.kv-cmp tbody td:first-child { width: 28%; }
.kv-cmp__btns .kv-link { font-weight: 600; color: var(--wp--preset--color--red-dark); text-decoration: none; font-size: .9375rem; }
.kv-cmp__btns .kv-link:hover { text-decoration: underline; }
.kv-build__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2.5rem; align-items: center; }
.kv-build h2 { color: #fff; font-size: clamp(1.625rem, 3vw, 2.5rem); letter-spacing: -.02em; margin: .5rem 0 1rem; }
.kv-build .kv-on-dark { color: rgba(255,255,255,.78); margin: 0; }
.kv-build .kv-on-dark-muted { color: rgba(255,255,255,.5) !important; margin: 0; }
.kv-build__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.kv-build__chips span { font-size: .875rem; font-weight: 600; color: #fff; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: .5rem .875rem; background: rgba(255,255,255,.06); display: inline-flex; align-items: center; gap: .5rem; }
.kv-build__chips span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-build__chips .kv-chip-more { border-style: dashed; color: rgba(255,255,255,.6); }
.kv-build__chips .kv-chip-more::before { display: none; }
.kv-tiles-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: var(--wp--preset--spacing--30); }
.kv-tile--sm svg { width: 44px; height: 44px; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-bottom: .875rem; }
.kv-tile--sm svg .kv-red { stroke: var(--wp--preset--color--red); }
.kv-tile--sm svg .kv-red-fill { fill: var(--wp--preset--color--red); stroke: none; }
.kv-tile--sm h3 { font-size: 1.0625rem; }
.kv-tile--sm p { font-size: .9375rem; }
.kv-ostrent__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: var(--wp--preset--spacing--30); }
.kv-ostrent__card { background: var(--wp--preset--color--ground); }
.kv-ostrent__card--rent { border-color: var(--wp--preset--color--red); }
.kv-ostrent__card .is-style-eyebrow { margin: 0 0 .75rem; }
.kv-ostrent__card .is-style-checks { margin: 0; }
.kv-ostrent__price { margin: 1rem 0 0 !important; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); font-size: .9375rem; color: var(--wp--preset--color--text); }
.kv-ostrent__price b { color: var(--wp--preset--color--ink); font-size: 1.125rem; }
@media (max-width: 781px) { .kv-build__grid, .kv-ostrent__grid { grid-template-columns: 1fr; } .kv-tiles-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .kv-tiles-4 { grid-template-columns: 1fr; } }

/* Paketid hero: dark top, table rides into it */
.kv-pkg-hero { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0, var(--wp--preset--color--ink) 580px, var(--wp--preset--color--ground) 580px); }
.kv-pkg-hero .kv-on-dark { color: rgba(255,255,255,.78); }
.kv-pkg-hero .kv-on-dark-muted { color: rgba(255,255,255,.5) !important; }
.kv-pkg-hero .kv-toggle { background: rgba(255,255,255,.12); }
.kv-pkg-hero .kv-toggle button { color: rgba(255,255,255,.7); }
.kv-pkg-hero .kv-toggle button[aria-pressed="true"] { background: #fff; color: var(--wp--preset--color--ink); }
.kv-pkg-hero .kv-cmp { margin-top: var(--wp--preset--spacing--50); box-shadow: 0 24px 60px rgba(28,21,23,.25); }
.kv-pkg-visual { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: .75rem; align-items: end; }
.kv-pkg-visual__card { display: block; text-decoration: none; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--kv-r-l); padding: 1rem; color: #fff; transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.kv-pkg-visual__card:hover { transform: translateY(-6px); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.3); }
.kv-pkg-visual__card--hot { background: rgba(217,48,55,.14); border-color: rgba(217,48,55,.55); padding: 1.25rem 1rem; }
.kv-pkg-visual__card .kv-plan { stroke: rgba(255,255,255,.35); max-height: 110px; margin-bottom: .5rem; }
.kv-pkg-visual__card--hot .kv-plan { max-height: 140px; }
.kv-pkg-visual__card .kv-plan .kv-hub { fill: #fff; }
.kv-pkg-visual__card b { display: block; font-size: 1.0625rem; }
.kv-pkg-visual__card span { display: block; font-size: .8125rem; color: rgba(255,255,255,.6); }
@media (max-width: 781px) { .kv-pkg-visual { grid-template-columns: 1fr 1fr 1fr; } .kv-pkg-hero { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0, var(--wp--preset--color--ink) 720px, var(--wp--preset--color--ground) 720px); } }

/* Configurator preview card (Paketid page) */
.kv-builder-mock { background: #fff; color: var(--wp--preset--color--ink); border-radius: var(--kv-r-l); padding: 1.25rem; max-width: 420px; margin-left: auto; box-shadow: 0 30px 60px rgba(0,0,0,.45); transform: rotate(-1.5deg); }
.kv-builder-mock__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .75rem; }
.kv-builder-mock__head b { font-size: 1.0625rem; } .kv-builder-mock__head span { font-size: .75rem; color: var(--wp--preset--color--muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.kv-builder-mock__row { display: grid; grid-template-columns: 1fr auto auto; gap: .75rem; align-items: center; padding: .5rem 0; border-top: 1px solid var(--wp--preset--color--line-soft); font-size: .9375rem; }
.kv-builder-mock__row em { font-style: normal; font-weight: 700; background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: 2px 10px; font-size: .8125rem; }
.kv-builder-mock__row i { font-style: normal; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--text); min-width: 5.5rem; text-align: right; }
.kv-builder-mock__add { border: 1.5px dashed var(--wp--preset--color--line); border-radius: var(--kv-r-m); text-align: center; padding: .5rem; font-size: .875rem; color: var(--wp--preset--color--red-dark); font-weight: 600; margin: .5rem 0; }
.kv-builder-mock__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 2px solid var(--wp--preset--color--ink); padding-top: .75rem; }
.kv-builder-mock__total b { font-size: 1.5rem; font-weight: 800; }
.kv-builder-mock__note { font-size: .75rem; color: var(--wp--preset--color--muted); margin-top: .25rem; }
@media (max-width: 781px) { .kv-builder-mock { transform: none; margin: 1rem 0 0; max-width: none; } }

/* ---- Paketid: Ost vs Rent (v2) ---- */
.kv-ostrent { position: relative; overflow: hidden; }
.kv-vs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 1.25rem; margin-top: var(--wp--preset--spacing--30); }
.kv-vs__card { position: relative; border-radius: 22px; padding: 1.75rem 1.75rem 1.5rem; display: flex; flex-direction: column; gap: .9rem; background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); box-shadow: 0 24px 50px -32px rgba(28,21,23,.4); transition: transform .25s ease, box-shadow .25s ease; overflow: hidden; }
.kv-vs__card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(28,21,23,.45); }
.kv-vs__card > * { position: relative; }
.kv-vs__card--rent { background: #26191c; color: #fff; border-color: transparent; }
.kv-vs__card--rent::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(175,30,35,.28), transparent 55%); pointer-events: none; }
.kv-vs__card--rent::after { content: none; }
.kv-vs__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.kv-vs__tag { display: inline-block; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; padding: .45rem .75rem; border-radius: 999px; background: var(--wp--preset--color--ink); color: #fff; }
.kv-vs__card--rent .kv-vs__tag { background: var(--wp--preset--color--red); }
.kv-vs__hint { font-size: .8125rem; color: var(--wp--preset--color--text); }
.kv-vs__card--rent .kv-vs__hint { color: rgba(255,255,255,.7); }
.kv-vs__price { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; margin: .25rem 0 0; }
.kv-vs__price b { font-size: clamp(2.5rem, 4.5vw, 3.5rem); line-height: 1; letter-spacing: -.035em; white-space: nowrap; color: var(--wp--preset--color--ink); }
.kv-vs__card--rent .kv-vs__price b { color: #fff; }
.kv-vs__price small { font-size: .85rem; color: var(--wp--preset--color--text); }
.kv-vs__card--rent .kv-vs__price small { color: rgba(255,255,255,.7); }
.kv-vs__pill { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; padding: .25rem .6rem; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); color: #fff; }
.kv-vs__sub { margin: 0 !important; font-size: .9375rem; color: var(--wp--preset--color--text); }
.kv-vs__card--rent .kv-vs__sub { color: rgba(255,255,255,.75); }
.kv-vs__list { list-style: none; margin: .25rem 0 0 !important; padding: 1rem 0 0 !important; border-top: 1px solid var(--wp--preset--color--line); display: grid; gap: .6rem; }
.kv-vs__card--rent .kv-vs__list { border-top-color: rgba(255,255,255,.14); }
.kv-vs__list li { display: flex; gap: .65rem; align-items: flex-start; font-size: .9375rem; margin: 0; }
.kv-vs__list li::before { content: ""; flex: 0 0 20px; height: 20px; margin-top: .1rem; border-radius: 50%; background: var(--wp--preset--color--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
.kv-vs__btn { margin-top: auto; display: inline-flex; justify-content: center; align-items: center; gap: .5rem; padding: .9rem 1.25rem; border-radius: 999px; font-weight: 700; text-decoration: none; background: var(--wp--preset--color--ink); color: #fff; transition: filter .2s; }
.kv-vs__btn:hover { filter: brightness(1.15); color: #fff; }
.kv-vs__card--rent .kv-vs__btn { background: var(--wp--preset--color--red); }
.kv-vs__or { display: flex; align-items: center; justify-content: center; }
.kv-vs__or span { width: 64px; height: 64px; border-radius: 50%; background: var(--wp--preset--color--ground); border: 2px solid var(--wp--preset--color--red); display: grid; place-items: center; font-weight: 800; font-style: italic; font-size: 1.05rem; color: var(--wp--preset--color--red); box-shadow: 0 0 0 10px var(--wp--preset--color--surface); }
.kv-vs__note { display: flex; gap: .6rem; align-items: center; justify-content: center; margin: 1.5rem auto 0; max-width: 60ch; font-size: .9rem; color: var(--wp--preset--color--text); text-align: center; }
.kv-vs__note svg { width: 20px; height: 20px; flex: none; stroke: var(--wp--preset--color--red); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 781px) { .kv-vs { grid-template-columns: 1fr; gap: .75rem; } .kv-vs__or { margin: 0; } .kv-vs__or span { box-shadow: none; width: 52px; height: 52px; } }

/* ---- Paketid: dark FAQ ---- */
.kv-faq-section--dark { background: #2a2a2d; color: #fff; position: relative; overflow: hidden; }
.kv-faq-section--dark::before { content: none; }
.kv-faq-section--dark > * { position: relative; }
.kv-faq-section--dark h2, .kv-faq-section--dark p { color: #fff; }
.kv-faq-section--dark .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-faq-mark { font-size: clamp(5rem, 12vw, 8.5rem); font-weight: 900; line-height: .85; letter-spacing: -.05em; color: transparent !important; -webkit-text-stroke: 1.5px rgba(255,255,255,.3); margin: 0 0 1rem !important; user-select: none; }
.kv-faq-ask { margin-top: 1.5rem; padding: 1.25rem 1.375rem; border-radius: 16px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(6px); }
.kv-faq-ask p { margin: 0 0 .6rem !important; color: rgba(255,255,255,.75) !important; font-size: .9375rem; }
.kv-faq-ask a { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; color: #fff; border-bottom: 2px solid var(--wp--preset--color--red); padding-bottom: .1rem; }
.kv-faq-ask a:hover { color: var(--wp--preset--color--red); }
.kv-faq-section--dark .kv-faq .wp-block-details { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.12); }
.kv-faq-section--dark .kv-faq .wp-block-details:hover { border-color: rgba(255,255,255,.3); }
.kv-faq-section--dark .kv-faq .wp-block-details[open] { background: #fff; border-color: #fff; box-shadow: 0 24px 50px -20px rgba(0,0,0,.6); }
.kv-faq-section--dark .kv-faq summary { color: #fff; }
.kv-faq-section--dark .kv-faq .wp-block-details[open] summary { color: var(--wp--preset--color--ink); }
.kv-faq-section--dark .kv-faq summary::before { color: var(--wp--preset--color--red); }
.kv-faq-section--dark .kv-faq .wp-block-details[open] summary::before { color: var(--wp--preset--color--red); }
.kv-faq-section--dark .kv-faq summary::after { background-color: rgba(255,255,255,.12); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3v10M3 8h10' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.kv-faq-section--dark .kv-faq .wp-block-details[open] summary::after { background-color: var(--wp--preset--color--red-tint); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3v10M3 8h10' stroke='%23AF1E23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.kv-faq-section--dark .kv-faq .wp-block-details p { color: var(--wp--preset--color--text) !important; }
.kv-faq-section--dark .kv-faq-section__link { color: rgba(255,255,255,.75) !important; }
.kv-faq-section--dark .kv-faq-section__link a { color: #fff; }

/* ---- Package page (Start / Plus / Premium) ---- */
.kv-pp-hero { position: relative; overflow: hidden; }
.kv-pp-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.kv-crumb { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; font-size: .85rem; color: var(--wp--preset--color--muted); margin: 0 0 1rem !important; padding: 0 !important; }
.kv-crumb li { margin: 0; }
.kv-crumb a { color: inherit; text-decoration: none; }
.kv-crumb a:hover { color: var(--wp--preset--color--red); }
.kv-crumb li + li::before { content: "/"; margin-right: .4rem; opacity: .5; }
.kv-pp-hero h1 { font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 1.05; letter-spacing: -.02em; margin: 0 0 1rem; }
.kv-pp-hero h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-pp-hero__lead { font-size: 1.0625rem; color: var(--wp--preset--color--text); max-width: 52ch; margin: 0 !important; }
.kv-pp-price { margin-top: 1.5rem; padding: 1.125rem 1.375rem; border-radius: 18px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; box-shadow: 0 16px 40px -28px rgba(28,21,23,.4); }
.kv-pp-price__num { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.kv-pp-price__num > .kv-price { font-size: clamp(2rem, 3.6vw, 2.75rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; white-space: nowrap; color: var(--wp--preset--color--ink); }
.kv-pp-price__num small { font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-pp-price__note { font-size: .875rem; color: var(--wp--preset--color--text); margin: 0 !important; flex-basis: 100%; }
.kv-pp-hero__btns { margin-top: 1.25rem; }
.kv-pp-hero__img { position: relative; aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; background: var(--wp--preset--gradient--device); box-shadow: 0 30px 60px -30px rgba(28,21,23,.45); }
.kv-pp-hero__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kv-pp-hero__badge { position: absolute; left: 1rem; top: 1rem; background: #fff; border-radius: 999px; padding: .45rem .85rem; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink); box-shadow: 0 6px 16px rgba(28,21,23,.15); }
.kv-pp-bar { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin-top: 2.25rem; padding-top: 1.25rem; border-top: 1px solid var(--wp--preset--color--line); }
.kv-pp-bar p { margin: 0 !important; font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--text); display: flex; align-items: center; gap: .5rem; }
.kv-pp-bar p::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--red); }
@media (max-width: 781px) { .kv-pp-hero__grid { grid-template-columns: 1fr; } .kv-pp-hero__img { order: -1; } }

.kv-devs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: var(--wp--preset--spacing--30); }
.kv-devs--4 { grid-template-columns: repeat(4, 1fr); }
.kv-devs--5 { grid-template-columns: repeat(5, 1fr); }
.kv-devs--row { grid-template-columns: repeat(3, 1fr); }
.kv-devs--row .kv-dev { display: grid; grid-template-columns: 84px 1fr; grid-template-rows: auto auto auto; gap: .2rem 1rem; align-items: start; }
.kv-devs--row .kv-dev__img { grid-row: 1 / 4; margin: 0; }
.kv-devs--row .kv-dev p { flex: none; }
.kv-dev { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.125rem; display: flex; flex-direction: column; gap: .4rem; transition: transform .25s ease, box-shadow .25s ease; }
.kv-dev:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(28,21,23,.12); }
.kv-dev__img { position: relative; aspect-ratio: 1; border-radius: 14px; background: var(--wp--preset--gradient--device); display: grid; place-items: center; margin-bottom: .5rem; }
.kv-dev__img svg { width: 50%; height: 50%; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-dev__img svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-dev__img img { width: 70%; height: 70%; object-fit: contain; }
.kv-dev__qty { position: absolute; right: .6rem; top: .6rem; background: var(--wp--preset--color--ink); color: #fff; font-size: .72rem; font-weight: 800; padding: .25rem .55rem; border-radius: 999px; }
.kv-dev h3 { font-size: 1rem; margin: 0; }
.kv-dev p { margin: 0; font-size: .9rem; color: var(--wp--preset--color--text); flex: 1; }
.kv-dev a { font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--red-dark); text-decoration: none; margin-top: .25rem; }
.kv-dev a::after { content: " →"; }
@media (max-width: 1024px) { .kv-devs, .kv-devs--4 { grid-template-columns: repeat(3, 1fr); } .kv-devs--row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .kv-devs, .kv-devs--4, .kv-devs--row { grid-template-columns: 1fr; } }

.kv-place { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; margin-top: var(--wp--preset--spacing--30); }
.kv-place__plan { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 24px; padding: 1.5rem; }
.kv-place__plan svg { width: 100%; height: auto; display: block; font-family: var(--kv-font); }
.kv-place__plan .floor { fill: #FBF9F9; }
.kv-place__plan .floor--wet { fill: #F1ECEC; }
.kv-place__plan .wall { fill: none; stroke: #2B2426; stroke-width: 8; stroke-linecap: square; stroke-linejoin: miter; }
.kv-place__plan .wall--in { stroke-width: 5; }
.kv-place__plan .wall--gap { stroke: none; }
.kv-place__plan .win rect { fill: #fff; stroke: #2B2426; stroke-width: 1.5; }
.kv-place__plan .win line { stroke: #2B2426; stroke-width: 1.5; }
.kv-place__plan .door .leaf { fill: none; stroke: #2B2426; stroke-width: 2.5; }
.kv-place__plan .door .arc { fill: none; stroke: #2B2426; stroke-width: 1; stroke-dasharray: 3 3; }
.kv-place__plan .furn { fill: none; stroke: #CFC5C6; stroke-width: 1.5; }
.kv-place__plan .lbl { fill: var(--wp--preset--color--ink); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.kv-place__plan .m2 { fill: var(--wp--preset--color--muted); font-weight: 500; letter-spacing: 0; text-transform: none; }
.kv-place__plan .cap { fill: var(--wp--preset--color--muted); font-size: 11px; font-weight: 500; }
.kv-place__plan .scale line { stroke: var(--wp--preset--color--muted); stroke-width: 1.5; }
.kv-place__plan .scale text { fill: var(--wp--preset--color--muted); font-size: 10px; text-anchor: middle; }
.kv-place__plan .cover { fill: rgba(218,33,39,.09); stroke: rgba(218,33,39,.45); stroke-width: 1.5; stroke-dasharray: 4 4; }
.kv-place__plan .pin { fill: var(--wp--preset--color--red); }
.kv-place__plan .pin--hub { fill: var(--wp--preset--color--ink); }
.kv-place__plan .ring { fill: none; stroke: var(--wp--preset--color--red); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: kv-ring 2.6s ease-out infinite; }
.kv-place__plan .num { fill: #fff; font-size: 11px; font-weight: 800; text-anchor: middle; dominant-baseline: central; }
@keyframes kv-ring { 0% { transform: scale(.6); opacity: .8; } 100% { transform: scale(2.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .kv-place__plan .ring { animation: none; } }
.kv-place__list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: .8rem; counter-reset: pl; }
.kv-place__list li { display: grid; grid-template-columns: 2rem 1fr; gap: 0 .75rem; align-items: start; margin: 0; }
.kv-place__list li > * { grid-column: 2; }
.kv-place__list li::before { grid-column: 1; grid-row: 1 / 3; }
.kv-place__list li::before { counter-increment: pl; content: counter(pl); width: 2rem; height: 2rem; border-radius: 50%; background: var(--wp--preset--color--red); color: #fff; font-weight: 800; font-size: .85rem; display: grid; place-items: center; }
.kv-place__list li.is-hub::before { background: var(--wp--preset--color--ink); }
.kv-place__list b { display: block; }
.kv-place__list span { color: var(--wp--preset--color--text); font-size: .95rem; }
.kv-place__note { margin: 1.25rem 0 0 !important; padding: 1rem 1.25rem; border-radius: 14px; background: var(--wp--preset--color--red-tint); color: var(--wp--preset--color--ink); font-size: .95rem; }
@media (max-width: 781px) { .kv-place { grid-template-columns: 1fr; } }

.kv-pt-wrap { margin-top: var(--wp--preset--spacing--30); background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); overflow: hidden; }
.kv-pt { width: 100%; border-collapse: collapse; }
.kv-pt th, .kv-pt td { padding: 1rem 1.25rem; text-align: left; border-bottom: 1px solid var(--wp--preset--color--line-soft); vertical-align: top; }
.kv-pt thead th { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); background: var(--wp--preset--color--ground); }
.kv-pt tbody th { font-weight: 700; width: 26%; }
.kv-pt tr:last-child td, .kv-pt tr:last-child th { border-bottom: 0; }
.kv-pt td b { font-size: 1.125rem; }
.kv-pt td small { display: block; color: var(--wp--preset--color--muted); font-size: .85rem; }
.kv-pt .col-ost, .kv-pt .col-rent { transition: background .2s; }
html[data-kv-mode="ost"] .kv-pt .col-ost, html[data-kv-mode="rent"] .kv-pt .col-rent { background: var(--wp--preset--color--ground); }
html[data-kv-mode="ost"] .kv-pt thead .col-ost, html[data-kv-mode="rent"] .kv-pt thead .col-rent { color: var(--wp--preset--color--red-dark); }
.kv-pt__notes { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.kv-pt__notes p { margin: 0 !important; font-size: .9rem; color: var(--wp--preset--color--text); padding: 1rem 1.25rem; border-radius: 14px; background: var(--wp--preset--color--ground); }
.kv-pt__notes b { color: var(--wp--preset--color--ink); }
@media (max-width: 640px) { .kv-pt__notes { grid-template-columns: 1fr; } .kv-pt th, .kv-pt td { padding: .75rem .75rem; } }

.kv-addons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: var(--wp--preset--spacing--30); }
.kv-addon { position: relative; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.25rem; display: flex; flex-direction: column; gap: .35rem; transition: transform .25s ease, box-shadow .25s ease; }
.kv-addon:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(28,21,23,.12); }
.kv-addon--hot { border-color: var(--wp--preset--color--red); }
.kv-addon__tag { position: absolute; top: -.7rem; left: 1rem; background: var(--wp--preset--color--red); color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .3rem .6rem; border-radius: 999px; }
.kv-addon__img { aspect-ratio: 16 / 9; border-radius: 12px; background: var(--wp--preset--gradient--device); display: grid; place-items: center; margin-bottom: .5rem; }
.kv-addon__img svg { width: 34%; height: 60%; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-addon__img svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-addon h3 { font-size: 1rem; margin: 0; }
.kv-addon p { margin: 0; font-size: .9rem; color: var(--wp--preset--color--text); flex: 1; }
.kv-addon__price { margin-top: .5rem; font-weight: 800; color: var(--wp--preset--color--ink); }
.kv-addon__price small { display: block; font-weight: 400; color: var(--wp--preset--color--muted); font-size: .8rem; }
.kv-addons__cta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.kv-addons__cta p { margin: 0 !important; color: var(--wp--preset--color--text); }
@media (max-width: 1024px) { .kv-addons { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .kv-addons { grid-template-columns: 1fr; } }

.kv-app { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.kv-app__phones { display: flex; gap: 1.5rem; justify-content: center; align-items: flex-end; }
.kv-phone { width: 200px; aspect-ratio: 9 / 19; border-radius: 30px; background: #111; padding: 10px; box-shadow: 0 30px 60px -25px rgba(28,21,23,.5); flex: none; }
.kv-phone:nth-child(2) { transform: translateY(-1.5rem); }
.kv-phone__screen { width: 100%; height: 100%; border-radius: 22px; overflow: hidden; background: var(--wp--preset--color--ground); display: grid; place-items: center; text-align: center; padding: 1rem; color: var(--wp--preset--color--muted); font-size: .75rem; line-height: 1.4; }
.kv-phone__screen b { display: block; color: var(--wp--preset--color--ink); font-size: .8rem; margin-bottom: .25rem; }
.kv-phone__screen img { width: 100%; height: 100%; object-fit: cover; }
.kv-app__facts { list-style: none; margin: 1rem 0 0 !important; padding: 0 !important; display: grid; gap: .5rem; }
.kv-app__facts li { display: flex; gap: .6rem; align-items: flex-start; margin: 0; color: var(--wp--preset--color--text); }
.kv-app__facts li::before { content: ""; flex: 0 0 18px; height: 18px; margin-top: .15rem; border-radius: 50%; background: var(--wp--preset--color--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
@media (max-width: 781px) { .kv-app { grid-template-columns: 1fr; } .kv-phone { width: 150px; } }

.kv-others { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: var(--wp--preset--spacing--30); }
.kv-other { display: grid; grid-template-columns: 96px 1fr; gap: 1rem; align-items: center; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.25rem; text-decoration: none; color: inherit; transition: transform .25s ease, box-shadow .25s ease; }
.kv-other:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(28,21,23,.12); }
.kv-other .kv-plan { margin: 0; max-height: 80px; }
.kv-other__dir { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--red-dark); }
.kv-other h3 { margin: .15rem 0; font-size: 1.125rem; }
.kv-other p { margin: 0; font-size: .9rem; color: var(--wp--preset--color--text); }
.kv-other__price { margin-top: .35rem; font-weight: 700; color: var(--wp--preset--color--ink); }

/* ---- Package page: section variety ---- */
.kv-pp-place.has-ink-background-color .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-pp-place.has-ink-background-color h2 { color: #fff; }
.kv-pp-place.has-ink-background-color .kv-place__list b { color: #fff; }
.kv-pp-place.has-ink-background-color .kv-place__list span { color: rgba(255,255,255,.72); }
.kv-pp-place.has-ink-background-color .kv-place__note { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); color: #fff; }
.kv-pp-place.has-ink-background-color .kv-place__note a { color: #fff; }
.kv-pp-place.has-ink-background-color .kv-place__plan { border-color: transparent; box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); }
.kv-addons--rows { display: block; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); overflow: hidden; box-shadow: 0 24px 50px -32px rgba(28,21,23,.35); }
.kv-addons--rows .kv-addon { display: grid; grid-template-columns: 72px 1fr auto; gap: 1.25rem; align-items: center; border: 0; border-radius: 0; border-bottom: 1px solid var(--wp--preset--color--line-soft); padding: 1rem 1.25rem; transform: none !important; box-shadow: none !important; }
.kv-addons--rows .kv-addon:last-child { border-bottom: 0; }
.kv-addons--rows .kv-addon--hot { box-shadow: inset 4px 0 0 var(--wp--preset--color--red) !important; }
.kv-addons--rows .kv-addon__img { aspect-ratio: 1; margin: 0; border-radius: 12px; }
.kv-addons--rows .kv-addon__img svg { width: 50%; height: 50%; }
.kv-addons--rows .kv-addon__tag { position: static; display: inline-block; margin-left: .6rem; vertical-align: middle; }
.kv-addons--rows .kv-addon__body h3 { margin: 0 0 .15rem; }
.kv-addons--rows .kv-addon p { flex: none; }
.kv-addons--rows .kv-addon__price { margin: 0; text-align: right; font-size: 1.25rem; white-space: nowrap; }
@media (max-width: 640px) { .kv-addons--rows .kv-addon { grid-template-columns: 56px 1fr; } .kv-addons--rows .kv-addon__price { grid-column: 2; text-align: left; } }
.kv-pp-addons.has-red-tint-background-color .kv-addons__cta p { color: var(--wp--preset--color--ink); }
.kv-other--dark { background: #26191c; color: #fff; border-color: transparent; }
.kv-other--dark p { color: rgba(255,255,255,.72); }
.kv-other--dark .kv-other__price { color: #fff; }
.kv-other--dark .kv-other__dir { color: var(--wp--preset--color--red); }
.kv-other--dark .kv-plan { stroke: rgba(255,255,255,.35); }
.kv-other--dark .kv-plan .kv-hub { fill: #fff; }
.kv-other--dark h3 { color: #fff; }
.kv-pp-place.has-ink-background-color .kv-place__list li.is-hub::before { background: #fff; color: var(--wp--preset--color--ink); }

/* price table v2 */
.kv-pt-wrap--v2 { box-shadow: 0 24px 60px -36px rgba(28,21,23,.4); }
.kv-pt--v2 thead th { background: var(--wp--preset--color--surface); padding: 1.5rem 1.25rem 1.25rem; text-transform: none; letter-spacing: 0; vertical-align: bottom; border-bottom: 2px solid var(--wp--preset--color--line); }
.kv-pt--v2 thead th b { display: block; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.1; letter-spacing: -.02em; color: var(--wp--preset--color--ink); margin: .5rem 0 .2rem; white-space: nowrap; }
.kv-pt--v2 thead th small { display: block; font-size: .8rem; color: var(--wp--preset--color--muted); }
.kv-pt__tag { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: .4rem .7rem; border-radius: 999px; background: var(--wp--preset--color--ink); color: #fff; }
.kv-pt__tag--rent { background: var(--wp--preset--color--red); }
.kv-pt--v2 tbody th { color: var(--wp--preset--color--text); font-weight: 600; }
.kv-pt--v2 td b { font-size: 1.0625rem; }
.kv-pt--v2 .kv-pt__btns th, .kv-pt--v2 .kv-pt__btns td { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.kv-pt--v2 .kv-vs__btn { display: inline-flex; width: 100%; margin: 0; }
.kv-vs__btn--red { background: var(--wp--preset--color--red); }
html[data-kv-mode] .kv-pt--v2 .col-ost, html[data-kv-mode] .kv-pt--v2 .col-rent { background: transparent; }
html[data-kv-mode="ost"] .kv-pt--v2 tbody .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 tbody .col-rent { background: var(--wp--preset--color--ground); }
html[data-kv-mode="ost"] .kv-pt--v2 thead .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 thead .col-rent { background: var(--wp--preset--color--ground); color: var(--wp--preset--color--muted); }
.kv-other--current { border-style: dashed; background: transparent; }
.kv-other--current .kv-other__dir { color: var(--wp--preset--color--muted); }
.kv-other--current:hover { transform: none; box-shadow: none; }
.kv-other__go { display: inline-block; margin-top: .5rem; font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--red-dark); }
.kv-other--dark .kv-other__go { color: var(--wp--preset--color--red); }
@media (max-width: 900px) { .kv-others { grid-template-columns: 1fr; } }
.kv-app__img { aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; background: var(--wp--preset--gradient--device); box-shadow: 0 30px 60px -30px rgba(28,21,23,.45); }
.kv-app__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* pricing v3: black comes down behind the table, plain table */
.kv-pp-pricing { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0, var(--wp--preset--color--ink) calc(330px + var(--wp--preset--spacing--40)), transparent calc(330px + var(--wp--preset--spacing--40))) !important; padding-top: var(--wp--preset--spacing--40) !important; }
.kv-pp-pricing .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-pp-pricing h2, .kv-pp-pricing .is-style-lead { color: #fff; }
.kv-pt-wrap--v2 { border-color: transparent; box-shadow: 0 24px 60px -30px rgba(0,0,0,.5); }
.kv-pt--v2 thead th { border-bottom: 1px solid var(--wp--preset--color--line); }
.kv-pt__tag, .kv-pt__tag--rent { background: none; color: var(--wp--preset--color--ink); padding: 0; font-size: 1.125rem; font-weight: 800; letter-spacing: -.01em; text-transform: none; border-radius: 0; }
.kv-pt--v2 thead th b { margin-top: .15rem; }
html[data-kv-mode="ost"] .kv-pt--v2 tbody .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 tbody .col-rent, html[data-kv-mode="ost"] .kv-pt--v2 thead .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 thead .col-rent { background: transparent; color: inherit; }
.kv-pt--v2 .kv-vs__btn, .kv-pt--v2 .kv-vs__btn--red { border-radius: 8px; background: var(--wp--preset--color--red); padding: .8rem 1rem; }
.kv-pt--v2 .kv-vs__btn:hover { background: var(--wp--preset--color--red-dark); filter: none; }
.kv-pt__notes { gap: 2rem; margin-top: 1.25rem; }
.kv-pt__notes p { background: none; padding: .75rem 0 0; border-radius: 0; border-top: 1px solid var(--wp--preset--color--line); }

/* add-ons: interactive rows + summary */
.kv-addons--rows .kv-addon { grid-template-columns: 72px 1fr auto auto; }
.kv-addon__add { border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); border-radius: 999px; padding: .6rem 1.1rem; font: 700 .875rem/1 var(--kv-font); color: var(--wp--preset--color--ink); cursor: pointer; white-space: nowrap; transition: background .2s, border-color .2s, color .2s; }
.kv-addon__add::before { content: "+ "; }
.kv-addon__add:hover { border-color: var(--wp--preset--color--ink); }
.kv-addon.is-on { background: var(--wp--preset--color--ground); }
.kv-addon.is-on .kv-addon__add { background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }
.kv-addon.is-on .kv-addon__add::before { content: "\2713  "; }
.kv-addons__sum { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; padding: 1rem 1.25rem; border-radius: var(--kv-r-l); background: var(--wp--preset--color--ink); color: #fff; }
.kv-addons__sum-text { font-size: 1rem; }
.kv-addons__sum-text b { color: #fff; }
.kv-addons__sum-text small { display: block; color: rgba(255,255,255,.65); font-size: .8rem; margin-top: .15rem; }
.kv-addons__sum .kv-addons__go { white-space: nowrap; }
@media (max-width: 640px) { .kv-addons--rows .kv-addon { grid-template-columns: 56px 1fr; } .kv-addon__add { grid-column: 2; justify-self: start; } }
/* price table: fixed layout, notes inside rows */
.kv-pt--v2 { table-layout: fixed; width: 100%; }
.kv-pt--v2 th, .kv-pt--v2 td { box-sizing: border-box; }
.kv-pt--v2 tbody th small { display: block; font-weight: 400; color: var(--wp--preset--color--muted); font-size: .8rem; line-height: 1.35; margin-top: .2rem; }
.kv-pt--v2 .kv-vs__btn { box-sizing: border-box; }
/* price table: interactive columns + period totals */
.kv-pt--v2 .col-ost, .kv-pt--v2 .col-rent { cursor: pointer; transition: background .2s; }
.kv-pt--v2.hov-ost .col-ost, .kv-pt--v2.hov-rent .col-rent { background: var(--wp--preset--color--ground); }
html[data-kv-mode="ost"] .kv-pt--v2 .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 .col-rent { background: var(--wp--preset--color--ground); }
html[data-kv-mode="ost"] .kv-pt--v2 thead .col-ost, html[data-kv-mode="rent"] .kv-pt--v2 thead .col-rent { box-shadow: inset 0 4px 0 var(--wp--preset--color--red); background: var(--wp--preset--color--ground); }
.kv-pt__tag::after { content: "Valitud"; display: none; margin-left: .6rem; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--red); vertical-align: middle; }
html[data-kv-mode="ost"] .kv-pt__tag--ost::after, html[data-kv-mode="rent"] .kv-pt__tag--rent::after { display: inline; }
html[data-kv-mode="ost"] .kv-pt--v2 .col-rent .kv-vs__btn, html[data-kv-mode="rent"] .kv-pt--v2 .col-ost .kv-vs__btn { background: #fff; color: var(--wp--preset--color--red-dark); box-shadow: inset 0 0 0 2px var(--wp--preset--color--red); }
html[data-kv-mode="ost"] .kv-pt--v2 .col-rent .kv-vs__btn:hover, html[data-kv-mode="rent"] .kv-pt--v2 .col-ost .kv-vs__btn:hover { background: var(--wp--preset--color--red); color: #fff; }
.kv-pt__total th, .kv-pt__total td { border-top: 2px solid var(--wp--preset--color--line); }
.kv-pt__total td b { font-size: 1.25rem; }
.kv-pt__chips { display: flex; gap: .35rem; margin-top: .5rem; }
.kv-pt__chip { border: 1.5px solid var(--wp--preset--color--line); background: #fff; border-radius: 999px; padding: .3rem .65rem; font: 700 .75rem/1 var(--kv-font); color: var(--wp--preset--color--ink); cursor: pointer; }
.kv-pt__chip[aria-pressed="true"] { background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }
/* Section headings: bigger, closer to the H1 scale */
h2.wp-block-heading { font-size: clamp(1.75rem, 3.2vw, 2.5rem); line-height: 1.12; letter-spacing: -.02em; }
/* two-floor plan + sliding door */
.kv-place__plan .flr { fill: var(--wp--preset--color--ink); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.kv-place__plan .slide rect { fill: #2B2426; }
/* floor tabs on the plan */
.kv-place__tabs { display: flex; gap: .4rem; margin-bottom: .9rem; }
.kv-place__tab { border: 1.5px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--ink); border-radius: 999px; padding: .5rem 1rem; font: 700 .875rem/1 var(--kv-font); cursor: pointer; }
.kv-place__tab[aria-pressed="true"] { background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }
.kv-place__list li[hidden] { display: none; }
.kv-place__cap { margin: .75rem 0 0 !important; font-size: .8rem; color: var(--wp--preset--color--muted); }
.kv-place__plan svg .flr { font-size: 13px; }
.kv-place__list li[data-n]::before { content: attr(data-n); }
.kv-place__tabs ~ svg .flr { display: none; }
.kv-place__plan .garden { fill: #EEF3E8; }
.kv-place__plan .tree circle { fill: #D3E2C6; stroke: #B6CBA5; stroke-width: 1.5; }
.kv-place__plan .deck rect { fill: #F4EEE4; stroke: #D8CDBE; stroke-width: 1; }
.kv-place__plan .deck path { stroke: #E2D8CB; stroke-width: 1; fill: none; }
.kv-place__plan { padding: 0; overflow: hidden; }
.kv-place__plan .kv-place__tabs { padding: 1.25rem 1.5rem 0; margin-bottom: .5rem; }
.kv-place__plan .kv-place__cap { padding: 0 1.5rem 1.25rem; }
.kv-place__floor { position: relative; }
.kv-place__floor + .kv-place__floor { border-top: 1px solid var(--wp--preset--color--line); }
.kv-place__floor h4 { position: absolute; left: 1.25rem; top: 1rem; margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--ink); background: rgba(255,255,255,.85); padding: .3rem .6rem; border-radius: 999px; z-index: 1; }
.kv-place__floor svg .flr { display: none; }
.kv-place--stack { align-items: start; }
.kv-place--stack > div:last-child { position: sticky; top: 6rem; }
.kv-place__plan .ring { display: none; }
.kv-place__plan .cover--cam { fill: rgba(28,21,23,.07); stroke: rgba(28,21,23,.4); }
/* floor tabs float over the plan */
.kv-place__plan { position: relative; }
.kv-place__plan .kv-place__tabs { position: absolute; top: 1rem; left: 1rem; margin: 0; padding: 0; z-index: 2; }
.kv-place__tab { background: #fff; border-color: #fff; box-shadow: 0 4px 14px rgba(28,21,23,.15); }
.kv-place__tab[aria-pressed="true"] { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }

/* ---- landing flow (Häirepakett / Suitsupakett): signal diagram + 3 dark step cards ---- */
.kv-pp-flow.has-ink-background-color .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-pp-flow.has-ink-background-color h2, .kv-pp-flow.has-ink-background-color .is-style-lead { color: #fff; }
.kv-pp-flow.has-ink-background-color .is-style-lead { color: rgba(255,255,255,.72); }
.kv-flow { margin-top: var(--wp--preset--spacing--40); }
.kv-flow__art { width: 100%; height: auto; display: block; overflow: visible; }
.kv-flow__art .stroke { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.kv-flow__art .stroke.dim { stroke: rgba(255,255,255,.35); }
.kv-flow__art .stroke.solid { fill: var(--wp--preset--color--ink); }
.kv-flow__art .fill { fill: var(--wp--preset--color--red); }
.kv-flow__art .halo { fill: rgba(255,255,255,.05); stroke: rgba(255,255,255,.10); stroke-width: 1; }
.kv-flow__art .card { fill: #fff; }
.kv-flow__art .cardline { stroke: var(--wp--preset--color--ink); stroke-width: 2.5; stroke-linecap: round; }
.kv-flow__art .wave { fill: none; stroke: var(--wp--preset--color--red); stroke-width: 2.5; stroke-linecap: round; opacity: .8; }
.kv-flow__art .lbl { fill: rgba(255,255,255,.75); font: 600 15px/1 var(--wp--preset--font-family--body, sans-serif); text-anchor: middle; letter-spacing: .01em; }
.kv-flow__art .ping { fill: none; stroke: var(--wp--preset--color--red); stroke-width: 3; transform-origin: 0 0; animation: kv-ping 2.4s ease-out infinite; }
@keyframes kv-ping { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(2.6); opacity: 0; } }
.kv-flow__line { fill: none; stroke: var(--wp--preset--color--red); stroke-width: 3; stroke-dasharray: 10 12; stroke-linecap: round; animation: kv-dash 1.6s linear infinite; }
@keyframes kv-dash { to { stroke-dashoffset: -44; } }
.kv-flow__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; }
.kv-flow__step { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: var(--kv-r-l); padding: 1.5rem; }
.kv-flow__step h3 { color: #fff; margin: .9rem 0 .4rem; font-size: 1.25rem; }
.kv-flow__step p { color: rgba(255,255,255,.72); margin: 0; font-size: .97rem; }
@media (max-width: 781px) {
  .kv-flow__art { display: none; }
  .kv-flow__steps { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .kv-flow__art .ping, .kv-flow__line { animation: none; } }

/* ---- landing flow v2: image placeholders instead of drawn icons ---- */
.kv-flow__art { display: grid; grid-template-columns: 1fr 110px 1fr 110px 1fr; align-items: center; max-width: 880px; margin: 0 auto; }
.kv-flow__node { margin: 0; text-align: center; }
.kv-flow__node img { width: min(100%, 210px); aspect-ratio: 1; object-fit: cover; border-radius: 28px; display: block; margin: 0 auto; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8); background: #2a2a2d; }
.kv-flow__node figcaption { color: rgba(255,255,255,.75); font-weight: 600; font-size: .95rem; margin-top: .8rem; }
.kv-flow__arrow { width: 100%; height: auto; overflow: visible; display: block; }
@media (max-width: 781px) {
  .kv-flow__art { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .75rem; }
  .kv-flow__arrow { display: none; }
  .kv-flow__node img { border-radius: 18px; }
  .kv-flow__node figcaption { font-size: .8rem; }
}
.kv-flow__node { min-width: 0; }
.kv-flow__node img { height: auto !important; max-width: 100%; }

/* ---- Pane ise kokku v3: 4-step order form (Navirec-style) with a live "Sinu valik" tally ---- */
.kv-ko-page h1 { max-width: 24ch; margin-left: auto !important; margin-right: auto !important; }
.kv-ko-lead { color: var(--wp--preset--color--text); max-width: 36rem; margin-left: auto !important; margin-right: auto !important; }
.kv-ko { --kv-ko-w: min(1200px, calc(100vw - 2rem)); width: var(--kv-ko-w); margin-inline: calc((100% - var(--kv-ko-w)) / 2); display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: start; margin-top: var(--wp--preset--spacing--50); }
.kv-ko-main { min-width: 0; }
.kv-ko-formbox { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 18px; padding: 1.75rem 2rem 2rem; box-shadow: 0 24px 60px -40px rgba(28,21,23,.35); }
.kv-ko-steps { list-style: none; margin: 0 0 1.75rem !important; padding: 0 0 1.5rem !important; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; border-bottom: 1.5px solid var(--wp--preset--color--line); }
.kv-ko-steps::before { content: ""; position: absolute; left: 16.67%; right: 16.67%; top: 17px; height: 2px; background: var(--wp--preset--color--line); }
.kv-ko-steps__item button { position: relative; display: grid; justify-items: center; gap: .5rem; width: 100%; background: none; border: 0; padding: 0; cursor: pointer; color: var(--wp--preset--color--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-family: inherit; }
.kv-ko-steps__n { width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--ground); border: 2px solid var(--wp--preset--color--line); display: grid; place-items: center; font-size: .9rem; color: var(--wp--preset--color--muted); }
.kv-ko-steps__item.is-done .kv-ko-steps__n { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }
.kv-ko-steps__item.is-done button { color: var(--wp--preset--color--ink); }
.kv-ko-steps__item.is-active .kv-ko-steps__n { background: var(--wp--preset--color--red); border-color: var(--wp--preset--color--red); color: #fff; }
.kv-ko-steps__item.is-active button { color: var(--wp--preset--color--ink); }
.kv-ko-step { display: none; }
.kv-ko-step.is-current { display: block; }
.kv-ko-step h2 { font-size: 1.5rem !important; margin: 0 0 .35rem; }
.kv-ko-step__lead { margin: 0 0 1.25rem; color: var(--wp--preset--color--text); font-size: .95rem; }
.kv-ko-step__lead a { color: var(--wp--preset--color--red); font-weight: 700; }
.kv-ko-field { border: 0; margin: 0 0 1.75rem; padding: 0; min-width: 0; }
.kv-ko-field__label { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; padding: 0; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--ink); }
.kv-ko-field__n { width: 24px; height: 24px; border-radius: 50%; background: var(--wp--preset--color--ink); color: #fff; display: grid; place-items: center; font-size: .72rem; letter-spacing: 0; }
.kv-ko-field__help { margin: .75rem 0 0 !important; font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-ko-packs { display: grid; gap: .6rem; }
.kv-ko-pack { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: .9rem; align-items: center; text-align: left; background: var(--wp--preset--color--ground); border: 1.5px solid var(--wp--preset--color--line); border-radius: 12px; padding: .8rem 1rem; cursor: pointer; font-family: inherit; color: var(--wp--preset--color--text); transition: border-color .15s, box-shadow .15s; }
.kv-ko-pack:hover { border-color: var(--wp--preset--color--ink); }
.kv-ko-pack[aria-checked="true"] { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--ink); box-shadow: 0 10px 30px -18px rgba(28,21,23,.5); }
.kv-ko-pack__dot { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--wp--preset--color--line); position: relative; }
.kv-ko-pack[aria-checked="true"] .kv-ko-pack__dot { border-color: var(--wp--preset--color--red); }
.kv-ko-pack[aria-checked="true"] .kv-ko-pack__dot::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-ko-pack__body { display: grid; gap: .1rem; min-width: 0; }
.kv-ko-pack__body b { color: var(--wp--preset--color--ink); font-size: 1rem; }
.kv-ko-pack__body small { font-size: .8rem; color: var(--wp--preset--color--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kv-ko-pack__price { font-weight: 800; color: var(--wp--preset--color--ink); white-space: nowrap; }
.kv-ko-group { margin-bottom: 1.25rem; }
.kv-ko-group__label { margin: 0 0 .6rem !important; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.kv-ko-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
.kv-ko-card { background: var(--wp--preset--color--ground); border: 1.5px solid var(--wp--preset--color--line); border-radius: 12px; padding: .75rem; display: flex; flex-direction: column; gap: .4rem; transition: border-color .15s, box-shadow .15s; }
.kv-ko-card.is-on { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--ink); box-shadow: 0 10px 30px -18px rgba(28,21,23,.5); }
.kv-ko-card.is-fixed { border-color: var(--wp--preset--color--red); background: var(--wp--preset--color--surface); }
.kv-ko-card__img { display: grid; place-items: center; aspect-ratio: 4 / 3; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; background: var(--wp--preset--color--surface); }
.kv-ko-card__img svg { width: 42%; height: 42%; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-ko-card__img svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-ko-card h3 { font-size: .9rem; margin: 0; line-height: 1.25; }
.kv-ko-card__price { margin: 0 !important; flex: 1; }
.kv-ko-card__price b { display: block; font-size: .95rem; color: var(--wp--preset--color--ink); }
.kv-ko-card__price small { display: block; color: var(--wp--preset--color--muted); font-size: .72rem; }
.kv-ko-qty { display: inline-grid; grid-template-columns: 32px 40px 32px; align-items: center; margin-top: .25rem; }
.kv-ko-qty__btn { height: 32px; border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); border-radius: 8px; font-size: 1.1rem; font-weight: 700; cursor: pointer; color: var(--wp--preset--color--ink); font-family: inherit; }
.kv-ko-qty__btn:hover { border-color: var(--wp--preset--color--ink); }
.kv-ko-qty__btn:focus-visible { outline: 3px solid var(--wp--preset--color--red-line); }
.kv-ko-qty__n { text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.kv-ko-fixed { margin-top: .25rem; font-size: .75rem; font-weight: 700; color: var(--wp--preset--color--red); }
.kv-ko-opts { display: grid; gap: .75rem; }
.kv-ko-opt { display: grid; grid-template-columns: 22px 1fr auto; gap: 1rem; align-items: center; text-align: left; background: var(--wp--preset--color--ground); border: 1.5px solid var(--wp--preset--color--line); border-radius: 12px; padding: 1rem 1.15rem; cursor: pointer; font-family: inherit; color: var(--wp--preset--color--text); transition: border-color .15s, box-shadow .15s; }
.kv-ko-opt:hover { border-color: var(--wp--preset--color--ink); }
.kv-ko-opt[aria-checked="true"] { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--ink); box-shadow: 0 10px 30px -18px rgba(28,21,23,.5); }
.kv-ko-opt__dot { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--wp--preset--color--line); position: relative; }
.kv-ko-opt[aria-checked="true"] .kv-ko-opt__dot { border-color: var(--wp--preset--color--red); }
.kv-ko-opt[aria-checked="true"] .kv-ko-opt__dot::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-ko-opt__body { display: grid; gap: .15rem; min-width: 0; }
.kv-ko-opt__body b { color: var(--wp--preset--color--ink); }
.kv-ko-opt__body span { font-size: .9rem; color: var(--wp--preset--color--text); }
.kv-ko-opt__price { font-weight: 800; color: var(--wp--preset--color--ink); white-space: nowrap; font-size: 1.05rem; }
.kv-ko-opt.is-disabled { opacity: .55; cursor: not-allowed; }
.kv-ko-opt.is-disabled:hover { border-color: var(--wp--preset--color--line); }
.kv-ko-opt__note { display: block; margin-top: .3rem; font-size: .8rem; font-weight: 700; color: var(--wp--preset--color--red); }
.kv-ko-mode { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0 0 1.5rem; padding: .75rem 1rem; background: var(--wp--preset--color--ground); border-radius: 12px; }
.kv-ko-mode > span { font-weight: 700; color: var(--wp--preset--color--ink); font-size: .9rem; }
.kv-ko-mode small { color: var(--wp--preset--color--muted); font-size: .8rem; flex-basis: 100%; }
.kv-ko-mode small[hidden] { display: none; }
.kv-ko-sum__mode { margin: 0 0 .9rem; }
.kv-ko-sum__mode .kv-toggle { display: grid; width: 100%; background: rgba(255,255,255,.12); }
.kv-ko-sum__mode .kv-toggle button { color: rgba(255,255,255,.7); }
.kv-ko-sum__mode .kv-toggle button[aria-pressed="true"] { background: #fff; color: var(--wp--preset--color--ink); }
.kv-ko-nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1.5px solid var(--wp--preset--color--line); }
.kv-ko-nav__back { background: none; border: 0; padding: .5rem 0; cursor: pointer; font-family: inherit; font-weight: 700; color: var(--wp--preset--color--muted); }
.kv-ko-nav__back:hover { color: var(--wp--preset--color--ink); }
.kv-ko-nav__next { padding: 1rem 1.75rem !important; }
.kv-ko-form .wpcf7 label { font-size: .95rem; }
.kv-ko-form .wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .kv-ko-form .wpcf7 select { padding: .9rem 1rem; font-size: 1rem; }
.kv-ko-form .wpcf7 textarea { min-height: 170px; padding: .9rem 1rem; font-size: 1rem; }
.kv-ko-form .wpcf7 .kv-form-grid { gap: 1.25rem; }
.kv-ko-form .wpcf7 input[type="submit"] { width: 100%; font-size: 1.125rem; padding: 1.35rem 1.75rem; }
.kv-ko-form .wpcf7 p:has(input[name="viis"]), .kv-ko-form .wpcf7 p:has(select[name="huvi"]), .kv-ko-form .wpcf7 .kv-ko-form__hide { display: none !important; }
.kv-quiz .wpcf7-quiz-label { display: block; font-weight: 400; color: var(--wp--preset--color--text); margin: .15rem 0 .35rem; }
.kv-quiz input.wpcf7-quiz { max-width: 12rem; }
.kv-ko-side { position: sticky; top: 90px; }
.kv-ko-sum { background: var(--wp--preset--color--ink); color: #fff; border-radius: 18px; padding: 1.25rem 1.35rem; }
.kv-ko-sum__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .75rem; }
.kv-ko-sum__head .is-style-eyebrow { color: rgba(255,255,255,.6); margin: 0; }
.kv-ko-sum__head b { color: #fff; font-size: .85rem; }
.kv-ko-sum__list { list-style: none; margin: 0 0 .75rem !important; padding: 0 !important; display: grid; gap: .3rem; max-height: 220px; overflow: auto; }
.kv-ko-sum__list li { display: flex; justify-content: space-between; gap: .75rem; color: rgba(255,255,255,.85); font-size: .85rem; }
.kv-ko-sum__list li b { color: #fff; white-space: nowrap; }
.kv-ko-sum__list li small { color: rgba(255,255,255,.5); }
.kv-ko-sum__rows { margin: 0; border-top: 1px solid rgba(255,255,255,.14); padding-top: .7rem; display: grid; gap: .4rem; }
.kv-ko-sum__rows > div { display: flex; justify-content: space-between; gap: 1rem; }
.kv-ko-sum__rows dt { color: rgba(255,255,255,.75); font-size: .85rem; }
.kv-ko-sum__rows dt small { display: block; font-size: .7rem; color: rgba(255,255,255,.45); }
.kv-ko-sum__rows dd { margin: 0; font-weight: 700; white-space: nowrap; font-size: .9rem; }
.kv-ko-sum__total { border-top: 1px solid rgba(255,255,255,.14); margin-top: .7rem; padding-top: .7rem; display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .25rem .75rem; }
.kv-ko-sum__total span { color: rgba(255,255,255,.75); font-size: .9rem; }
.kv-ko-sum__total b { font-size: 1.6rem; font-weight: 800; }
.kv-ko-sum__total small { grid-column: 1 / -1; color: rgba(255,255,255,.5); font-size: .75rem; }
.kv-ko-hint { margin-top: .8rem; background: rgba(255,255,255,.08); border: 1px solid rgba(218,33,39,.6); border-radius: 10px; padding: .7rem .8rem; font-size: .82rem; color: rgba(255,255,255,.85); }
.kv-ko-sum__go { width: 100%; margin-top: 1rem; padding: 1rem 1.25rem !important; }
.kv-ko-sum__foot { margin: .75rem 0 0 !important; font-size: .72rem; color: rgba(255,255,255,.5); }
.kv-ko-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--wp--preset--color--ink); color: #fff; transform: translateY(110%); transition: transform .25s; box-shadow: 0 -10px 30px rgba(0,0,0,.2); max-width: none !important; margin: 0 !important; width: 100%; display: none; }
.kv-ko-bar.is-visible { transform: none; }
.kv-ko-bar__in { max-width: 1200px; margin: 0 auto; padding: .7rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.kv-ko-bar small { display: block; color: rgba(255,255,255,.6); font-size: .75rem; }
.kv-ko-bar b { font-size: 1.1rem; }
@media (max-width: 1000px) { .kv-ko-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .kv-ko { grid-template-columns: 1fr; } .kv-ko-side { position: static; } .kv-ko-bar { display: block; } .kv-ko-page { padding-bottom: 5rem !important; } .kv-ko-formbox { padding: 1.25rem 1.1rem 1.5rem; } .kv-ko-pack__body small { white-space: normal; } }
@media (max-width: 640px) { .kv-ko-grid { grid-template-columns: 1fr 1fr; gap: .6rem; } .kv-ko-card { padding: .6rem; } .kv-ko-steps__l { display: none; } .kv-ko-opt, .kv-ko-pack { grid-template-columns: 22px 1fr; } .kv-ko-opt__price, .kv-ko-pack__price { grid-column: 2; } }
/* ---- Seadmed (/seadmed/): device catalogue ---- */
.kv-sd-barwrap { margin-bottom: var(--wp--preset--spacing--50) !important; }
.kv-sd-group--juhtimine { padding-top: 0 !important; margin-top: 0 !important; }
.kv-sd-hero__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; max-width: var(--wp--style--global--wide-size); margin: 0 auto; background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1rem 1.25rem; box-shadow: 0 24px 50px -36px rgba(28,21,23,.6); }
.kv-sd-hero__mode { display: flex; align-items: center; gap: .75rem; font-size: .9rem; color: var(--wp--preset--color--muted); }
.kv-sd-jump { display: flex; flex-wrap: wrap; gap: .5rem; }
.kv-sd-jump a { text-decoration: none; font-weight: 700; font-size: .85rem; color: var(--wp--preset--color--ink); border: 1.5px solid var(--wp--preset--color--line); border-radius: 999px; padding: .5rem .9rem; background: var(--wp--preset--color--surface); transition: border-color .2s, background .2s; }
.kv-sd-jump a:hover { border-color: var(--wp--preset--color--ink); }
.kv-sd-group { scroll-margin-top: 80px; }
.kv-sd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: var(--wp--preset--spacing--30); }
.kv-sd-card { display: grid; grid-template-columns: 150px minmax(0, 1fr); grid-template-rows: auto auto; gap: .5rem 1.25rem; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.25rem; box-shadow: 0 20px 40px -30px rgba(28,21,23,.25); }
.kv-sd-card--featured { grid-column: 1 / -1; grid-template-columns: 220px minmax(0, 1fr) auto; grid-template-rows: auto; border-color: var(--wp--preset--color--red); }
.kv-sd-card__img { position: relative; aspect-ratio: 1; border-radius: 12px; background: var(--wp--preset--gradient--device); display: grid; place-items: center; grid-row: 1 / 3; align-self: start; }
.kv-sd-card--featured .kv-sd-card__img { grid-row: auto; aspect-ratio: 4 / 3; }
.kv-sd-card__img svg { width: 48%; height: 48%; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.kv-sd-card__img svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-sd-card__tag { position: absolute; top: .6rem; left: .6rem; background: var(--wp--preset--color--red); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .3rem .55rem; border-radius: 999px; }
.kv-sd-card__body { min-width: 0; }
.kv-sd-card__body h3 { margin: 0; font-size: 1.15rem; }
.kv-sd-card__model { margin: 0 0 .5rem !important; font-size: .75rem; color: var(--wp--preset--color--muted); letter-spacing: .04em; text-transform: uppercase; }
.kv-sd-card__does { margin: 0 0 .35rem !important; color: var(--wp--preset--color--ink); font-weight: 600; }
.kv-sd-card__where { margin: 0 0 .35rem !important; font-size: .92rem; color: var(--wp--preset--color--text); }
.kv-sd-card__where b { color: var(--wp--preset--color--ink); font-weight: 700; }
.kv-sd-card__tech { margin: 0 !important; font-size: .8rem; color: var(--wp--preset--color--muted); }
.kv-sd-card__buy { grid-column: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-top: 1px solid var(--wp--preset--color--line-soft); padding-top: .75rem; margin-top: .25rem; }
.kv-sd-card--featured .kv-sd-card__buy { grid-column: auto; flex-direction: column; align-items: flex-end; justify-content: center; border-top: 0; border-left: 1px solid var(--wp--preset--color--line-soft); padding: 0 0 0 1.5rem; margin: 0; text-align: right; }
.kv-sd-card__price { font-weight: 800; font-size: 1.35rem; color: var(--wp--preset--color--ink); }
.kv-sd-card__price small { display: block; font-size: .75rem; font-weight: 400; color: var(--wp--preset--color--muted); }
.kv-sd-card__add { padding: .8rem 1.1rem !important; font-size: .9rem !important; white-space: nowrap; }
.kv-sd-end { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: var(--wp--preset--spacing--30); }
.kv-sd-end__card { display: block; text-decoration: none; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.5rem; color: var(--wp--preset--color--text); transition: transform .25s ease; }
.kv-sd-end__card:hover { transform: translateY(-4px); }
.kv-sd-end__card h3 { margin: .25rem 0 .4rem; color: var(--wp--preset--color--ink); }
.kv-sd-end__card p { margin: 0 0 .75rem; }
.kv-sd-end__card--dark { background: #2a2a2d; color: rgba(255,255,255,.78); border: 1px solid rgba(255,255,255,.12); }
.kv-sd-end__card--dark h3 { color: #fff; }
.kv-sd-end__card--dark .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-sd-end__card--dark .kv-other__go { color: #fff; }
@media (max-width: 1024px) { .kv-sd-grid { grid-template-columns: 1fr; } .kv-sd-card--featured { grid-template-columns: 180px minmax(0, 1fr); } .kv-sd-card--featured .kv-sd-card__buy { grid-column: 2; flex-direction: row; align-items: center; border-left: 0; border-top: 1px solid var(--wp--preset--color--line-soft); padding: .75rem 0 0; text-align: left; } }
@media (max-width: 640px) { .kv-sd-card, .kv-sd-card--featured { grid-template-columns: 1fr; } .kv-sd-card__img { grid-row: auto; aspect-ratio: 16 / 9; } .kv-sd-card__buy, .kv-sd-card--featured .kv-sd-card__buy { grid-column: 1; } .kv-sd-end { grid-template-columns: 1fr; } }
/* ---- Legal pages (/privaatsus/, /tingimused/): summary tiles, sticky table of contents, readable body ---- */
/* ---- Legal pages v2 (Tingimused, Privaatsus): dark hero + image, overlapping summary tiles, big readable body, figures ---- */
.kv-legal-hero { background-image: radial-gradient(55% 70% at 85% 30%, rgba(226,30,38,.22), transparent 70%); }
.kv-legal-hero .kv-crumb { color: rgba(255,255,255,.55); margin-bottom: 1.25rem !important; }
.kv-legal-hero .kv-crumb a { color: rgba(255,255,255,.75); }
.kv-lg-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 3rem; align-items: center; max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
.kv-lg-hero__text .is-style-eyebrow { color: var(--wp--preset--color--red); margin: 0 0 .75rem; }
.kv-lg-hero__text h1 { color: #fff; font-size: clamp(2.3rem, 4.6vw, 3.6rem); line-height: 1.05; letter-spacing: -.015em; margin: 0 0 1.25rem; }
.kv-lg-hero__text h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-lg-hero__lead { color: rgba(255,255,255,.82); font-size: 1.25rem; line-height: 1.6; max-width: 34em; margin: 0 0 1.75rem !important; }
.kv-lg-hero__chips { display: flex; flex-wrap: wrap; gap: .75rem; }
.kv-lg-hero__chips span { display: grid; gap: .1rem; padding: .75rem 1.1rem; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); border-radius: 12px; min-width: 10rem; }
.kv-lg-hero__chips small { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.55); font-weight: 700; }
.kv-lg-hero__chips b { color: #fff; font-size: 1rem; }
.kv-lg-hero__visual { position: relative; }
.kv-lg-hero__visual img { display: block; width: 100%; height: auto; aspect-ratio: 6/5; object-fit: cover; border-radius: 22px; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
.kv-lg-hero__badge { position: absolute; left: 1.1rem; bottom: 1.1rem; background: #fff; color: var(--wp--preset--color--ink); font-weight: 700; font-size: .85rem; padding: .55rem .9rem; border-radius: 999px; box-shadow: 0 10px 30px -10px rgba(0,0,0,.6); }
.kv-legal__summary-wrap { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 50%, transparent 50%); margin-bottom: var(--wp--preset--spacing--50) !important; }
.kv-legal__summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; max-width: var(--wp--style--global--wide-size); margin: 0 auto !important; }
.kv-legal__summary > div { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.5rem 1.6rem; display: grid; gap: .4rem; align-content: start; box-shadow: 0 24px 50px -36px rgba(28,21,23,.6); }
.kv-legal__summary b { color: var(--wp--preset--color--ink); font-size: 1.15rem; }
.kv-legal__summary p { margin: 0 !important; font-size: 1rem; line-height: 1.55; color: var(--wp--preset--color--text); }
.kv-legal__ico { width: 32px; height: 32px; border-radius: 50%; background: var(--wp--preset--color--red); color: #fff; display: grid; place-items: center; font-size: .85rem; font-weight: 800; margin-bottom: .35rem; }
.kv-legal-section { padding-top: 0 !important; margin-top: 0 !important; }
.kv-legal { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 4rem; align-items: start; max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
.kv-legal__toc { position: sticky; top: 96px; }
.kv-legal__toc .is-style-eyebrow { margin: 0 0 .75rem; }
.kv-legal__toc ol { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; gap: .15rem; font-size: 1rem; counter-reset: toc; }
.kv-legal__toc li { counter-increment: toc; }
.kv-legal__toc ol a { display: flex; gap: .7rem; align-items: baseline; color: var(--wp--preset--color--text); text-decoration: none; padding: .45rem .75rem; border-radius: 10px; border-left: 3px solid transparent; line-height: 1.35; }
.kv-legal__toc ol a::before { content: counter(toc, decimal-leading-zero); font-size: .72rem; font-weight: 800; color: var(--wp--preset--color--muted); letter-spacing: .05em; }
.kv-legal__toc ol a:hover { color: var(--wp--preset--color--ink); background: var(--wp--preset--color--ground); }
.kv-legal__toc ol a.is-active { color: var(--wp--preset--color--ink); font-weight: 700; background: var(--wp--preset--color--ground); border-left-color: var(--wp--preset--color--red); }
.kv-legal__toc ol a.is-active::before { color: var(--wp--preset--color--red); }
.kv-legal__toc-note { margin: 1.25rem 0 0 !important; font-size: .9rem; color: var(--wp--preset--color--muted); padding: 0 .75rem; }
.kv-legal__toc-note a { color: var(--wp--preset--color--ink); font-weight: 700; }
.kv-legal__body { max-width: 78ch; counter-reset: sec; }
.kv-legal__body h2 { font-size: clamp(1.6rem, 2.4vw, 2rem) !important; line-height: 1.15; margin: 3.5rem 0 1rem !important; padding-top: 2.25rem; border-top: 1.5px solid var(--wp--preset--color--line); scroll-margin-top: 90px; counter-increment: sec; position: relative; }
.kv-legal__body h2::before { content: counter(sec, decimal-leading-zero); display: block; font-size: .78rem; font-weight: 800; letter-spacing: .1em; color: var(--wp--preset--color--red); margin-bottom: .5rem; }
.kv-legal__body h2:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.kv-legal__body p, .kv-legal__body li { font-size: 1.125rem; line-height: 1.72; }
.kv-legal__body p b { color: var(--wp--preset--color--ink); }
.kv-legal__body ul { padding-left: 1.25rem; margin: .5rem 0 1.25rem; display: grid; gap: .55rem; }
.kv-legal__table { overflow-x: auto; margin: 1.25rem 0 1.5rem; border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; }
.kv-legal__table table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.kv-legal__table th, .kv-legal__table td { text-align: left; vertical-align: top; padding: .8rem .9rem; border-bottom: 1px solid var(--wp--preset--color--line); line-height: 1.5; }
.kv-legal__table th { background: var(--wp--preset--color--ground); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.kv-legal__table tr:last-child td { border-bottom: 0; }
.kv-legal__table td b { color: var(--wp--preset--color--ink); }
/* figures */
.kv-lg-fig { margin: 1.75rem 0 2.25rem; }
.kv-lg-fig > :first-child { background: var(--wp--preset--color--ground); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.4rem; }
.kv-lg-fig figcaption { font-size: .9rem; color: var(--wp--preset--color--muted); margin-top: .7rem; line-height: 1.5; }
.kv-lg-fig--img > :first-child { padding: 0; border: 0; background: none; }
.kv-lg-fig--img img { display: block; width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--wp--preset--color--line); }
.kv-lg-timeline { display: flex; gap: 0; }
.kv-lg-timeline__step { position: relative; flex: 1 1 0; min-width: 0; padding: 0 1rem 0 0; display: grid; gap: .2rem; align-content: start; }
.kv-lg-timeline__step:last-child { flex: 0 1 auto; padding-right: 0; }
.kv-lg-timeline__step:not(:last-child)::before { content: ""; position: absolute; left: 22px; right: 0; top: 10px; height: 3px; background: rgba(28,21,23,.2); border-radius: 2px; }
.kv-lg-timeline__step i { display: block; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 3px solid var(--wp--preset--color--ink); margin-bottom: .6rem; position: relative; z-index: 1; }
.kv-lg-timeline__step.is-red i { background: var(--wp--preset--color--red); border-color: var(--wp--preset--color--red); }
.kv-lg-timeline__step.is-warn i { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }
.kv-lg-timeline__step b { color: var(--wp--preset--color--ink); font-size: .95rem; line-height: 1.25; }
.kv-lg-timeline__step small { font-size: .82rem; color: var(--wp--preset--color--text); line-height: 1.35; }
.kv-lg-flow { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1.5rem; }
.kv-lg-flow__node { position: relative; display: grid; gap: .25rem; align-content: start; padding: .85rem .8rem; border-radius: 12px; background: #fff; border: 1.5px solid var(--wp--preset--color--line); }
.kv-lg-flow__node:not(:last-child)::after { content: "→"; position: absolute; right: -1.2rem; top: .8rem; color: var(--wp--preset--color--muted); font-weight: 700; }
.kv-lg-flow__node b { color: var(--wp--preset--color--ink); font-size: .95rem; line-height: 1.25; }
.kv-lg-flow__node small { font-size: .8rem; line-height: 1.35; color: var(--wp--preset--color--text); }
.kv-lg-flow__node.is-key { border-color: var(--wp--preset--color--red); box-shadow: inset 0 0 0 1px var(--wp--preset--color--red); }
.kv-lg-flow__node.is-key b { color: var(--wp--preset--color--red); }
.kv-lg-flow__node.is-ghost { border-style: dashed; background: transparent; }
.kv-lg-flow__node.is-ghost b { color: var(--wp--preset--color--muted); }
.kv-lg-bars { display: grid; gap: .7rem; }
.kv-lg-bars__row { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto; gap: .9rem; align-items: center; font-size: .95rem; }
.kv-lg-bars__label { color: var(--wp--preset--color--ink); font-weight: 600; line-height: 1.3; }
.kv-lg-bars__track { display: block; height: 14px; border-radius: 999px; background: #fff; border: 1px solid var(--wp--preset--color--line); overflow: hidden; }
.kv-lg-bars__track i { display: block; height: 100%; background: var(--wp--preset--color--ink); border-radius: 999px; min-width: 6px; }
.kv-lg-bars__row.is-red .kv-lg-bars__track i { background: var(--wp--preset--color--red); }
.kv-lg-bars__val { font-weight: 800; color: var(--wp--preset--color--ink); white-space: nowrap; }
.kv-lg-matrix { display: grid; gap: .35rem; font-size: .95rem; }
.kv-lg-matrix__head, .kv-lg-matrix__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr); gap: .75rem; align-items: start; }
.kv-lg-matrix__head span { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; padding: 0 .75rem .4rem; }
.kv-lg-matrix__head span:nth-child(2), .kv-lg-matrix__head span:nth-child(3) { color: var(--wp--preset--color--red); }
.kv-lg-matrix__row span { padding: .65rem .75rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; line-height: 1.4; }
.kv-lg-matrix__row span:first-child { font-weight: 700; color: var(--wp--preset--color--ink); background: transparent; border-color: transparent; padding-left: .75rem; }
.kv-lg-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.kv-lg-tiles > div { display: grid; gap: .25rem; align-content: start; padding: .95rem 1rem; background: #fff; border: 1.5px solid var(--wp--preset--color--line); border-radius: 12px; }
.kv-lg-tiles b { color: var(--wp--preset--color--ink); font-size: 1rem; }
.kv-lg-tiles small { font-size: .85rem; line-height: 1.4; color: var(--wp--preset--color--text); }
.kv-lg-tiles--stats { grid-template-columns: repeat(4, 1fr); }
.kv-lg-tiles--stats b { font-size: 2.2rem; line-height: 1; color: var(--wp--preset--color--red); font-weight: 800; }
.kv-lg-tiles--stats > div:last-child b { color: var(--wp--preset--color--ink); }
@media (max-width: 900px) {
  .kv-lg-hero { grid-template-columns: 1fr; gap: 2rem; }
  .kv-legal { grid-template-columns: 1fr; gap: 1.5rem; }
  .kv-legal__toc { position: static; }
  .kv-legal__toc ol { grid-template-columns: 1fr 1fr; }
  .kv-legal__summary { grid-template-columns: 1fr 1fr; }
  .kv-legal__summary-wrap { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0 4rem, transparent 4rem); }
  .kv-lg-tiles, .kv-lg-tiles--stats { grid-template-columns: 1fr 1fr; }
  .kv-lg-timeline { display: grid; grid-auto-flow: row; gap: 1rem; }
  .kv-lg-timeline__step { grid-template-columns: 22px 1fr; column-gap: .9rem; padding: 0; }
  .kv-lg-timeline__step:not(:last-child)::before { left: 10px; right: auto; top: 22px; bottom: -1rem; width: 3px; height: auto; }
  .kv-lg-timeline__step i { margin: 0; }
  .kv-lg-timeline__step b, .kv-lg-timeline__step small { grid-column: 2; }
  .kv-lg-flow { grid-auto-flow: row; grid-auto-columns: auto; gap: 1.6rem; }
  .kv-lg-flow__node:not(:last-child)::after { content: "↓"; right: auto; left: 1rem; top: auto; bottom: -1.45rem; }
  .kv-lg-matrix__row { grid-template-columns: 1fr; gap: .25rem; }
  .kv-lg-matrix__head { display: none; }
  .kv-lg-matrix__row span:nth-child(2)::before { content: "Ost · "; color: var(--wp--preset--color--red); font-weight: 700; }
  .kv-lg-matrix__row span:nth-child(3)::before { content: "Rent · "; color: var(--wp--preset--color--red); font-weight: 700; }
}
@media (max-width: 560px) { .kv-legal__summary, .kv-legal__toc ol, .kv-lg-tiles, .kv-lg-tiles--stats { grid-template-columns: 1fr; } .kv-lg-bars__row { grid-template-columns: 1fr auto; } .kv-lg-bars__track { grid-column: 1 / -1; } .kv-lg-hero__chips span { flex: 1 1 calc(50% - .4rem); min-width: 0; } }
/* ---- Kuidas see töötab (/kuidas-see-tootab/): hero jump, 4 image+text steps, patrol band, what-if cards, ost/rent recap, technician ---- */
.kv-how__jumpwrap { margin-bottom: var(--wp--preset--spacing--50) !important; }
.kv-how-steps { padding-top: 0 !important; margin-top: 0 !important; }
.kv-how__jump { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
.kv-how__jump a { display: flex; align-items: center; gap: .75rem; background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1.1rem 1.2rem; font-size: 1.05rem; box-shadow: 0 24px 50px -36px rgba(28,21,23,.6); text-decoration: none; color: var(--wp--preset--color--ink); font-weight: 700; transition: border-color .15s; }
.kv-how__jump a:hover { border-color: var(--wp--preset--color--ink); }
.kv-how__jump b { color: var(--wp--preset--color--red); font-size: .8rem; letter-spacing: .06em; }
.kv-how { display: grid; gap: var(--wp--preset--spacing--60); }
.kv-how__step { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--50); align-items: center; scroll-margin-top: 90px; }
.kv-how__step--rev .kv-how__media { order: 2; }
.kv-how__media { position: relative; }
.kv-how__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; border: 1px solid var(--wp--preset--color--line); }
.kv-how__n { position: absolute; top: 1rem; left: 1rem; background: var(--wp--preset--color--ink); color: #fff; font-weight: 800; font-size: .9rem; letter-spacing: .08em; padding: .45rem .7rem; border-radius: 999px; }
.kv-how__body h3 { font-size: 1.75rem; line-height: 1.15; margin: .35rem 0 .75rem; }
.kv-how__body h3 em { font-style: normal; font-weight: 400; color: var(--wp--preset--color--muted); display: block; font-size: 1.1rem; margin-top: .25rem; }
.kv-how__body > p:not(.is-style-eyebrow) { font-size: 1.05rem; line-height: 1.6; }
.kv-how__facts { list-style: none; padding: 0 !important; margin: 1rem 0 0 !important; display: flex; flex-wrap: wrap; gap: .5rem; }
.kv-how__facts li { font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: .4rem .8rem; }
.kv-how__go { display: inline-block; margin-top: 1rem; font-weight: 700; color: var(--wp--preset--color--red); text-decoration: none; }
.kv-how__go:hover { text-decoration: underline; }
.kv-patrol { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--wp--preset--spacing--50); align-items: center; }
.kv-patrol h2 { color: #fff; }
.kv-patrol p { color: rgba(255,255,255,.85); }
.kv-patrol .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-patrol__list { list-style: none; padding: 0 !important; margin: 1rem 0 1.5rem !important; display: grid; gap: .5rem; }
.kv-patrol__list li { color: rgba(255,255,255,.9); padding-left: 1.5rem; position: relative; }
.kv-patrol__list li::before { content: ""; position: absolute; left: 0; top: .55em; width: .7rem; height: .7rem; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-patrol__art img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; border: 1px solid rgba(255,255,255,.14); }
.kv-whatif { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.kv-whatif__card { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1.15rem 1.25rem; }
.kv-whatif__card h3 { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin: 0 0 .5rem; }
.kv-whatif__card h3 span { display: block; text-transform: none; letter-spacing: 0; font-size: 1.1rem; color: var(--wp--preset--color--ink); margin-top: .2rem; }
.kv-whatif__card p { margin: 0 !important; font-size: .95rem; }
.kv-how__ostrent-head { display: grid; grid-template-columns: 1fr auto; gap: 1rem 2rem; align-items: center; }
.kv-how__ostrent-head .is-style-eyebrow { grid-column: 1; margin: 0; }
.kv-how__ostrent-head h2 { grid-column: 1; margin: 0; }
.kv-how__ostrent-head .kv-toggle { grid-column: 2; grid-row: 1 / 3; }
.kv-how__ostrent-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.5rem; }
.kv-how__ostrent-cols > div { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1.25rem 1.4rem; }
.kv-how__ostrent-cols > div[hidden] { display: none; }
.kv-how__ostrent-cols h3 { font-size: 1.1rem; margin: 0 0 .4rem; }
.kv-how__ostrent-cols p { margin: 0 !important; font-size: .95rem; }
.kv-how__ostrent-link { margin: 1rem 0 0 !important; }
.kv-how__ostrent-link a { color: var(--wp--preset--color--red); font-weight: 700; }
.kv-tech { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: var(--wp--preset--spacing--50); align-items: center; }
.kv-tech__photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 20px; border: 1px solid var(--wp--preset--color--line); }
.kv-tech__quote { font-size: 1.25rem; line-height: 1.45; color: var(--wp--preset--color--ink); font-weight: 600; }
.kv-tech__name { color: var(--wp--preset--color--muted); font-size: .9rem; }
.kv-tech__body a { color: var(--wp--preset--color--red); font-weight: 700; }
@media (max-width: 900px) { .kv-how__jump { grid-template-columns: 1fr 1fr; } .kv-how__step, .kv-patrol, .kv-tech { grid-template-columns: 1fr; } .kv-how__step--rev .kv-how__media { order: 0; } .kv-whatif { grid-template-columns: 1fr 1fr; } .kv-tech__photo { max-width: 320px; } }
@media (max-width: 560px) { .kv-whatif, .kv-how__ostrent-cols { grid-template-columns: 1fr; } .kv-how__ostrent-head { grid-template-columns: 1fr; } .kv-how__ostrent-head .kv-toggle { grid-column: 1; grid-row: auto; } }
/* ---- Rakendus (/rakendus/): phone screens, store buttons, feature grid, users block, next step ---- */
.kv-app-hero { background-image: radial-gradient(60% 80% at 85% 50%, rgba(226,30,38,.22), transparent 70%); }
.kv-app-hero h1, .kv-app-hero .kv-pp-hero__lead { color: #fff; }
.kv-app-hero h1 { font-size: clamp(2.3rem, 4.6vw, 3.6rem) !important; line-height: 1.05; letter-spacing: -.015em; margin-bottom: 1.25rem !important; }
.kv-app-hero .kv-pp-hero__lead { color: rgba(255,255,255,.82); font-size: 1.2rem; line-height: 1.6; max-width: 34em; margin-bottom: 1.5rem !important; }
.kv-app-hero .kv-crumb, .kv-app-hero .kv-crumb a { color: rgba(255,255,255,.55); }
.kv-app-hero .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-app__hero h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-app-hero .kv-app__store { background: #fff; color: var(--wp--preset--color--ink); }
.kv-app-hero .kv-app__store:hover { background: var(--wp--preset--color--ground); color: var(--wp--preset--color--ink); }
.kv-app-hero .kv-app__store small { color: var(--wp--preset--color--muted); }
.kv-app-hero .kv-app__note { color: rgba(255,255,255,.6); }
.kv-app__heroimg { position: relative; }
.kv-app__heroimg img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
.kv-app__badge { position: absolute; left: 1.25rem; bottom: 1.25rem; background: #fff; color: var(--wp--preset--color--ink); font-weight: 800; font-size: .8rem; letter-spacing: .04em; padding: .5rem .9rem; border-radius: 999px; }
.kv-app__stores { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .5rem; }
.kv-app__badge-link img { display: block; height: 56px; width: auto; }
.kv-app__badge-link--play img { height: 70px; margin: -7px; }
.kv-app__store { display: grid; gap: .1rem; background: var(--wp--preset--color--ink); color: #fff; text-decoration: none; border-radius: 12px; padding: .6rem 1.25rem .65rem; min-width: 160px; transition: background .15s; }
.kv-app__store:hover { background: #000; color: #fff; }
.kv-app__store small { font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.kv-app__store b { font-size: 1.1rem; }
.kv-app__note { margin: .9rem 0 0 !important; font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-app__feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.kv-app__feat { background: var(--wp--preset--color--ground); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1.25rem; }
.kv-app__feat:first-child { grid-column: span 2; background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }
.kv-app__feat:first-child h3 { color: #fff; }
.kv-app__feat:first-child p { color: rgba(255,255,255,.8); }
.kv-app__feat:first-child .kv-app__ico { background: rgba(255,255,255,.1); }
.kv-app__feat:first-child .kv-app__ico svg { stroke: #fff; }
.kv-app__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); display: grid; place-items: center; margin-bottom: .9rem; }
.kv-app__ico svg { width: 24px; height: 24px; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-app__ico svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-app__feat h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.kv-app__feat p { margin: 0 !important; font-size: .92rem; }
.kv-app__users { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--wp--preset--spacing--50); align-items: center; }
.kv-app__users-art img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; border: 1px solid var(--wp--preset--color--line); }
.kv-app__users-list { list-style: none; padding: 0 !important; margin: 1rem 0 0 !important; display: grid; gap: .5rem; }
.kv-app__users-list li { padding-left: 1.5rem; position: relative; }
.kv-app__users-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: .7rem; height: .7rem; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-app-faq > p:last-child a { color: #fff; font-weight: 700; }
.kv-app-faq > p:last-child { color: rgba(255,255,255,.7); }
.kv-app__next { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; background: var(--wp--preset--color--ground); border-radius: 20px; padding: 2rem 2.25rem; }
.kv-app__next h2 { margin: .25rem 0 .5rem; font-size: 1.75rem !important; }
.kv-app__next p:last-child { margin: 0 !important; }
.kv-app__next-btns { display: flex; align-items: center; gap: 1.25rem; white-space: nowrap; }
.kv-app__next-link { color: var(--wp--preset--color--red); font-weight: 700; text-decoration: none; }
.kv-app__next-link:hover { text-decoration: underline; }
@media (max-width: 900px) { .kv-app__feats { grid-template-columns: 1fr 1fr; } .kv-app__users { grid-template-columns: 1fr; } .kv-app__next { grid-template-columns: 1fr; } .kv-app__next-btns { white-space: normal; flex-wrap: wrap; } }
@media (max-width: 560px) { .kv-app__feats { grid-template-columns: 1fr; } .kv-app__feat:first-child { grid-column: auto; } }
/* ---- Ärikliendile (/ariklient/): hero from-box, 3 use cases, ex-VAT table, differences, CTA ---- */
.kv-ari-hero h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-ari__from { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 1.25rem 0 1.5rem; }
.kv-ari__from > div { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: .9rem 1.1rem; display: grid; gap: .1rem; }
.kv-ari__from small { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; }
.kv-ari__from b { font-size: 1.5rem; color: var(--wp--preset--color--ink); }
.kv-ari__from span { font-size: .85rem; color: var(--wp--preset--color--text); }
.kv-ari__cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.kv-ari__case { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.kv-ari__case-img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.kv-ari__case-body { padding: 1.25rem 1.4rem 1.5rem; display: flex; flex-direction: column; }
.kv-ari__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); display: grid; place-items: center; margin: -2.6rem 0 .75rem; position: relative; background: var(--wp--preset--color--surface); }
.kv-ari__ico svg { width: 24px; height: 24px; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-ari__ico svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-ari__case h3 { font-size: 1.35rem; margin: 0 0 .2rem; }
.kv-ari__base { margin: 0 0 .75rem !important; font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--red); }
.kv-ari__case-body > p:not(.kv-ari__base):not(.kv-ari__adds-label) { font-size: .95rem; margin: 0 0 1rem !important; }
.kv-ari__adds-label { margin: auto 0 .4rem !important; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; }
.kv-ari__adds { list-style: none; padding: 0 !important; margin: 0 !important; display: grid; gap: .3rem; }
.kv-ari__adds li { font-size: .9rem; padding-left: 1.2rem; position: relative; }
.kv-ari__adds li::before { content: "+"; position: absolute; left: 0; color: var(--wp--preset--color--red); font-weight: 800; }
.kv-ari__table { overflow-x: auto; border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; background: var(--wp--preset--color--surface); }
.kv-ari__table table { width: 100%; border-collapse: collapse; }
.kv-ari__table th, .kv-ari__table td { padding: .9rem 1.1rem; text-align: left; border-bottom: 1px solid var(--wp--preset--color--line); font-size: .95rem; }
.kv-ari__table thead th { font-size: 1.1rem; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--ground); }
.kv-ari__table thead th span { display: block; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--red); }
.kv-ari__table tbody th { font-weight: 600; color: var(--wp--preset--color--muted); width: 22%; }
.kv-ari__table td { font-weight: 600; color: var(--wp--preset--color--ink); }
.kv-ari__table .is-hot { background: var(--wp--preset--color--red-tint); }
.kv-ari__table tr:last-child th, .kv-ari__table tr:last-child td { border-bottom: 0; }
.kv-ari__table-note { margin: 1rem 0 0 !important; font-size: .9rem; color: var(--wp--preset--color--text); }
.kv-ari__table-note a { color: var(--wp--preset--color--red); font-weight: 700; }
.kv-ari__diff { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.kv-ari__diff-card { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 1rem; align-items: start; background: var(--wp--preset--color--ground); border-radius: 14px; padding: 1.25rem 1.4rem; }
.kv-ari__check { width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--red-tint); position: relative; }
.kv-ari__check::after { content: ""; position: absolute; left: 12px; top: 8px; width: 9px; height: 15px; border: solid var(--wp--preset--color--red); border-width: 0 3px 3px 0; transform: rotate(45deg); }
.kv-ari__diff-card h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
.kv-ari__diff-card p { margin: 0 !important; font-size: .92rem; }
.kv-ari__cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; background: var(--wp--preset--color--ground); border-radius: 20px; padding: 2rem 2.25rem; }
.kv-ari__cta h2 { margin: .25rem 0 .5rem; font-size: 1.75rem !important; }
.kv-ari__cta p:last-child { margin: 0 !important; }
.kv-ari__cta-btns { display: flex; align-items: center; gap: 1.25rem; white-space: nowrap; }
.kv-ari__cta-link { color: var(--wp--preset--color--red); font-weight: 700; text-decoration: none; }
@media (max-width: 900px) { .kv-ari__cases, .kv-ari__diff { grid-template-columns: 1fr; } .kv-ari__cta { grid-template-columns: 1fr; } .kv-ari__cta-btns { white-space: normal; flex-wrap: wrap; } }
@media (max-width: 560px) { .kv-ari__from { grid-template-columns: 1fr; } .kv-ari__table th, .kv-ari__table td { padding: .7rem .6rem; font-size: .85rem; } }
.kv-ari-day h2 { color: #fff; }
.kv-ari-day .is-style-lead { color: rgba(255,255,255,.75); }
.kv-ari-day .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-ari__day { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; position: relative; margin-top: var(--wp--preset--spacing--40); }
.kv-ari__day::before { content: ""; position: absolute; left: 0; right: 0; top: 20px; height: 2px; background: rgba(255,255,255,.14); }
.kv-ari__moment { position: relative; padding-top: 3rem; }
.kv-ari__moment::before { content: ""; position: absolute; left: 0; top: 13px; width: 16px; height: 16px; border-radius: 50%; background: var(--wp--preset--color--red); box-shadow: 0 0 0 6px var(--wp--preset--color--ink); }
.kv-ari__time { position: absolute; left: 28px; top: 8px; font-size: .8rem; font-weight: 800; letter-spacing: .08em; color: var(--wp--preset--color--red); font-variant-numeric: tabular-nums; }
.kv-ari__moment h3 { color: #fff; font-size: 1.15rem; margin: 0 0 .4rem; }
.kv-ari__moment p { color: rgba(255,255,255,.75); font-size: .92rem; margin: 0 !important; }
.kv-ari__addons { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.kv-ari__addon { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 1rem; align-items: center; background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1rem 1.15rem; }
.kv-ari__addon-ico { width: 48px; height: 48px; border-radius: 12px; background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); display: grid; place-items: center; }
.kv-ari__addon-ico svg { width: 26px; height: 26px; fill: none; stroke: var(--wp--preset--color--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kv-ari__addon-ico svg .r { fill: var(--wp--preset--color--red); stroke: none; }
.kv-ari__addon h3 { font-size: 1rem; margin: 0 0 .15rem; }
.kv-ari__addon p { margin: 0 !important; font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-ari__addon-price { text-align: right; white-space: nowrap; }
.kv-ari__addon-price b { display: block; font-size: 1.1rem; color: var(--wp--preset--color--ink); }
.kv-ari__addon-price small { font-size: .75rem; color: var(--wp--preset--color--muted); }
.kv-ari-process h2 { color: #fff; }
.kv-ari-process .is-style-lead { color: rgba(255,255,255,.75); }
.kv-ari-process .is-style-eyebrow { color: var(--wp--preset--color--red); }
.kv-ari__process { list-style: none; padding: 0 !important; margin: var(--wp--preset--spacing--40) 0 0 !important; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; position: relative; }
.kv-ari__process::before { content: ""; position: absolute; left: 20px; right: 20px; top: 20px; height: 2px; background: rgba(255,255,255,.18); }
.kv-ari__process li { position: relative; padding-top: .25rem; }
.kv-ari__process li .kv-step-num { position: relative; box-shadow: 0 0 0 8px var(--wp--preset--color--ink); }
.kv-ari__process h3 { font-size: 1.15rem; margin: 1rem 0 .4rem; color: #fff; }
.kv-ari__process p { margin: 0 !important; font-size: .92rem; color: rgba(255,255,255,.75); }
.kv-ari__ico-note { color: rgba(255,255,255,.6); }
@media (max-width: 900px) { .kv-ari__day, .kv-ari__process { grid-template-columns: 1fr 1fr; } .kv-ari__day::before, .kv-ari__process::before { display: none; } .kv-ari__addons { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .kv-ari__day, .kv-ari__process { grid-template-columns: 1fr; } .kv-ari__addon { grid-template-columns: 48px 1fr; } .kv-ari__addon-price { grid-column: 2; text-align: left; } }
/* ---- Meist (/meist/): numbers band, people, story, why Hikvision, company details ---- */
.kv-meist-hero h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-meist-nums { padding-top: var(--wp--preset--spacing--40) !important; padding-bottom: var(--wp--preset--spacing--40) !important; }
.kv-meist__nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.kv-meist__nums > div { display: grid; gap: .2rem; padding-left: 1.25rem; border-left: 2px solid var(--wp--preset--color--red); }
.kv-meist__nums b { color: #fff; font-size: 1.75rem; line-height: 1.1; }
.kv-meist__nums span { color: rgba(255,255,255,.65); font-size: .85rem; }
.kv-meist__people { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.kv-meist__person { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 18px; padding: 1rem 1rem 1.4rem; }
.kv-meist__person img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; margin-bottom: 1rem; }
.kv-meist__person h3 { font-size: 1.2rem; margin: 0 0 .15rem; }
.kv-meist__role { margin: 0 0 .5rem !important; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--red); }
.kv-meist__person p:last-child { margin: 0 !important; font-size: .92rem; }
.kv-meist__story { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--wp--preset--spacing--50); align-items: center; }
.kv-meist__story-text p:not(.is-style-eyebrow) { font-size: 1.02rem; line-height: 1.6; }
.kv-meist__story-art img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; border: 1px solid var(--wp--preset--color--line); }
.kv-meist__why { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.kv-meist__why-card { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; padding: 1.25rem 1.3rem; }
.kv-meist__why-card h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
.kv-meist__why-card p { margin: 0 !important; font-size: .9rem; }
.kv-meist__req { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; align-items: start; background: var(--wp--preset--color--ground); border-radius: 20px; padding: 2rem 2.25rem; }
.kv-meist__req h2 { margin: .25rem 0 0; font-size: 1.75rem !important; }
.kv-meist__req-list { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 2rem; }
.kv-meist__req-list dt { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; }
.kv-meist__req-list dd { margin: .1rem 0 0; font-weight: 700; color: var(--wp--preset--color--ink); }
.kv-meist__req-list a { color: var(--wp--preset--color--red); }
.kv-meist__req-note { grid-column: 1 / -1; margin: .5rem 0 0 !important; font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-meist__req-note a { color: var(--wp--preset--color--text); }
@media (max-width: 900px) { .kv-meist__nums, .kv-meist__why { grid-template-columns: 1fr 1fr; } .kv-meist__people, .kv-meist__story, .kv-meist__req { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .kv-meist__nums, .kv-meist__why, .kv-meist__req-list { grid-template-columns: 1fr; } }
/* ---- Blogi: list (templates/home.html) and single post (templates/single.html) ---- */
.kv-blog-hero h1, .kv-blog-hero .kv-crumb, .kv-blog-hero .is-style-lead, .kv-blog-hero .is-style-eyebrow, .kv-blog__cats { max-width: var(--wp--style--global--content-size); margin-left: auto !important; margin-right: auto !important; }
.kv-blog-hero h1 { padding-right: 20%; box-sizing: border-box; font-size: clamp(2.3rem, 4.6vw, 3.6rem) !important; line-height: 1.05; letter-spacing: -.015em; margin-bottom: 1.25rem !important; }
.kv-blog-hero .is-style-lead { padding-right: 20%; box-sizing: border-box; font-size: 1.2rem !important; line-height: 1.6; }
@media (max-width: 781px) { .kv-blog-hero h1, .kv-blog-hero .is-style-lead { padding-right: 0; } }
.kv-blog-hero h1 em { font-style: normal; color: var(--wp--preset--color--red); }
.kv-blog__cats { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.kv-blog__cats a { border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); border-radius: 999px; padding: .5rem 1rem; font-size: .9rem; font-weight: 700; color: var(--wp--preset--color--text); text-decoration: none; }
.kv-blog__cats a:hover { border-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); }
.kv-blog__cats a.is-active { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }
.kv-blog__grid { gap: 1.5rem !important; }
.kv-blog__card { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; height: 100%; transition: border-color .15s, box-shadow .15s; }
.kv-blog__card:hover { border-color: var(--wp--preset--color--ink); box-shadow: 0 16px 40px -24px rgba(28,21,23,.4); }
.kv-blog__card > * { margin: 0 !important; }
.kv-blog__img, .kv-blog__img img { display: block; width: 100%; height: auto; }
.kv-blog__img img { aspect-ratio: 16 / 10; object-fit: cover; }
.kv-blog__meta { padding: 1rem 1.25rem 0; gap: .5rem .75rem !important; align-items: center; font-size: .78rem; }
.kv-blog__cat, .kv-blog__cat a { font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--red) !important; text-decoration: none; font-size: .72rem; }
.kv-blog__date { color: var(--wp--preset--color--muted); }
.kv-blog__meta .kv-blog__date::before { content: "·"; margin-right: .75rem; color: var(--wp--preset--color--line); }
.kv-blog__title { padding: .5rem 1.25rem 0; font-size: 1.25rem !important; line-height: 1.3; }
.kv-blog__title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.kv-blog__title a:hover { color: var(--wp--preset--color--red); }
.kv-blog__excerpt { padding: .5rem 1.25rem 1.25rem; font-size: .92rem; color: var(--wp--preset--color--text); }
.kv-blog__excerpt .wp-block-post-excerpt__more-text { margin-top: .5rem; }
.kv-blog__excerpt .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--red); font-weight: 700; text-decoration: none; }
.kv-blog__card:first-child:nth-last-child(n+4) { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr; grid-template-rows: auto auto 1fr; align-items: start; align-content: center; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__img { grid-column: 1; grid-row: 1 / 4; height: 100%; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__meta, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__title, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__excerpt { grid-column: 2; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__img img { aspect-ratio: 4 / 3; height: 100%; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__title { font-size: 1.75rem !important; padding-top: .25rem; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__meta, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__title, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__excerpt { padding-left: 2rem; padding-right: 2rem; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__meta { padding-top: 2rem; }
.kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__excerpt { padding-bottom: 2rem; font-size: 1rem; }
.kv-blog__pages { margin-top: 2.5rem !important; font-weight: 700; gap: .25rem !important; }
.kv-blog__pages a, .kv-blog__pages .page-numbers { padding: .55rem .9rem; border-radius: 10px; color: var(--wp--preset--color--text); text-decoration: none; }
.kv-blog__pages a:hover { background: var(--wp--preset--color--ground); color: var(--wp--preset--color--ink); }
.kv-blog__pages .page-numbers.current { background: var(--wp--preset--color--ink); color: #fff; }
.kv-post-hero .kv-crumb { margin: 0 auto 1.5rem !important; }
.kv-post__meta { gap: .5rem .75rem !important; align-items: center; font-size: .85rem; margin-bottom: .75rem !important; }
.kv-post__meta .kv-blog__date::before { content: "·"; margin-right: .75rem; color: var(--wp--preset--color--line); }
.kv-post__title { font-size: clamp(2rem, 4.2vw, 3rem) !important; line-height: 1.1; letter-spacing: -.01em; }
.kv-post__lead { font-size: 1.2rem; line-height: 1.55; color: var(--wp--preset--color--text); }
.kv-post__lead p { max-width: 60ch; margin: 0; }
.kv-post__img { margin-top: var(--wp--preset--spacing--40) !important; margin-bottom: calc(-1 * var(--wp--preset--spacing--50)) !important; position: relative; z-index: 1; }
.kv-post__img img { border-radius: 20px; border: 1px solid var(--wp--preset--color--line); box-shadow: 0 30px 60px -40px rgba(28,21,23,.5); }
.kv-post-body { padding-top: calc(var(--wp--preset--spacing--50) + var(--wp--preset--spacing--50)) !important; }
.kv-post-body .entry-content > p, .kv-post-body .wp-block-post-content > p, .kv-post-body .entry-content li, .kv-post-body .wp-block-post-content li { font-size: 1.08rem; line-height: 1.7; }
.kv-post-body .wp-block-post-content h2 { font-size: 1.75rem !important; margin-top: 2.5rem; }
.kv-post-body .wp-block-post-content h3 { font-size: 1.3rem; margin-top: 2rem; }
.kv-post-body .wp-block-post-content blockquote { border-left: 3px solid var(--wp--preset--color--red); margin: 2rem 0; padding: .25rem 0 .25rem 1.25rem; font-size: 1.15rem; color: var(--wp--preset--color--ink); font-weight: 600; }
.kv-post-body .wp-block-post-content figure img { border-radius: 14px; }
.kv-post-body .wp-block-post-content .wp-element-caption { font-size: .85rem; color: var(--wp--preset--color--muted); }
.kv-post-body .wp-block-post-content .kv-note { background: var(--wp--preset--color--ground); border-radius: 14px; padding: 1.1rem 1.3rem; margin: 1.75rem 0; font-size: 1rem; }
.kv-post-body .wp-block-post-content .kv-note b { color: var(--wp--preset--color--red); }
.kv-post__foot { margin-top: 2.5rem !important; padding-top: 1.25rem; border-top: 1.5px solid var(--wp--preset--color--line); font-size: .9rem; color: var(--wp--preset--color--muted); }
.kv-post__tags a { color: var(--wp--preset--color--ink); text-decoration: none; border-bottom: 1px dotted var(--wp--preset--color--muted); }
.kv-post__by { margin: 0 !important; }
.kv-post__cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; background: var(--wp--preset--color--ink); color: #fff; border-radius: 18px; padding: 1.5rem 1.75rem; margin-top: 2rem; }
.kv-post__cta .is-style-eyebrow { color: var(--wp--preset--color--red); margin: 0 0 .25rem; }
.kv-post__cta h3 { color: #fff; font-size: 1.25rem; margin: 0; }
.kv-post-more .kv-blog__card:first-child:nth-last-child(n+4) { grid-column: auto; display: flex; }
@media (max-width: 900px) { .kv-blog__card:first-child:nth-last-child(n+4) { grid-template-columns: 1fr; grid-template-rows: auto; } .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__img { grid-row: auto; grid-column: 1; } .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__meta, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__title, .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__excerpt { grid-column: 1; } .kv-blog__card:first-child:nth-last-child(n+4) .kv-blog__img img { aspect-ratio: 16 / 10; } .kv-post__cta { grid-template-columns: 1fr; } }
/* Blog post blocks used by the three post patterns (koduvalve/post-nouanne, post-vordlus, post-seade) */
.kv-post-summary { background: var(--wp--preset--color--ground); border-left: 3px solid var(--wp--preset--color--red); border-radius: 0 14px 14px 0; padding: 1.1rem 1.4rem 1.2rem; margin: 0 0 2rem !important; }
.kv-post-summary .is-style-eyebrow { margin: 0 0 .4rem; }
.kv-post-summary > p:not(.is-style-eyebrow) { font-size: 1.1rem !important; font-weight: 600; color: var(--wp--preset--color--ink); margin: 0 0 .6rem; }
.kv-post-summary ul { margin: 0 !important; font-size: .95rem !important; }
.kv-post-body .wp-block-post-content .kv-note { background: var(--wp--preset--color--ground); border-radius: 14px; padding: 1.1rem 1.3rem; margin: 1.75rem 0; }
.kv-post-body .wp-block-post-content .kv-note p { margin: 0; font-size: 1rem; }
.kv-post-body .wp-block-post-content .kv-note strong { color: var(--wp--preset--color--red); }
.kv-verdict { background: var(--wp--preset--color--ink); color: #fff; border-radius: 14px; padding: 1.25rem 1.5rem; margin: 2rem 0 !important; }
.kv-verdict .is-style-eyebrow { color: var(--wp--preset--color--red); margin: 0 0 .35rem; }
.kv-verdict p:last-child { margin: 0; color: #fff; font-size: 1.05rem; font-weight: 600; }
.kv-post-body .wp-block-post-content .wp-block-columns { margin: 1.5rem 0; gap: 1.5rem; }
.kv-post-body .wp-block-post-content .wp-block-columns h3 { margin-top: 0; font-size: 1.05rem; }
.kv-post-body .wp-block-post-content .wp-block-columns ul { margin: .5rem 0; font-size: 1rem !important; }
.kv-post-body .wp-block-post-content .wp-block-table.is-style-compare { margin: 1.25rem 0 1.75rem; }
.kv-post-body .wp-block-post-content .wp-block-table.is-style-compare td, .kv-post-body .wp-block-post-content .wp-block-table.is-style-compare th { font-size: .95rem; padding: .7rem .9rem; }
.kv-post-body .wp-block-post-content .wp-block-table.is-style-compare td:first-child { font-weight: 700; color: var(--wp--preset--color--ink); }
.kv-post-body .wp-block-post-content .kv-faq .wp-block-details { margin: 0 0 .6rem; }
.kv-post-body .wp-block-post-content .kv-faq summary { font-size: 1rem; }
.kv-post-body .wp-block-post-content .kv-faq details p { padding: 0 1.125rem 1rem 3.25rem; margin: 0; font-size: 1rem; }
.kv-post-links { margin-top: 2rem; font-size: .95rem; color: var(--wp--preset--color--muted); }
.kv-post-links a { color: var(--wp--preset--color--ink); font-weight: 700; }
.kv-post-body .wp-block-post-content ol { padding-left: 1.4rem; }
.kv-post-body .wp-block-post-content ol li { margin-bottom: .5rem; }

/* ---- Kontakt v2 (5 Oct) ---- */
.kv-kontakt__cards { grid-template-columns: repeat(3, 1fr); }
.kv-kontakt__cards b { font-size: 1.2rem; }
.kv-kontakt__main { font-size: 1.25rem !important; font-weight: 800; margin: .1rem 0 .35rem !important; }
.kv-kontakt__main a { color: var(--wp--preset--color--red); text-decoration: none; }
.kv-kontakt__main a:hover { text-decoration: underline; }
.kv-kontakt__cards p a { color: var(--wp--preset--color--ink); font-weight: 700; }
.kv-kontakt__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: var(--wp--style--global--wide-size); margin: var(--wp--preset--spacing--40) auto 0 !important; }
.kv-kontakt__steps > div { background: var(--wp--preset--color--ground); border-radius: 16px; padding: 1.4rem 1.5rem; display: grid; gap: .4rem; align-content: start; }
.kv-kontakt__steps span { width: 34px; height: 34px; border-radius: 50%; background: var(--wp--preset--color--ink); color: #fff; font-weight: 800; display: grid; place-items: center; margin-bottom: .35rem; }
.kv-kontakt__steps b { color: var(--wp--preset--color--ink); font-size: 1.15rem; }
.kv-kontakt__steps p { margin: 0 !important; font-size: 1.02rem; line-height: 1.55; }
.kv-kontakt-body .is-style-eyebrow, .kv-kontakt-body h2, .kv-kontakt-body .is-style-lead { max-width: var(--wp--style--global--wide-size); margin-left: auto !important; margin-right: auto !important; }
.kv-kontakt-req .kv-meist__req { max-width: var(--wp--style--global--wide-size); margin: 0 auto; }
@media (max-width: 900px) { .kv-kontakt__cards, .kv-kontakt__steps { grid-template-columns: 1fr; } }
/* ---- Form + thank-you pages v2 (5 Oct): /tellimus/, /kusi-pakkumist/, /aitah/, /aitah-paring/ ---- */
.kv-form__steps { grid-template-columns: repeat(3, 1fr); }
.kv-form__steps b { font-size: 1.2rem; }
.kv-form__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 2.5rem 3rem; align-items: start; }
.kv-form__main > .is-style-eyebrow, .kv-form__main > h2, .kv-form__main > p { margin-left: 0 !important; margin-right: 0 !important; max-width: none; }
.kv-form__main > h2 { margin-bottom: .5rem !important; }
.kv-form__main > p.is-style-muted { font-size: 1.02rem !important; color: var(--wp--preset--color--text); margin-bottom: 1.25rem !important; }
.kv-form__main .wpcf7 form { padding: 1.75rem; }
.kv-form__main .wpcf7 label { font-size: .9rem; }
.kv-form__main .wpcf7 input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]), .kv-form__main .wpcf7 select, .kv-form__main .wpcf7 textarea { font-size: 1.02rem; padding: .7rem .85rem; }
.kv-form__main .wpcf7 .wpcf7-radio label { font-size: .95rem; padding: 8px 14px; }
.kv-form__main .wpcf7 .wpcf7-acceptance label { font-size: .9rem; }
.kv-form__aside { position: sticky; top: 6rem; display: grid; gap: 1rem; }
.kv-form__facts { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.4rem 1.5rem 1.5rem; box-shadow: 0 24px 50px -36px rgba(28,21,23,.35); }
.kv-form__facts > b, .kv-form__help > b { display: block; color: var(--wp--preset--color--ink); font-size: 1.15rem; margin-bottom: .8rem; }
.kv-form__facts ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.kv-form__facts li { display: flex; gap: .7rem; align-items: flex-start; font-size: 1rem; line-height: 1.45; color: var(--wp--preset--color--text); }
.kv-form__facts li b { color: var(--wp--preset--color--ink); }
.kv-form__facts li i { flex: 0 0 22px; width: 22px; height: 22px; margin-top: .1rem; border-radius: 50%; background: var(--wp--preset--color--red); position: relative; }
.kv-form__facts li i::after { content: ""; position: absolute; left: 7px; top: 4px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.kv-form__facts > p { margin: 1rem 0 0 !important; padding-top: .9rem; border-top: 1px solid var(--wp--preset--color--line); font-size: .95rem; line-height: 1.5; color: var(--wp--preset--color--text); }
.kv-form__facts a { color: var(--wp--preset--color--ink); font-weight: 700; }
.kv-form__help { background: var(--wp--preset--color--ink); color: rgba(255,255,255,.8); border-radius: 16px; padding: 1.4rem 1.5rem 1.5rem; }
.kv-form__help > b { color: #fff; }
.kv-form__help > p { margin: 0 0 .9rem !important; font-size: 1rem; line-height: 1.55; }
.kv-form__help > p a { color: #fff; }
.kv-form__help > a { display: block; color: #fff; font-weight: 800; font-size: 1.05rem; text-decoration: none; padding: .35rem 0; border-top: 1px solid rgba(255,255,255,.15); }
.kv-form__help > a:hover { color: var(--wp--preset--color--red-tint); }
.kv-aitah__foot { max-width: var(--wp--style--global--wide-size); margin: 0 auto; display: grid; gap: 1rem; justify-items: start; }
.kv-aitah__foot p { font-size: 1.05rem !important; color: var(--wp--preset--color--text); margin: 0 !important; }
.kv-aitah-body { padding-bottom: var(--wp--preset--spacing--60) !important; }
.kv-form-hero .kv-lg-hero__visual img { aspect-ratio: 6 / 5; }
@media (max-width: 900px) {
  .kv-form__steps { grid-template-columns: 1fr; }
  .kv-form__grid { grid-template-columns: 1fr; gap: 2rem; }
  .kv-form__aside { position: static; }
  .kv-form__main .wpcf7 form { padding: 1.25rem; }
}
/* ---- KKK v2 (5 Oct): dark hero + topic bar + numbered groups ---- */
.kv-kkk__bar { justify-content: flex-start; }
.kv-kkk__jump a { font-size: .95rem; padding: .6rem 1rem; }
.kv-kkk__jump a small { font-size: .8rem; font-weight: 700; color: var(--wp--preset--color--red); margin-left: .25rem; }
.kv-kkk__group { max-width: var(--wp--style--global--wide-size); margin: 0 auto var(--wp--preset--spacing--50) !important; scroll-margin-top: 6rem; }
.kv-kkk__head { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 1.25rem; }
.kv-kkk__head h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 0 0 .25rem !important; }
.kv-kkk__head p { margin: 0 !important; font-size: 1.05rem; color: var(--wp--preset--color--text); }
.kv-kkk__num { flex: 0 0 auto; font-size: .95rem; font-weight: 800; letter-spacing: .06em; color: var(--wp--preset--color--red); background: var(--wp--preset--color--red-tint); border-radius: 999px; padding: .4rem .8rem; margin-top: .3rem; }
.kv-kkk-body .kv-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; align-items: start; }
.kv-kkk-body .kv-faq .wp-block-details { background: var(--wp--preset--color--surface); }
.kv-kkk-body .kv-faq summary { font-size: 1.08rem; padding: 1.1rem 1.25rem; }
.kv-kkk-body .kv-faq .wp-block-details p { font-size: 1.02rem; line-height: 1.6; padding: 0 1.25rem 1.25rem 4rem; }
.kv-kkk__ask { max-width: var(--wp--style--global--wide-size); margin: var(--wp--preset--spacing--40) auto 0 !important; background: var(--wp--preset--color--ink); color: rgba(255,255,255,.8); border-radius: 20px; padding: 2rem 2.25rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; }
.kv-kkk__ask > div:first-child { max-width: 56ch; }
.kv-kkk__ask b { display: block; color: #fff; font-size: 1.4rem; margin-bottom: .35rem; }
.kv-kkk__ask p { margin: 0 !important; font-size: 1.05rem; line-height: 1.55; }
.kv-kkk__ask-links { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.kv-kkk__ask-links .kv-link { color: #fff; font-weight: 700; }
@media (max-width: 900px) {
  .kv-kkk-body .kv-faq { grid-template-columns: 1fr; }
  .kv-kkk-body .kv-faq .wp-block-details p { padding-left: 1.25rem; }
  .kv-kkk__ask { padding: 1.5rem; }
}
/* ---- 404 v3 (5 Oct, Mia: less text): big code, one line, two buttons ---- */
.kv-404 { min-height: 70vh; display: flex; align-items: center; }
.kv-404__wrap { text-align: center; max-width: 40rem; margin: 0 auto; }
.kv-404__code { font-size: clamp(7rem, 22vw, 15rem); font-weight: 800; line-height: .9; letter-spacing: -.04em; color: #fff; margin: 0 0 1rem !important; }
.kv-404__code span { color: var(--wp--preset--color--red); }
.kv-404 h1 { color: #fff; font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: 0 0 .6rem; }
.kv-404__lead { color: rgba(255,255,255,.72); font-size: 1.15rem; margin: 0 0 1.75rem !important; }
.kv-404__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
/* ---- Ärikliendile hero v2 (5 Oct): dark hero + trust strip ---- */
.kv-lg-hero__btns { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.kv-ari__bar { justify-content: flex-start; gap: .75rem 2rem; padding: 1.1rem 1.5rem; }
.kv-ari__bar span { font-weight: 700; font-size: 1rem; color: var(--wp--preset--color--ink); display: inline-flex; align-items: center; gap: .55rem; }
.kv-ari__bar span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--red); }
.kv-ari-cases .is-style-eyebrow, .kv-ari-cases h2, .kv-ari-cases .is-style-lead { max-width: var(--wp--style--global--wide-size); }
@media (max-width: 640px) { .kv-ari__bar { gap: .5rem 1.25rem; } .kv-ari__bar span { font-size: .95rem; } }

/* Package hero with a real product cut-out (pkg-*.webp): near-black studio stage, spotlight, faint grid, floor glow (6 Oct v2) */
.kv-pp-hero__img:has(img[src*="/pkg-"]) { background: radial-gradient(58% 48% at 50% 40%, rgba(255,255,255,.18) 0%, rgba(255,255,255,.04) 55%, rgba(255,255,255,0) 75%), radial-gradient(48% 10% at 50% 84%, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 100%), linear-gradient(180deg, #16171b 0%, #0a0a0c 100%); border: 1px solid rgba(255,255,255,.06); }
.kv-pp-hero__img:has(img[src*="/pkg-"])::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 34px 34px; -webkit-mask-image: radial-gradient(70% 62% at 50% 45%, #000 0%, transparent 100%); mask-image: radial-gradient(70% 62% at 50% 45%, #000 0%, transparent 100%); pointer-events: none; }
.kv-pp-hero__img:has(img[src*="/pkg-"])::after { content: ""; position: absolute; left: 12%; right: 12%; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--red), transparent); opacity: .9; pointer-events: none; }
.kv-pp-hero__img:has(img[src*="/pkg-"]) img { position: relative; z-index: 1; object-fit: contain; }
.kv-pp-hero__img:has(img[src*="/pkg-"]) .kv-pp-hero__badge { z-index: 2; }

/* Real device photos in cards (dev-*.webp, 6 Oct) */
.kv-devphoto { display: block; width: 68%; height: 68%; object-fit: contain; filter: drop-shadow(0 12px 14px rgba(28,21,23,.16)); }
.kv-ko-card__img .kv-devphoto { width: 60%; height: 72%; }
.kv-addon__img .kv-devphoto { width: 60%; height: 78%; }
.kv-addons--rows .kv-addon__img .kv-devphoto, .kv-sd-card__img .kv-devphoto { width: 66%; height: 66%; }
.kv-sd-card--featured .kv-sd-card__img .kv-devphoto { width: 52%; height: 72%; }

/* Package hero price card: Ost/Rent toggle stays put (top right) in both modes; label always sits under the price (6 Oct) */
.kv-pp-price { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 1rem; row-gap: .75rem; }
.kv-pp-price__num { flex-direction: column; align-items: flex-start; gap: .35rem; }
.kv-pp-price__note { grid-column: 1 / -1; }
@media (max-width: 420px) { .kv-pp-price { grid-template-columns: 1fr; } }

/* Device photo boxes v2 (6 Oct, Mia picked "no box"): plain white with a hairline border, device stands on a soft floor shadow */
.kv-sd-card__img:has(.kv-devphoto), .kv-dev__img:has(.kv-devphoto), .kv-addon__img:has(.kv-devphoto), .kv-ko-card__img:has(.kv-devphoto) { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--wp--preset--color--line); }
.kv-sd-card__img:has(.kv-devphoto)::after, .kv-dev__img:has(.kv-devphoto)::after, .kv-addon__img:has(.kv-devphoto)::after, .kv-ko-card__img:has(.kv-devphoto)::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 10%; height: 9%; background: radial-gradient(50% 50% at 50% 50%, rgba(28,21,23,.30) 0%, rgba(28,21,23,.12) 45%, rgba(28,21,23,0) 100%); pointer-events: none; z-index: 0; }
.kv-devphoto { position: relative; z-index: 1; object-position: 50% 100%; margin-bottom: 4%; filter: drop-shadow(0 10px 10px rgba(28,21,23,.18)) drop-shadow(0 2px 2px rgba(28,21,23,.14)); }

/* "Soovitame": whole card is highlighted, label sits on the card's top edge (6 Oct) */
.kv-sd-card--hot { position: relative; border-color: var(--wp--preset--color--red); box-shadow: 0 0 0 1px var(--wp--preset--color--red), 0 24px 44px -30px rgba(218,33,39,.55); }
.kv-sd-card--hot > .kv-sd-card__tag { position: absolute; top: -.8rem; left: 1.25rem; z-index: 3; font-size: .72rem; padding: .35rem .75rem; box-shadow: 0 6px 14px -6px rgba(218,33,39,.7); }

/* Häirepakett: necklace or wristband choice (6 Oct) */
.kv-wear { margin-top: 1.75rem; padding: 1.25rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l, 18px); background: var(--wp--preset--color--surface); }
.kv-wear__q { margin: 0 0 1rem !important; }
.kv-wear__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.kv-wear__opt { display: flex; align-items: center; gap: 1rem; padding: .75rem; text-align: left; font: inherit; color: inherit; background: #fff; border: 1.5px solid var(--wp--preset--color--line); border-radius: 14px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.kv-wear__opt:hover { border-color: var(--wp--preset--color--red-line); }
.kv-wear__opt.is-on { border-color: var(--wp--preset--color--red); box-shadow: 0 0 0 1px var(--wp--preset--color--red); }
.kv-wear__img { position: relative; flex: 0 0 96px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--wp--preset--color--line); }
.kv-wear__img::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 10%; height: 9%; background: radial-gradient(50% 50% at 50% 50%, rgba(28,21,23,.3) 0%, rgba(28,21,23,0) 100%); }
.kv-wear__img .kv-devphoto { width: 70%; height: 70%; }
.kv-wear__txt b { display: block; font-size: 1.05rem; }
.kv-wear__txt small { color: var(--wp--preset--color--muted); font-size: .85rem; }
@media (max-width: 640px) { .kv-wear__opts { grid-template-columns: 1fr; } }

/* No pink anywhere behind devices: icon boxes (no photo yet) get the same white box, choice block sits flush with the cards (6 Oct) */
.kv-dev__img, .kv-sd-card__img, .kv-addon__img, .kv-ko-card__img { background: #fff; border: 1px solid var(--wp--preset--color--line); }
.kv-wear { padding: 0; border: 0; background: none; }

/* Device boxes back to the near-black stage (6 Oct, Mia: white boxes disappear into the page) – applies to photo and icon boxes alike */
.kv-sd-card__img, .kv-dev__img, .kv-addon__img, .kv-ko-card__img, .kv-wear__img { position: relative; overflow: hidden; background: radial-gradient(70% 60% at 50% 42%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.03) 60%, rgba(255,255,255,0) 80%), linear-gradient(180deg, #17181c 0%, #0b0b0d 100%) !important; border: 1px solid rgba(255,255,255,.06) !important; }
.kv-sd-card__img::after, .kv-dev__img::after, .kv-addon__img::after, .kv-ko-card__img::after, .kv-wear__img::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 0; top: auto; height: 2px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--red), transparent) !important; opacity: .85; pointer-events: none; z-index: 0; }
.kv-devphoto { object-position: 50% 50%; margin-bottom: 0; filter: drop-shadow(0 14px 18px rgba(0,0,0,.55)); }
.kv-sd-card__img svg, .kv-dev__img svg, .kv-addon__img svg, .kv-ko-card__img svg { stroke: #fff !important; }

/* Device photo sizing fix (6 Oct): % heights inside grid boxes had no definite height, so tall devices (keypad, door) overflowed and got cropped.
   Photo is now pinned inside the box: whole device visible and centered. Outdoor detectors are tall, so they show larger and run off the bottom on purpose. */
.kv-sd-card__img .kv-devphoto, .kv-dev__img .kv-devphoto, .kv-addon__img .kv-devphoto, .kv-ko-card__img .kv-devphoto, .kv-wear__img .kv-devphoto { position: absolute !important; top: 14% !important; left: 14% !important; width: 72% !important; height: 72% !important; max-width: none !important; margin: 0 !important; object-fit: contain !important; object-position: 50% 50% !important; z-index: 1; }
.kv-addon__img .kv-devphoto { top: 12% !important; height: 76% !important; }
.kv-devphoto[src*="dev-outpir"], .kv-devphoto[src*="dev-outcam"] { top: 12% !important; left: 22% !important; width: 56% !important; height: 115% !important; object-position: 50% 0 !important; }

/* Quantity next to the device name ("2 tk"), not on the photo (6 Oct) */
.kv-dev h3 .kv-dev__qty { position: static; display: inline-block; vertical-align: middle; margin-left: .35rem; background: var(--wp--preset--color--red); color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .02em; padding: .2rem .5rem; border-radius: 999px; line-height: 1.2; }

/* ===== Phone pass v1 (6 Oct): everything below only changes layouts at phone widths unless noted ===== */
/* Never let a grid child force the page wider than the screen (fixes /privaatsus/ running off the right edge) */
.kv-legal__body, .kv-legal__toc, .kv-legal__grid > *, .wp-block-columns > .wp-block-column { min-width: 0; }
.kv-legal__body a, .kv-post a { overflow-wrap: anywhere; }
/* Footer link lists: no bullets, roomier tap targets (all widths) */
.kv-footer ul.is-style-plain, ul.is-style-plain { list-style: none; padding-left: 0; }
.kv-footer ul.is-style-plain li { padding: .2rem 0; }
/* Special package cards: real product photos on the same dark stage as package heroes (all widths) */
.kv-special__card .kv-special__media { background: radial-gradient(60% 55% at 50% 45%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.03) 60%, rgba(255,255,255,0) 80%), linear-gradient(180deg, #17181c 0%, #0b0b0d 100%) !important; position: relative; }
.kv-special__card .kv-special__media::after { content: ""; position: absolute; left: 15%; right: 15%; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--red), transparent); }
.kv-special__photo { width: 100%; height: 100%; max-height: 180px; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(0,0,0,.55)); }

@media (max-width: 781px) {
  /* Menu button: 44 px tap target */
  .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
  /* Open menu: full-screen dark panel, big tappable items, sub-items listed inline */
  .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--ink) !important; color: #fff !important; padding: 1.25rem 1.5rem 2rem !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; top: 1rem; right: 1rem; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; align-items: stretch !important; gap: 0 !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.1); }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1.375rem; font-weight: 800; letter-spacing: -.01em; padding: .85rem 0 !important; display: block; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 0 .75rem .25rem !important; min-width: 0 !important; opacity: 1 !important; visibility: visible !important; width: 100% !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.0625rem; font-weight: 600; color: rgba(255,255,255,.75) !important; padding: .45rem 0 !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
}

@media (max-width: 640px) {
  /* Hero buttons: equal full-width buttons */
  .kv-pp-hero__btns.wp-block-buttons, .kv-pp-hero__cols .wp-block-buttons, .kv-hero .wp-block-buttons, .kv-cta .wp-block-buttons { flex-direction: column; align-items: stretch !important; gap: .6rem; }
  .kv-pp-hero__btns .wp-block-button, .kv-pp-hero__cols .wp-block-button, .kv-hero .wp-block-button, .kv-cta .wp-block-button { width: 100%; }
  .kv-pp-hero__btns .wp-block-button__link, .kv-pp-hero__cols .wp-block-button__link, .kv-hero .wp-block-button__link, .kv-cta .wp-block-button__link { width: 100%; justify-content: center; text-align: center; }
  /* Dark page heroes: the 3 fact boxes sit in one row instead of a tall stack */
  .kv-lg-hero__chips { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .5rem; }
  .kv-lg-hero__chips span { min-width: 0; padding: .6rem .65rem; }
  .kv-lg-hero__chips small { font-size: .62rem; letter-spacing: .06em; }
  .kv-lg-hero__chips b { font-size: .9rem; line-height: 1.25; }
  /* /paketid/ hero picker: no broken words ("Premiu m") */
  .kv-pkg-visual { gap: .5rem; }
  .kv-pkg-visual__card { padding: .75rem .6rem; }
  .kv-pkg-visual__card b { font-size: .95rem; word-break: normal; overflow-wrap: normal; hyphens: none; }
  /* /paketid/ compare table: all three packages visible side by side, no sideways scrolling */
  .kv-cmp { overflow-x: visible !important; }
  .kv-cmp table { min-width: 0 !important; width: 100% !important; table-layout: fixed; font-size: .82rem; }
  .kv-cmp th, .kv-cmp td { padding: .6rem .3rem !important; word-break: normal; overflow-wrap: break-word; }
  .kv-cmp th:first-child, .kv-cmp td:first-child { width: 32%; padding-left: .5rem !important; }
  .kv-cmp__name { font-size: 1rem; }
  .kv-cmp__for { font-size: .7rem; line-height: 1.3; }
  .kv-cmp__flag { font-size: .58rem; padding: .2rem .35rem; }
  .kv-cmp__btns .wp-block-button__link { white-space: normal; padding: .55rem .3rem; font-size: .78rem; line-height: 1.2; }
  .kv-cmp__btns .kv-link { font-size: .75rem; }
  /* Package price explainer: label row on top, Ost and Rent side by side in two wide columns */
  .kv-pt--v2, .kv-pt--v2 thead, .kv-pt--v2 tbody, .kv-pt--v2 tr { display: block; width: 100%; }
  .kv-pt--v2 tr { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--wp--preset--color--line-soft); }
  .kv-pt--v2 tr > th:first-child { grid-column: 1 / -1; width: auto !important; border: 0 !important; padding: .8rem .9rem 0 !important; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--muted); }
  .kv-pt--v2 thead tr > th:first-child { display: none; }
  .kv-pt--v2 th, .kv-pt--v2 td { display: block; border-bottom: 0 !important; padding: .45rem .9rem .85rem !important; min-width: 0; }
  .kv-pt--v2 thead th { padding-top: 1.1rem !important; }
  .kv-pt--v2 thead th b { font-size: 1.35rem; white-space: nowrap; }
  .kv-pt--v2 .kv-pt__btns { border-bottom: 0; }
  .kv-pt--v2 .kv-vs__btn { padding: .75rem .5rem; font-size: .9rem; }
  /* Add-on rows: price and "+ Lisa" share one line under the text */
  .kv-addons--rows .kv-addon { grid-template-columns: 56px 1fr auto !important; row-gap: .5rem; }
  .kv-addons--rows .kv-addon__img { grid-row: 1 / 3; align-self: start; }
  .kv-addons--rows .kv-addon__body { grid-column: 2 / -1; }
  .kv-addons--rows .kv-addon__price { grid-column: 2 !important; grid-row: 2; text-align: left !important; font-size: 1.1rem; }
  .kv-addons--rows .kv-addon__add { grid-column: 3 !important; grid-row: 2; justify-self: end !important; align-self: center; }
  /* Special package cards: normal full-width button */
  .kv-special__card { grid-template-rows: 190px auto; }
  .kv-special__actions { display: grid; gap: .75rem; }
  .kv-special__actions .wp-block-button__link { width: 100%; text-align: center; justify-content: center; padding: .9rem 1rem; }
  /* Offer form: one field per row */
  .wpcf7 .kv-form-grid { grid-template-columns: minmax(0,1fr) !important; }
  .wpcf7 .kv-form-grid > * { grid-column: 1 / -1; }
  /* Readability: tiny labels at least 12 px, small links get a real tap height */
  .kv-addon__tag, .kv-dev__qty, .kv-sd-card__tag, .kv-vs__tag, .kv-vs__pill, .kv-cmp__flag { font-size: .75rem; }
  .kv-link, .kv-how__go, .kv-app__next-link, .kv-ari__cta-link, .wp-block-post-excerpt__more-link { display: inline-block; padding: .55rem 0; }
  .kv-footer ul.is-style-plain li a { display: inline-block; padding: .3rem 0; }
}

/* Product composite inside a dark page hero card (Seadmed): own dark stage behind the transparent photo (6 Oct) */
.kv-lg-hero__visual img[src*="/pkg-"] { object-fit: contain !important; background: radial-gradient(60% 55% at 50% 45%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.03) 60%, rgba(255,255,255,0) 80%), linear-gradient(180deg, #17181c 0%, #0b0b0d 100%); padding: 4%; box-sizing: border-box; }

/* Phone pass v1.1 – compare table header and price-table labels */
@media (max-width: 640px) {
  .kv-cmp__flag { display: none !important; }
  .kv-cmp thead th .kv-cmp__name { font-size: .9rem; white-space: nowrap; letter-spacing: -.02em; }
  .kv-cmp th:first-child, .kv-cmp td:first-child { width: 36%; font-size: .78rem; overflow-wrap: normal; word-break: normal; hyphens: manual; }
  .kv-pt--v2 tr > th:first-child small { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .78rem; display: inline; }
  .kv-pt--v2 tr > th:first-child small::before { content: " · "; }
}

/* Phone pass v1.2 (6 Oct, Mia: Ost/Rent toggle sat on the dark/light edge) */
@media (max-width: 781px) {
  /* Home packages: dark band now ends under the heading + toggle whatever the text height, instead of a fixed 300 px */
  .kv-packages { background: var(--wp--preset--color--ground) !important; }
  .kv-packages { overflow: hidden; isolation: isolate; }
  .kv-packages .wp-block-group:has(> .kv-toggle) { position: relative; padding-bottom: 1.75rem; }
  .kv-packages .wp-block-group:has(> .kv-toggle)::before { content: ""; position: absolute; z-index: -1; left: -100vmax; right: -100vmax; top: -100vmax; bottom: 0; background: var(--wp--preset--color--ink); }
  .kv-packages .wp-block-group:has(> .kv-toggle) > .kv-toggle { margin-top: .5rem; }
  /* Home hero: 3D house stays inside the screen */
  .kv-spline { width: 100% !important; margin: 0 !important; }
  .kv-hero3d .wp-block-buttons { flex-direction: column; align-items: stretch !important; gap: .6rem; }
  .kv-hero3d .wp-block-button, .kv-hero3d .wp-block-button__link { width: 100%; text-align: center; justify-content: center; }
}
@media (max-width: 400px) {
  /* Header: "Küsi pakkumist" stays on one line on small phones */
  header .wp-block-button__link { white-space: nowrap; font-size: .85rem; padding: .6rem .8rem; }
}
/* ===== Compact phone layout (6 Oct, Mia: pages too long on the phone, everything too big) ===== */
@media (max-width: 640px) {
  /* Smaller type and tighter sections */
  body { font-size: 15px; }
  main h1, main .wp-block-heading:is(h1) { font-size: clamp(1.7rem, 7.6vw, 2rem) !important; line-height: 1.1 !important; }
  main h2, main .wp-block-heading:is(h2) { font-size: clamp(1.35rem, 6vw, 1.6rem) !important; line-height: 1.15 !important; margin-bottom: .5rem !important; }
  main h3 { font-size: 1.05rem !important; line-height: 1.25 !important; }
  main p, main li { font-size: .9375rem; line-height: 1.5; }
  .is-style-lead, main p.is-style-lead { font-size: .95rem !important; line-height: 1.5 !important; }
  main .kv-section, main .alignfull.kv-section, main section.alignfull { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
  main .alignfull > * + * { margin-block-start: .9rem; }
  .kv-cta { padding-top: 2rem !important; padding-bottom: 2rem !important; }
  .kv-cta img { max-height: 180px; object-fit: cover; }

  /* Long card stacks become swipeable rows (next card peeks in from the right) */
  .kv-packages .wp-block-columns.kv-packages__cards, .wp-block-columns.kv-steps, .kv-special__grid, .kv-others, .kv-ari__cases, .kv-bento {
    display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: .75rem !important;
    margin-inline: calc(-1 * var(--wp--style--root--padding-left, 20px)) !important; padding: .25rem var(--wp--style--root--padding-left, 20px) 1rem !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .kv-packages__cards::-webkit-scrollbar, .kv-steps::-webkit-scrollbar, .kv-special__grid::-webkit-scrollbar, .kv-others::-webkit-scrollbar, .kv-ari__cases::-webkit-scrollbar, .kv-bento::-webkit-scrollbar { display: none; }
  .kv-packages .wp-block-columns.kv-packages__cards > .wp-block-column, .wp-block-columns.kv-steps > .wp-block-column, .kv-special__grid > *, .kv-others > *, .kv-ari__cases > *, .kv-bento > * {
    flex: 0 0 82% !important; max-width: 82% !important; scroll-snap-align: start; margin: 0 !important; }
  .kv-steps > .wp-block-column, .kv-bento > * { flex-basis: 72% !important; max-width: 72% !important; }

  /* Home: "Miks GSMvalve" tiles repeat the trust bar, so they go on phones */
  .kv-why { display: none !important; }
  /* Package cards a bit shorter */
  .kv-packages__cards .kv-plan { max-height: 70px; }
  .kv-special__card { grid-template-rows: 150px auto !important; }

  /* Device lists on package pages: two per row */
  .kv-devs.kv-devs--row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .kv-devs--row .kv-dev { display: block !important; padding: .75rem !important; }
  .kv-devs--row .kv-dev__img { width: 64px !important; height: 64px !important; margin: 0 0 .5rem !important; grid-row: auto !important; }
  .kv-devs--row .kv-dev h3 { font-size: .95rem !important; }
  .kv-devs--row .kv-dev p { font-size: .8rem !important; line-height: 1.4; margin: .25rem 0 !important; }
  .kv-devs--row .kv-dev a { font-size: .8rem; padding: .3rem 0; }

  /* Seadmed: compact cards (photo left, short text, price + button) */
  .kv-sd-card, .kv-sd-card--featured { grid-template-columns: 88px minmax(0,1fr) !important; gap: .4rem .9rem !important; padding: .9rem !important; }
  .kv-sd-card__img, .kv-sd-card--featured .kv-sd-card__img { grid-row: 1 / 2 !important; aspect-ratio: 1 !important; width: 88px; }
  .kv-sd-card__body h3 { font-size: 1rem !important; }
  .kv-sd-card__does { font-size: .85rem !important; margin: .2rem 0 0 !important; }
  .kv-sd-card__where, .kv-sd-card__tech { display: none !important; }
  .kv-sd-card__buy, .kv-sd-card--featured .kv-sd-card__buy { grid-column: 1 / -1 !important; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between; gap: .75rem; border: 0 !important; padding: .5rem 0 0 !important; }
  .kv-sd-card__add { padding: .6rem .9rem !important; font-size: .85rem !important; }
  .kv-sd-grid { gap: .6rem !important; }

  /* Kuidas see töötab: no placeholder photo per step, "what if" cards two per row */
  .kv-how__step > *:has(> img), .kv-how__step figure, .kv-how__media { display: none !important; }
  .kv-whatif { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .kv-whatif__card { padding: .85rem !important; }
  .kv-whatif__card p { font-size: .8rem !important; }
  .kv-how-tech { display: none !important; }

  /* Äriklient add-ons two per row */
  .kv-ari__addons { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .kv-ari__addon { padding: .85rem !important; }
  .kv-ari__addon p { font-size: .8rem !important; }

  /* Hero image placeholders and big photos: shorter on phones */
  .kv-pp-hero__img, .kv-lg-hero__visual { max-height: 260px; }
  .kv-pp-app img, .kv-pp-app figure { max-height: 220px; object-fit: cover; }
}

@media (max-width: 640px) { .kv-packages__cards, .kv-steps, .kv-special__grid, .kv-others, .kv-ari__cases, .kv-bento { scroll-padding-inline: 20px; padding-inline: 20px !important; margin-inline: -20px !important; } }

/* Compact phone layout part 2 */
@media (max-width: 640px) {
  .kv-ari__addons { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
  .kv-ari__addon { min-width: 0; }
  /* 2-per-row tiles */
  .kv-tiles-4, .kv-ari__diff, .kv-ari__day { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: .6rem !important; }
  .kv-tiles-4 > *, .kv-ari__diff > *, .kv-ari__day > * { padding: .85rem !important; min-width: 0; }
  .kv-tiles-4 h3, .kv-ari__diff h3, .kv-ari__day h3 { font-size: .95rem !important; }
  .kv-tiles-4 p, .kv-ari__diff p, .kv-ari__day p { font-size: .8rem !important; line-height: 1.4; }
  .kv-tiles-4 svg, .kv-ari__diff svg { width: 28px; height: 28px; }
  /* Ost vs rent cards: swipe */
  .kv-vs { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: .75rem !important; margin-inline: -20px !important; padding: .25rem 20px 1rem !important; scroll-padding-inline: 20px; scrollbar-width: none; align-items: stretch; }
  .kv-vs > * { flex: 0 0 84% !important; max-width: 84% !important; scroll-snap-align: start; margin: 0 !important; }
  .kv-vs > .kv-vs__or, .kv-vs > *:not(.kv-vs__card) { display: none !important; }
  /* Configurator demo on /paketid/: text + buttons only */
  .kv-build__grid > *:last-child { display: none !important; }
  .kv-build__grid { grid-template-columns: 1fr !important; }
  /* App section on package pages: no placeholder picture on phones */
  .kv-app__img { display: none !important; }
  .kv-app { grid-template-columns: 1fr !important; }
  /* Process list tighter */
  .kv-ari__process > li { padding-block: .6rem !important; }
}

/* Compact phone layout part 3 */
@media (max-width: 640px) {
  .kv-ko-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
  .kv-ko-card { min-width: 0; }
  .kv-ari__addon > * { min-width: 0; max-width: 100%; }
  .kv-ari__addon-price { white-space: normal !important; }
  /* Floor plan list: two columns, device name + short note */
  .kv-place__list { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: .5rem .9rem !important; }
  .kv-place__list li { font-size: .82rem !important; line-height: 1.35; padding: 0 !important; min-width: 0; }
  .kv-place__list li span { font-size: .75rem; opacity: .75; }
  .kv-place__note { font-size: .82rem !important; padding: .75rem .9rem !important; }
  /* Package hero: shorter lead */
  .kv-pp-hero__lead { font-size: .9rem !important; }
  .kv-pp-price { padding: .9rem 1rem !important; margin-top: 1rem !important; }
}

/* Compact phone layout part 4: carousels match the 16 px page gutter exactly; special cards tidier */
@media (max-width: 640px) {
  .kv-packages__cards, .kv-steps, .kv-special__grid, .kv-others, .kv-ari__cases, .kv-bento, .kv-vs { margin-inline: -16px !important; padding-inline: 16px !important; scroll-padding-inline: 16px !important; width: auto !important; max-width: none !important; }
  .kv-special__media { overflow: hidden; padding: .75rem !important; }
  .kv-special__photo { height: 100% !important; max-height: 100% !important; width: 100% !important; }
  .kv-special__body { padding: 1rem !important; }
  .kv-special__body p, .kv-special__body li { font-size: .875rem !important; }
  .kv-special__body h3 { font-size: 1.15rem !important; }
}

@media (max-width: 640px) {
  .kv-place__list b { overflow-wrap: anywhere; hyphens: auto; }
  main { overflow-x: clip; }
}

@media (max-width: 640px) {
  .kv-special__photo { object-fit: contain !important; }
  .kv-steps .kv-step { padding: 1rem !important; }
  .kv-special__media { height: 150px; box-sizing: border-box; }
  .kv-special__photo { height: 126px !important; }
  .kv-steps p, .kv-tile p, .kv-how p, .kv-whatif p, .kv-vs__card p, .kv-vs__card li, .kv-others p, .kv-ari__case p, .kv-ari__case li, .kv-packages__cards li, .kv-packages__cards p { font-size: .875rem !important; line-height: 1.45 !important; }
  .kv-steps svg { max-height: 44px; width: auto; }
  .kv-steps h3 { margin: .5rem 0 .25rem !important; }
}

/* Carousel dots + drag cursor (6 Oct) */
.kv-dots { display: none; }
@media (max-width: 640px) {
  .kv-dots { display: flex; justify-content: center; gap: .45rem; margin: .25rem 0 .5rem !important; }
  .kv-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: rgba(28,21,23,.2); cursor: pointer; transition: width .2s, background .2s; }
  .kv-dots button.is-on { width: 22px; background: var(--wp--preset--color--red); }
  .kv-packages .kv-dots button, .kv-cta .kv-dots button { background: rgba(28,21,23,.2); }
  .kv-packages__cards, .kv-steps, .kv-special__grid, .kv-others, .kv-ari__cases, .kv-bento, .kv-vs { cursor: grab; }
  .is-drag { cursor: grabbing !important; user-select: none; }
  .is-drag * { pointer-events: none; }
}

@media (max-width: 640px) { .kv-ostrent .kv-vs > .kv-vs__card { flex: 0 0 84% !important; width: 84% !important; max-width: 84% !important; min-width: 0 !important; } }
/* Ost vs rent on phones: stacked again (no swipe), compact (6 Oct) */
@media (max-width: 640px) {
  .kv-ostrent .kv-vs { display: grid !important; grid-template-columns: 1fr !important; overflow: visible !important; margin-inline: 0 !important; padding: 0 !important; gap: .75rem !important; cursor: auto; }
  .kv-ostrent .kv-vs > .kv-vs__card { width: auto !important; max-width: none !important; flex: none !important; padding: 1.1rem !important; }
  .kv-ostrent .kv-vs > .kv-vs__or { display: none !important; }
  .kv-ostrent .kv-vs__card ul { margin: .5rem 0 !important; }
  .kv-ostrent .kv-vs__card .kv-vs__btn { margin-top: .5rem !important; }
}

/* Phones: no hero-image shadow spilling out of the dark header into the light area (6 Oct) */
@media (max-width: 781px) {
  .kv-lg-hero__visual img, .kv-app__heroimg img { box-shadow: none !important; }
  .kv-legal__summary-wrap { background: linear-gradient(to bottom, var(--wp--preset--color--ink) 0 3rem, transparent 3rem) !important; margin-top: 0 !important; padding-top: 0 !important; }
  .kv-legal-hero, .kv-form-hero { padding-bottom: 1.5rem !important; margin-bottom: 0 !important; }
}

@media (max-width: 781px) {
  .kv-legal__summary-wrap { background: none !important; padding: 1.25rem 16px 0 !important; box-sizing: border-box; }
  .kv-legal__summary { gap: .6rem !important; }
  .kv-legal__summary > * { box-shadow: 0 10px 24px -18px rgba(28,21,23,.35) !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { background: none !important; color: #fff !important; outline: none; text-decoration: underline; text-decoration-color: var(--wp--preset--color--red); text-underline-offset: 4px; }
}

/* Kuidas see töötab on phones: tidy steps and "what if" cards (6 Oct) */
@media (max-width: 640px) {
  .kv-how { gap: 1rem !important; }
  .kv-how__step { padding: 1rem !important; margin: 0 !important; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; }
  .kv-how__body { padding: 0 !important; }
  .kv-how__body .is-style-eyebrow { margin: 0 0 .2rem !important; font-size: .7rem !important; }
  .kv-how__body h3 { font-size: 1.05rem !important; margin: 0 0 .4rem !important; }
  .kv-how__body h3 em { display: block; font-style: normal; font-size: .85rem !important; font-weight: 600; color: var(--wp--preset--color--text); margin-top: .15rem; }
  .kv-how__body p { font-size: .85rem !important; line-height: 1.5 !important; margin: 0 !important; color: var(--wp--preset--color--muted); }
  .kv-how__facts, .kv-how__go { display: none !important; }
  .kv-how__jump { gap: .5rem !important; }
  .kv-how__jump a { padding: .6rem .8rem !important; font-size: .9rem !important; min-height: 0 !important; }
  .kv-how__jumpwrap { padding-top: 1rem !important; }
  .kv-whatif__card h3 { font-size: 0 !important; margin: 0 0 .3rem !important; }
  .kv-whatif__card h3 span { display: block; font-size: .95rem !important; line-height: 1.25; }
  .kv-whatif__card p { margin: 0 !important; color: var(--wp--preset--color--muted); }
}

/* ===== Phone content diet (6 Oct): headline + one line, details on tap ===== */
@media (max-width: 640px) {
  .kv-fold { cursor: pointer; position: relative; }
  .kv-fold .kv-fold__more { display: none !important; }
  .kv-fold.is-open .kv-fold__more { display: block !important; margin-top: .4rem !important; }
  .kv-fold::after { content: ""; position: absolute; right: 1rem; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--wp--preset--color--red); border-bottom: 2px solid var(--wp--preset--color--red); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
  .kv-fold.is-open::after { top: 1.4rem; transform: rotate(-135deg); }
  .kv-fold > *:not(.kv-fold__more) { padding-right: 1.5rem; }

  /* Kuidas: four numbered rows */
  .kv-how { gap: .5rem !important; counter-reset: kvh; }
  .kv-how__step { padding: .85rem 1rem .85rem 3.4rem !important; counter-increment: kvh; }
  .kv-how__step::before { content: counter(kvh); position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--wp--preset--color--red); color: #fff; font-weight: 800; font-size: .85rem; display: grid; place-items: center; }
  .kv-how__step.is-open::before { top: 1.45rem; }
  .kv-how__body .is-style-eyebrow { display: none !important; }
  .kv-how__body h3 { margin: 0 !important; font-size: 1rem !important; }
  .kv-how__body h3 em { font-weight: 500 !important; color: var(--wp--preset--color--muted) !important; font-size: .8rem !important; }
  .kv-how__jumpwrap { display: none !important; }

  /* Home steps: vertical numbered list instead of a swipe row */
  .wp-block-columns.kv-steps { display: grid !important; grid-template-columns: 1fr !important; overflow: visible !important; margin-inline: 0 !important; padding: 0 !important; gap: .5rem !important; }
  .wp-block-columns.kv-steps > .wp-block-column { max-width: none !important; flex: none !important; }
  .kv-steps + .kv-dots { display: none !important; }
  .kv-steps .kv-step { padding: .85rem 1rem !important; }
  .kv-steps .kv-step__head { display: flex; align-items: center; gap: .75rem; margin: 0 !important; }
  .kv-steps .kv-step__head svg { display: none; }
  .kv-steps .kv-step h3 { margin: -1.8rem 0 0 2.6rem !important; font-size: 1rem !important; min-height: 1.8rem; display: flex; align-items: center; }
  .kv-steps .kv-step-num { width: 1.8rem !important; height: 1.8rem !important; font-size: .85rem !important; }

  /* What if: one-column question list */
  .kv-whatif { grid-template-columns: 1fr !important; gap: 0 !important; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; }
  .kv-whatif__card { border: 0 !important; border-bottom: 1px solid var(--wp--preset--color--line-soft) !important; border-radius: 0 !important; padding: .9rem 1rem !important; box-shadow: none !important; }
  .kv-whatif__card:last-child { border-bottom: 0 !important; }
  .kv-whatif__card h3 span { font-size: .95rem !important; }

  /* Offer page "3 steps": number + title only */
  .kv-legal__summary > * { padding: .85rem 1rem !important; }

  /* Tiles: icon + title, 2 per row, details on tap */
  .kv-tiles-4 > .kv-tile, .kv-ari__diff-card, .kv-ari__moment { padding: .85rem !important; }
  .kv-tiles-4 > .kv-tile.is-open, .kv-ari__diff-card.is-open, .kv-ari__moment.is-open { grid-column: 1 / -1; }
  .kv-tiles-4 .kv-fold::after, .kv-ari__diff .kv-fold::after, .kv-ari__day .kv-fold::after { top: auto; bottom: .9rem; transform: rotate(45deg); }

  /* Everywhere: card body text max 2 lines */
  .kv-dev p, .kv-addon__body p, .kv-sd-card__does, .kv-special__body > p, .kv-other p, .kv-packages__cards .is-style-muted { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .kv-special__body ul { display: none !important; }
  /* Section intros: max 2 lines */
  main .kv-section > p.is-style-lead, main .kv-section .wp-block-group > p.is-style-lead { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}

/* Long text blocks on phones: 3 lines + Loe edasi (6 Oct) */
.kv-prose__btn { display: none; }
@media (max-width: 640px) {
  [data-kv-prose]:not(.kv-prose--open) .kv-prose__first { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  [data-kv-prose]:not(.kv-prose--open) .kv-prose__more { display: none !important; }
  .kv-prose__btn { display: inline-flex; align-items: center; gap: .35rem; margin: .5rem 0 0 !important; padding: .45rem 0; background: none; border: 0; font: inherit; font-size: .875rem; font-weight: 700; color: var(--wp--preset--color--red); cursor: pointer; }
  .kv-prose__btn::after { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
  .kv-prose--open .kv-prose__btn::after { transform: rotate(-135deg); }
  .has-ink-background-color .kv-prose__btn, .kv-dark .kv-prose__btn { color: #ff6b6f; }
}

@media (max-width: 640px) {
  .kv-prose__btn { display: flex; width: max-content; margin-bottom: .75rem !important; }
  /* Until real photos exist: grey "placeholder" boxes are hidden on phones */
  img[src*="/placeholder-"] { display: none !important; }
  div:has(> img[src*="/placeholder-"]), figure:has(> img[src*="/placeholder-"]), a:has(> img[src*="/placeholder-"]), .wp-block-post-featured-image:has(img[src*="/placeholder-"]) { display: none !important; }
}

/* Ost vs Rent flip card on phones (6 Oct, Mia liked the dynamic swap) */
.kv-flip__tabs { display: none; }
@media (max-width: 640px) {
  .kv-flip__tabs { display: flex; gap: .25rem; width: max-content; margin: 0 auto 1rem !important; padding: .25rem; border-radius: 999px; background: var(--wp--preset--color--ground-deep); }
  .kv-flip__tabs button { border: 0; background: none; font: inherit; font-weight: 700; font-size: .9rem; padding: .55rem 1.3rem; border-radius: 999px; color: var(--wp--preset--color--muted); cursor: pointer; transition: background .25s, color .25s; }
  .kv-flip__tabs button.is-on { background: var(--wp--preset--color--ink); color: #fff; }
  .kv-flip__tabs button.is-on:last-child { background: var(--wp--preset--color--red); }
  .kv-ostrent .kv-vs.kv-flip { display: grid !important; grid-template-columns: 1fr !important; perspective: 1400px; gap: 0 !important; }
  .kv-ostrent .kv-vs.kv-flip > .kv-vs__card { grid-area: 1 / 1; backface-visibility: hidden; -webkit-backface-visibility: hidden; transition: transform .7s cubic-bezier(.2,.8,.2,1); transform-style: preserve-3d; }
  .kv-ostrent .kv-vs.kv-flip > .kv-vs__card:hover { transform: none; }
  .kv-ostrent .kv-vs.kv-flip > .kv-vs__card--rent { transform: rotateY(180deg); }
  .kv-ostrent .kv-vs.kv-flip.is-flipped > .kv-vs__card:not(.kv-vs__card--rent) { transform: rotateY(-180deg); }
  .kv-ostrent .kv-vs.kv-flip.is-flipped > .kv-vs__card--rent { transform: rotateY(0); }
  .kv-ostrent .kv-vs.kv-flip > .kv-vs__card:not(.kv-vs__card--rent) { pointer-events: auto; }
  .kv-ostrent .kv-vs.kv-flip.is-flipped > .kv-vs__card:not(.kv-vs__card--rent), .kv-ostrent .kv-vs.kv-flip:not(.is-flipped) > .kv-vs__card--rent { pointer-events: none; }
  .kv-ostrent .kv-vs.kv-flip > .kv-vs__or { display: none !important; }
}

/* Header logo never squeezed (6 Oct) */
header .kv-logo, header .kv-logo a, header a:has(> img) { flex-shrink: 0 !important; }
header .kv-logo img, header a > img { width: auto !important; max-width: none !important; object-fit: contain; flex-shrink: 0; }

/* Äriklient on phones: use-case list + clean day timeline (6 Oct) */
@media (max-width: 640px) {
  .kv-ari__cases { display: grid !important; grid-template-columns: 1fr !important; overflow: visible !important; margin-inline: 0 !important; padding: 0 !important; gap: .5rem !important; cursor: auto; }
  .kv-ari__cases > * { max-width: none !important; flex: none !important; }
  .kv-ari__cases + .kv-dots { display: none !important; }
  .kv-ari__case { padding: 0 !important; border-radius: 14px !important; }
  .kv-ari__case-body { display: grid !important; grid-template-columns: 44px 1fr; column-gap: .8rem; align-items: center; padding: .9rem 2.5rem .9rem .9rem !important; }
  .kv-ari__case .kv-ari__ico { grid-row: 1 / 3; margin: 0 !important; position: static !important; transform: none !important; width: 44px !important; height: 44px !important; }
  .kv-ari__case h3 { margin: 0 !important; font-size: 1rem !important; }
  .kv-ari__case .kv-ari__base { margin: .1rem 0 0 !important; font-size: .8rem !important; line-height: 1.35 !important; }
  .kv-ari__case .kv-fold__more { grid-column: 1 / -1; font-size: .85rem !important; }
  .kv-ari__case.is-open .kv-fold__more { display: block !important; }
  .kv-ari__case .kv-ari__adds.kv-fold__more { display: none !important; }
  .kv-ari__case.is-open .kv-ari__adds.kv-fold__more { display: grid !important; gap: .25rem; }
  .kv-ari__case.kv-fold::after { top: 1.6rem; transform: rotate(45deg); }
  .kv-ari__case.kv-fold.is-open::after { transform: rotate(-135deg); }

  .kv-ari__day { display: grid !important; grid-template-columns: 1fr !important; gap: 0 !important; position: relative; }
  .kv-ari__moment { display: grid !important; grid-template-columns: 3.6rem 1fr; column-gap: .75rem; padding: .7rem 0 !important; border: 0 !important; border-bottom: 1px solid rgba(255,255,255,.1) !important; background: none !important; cursor: default; grid-column: auto !important; }
  .kv-ari__moment:last-child { border-bottom: 0 !important; }
  .kv-ari__moment::before, .kv-ari__moment::after { display: none !important; content: none !important; }
  .kv-ari__moment .kv-ari__time { position: static !important; grid-row: 1 / 3; font-weight: 800; color: var(--wp--preset--color--red); font-size: .95rem; transform: none !important; }
  .kv-ari__moment h3 { margin: 0 !important; font-size: .95rem !important; padding: 0 !important; }
  .kv-ari__moment .kv-fold__more, .kv-ari__moment p { display: block !important; margin: .15rem 0 0 !important; font-size: .8rem !important; color: rgba(255,255,255,.65); }
  .kv-ari__moment > * { padding-right: 0 !important; }
}

/* ===== Äriklient v3 (6 Oct): real device photos, proper phone layout ===== */
.kv-ari__case-img--dev { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: radial-gradient(60% 55% at 50% 45%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.03) 60%, rgba(255,255,255,0) 80%), linear-gradient(180deg, #17181c 0%, #0b0b0d 100%); }
.kv-ari__case-img--dev::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--wp--preset--color--red), transparent); }
.kv-ari__case-img--dev img.kv-devphoto { position: absolute !important; inset: 12% 0 !important; width: 100% !important; height: 76% !important; aspect-ratio: auto !important; object-fit: contain !important; }
.kv-ari__addon-ico:has(.kv-devphoto) { position: relative; overflow: hidden; border: 0; background: radial-gradient(60% 55% at 50% 45%, rgba(255,255,255,.16), rgba(255,255,255,0) 80%), linear-gradient(180deg, #17181c, #0b0b0d); }
.kv-ari__addon-ico .kv-devphoto { position: absolute !important; inset: 12% !important; width: 76% !important; height: 76% !important; object-fit: contain !important; }

@media (max-width: 640px) {
  /* Use cases: three tidy rows – photo, name, what it is; tap for details */
  .kv-ari__cases { display: grid !important; grid-template-columns: 1fr !important; gap: .6rem !important; }
  .kv-ari__case { display: grid !important; grid-template-columns: 76px minmax(0,1fr) !important; align-items: stretch; border-radius: 14px !important; border-width: 1px !important; }
  .kv-ari__case-img--dev { aspect-ratio: auto; min-height: 76px; height: 100%; }
  .kv-ari__case-body { display: block !important; padding: .8rem 2.4rem .8rem .9rem !important; }
  .kv-ari__case .kv-ari__ico { display: none !important; }
  .kv-ari__case h3 { font-size: 1rem !important; margin: 0 0 .15rem !important; }
  .kv-ari__case .kv-ari__base { font-size: .8rem !important; line-height: 1.35 !important; margin: 0 !important; }
  .kv-ari__case .kv-fold__more { font-size: .85rem !important; margin-top: .5rem !important; }
  .kv-ari__case .kv-ari__adds-label { font-size: .7rem !important; }
  .kv-ari__case.kv-fold::after { top: 1.5rem; right: .9rem; transform: rotate(45deg); }
  .kv-ari__case.kv-fold.is-open::after { transform: rotate(-135deg); }

  /* Add-ons: one clean list, photo + name + price */
  .kv-ari__addons { display: block !important; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; }
  .kv-ari__addon { display: grid !important; grid-template-columns: 52px minmax(0,1fr) auto !important; gap: .8rem !important; align-items: center !important; padding: .7rem .9rem !important; border: 0 !important; border-bottom: 1px solid var(--wp--preset--color--line-soft) !important; border-radius: 0 !important; box-shadow: none !important; }
  .kv-ari__addon:last-child { border-bottom: 0 !important; }
  .kv-ari__addon-ico { width: 52px !important; height: 52px !important; }
  .kv-ari__addon h3 { font-size: .92rem !important; margin: 0 !important; line-height: 1.25; }
  .kv-ari__addon p { display: none !important; }
  .kv-ari__addon-price { grid-column: 3 !important; text-align: right !important; white-space: nowrap !important; }
  .kv-ari__addon-price b { font-size: 1rem !important; }
  .kv-ari__addon-price small { display: block; font-size: .68rem !important; }

  /* Process: numbered rows */
  .kv-ari__process { display: grid !important; grid-template-columns: 1fr !important; gap: 0 !important; margin-top: 1rem !important; }
  .kv-ari__process::before { display: none !important; }
  .kv-ari__process li { display: grid !important; grid-template-columns: 2.2rem minmax(0,1fr); column-gap: .8rem; padding: .7rem 0 !important; border-bottom: 1px solid rgba(255,255,255,.1); }
  .kv-ari__process li:last-child { border-bottom: 0; }
  .kv-ari__process li .kv-step-num { grid-row: 1 / 3; width: 2rem !important; height: 2rem !important; font-size: .85rem !important; box-shadow: none !important; align-self: start; }
  .kv-ari__process h3 { margin: 0 !important; font-size: .95rem !important; }
  .kv-ari__process p { font-size: .8rem !important; line-height: 1.4 !important; margin: .15rem 0 0 !important; color: rgba(255,255,255,.65) !important; }

  /* "Mida ettevõtted küsivad": checklist rows, tap for the detail */
  .kv-ari__diff { display: block !important; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; }
  .kv-ari__diff-card { display: grid !important; grid-template-columns: 26px minmax(0,1fr) !important; gap: .75rem !important; align-items: center !important; padding: .8rem 2.4rem .8rem .9rem !important; background: none !important; border-radius: 0 !important; border-bottom: 1px solid var(--wp--preset--color--line-soft) !important; }
  .kv-ari__diff-card:last-child { border-bottom: 0 !important; }
  .kv-ari__diff-card > * { padding-right: 0 !important; }
  .kv-ari__check { width: 26px !important; height: 26px !important; position: relative !important; }
  .kv-ari__check::after { left: 9px !important; top: 5px !important; width: 6px !important; height: 11px !important; border-width: 0 2.5px 2.5px 0 !important; }
  .kv-ari__diff-card h3 { font-size: .95rem !important; margin: 0 !important; }
  .kv-ari__diff-card p.kv-fold__more { font-size: .82rem !important; color: var(--wp--preset--color--muted); margin-top: .3rem !important; }
  .kv-ari__diff-card.kv-fold::after { top: 50%; bottom: auto; right: .9rem; transform: translateY(-70%) rotate(45deg); }
  .kv-ari__diff-card.kv-fold.is-open::after { top: 1.3rem; transform: rotate(-135deg); }
  .kv-ari__diff-card.is-open { grid-column: auto !important; }
}

@media (max-width: 640px) {
  /* Dark page headers: shorter intro */
  .kv-lg-hero__lead { font-size: .95rem !important; line-height: 1.5 !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 1rem !important; }
  .kv-lg-hero h1 { margin-bottom: .6rem !important; }
  /* Äriklient trust strip: small chips instead of a tall list */
  .kv-ari__bar { display: flex !important; flex-wrap: wrap; gap: .4rem !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
  .kv-ari__bar span { font-size: .75rem !important; padding: .35rem .65rem !important; border-radius: 999px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); }
  .kv-ari__bar span::before { display: none !important; }
}

@media (max-width: 640px) {
  /* Äriklient price table fits the screen */
  .kv-ari__table { overflow: visible !important; }
  .kv-ari__table table { width: 100% !important; min-width: 0 !important; table-layout: fixed; font-size: .8rem; }
  .kv-ari__table th, .kv-ari__table td { padding: .55rem .35rem !important; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
  .kv-ari__table th:first-child, .kv-ari__table td:first-child { width: 24%; padding-left: .6rem !important; }
  .kv-ari__table thead th { font-size: .8rem !important; hyphens: manual; }
  .kv-ari__table thead small, .kv-ari__table thead span { font-size: .55rem !important; letter-spacing: .04em; }
  .kv-ari__table-note { font-size: .78rem !important; line-height: 1.45 !important; color: var(--wp--preset--color--muted); }
  /* Add-on price: short line under the price, never over the name */
  .kv-ari__addon-price small { white-space: normal !important; max-width: 6.2rem; margin-left: auto; line-height: 1.25; font-size: .62rem !important; }
  .kv-ari__addon h3 { overflow-wrap: normal; word-break: normal; }
}

@media (max-width: 640px) { .kv-ari-cta { display: none !important; } }

/* ===== Phone review pass, page by page (6 Oct) ===== */
@media (max-width: 640px) {
  /* Prices stay big and bold */
  p.is-style-price { font-size: 1.9rem !important; font-weight: 800 !important; line-height: 1.05 !important; letter-spacing: -.02em; margin: .4rem 0 .1rem !important; }
  .kv-packages__cards ul.is-style-checks li { font-size: .875rem !important; }
  .kv-pkg-hero p.is-style-lead, .kv-pkg-hero .is-style-lead { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: .95rem !important; }
  .kv-cmp__btns .kv-link { display: none !important; }

  /* Footer: logo + text, then three link columns side by side */
  .kv-footer .wp-block-columns { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.25rem .75rem !important; }
  .kv-footer .wp-block-columns > .wp-block-column:first-child { grid-column: 1 / -1; }
  .kv-footer .wp-block-column { flex-basis: auto !important; min-width: 0; }
  .kv-footer h4 { font-size: .7rem !important; margin-bottom: .4rem !important; }
  .kv-footer ul.is-style-plain li { padding: 0 !important; }
  .kv-footer ul.is-style-plain li a { font-size: .8rem !important; padding: .28rem 0 !important; line-height: 1.3; }

  /* Floor plan: number + device name only */
  .kv-place__list li span { display: none !important; }
  .kv-place__list li { align-items: center !important; }
  .kv-place__note { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

  /* Price explainer fold */
  .kv-pt-fold:not(.is-open) .kv-pt--v2 tbody tr:not(.kv-pt__btns) { display: none !important; }
  .kv-pt-fold__btn { display: flex; align-items: center; gap: .4rem; margin: 0 auto; padding: .8rem 1rem; background: none; border: 0; font: inherit; font-size: .875rem; font-weight: 700; color: var(--wp--preset--color--red); cursor: pointer; }
  .kv-pt-fold__btn::after { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
  .kv-pt-fold.is-open .kv-pt-fold__btn::after { transform: rotate(-135deg); }
  .kv-pt__notes { display: none !important; }

  /* Add-on rows: one line of description */
  .kv-addon__body p { -webkit-line-clamp: 1 !important; }

  /* Häirepakett / Suitsupakett flow: numbered rows */
  .kv-flow__steps { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem !important; }
  .kv-flow__step { display: grid !important; grid-template-columns: 2rem minmax(0,1fr); column-gap: .8rem; align-items: center; padding: .85rem 2.4rem .85rem .9rem !important; border-radius: 14px !important; }
  .kv-flow__step .kv-step-num { width: 2rem !important; height: 2rem !important; font-size: .85rem !important; grid-row: 1 / 3; align-self: start; margin: 0 !important; }
  .kv-flow__step h3 { margin: 0 !important; font-size: 1rem !important; }
  .kv-flow__step .kv-fold__more { grid-column: 2; font-size: .85rem !important; }
  .kv-flow__step.kv-fold::after { border-color: #fff; }
  .kv-flow__step.kv-fold::after { border-right-color: var(--wp--preset--color--red); border-bottom-color: var(--wp--preset--color--red); }

  /* Kaelas või randmel: two small tiles */
  .kv-wear__opts { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; }
  .kv-wear__opt { flex-direction: column; align-items: stretch !important; gap: .5rem !important; padding: .6rem !important; text-align: center !important; }
  .kv-wear__img { flex: none !important; width: 100% !important; aspect-ratio: 4 / 3 !important; }
  .kv-wear__txt small { display: none; }
  .kv-wear__q { font-size: .9rem !important; }

  /* Rakendus: feature tiles two per row, store badges side by side */
  .kv-app__feats { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: .6rem !important; }
  .kv-app__feat { padding: .85rem !important; min-width: 0; }
  .kv-app__feat h3 { font-size: .92rem !important; margin: .4rem 0 0 !important; }
  .kv-app__feat.is-open { grid-column: 1 / -1; }
  .kv-app__feat.kv-fold::after { top: auto; bottom: .9rem; transform: rotate(45deg); }
  .kv-app__feat.kv-fold.is-open::after { top: 1.2rem; bottom: auto; transform: rotate(-135deg); }
  .kv-app__stores { display: flex !important; flex-wrap: nowrap !important; gap: .5rem !important; align-items: center; }
  .kv-app__stores a, .kv-app__badge-link { margin: 0 !important; }
  .kv-app__stores img { height: 42px !important; width: auto !important; }
  .kv-app__next { padding: 0 !important; }

  /* Meist: numbers 2 x 2, "why" cards as titles, company details compact */
  .kv-meist__nums { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: .9rem .75rem !important; }
  .kv-meist__nums b { font-size: 1.35rem !important; }
  .kv-meist__why { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem !important; }
  .kv-meist__why-card { padding: .85rem 2.4rem .85rem 1rem !important; }
  .kv-meist__why-card h3 { margin: 0 !important; font-size: 1rem !important; }
  .kv-meist__req { padding: 1.1rem !important; }

  /* Seadmed: product grid, two per row */
  .kv-sd-grid { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: .6rem !important; }
  .kv-sd-card, .kv-sd-card--featured { display: flex !important; flex-direction: column !important; gap: .4rem !important; padding: .6rem !important; grid-column: auto !important; }
  .kv-sd-card__img, .kv-sd-card--featured .kv-sd-card__img { width: 100% !important; aspect-ratio: 1 !important; }
  .kv-sd-card__body h3 { font-size: .9rem !important; line-height: 1.2 !important; }
  .kv-sd-card__does { display: none !important; }
  .kv-sd-card__buy, .kv-sd-card--featured .kv-sd-card__buy { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: .4rem !important; padding: 0 !important; margin-top: auto; border: 0 !important; }
  .kv-sd-card__price { font-size: 1rem; }
  .kv-sd-card__price small { font-size: .65rem !important; }
  .kv-sd-card__add { width: 100%; text-align: center; justify-content: center; padding: .55rem .5rem !important; font-size: .8rem !important; }
  .kv-sd-card--hot > .kv-sd-card__tag { left: .6rem; font-size: .6rem; padding: .25rem .5rem; }

  /* Koosta pakett: shorter package options, names fit */
  .kv-ko-pack__body small { display: -webkit-box !important; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
  .kv-ko-card h3 { font-size: .85rem !important; line-height: 1.2 !important; overflow-wrap: break-word; hyphens: auto; }

  /* Blog cards: two-line teaser */
  .kv-blog__excerpt p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .875rem !important; }

  /* Contact topic cards: e-mail stays visible */
  .kv-kontakt__cards .kv-kontakt__main { display: block !important; margin-top: .3rem !important; font-size: .9rem; }
  .kv-kontakt__cards .kv-legal__ico { width: 1.6rem !important; height: 1.6rem !important; font-size: .8rem !important; }
}

/* ===== Phone review pass 2 (6 Oct) ===== */
@media (max-width: 640px) {
  /* Icons and number badges inside foldable cards keep their shape */
  .kv-fold > span, .kv-fold > img, .kv-fold > figure, .kv-fold > svg { padding-right: 0 !important; }
  .kv-app__ico { width: 2.5rem !important; height: 2.5rem !important; }

  /* Floor plan note: clip exactly at 3 lines */
  .kv-place__note { padding-block: 0 !important; border-block: .75rem solid transparent !important; }

  /* Häirepakett / Suitsupakett flow rows */
  .kv-flow__step .kv-step-num { padding: 0 !important; display: grid !important; place-items: center; grid-row: 1 !important; border-radius: 50% !important; }
  .kv-flow__step h3 { grid-column: 2; grid-row: 1; align-self: center; }
  .kv-flow__step .kv-fold__more { grid-row: 2; margin-top: .3rem !important; }

  /* Seadmed: price above a full-width button, only the recommended card is outlined */
  .kv-sd-card__buy, .kv-sd-card--featured .kv-sd-card__buy { flex-wrap: nowrap !important; height: auto !important; min-height: 0 !important; }
  .kv-sd-card__add { height: auto !important; white-space: nowrap; }
  .kv-sd-card--featured:not(.kv-sd-card--hot) { border-color: var(--wp--preset--color--line-soft, #e8e2e3) !important; box-shadow: none !important; }

  /* Koosta pakett: no hyphen breaks in device names */
  .kv-ko-card h3 { hyphens: manual !important; -webkit-hyphens: manual !important; font-size: .82rem !important; }

  /* Paketid hero text */
  .kv-pkg-hero p.kv-on-dark.has-body-font-size { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: .95rem !important; }

  /* Kontakt: topic cards as number + title, e-mail below */
  .kv-kontakt__cards > .kv-fold { display: grid !important; grid-template-columns: 1.6rem minmax(0,1fr); column-gap: .6rem; align-items: center; }
  .kv-kontakt__cards > .kv-fold > .kv-legal__ico { grid-column: 1; grid-row: 1; margin: 0 !important; display: grid !important; place-items: center; border-radius: 50% !important; }
  .kv-kontakt__cards > .kv-fold > b { grid-column: 2; grid-row: 1; }
  .kv-kontakt__cards > .kv-fold > p { grid-column: 2; }
  /* Kontakt: "Kolm sammu" as compact numbered rows */
  .kv-kontakt__steps { gap: .5rem !important; }
  .kv-kontakt__steps > div { display: grid !important; grid-template-columns: 2rem minmax(0,1fr); column-gap: .8rem; padding: .85rem 1rem !important; align-items: start; }
  .kv-kontakt__steps > div > span { grid-row: 1 / 3; width: 2rem !important; height: 2rem !important; margin: 0 !important; font-size: .85rem !important; }
  .kv-kontakt__steps > div > b { margin: 0 !important; font-size: 1rem; align-self: center; min-height: 2rem; display: flex !important; align-items: center; }
  .kv-kontakt__steps > div > p { margin: 0 !important; font-size: .85rem !important; }
}

/* ===== Phone review pass 3 (6 Oct) ===== */
@media (max-width: 640px) {
  /* Numbered summary cards (Kontakt, Küsi pakkumist, Tingimused, Privaatsus): number + title on one row */
  .kv-legal__summary > .kv-fold:has(> .kv-legal__ico) { display: grid !important; grid-template-columns: 1.6rem minmax(0,1fr); column-gap: .6rem; align-items: center; padding-top: .9rem !important; padding-bottom: .9rem !important; }
  .kv-legal__summary > .kv-fold > .kv-legal__ico { grid-column: 1; grid-row: 1; margin: 0 !important; width: 1.6rem !important; height: 1.6rem !important; font-size: .8rem !important; display: grid !important; place-items: center; border-radius: 50% !important; }
  .kv-legal__summary > .kv-fold:has(> .kv-legal__ico) > :not(.kv-legal__ico) { grid-column: 2; margin: 0 !important; }
  .kv-legal__summary > .kv-fold:has(> .kv-legal__ico) > :nth-child(2) { grid-row: 1; font-size: 1rem !important; line-height: 1.25 !important; }
  .kv-legal__summary > .kv-fold > .kv-fold__more { margin-top: .35rem !important; }
  .kv-kontakt__cards .kv-kontakt__main, .kv-kontakt__cards .kv-kontakt__main a { font-size: .9rem !important; margin-top: .25rem !important; }

  /* Legal text and blog posts: reading size for phones */
  .kv-legal__body p, .kv-legal__body li { font-size: .95rem !important; line-height: 1.6 !important; }
  .kv-legal__body h2 { font-size: 1.3rem !important; }
  .kv-post-body .wp-block-post-content p, .kv-post-body .wp-block-post-content li { font-size: 1rem !important; line-height: 1.6 !important; }
  .kv-post-body .wp-block-post-content h2 { font-size: 1.35rem !important; }
  .kv-post-body .wp-block-post-content h3 { font-size: 1.1rem !important; }
}

/* ===== Phones: home hero shows the product, no 3D; no fact rows under heroes (6 Oct) ===== */
@media (max-width: 640px) {
  .kv-hero3d .kv-spline { display: none !important; }
  .kv-hero3d .wp-block-column:has(> .kv-spline) { display: block !important; min-height: 0 !important; aspect-ratio: 4 / 3; margin-top: .25rem !important; background: url(../img/pkg-plus.webp) center / contain no-repeat; }
  .kv-hero3d__bar, .kv-pp-bar { display: none !important; }
}


/* ===== Red accent line above section headings that have no eyebrow (6 Oct) ===== */
main h2.wp-block-heading:not(.is-style-eyebrow + h2):not(.kv-blog__card h2):not(.kv-legal__body h2):not(.kv-post-body h2):not(.wp-block-post-title)::before,
main .kv-section > h2:not(.is-style-eyebrow + h2)::before {
  content: ""; display: block; width: 2.5rem; height: 4px; border-radius: 2px;
  background: var(--wp--preset--color--red, #DA2127); margin: 0 0 .9rem;
}
main .has-text-align-center h2::before, main h2.has-text-align-center::before { margin-left: auto; margin-right: auto; }


/* ===== No cut-off text with dots on phones: show full text (7 Oct) ===== */
@media (max-width: 640px) {
  .kv-dev p, .kv-addon__body p, .kv-special__body > p, .kv-other p, .kv-packages__cards .is-style-muted,
  main .kv-section > p.is-style-lead, main .kv-section .wp-block-group > p.is-style-lead,
  .kv-lg-hero__lead, .kv-pkg-hero p.is-style-lead, .kv-pkg-hero .is-style-lead, .kv-pkg-hero p.kv-on-dark.has-body-font-size,
  .kv-place__note, .kv-ko-pack__body small, .kv-blog__excerpt p {
    display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important;
  }
}


/* Kuidas: technician block without a photo (7 Oct) */
.kv-tech--nophoto { grid-template-columns: 1fr !important; max-width: 46rem; }

/* Accessibility (7 Oct 2026): hidden helper text, keyboard focus ring, form fieldset, high-contrast mode */
.kv-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

:is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--wp--preset--color--red); outline-offset: 3px; }
.kv-toggle button:focus-visible, .kv-ko-qty__btn:focus-visible { outline-color: var(--wp--preset--color--red); }
.wpcf7 input[type="submit"]:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 3px; }
.wp-block-group.is-style-cta-bar :focus-visible, .kv-footer :focus-visible { outline-color: #fff; }

.wpcf7 fieldset.kv-fs { border: 0; margin: 0; padding: 0; min-width: 0; }
.wpcf7 fieldset.kv-fs legend { display: block; padding: 0; font-size: .8125rem; font-weight: 600; color: var(--wp--preset--color--text); margin-bottom: .2rem; }
.kv-ko-form .wpcf7 fieldset.kv-fs legend { font-size: .95rem; }
.kv-form__main .wpcf7 fieldset.kv-fs legend { font-size: .9rem; }

.kv-lang-wrap { display: flex; align-items: center; gap: .5rem; }
.kv-hc-btn { width: 36px; height: 36px; flex: none; padding: 0; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--ink); display: inline-grid; place-items: center; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.kv-hc-btn svg { width: 18px; height: 18px; }
.kv-hc-btn:hover { border-color: var(--wp--preset--color--ink); }
.kv-hc-btn[aria-pressed="true"] { background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }

html.kv-hc, html.kv-hc body { --wp--preset--color--muted: #4A4044; --wp--preset--color--line: #9A8E91; }
html.kv-hc ::placeholder { color: #5A5054; opacity: 1; }
html.kv-hc main :is(p, li, td) a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 520px) { .kv-header .alignwide { gap: .75rem; } .kv-header .alignwide > .wp-block-group { gap: .5rem; } .kv-lang-wrap { gap: .375rem; } .kv-hc-btn, .kv-lang { width: 32px; height: 32px; } .kv-hc-btn svg { width: 16px; height: 16px; } .kv-header .wp-block-button__link { padding: 10px 12px; font-size: 14px; } }

/* Form message box (7 Oct 2026): hidden while empty, brand colours instead of the Contact Form 7 blue, yellow and green. */
.wpcf7 form.wpcf7-form .wpcf7-response-output { margin: 1rem 0 0; padding: .75rem 1rem; border: 1.5px solid var(--wp--preset--color--line); background: var(--wp--preset--color--ground); color: var(--wp--preset--color--text); font-size: .9rem; }
.wpcf7 form.wpcf7-form .wpcf7-response-output:empty { display: none; }
.wpcf7 form.wpcf7-form:is(.failed, .aborted, .spam, .invalid, .unaccepted, .payment-required) .wpcf7-response-output { border-color: var(--wp--preset--color--red); background: var(--wp--preset--color--red-tint); color: var(--wp--preset--color--red-dark); }
.wpcf7 form.wpcf7-form.sent .wpcf7-response-output { border-color: var(--wp--preset--color--ink); }

/* Why-us chips (7 Oct 2026): longer Estonia-only chips wrap on small screens. */
.kv-tile__row { flex-wrap: wrap; row-gap: .4rem; }

/* Cookie banner (8 Oct 2026): both buttons look the same, so refusing is as easy as accepting. */
.kv-cc { position: fixed; left: 16px; bottom: 16px; z-index: 1000; max-width: 560px; padding: 1rem 1.125rem; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--text); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); box-shadow: var(--kv-shadow); font-size: .9375rem; line-height: 1.5; }
.kv-cc__text { margin: 0 0 .75rem; }
.kv-cc__text b { display: block; color: var(--wp--preset--color--ink); margin-bottom: .15rem; }
.kv-cc__text a { color: var(--wp--preset--color--red-dark); }
.kv-cc__btns { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.kv-cc__btn { min-height: 44px; padding: .625rem 1rem; border: 1.5px solid var(--wp--preset--color--ink); border-radius: var(--kv-r-s); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink); font: 600 1rem/1 var(--kv-font); cursor: pointer; }
.kv-cc__btn:hover { background: var(--wp--preset--color--ink); color: #fff; }
@media (max-width: 520px) { .kv-cc { left: 8px; right: 8px; bottom: 8px; max-width: none; } }

/* Form notice under the button (8 Oct 2026): replaces the consent checkbox; order forms say the order binds only after our confirmation. */
.wpcf7 .kv-form-note { font-size: .8125rem; line-height: 1.5; color: var(--wp--preset--color--text); margin: .25rem 0 0 !important; }
.wpcf7 .kv-form-note a { color: var(--wp--preset--color--red-dark); }

/* Withdrawal page (8 Oct 2026, VÕS § 56⁴): a red "Taganen lepingust" button opens the form; the form's own button says "Kinnitan taganemise". */
.kv-withdraw { margin: 1.5rem 0; }
.kv-withdraw > summary { list-style: none; display: inline-flex; cursor: pointer; }
.kv-withdraw > summary::-webkit-details-marker { display: none; }
.kv-withdraw[open] > summary { display: none; }
.kv-withdraw__form { padding: 1.25rem; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); }
.kv-withdraw-page .kv-crumb { margin-bottom: 1rem; }

/* Contrast fixes (8 Oct 2026): same look, all small text now reaches 4.5:1 in the normal view. */
body { --wp--preset--color--muted: #6F6366; }
.has-ink-background-color .is-style-eyebrow,
.has-ink-background-color .kv-ari__time,
.kv-other--dark .kv-other__dir,
.kv-other--dark .kv-other__go { color: #F5474C; }
.kv-sd-end__card--dark .is-style-eyebrow { color: #E7E1E2; }
.kv-faq-section--dark p a:not([class]) { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.kv-kkk__num, th.is-hot span { color: var(--wp--preset--color--red-dark); }
.kv-ko-sum small, .kv-ko-sum .kv-ko-sum__rows dt small { color: rgba(255, 255, 255, .58); }
.kv-pp-place.has-ink-background-color .is-style-eyebrow, .kv-pp-flow.has-ink-background-color .is-style-eyebrow, .kv-verdict .is-style-eyebrow, .kv-post__cta .is-style-eyebrow { color: #F5474C; }
.kv-ari__table th.is-hot span { color: var(--wp--preset--color--red-dark); }

/* Order forms: optional early-installation consent (8 Oct 2026) */
.wpcf7 .kv-early .wpcf7-list-item { margin: 0; }
.wpcf7 .kv-early label { display: flex; gap: .6rem; align-items: flex-start; font-size: .875rem; line-height: 1.45; color: var(--wp--preset--color--text); cursor: pointer; }
.wpcf7 .kv-early input[type="checkbox"] { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--wp--preset--color--red); }

/* Image #22, #23 (9 Oct 2026): wrist + neck pair in the Häirepakett flow, phone photo in the device cards */
.kv-flow__pair { position: relative; width: min(100%, 210px); margin: 0 auto; }
.kv-flow__pair img { width: 100% !important; }
.kv-flow__node .kv-flow__pair img.kv-flow__inset { position: absolute; right: -16px; bottom: -16px; width: 50% !important; border-radius: 50%; border: 3px solid #1C1517; object-position: 42% 55%; box-shadow: 0 16px 30px -12px rgba(0,0,0,.8); }
@media (max-width: 781px) { .kv-flow__node .kv-flow__pair img.kv-flow__inset { right: -8px; bottom: -8px; } }

/* Language switcher (9 Oct 2026) */
.kv-langs { position: relative; }
.kv-langs > summary { list-style: none; cursor: pointer; }
.kv-langs > summary::-webkit-details-marker { display: none; }
.kv-langs > summary:focus-visible { outline: 2px solid var(--wp--preset--color--red); outline-offset: 3px; }
.kv-langs[open] > summary { box-shadow: 0 0 0 3px rgba(218,33,39,.25); }
.kv-langs__menu { position: absolute; right: 0; top: calc(100% + .625rem); z-index: 60; list-style: none; margin: 0; padding: .375rem; min-width: 176px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 14px; box-shadow: 0 24px 50px -24px rgba(28,21,23,.45); }
.kv-langs__menu li { margin: 0; }
.kv-langs__menu a { display: flex; align-items: center; gap: .625rem; padding: .5rem .625rem; border-radius: 10px; color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 600; font-size: .9375rem; line-height: 1.2; }
.kv-langs__menu a:hover, .kv-langs__menu a:focus-visible { background: var(--wp--preset--color--ground); }
.kv-langs__menu a[aria-current] { color: var(--wp--preset--color--red); }
.kv-langs__menu .kv-lang { width: 22px; height: 22px; flex: none; border-width: 1px; }
.kv-lang[data-lang="lv"] { background: linear-gradient(to bottom, #9E3039 0 40%, #fff 40% 60%, #9E3039 60% 100%); }

/* English flag: Union Jack (9 Oct 2026) */
.kv-lang[data-lang="en"] { background: #012169 url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'><clipPath id='t'><path d='M30,15h30v15zv15h-30zh-30v-15zv-15h30z'/></clipPath><path d='M0,0v30h60v-30z' fill='%23012169'/><path d='M0,0 60,30M60,0 0,30' stroke='%23fff' stroke-width='6'/><path d='M0,0 60,30M60,0 0,30' clip-path='url(%23t)' stroke='%23C8102E' stroke-width='4'/><path d='M30,0v30M0,15h60' stroke='%23fff' stroke-width='10'/><path d='M30,0v30M0,15h60' stroke='%23C8102E' stroke-width='6'/></svg>") center / cover no-repeat; }

/* WPML default footer language list: the header switcher replaces it (9 Oct 2026) */
.wpml-ls-statics-footer { display: none !important; }

/* Sister products line in the footer (9 Oct 2026) */
.kv-footer .kv-sister a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.kv-footer .kv-sister a:hover { color: #fff; }

/* Blog post meta: author and updated date (9 Oct 2026) */
.kv-post__meta .kv-blog__author, .kv-post__meta .kv-blog__updated { margin: 0; font-size: .875rem; color: var(--wp--preset--color--muted); }
.kv-post__meta .kv-blog__updated p, .kv-post__meta .kv-blog__updated .wp-block-post-date { margin: 0; font-size: inherit; color: inherit; }

/* Meist without photos (9 Oct 2026) */
.kv-meist__story:not(:has(.kv-meist__story-art)) { display: block; max-width: 760px; }

/* ===== Thank-you pages, compact (13 Oct 2026) ===== */
.kv-aitah { max-width: var(--wp--style--global--wide-size); margin: 0 auto var(--wp--preset--spacing--50) !important; padding-top: var(--wp--preset--spacing--40); }
.kv-aitah__h { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.6rem); line-height: 1.2; margin: 0 0 1.1rem !important; color: var(--wp--preset--color--ink); }
.kv-aitah__h--s { font-size: 1.15rem; margin-bottom: .75rem !important; }
.kv-aitah__steps { list-style: none; margin: 0 0 var(--wp--preset--spacing--50) !important; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; counter-reset: none; }
.kv-aitah__steps > li { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.25rem 1.4rem; display: grid; grid-template-columns: 2rem 1fr; column-gap: .75rem; row-gap: .15rem; align-items: center; }
.kv-aitah__n { grid-row: 1 / span 2; width: 2rem; height: 2rem; border-radius: 50%; background: #DA2127; color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .9rem; align-self: start; }
.kv-aitah__steps h3 { margin: 0 !important; font-size: 1.05rem; line-height: 1.3; color: var(--wp--preset--color--ink); }
.kv-aitah__steps p { margin: 0 !important; font-size: .95rem; line-height: 1.45; color: var(--wp--preset--color--text); }
.kv-aitah__row { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1rem; align-items: start; }
.kv-aitah__prep, .kv-aitah__faq { background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.25rem 1.4rem; }
.kv-aitah__prep ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .55rem; }
.kv-aitah__prep li { position: relative; padding-left: 1.4rem; font-size: .98rem; line-height: 1.45; color: var(--wp--preset--color--text); }
.kv-aitah__prep li::before { content: ""; position: absolute; left: 0; top: .45em; width: .55rem; height: .55rem; border-radius: 50%; background: #DA2127; }
.kv-aitah__faq details { border-top: 1px solid var(--wp--preset--color--line); padding: .65rem 0; }
.kv-aitah__faq details:first-of-type { border-top: 0; padding-top: 0; }
.kv-aitah__faq summary { cursor: pointer; font-weight: 600; font-size: .98rem; color: var(--wp--preset--color--ink); }
.kv-aitah__faq summary:focus-visible { outline: 2px solid #DA2127; outline-offset: 3px; border-radius: 4px; }
.kv-aitah__faq details p { margin: .4rem 0 0 !important; font-size: .95rem; line-height: 1.5; color: var(--wp--preset--color--text); }
@media (max-width: 781px) {
.kv-aitah { padding: var(--wp--preset--spacing--40) 16px 0; box-sizing: border-box; }
.kv-aitah__steps, .kv-aitah__row { grid-template-columns: 1fr; }
}

.kv-aitah__left { display: grid; gap: 1.25rem; align-content: start; }
.kv-aitah__contact { display: grid; gap: .85rem; justify-items: start; padding: 0 .25rem; }
.kv-aitah__contact p { margin: 0 !important; font-size: 1.02rem; color: var(--wp--preset--color--text); }
.kv-aitah__btns { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 !important; }
.kv-aitah-body { padding-bottom: var(--wp--preset--spacing--50) !important; }

/* Call-me form (13 Oct 2026) */
.kv-opt { font-weight: 400; color: var(--wp--preset--color--muted, #6b6466); font-size: .9em; }


/* Tablet nav (13 Oct 2026): use the drawer menu up to 1023px so the header never wraps to two rows */
@media (min-width: 600px) and (max-width: 1023.98px) {
  header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex !important; }
  header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
  .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
  .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--ink) !important; color: #fff !important; padding: 1.25rem 1.5rem 2rem !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; top: 1rem; right: 1rem; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; align-items: stretch !important; gap: 0 !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,.1); }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1.375rem; font-weight: 800; letter-spacing: -.01em; padding: .85rem 0 !important; display: block; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 0 .75rem .25rem !important; min-width: 0 !important; opacity: 1 !important; visibility: visible !important; width: 100% !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.0625rem; font-weight: 600; color: rgba(255,255,255,.75) !important; padding: .45rem 0 !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { background: none !important; color: #fff !important; outline: none; text-decoration: underline; text-decoration-color: var(--wp--preset--color--red); text-underline-offset: 4px; }
}

/* Home: CTA under "Kuidas tellida" (13 Oct 2026) */
.kv-steps-cta { background: var(--wp--preset--color--ground); border: 1px solid var(--wp--preset--color--line); border-radius: var(--kv-r-l); padding: 1.1rem 1.5rem; gap: 1rem 1.5rem; }
.kv-steps-cta p { margin: 0; font-size: 1.125rem; }
.kv-steps-cta .wp-block-buttons { margin: 0; }
@media (max-width: 599px) { .kv-steps-cta { flex-direction: column; align-items: flex-start !important; } }


/* Illustration note + footer phone (16 Oct 2026) */
.kv-illu-note { font-size: .8125rem; color: var(--wp--preset--color--muted); margin: .75rem 0 0; }
.kv-footnote { margin-top: var(--wp--preset--spacing--30); }
.kv-footer .kv-num a { color: inherit; text-decoration: none; }
.kv-footer .kv-num a:hover, .kv-footer .kv-num a:focus-visible { text-decoration: underline; }
.kv-footer .kv-hours { font-weight: 400; opacity: .85; }

.kv-footer .kv-num:empty { display: none; }


/* Home hero: poster first, live Spline fades in when drawn (16 Oct 2026) */
.kv-spline__stage .kv-spline__poster { border-radius: 0; object-fit: cover; -webkit-mask-image: radial-gradient(ellipse 62% 60% at 50% 52%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 62% 60% at 50% 52%, #000 55%, transparent 100%); transition: opacity .6s ease; }
.kv-spline__stage spline-viewer.kv-spline__live { opacity: 0; transition: opacity .6s ease; }
.kv-spline.is-live .kv-spline__live { opacity: 1; }
.kv-spline.is-live .kv-spline__poster { opacity: 0; }

/* Header phone + request cart (16 Oct 2026) */
.kv-hdr-phone{margin:0;white-space:nowrap}
.kv-hdr-phone a{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;text-decoration:none;color:inherit}
.kv-hdr-phone a:hover{color:#DA2127}
.kv-hdr-phone svg{flex:none}
@media (max-width:1279px){.kv-hdr-phone__num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.kv-hdr-phone a{width:40px;height:40px;justify-content:center;border:1px solid currentColor;border-radius:999px}}
.kv-cart{position:relative}
.kv-cart[hidden]{display:none}
.kv-cart__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;cursor:pointer}
.kv-cart__n{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#DA2127;color:#fff;font-size:12px;font-weight:700;line-height:20px;text-align:center}
.kv-cart__pop{position:absolute;right:0;top:calc(100% + 10px);width:300px;max-width:calc(100vw - 32px);background:#fff;color:#111;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:1rem;z-index:1000;display:none;text-align:left}
.kv-cart__pop::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.kv-cart:hover .kv-cart__pop,.kv-cart:focus-within .kv-cart__pop,.kv-cart.is-open .kv-cart__pop{display:block}
.kv-cart__title{display:block;margin-bottom:.5rem;font-size:.95rem}
.kv-cart__list{list-style:none;margin:0 0 .8rem;padding:0;max-height:50vh;overflow:auto}
.kv-cart__list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem 0;border-bottom:1px solid #eee;font-size:.92rem}
.kv-cart__list small{color:#666}
.kv-cart__rm{border:0;background:none;font-size:1.2rem;line-height:1;cursor:pointer;color:#666;padding:.2rem .4rem}
.kv-cart__rm:hover{color:#DA2127}
.kv-cart__act{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.kv-cart__go{display:inline-block;background:#DA2127;color:#fff!important;border-radius:999px;padding:.55rem 1rem;font-weight:700;text-decoration:none;font-size:.9rem}
.kv-cart__clear{border:0;background:none;text-decoration:underline;cursor:pointer;color:#444;font-size:.85rem;padding:0}
.kv-cart.is-bump .kv-cart__btn{animation:kvbump .45s}
@keyframes kvbump{50%{transform:scale(1.18)}}
@media (prefers-reduced-motion:reduce){.kv-cart.is-bump .kv-cart__btn{animation:none}}

/* In-ADS address suggestions */
.kv-ads{position:relative}
.kv-ads__list{position:absolute;left:0;right:0;top:100%;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;color:#111;border:1px solid #ddd;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.15);z-index:50;max-height:260px;overflow:auto}
.kv-ads__list[hidden]{display:none}
.kv-ads__list li{padding:.55rem .8rem;cursor:pointer;font-size:.95rem;line-height:1.35}
.kv-ads__list li:hover,.kv-ads__list li[aria-selected="true"]{background:#f3f3f3}

/* Patrol question form on the How it works page (16 Oct 2026) */
.kv-patrol-form{max-width:820px;margin:2.5rem auto 0;background:#fff;color:#111;border-radius:16px;padding:clamp(1.25rem,3vw,2rem);scroll-margin-top:100px}
.kv-patrol-form__head h3{margin:0 0 .4rem;font-size:1.4rem}
.kv-patrol-form__head p{margin:0 0 1.2rem;color:#444}
.kv-patrol-form .wpcf7-form{border:0;box-shadow:none;padding:0;background:transparent}

/* 20 Oct 2026: keep the send button visible while the form is sending or disabled */
.wpcf7 input[type="submit"]:disabled,.wpcf7-form.submitting input[type="submit"]{background:var(--wp--preset--color--red)!important;color:#fff!important;opacity:.65;cursor:wait}
