/* Client audit v8. Scoped additions to the existing Klevie theme. */
#client-reviews { align-items: center; text-align: center; }
.highlighted-room-dots { display: none; }
#client-reviews > span { justify-content: center; width: 100%; }
#client-reviews h2 { text-align: center; }
#single-room-reviews .room-reviews-heading {
  margin: 0 0 38px;
  font: 400 18px var(--modern);
  color: var(--green);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .08em;
}
#single-room-reviews {
  max-width: var(--container);
  background: #FFF;
  padding: 40px 66px;
}
#single-room-reviews .room-review-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
}
#single-room-reviews .room-review-card p { margin: 0; }
#single-room-reviews .glide__track { margin: 0 48px; }
#single-room-reviews .glide__arrows {
  left: 0;
  width: 100%;
  transform: translateY(-50%);
}
#single-room-hero .room-hero-arrows { display: none; }
.room-gallery-popup .room-popup-close {
  z-index: 3;
  background: #F2D4DC;
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.room-gallery-popup .room-popup-close img { display: block; width: 18px; height: 18px; }
.room-gallery-popup .room-popup-close:hover {
  background: #EACD9B;
  transform: rotate(90deg) scale(1.1);
  box-shadow: 0 2px 9px rgba(63,96,79,.18);
}
.room-gallery-popup .room-popup-close:focus-visible { outline: 2px solid #3F604F; outline-offset: 4px; }
/* Neutralize the old ‹/› and × pseudo-controls in WordPress Additional CSS. */
.room-gallery-popup .room-popup-thumb::after,
.room-gallery-popup .room-popup-close::after { content: none !important; display: none !important; }
.room-gallery-popup .room-popup-image { position: relative; }
.room-gallery-popup .room-popup-image-arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  width: 42px;
  height: 42px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #3F604F;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .25s ease, box-shadow .25s ease;
}
.room-gallery-popup .room-popup-image-arrow--prev { left: 16px; }
.room-gallery-popup .room-popup-image-arrow--next { right: 16px; }
.room-gallery-popup .room-popup-image-arrow:hover { background: #7EAA9B; box-shadow: 0 2px 9px rgba(63,96,79,.2); }
.room-gallery-popup .room-popup-image-arrow:focus-visible { outline: 2px solid #FFFBF8; outline-offset: 3px; }
.room-gallery-popup .room-popup-image-arrow img {
  width: 20px;
  height: 20px;
  aspect-ratio: auto;
  object-fit: contain;
  pointer-events: none;
}
.room-gallery-popup, .leria-sweets-popup {
  touch-action: pan-y;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.room-gallery-popup-inner { min-height: 0; }
.timeline-lightbox { height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
#timeline .timeline-image { overflow: visible; }
#timeline .timeline-image > img { border-radius: 50%; }
#timeline .timeline-image::after {
  content: '';
  position: absolute;
  right: -7px;
  bottom: -7px;
  width: 33px;
  height: 33px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 2px solid #EACD9B;
  background: #FFFBF8 url('../icons/ui-magnify.svg') center / 20px no-repeat;
  box-shadow: 0 2px 8px rgba(63,96,79,.2);
  pointer-events: none;
  transition: transform .3s ease, background-color .3s ease;
}
#timeline .timeline-image:hover::after,
#timeline .timeline-image:focus-visible::after { transform: scale(1.12); background-color: #DDEBE5; }
#timeline .timeline-line-svg svg {
  clip-path: inset(0 calc(100% - var(--timeline-reveal, 32%)) 0 0);
  transition: clip-path .9s ease-out;
}
.cafetaria-photo-slider {
  position: relative;
  max-width: none;
  margin: 0 auto;
  padding: 68px 40px 80px;
  overflow: hidden;
  background: #DDEBE5;
}
#cafetaria-page { padding-bottom: 0; }
.cafetaria-photo-slider::before,
.cafetaria-photo-slider::after {
  content: '';
  position: absolute;
  width: min(42vw, 440px);
  height: min(42vw, 440px);
  border: 1px solid #EACD9B;
  border-radius: 50%;
  pointer-events: none;
}
.cafetaria-photo-slider::before { left: -185px; top: -260px; }
.cafetaria-photo-slider::after { right: -210px; bottom: -285px; }
.cafetaria-photo-glide { position: relative; z-index: 1; max-width: 850px; margin: 0 auto; }
.cafetaria-photo-slider figure { margin: 0; }
.cafetaria-photo-slider .glide__slides > figure:only-child { flex: 1 1 100%; }
.cafetaria-photo-slider img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 2px solid #EACD9B;
}
.cafetaria-photo-slider .glide__arrows {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.cafetaria-photo-slider .glide__arrow {
  pointer-events: auto;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--green);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background .25s ease, transform .25s ease;
}
.cafetaria-photo-slider .glide__arrow:hover { background: #7EAA9B; transform: scale(1.08); }
.cafetaria-photo-slider .glide__arrow:focus-visible { outline: 2px solid #3F604F; outline-offset: 3px; }
.cafetaria-photo-slider .glide__arrow img { width: 19px; height: 19px; border: 0; aspect-ratio: auto; object-fit: contain; pointer-events: none; }
#cafetaria-page .lerias-mosaic-image img,
#lerias-page .leria-mosaic-cell--cake img { transition: transform .6s ease-out; }
#cafetaria-page .lerias-mosaic-image:hover img { transform: scale(1.025); }
#lerias-page .leria-mosaic-cell--cake:hover img,
#lerias-page .leria-mosaic-cell--cake:focus-visible img {
  transform: translateY(-7px) rotate(3deg) scale(1.045);
}
#lerias-page .decor-ring-left,
#lerias-page .decor-ring-right { animation: lerias-decor-drift 12s ease-in-out infinite alternate; }
#cafetaria-page .decor-ring-left,
#cafetaria-page .decor-ring-right,
#cafetaria-page .decor-dots { animation: lerias-decor-drift 14s ease-in-out infinite alternate; }
#cafetaria-page .lerias-hero-lines { animation: cafetaria-lines-breathe 9s ease-in-out infinite alternate; }
#cafetaria-page .decor-zigzag { animation: cafetaria-zigzag-sway 5s ease-in-out infinite alternate; }
#cafetaria-page .lerias-mosaic-text > img { animation: cafetaria-mosaic-float 6s ease-in-out infinite alternate; }
#cafetaria-page .lerias-mosaic-bottom-left > img { animation-delay: -2s; }
#cafetaria-page .lerias-mosaic-bottom-right > img { animation-delay: -4s; }
@keyframes cafetaria-zigzag-sway {
  from { transform: translateY(2px); }
  to { transform: translateY(-8px); }
}
@keyframes cafetaria-mosaic-float {
  from { transform: translateY(1px) rotate(-2deg); }
  to { transform: translateY(-6px) rotate(2deg); }
}
@keyframes cafetaria-lines-breathe {
  from { transform: translateX(-4px); opacity: .65; }
  to { transform: translateX(4px); opacity: 1; }
}
@keyframes lerias-decor-drift {
  from { transform: translateX(-7px) rotate(-3deg); }
  to { transform: translateX(7px) rotate(3deg); }
}
#lerias-page .lerias-chef { margin-top: 120px; }
#lerias-page .chef-sweets-gallery img { animation: lerias-cakes-drift 3.1s ease-in-out infinite alternate; transform-origin: center bottom; }
#lerias-page .chef-sweets-gallery--individual {
  width: min(100%, 470px);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 8px;
}
#lerias-page .chef-sweets-gallery--individual img {
  flex: 0 1 65px;
  width: min(14%, 65px);
  max-width: 65px;
  height: 65px;
  object-fit: contain;
}
#lerias-page .chef-sweets-gallery--individual img:nth-child(2) { animation-delay: -.5s; }
#lerias-page .chef-sweets-gallery--individual img:nth-child(3) { animation-delay: -1s; }
#lerias-page .chef-sweets-gallery--individual img:nth-child(4) { animation-delay: -1.5s; }
#lerias-page .chef-sweets-gallery--individual img:nth-child(5) { animation-delay: -2s; }
#lerias-page .chef-sweets-gallery--individual img:nth-child(6) { animation-delay: -2.5s; }
@keyframes lerias-cakes-drift {
  from { transform: translateY(2px) rotate(-.35deg); }
  to { transform: translateY(-5px) rotate(.35deg); }
}
#lerias-page .story-image-open {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  background: none;
  cursor: zoom-in;
}
#lerias-page .story-image-open:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
#lerias-page .bottom-mosaic-media {
  gap: 0 76px;
  border: 0;
  align-items: start;
}
#lerias-page .bottom-mosaic-column { min-width: 0; }
#lerias-page .bottom-left-grid-image,
#lerias-page .bottom-video-wrap { border: 2px solid #EACD9B; }
#lerias-page .bottom-description { padding-top: 26px; }
#lerias-page .leria-video-dots {
  display: flex;
  justify-content: center;
  gap: 11px;
  margin-top: 18px;
}
#lerias-page .leria-video-dot {
  width: 9px;
  height: 9px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: #FFFBF8;
  opacity: .55;
  cursor: pointer;
}
#lerias-page .leria-video-dot.active { background: #F2D4DC; opacity: 1; }
#lerias-page .leria-video-dot:focus-visible { outline: 2px solid #FFFBF8; outline-offset: 3px; }
.leria-sweets-popup { padding: 44px 20px 22px; }
.leria-sweets-popup__stage { min-height: calc(100dvh - 66px); }
.leria-sweets-popup__dialog { width: min(100%, 365px); padding: 16px; }
.leria-sweets-popup__content { min-height: 0; padding: 22px 24px 28px; }
.leria-sweets-popup__content h2 { margin-bottom: 12px; font-size: 21px; }
.leria-sweets-popup__navigation {
  position: static;
  justify-content: center;
  margin: 16px auto 0;
  transform: none;
}
.leria-sweets-popup__arrow { width: 44px; height: 44px; padding: 11px; }
@media (max-width: 768px) {
  .room-gallery-popup .room-popup-image-arrow { width: 38px; height: 38px; }
  .room-gallery-popup .room-popup-image-arrow--prev { left: 9px; }
  .room-gallery-popup .room-popup-image-arrow--next { right: 9px; }
  .cafetaria-photo-slider { padding: 42px 18px 55px; margin-top: 0; }
  .cafetaria-photo-slider::before { left: -185px; top: -300px; }
  .cafetaria-photo-slider::after { right: -215px; bottom: -310px; }
  .cafetaria-photo-slider .glide__arrow { width: 38px; height: 38px; }
  #lerias-page .lerias-chef { margin-top: 120px; }
  #lerias-page .chef-sweets-gallery--individual { margin-inline: auto; }
  #lerias-page .chef-sweets-gallery--individual img { height: clamp(42px, 11vw, 65px); }
  #banner-with-booking .booking-form,
  #single-room-hero .room-booking-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
  }
  #banner-with-booking .booking-form { padding: 14px; }
  #banner-with-booking .booking-field input,
  #banner-with-booking .booking-field select { font-size: 13px; }
  #highlighted-rooms .rooms-flex {
    display: flex;
    width: 100%;
    max-width: none;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    padding: 0 8%;
    scrollbar-width: none;
  }
  #highlighted-rooms .rooms-flex::-webkit-scrollbar { display: none; }
  #highlighted-rooms .rooms-flex .room-card {
    flex: 0 0 min(80vw, 360px);
    scroll-snap-align: center;
  }
  .highlighted-room-dots {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: -18px;
  }
  .highlighted-room-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #DDEBE5;
    cursor: pointer;
  }
  .highlighted-room-dots button.active { background: var(--green); }
  #room-commodities .commodities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #room-commodities .commodity-card { min-height: 180px; padding: 28px 18px; }
  .rooms-page #single-room-hero .room-hero-content {
    position: relative;
    left: auto;
    bottom: auto;
    max-width: none;
    padding: 18px 20px 0;
    color: var(--text-dark);
  }
  .rooms-page #single-room-hero .room-show-more {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin: 18px 20px 20px;
    border-color: var(--green);
    color: var(--green);
  }
  .rooms-page #single-room-hero .room-hero-image { height: auto; aspect-ratio: 4 / 3; }
  .room-gallery-popup { padding: 10px; }
  .room-gallery-popup-inner { padding: 54px 16px 24px; }
  #single-room-reviews { padding: 36px 20px; }
  #single-room-reviews .glide__track { margin: 0 28px; }
  #accordion.mobile-hide-contact-cta .right {
    background-color: var(--green);
    background-image: none !important;
  }
  #accordion.mobile-hide-contact-cta .right::before { display: none; }
  #lerias-page .bottom-mosaic-media { grid-template-columns: 1fr; gap: 34px; }
  #lerias-page .bottom-description { padding: 22px 10px 0; text-align: center; }
  .leria-sweets-popup__dialog { width: min(100%, 320px); }
  .leria-sweets-popup__close { right: 0; top: -46px; }
}
@media (prefers-reduced-motion: reduce) {
  #lerias-page .decor-ring-left,
  #lerias-page .decor-ring-right,
  #cafetaria-page .decor-ring-left,
  #cafetaria-page .decor-ring-right,
  #cafetaria-page .decor-dots,
  #cafetaria-page .lerias-hero-lines,
  #cafetaria-page .decor-zigzag,
  #cafetaria-page .lerias-mosaic-text > img,
  #lerias-page .chef-sweets-gallery img { display: none; }
  #timeline .timeline-line-svg svg,
  #cafetaria-page .lerias-mosaic-image img,
  #lerias-page .leria-mosaic-cell--cake img { transition: none; }
}

