/* Pre-launch quality and accessibility layer. Scoped to the widget so the
   Elementor editor and the active WordPress theme remain unaffected. */
.ts-experience :focus-visible {
  outline: 3px solid var(--ts-rust);
  outline-offset: 3px;
}

.ts-skip-link {
  position: fixed;
  z-index: 100001;
  top: 10px;
  left: 10px;
  padding: 12px 16px;
  color: #fff !important;
  background: var(--ts-ink);
  transform: translateY(-160%);
  transition: transform 0.18s ease;
}

.ts-skip-link:focus { transform: none; }
.ts-header-actions { display: flex; align-items: center; justify-self: end; gap: 16px; }
.ts-menu-toggle { display: none; width: 44px; height: 44px; place-items: center; background: transparent; cursor: pointer; }
.ts-menu-toggle span { display: block; width: 22px; height: 1px; background: currentColor; transition: transform 0.25s ease; }
.ts-menu-toggle span + span { margin-top: 6px; }
.ts-menu-open .ts-menu-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
.ts-menu-open .ts-menu-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.ts-languages button { min-width: 32px; min-height: 44px; }
.ts-book-button:disabled { cursor: not-allowed; opacity: 0.58; }
.ts-pet-toggle[hidden] { display: none !important; }

.ts-property.is-unavailable .ts-property-visual::after {
  position: absolute;
  z-index: 3;
  right: 24px;
  bottom: 24px;
  padding: 9px 12px;
  border-radius: 99px;
  color: #fff;
  background: rgba(21, 26, 23, 0.84);
  content: "Booking paused";
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ts-policies { padding: 0 0 clamp(110px, 11vw, 175px); }
.ts-policy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 70px; background: var(--ts-line); }
.ts-policy-grid article { min-height: 310px; padding: clamp(28px, 4vw, 48px); background: var(--ts-white); }
.ts-policy-grid h3 { margin: 70px 0 14px; font: 400 27px Georgia, serif; letter-spacing: -0.035em; }
.ts-policy-grid p { margin: 0; color: var(--ts-soft); font-size: 13px; line-height: 1.75; }
.ts-arrival-times { margin: 10px 0 0; color: var(--ts-soft); font-size: 12px; line-height: 1.55; }
.ts-price-box > small { display: block; margin-top: 10px; color: var(--ts-soft); font-size: 12px; line-height: 1.5; }
.ts-policy a { border-bottom: 1px solid currentColor; color: var(--ts-ink); }

.ts-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

body.ts-booking-open,
body.ts-menu-open-global { overflow: hidden !important; }

.ts-lightbox .ts-lightbox-close,
.ts-lightbox .ts-lightbox-prev,
.ts-lightbox .ts-lightbox-next {
  position: absolute;
  z-index: 3;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  color: #fff;
  background: rgba(8, 12, 9, 0.55);
  cursor: pointer;
  font-size: 30px;
}

