/* ==========================================================================
   Kingdor theme — loaded after Bootstrap 5 (RTL build).

   Tokens come from the Figma file (docs/06-design-tokens.md). The design is
   drawn at 1920px only; type and spacing scale fluidly so that 1920px matches
   the Figma and smaller screens stay proportional (docs/08-design-review.md).
   Layout uses logical properties (inline-start/end), never left/right.
   ========================================================================== */

:root {
    /* Colour */
    --kd-red: #f11930;
    --kd-burgundy: #981e2b;
    --kd-burgundy-dark: #64292f;
    --kd-ink-button: #1a0205;
    --kd-black: #000000;
    --kd-ink: #161617;
    --kd-text-muted: #555558;
    --kd-tint: #f8f4f5;
    --kd-white: #ffffff;
    --kd-rose: #dbc3c5;
    --kd-gold: #f6bc09;
    --kd-line: #e1dee3;
    --kd-whatsapp: #1faf38;

    /* Type: Figma px at 1920 = the upper bound of each clamp */
    --kd-font: "Assistant", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    --kd-fs-h1: clamp(2.375rem, 4.69vw, 5.625rem);   /* 90 */
    --kd-fs-h2: clamp(2rem, 3.39vw, 4.0625rem);      /* 65 */
    --kd-fs-h3: clamp(1.625rem, 2.86vw, 3.4375rem);  /* 55 */
    --kd-fs-lead: clamp(1.125rem, 1.25vw, 1.5rem);   /* 24 */
    --kd-fs-body: clamp(1.0625rem, 1.05vw, 1.25rem); /* 20 */
    --kd-fs-small: clamp(1rem, 0.94vw, 1.125rem);    /* 18 */

    /* Layout */
    --kd-content: 1520px;
    --kd-gutter: clamp(20px, 6vw, 200px);
    --kd-section: clamp(56px, 8.33vw, 160px);        /* 160 */
    --kd-gap-title: clamp(32px, 4.17vw, 80px);       /* 80 */
    --kd-gap-cols: clamp(32px, 3.33vw, 64px);        /* 64 */
    --kd-gap-cards: clamp(12px, 1.25vw, 24px);       /* 24 */
    --kd-header-h: clamp(72px, 5.42vw, 104px);       /* 104 */
    --kd-field-h: clamp(52px, 3.28vw, 63px);         /* 63 */
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: var(--kd-header-h); }
body { font-family: var(--kd-font); font-size: var(--kd-fs-body); line-height: 1.31; letter-spacing: -0.04em; color: var(--kd-black); background: var(--kd-white); }
img { max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; }
button { font: inherit; letter-spacing: inherit; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.kd-container { width: min(var(--kd-content), 100% - 2 * var(--kd-gutter)); margin-inline: auto; }
.kd-icon { flex: none; width: 24px; height: 24px; }
.kd-flip { transform: scaleX(-1); }
.kd-down { transform: rotate(-90deg); }
.kd-skip { position: absolute; inset-inline-start: 8px; top: -100px; z-index: 1000; padding: 8px 16px; background: var(--kd-black); color: var(--kd-white); }
.kd-skip:focus { top: 8px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------- Headings ---------- */
.kd-h1 { font-size: var(--kd-fs-h1); font-weight: 300; line-height: 1.02; letter-spacing: -0.04em; text-wrap: balance; }
.kd-h2 { font-size: var(--kd-fs-h2); font-weight: 400; line-height: 1.31; letter-spacing: -0.04em; text-wrap: balance; }
.kd-h3 { font-size: var(--kd-fs-h3); font-weight: 400; line-height: 1.31; letter-spacing: -0.04em; }
.kd-lead { font-size: var(--kd-fs-lead); letter-spacing: 0; }
/* The red bar above a title: 260×12 at 1920 */
.kd-title::before { content: ""; display: block; width: min(clamp(120px, 13.54vw, 260px), 100%); height: clamp(6px, 0.63vw, 12px); background: var(--kd-red); }
.kd-title--center { text-align: center; }
.kd-title--center::before { margin-inline: auto; }

/* ---------- Buttons and links ---------- */
.kd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid transparent; border-radius: 0; text-decoration: none; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.kd-btn .kd-icon { transition: transform .2s ease; }
.kd-btn:hover .kd-icon { transform: translateX(-4px); }
.kd-btn--primary { min-height: var(--kd-field-h); padding: 12px clamp(26px, 2.24vw, 43px) 12px clamp(22px, 1.98vw, 38px); background: var(--kd-red); color: var(--kd-white); font-size: var(--kd-fs-lead); font-weight: 700; letter-spacing: -0.04em; }
.kd-btn--primary:hover { background: var(--kd-burgundy); color: var(--kd-white); }
.kd-btn--dark { min-height: clamp(48px, 3.02vw, 58px); padding: 12px clamp(26px, 2.24vw, 43px) 12px clamp(22px, 1.98vw, 38px); background: var(--kd-black); color: var(--kd-white); font-weight: 500; letter-spacing: 0; }
.kd-btn--dark-sm { min-height: 42px; padding: 8px 18px 8px 16px; gap: 6px; background: var(--kd-black); color: var(--kd-white); font-weight: 500; letter-spacing: 0; white-space: nowrap; }
.kd-btn--dark:hover, .kd-btn--dark-sm:hover { background: var(--kd-red); color: var(--kd-white); }
.kd-btn--dark-sm .kd-icon { width: 20px; height: 20px; }
.kd-link { display: inline-flex; align-items: center; gap: 2px; font-weight: 600; letter-spacing: 0; color: var(--kd-ink); text-decoration: none; }
.kd-link:hover { color: var(--kd-red); }
.kd-link .kd-icon { transition: transform .2s ease; }
.kd-link:hover .kd-icon { transform: translateX(-3px); }

/* Diamond button: a square turned 45°, icon turned back */
.kd-diamond { display: inline-grid; place-items: center; width: 32px; height: 32px; margin: 7px; padding: 0; border: 1px solid var(--kd-black); background: var(--kd-black); color: var(--kd-white); transform: rotate(45deg); cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.kd-diamond .kd-icon { width: 20px; height: 20px; transform: rotate(-45deg); }
.kd-diamond .kd-flip { transform: rotate(-45deg) scaleX(-1); }
.kd-diamond .kd-down { transform: rotate(-135deg); }
.kd-diamond:hover { background: var(--kd-red); border-color: var(--kd-red); color: var(--kd-white); }
.kd-diamond:disabled { opacity: .35; cursor: default; background: var(--kd-black); border-color: var(--kd-black); }
.kd-diamond--outline { background: transparent; border-color: currentColor; color: inherit; }

/* ---------- Header and navigation ---------- */
.kd-header { position: sticky; top: 0; z-index: 100; background: var(--kd-tint); transition: box-shadow .2s ease; }
.kd-header.is-stuck { box-shadow: 0 2px 7px rgba(0, 0, 0, .1); }
.kd-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--kd-header-h); }
.kd-header__logo { display: inline-flex; align-items: center; text-decoration: none; }
.kd-header__logo img { display: block; width: auto; height: calc(var(--kd-header-h) - 24px); }
.kd-header__wordmark { font-size: 1.5rem; font-weight: 700; }
.kd-header__actions { display: flex; align-items: center; gap: clamp(12px, 1.25vw, 24px); }
.kd-header__call { display: inline-flex; align-items: center; gap: 2px; min-height: 42px; padding: 8px 14px 8px 16px; background: var(--kd-ink-button); color: var(--kd-white); font-weight: 500; letter-spacing: 0; text-decoration: none; white-space: nowrap; transition: background-color .2s ease; }
.kd-header__call:hover { background: var(--kd-red); color: var(--kd-white); }
.kd-header__call .kd-icon { width: 18px; height: 18px; }
.kd-header__wa { display: inline-flex; color: var(--kd-whatsapp); --kd-icon-knockout: #fff; }
.kd-header__wa .kd-icon { width: 32px; height: 32px; }
.kd-header__burger { display: none; padding: 6px; border: 0; background: none; color: inherit; }
.kd-header__burger .kd-icon { width: 30px; height: 30px; }
.kd-header__burger-close { display: none; }

.kd-nav__list { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 48px); }
.kd-nav__item { position: relative; display: flex; align-items: center; gap: 2px; }
.kd-nav__link { display: block; padding-block: 8px; text-decoration: none; letter-spacing: 0; white-space: nowrap; border-bottom: 2px solid transparent; }
.kd-nav__link:hover, .kd-nav__item.is-current > .kd-nav__link { color: var(--kd-burgundy); border-bottom-color: var(--kd-red); }
.kd-nav__toggle { order: 2; display: inline-flex; padding: 2px; border: 0; background: none; color: var(--kd-ink); }
.kd-nav__toggle .kd-icon { width: 21px; height: 21px; transform: rotate(-90deg); transition: transform .2s ease; }
.kd-nav__item.is-open > .kd-nav__toggle .kd-icon { transform: rotate(90deg); }
.kd-nav__sub { display: none; position: absolute; top: 100%; inset-inline-start: -20px; z-index: 5; min-width: 280px; padding: 12px 0; background: var(--kd-white); box-shadow: 0 4px 24px rgba(0, 0, 0, .15); border-top: 3px solid var(--kd-red); }
.kd-nav__sub .kd-nav__link { padding: 8px 20px; border: 0; white-space: normal; }
.kd-nav__sub .kd-nav__link:hover { background: var(--kd-tint); }

@media (min-width: 1200px) {
    .kd-nav__item:hover > .kd-nav__sub, .kd-nav__item:focus-within > .kd-nav__sub, .kd-nav__item.is-open > .kd-nav__sub { display: block; }
}

@media (max-width: 1199.98px) {
    .kd-header__burger { display: inline-flex; }
    .kd-nav { display: none; position: absolute; top: 100%; inset-inline: 0; max-height: calc(100dvh - var(--kd-header-h)); overflow-y: auto; padding: 8px var(--kd-gutter) 24px; background: var(--kd-tint); border-top: 1px solid var(--kd-line); box-shadow: 0 12px 24px rgba(0, 0, 0, .12); }
    .kd-nav-open .kd-nav { display: block; }
    .kd-nav-open .kd-header__burger-open { display: none; }
    .kd-nav-open .kd-header__burger-close { display: inline-flex; }
    .kd-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
    .kd-nav__item { flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--kd-line); }
    .kd-nav__link { flex: 1; padding-block: 14px; font-size: 1.125rem; border: 0; }
    .kd-nav__toggle { padding: 12px; }
    .kd-nav__sub { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 8px; background: none; box-shadow: none; border: 0; }
    .kd-nav__item.is-open > .kd-nav__sub { display: block; }
    .kd-nav__sub .kd-nav__item { border: 0; }
    .kd-nav__sub .kd-nav__link { padding: 10px 16px; font-size: 1rem; }
}
@media (max-width: 575.98px) {
    .kd-header__call { padding: 0; width: 42px; justify-content: center; }
    .kd-header__call span { display: none; }
}