/* Client audit 21/09. */
#contact-info .contact-map {
  background-color: #A4CEC2;
}
#timeline .timeline-image {
  overflow: visible;
  cursor: pointer;
}
#timeline .timeline-image-media {
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  border-radius: 50%;
}
#timeline .timeline-image-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .3s ease-out;
}
#timeline .timeline-image:hover .timeline-image-media img,
#timeline .timeline-image:focus-visible .timeline-image-media img {
  transform: scale(1.12);
}
.timeline-lightbox {
  background-color: rgba(133, 175, 154, .92);
}

.room-gallery-popup .room-popup-close {
  background: #85AF9A;
}
.room-gallery-popup .room-popup-close:hover {
  background: #DDEBE5;
}
#single-room-hero .room-show-more:hover,
#single-room-hero .booking-submit:hover,
.room-gallery-popup .room-popup-booking:hover {
  border-color: #85AF9A;
  background-color: #85AF9A;
  color: #F8FFFB;
}
.room-gallery-popup .room-popup-booking:hover img {
  filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%);
}

.cafetaria-photo-slider {
  padding-inline: clamp(18px, 3vw, 52px);
}
.cafetaria-photo-glide {
  width: 100%;
  max-width: none;
}
.cafetaria-photo-slider img {
  aspect-ratio: 4 / 5;
}

