.fancybox-slide .fancybox-image {
  border-radius: 0.5rem; }

.booking-box {
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: minmax(0, 1fr); }

.psv-booking-form {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 2rem;
  border: solid 1px #f0ede9;
  background-color: #faf9f8;
  border-radius: 0.5rem; }
  .psv-booking-form .psv-form-field {
    display: grid;
    min-width: 6em; }
    .psv-booking-form .psv-form-field label {
      padding-left: 0.5em; }
    .psv-booking-form .psv-form-field select {
      padding-block: 0.7rem;
      padding-left: 0.5em;
      border-radius: 0.5rem; }
  .psv-booking-form button.button {
    border-radius: 0.5rem; }
    .psv-booking-form button.button:hover, .psv-booking-form button.button:focus {
      color: white; }

.unit-search-card .headline-box {
  text-align: left; }
.unit-search-card .unit-meta ul {
  display: grid;
  grid-gap: 2rem;
  font-size: 0.9em;
  grid-template-columns: repeat(4, max-content); }
  .unit-search-card .unit-meta ul li {
    margin-bottom: 0;
    display: grid;
    grid-template-columns: 2rem 1fr;
    align-items: centre;
    grid-gap: 1rem; }
  .unit-search-card .unit-meta ul .dna-icon {
    height: 2rem;
    width: 2rem; }
.unit-search-card footer {
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: 1fr max-content; }

.psv-booking-results {
  border-radius: 0.5rem;
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: repeat(1, minmax(0, 1fr)); }