/* ---------- Sections ---------- */
.kd-section { padding-block: var(--kd-section); }
.kd-section--tint { background: var(--kd-tint); }
.kd-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(24px, 2.08vw, 40px); }
.kd-section--bleed > .kd-title { margin-bottom: var(--kd-gap-title); padding-inline: var(--kd-gutter); }
.kd-section--after-hero { padding-top: 0; }
.kd-section__foot { display: flex; justify-content: center; margin-top: var(--kd-gap-title); padding-inline: var(--kd-gutter); }
.kd-section > .kd-container > .kd-title { margin-bottom: clamp(24px, 2.08vw, 40px); }

/* ---------- Home hero ---------- */
.kd-hero { position: relative; display: grid; align-items: center; min-height: clamp(520px, 45.3vw, 870px); padding-block: clamp(64px, 8.1vw, 156px); color: var(--kd-white); background: var(--kd-black); text-align: center; isolation: isolate; }
.kd-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.kd-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 0, 0, .5); }
.kd-hero__inner { display: flex; flex-direction: column; align-items: center; gap: clamp(28px, 2.5vw, 48px); }
.kd-hero .kd-h1 { max-width: 14em; }
.kd-hero__points { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px clamp(32px, 4.17vw, 80px); font-size: var(--kd-fs-lead); font-weight: 500; letter-spacing: 0; }
.kd-hero__points li { display: inline-flex; align-items: center; gap: 8px; }
.kd-hero__points .kd-icon { width: 16px; height: 12px; }

