/* KiwiTile closing section + footer — desktop homepage */

/* ── Shared tokens ── */

.kvx-page-end,
.kvx-closing,
.kvx-footer {
  --kvx-base: rgba(245, 245, 245, 0.9);
  --kvx-soft: rgba(245, 245, 245, 0.72);
  --kvx-muted: rgba(245, 245, 245, 0.56);
  --kvx-warm: rgba(222, 202, 176, 0.78);
  --kvx-gold: rgba(224, 177, 105, 0.9);
  --kvx-gold-line: rgba(198, 118, 48, 0.42);
  --kvx-gold-line-soft: rgba(198, 118, 48, 0.22);
  --kvx-shell-width: min(1920px, calc(100% - clamp(20px, 1.6vw, 32px)));
  --kvx-shell-pad-x: clamp(40px, calc(40px + (100vw - 1280px) * 0.03125), 60px);
  color: var(--kvx-base);
}

.kvx-page-end {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #080808;
}

.kvx-page-end__background {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  transform: scale(1.018);
  filter: saturate(0.88) contrast(1.1) brightness(1);
  background: url("../images/080-dt-stone-2.webp") center / cover no-repeat;
}

.kvx-page-end::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
    background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.13) 0%,
    rgba(0, 0, 0, 0.04) 24%,
    rgba(0, 0, 0, 0.04) 76%,
    rgba(0, 0, 0, 0.27) 100%
  );
}

/* ── Closing section ── */

.kvx-closing {
  position: relative;
  z-index: 2;
}

.kvx-closing__shell {
  position: relative;
  width: var(--kvx-shell-width);
  margin: 0 auto;
  padding:
    clamp(72px, calc(72px + (100vw - 1280px) * 0.05625), 108px)
    var(--kvx-shell-pad-x)
    clamp(56px, calc(56px + (100vw - 1280px) * 0.04375), 84px);
  display: grid;
  justify-items: center;
  text-align: center;
}

.kvx-closing__lead {
  margin: 0;
  max-width: clamp(640px, calc(640px + (100vw - 1280px) * 0.5), 960px);
  font-family: var(--font-serif);
  font-size: clamp(11.5px, calc(11.5px + (100vw - 1280px) * 0.008984375), 17.25px);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--kvx-warm);
}

.kvx-closing__emphasis {
  margin: clamp(18px, calc(18px + (100vw - 1280px) * 0.0140625), 27px) 0 0;
  max-width: clamp(720px, calc(720px + (100vw - 1280px) * 0.5625), 1080px);
  font-family: var(--font-serif);
  font-size: clamp(28px, calc(28px + (100vw - 1280px) * 0.03125), 42px);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kvx-gold);
}

.kvx-closing__rule {
  display: flex;
  align-items: center;
  gap: 0;
  width: min(clamp(280px, calc(280px + (100vw - 1280px) * 0.21875), 420px), 100%);
  margin: clamp(28px, calc(28px + (100vw - 1280px) * 0.021875), 42px) 0
    clamp(24px, calc(24px + (100vw - 1280px) * 0.01875), 36px);
}

.kvx-closing__rule-line {
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--kvx-gold-line) 18%,
    var(--kvx-gold-line) 82%,
    transparent
  );
}

.kvx-closing__rule-diamond {
  flex: 0 0 auto;
  width: clamp(5px, calc(5px + (100vw - 1280px) * 0.00390625), 7.5px);
  height: clamp(5px, calc(5px + (100vw - 1280px) * 0.00390625), 7.5px);
  margin: 0 clamp(10px, calc(10px + (100vw - 1280px) * 0.0078125), 15px);
  background: rgba(224, 177, 105, 0.88);
  transform: rotate(45deg);
}

.kvx-closing__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(clamp(196px, calc(196px + (100vw - 1280px) * 0.153125), 294px), 100%);
  min-height: clamp(38px, calc(38px + (100vw - 1280px) * 0.0296875), 57px);
  padding: clamp(10px, calc(10px + (100vw - 1280px) * 0.0078125), 15px)
    clamp(18px, calc(18px + (100vw - 1280px) * 0.0140625), 27px);
  border: 1px solid rgba(222, 150, 68, 0.48);
  background: rgba(8, 8, 8, 0.28);
  color: rgba(224, 177, 105, 0.92);
  font-family: var(--font-serif);
  font-size: clamp(10.5px, calc(10.5px + (100vw - 1280px) * 0.008203125), 15.75px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition:
    border-color 260ms ease,
    color 260ms ease,
    background 260ms ease;
}