.psv-booking-results.loading {
  position: relative;
  min-height: 3rem;
  padding-block: 2rem;
  border: solid 1px #f0ede9;
  background-color: #faf9f8; }

.psv-booking-results.loaded {
  border: none;
  background-color: transparent;
  opacity: 1;
  transition: opacity 0.4s ease; }
  @media only screen and (min-width: 501px) {
    .psv-booking-results.loaded {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media only screen and (min-width: 768px) {
    .psv-booking-results.loaded {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media only screen and (min-width: 1300px) {
    .psv-booking-results.loaded {
      grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.psv-booking-results.loaded .card {
  animation: cardFadeUp 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
  opacity: 0; }
  .psv-booking-results.loaded .card:nth-child(1) {
    animation-delay: 100ms; }
  .psv-booking-results.loaded .card:nth-child(2) {
    animation-delay: 150ms; }
  .psv-booking-results.loaded .card:nth-child(3) {
    animation-delay: 200ms; }
  .psv-booking-results.loaded .card:nth-child(4) {
    animation-delay: 250ms; }

.unit-panel {
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: 1fr;
  padding-inline: 2rem; }
  .unit-panel .headline-box {
    text-align: left;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    margin-bottom: 0; }
    .unit-panel .headline-box h2 {
      flex: 1 1 auto;
      min-width: 0;
      margin: 0; }
    .unit-panel .headline-box .back-button {
      border-radius: 0.5rem;
      flex-shrink: 0; }
  .unit-panel .unit-images {
    display: grid;
    grid-gap: 2rem;
    grid-template-columns: minmax(0, 1fr); }
    .unit-panel .unit-images .unit-ftr-image {
      width: 100%;
      display: block;
      border-radius: 0.5rem;
      aspect-ratio: 6/4;
      object-fit: cover; }
    .unit-panel .unit-images .unit-gallery-images {
      display: grid;
      grid-gap: 1rem;
      grid-template-columns: repeat(4, minmax(0, 1fr)); }
      .unit-panel .unit-images .unit-gallery-images img {
        display: block;
        aspect-ratio: 1/1;
        object-fit: cover;
        border-radius: 0.5rem;
        width: 100%;
        height: 100%; }
    .unit-panel .unit-images .gallery-thumb {
      position: relative; }
      .unit-panel .unit-images .gallery-thumb.has-more:after {
        content: '+';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        color: white;
        font-size: 4em;
        line-height: 1;
        pointer-events: none;
        text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); }
  .unit-panel .entry-content {
    max-width: 69ch; }
    .unit-panel .entry-content .intro {
      font-size: 1.2em;
      margin-bottom: 2em;
      border-left: dotted 0.5rem #cacfcc;
      padding-left: 1.5rem; }
  @media only screen and (min-width: 768px) {
    .unit-panel {
      grid-template-columns: minmax(0, 1fr) 30rem; }
      .unit-panel .headline-box,
      .unit-panel .unit-images {
        grid-column: span 2; }
      .unit-panel .unit-images {
        grid-template-columns: minmax(0, 1fr) 100px; }
        .unit-panel .unit-images .unit-ftr-image {
          height: 100%;
          aspect-ratio: unset; }
        .unit-panel .unit-images .unit-gallery-images {
          grid-template-columns: repeat(1, minmax(0, 1fr)); } }
  @media only screen and (min-width: 1024px) {
    .unit-panel {
      grid-template-columns: minmax(0, 1fr) 35rem; }
      .unit-panel .unit-images {
        grid-template-columns: minmax(0, 1fr) 35rem; }
        .unit-panel .unit-images .unit-gallery-images {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media only screen and (min-width: 1300px) {
    .unit-panel {
      grid-template-columns: minmax(0, 1fr) 40rem; }
      .unit-panel .unit-images {
        grid-template-columns: minmax(0, 1fr) 40rem; } }

.unit-sidebar {
  position: relative; }
  @media only screen and (min-width: 768px) {
    .unit-sidebar .booking-summary {
      position: sticky;
      top: 2rem; } }

.booking-summary {
  background-color: white;
  border-radius: 0.5rem;
  border: solid 1px #cacfcc; }
  .booking-summary .rate-row {
    font-size: 2em;
    padding: 2rem;
    border-bottom: solid 1px #cacfcc;
    text-align: center; }
  .booking-summary .summary-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: solid 1px #cacfcc; }
    .booking-summary .summary-meta .date-block {
      display: grid;
      text-align: center;
      padding: 2rem 1rem; }
      .booking-summary .summary-meta .date-block:first-of-type {
        border-right: solid 1px #cacfcc; }
    .booking-summary .summary-meta .guest-block {
      border-top: solid 1px #cacfcc;
      grid-column: span 2;
      padding: 2rem;
      text-align: center; }
  .booking-summary .reserve-wrap {
    padding: 2rem;
    text-align: center; }
    .booking-summary .reserve-wrap .cta {
      background-color: #8e034d;
      border: solid 1px #5c0232;
      color: white;
      display: block;
      border-radius: 0.5rem;
      width: 100%;
      padding: 0.66em;
      font-size: 1.5em;
      font-weight: bold; }
      .booking-summary .reserve-wrap .cta:hover, .booking-summary .reserve-wrap .cta:focus {
        background-color: #5c0232; }
  .booking-summary ul.price-breakdown {
    margin: 0;
    padding: 2rem;
    display: grid;
    grid-gap: 1rem;
    list-style: none;
    border-top: solid 1px #cacfcc; }
    .booking-summary ul.price-breakdown li {
      margin: 0;
      padding: 0;
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: space-between; }
      .booking-summary ul.price-breakdown li .label {
        color: #020401; }
      .booking-summary ul.price-breakdown li .value {
        color: #354c1f;
        font-weight: bold; }
  .booking-summary ul.summary-footer {
    padding: 0; }
    .booking-summary ul.summary-footer li {
      padding: 2rem; }
      .booking-summary ul.summary-footer li .label,
      .booking-summary ul.summary-footer li .value {
        color: #1b2610;
        font-size: 1.2em; }

.psv-booking-results.fading-out {
  opacity: 0;
  transition: opacity 0.3s ease; }

.psv-loading-message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  font-size: 2em;
  text-align: center;
  padding: 2rem 0; }

.psv-loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 5px solid #4e702e;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.8s linear infinite; }

@keyframes spin {
  to {
    transform: rotate(360deg); } }
@keyframes cardFadeUp {
  from {
    opacity: 0;
    transform: translateY(1rem); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.ttd-headline-box {
  margin-top: 4rem; }

.ttd-stream {
  padding-inline: 2rem;
  display: block !important;
  /* Let Slick take over */ }
  .ttd-stream .card {
    max-width: none;
    width: 100%;
    padding: 0 1rem; }
  .ttd-stream .slick-slide {
    display: flex;
    justify-content: center; }
  @media only screen and (min-width: 1024px) {
    .ttd-stream {
      padding-inline: 2rem; } }
  @media only screen and (min-width: 1300px) {
    .ttd-stream {
      padding-inline: 4rem; } }

/*# sourceMappingURL=booking.css.map */