/* ---------- Text + photo to the screen edge (home welcome, category hero, "why choose") ----------
   Figma at 1920: photo 828px wide flush with the start edge, 64px gap, text ending at the 200px gutter. */
.kd-split { --kd-split-photo: 43.125%; }
.kd-split__inner { display: grid; grid-template-columns: var(--kd-split-photo) minmax(0, 1fr); align-items: center; }
.kd-split__media { order: -1; align-self: stretch; }
.kd-split__media img { display: block; width: 100%; height: 100%; aspect-ratio: 828 / 600; object-fit: cover; }
.kd-split__body { padding-inline: var(--kd-gap-cols) var(--kd-gutter); }
.kd-split__content { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(16px, 1.25vw, 24px); max-width: 626px; }
.kd-split--hero .kd-split__inner { align-items: stretch; min-height: clamp(420px, 47.7vw, 916px); }
.kd-split--hero .kd-split__body { display: grid; grid-template-rows: auto 1fr; padding-block: clamp(20px, 3.65vw, 70px); }
.kd-split--hero .kd-split__content { align-self: center; gap: clamp(20px, 2.5vw, 48px); max-width: none; padding-bottom: clamp(20px, 3.65vw, 70px); }
.kd-split--hero .kd-split__media img { aspect-ratio: auto; position: absolute; inset: 0; }
.kd-split--hero .kd-split__media { position: relative; min-height: 100%; }
.kd-split--hero .kd-h1 { line-height: 1.2; }
.kd-split--hero .kd-split__content > p { max-width: 21em; }
.kd-split--hero .kd-split__content > .kd-prose { max-width: 626px; }
@media (max-width: 991.98px) {
    .kd-split__inner { grid-template-columns: 1fr; gap: var(--kd-gap-cols); }
    .kd-split__media { order: 0; }
    .kd-split__body { padding-inline: var(--kd-gutter); }
    .kd-split__content { max-width: none; }
    .kd-split--hero .kd-split__inner { gap: 0; min-height: 0; }
    .kd-split--hero .kd-split__body { padding-block: 20px 40px; }
    .kd-split--hero .kd-split__content { padding-bottom: 0; }
    .kd-split--hero .kd-split__media img { position: static; aspect-ratio: 4 / 3; }
}

