/* ZK Salon — warm, contemporary visual system. */
:root {
  --zk-forest: #24382f;
  --zk-forest-soft: #365247;
  --zk-sage: #aeb99b;
  --zk-sage-light: #dce2d2;
  --zk-ivory: #f2e6ce;
  --zk-paper: #f8efdd;
  --zk-copper: #b87852;
  --zk-ink: #26312c;
  --zk-muted: #637067;
  --site-max-width: 1180px;
  --radius-lg: 1.5rem;
  --radius-md: 1rem;
  --shadow-soft: 0 1.5rem 4rem rgba(36, 56, 47, .13);
  --shadow-card: 0 .75rem 2rem rgba(36, 56, 47, .10);
}

html { scroll-padding-top: 1rem; }

body,
body.bg-dark {
  color: var(--zk-ink);
  background: var(--zk-ivory) !important;
  letter-spacing: .006em;
  text-rendering: optimizeLegibility;
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--zk-copper);
  outline-offset: 3px;
}

/* Editorial hero shared across all pages */
.back_img,
.back_img_masaze,
.back_img_pedikura,
.back_img_cenik,
.back_img_poukaz,
.back_img_podminky {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background-position: center 42%;
}

.back_img::before,
.back_img_masaze::before,
.back_img_pedikura::before,
.back_img_cenik::before,
.back_img_poukaz::before,
.back_img_podminky::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background:
    linear-gradient(105deg, rgba(25, 43, 35, .84) 0%, rgba(25, 43, 35, .48) 48%, rgba(25, 43, 35, .20) 100%),
    linear-gradient(0deg, rgba(25, 43, 35, .22), transparent 45%);
}

.navbar {
  padding-top: clamp(1rem, 2.5vw, 2rem) !important;
}