#lerias-page {
  padding-bottom: 0;
}
#lerias-page .lerias-bottom-mosaic {
  margin: 0 auto 40px;
}
.leria-sweets-popup__dialog {
  width: min(100%, 320px);
  padding: 12px;
}
.leria-sweets-popup__content {
  padding: 20px 18px 24px;
}
.leria-sweets-popup__content h2 {
  font-size: 19px;
}

.article-related-card__more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  font-family: var(--book);
  font-size: 10px;
  text-transform: none;
  transition: color .25s ease-out, transform .25s ease-out;
}
.article-related-card__more img {
  width: 13px;
  height: 13px;
  display: block;
  object-fit: contain;
}
.article-related-card__more:hover,
.article-related-card__more:focus-visible {
  color: #85AF9A;
  transform: translateX(2px);
}

#cdl-journal .journal-more {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  font-family: var(--book);
  font-size: 14px;
  line-height: 1;
  color: var(--green);
  text-transform: none;
  text-decoration: none;
  padding-bottom: 3px;
  border-bottom: 1px solid transparent;
  transition: color .25s ease-out, border-color .25s ease-out;
}
#cdl-journal .journal-more::before {
  content: '';
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background:
    linear-gradient(currentColor, currentColor) center / 6px 1px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1px 6px no-repeat;
}
#cdl-journal .journal-more:hover,
#cdl-journal .journal-more:focus-visible {
  color: #85AF9A;
  border-bottom-color: currentColor;
}