/* ---------- Prose (editor content) ---------- */
.kd-prose > * + * { margin-top: 1em; }
.kd-prose a { text-decoration: underline; }
.kd-prose h2 { font-size: clamp(1.5rem, 2vw, 2.25rem); font-weight: 500; margin-top: 1.5em; }
.kd-prose h3 { font-size: clamp(1.25rem, 1.5vw, 1.75rem); font-weight: 600; margin-top: 1.5em; }
.kd-prose ul { list-style: disc; padding-inline-start: 1.25em; }
.kd-prose ol { padding-inline-start: 1.25em; }
.kd-prose--narrow { max-width: 860px; }
.kd-prose--lead { max-width: 60ch; }
.kd-embed { position: relative; aspect-ratio: 16 / 9; }
.kd-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Product strip ---------- */
.kd-strip__intro { display: grid; justify-items: center; gap: clamp(8px, 0.63vw, 12px); margin-bottom: var(--kd-gap-title); text-align: center; }
.kd-strip__intro p { max-width: 640px; }
.kd-strip .kd-h3 a { text-decoration: none; }
.kd-strip .kd-h3 a:hover { color: var(--kd-burgundy); }
.kd-strip__images a { display: block; overflow: hidden; }
.kd-strip__images a img { transition: transform .4s ease; }
.kd-strip__images a:hover img { transform: scale(1.04); }
.kd-strip__head { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
.kd-strip__text { max-width: 748px; margin-top: 12px; }
.kd-strip__images { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--kd-gap-cards); margin-top: clamp(28px, 3.33vw, 64px); }
.kd-strip__images img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 767.98px) {
    .kd-strip__images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Photo grid and lightbox ---------- */
.kd-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; }
.kd-gallery__item { display: block; overflow: hidden; background: var(--kd-black); }
.kd-gallery__item img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .4s ease, opacity .4s ease; }
.kd-gallery__item:hover img { transform: scale(1.04); opacity: .88; }
@media (max-width: 991.98px) {
    .kd-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kd-lightbox { max-width: 100vw; max-height: 100dvh; width: 100vw; height: 100dvh; padding: 0; border: 0; background: rgba(0, 0, 0, .92); color: #fff; }
.kd-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.kd-lightbox figure { margin: 0; text-align: center; }
.kd-lightbox img { max-width: 92vw; max-height: 84dvh; }
.kd-lightbox figcaption { margin-top: 8px; font-size: 1rem; }
.kd-lightbox__btn { position: absolute; padding: 8px 16px; border: 0; background: none; color: #fff; font-size: 2.5rem; line-height: 1; }
.kd-lightbox__close { top: 8px; inset-inline-end: 8px; }
.kd-lightbox__prev { inset-inline-start: 8px; top: 50%; }
.kd-lightbox__next { inset-inline-end: 8px; top: 50%; }
.kd-lightbox.is-single .kd-lightbox__prev, .kd-lightbox.is-single .kd-lightbox__next { display: none; }

/* ---------- Why us ---------- */
.kd-why { display: grid; gap: var(--kd-gap-cards); color: var(--kd-white); text-align: center; }
.kd-why--tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kd-why__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: clamp(180px, 15.63vw, 300px); padding: 24px clamp(16px, 1.67vw, 32px); background: var(--kd-burgundy-dark); }
.kd-why__item:nth-child(even) { background: var(--kd-burgundy); }
.kd-why__item .kd-icon { width: clamp(36px, 2.5vw, 48px); height: clamp(36px, 2.5vw, 48px); }
.kd-why__title { font-size: var(--kd-fs-lead); font-weight: 500; line-height: 1; letter-spacing: 0; }
.kd-why__text { font-size: var(--kd-fs-small); line-height: 1.2; letter-spacing: 0; }
.kd-why--strip { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; }
.kd-why--strip .kd-why__item { min-height: clamp(160px, 11.46vw, 220px); }
@media (max-width: 991.98px) {
    .kd-why--tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kd-why--strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    /* two columns: keep the chequered pattern */
    .kd-why--tiles .kd-why__item:nth-child(4n+1), .kd-why--tiles .kd-why__item:nth-child(4n) { background: var(--kd-burgundy-dark); }
    .kd-why--tiles .kd-why__item:nth-child(4n+2), .kd-why--tiles .kd-why__item:nth-child(4n+3) { background: var(--kd-burgundy); }
}
@media (max-width: 575.98px) {
    .kd-why--strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kd-why--strip .kd-why__item:nth-child(4n+1), .kd-why--strip .kd-why__item:nth-child(4n) { background: var(--kd-burgundy-dark); }
    .kd-why--strip .kd-why__item:nth-child(4n+2), .kd-why--strip .kd-why__item:nth-child(4n+3) { background: var(--kd-burgundy); }
}

/* ---------- Sliders (testimonials, blog) ---------- */
.kd-slider__nav { display: flex; gap: 26px; flex: none; }
.kd-slider__track { display: flex; gap: var(--kd-gap-cards); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline-end: calc(-1 * var(--kd-gutter)); padding-inline-end: var(--kd-gutter); }
.kd-slider__track::-webkit-scrollbar { display: none; }
.kd-slider__track > * { flex: none; scroll-snap-align: start; }
.kd-blogslider .kd-slider__track { padding-inline-start: 3px; margin-inline-start: -3px; scroll-padding-inline-start: 3px; } /* room for the cards' red edge */
.kd-slider__dots { display: flex; justify-content: center; gap: 16px; margin-top: clamp(24px, 2.5vw, 48px); }
.kd-slider__dots span { width: 32px; height: 6px; background: var(--kd-rose); transition: width .2s ease, background-color .2s ease; }
.kd-slider__dots span.is-active { width: 56px; background: var(--kd-black); }

.kd-quote { width: min(519px, 86vw); padding: clamp(24px, 2.92vw, 56px); background: var(--kd-white); }
.kd-quote__head { display: flex; align-items: center; gap: clamp(12px, 1.25vw, 24px); margin-bottom: 16px; }
.kd-quote__avatar { display: grid; place-items: center; flex: none; width: clamp(52px, 3.65vw, 70px); aspect-ratio: 1; border-radius: 50%; background: #879bad; color: var(--kd-white); font-size: 1.75rem; font-weight: 600; letter-spacing: 0; }
.kd-quote:nth-child(4n+2) .kd-quote__avatar { background: #947b7e; }
.kd-quote:nth-child(4n+3) .kd-quote__avatar { background: #7c947b; }
.kd-quote:nth-child(4n) .kd-quote__avatar { background: #7b9494; }
.kd-quote__stars { display: flex; gap: 2px; color: var(--kd-gold); }
.kd-quote__stars .kd-icon { width: clamp(20px, 1.46vw, 28px); height: clamp(20px, 1.46vw, 28px); }
.kd-quote__name { display: block; font-weight: 600; letter-spacing: 0; }
.kd-quote__text { margin: 0; font-size: var(--kd-fs-lead); letter-spacing: 0; }
.kd-quote__text::before { content: "“"; }
.kd-quote__text::after { content: "”"; }

/* ---------- Blog cards ---------- */
.kd-post { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: clamp(24px, 2.08vw, 40px); background: var(--kd-white); box-shadow: 3px 0 0 var(--kd-red); position: relative; }
.kd-post__title { font-size: var(--kd-fs-lead); font-weight: 500; line-height: 1; letter-spacing: 0; }
.kd-post__title a { text-decoration: none; }
.kd-post__title a::after { content: ""; position: absolute; inset: 0; }
.kd-post:hover .kd-post__title a { color: var(--kd-burgundy); }
.kd-post__excerpt { font-size: var(--kd-fs-small); line-height: 1.2; letter-spacing: 0; }
.kd-blogslider .kd-post { width: min(362px, 80vw); }
.kd-posts { display: grid; gap: clamp(16px, 1.67vw, 32px); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kd-posts .kd-post__title { font-weight: 600; line-height: 1.3; }
.kd-posts .kd-post__excerpt { font-size: var(--kd-fs-body); line-height: 1.5; }
.kd-posts .kd-link { margin-top: 4px; }
@media (max-width: 991.98px) { .kd-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .kd-posts { grid-template-columns: 1fr; } }
.kd-pagination { margin-top: 40px; }
.kd-pagination .nav-links { display: flex; gap: 8px; justify-content: center; }
.kd-pagination .page-numbers { padding: 6px 14px; background: var(--kd-white); text-decoration: none; }
.kd-pagination .current { background: var(--kd-black); color: var(--kd-white); }
.kd-article__body { max-width: 860px; }
.kd-article .kd-section--after-hero { padding-top: clamp(32px, 4.17vw, 80px); }
.kd-article__figure { margin: 0 0 clamp(24px, 2.08vw, 40px); }
.kd-article__figure img { display: block; width: 100%; }
.kd-article__meta { margin-top: 12px; color: var(--kd-text-muted); font-size: 1rem; letter-spacing: 0; }
.kd-article__back { margin-top: clamp(32px, 3.13vw, 60px); }
.kd-pagehero--article .kd-h2 { max-width: 22em; margin-inline: auto; }
.kd-search { display: flex; gap: 8px; max-width: 480px; }
.kd-search input { flex: 1; min-height: var(--kd-field-h); padding-inline: 24px; border: 1px solid var(--kd-line); }

/* ---------- Inner page header ---------- */
.kd-pagehero { padding-block: clamp(24px, 3.1vw, 60px) clamp(32px, 4.17vw, 80px); background: var(--kd-tint); text-align: center; }
.kd-pagehero .kd-title::before { margin-inline: auto; }
.kd-pagehero__title { font-size: var(--kd-fs-h1); font-weight: 300; line-height: 1.02; letter-spacing: -0.04em; }
.kd-pagehero__subtitle { max-width: 900px; margin: 16px auto 0; }
.kd-breadcrumbs { margin-bottom: 16px; font-size: 1rem; letter-spacing: 0; color: var(--kd-text-muted); text-align: start; }
.kd-breadcrumbs a { text-decoration: none; }
.kd-breadcrumbs a:hover { color: var(--kd-burgundy); text-decoration: underline; }
.kd-product__photos { padding-bottom: var(--kd-gap-title); background: var(--kd-tint); }
.kd-product__photos .kd-section__foot { margin-top: clamp(24px, 2.08vw, 40px); }

/* ---------- FAQ ---------- */
.kd-faq { max-width: 1000px; margin-inline: auto; }
.kd-faq__intro { max-width: 1000px; margin: 0 auto clamp(24px, 2.08vw, 40px); }
.kd-faq__item { border-bottom: 1px solid var(--kd-line); }
.kd-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: clamp(20px, 1.67vw, 32px) 12px; cursor: pointer; list-style: none; }
.kd-faq__item:not([open]) summary { padding-bottom: clamp(20px, 1.67vw, 32px); }
.kd-faq__item summary:hover .kd-faq__q { color: var(--kd-burgundy); }
.kd-faq__item summary::-webkit-details-marker { display: none; }
.kd-faq__q { font-size: var(--kd-fs-lead); font-weight: 600; letter-spacing: 0; }
.kd-faq__icon { transform: rotate(-90deg); transition: transform .2s ease; }
.kd-faq__item[open] .kd-faq__icon { transform: rotate(90deg); }
.kd-faq__a { padding-bottom: clamp(20px, 1.67vw, 32px); padding-inline-end: 40px; }

/* ---------- Contact chips ---------- */
/* As in the design, the row reads left to right: icon, then the number or address. */
.kd-chips { display: flex; flex-wrap: wrap; gap: 12px clamp(20px, 2.08vw, 40px); direction: ltr; }
.kd-chips--stack { flex-direction: column; gap: 16px; }
.kd-chip { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; letter-spacing: 0; text-decoration: none; }
.kd-chip__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .3); --kd-icon-knockout: var(--kd-burgundy); }
.kd-chip__icon .kd-icon { width: 22px; height: 22px; }
.kd-chip__icon .kd-icon--mail { width: 20px; height: 15px; }
.kd-chip:hover { text-decoration: underline; }

/* ---------- Contact bands and forms (Contact Form 7) ---------- */
.kd-cta { padding-block: clamp(40px, 4.17vw, 80px); background: var(--kd-burgundy); color: var(--kd-white); }
.kd-cta__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px clamp(24px, 2.08vw, 40px); flex-wrap: wrap; margin-bottom: clamp(24px, 2.08vw, 40px); }
.kd-cta__title { font-weight: 500; }
.kd-cta .kd-chips { padding-bottom: 8px; justify-content: flex-start; }
.kd-contact { padding-block: var(--kd-section); background: var(--kd-burgundy); color: var(--kd-white); }
.kd-contact__inner { display: flex; flex-direction: column; align-items: center; gap: clamp(24px, 2.08vw, 40px); max-width: 1000px; text-align: center; }
.kd-contact .kd-chips { justify-content: center; }
.kd-contact__head .kd-lead { margin-top: 8px; }
.kd-form { width: 100%; text-align: start; }
.kd-fields { display: grid; gap: clamp(12px, 1.04vw, 20px); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kd-form--short .kd-fields { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
.kd-fields__wide { grid-column: 1 / -1; margin-top: clamp(0px, 0.63vw, 12px) !important; }
.kd-fields__submit { display: flex; justify-content: center; }
.kd-form--long .kd-fields__submit { grid-column: 1 / -1; margin-top: clamp(12px, 3.1vw, 60px); }
.kd-form label { display: block; margin: 0; }
/* Privacy-policy consent checkbox */
.kd-fields__consent { grid-column: 1 / -1; font-size: var(--kd-fs-small); letter-spacing: 0; }
.kd-form--short .kd-fields__consent { grid-row: 2; }
.kd-fields__consent .wpcf7-list-item { margin: 0; }
.kd-fields__consent label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.kd-fields__consent input[type="checkbox"] { appearance: none; flex: none; width: 24px; height: 24px; margin: 0; border: 1px solid var(--kd-white); border-radius: 0; background: var(--kd-white) center / 16px 12px no-repeat; cursor: pointer; }
.kd-fields__consent input[type="checkbox"]:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12' fill='none' stroke='%23981e2b' stroke-width='2.4'%3E%3Cpath d='m1.5 6 4.5 4.5L14.5 1.5'/%3E%3C/svg%3E"); }
.kd-fields__consent input[type="checkbox"]:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.kd-fields__consent a { text-decoration: underline; }
.kd-fields__consent a:hover { text-decoration: none; }
.kd-form--long:not(.kd-form--light) .kd-fields__consent { text-align: center; }
.kd-form--light .kd-fields__consent input[type="checkbox"] { border-color: var(--kd-line); }
.kd-form--long .kd-fields__consent + .kd-fields__submit { margin-top: clamp(4px, 1.5vw, 28px); }
.kd-form .wpcf7-form-control-wrap { display: block; }
.kd-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .kd-form textarea { display: block; width: 100%; min-height: var(--kd-field-h); padding: 0 24px; border: 1px solid transparent; border-radius: 0; background: var(--kd-white); color: var(--kd-black); font: inherit; font-weight: 600; letter-spacing: 0; }
.kd-form textarea { height: clamp(120px, 8.33vw, 160px); padding-block: 20px; resize: vertical; }
.kd-form ::placeholder { color: var(--kd-text-muted); opacity: 1; }
.kd-form input:focus-visible, .kd-form textarea:focus-visible { outline: 2px solid var(--kd-white); outline-offset: 2px; }
.kd-form input[type="submit"] { min-height: var(--kd-field-h); padding: 12px clamp(26px, 2.24vw, 43px) 12px clamp(50px, 3.4vw, 66px); border: 1px solid var(--kd-white); border-radius: 0; background: var(--kd-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.25'%3E%3Cpath d='M18.5 12h-13m5.5-6-6 6 6 6'/%3E%3C/svg%3E") no-repeat left clamp(22px, 1.98vw, 38px) center / 24px; color: var(--kd-white); font: inherit; font-size: var(--kd-fs-lead); font-weight: 700; cursor: pointer; transition: background-color .2s ease; }
.kd-form input[type="submit"]:hover { background-color: var(--kd-black); }
.kd-form .wpcf7-spinner { display: none; }
.kd-form .wpcf7-not-valid-tip { display: block; margin-top: 4px; font-size: 1rem; letter-spacing: 0; color: #ffd9dd; }
.kd-form .wpcf7-not-valid { border-color: var(--kd-red) !important; }
.kd-form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 1px solid rgba(255, 255, 255, .5); font-size: 1.0625rem; letter-spacing: 0; }
.kd-form .wpcf7 form.init .wpcf7-response-output, .kd-form form.init .wpcf7-response-output { display: none; }
.kd-form .screen-reader-response, .kd-form .hidden-fields-container { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); border: 0; padding: 0; margin: 0; }
@media (max-width: 991.98px) {
    .kd-form--short .kd-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kd-form--short .kd-fields__submit { grid-column: 1 / -1; }
    .kd-form--short .kd-fields__consent { grid-row: auto; }
}
@media (max-width: 767.98px) {
    .kd-fields, .kd-form--short .kd-fields { grid-template-columns: 1fr; }
    .kd-form input[type="submit"] { width: 100%; }
    .kd-fields__submit > * { width: 100%; }
}
.kd-chips--muted .kd-chip__icon { background: rgba(112, 112, 112, .3); --kd-icon-knockout: var(--kd-tint); }
.kd-form--light input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .kd-form--light textarea { border-color: var(--kd-line); }
.kd-form--light input:focus-visible, .kd-form--light textarea:focus-visible { outline-color: var(--kd-black); }
.kd-form--light input[type="submit"] { border-color: var(--kd-red); }
.kd-form--light .kd-fields__submit { justify-content: flex-start; margin-top: 0; }
.kd-form--light .wpcf7-not-valid-tip { color: var(--kd-burgundy); }
.kd-form--light .wpcf7-response-output { border-color: var(--kd-line); }
.kd-contactpage { display: grid; grid-template-columns: minmax(0, 530fr) minmax(0, 926fr); gap: var(--kd-gap-cols); align-items: start; }
.kd-contactpage__info { display: grid; gap: clamp(12px, 1.25vw, 24px); }
.kd-contactpage__info .kd-chips { padding-top: clamp(12px, 1.25vw, 24px); border-top: 1px solid var(--kd-line); justify-content: flex-end; }
.kd-contactpage__address { display: inline-flex; align-items: center; gap: 6px; font-size: 1.0625rem; font-weight: 500; letter-spacing: 0; }
.kd-thanks { display: grid; justify-items: center; gap: clamp(20px, 2.08vw, 40px); text-align: center; }
@media (max-width: 991.98px) {
    .kd-contactpage { grid-template-columns: 1fr; }
    .kd-contactpage__info .kd-chips { justify-content: flex-start; }
}

/* ---------- Video mosaic: rows of 2, 3, 2 … edge to edge ---------- */
.kd-videos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px; background: var(--kd-tint); }
.kd-videos__item { grid-column: span 2; }
.kd-videos__item:nth-child(5n+1), .kd-videos__item:nth-child(5n+2) { grid-column: span 3; }
.kd-videos__play { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--kd-black); cursor: pointer; overflow: hidden; }
div.kd-videos__play { cursor: default; }
.kd-videos__play img { display: block; width: 100%; aspect-ratio: 960 / 520; object-fit: cover; transition: transform .4s ease, opacity .4s ease; }
button.kd-videos__play:hover img { transform: scale(1.03); opacity: .85; }
.kd-videos__icon { position: absolute; inset: 0; margin: auto; display: grid; place-items: center; width: clamp(48px, 4.2vw, 80px); height: clamp(48px, 4.2vw, 80px); border-radius: 50%; background: rgba(255, 255, 255, .3); color: var(--kd-white); }
.kd-videos__icon .kd-icon { width: 55%; height: 55%; }
.kd-videoplayer { width: min(1200px, 94vw); max-width: none; padding: 0; border: 0; background: var(--kd-black); overflow: visible; }
.kd-videoplayer::backdrop { background: rgba(0, 0, 0, .88); }
.kd-videoplayer iframe, .kd-videoplayer video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.kd-videoplayer__close { position: absolute; top: -44px; inset-inline-end: 0; padding: 4px 10px; border: 0; background: none; color: var(--kd-white); font-size: 2rem; line-height: 1; }
@media (max-width: 991.98px) {
    .kd-videos__item, .kd-videos__item:nth-child(5n+1), .kd-videos__item:nth-child(5n+2) { grid-column: span 3; }
}
@media (max-width: 575.98px) {
    .kd-videos__item, .kd-videos__item:nth-child(5n+1), .kd-videos__item:nth-child(5n+2) { grid-column: span 6; }
}
.kd-map iframe { display: block; width: 100%; height: 420px; border: 0; }

/* ---------- Footer ---------- */
.kd-footer { padding-block: clamp(48px, 5vw, 96px) 24px; background: var(--kd-tint); border-top: 1px solid var(--kd-line); letter-spacing: 0; }
.kd-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px clamp(32px, 5.2vw, 100px); max-width: 1120px; }
.kd-footer__brand { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.kd-footer__logo img { display: block; width: clamp(160px, 13.96vw, 268px); height: auto; }
.kd-footer__address { display: inline-flex; align-items: center; gap: 4px; font-size: 1.0625rem; font-weight: 500; }
.kd-footer__title { margin-bottom: 12px; font-size: clamp(1.125rem, 1.15vw, 1.375rem); font-weight: 700; }
.kd-footer__menu { display: grid; gap: 8px; font-size: 1.0625rem; }
.kd-footer__menu a { text-decoration: none; }
.kd-footer__menu a:hover { color: var(--kd-burgundy); text-decoration: underline; }
.kd-footer .kd-chip { flex-direction: row-reverse; }
.kd-footer .kd-chips { align-items: flex-end; }
.kd-footer .kd-chip__icon { width: 32px; height: 32px; background: rgba(112, 112, 112, .3); --kd-icon-knockout: var(--kd-tint); }
.kd-footer .kd-chip__icon .kd-icon { width: 18px; height: 18px; }
.kd-footer .kd-chip__icon .kd-icon--mail { width: 17px; height: 13px; }
.kd-footer__bottom { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; max-width: 1120px; margin-top: clamp(32px, 2.92vw, 56px); padding-top: 20px; border-top: 1px solid var(--kd-line); font-size: .9375rem; color: var(--kd-text-muted); }
.kd-footer__credit { margin-inline-start: auto; }
.kd-footer__credit a { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 767.98px) {
    .kd-footer__inner { justify-content: flex-start; }
    .kd-footer__brand { flex-basis: 100%; }
    .kd-footer__col { flex: 1 1 140px; }
    .kd-footer__credit { margin-inline-start: 0; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition-duration: .01ms !important; }
}