.navbar-nav {
  gap: .15rem;
  padding: .4rem;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  border-radius: 999px !important;
  background: rgba(27, 45, 37, .78) !important;
  box-shadow: 0 1rem 2.5rem rgba(13, 25, 19, .25) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.navbar-nav .nav-link {
  padding: .66rem .9rem !important;
  border-radius: 999px;
  color: var(--zk-ivory) !important;
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .02em;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link[aria-current="page"] {
  color: var(--zk-forest) !important;
  background: var(--zk-ivory);
  text-decoration: none;
  transform: translateY(-1px);
}

.navbar-toggler {
  padding: .55rem .7rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: .8rem;
  background: rgba(27, 45, 37, .88) !important;
  box-shadow: 0 .7rem 1.5rem rgba(13, 25, 19, .22);
}

.jumbotron {
  display: flex;
  flex: 1;
  align-items: center;
  padding-top: 2rem;
  padding-bottom: 3rem;
}

.jumbotron .row { width: 100%; align-items: center; }

.jumbotron h1 {
  position: relative;
  display: inline-block;
  margin: 0;
  color: var(--zk-ivory) !important;
  font-size: clamp(2.1rem, 5vw, 4.4rem);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.06;
  text-shadow: 0 .4rem 1.5rem rgba(0, 0, 0, .2);
}

.jumbotron h1::after {
  display: block;
  width: 3.5rem;
  height: 3px;
  margin: 1.1rem auto 0;
  border-radius: 99px;
  background: var(--zk-copper);
  content: "";
}

.page-home .jumbotron .row { justify-content: center; }
.page-home .jumbotron .col { flex-basis: 50%; }

.page-home .jumbotron img {
  width: min(100%, 430px);
}

.page-home .jumbotron .col:first-child {
  transform: translate(
    clamp(-3.5rem, -5vw, -1.75rem),
    clamp(-2.75rem, -4vw, -1.5rem)
  );
}

.page-home .jumbotron .btn {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  position: relative;
  padding: .7rem .75rem .7rem 1.45rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .42) !important;
  border-radius: 999px;
  color: var(--zk-ivory) !important;
  background: rgba(26, 45, 36, .72) !important;
  box-shadow: 0 1rem 2.5rem rgba(15, 28, 22, .28) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  font-weight: 700;
  letter-spacing: .02em;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.page-home .jumbotron .btn::after {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  place-items: center;
  color: var(--zk-forest);
  background: var(--zk-ivory);
  content: "→";
  font-size: 1.15rem;
  line-height: 1;
  transition: transform .2s ease;
}
.page-home .jumbotron .btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 1.25rem 2.5rem rgba(15, 28, 22, .28) !important;
  background: rgba(26, 45, 36, .88) !important;
  text-decoration: none;
}

.page-home .jumbotron .btn:hover::after { transform: translateX(3px); }

/* Content surfaces */
.card,
.img-thumbnail { background-color: var(--zk-paper); }
.bg-white,
.bg-light { background-color: var(--zk-paper) !important; }
.bg-secondary { background-color: var(--zk-ivory) !important; }
.card.bg-secondary,
.card-body.bg-secondary { background-color: var(--zk-paper) !important; }
.page-home .content-fluid { background: var(--zk-ivory); }

.page-home .content-fluid > .row {
  max-width: var(--site-max-width);
  margin: 0 auto !important;
  padding: clamp(2.5rem, 6vw, 6rem) var(--site-gutter) !important;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.page-home .content-fluid > .row > .card {
  flex: 1 1 0;
  padding: clamp(1.3rem, 3vw, 2.2rem) !important;
  border: 1px solid rgba(36, 56, 47, .08);
  border-radius: var(--radius-lg) !important;
  background: var(--zk-paper) !important;
  box-shadow: var(--shadow-card);
}

.page-home .figure { margin-bottom: 1.8rem; }
.page-home .figure-img {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none !important;
  object-fit: cover;
}

.page-home .kockasta .figure-img { border-radius: 1.2rem !important; }
.page-home .okrugla .figure-img {
  border: .6rem solid var(--zk-sage-light) !important;
  box-shadow: 0 0 0 1px rgba(36, 56, 47, .08) !important;
}

.page-home .card-title {
  color: var(--zk-forest);
  font-size: clamp(1.45rem, 2.5vw, 2rem);
}

.page-home .card-body > .card-body,
.page-gift .card-body,
.page-terms .card-body {
  border: 0 !important;
  border-radius: var(--radius-md) !important;
  background: var(--zk-sage-light);
}

.page-home .card-text { line-height: 1.75; }
.page-gift .card-body,
.page-terms .card-body { background-color: var(--zk-paper) !important; }

.container > .card,
.page-price .container > .card,
.card-deck .card {
  overflow: hidden;
  border: 1px solid rgba(36, 56, 47, .08) !important;
  border-radius: var(--radius-lg);
  background: var(--zk-paper);
  box-shadow: var(--shadow-card) !important;
}

.card-header {
  padding: 1.15rem 1.5rem;
  border-bottom: 0;
  background: var(--zk-forest) !important;
}

.card-header h2,
.card-header h4 { margin: 0; color: var(--zk-ivory); font-weight: 600; }

.page-services .container > .card,
.page-pedikura .container > .card,
.page-price .container > .card,
.page-gift .container:not(.p-0) > .card,
.page-terms .container > .card {
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}

.page-services .card-body > .row,
.page-pedikura .card-body > .row { align-items: center; }

.page-services .card-body > .row img,
.page-pedikura .card-body > .row img {
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
}

.page-services .card-text,
.page-pedikura .card-text,
.page-gift .card-text,
.page-terms p { color: var(--zk-ink) !important; line-height: 1.82; }

@media (min-width: 768px) {
  .page-services .card-body > .row > .col-md-3,
  .page-pedikura .card-body > .row > .col-md-3 { flex: 0 0 29%; max-width: 29%; }
  .page-services .card-body > .row > .col-md-9,
  .page-pedikura .card-body > .row > .col-md-9 {
    flex: 0 0 71%; max-width: 71%; padding-left: clamp(1.5rem, 3vw, 3rem);
  }
}

.page-services .container-fluid > .row + .row {
  width: min(100% - (var(--site-gutter) * 2), var(--site-max-width));
  margin: 0 auto;
}

.page-services .container-fluid > .row + .row .card {
  width: 100% !important;
  margin: 0 0 2rem !important;
  overflow: hidden;
  border: 1px solid rgba(36, 56, 47, .08) !important;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card) !important;
}

/* Price list */
.page-price .card-body { display: grid; gap: .65rem; }
.page-price .card-body > .card {
  margin-top: 0 !important;
  border: 1px solid rgba(36, 56, 47, .09) !important;
  border-radius: .85rem;
  background: var(--zk-paper);
  transition: transform .2s ease, box-shadow .2s ease;
}
.page-price .card-body > .card:hover {
  transform: translateY(-2px);
  box-shadow: 0 .8rem 1.8rem rgba(36, 56, 47, .12) !important;
}
.page-price .btn-sm { border-radius: .6rem; background: var(--zk-forest); }
.page-price [class*="code"] img,
.page-price .qr-zada-sije-panel img {
  padding: .4rem;
  border-radius: .8rem;
  background: var(--zk-paper);
  box-shadow: var(--shadow-card);
}
.page-price [class*="code"].is-open {
  position: relative;
  z-index: 1;
  display: block !important;
  overflow: visible;
  visibility: visible;
  opacity: 1;
}
.page-price .qr-zada-sije-panel:not([hidden]) {
  display: block !important;
  overflow: visible;
  visibility: visible;
  opacity: 1;
}
.page-price .qr-zada-sije-panel img {
  width: min(100%, 280px);
  height: auto;
}

/* Supporting content */
.card-deck .card-title {
  padding-bottom: .8rem;
  border-bottom: 1px solid rgba(36, 56, 47, .15);
  color: var(--zk-forest);
  font-weight: 700;
}
.page-gift .list-unstyled { margin-top: 2.5rem !important; }
.page-gift .container.p-0 .list-unstyled .card-body { padding: 0 !important; background: var(--zk-paper); }
.page-gift .container.p-0 .list-unstyled img {
  display: block;
  width: 100%;
  height: auto;
  padding: clamp(.5rem, 2vw, 1.25rem);
  background: var(--zk-sage-light);
  object-fit: contain;
}
.page-terms .media + .media {
  margin-top: 2.25rem !important; padding-top: 2.25rem;
  border-top: 1px solid rgba(36, 56, 47, .14);
}
.page-terms .media-body > .bg-dark {
  padding: .8rem 1rem !important;
  border-radius: .8rem !important;
  background: var(--zk-forest) !important;
}
.page-price > .container-fluid {
  padding: clamp(1rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 4rem);
  background: var(--zk-ivory);
}

/* Footer */
.page-footer {
  position: relative;
  padding-top: clamp(3rem, 6vw, 5.5rem) !important;
  color: var(--zk-ivory);
  background: var(--zk-forest) !important;
}
.page-footer::before {
  position: absolute; top: 0; left: 50%; width: min(5rem, 20vw); height: 3px;
  transform: translateX(-50%); border-radius: 99px; background: var(--zk-copper); content: "";
}
.page-footer .container-fluid { padding-bottom: 3rem; }
.page-footer .col-lg-6,
.page-footer .col-lg-3 { padding-right: 1.5rem; padding-left: 1.5rem; }
.page-footer h4 {
  color: var(--zk-ivory) !important;
  font-size: .9rem; font-weight: 700; letter-spacing: .12em;
}
.page-footer i { color: var(--zk-copper) !important; }
.page-footer p,
.page-footer a { color: var(--zk-sage-light) !important; }
.page-footer a:hover { color: white !important; }
.footer-copyright {
  border-top: 1px solid rgba(255, 255, 255, .1);
  color: rgba(247, 243, 235, .58) !important;
}

@media (max-width: 991.98px) {
  .navbar-collapse { margin-top: .75rem; }
  .navbar-nav { border-radius: var(--radius-md) !important; }
  .navbar-nav .nav-link { padding: .72rem 1rem !important; }
  .page-home .content-fluid > .row > .card { flex-basis: 100%; }
}

@media (max-width: 767.98px) {
  .back_img,
  .back_img_masaze,
  .back_img_pedikura,
  .back_img_cenik,
  .back_img_poukaz,
  .back_img_podminky {
    z-index: 2;
    overflow: visible;
  }
  .navbar {
    position: relative;
    z-index: 10;
  }
  .navbar-collapse {
    position: absolute;
    top: 100%;
    right: var(--site-gutter);
    left: var(--site-gutter);
    max-height: calc(100vh - 5.5rem);
    max-height: calc(100svh - 5.5rem);
    margin-top: .5rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .navbar-nav { margin-top: 0; }
  .page-home .jumbotron {
    align-items: flex-start;
    padding-top: 0 !important;
  }
  .page-home .jumbotron .row {
    align-content: flex-start;
    margin-right: 0;
    margin-left: 0;
    padding-top: clamp(1.5rem, 6vh, 3.5rem);
  }
  .page-home .jumbotron .col { flex-basis: 100%; }
  .page-home .jumbotron .col:first-child {
    margin-top: 0 !important;
    margin-bottom: clamp(1rem, 3vh, 2rem) !important;
    transform: none;
  }
  .page-home .jumbotron img { width: min(74vw, 300px); }
  .page-home .content-fluid > .row { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
  .page-home .content-fluid > .row > .card { padding: 1.25rem !important; }
  .page-services .container > .card,
  .page-pedikura .container > .card,
  .page-price .container > .card,
  .page-gift .container:not(.p-0) > .card,
  .page-terms .container > .card { margin-top: 1.25rem !important; margin-bottom: 1.25rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition: none !important; }
}

/* Cancellation terms in the price-list notice card. */
.page-price .cancellation-notice {
  color: #212529;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
  text-align: left;
}
.page-price .cancellation-notice h6 {
  margin: 0 0 1.25rem;
  font-size: 1.05em;
  font-weight: 700;
  line-height: 1.4;
}
.page-price .cancellation-notice ul {
  margin: 0 0 1.5rem;
  padding-left: 2rem;
}
.page-price .cancellation-notice li { padding-left: .5rem; }
.page-price .cancellation-notice p { margin: 0 0 1.5rem 2rem; }
.page-price .cancellation-notice p:last-child { margin-bottom: 0; }
.page-price .cancellation-notice strong { font-weight: 700; }

.page-price .cancellation-notice * { font-family: inherit; }

/* Keep both support-card headings and their dividers at the same height. */
.page-price .price-support-cards > .card > .card-body { display: block; }
.page-price .price-support-cards .card-title { margin-bottom: 1.4rem; }

/* Booking terms: document emphasis and lists, using the site's typography. */
.page-terms .booking-terms { color: var(--zk-ink); }
.page-terms .booking-terms h6 {
  margin: 1.5rem 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
}
.page-terms .booking-terms h6:first-child { margin-top: 1rem; }
.page-terms .booking-terms p { text-align: justify; }
.page-terms .booking-terms ul { margin: 0 0 1rem; padding-left: 2.5rem; line-height: 1.82; }
.page-terms .booking-terms .terms-dash-list { list-style: none; }
.page-terms .booking-terms .terms-dash-list li { position: relative; }
.page-terms .booking-terms .terms-dash-list li::before { content: "-"; position: absolute; left: -1.5rem; }

/* A quiet thought between the home-page logo and its call to action. */
.page-home .hero-message {
  flex-direction: column;
  justify-content: center;
  gap: clamp(1.5rem, 3vw, 2.25rem);
}
.page-home .hero-thought {
  max-width: 28rem;
  margin: 0;
  color: var(--zk-ivory);
  text-align: center;
  text-shadow: 0 2px 14px rgba(15, 28, 22, .55);
}
.page-home .hero-thought::before {
  content: "";
  display: block;
  width: 3rem;
  height: 2px;
  margin: 0 auto 1.25rem;
  background: var(--zk-copper);
}
.page-home .hero-thought p {
  margin: 0;
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: .045em;
}
.page-home .hero-thought span {
  display: block;
  margin-top: .75rem;
  color: var(--zk-sage-light);
  font-size: .8em;
  letter-spacing: .08em;
}
.page-home .hero-message .btn { margin: 0 auto !important; }
@media (max-width: 767.98px) {
  .page-home .hero-message { margin-top: 0 !important; }
  .page-home .hero-thought { max-width: 22rem; }
  .page-home .hero-thought::before { margin-bottom: 1rem; }
}