.kvx-closing__cta:hover,
.kvx-closing__cta:focus-visible {
  border-color: rgba(232, 158, 75, 0.62);
  color: rgba(238, 190, 132, 0.98);
  background: rgba(12, 12, 12, 0.42);
}

.kvx-closing__cta:focus-visible {
  outline: 1px solid rgba(232, 158, 75, 0.35);
  outline-offset: 3px;
}

/* ── Footer ── */

.kvx-footer {
  position: relative;
  z-index: 2;
  --kvx-base: rgba(255, 253, 249, 0.99);
  --kvx-soft: rgba(255, 253, 249, 0.9);
  --kvx-muted: rgba(255, 253, 249, 0.8);
  --kvx-warm: rgba(240, 224, 201, 0.96);
  --kvx-gold: rgba(240, 196, 125, 0.99);
}

.kvx-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 3;
  width: 100vw;
  height: 1.5px;
  transform: translateX(-50%);
  pointer-events: none;
  background: rgb(222, 150, 68);
  box-shadow: 0 0 10px rgba(222, 150, 68, 0.18);
}

.kvx-footer__shell {
  position: relative;
  width: var(--kvx-shell-width);
  margin: 0 auto;
  padding:
    clamp(56px, calc(56px + (100vw - 1280px) * 0.04375), 84px)
    var(--kvx-shell-pad-x)
    clamp(24px, calc(24px + (100vw - 1280px) * 0.01875), 36px);
}

.kvx-footer__main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(40px, calc(40px + (100vw - 1280px) * 0.05), 72px);
}

.kvx-footer__identity {
  display: flex;
  align-items: center;
  gap: clamp(20px, calc(20px + (100vw - 1280px) * 0.0140625), 29px);
  min-width: 0;
}

.kvx-footer__emblem {
  flex: 0 0 auto;
  width: clamp(104px, calc(104px + (100vw - 1280px) * 0.05), 138px);
height: clamp(104px, calc(104px + (100vw - 1280px) * 0.05), 138px);
  object-fit: contain;
  display: block;
  filter: saturate(0.82) brightness(0.88) contrast(1.06);
}

.kvx-footer__identity-text {
  min-width: 0;
}

.kvx-footer__brand-line {
  display: flex;
  align-items: baseline;
  gap: clamp(9px, calc(9px + (100vw - 1280px) * 0.00703125), 13.5px);
  font-family: var(--font-serif);
}

.kvx-footer__brand-name {
  font-size: clamp(
    36px,
    calc(36px + (100vw - 1280px) * 0.025),
    52px
  );
  line-height: 1;
  letter-spacing: 0.075em;
  color: var(--kvx-gold);
}

.kvx-footer__brand-ltd {
  font-size: clamp(
    16px,
    calc(16px + (100vw - 1280px) * 0.0125),
    24px
  );
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(231, 213, 187, 0.96);
}

.kvx-footer__tagline {
  margin:
    clamp(14px, calc(14px + (100vw - 1280px) * 0.009375), 20px)
    0
    0;
  max-width: clamp(
    390px,
    calc(390px + (100vw - 1280px) * 0.265625),
    560px
  );
  font-family: var(--font-serif);
  font-size: clamp(
    15px,
    calc(15px + (100vw - 1280px) * 0.01171875),
    22.5px
  );
  line-height: 1.55;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--kvx-warm);
}

.kvx-footer__vdivider {
  align-self: stretch;
  width: 1px;
  min-height: clamp(
    104px,
    calc(104px + (100vw - 1280px) * 0.065625),
    146px
  );
  background: linear-gradient(
    to bottom,
    transparent,
    var(--kvx-gold-line) 18%,
    var(--kvx-gold-line) 82%,
    transparent
  );
}

.kvx-footer__contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  justify-self: end;
  display: grid;
  gap: clamp(8px, calc(8px + (100vw - 1280px) * 0.00625), 12px);
}

