/* Turvira project overrides: keep compiled theme CSS untouched. */

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* Full-slide, buttonless banner links. */
.v14-home-hero .hero-slide-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  cursor: pointer;
}

.v14-home-hero .hero-slide-link:focus-visible {
  outline: 3px solid #27bfc0;
  outline-offset: -6px;
}

.v14-home-hero .v14-hero-layout {
  pointer-events: none;
}

.v14-home-hero .v14-hero-layout :is(a, button, input, select, textarea) {
  pointer-events: auto;
}

/* Hero arrows at the side centres, pagination at the bottom centre. */
.v14-home-hero .hero-controls {
  position: absolute !important;
  inset: 0 !important;
  left: 0 !important;
  bottom: 0 !important;
  z-index: 6 !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 clamp(18px, 2.5vw, 48px) !important;
  pointer-events: none;
  transform: none !important;
}

.v14-home-hero .hero-controls .slider-arrow {
  position: absolute !important;
  top: 50% !important;
  margin: 0 !important;
  pointer-events: auto;
  transform: translateY(-50%) !important;
}

.v14-home-hero .hero-controls .slider-arrow i,
.tour-hero-controls .slider-arrow i {
  font-size: 18px;
  line-height: 1;
}

.v14-home-hero .hero-controls .slider-prev {
  left: clamp(18px, 2.5vw, 48px) !important;
}

.v14-home-hero .hero-controls .slider-next {
  right: clamp(18px, 2.5vw, 48px) !important;
}

.v14-home-hero .hero-controls .slider-arrow:hover {
  transform: translateY(calc(-50% - 2px)) !important;
}

.v14-home-hero .hero-controls .slider-dots {
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  bottom: clamp(18px, 3vw, 38px) !important;
  margin: 0 !important;
  pointer-events: auto;
  transform: translateX(-50%) !important;
}

/* Uploaded desktop banners are 1911x823; display the complete artwork. */
@media (min-width: 761px) {
  .v14-home-hero,
  .v14-home-hero .hero-track,
  .v14-home-hero .hero-slide,
  .v14-home-hero .v14-hero-layout {
    height: min(calc(100vw * 823 / 1911), calc(100svh - 84px));
    min-height: 480px;
  }

  .v14-home-hero .hero-media {
    inset: 0;
    display: grid;
    place-items: center;
    background: #061b3d;
  }

  .v14-home-hero .hero-media img,
  .v14-home-hero .hero-slide.is-active .hero-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
  }
}

/* Tour detail hero slider. */
.tour-hero-slider {
  position: relative;
  overflow: hidden;
}

.tour-hero-slider .tour-hero-track {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .8s cubic-bezier(.2, .72, .2, 1);
  will-change: transform;
}

.tour-hero-slider .tour-hero-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  height: 100%;
}

.tour-hero-slider .tour-hero-slide {
  position: relative;
  overflow: hidden;
  background: #061b3d;
}

.tour-hero-slider .tour-hero-slide img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

.tour-hero-slider .tour-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(3, 21, 48, .88), rgba(3, 21, 48, .55) 52%, rgba(3, 21, 48, .16));
}

.tour-hero-slider .pro-hero-content,
.tour-hero-slider .hero-orbit {
  position: relative;
  z-index: 2;
}

.tour-hero-controls {
  position: absolute;
  right: clamp(20px, 4vw, 68px);
  bottom: 28px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 12px;
}

.tour-hero-controls .slider-arrow {
  position: static !important;
  margin: 0 !important;
  transform: none !important;
}

.tour-hero-controls .slider-arrow:hover {
  transform: translateY(-2px) !important;
}

.tour-hero-controls .slider-dots {
  position: static !important;
  margin: 0 !important;
  transform: none !important;
}

/* Compact newsletter inside the existing footer statement band. */
.footer-statement-actions {
  flex: none;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 12px;
}

.footer-newsletter-wrap {
  display: grid;
  gap: 7px;
}

.footer-newsletter-wrap > span {
  color: #647783;
  font-size: 11px;
  font-weight: 750;
}

.footer-newsletter {
  position: relative;
  display: grid;
  grid-template-columns: minmax(170px, 235px) auto;
  gap: 6px;
  padding: 5px;
  border: 1px solid #d3e2e4;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(6, 27, 61, .06);
}

.footer-newsletter input[type="email"] {
  min-width: 0;
  height: 42px;
  padding: 0 11px;
  border: 0;
  outline: 0;
  color: #061b3d;
  font: inherit;
  font-size: 13px;
}

.footer-newsletter button {
  height: 42px;
  padding: 0 15px;
  border: 0;
  border-radius: 8px;
  background: #061b3d;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.footer-newsletter button:hover,
.footer-newsletter button:focus-visible {
  background: #0a8588;
}

.footer-quote-link {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 22px;
  border-radius: 9px;
  background: #061b3d;
  color: #fff !important;
  font-weight: 820;
}

.newsletter-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

@media (max-width: 1180px) {
  .footer-statement {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-statement-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .footer-newsletter-wrap,
  .footer-newsletter {
    width: 100%;
  }

  .footer-newsletter {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .v14-home-hero .hero-controls .slider-arrow,
  .tour-hero-controls .slider-arrow {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }

  .tour-hero-controls {
    right: 18px;
    bottom: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tour-hero-slider .tour-hero-track {
    transition: none;
  }
}

/* Existing home slider: video and YouTube fill the same media frame. */
.v14-home-hero .hero-media {
  container-type: size;
  overflow: hidden;
}

.v14-home-hero .hero-media .hero-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.v14-home-hero .hero-media .hero-youtube {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%, 177.7778cqh);
  height: max(100%, 56.25cqw);
  border: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