.ts-lightbox .ts-lightbox-close { top: 24px; right: 24px; left: auto; font-size: 24px; }
.ts-lightbox .ts-lightbox-prev { top: 50%; right: auto; left: 24px; transform: translateY(-50%); }
.ts-lightbox .ts-lightbox-next { top: 50%; right: 24px; left: auto; transform: translateY(-50%); }
.ts-lightbox-counter { position: absolute; right: 26px; bottom: 20px; padding: 7px 10px; border-radius: 99px; color: #fff; background: rgba(8, 12, 9, 0.6); font-size: 11px; letter-spacing: 0.1em; }
.ts-lightbox button[hidden] { display: none; }
.ts-booking-message:not(:empty),
.ts-availability-status:not(:empty) { padding: 10px 12px; background: rgba(159, 80, 52, 0.08); }
.ts-availability-status.available { background: rgba(31, 49, 40, 0.08); }

/* Premium motion system: quick hover feedback, standard interface changes and
   slower viewport reveals. Every rule remains scoped to the Elementor widget. */
.ts-experience {
  --ts-motion-fast: 0.2s;
  --ts-motion-standard: 0.34s;
  --ts-motion-reveal: 0.65s;
  --ts-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

.ts-experience .ts-hero-content > p,
.ts-experience .ts-hero h1,
.ts-experience .ts-hero-copy,
.ts-experience .ts-hero-actions,
.ts-experience .ts-hero-foot {
  animation: ts-hero-reveal var(--ts-motion-reveal) var(--ts-motion-ease) both;
}
.ts-experience .ts-hero h1 { animation-delay: 0.1s; }
.ts-experience .ts-hero-copy { animation-delay: 0.18s; }
.ts-experience .ts-hero-actions { animation-delay: 0.25s; }
.ts-experience .ts-hero-foot { animation-delay: 0.32s; }

@keyframes ts-hero-reveal {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}

.ts-experience [data-ts-reveal] {
  transition-duration: var(--ts-motion-reveal) !important;
  transition-timing-function: var(--ts-motion-ease) !important;
}

.ts-experience .ts-property-main,
.ts-experience .ts-property-second {
  transition: box-shadow var(--ts-motion-standard) var(--ts-motion-ease), transform var(--ts-motion-standard) var(--ts-motion-ease);
}

.ts-experience .ts-property-main img,
.ts-experience .ts-property-second img { transition-duration: 0.62s; }

.ts-experience .ts-book-button,
.ts-experience .ts-hero-actions a,
.ts-experience .ts-hero-actions button,
.ts-experience .ts-payment-button,
.ts-experience .ts-final button {
  transition: color var(--ts-motion-fast) ease, background var(--ts-motion-fast) ease, box-shadow var(--ts-motion-fast) ease, transform var(--ts-motion-fast) var(--ts-motion-ease);
}

.ts-experience .ts-book-button:hover,
.ts-experience .ts-hero-actions a:hover,
.ts-experience .ts-payment-button:hover { box-shadow: 0 14px 30px rgba(17, 23, 19, 0.2); transform: translateY(-3px); }
.ts-experience .ts-book-button:active,
.ts-experience .ts-hero-actions a:active,
.ts-experience .ts-payment-button:active { transform: scale(0.98); }

@media (hover: hover) and (pointer: fine) {
  .ts-experience .ts-property-main:hover,
  .ts-experience .ts-property-second:hover { box-shadow: 0 34px 78px rgba(17, 23, 19, 0.26); transform: translateY(-6px); }
  .ts-experience .ts-property-main:hover img,
  .ts-experience .ts-property-second:hover img { transform: scale(1.048); }
}

.ts-experience .ts-property-main:active,
.ts-experience .ts-property-second:active { transform: scale(0.985); }

.ts-experience .ts-price-box.ts-price-updated { animation: ts-price-refresh var(--ts-motion-standard) var(--ts-motion-ease) both; }
@keyframes ts-price-refresh {
  from { opacity: 0.45; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.ts-experience .ts-price-total strong { font-variant-numeric: tabular-nums; }
.ts-experience .ts-payment-button.is-loading::before,
.ts-experience .ts-availability-status.checking::before {
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-right: 8px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  content: "";
  vertical-align: -2px;
  animation: ts-spinner 0.72s linear infinite;
}
@keyframes ts-spinner { to { transform: rotate(360deg); } }

.ts-experience .ts-booking-message:not(:empty) { animation: ts-form-message 0.32s var(--ts-motion-ease) both; }
@keyframes ts-form-message {
  from { opacity: 0; transform: translateX(-5px); }
  to { opacity: 1; transform: none; }
}

.ts-experience .ts-booking-form input:user-invalid,
.ts-experience .ts-booking-form select:user-invalid { box-shadow: 0 2px 0 var(--ts-rust); }

.ts-experience .ts-lightbox img.ts-photo-changing { animation: ts-photo-change 0.4s var(--ts-motion-ease) both; }
@keyframes ts-photo-change {
  from { opacity: 0.35; transform: scale(1.015); }
  to { opacity: 1; transform: none; }
}

.ts-experience .ts-lightbox-prev,
.ts-experience .ts-lightbox-next { transition: color var(--ts-motion-fast) ease, background var(--ts-motion-fast) ease, transform var(--ts-motion-fast) var(--ts-motion-ease); }
.ts-experience .ts-lightbox-prev:hover { background: var(--ts-rust); transform: translateY(-50%) scale(1.06); }
.ts-experience .ts-lightbox-next:hover { background: var(--ts-rust); transform: translateY(-50%) scale(1.06); }

.ts-experience .ts-faq details { overflow: hidden; }
.ts-experience .ts-faq details > p {
  display: block !important;
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s var(--ts-motion-ease), margin 0.4s var(--ts-motion-ease), opacity 0.28s ease;
}
.ts-experience .ts-faq details[open] > p { max-height: 500px; margin-top: -5px; margin-bottom: 28px; opacity: 1; }

.ts-experience .ts-hero-facts {
  max-width: 760px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.9);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .075em;
  line-height: 1.6;
  text-transform: uppercase;
}

.ts-experience .ts-stay-finder { padding-bottom: 48px; }
.ts-experience .ts-stay-finder-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.ts-experience .ts-stay-finder-head h3 { margin: 0; font: 400 clamp(25px,3vw,38px) Georgia,"Times New Roman",serif; letter-spacing: -.04em; }
.ts-experience .ts-stay-finder-head p { margin: 7px 0 0; color: var(--ts-soft); font-size: 10px; }
.ts-experience .ts-stay-finder-head > span { color: var(--ts-soft); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.ts-experience .ts-filter-row { display: flex; align-items: center; gap: 8px; padding: 10px; overflow-x: auto; border: 1px solid var(--ts-line); border-radius: 999px; background: rgba(255,253,248,.72); }
.ts-experience .ts-filter-row > button { min-height: 42px; flex: 0 0 auto; padding: 0 17px; border: 0; border-radius: 999px; color: var(--ts-soft); background: transparent; cursor: pointer; font-size: 9px; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; transition: color var(--ts-motion-fast) ease, background var(--ts-motion-fast) ease, transform var(--ts-motion-fast) var(--ts-motion-ease); }
.ts-experience .ts-filter-row > button:hover { color: var(--ts-ink); background: #e7e1d6; }
.ts-experience .ts-filter-row > button:active { transform: scale(.97); }
.ts-experience .ts-filter-row > button.active { color: #fff; background: var(--ts-forest); }
.ts-experience .ts-filter-row > label { display: flex; min-height: 42px; align-items: center; gap: 9px; flex: 0 0 auto; margin-left: auto; padding: 0 13px 0 17px; border-left: 1px solid var(--ts-line); }
.ts-experience .ts-filter-row > label span { color: var(--ts-soft); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ts-experience .ts-filter-row select { min-width: 105px; border: 0; background: transparent; font-size: 11px; }
.ts-experience .ts-property[hidden] { display: none !important; }

/* Editable amenities and unlimited-gallery affordance. */
.ts-experience .ts-gallery-count { position: absolute; right: 16px; bottom: 16px; padding: 8px 11px; border-radius: 999px; color: #fff; background: rgba(13,18,15,.62); backdrop-filter: blur(10px); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ts-experience .ts-amenities-label { margin: 22px 0 0; color: var(--ts-rust); font-size: 8px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.ts-experience .ts-feature-list { margin-top: 8px; padding-top: 13px; }
.ts-experience .ts-feature-list li { display: flex; align-items: center; gap: 8px; min-height: 25px; }
.ts-experience .ts-feature-list li i { display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; border-radius: 50%; color: var(--ts-forest); background: #e1e8e3; font-size: 8px; font-style: normal; }
.ts-experience .ts-weekly-offer { width: max-content; margin: 8px 0 0; padding: 6px 9px; border-radius: 999px; color: var(--ts-forest); background: #dfe9e2; font-size: 8px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }

/* Custom guest calendar. Native browser date pickers are replaced with one
   consistent, keyboard-accessible calendar that can show price and status. */
.ts-experience .ts-date-choice { display: grid; gap: 7px; padding: 14px 0; border-bottom: 1px solid var(--ts-line); }
.ts-experience .ts-date-choice > span { color: var(--ts-soft); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ts-experience .ts-date-choice > button { display: flex; min-height: 36px; align-items: center; justify-content: space-between; padding: 4px 0; background: transparent; cursor: pointer; text-align: left; }
.ts-experience .ts-date-choice > button strong { font: 400 16px Georgia,serif; }
.ts-experience .ts-date-choice > button i { font-size: 11px; font-style: normal; transition: transform .25s ease; }
.ts-experience .ts-date-choice > button[aria-expanded="true"] i { transform: rotate(180deg); }
.ts-experience .ts-guest-calendar { margin: 8px 0 15px; padding: 16px; border: 1px solid var(--ts-line); background: var(--ts-white); box-shadow: 0 20px 50px rgba(21,26,23,.12); }
.ts-experience .ts-guest-calendar[hidden] { display: none; }
.ts-experience .ts-guest-calendar-head { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 8px; }
.ts-experience .ts-guest-calendar-head > strong { text-align: center; font: 400 18px Georgia,serif; }
.ts-experience .ts-guest-calendar-head button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--ts-line); border-radius: 50%; background: transparent; cursor: pointer; }
.ts-experience .ts-guest-calendar-week,
.ts-experience .ts-guest-calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.ts-experience .ts-guest-calendar-week { margin-top: 13px; }
.ts-experience .ts-guest-calendar-week span { padding: 4px 0; color: var(--ts-soft); font-size: 8px; font-weight: 700; text-align: center; }
.ts-experience .ts-guest-calendar-days button { position: relative; display: grid; min-width: 0; min-height: 54px; align-content: center; padding: 4px 1px; border: 1px solid transparent; border-radius: 8px; background: transparent; cursor: pointer; text-align: center; transition: transform .18s ease, background .22s ease, border-color .22s ease; }
.ts-experience .ts-guest-calendar-days button:hover:not(:disabled) { border-color: var(--ts-line); background: #eeeae1; transform: translateY(-1px); }
.ts-experience .ts-guest-calendar-days button b { font-size: 10px; }
.ts-experience .ts-guest-calendar-days button small { display: block; margin-top: 3px; color: var(--ts-soft); font-size: 7px; }
.ts-experience .ts-guest-calendar-days button.is-outside { opacity: .28; }
.ts-experience .ts-guest-calendar-days button.is-unavailable,
.ts-experience .ts-guest-calendar-days button:disabled { color: #9d9b96; cursor: not-allowed; opacity: .45; text-decoration: line-through; }
.ts-experience .ts-guest-calendar-days button.is-range { background: #e1e9e3; border-radius: 0; }
.ts-experience .ts-guest-calendar-days button.is-selected { color: #fff; background: var(--ts-forest); border-color: var(--ts-forest); }
.ts-experience .ts-guest-calendar-days button.is-selected small { color: rgba(255,255,255,.75); }
.ts-experience .ts-guest-calendar > p { min-height: 16px; margin: 10px 0 0; color: var(--ts-soft); font-size: 9px; line-height: 1.5; }
.ts-experience .ts-price-lines .ts-discount-line { color: var(--ts-forest); }
.ts-experience.ts-hide-benefits .ts-benefits,
.ts-experience.ts-hide-finder .ts-stay-finder,
.ts-experience.ts-hide-host .ts-host,
.ts-experience.ts-hide-voices .ts-voices,
.ts-experience.ts-hide-faq .ts-faq,
.ts-experience.ts-hide-policies .ts-policies { display: none !important; }

@media (max-width: 950px) {
  .ts-menu-toggle { display: grid; }
  .ts-header { z-index: 9995; }
  .ts-header nav {
    position: fixed;
    z-index: -1;
    inset: 0;
    display: flex !important;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    padding: 110px 28px 45px;
    color: #fff;
    background: var(--ts-forest);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-16px);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .ts-header nav a,
  .ts-header nav button { min-height: 48px; padding: 4px 0; color: inherit; background: transparent; font: 400 clamp(42px, 10vw, 68px)/1 Georgia, serif; letter-spacing: -0.05em; text-transform: none; opacity: 0; transform: translateY(12px); transition: opacity 0.3s ease, transform 0.45s var(--ts-motion-ease); }
  .ts-menu-open .ts-header nav { z-index: 20; visibility: visible; opacity: 1; pointer-events: auto; transform: none; }
  .ts-menu-open .ts-header nav a,
  .ts-menu-open .ts-header nav button { opacity: 1; transform: none; }
  .ts-menu-open .ts-header nav a:nth-child(1) { transition-delay: 0.08s; }
  .ts-menu-open .ts-header nav a:nth-child(2) { transition-delay: 0.13s; }
  .ts-menu-open .ts-header nav button { transition-delay: 0.18s; }
  .ts-menu-open .ts-header > .ts-brand,
  .ts-menu-open .ts-header-actions { position: relative; z-index: 21; }
  .ts-policy-grid { grid-template-columns: 1fr; }
  .ts-policy-grid article { min-height: 250px; }
  .ts-policy-grid h3 { margin-top: 35px; }
}

@media (max-width: 680px) {
  .ts-experience .ts-hero-facts { margin-top: 12px; font-size: 8px; line-height: 1.55; }
  .ts-experience .ts-stay-finder { padding-bottom: 34px; }
  .ts-experience .ts-stay-finder-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .ts-experience .ts-filter-row { border-radius: 18px; }
  .ts-experience .ts-filter-row > label { margin-left: 2px; }
  .ts-property.is-unavailable .ts-property-visual::after { right: 16px; bottom: 16px; }
  .ts-date-grid { grid-template-columns: 1fr; }
  .ts-booking-form input,
  .ts-booking-form select { min-height: 44px; font-size: 16px; }
  .ts-booking-drawer { height: 100dvh; padding-bottom: max(36px, env(safe-area-inset-bottom)); overscroll-behavior: contain; }
  .ts-mobile-book { bottom: max(12px, env(safe-area-inset-bottom)); }
  .ts-lightbox { padding: 10px; }
  .ts-lightbox img { width: 94vw; height: 82vh; }
  .ts-lightbox .ts-lightbox-prev { left: 10px; }
  .ts-lightbox .ts-lightbox-next { right: 10px; }
  .ts-lightbox .ts-lightbox-close { top: 14px; right: 14px; }
  .ts-lightbox-counter { right: 16px; bottom: 14px; }
  .ts-experience .ts-guest-calendar { padding: 12px 8px; }
  .ts-experience .ts-guest-calendar-days button { min-height: 48px; }
  .ts-experience .ts-gallery-count { right: 9px; bottom: 9px; }
}

/* 4.1 readability pass. Editorial microtype remains refined, but essential
   copy, facts and controls now meet a comfortable phone and laptop size. */
.ts-experience { font-size: 18px; line-height: 1.65; }
.ts-experience .ts-kicker,
.ts-experience .ts-place,
.ts-experience .ts-amenities-label,
.ts-experience .ts-hero-content > p,
.ts-experience .ts-hero-facts,
.ts-experience .ts-hero-foot { font-size: 12px; line-height: 1.5; }
.ts-experience .ts-header nav a,
.ts-experience .ts-header nav button,
.ts-experience .ts-languages button { font-size: 11px; }
.ts-experience .ts-manifesto > div > p,
.ts-experience .ts-collection-intro > p,
.ts-experience .ts-host-copy > p:not(.ts-kicker) { font-size: 17px; line-height: 1.8; }
.ts-experience .ts-benefit-grid p,
.ts-experience .ts-voice-grid p,
.ts-experience .ts-faq details > p,
.ts-experience .ts-policy-grid p { font-size: 15px; line-height: 1.75; }
.ts-experience .ts-meta { font-size: 13px; }
.ts-experience .ts-summary { font-size: 17px; line-height: 1.75; }
.ts-experience .ts-story { font-size: 15px; line-height: 1.75; }
.ts-experience .ts-feature-list li,
.ts-experience .ts-pet-line,
.ts-experience .ts-live-price-note,
.ts-experience .ts-rating,
.ts-experience .ts-note { font-size: 14px; line-height: 1.6; }
.ts-experience .ts-live-price-note { margin: 20px 0 0; color: var(--ts-soft); font-style: italic; }
.ts-experience .ts-book-button,
.ts-experience .ts-payment-button {
  min-height: 54px;
  padding: 16px 24px;
  color: #fff !important;
  background: var(--ts-ink) !important;
  -webkit-text-fill-color: #fff;
  font-size: 13px;
  line-height: 1.25;
}
.ts-experience .ts-book-button *,
.ts-experience .ts-payment-button * { color: inherit !important; -webkit-text-fill-color: inherit; }
.ts-experience .ts-booking-drawer > p:not(.ts-kicker),
.ts-experience .ts-arrival-times,
.ts-experience .ts-price-box > small { font-size: 14px; }
.ts-experience .ts-booking-form label > span,
.ts-experience .ts-booking-form legend,
.ts-experience .ts-price-box > span { font-size: 11px; }
.ts-experience .ts-price-lines div,
.ts-experience .ts-price-total { font-size: 14px; }
.ts-experience .ts-property-copy h3 a { text-decoration: none; }
.ts-experience .ts-property-copy h3 a:hover { color: var(--ts-rust); }
.ts-experience .ts-home-intro { padding-top: clamp(88px,9vw,140px); }
.ts-experience .ts-home-intro > div { min-width: 0; }
.ts-experience .ts-home-intro h2 { max-width: 930px; }

@media (max-width: 680px) {
  .ts-experience { font-size: 17px; }
  .ts-experience .ts-hero-copy p { font-size: 17px; line-height: 1.65; }
  .ts-experience .ts-property-copy { padding-right: 24px; padding-left: 24px; }
  .ts-experience .ts-summary { font-size: 17px; }
  .ts-experience .ts-story,
  .ts-experience .ts-benefit-grid p,
  .ts-experience .ts-voice-grid p,
  .ts-experience .ts-faq details > p,
  .ts-experience .ts-policy-grid p { font-size: 16px; }
  .ts-experience .ts-feature-list li,
  .ts-experience .ts-pet-line,
  .ts-experience .ts-live-price-note,
  .ts-experience .ts-rating,
  .ts-experience .ts-note { font-size: 15px; }
  .ts-experience .ts-mobile-book span { font-size: 12px; }
  .ts-experience .ts-mobile-book strong { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .ts-price-box.is-calculating::after { animation: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ts-experience *,
  .ts-experience *::before,
  .ts-experience *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Professional Suite 4.0 */
.ts-experience .ts-de,
.ts-experience .ts-fr { display: none; }
.ts-experience.ts-lang-de .ts-en,
.ts-experience.ts-lang-de .ts-it,
.ts-experience.ts-lang-de .ts-fr,
.ts-experience.ts-lang-fr .ts-en,
.ts-experience.ts-lang-fr .ts-it,
.ts-experience.ts-lang-fr .ts-de { display: none !important; }
.ts-experience.ts-lang-de .ts-de,
.ts-experience.ts-lang-fr .ts-fr { display: initial; }
.ts-experience.ts-lang-de p.ts-de,
.ts-experience.ts-lang-de div.ts-de,
.ts-experience.ts-lang-de ul.ts-de,
.ts-experience.ts-lang-fr p.ts-fr,
.ts-experience.ts-lang-fr div.ts-fr,
.ts-experience.ts-lang-fr ul.ts-fr { display: block; }

.ts-global-search { display: grid; grid-template-columns: 1fr 1fr .65fr auto auto auto; align-items: end; gap: 10px; margin: 22px 0 16px; padding: 14px; border: 1px solid var(--ts-line); border-radius: 18px; background: rgba(255,255,255,.55); }
.ts-global-search label { display: grid; gap: 6px; }
.ts-global-search label > span { color: var(--ts-soft); font-size: 8px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ts-global-search input,
.ts-global-search select { min-height: 46px; padding: 8px 10px; border: 1px solid var(--ts-line); border-radius: 8px; background: #fff; }
.ts-global-search button { min-height: 46px; padding: 0 18px; border-radius: 999px; color: #fff; background: var(--ts-forest); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.ts-global-search button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(17,31,23,.16); }
.ts-global-search button.secondary { color: var(--ts-ink); background: transparent; box-shadow: inset 0 0 0 1px var(--ts-line); }
.ts-global-search .ts-search-pet { display: flex; align-items: center; align-self: center; gap: 7px; padding-top: 18px; }
.ts-global-search .ts-search-pet input { min-height: auto; }
.ts-global-search > p { grid-column: 1/-1; min-height: 16px; margin: 0; color: var(--ts-soft); }
.ts-global-search.is-loading button[type="submit"] { cursor: wait; opacity: .68; }
.ts-property.is-search-match { box-shadow: inset 4px 0 0 var(--ts-rust); }
.ts-property.is-search-unavailable { opacity: .88; }

.ts-video-tour-link { display: inline-flex; width: max-content; align-items: center; margin-top: 20px; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.ts-video-tour-link:hover { color: var(--ts-rust); }
.ts-properties > .ts-manifesto,
.ts-properties > .ts-benefits { box-sizing: border-box; border-bottom: 1px solid var(--ts-line); background: var(--ts-paper); }

.ts-booking-extras { margin: 14px 0; padding: 15px; border: 1px solid var(--ts-line); border-radius: 12px; }
.ts-booking-extras > span { display: block; margin-bottom: 9px; font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.ts-booking-extras [data-ts-extra-options] { display: grid; gap: 8px; }
.ts-booking-extras label { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.ts-booking-extras input { flex: none; min-height: auto; margin-top: 2px; }
.ts-promo-field { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; margin: 12px 0; }
.ts-promo-field button { min-height: 45px; padding: 0 16px; border-radius: 9px; color: #fff; background: var(--ts-forest); cursor: pointer; }
.ts-weather-card { margin: 12px 0; padding: 12px 14px; border-left: 3px solid var(--ts-rust); color: var(--ts-soft); background: #efe9dd; font-size: 10px; line-height: 1.6; }
.ts-price-box.is-calculating { position: relative; cursor: wait; opacity: .76; }
.ts-price-box.is-calculating::after { position: absolute; inset: 0; content: ""; border-radius: inherit; background: linear-gradient(100deg,transparent 20%,rgba(255,255,255,.38) 45%,transparent 70%); background-size: 200% 100%; animation: ts-suite-loading 1.1s linear infinite; pointer-events: none; }
.ts-deposit-note { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ts-line); line-height: 1.55; }
.ts-waitlist-button { width: 100%; min-height: 48px; margin-bottom: 9px; border: 1px solid var(--ts-forest) !important; border-radius: 999px; color: var(--ts-forest); background: transparent; cursor: pointer; }
@keyframes ts-suite-loading { to { background-position: -200% 0; } }

.ts-system-page.ts-portal { width: min(1100px,calc(100% - 32px)); }
.ts-portal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 24px 0; }
.ts-portal-grid section,
.ts-portal-form { padding: 22px; border: 1px solid #d8d4cb; border-radius: 14px; background: #fff; }
.ts-portal-grid h2,
.ts-portal-form h2 { font: 400 25px Georgia,serif; }
.ts-portal-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 20px 0; }
.ts-portal-form form,
.ts-gift-form { display: grid; gap: 12px; }
.ts-portal-form label,
.ts-gift-form label { display: grid; gap: 6px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ts-portal-form input,.ts-portal-form textarea,.ts-portal-form select,
.ts-gift-form input,.ts-gift-form textarea { box-sizing: border-box; width: 100%; min-height: 46px; padding: 10px; border: 1px solid #cfcac0; border-radius: 7px; font: 400 16px/1.4 Arial,sans-serif; text-transform: none; }
.ts-portal-form textarea,.ts-gift-form textarea { min-height: 100px; }

@media (max-width: 950px) {
  .ts-global-search { grid-template-columns: 1fr 1fr 1fr; }
  .ts-global-search button { width: 100%; }
  .ts-languages { gap: 3px !important; }
  .ts-languages button { padding: 4px !important; }
}
@media (max-width: 680px) {
  .ts-global-search { grid-template-columns: 1fr 1fr; padding: 12px; }
  .ts-global-search label:first-child,.ts-global-search label:nth-child(2) { grid-column: auto; }
  .ts-global-search button[type="submit"] { grid-column: 1/-1; }
  .ts-portal-grid { grid-template-columns: 1fr; }
  .ts-promo-field { grid-template-columns: 1fr; }
}

/* This final block intentionally comes after every Professional Suite rule so
   later transition shorthands cannot override the visitor's motion setting. */
@media (prefers-reduced-motion: reduce) {
  .ts-experience,
  .ts-experience *,
  .ts-experience *::before,
  .ts-experience *::after,
  .ts-system-page,
  .ts-system-page *,
  .ts-system-page *::before,
  .ts-system-page *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* Final cascade guard for suite controls and the primary booking action. */
.ts-experience .ts-global-search label > span,
.ts-experience .ts-filter-row,
.ts-experience .ts-booking-extras > span,
.ts-experience .ts-weather-card { font-size: 12px; line-height: 1.5; }
.ts-experience .ts-global-search input,
.ts-experience .ts-global-search select,
.ts-experience .ts-global-search button,
.ts-experience .ts-promo-field input,
.ts-experience .ts-promo-field button { font-size: 15px; }
.ts-experience .ts-book-button,
.ts-experience .ts-payment-button {
  color: #fff !important;
  background-color: #151a17 !important;
  -webkit-text-fill-color: #fff !important;
}
.ts-experience .ts-book-button > *,
.ts-experience .ts-payment-button > * { color: #fff !important; -webkit-text-fill-color: #fff !important; }

/* Conversion-focused card actions and contact controls. */
.ts-experience .ts-property-main { display: block; }
.ts-experience .ts-property-main:focus-visible,
.ts-experience .ts-property-second:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.ts-experience .ts-property-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 26px; }
.ts-experience .ts-property-actions .ts-book-button { margin: 0; min-height: 48px; }
.ts-experience .ts-property-details,
.ts-experience .ts-property-contact,
.ts-experience .ts-booking-contact,
.ts-experience .ts-host-contact a { display: inline-flex; min-height: 44px; align-items: center; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; transition: color .2s ease, transform .2s ease; }
.ts-experience .ts-property-contact,
.ts-experience .ts-booking-contact { color: var(--ts-rust); }
.ts-experience .ts-property-details:hover,
.ts-experience .ts-property-contact:hover,
.ts-experience .ts-booking-contact:hover,
.ts-experience .ts-host-contact a:hover { transform: translateY(-2px); }
.ts-experience .ts-host-contact { display: grid; justify-items: start; gap: 7px; margin-top: 30px; }
.ts-experience .ts-host-contact a { color: #fff; }
.ts-experience .ts-host-contact small { max-width: 540px; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.6; }
.ts-experience .ts-booking-contact { width: max-content; max-width: 100%; margin: 8px 0 4px; }
.ts-experience .ts-promo-disclosure { margin: 18px 0 0; padding: 0; border-bottom: 1px solid var(--ts-line); }
.ts-experience .ts-promo-disclosure > summary { min-height: 44px; cursor: pointer; color: var(--ts-soft); font-size: 13px; font-weight: 700; }
.ts-experience .ts-final > div { display: flex; align-items: center; flex-direction: column; gap: 24px; }
.ts-experience .ts-final > div > a { display: inline-flex; min-height: 48px; align-items: center; padding: 0 24px; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; color: #fff; font-size: 13px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.ts-experience .ts-mobile-actions { display: none; }

@media (hover:hover) {
  .ts-experience .ts-property { transition: box-shadow .3s ease, transform .3s ease; }
  .ts-experience .ts-property:hover { box-shadow: 0 28px 70px rgba(21,26,23,.08); }
}

@media (max-width: 680px) {
  .ts-experience .ts-property-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .ts-experience .ts-property-actions .ts-book-button { width: 100%; grid-column: 1/-1; }
  .ts-experience .ts-property-details,
  .ts-experience .ts-property-contact { justify-content: center; }
  .ts-experience .ts-property-main:active,
  .ts-experience .ts-property-second:active { transform: scale(.985); }
  .ts-experience .ts-mobile-actions { position: fixed; z-index: 9990; right: 12px; bottom: max(12px,env(safe-area-inset-bottom)); left: 12px; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,.75fr); gap: 1px; overflow: hidden; border-radius: 14px; color: #fff; background: rgba(21,26,23,.96); box-shadow: 0 16px 45px rgba(0,0,0,.25); backdrop-filter: blur(14px); }
  .ts-experience .ts-mobile-actions .ts-mobile-book { position: static; display: flex; min-width: 0; min-height: 64px; align-items: center; justify-content: space-between; padding: 11px 14px; border-radius: 0; box-shadow: none; background: transparent; }
  .ts-experience .ts-mobile-actions > a { display: grid; min-height: 64px; place-items: center; padding: 8px 10px; border-left: 1px solid rgba(255,255,255,.18); color: #fff; font-size: 11px; font-weight: 750; text-align: center; text-transform: uppercase; }
  .ts-experience .ts-booking-backdrop.is-open ~ .ts-mobile-actions { display: none; }
  .ts-experience .ts-final button { font-size: clamp(48px,15vw,72px); }
}

/* Branded standalone pages and complete property listings. */
body.ts-branded-page { margin: 0; color: #151a17; background: #f4f1ea; font: 17px/1.7 "Helvetica Neue", Arial, sans-serif; }
.ts-marketing-page { width: min(1320px,calc(100% - 48px)); margin: 0 auto; padding: clamp(80px,10vw,150px) 0; }
.ts-marketing-page > header { max-width: 980px; margin-bottom: 75px; }
.ts-marketing-page > header > p,.ts-marketing-property-grid > article > p { color: #9f5034; font-size: 12px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.ts-marketing-page > header h1 { margin: 18px 0 25px; font: 400 clamp(62px,9vw,125px)/.88 Georgia,serif; letter-spacing: -.07em; }
.ts-marketing-page > header > span { display: block; max-width: 720px; color: #596159; font-size: 19px; line-height: 1.75; }
.ts-marketing-page a.primary { display: inline-flex; min-height: 50px; align-items: center; margin-top: 24px; padding: 0 22px; border-radius: 999px; color: #fff; background: #151a17; font-size: 12px; font-weight: 750; text-decoration: none; text-transform: uppercase; }
.ts-marketing-property-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 70px 30px; }
.ts-marketing-property-grid article img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .5s ease; }
.ts-marketing-property-grid article > a { display: block; overflow: hidden; }
.ts-marketing-property-grid article > a:hover img { transform: scale(1.025); }
.ts-marketing-property-grid h2 { margin: 7px 0 14px; font: 400 clamp(38px,4vw,60px)/.95 Georgia,serif; letter-spacing: -.05em; }
.ts-marketing-property-grid article > span { color: #596159; }
.ts-marketing-property-grid article > div { display: flex; align-items: center; gap: 20px; margin-top: 18px; }
.ts-marketing-property-grid article > div a:not(.primary) { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.ts-marketing-faq { border-top: 1px solid rgba(21,26,23,.18); }
.ts-marketing-faq details { border-bottom: 1px solid rgba(21,26,23,.18); }
.ts-marketing-faq summary { padding: 28px 0; cursor: pointer; font: 400 clamp(25px,3vw,38px) Georgia,serif; }
.ts-marketing-faq p { max-width: 850px; color: #596159; }
.ts-marketing-book-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: rgba(21,26,23,.16); }
.ts-marketing-book-grid a { display: grid; gap: 10px; min-height: 220px; align-content: center; padding: 35px; background: #fffdf8; text-decoration: none; transition: color .3s ease,background .3s ease; }
.ts-marketing-book-grid a:hover { color: #fff; background: #1f3128; }
.ts-marketing-book-grid span,.ts-marketing-book-grid i { font-size: 12px; font-style: normal; text-transform: uppercase; }
.ts-marketing-book-grid strong { font: 400 38px Georgia,serif; }
@media(max-width:680px){.ts-marketing-page{width:calc(100% - 32px);padding:70px 0}.ts-marketing-page>header{margin-bottom:50px}.ts-marketing-page>header>span{font-size:17px}.ts-marketing-property-grid,.ts-marketing-book-grid{grid-template-columns:1fr}.ts-marketing-property-grid{gap:55px}.ts-marketing-property-grid article>div{align-items:flex-start;flex-direction:column;gap:8px}.ts-marketing-book-grid a{min-height:180px;padding:25px}}
body.ts-branded-page #wpadminbar { position: fixed; }
.ts-standalone-skip { position: fixed; z-index: 100000; top: 8px; left: 8px; padding: 10px 14px; color: #fff; background: #151a17; transform: translateY(-150%); }
.ts-standalone-skip:focus { transform: none; }
.ts-standalone-header { position: relative; z-index: 100; display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 24px; padding: 0 clamp(20px,4vw,64px); border-bottom: 1px solid rgba(21,26,23,.14); background: rgba(244,241,234,.96); }
.ts-standalone-brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; font: 22px Georgia,serif; }
.ts-standalone-brand i { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid; border-radius: 50%; font-size: 12px; }
.ts-standalone-header nav { display: flex; align-items: center; gap: clamp(16px,3vw,38px); }
.ts-standalone-header nav a { color: inherit; text-decoration: none; font-size: 13px; font-weight: 700; }
.ts-standalone-header .ts-standalone-book { padding: 12px 18px; border-radius: 999px; color: #fff; background: #151a17; }
.ts-standalone-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 80px clamp(20px,4vw,64px) 28px; color: #fff; background: #151a17; }
.ts-standalone-footer > a { color: inherit; text-decoration: none; font: 30px Georgia,serif; }
.ts-standalone-footer p { justify-self: end; margin: 0; }
.ts-standalone-footer small { grid-column: 1/-1; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.68); }
.ts-listing { overflow: visible; color: #151a17; background: #f4f1ea; font-size: 17px; line-height: 1.72; }
.ts-listing a { color: inherit; }
.ts-listing-breadcrumb { display: flex; gap: 10px; width: min(1480px,calc(100% - 48px)); margin: 0 auto; padding: 24px 0; color: #626961; font-size: 13px; }
.ts-listing-hero { display: grid; min-height: 680px; grid-template-columns: .82fr 1.18fr; background: #e9e2d6; }
.ts-listing-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(50px,7vw,110px); }
.ts-listing-hero-copy > p,.ts-listing-kicker { margin: 0; color: #9f5034; font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ts-listing-hero h1 { margin: 18px 0; font: 400 clamp(62px,7vw,112px)/.88 Georgia,serif; letter-spacing: -.065em; }
.ts-listing-hero em { color: #5d655f; font: italic clamp(23px,2.5vw,36px)/1.25 Georgia,serif; }
.ts-listing-facts { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 30px; color: #59615b; font-size: 15px; }
.ts-listing-facts span + span::before { margin-right: 18px; color: #9f5034; content: "·"; }
.ts-listing-actions,.ts-listing-final > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.ts-listing-actions a,.ts-listing-actions button,.ts-listing-final a,.ts-listing-final button,.ts-listing-booking > a,.ts-listing-host > a { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid #151a17; border-radius: 999px; color: inherit; background: transparent; cursor: pointer; text-decoration: none; font-size: 14px; font-weight: 750; transition: transform .2s ease,background .2s ease,color .2s ease; }
.ts-listing-actions a.primary,.ts-listing-actions button.primary,.ts-listing-final a.primary,.ts-listing-final button.primary,.ts-listing-booking > a.primary { color: #fff; background: #151a17; }
.ts-listing-actions a:hover,.ts-listing-actions button:hover,.ts-listing-final a:hover,.ts-listing-final button:hover { transform: translateY(-2px); }
.ts-listing-rating { margin: 18px 0 0; color: #9f5034; font-size: 14px; font-weight: 700; }
.ts-listing-main-image { position: relative; min-height: 680px; padding: 0; overflow: hidden; border: 0; background: #ddd; cursor: zoom-in; }
.ts-listing-main-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.ts-listing-main-image:hover img { transform: scale(1.025); }
.ts-listing-main-image span { position: absolute; right: 22px; bottom: 22px; padding: 10px 14px; border-radius: 999px; color: #fff; background: rgba(15,20,17,.78); font-size: 13px; }
.ts-listing-gallery { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; padding: 8px; }
.ts-listing-gallery button { aspect-ratio: 4/3; padding: 0; overflow: hidden; border: 0; background: #ddd; cursor: zoom-in; }
.ts-listing-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ts-listing-gallery button:hover img { transform: scale(1.035); }
.ts-listing-layout { display: grid; width: min(1320px,calc(100% - 48px)); grid-template-columns: minmax(0,1fr) 390px; gap: clamp(50px,7vw,100px); margin: 0 auto; padding: 100px 0; }
.ts-listing-content > section { padding: 0 0 78px; border-bottom: 1px solid rgba(21,26,23,.14); }
.ts-listing-content > section + section { padding-top: 78px; }
.ts-listing-content h2,.ts-listing-related h2,.ts-listing-final h2 { max-width: 820px; margin: 18px 0 28px; font: 400 clamp(42px,5vw,74px)/.98 Georgia,serif; letter-spacing: -.055em; }
.ts-listing-content h3 { font: 400 28px Georgia,serif; }
.ts-listing-lead { font-size: 22px; line-height: 1.65; }
.ts-listing-content p,.ts-listing-content li { font-size: 17px; line-height: 1.72; }
.ts-listing-content section > div:not(.ts-listing-info-cards):not(.ts-listing-reviews) { color: #505851; }
.ts-listing-info-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 34px; background: rgba(21,26,23,.16); }
.ts-listing-info-cards article { min-height: 150px; padding: 25px; background: #fffdf8; }
.ts-listing-info-cards strong { display: block; font: 400 27px Georgia,serif; }
.ts-listing-info-cards span { display: block; margin-top: 28px; color: #687069; font-size: 13px; }
.ts-listing-amenities,.ts-listing-rules { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px 28px; margin: 0; padding: 26px 0; border-top: 1px solid rgba(21,26,23,.14); list-style: none; }
.ts-listing-amenities i { margin-right: 10px; color: #9f5034; font-style: normal; }
.ts-listing-all-amenities { border-top: 1px solid rgba(21,26,23,.14); border-bottom: 1px solid rgba(21,26,23,.14); }
.ts-listing-all-amenities summary { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; font-weight: 750; }
.ts-listing-all-amenities summary::-webkit-details-marker { display: none; }
.ts-listing-all-amenities summary span { font-size: 26px; font-weight: 400; transition: transform .25s ease; }
.ts-listing-all-amenities[open] summary span { transform: rotate(45deg); }
.ts-listing-amenity-groups { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; padding-bottom: 24px; background: rgba(21,26,23,.13); }
.ts-listing-amenity-groups article { padding: 24px; color: #151a17; background: #fffdf8; }
.ts-listing-amenity-groups h3 { margin: 0 0 15px; font-size: 23px; }
.ts-listing-amenity-groups ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.ts-listing-amenity-groups li::before { margin-right: 9px; color: #9f5034; content: "✓"; }
.ts-listing-detail { padding: 24px 0; border-top: 1px solid rgba(21,26,23,.14); }
.ts-listing-detail p,.ts-listing-good-to-know p { font-size: 17px; }
.ts-listing-address-note { margin-top: 24px; padding: 16px 18px; border-left: 3px solid #9f5034; color: #505851; background: #fffdf8; }
.ts-listing-good-to-know { padding-right: clamp(24px,4vw,60px) !important; padding-left: clamp(24px,4vw,60px) !important; border-left: 4px solid #9f5034; background: #ebe3d5; }
.ts-listing-good-to-know > a { font-weight: 750; }
.ts-listing-reviews { display: grid; gap: 14px; }
.ts-listing-reviews blockquote { margin: 0; padding: 28px; background: #fffdf8; }
.ts-listing-reviews blockquote > span { color: #9f5034; }
.ts-listing-reviews cite { color: #687069; font-size: 13px; }
.ts-listing-host { padding-right: clamp(24px,4vw,60px) !important; padding-left: clamp(24px,4vw,60px) !important; color: #fff; background: #1f3128; }
.ts-listing-host .ts-listing-kicker { color: #d9bd8f; }
.ts-listing-host h2,.ts-listing-host p { color: #fff; }
.ts-listing-host > a { border-color: #fff; color: #fff; }
.ts-contact-response { color: rgba(255,255,255,.74) !important; font-size: 14px; }
.ts-listing-term-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: rgba(21,26,23,.15); }
.ts-listing-term-grid article { padding: 24px; color: #151a17; background: #fffdf8; }
.ts-listing-term-grid h3 { margin: 0 0 14px; font-size: 23px; }
.ts-listing-term-grid p { margin: 0; }
.ts-listing-booking { position: sticky; top: 110px; height: max-content; padding: 30px; border: 1px solid rgba(21,26,23,.16); background: #fffdf8; box-shadow: 0 22px 60px rgba(21,26,23,.1); }
.ts-listing-booking > p { margin: 0; color: #9f5034; font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.ts-listing-booking h2 { font: 400 37px/1.05 Georgia,serif; }
.ts-listing-booking ul { padding-left: 20px; color: #505851; font-size: 14px; }
.ts-listing-booking > a { width: 100%; box-sizing: border-box; margin-top: 9px; }
.ts-listing-booking small { display: block; margin-top: 20px; color: #687069; line-height: 1.55; }
.ts-listing .ts-booking-inline { position: sticky; z-index: 2; top: 102px; width: 100%; height: max-content; padding: 0; background: transparent; opacity: 1; pointer-events: auto; }
.ts-listing .ts-booking-inline .ts-booking-drawer { position: relative; width: 100%; height: auto; max-height: calc(100vh - 122px); padding: 30px; overflow: auto; background: #fffdf8; transform: none; transition: none; overscroll-behavior: contain; }
.ts-listing .ts-listing-booking-panel { border: 1px solid rgba(21,26,23,.16); box-shadow: 0 22px 60px rgba(21,26,23,.1); }
.ts-listing .ts-listing-booking-panel h2 { margin: 14px 0 15px; font-size: 37px; }
.ts-listing .ts-listing-booking-panel .ts-booking-contact { display: block; margin: 16px 0; font-size: 14px; font-weight: 750; text-decoration: underline; text-underline-offset: 5px; }
.ts-listing .ts-listing-booking-panel .ts-payment-button { min-height: 58px; }
.ts-listing-related { padding: 100px max(24px,calc((100% - 1320px)/2)); background: #ebe3d5; }
.ts-listing-related > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.ts-listing-related article img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.ts-listing-related article p { margin: 15px 0 5px; color: #9f5034; font-size: 12px; font-weight: 750; text-transform: uppercase; }
.ts-listing-related h3 { margin: 0; font: 400 29px Georgia,serif; }
.ts-listing-final { display: flex; min-height: 520px; flex-direction: column; align-items: center; justify-content: center; padding: 80px 24px; color: #fff; background: #9f5034; text-align: center; }
.ts-listing-final > p { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.ts-listing-final h2 { color: #fff; }
.ts-listing-final a { border-color: #fff; color: #fff; }
.ts-listing-final a.primary { color: #151a17; background: #fff; }
.ts-listing-lightbox { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: 50px; color: #fff; background: rgba(8,12,9,.96); }
.ts-listing-lightbox[hidden] { display: none; }
.ts-listing-lightbox img { max-width: min(1200px,88vw); max-height: 82vh; object-fit: contain; }
.ts-listing-lightbox button { position: absolute; display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: #fff; background: rgba(0,0,0,.28); cursor: pointer; font-size: 28px; }
.ts-listing-lightbox [data-ts-listing-close] { top: 20px; right: 20px; }
.ts-listing-lightbox [data-ts-listing-prev] { left: 20px; }
.ts-listing-lightbox [data-ts-listing-next] { right: 20px; }
.ts-listing-lightbox span { position: absolute; bottom: 18px; }
body.ts-gallery-open { overflow: hidden; }
.ts-branded-page :focus-visible,.ts-listing :focus-visible { outline: 3px solid #d48159 !important; outline-offset: 4px; }
@media (max-width: 900px) {
  .ts-listing-hero { grid-template-columns: 1fr; }
  .ts-listing-main-image { min-height: 620px; grid-row: 1; }
  .ts-listing-hero-copy { grid-row: 2; }
  .ts-listing-layout { grid-template-columns: 1fr; }
  .ts-listing-booking,.ts-listing .ts-booking-inline { position: static; }
  .ts-listing .ts-booking-inline .ts-booking-drawer { max-height: none; overflow: visible; }
  .ts-listing-term-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .ts-standalone-header { min-height: 70px; padding: 0 16px; }
  .ts-standalone-header nav a:not(.ts-standalone-book) { display: none; }
  .ts-standalone-header .ts-standalone-book { padding: 10px 13px; font-size: 12px; }
  .ts-standalone-brand span { display: none; }
  .ts-standalone-footer { grid-template-columns: 1fr; padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
  .ts-standalone-footer p { justify-self: start; }
  .ts-standalone-footer small { grid-column: auto; }
  .ts-listing-breadcrumb { width: calc(100% - 32px); }
  .ts-listing-main-image { min-height: 480px; }
  .ts-listing-hero-copy { padding: 55px 20px 65px; }
  .ts-listing-hero h1 { font-size: clamp(54px,16vw,78px); }
  .ts-listing-gallery { grid-template-columns: repeat(2,1fr); }
  .ts-listing-layout { width: calc(100% - 32px); gap: 40px; padding: 70px 0; }
  .ts-listing-content > section { padding-bottom: 60px; }
  .ts-listing-content > section + section { padding-top: 60px; }
  .ts-listing-info-cards,.ts-listing-amenities,.ts-listing-rules { grid-template-columns: 1fr; }
  .ts-listing-amenity-groups { grid-template-columns: 1fr; }
  .ts-listing .ts-booking-inline .ts-booking-drawer { padding: 24px 18px calc(28px + env(safe-area-inset-bottom)); }
  .ts-listing .ts-listing-booking-panel h2 { font-size: 34px; }
  .ts-listing-related { padding: 70px 16px; }
  .ts-listing-related > div { grid-template-columns: 1fr; }
  .ts-listing-lightbox { padding: 18px; }
  .ts-listing-lightbox [data-ts-listing-prev] { left: 8px; }
  .ts-listing-lightbox [data-ts-listing-next] { right: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .ts-listing *, .ts-standalone-header * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