#gallery-section .gallery-item {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: zoom-in;
}
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 11020;
  display: grid;
  place-items: center;
  padding: 48px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: rgba(133, 175, 154, .94);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s ease-out, visibility 0s linear .3s;
}
.gallery-lightbox.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .3s ease-out, visibility 0s linear 0s;
}
.gallery-lightbox__dialog {
  position: relative;
  width: min(1180px, 100%);
  min-width: 0;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border: 2px solid #EACD9B;
  background: #FFFBF8;
  transform: translateY(16px) scale(.985);
  transition: transform .3s ease-out;
}
.gallery-lightbox.active .gallery-lightbox__dialog {
  transform: translateY(0) scale(1);
}
.gallery-lightbox__figure {
  min-width: 0;
  margin: 0;
}
.gallery-lightbox__figure > img {
  width: 100%;
  height: auto;
  max-height: calc(100dvh - 132px);
  display: block;
  object-fit: contain;
}
.gallery-lightbox__figure figcaption {
  padding: 12px 4px 0;
  font: 12px/1.35 var(--oblique);
  color: var(--text-dark);
  text-align: center;
}
.gallery-lightbox__close {
  position: absolute;
  z-index: 2;
  top: -18px;
  right: -18px;
  width: 42px;
  height: 42px;
  padding: 10px;
  border: 0;
  background: #DDEBE5;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background-color .25s ease-out, transform .25s ease-out;
}
.gallery-lightbox__close:hover {
  background: #EACD9B;
  transform: rotate(90deg);
}
.gallery-lightbox__arrow {
  width: 48px;
  height: 48px;
  padding: 12px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #3F604F;
  cursor: pointer;
  transition: background-color .25s ease-out, transform .25s ease-out;
}
.gallery-lightbox__arrow:hover {
  background: #85AF9A;
  transform: scale(1.06);
}
.gallery-lightbox__arrow img,
.gallery-lightbox__close img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  pointer-events: none;
}
.gallery-lightbox__arrow:focus-visible,
.gallery-lightbox__close:focus-visible {
  outline: 2px solid #3F604F;
  outline-offset: 3px;
}
body.gallery-lightbox-open {
  overflow: hidden;
}

@media (max-width: 768px) {
  .single-room-page {
    padding-top: 95px;
  }
  .single-room-page #single-room-hero {
    margin-top: 64px;
  }
  .leria-sweets-popup__dialog {
    width: min(100%, 280px);
    padding: 10px;
  }
  .leria-sweets-popup__content {
    padding: 18px 14px 22px;
  }
  .gallery-lightbox {
    padding: 26px 16px;
  }
  .gallery-lightbox__dialog {
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    gap: 8px;
    padding: 10px;
  }
  .gallery-lightbox__arrow {
    width: 38px;
    height: 38px;
    padding: 9px;
  }
  .gallery-lightbox__close {
    top: -16px;
    right: -8px;
    width: 38px;
    height: 38px;
  }
  .gallery-lightbox__figure > img {
    max-height: calc(100dvh - 100px);
  }
}

@media (prefers-reduced-motion: reduce) {
  #timeline .timeline-image-media img,
  .gallery-lightbox,
  .gallery-lightbox__dialog,
  .gallery-lightbox__arrow,
  .gallery-lightbox__close {
    transition: none;
  }
}
