/* ==========================================================
   KVA P15-WEB-R4F
   FINAL VISUAL POLISH + REAL CONTENT GATE
   Candidate final prototype layer
   ========================================================== */

:root {
  --r4f-measure: 68ch;
  --r4f-radius: 22px;
  --r4f-shadow: 0 26px 90px rgba(0,0,0,.26);
}

/* GLOBAL */

body {
  letter-spacing: -.006em;
}

main {
  isolation: isolate;
}

.site-shell {
  padding-bottom: 10px;
}

p {
  text-wrap: pretty;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

.button,
.header-contact,
.participation-action {
  cursor: pointer;
}

.button,
.header-contact {
  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

.button:active,
.header-contact:active {
  transform: translateY(0) scale(.985);
}

/* HEADER */

.site-header {
  height: 68px;
  background: rgba(8,11,16,.78);
  backdrop-filter: blur(24px) saturate(130%);
}

.brand-symbol {
  width: 35px;
  height: 35px;
}

.desktop-nav a {
  font-weight: 620;
}

.header-contact {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
}

/* HOME */

.hero {
  min-height: min(650px, calc(100vh - 68px));
  gap: clamp(34px,4.5vw,58px);
  padding-top: 38px;
  padding-bottom: 48px;
}

.hero h1 {
  max-width: 590px;
  font-size: clamp(44px,4.2vw,62px);
}

.hero-lead {
  max-width: 500px;
  font-size: 16px;
  line-height: 1.56;
}

.hero-actions {
  margin-top: 24px;
}

.ecosystem {
  min-height: 405px;
  border-radius: 22px;
}

.ecosystem-top {
  height: 46px;
}

.ecosystem-core {
  max-width: 286px;
}

.core-mark {
  width: 88px;
  height: 88px;
  margin-bottom: 14px;
}

.core-mark img {
  width: 82px;
}

.ecosystem-core p {
  font-size: 12px;
}

.ecosystem-grid article {
  min-height: 82px;
}

.ecosystem-grid strong {
  margin-top: 15px;
}

.explore {
  padding-top: 54px;
  padding-bottom: 58px;
}

.section-heading h2 {
  max-width: 690px;
}

.path-card,
.path-card.featured {
  min-height: 200px;
  padding: 20px 22px;
}

.card-body h3 {
  font-size: 23px;
}

.card-body p {
  line-height: 1.52;
}

.featured-product {
  min-height: 500px;
  gap: 38px;
  padding: 44px 42px;
}

.product-title h2 {
  font-size: clamp(46px,4.6vw,64px);
}

.product-lead {
  margin-top: 20px;
  line-height: 1.56;
}

.app-card {
  box-shadow: 0 24px 66px rgba(11,15,20,.20);
}

.app-content {
  min-height: 328px;
}

.method {
  gap: 50px;
  padding-top: 58px;
  padding-bottom: 60px;
}

.method-intro h2 {
  max-width: 490px;
}

.method-flow article {
  min-height: 145px;
}

.method-flow article strong {
  margin-top: 30px;
}

.contact {
  gap: 48px;
  padding: 36px 38px;
}

.contact-side {
  max-width: 420px;
}

/* INTERIOR HERO */

.page-hero {
  min-height: 390px;
  gap: 56px;
  padding-top: 56px;
  padding-bottom: 46px;
}

.page-hero h1 {
  max-width: 720px;
  font-size: clamp(44px,4.35vw,64px);
}

.page-hero-side > p {
  line-height: 1.62;
}

/* COMPANY */

.editorial-grid {
  padding-top: 48px;
  padding-bottom: 50px;
}

.editorial-large,
.editorial-card {
  min-height: 240px;
}

.editorial-large {
  padding: 30px;
}

.editorial-large h2 {
  font-size: clamp(36px,3.5vw,50px);
}

.editorial-large > p:last-child {
  margin-top: 18px;
  line-height: 1.58;
}

.editorial-card {
  padding: 22px;
}

.editorial-card h3 {
  font-size: 22px;
}

.principles {
  padding-top: 58px;
  padding-bottom: 60px;
}

.principle-grid {
  margin-top: 30px;
}

.principle-grid article {
  min-height: 145px;
  padding: 22px;
}

/* SERVICES */

.services-grid {
  gap: 8px;
  padding-top: 46px;
  padding-bottom: 52px;
}

.service-card {
  min-height: 205px;
  padding: 23px;
}

.service-featured {
  min-height: 420px;
}

.service-featured h2 {
  max-width: 470px;
  font-size: clamp(36px,3.35vw,48px);
}

.service-card h3 {
  font-size: 27px;
}

.service-card div > p:last-child {
  margin-top: 16px;
  line-height: 1.55;
}

.services-grid > article:nth-child(4) {
  min-height: 185px;
}

.process-band {
  gap: 50px;
  padding-top: 42px;
  padding-bottom: 42px;
}

.process-band h2 {
  font-size: 36px;
}

/* HOSPITALITY */

.hospitality-hero {
  min-height: min(620px, calc(100vh - 68px));
  gap: 38px;
  padding-top: 38px;
  padding-bottom: 46px;
}

.hospitality-hero-copy h1 {
  max-width: 600px;
  font-size: clamp(44px,4.25vw,60px);
}

.hospitality-hero-copy > p:not(.eyebrow) {
  max-width: 520px;
  font-size: 15px;
  line-height: 1.58;
}

.hospitality-dashboard {
  box-shadow: var(--r4f-shadow);
}

.dashboard-body {
  min-height: 385px;
}

.dashboard-body > section {
  padding: 19px;
}

.hospitality-kpis {
  margin-top: 16px;
}

.hospitality-story {
  padding-top: 52px;
  padding-bottom: 54px;
}

.hospitality-capabilities {
  margin-top: 28px;
}

.hospitality-capabilities article {
  min-height: 145px;
  padding: 17px;
}

.hospitality-capabilities h3 {
  margin-top: 28px;
}

.hotel-participation-banner {
  gap: 52px;
  padding: 38px 38px;
}

/* QR */

.participation-header {
  min-height: 64px;
}

.participation-hero {
  min-height: 370px;
  gap: 52px;
  padding: 38px 0;
}

.participation-hero h1 {
  max-width: 640px;
  font-size: clamp(44px,4.6vw,61px);
}

.participation-intro p {
  font-size: 15px;
  line-height: 1.62;
}

.participation-status,
.participation-options {
  padding-top: 46px;
  padding-bottom: 48px;
}

.status-heading h2 {
  font-size: 38px;
}

.status-track {
  margin-top: 28px;
}

.status-track article {
  min-height: 104px;
}

.status-track article strong {
  margin-top: 20px;
}

.participation-grid {
  margin-top: 28px;
}

.participation-grid article {
  min-height: 210px;
  padding: 20px;
}

.participation-grid h3 {
  margin-top: 26px;
  font-size: 22px;
}

.participation-grid p {
  font-size: 14px;
  line-height: 1.52;
}

.participation-product {
  padding-top: 36px;
  padding-bottom: 36px;
}

.participation-close {
  padding-top: 40px;
  padding-bottom: 48px;
}

/* FOOTER */

footer {
  min-height: 92px;
  margin-top: 22px;
}

/* RESPONSIVE */

@media (max-width: 1000px) {
  .hero,
  .hospitality-hero {
    gap: 34px;
  }

  .featured-product {
    padding: 40px 34px;
  }

  .page-hero {
    gap: 30px;
  }

  .contact {
    gap: 32px;
  }
}

@media (max-width: 760px) {
  .site-header {
    height: 62px;
  }

  .site-shell {
    width: min(calc(100% - 16px),1340px);
  }

  .hero {
    padding-top: 34px;
    padding-bottom: 40px;
  }

  .hero h1 {
    font-size: clamp(37px,10vw,47px);
  }

  .hero-lead {
    font-size: 14.5px;
  }

  .ecosystem {
    min-height: 325px;
  }

  .ecosystem-core {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .path-card,
  .path-card.featured {
    min-height: 138px;
    padding: 16px 13px;
  }

  .featured-product {
    padding: 30px 14px;
  }

  .product-title h2 {
    font-size: 46px;
  }

  .method {
    padding-top: 44px;
    padding-bottom: 46px;
  }

  .method-flow article {
    min-height: 118px;
  }

  .contact {
    padding: 25px 15px;
  }

  .page-hero {
    padding-top: 38px;
    padding-bottom: 36px;
  }

  .page-hero h1 {
    font-size: 38px;
  }

  .editorial-grid,
  .services-grid {
    padding-top: 38px;
    padding-bottom: 40px;
  }

  .editorial-large,
  .editorial-card {
    min-height: 175px;
  }

  .service-featured {
    min-height: 285px;
  }

  .hospitality-hero {
    padding-top: 36px;
    padding-bottom: 38px;
  }

  .hospitality-hero-copy h1 {
    font-size: 38px;
  }

  .hospitality-story {
    padding-top: 44px;
    padding-bottom: 46px;
  }

  .hotel-participation-banner {
    padding: 28px 16px;
  }

  .participation-hero {
    padding: 32px 0;
  }

  .participation-hero h1 {
    font-size: 37px;
  }

  .participation-status,
  .participation-options {
    padding-top: 40px;
    padding-bottom: 42px;
  }

  .participation-grid article {
    min-height: 170px;
  }

  .participation-product {
    padding-top: 31px;
    padding-bottom: 31px;
  }
}

@media (max-width: 420px) {
  .hero h1,
  .page-hero h1,
  .hospitality-hero-copy h1,
  .participation-hero h1 {
    font-size: 35px;
  }

  .ecosystem-grid article {
    min-height: 58px;
  }
}