.kvx-footer__contact-list li {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(8px, calc(8px + (100vw - 1280px) * 0.00625), 12px);
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(17px, calc(17px + (100vw - 1280px) * 0.01328125), 25.5px);
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.kvx-footer__icon {
  flex: 0 0 auto;
  color: rgba(224, 177, 105, 0.72);
}

.kvx-footer__link {
  color: rgba(255, 253, 249, 0.99);
  text-decoration: none;
  transition: color 220ms ease;
}

.kvx-footer__link[href^="tel:"] {
  position: relative;
  top: -1px;
  font-family: "Playfair Display", serif;
  font-size: 1.04em;
  font-weight: 600;
  font-variant-numeric: lining-nums proportional-nums;
  font-feature-settings: "kern" 1, "lnum" 1, "pnum" 1;
  letter-spacing: 0.018em;
}

.kvx-footer__link:hover {
  color: rgba(238, 190, 132, 0.96);
}

.kvx-footer__muted {
  color: rgba(240, 224, 201, 0.91);
}

.kvx-footer__bottom {
  position: relative;
  margin-top: clamp(24px, calc(24px + (100vw - 1280px) * 0.01875), 36px);
  padding-top: clamp(14px, calc(14px + (100vw - 1280px) * 0.0109375), 21px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(20px, calc(20px + (100vw - 1280px) * 0.015625), 30px);
}

.kvx-footer__bottom::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 1px;
  transform: translateX(-50%);
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(232, 187, 117, 0.36) 12%,
    rgba(240, 196, 125, 0.68) 50%,
    rgba(232, 187, 117, 0.36) 88%,
    transparent 100%
  );
  box-shadow: 0 0 8px rgba(232, 187, 117, 0.12);
}

.kvx-footer__copyright {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(11px, calc(11px + (100vw - 1280px) * 0.00859375), 16.5px);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--kvx-muted);
}

.kvx-footer__legal {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: clamp(10px, calc(10px + (100vw - 1280px) * 0.0078125), 15px);
  font-family: var(--font-serif);
  font-size: clamp(10.5px, calc(10.5px + (100vw - 1280px) * 0.008203125), 15.75px);
  line-height: 1.5;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(255, 253, 249, 0.8);
}

.kvx-footer__legal-link,
.kvx-footer__legal-link:link,
.kvx-footer__legal-link:visited,
.kvx-footer__areas-toggle {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: rgba(255, 253, 249, 0.8);
  text-decoration: none;
  cursor: pointer;
  transition: color 220ms ease;
}

.kvx-footer__legal-link:hover,
.kvx-footer__areas-toggle:hover {
  color: rgba(242, 169, 0, 0.9);
  text-decoration: none;
}

.kvx-footer__legal-link:focus,
.kvx-footer__legal-link:active,
.kvx-footer__areas-toggle:focus,
.kvx-footer__areas-toggle:active {
  outline: none;
  box-shadow: none;
  text-decoration: none;
}

.kvx-footer__divider {
  opacity: 0.35;
}

.kvx-footer__areas-toggle,
.kvx-footer__areas-toggle:link,
.kvx-footer__areas-toggle:visited {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

/* ── Footer — phone layout ── */
@media (max-width: 767px) {
  .kvx-page-end,
  .kvx-footer {
    --kvx-shell-width: 100%;
    --kvx-shell-pad-x: 0;
  }

  .kvx-page-end {
    overflow: hidden;
  }

  .kvx-page-end__background {
    transform: none;
    background-position: center top;
    background-size: cover;
  }

  .kvx-footer__shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 40px 20px 28px;
    box-sizing: border-box;
  }

  .kvx-footer__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 26px;
    text-align: center;
  }

  .kvx-footer__identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: center;
  }

  .kvx-footer__emblem {
    width: 128px;
    height: 128px;
  }

  .kvx-footer__identity-text {
    width: 100%;
  }

  .kvx-footer__brand-line {
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
  }

  .kvx-footer__brand-name {
    font-size: 54px;
    letter-spacing: 0.06em;
  }

  .kvx-footer__brand-ltd {
    font-size: 20px;
    letter-spacing: 0.14em;
  }

  .kvx-footer__tagline {
    margin: 16px auto 0;
    max-width: 30ch;
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }

  /* Turn the desktop vertical rule into a short horizontal divider. */
  .kvx-footer__vdivider {
    align-self: center;
    width: min(168px, 42vw);
    min-height: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent,
      var(--kvx-gold-line) 18%,
      var(--kvx-gold-line) 82%,
      transparent
    );
  }

  .kvx-footer__contact-list {
    justify-self: center;
    width: 100%;
    max-width: 100%;
    gap: 12px;
  }

  .kvx-footer__contact-list li {
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 20px;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-align: center;
  }

  .kvx-footer__icon {
    width: 18px;
    height: 18px;
  }

  .kvx-footer__bottom {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 28px;
    padding-top: 20px;
    text-align: center;
  }

  .kvx-footer__copyright {
    max-width: 32ch;
    font-size: 14px;
    line-height: 1.45;
    letter-spacing: 0.03em;
  }

  /* Legal row stays smaller at the bottom. */
  .kvx-footer__legal {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 8px;
    column-gap: 8px;
    max-width: 100%;
    font-size: 12px;
    letter-spacing: 0.12em;
    white-space: normal;
  }
}
