/* Shared repair layer for the archived hotel documents.
   Bootstrap remains the source of breakpoints: 576 / 768 / 992 / 1200 / 1600.
   Legacy desktop dimensions are named below so the approved reference stays intact. */
:root {
  --hotel-white: #fff;
  --hotel-ink: #404041;
  --hotel-gold: #87714d;
  --hotel-grey: #ececec;
  --hotel-stone: #f4f1ec;
  --hotel-line: #d9d9d9;
  --hotel-space-0: 0px;
  --hotel-space-2: 2px;
  --hotel-space-4: 4px;
  --hotel-space-8: 8px;
  --hotel-space-12: 12px;
  --hotel-space-16: 16px;
  --hotel-space-20: 20px;
  --hotel-space-24: 24px;
  --hotel-space-30: 30px; /* Archived desktop callout padding. */
  --hotel-space-32: 32px;
  --hotel-space-40: 40px;
  --hotel-space-48: 48px;
  --hotel-space-50: 50px; /* Archived desktop package panel padding. */
  --hotel-space-64: 64px;
  --hotel-space-70: 70px; /* Archived desktop section rhythm. */
  --hotel-type-caption: .75rem;
  --hotel-type-small: .875rem;
  --hotel-type-body: 1rem;
  --hotel-type-lead: 1.125rem;
  --hotel-type-subheading: 1.25rem;
  --hotel-type-heading: 1.5rem;
  --hotel-type-display: 1.875rem;
  --hotel-heading-fluid: clamp(var(--hotel-type-heading), calc(var(--hotel-type-subheading) + 1vw), var(--hotel-type-display));
  --hotel-line-heading: 1.3;
  --hotel-line-copy: 1.7;
  --hotel-line-control: 1.5;
  --hotel-touch: 44px;
  --hotel-control: 56px;
  --hotel-guest-width: 16rem;
  --hotel-gutter: var(--hotel-space-20);
  --hotel-reading-max: 70ch;
  --hotel-section-space: var(--hotel-space-40);
  --hotel-mobile-header: 67px; /* Native logo/header height. */
  --hotel-radius: 0px;
  --hotel-gift-display: block;
  --hotel-gift-width: calc(100% - 2 * var(--hotel-gutter));
  --hotel-gift-padding: var(--hotel-space-24);
  --hotel-gift-align: center;
  --hotel-gift-copy-position: static;
  --hotel-gift-sizing-display: none;
  --hotel-gift-button-sizing: none;
  --hotel-gift-copy-padding: var(--hotel-space-0);
  --hotel-gift-button-width: 100%;
  --hotel-gift-button-gap: var(--hotel-space-24);
  --hotel-package-padding: var(--hotel-space-24);
}

body { padding-top: calc(var(--hotel-mobile-header) + env(safe-area-inset-top)); }
.header-mobile { padding-top: env(safe-area-inset-top); }
.container:not(.container-0), .container-fluid:not(.container-0) { padding-inline: var(--hotel-gutter); }
.section-margin-top { margin-top: var(--hotel-section-space); }
.section-margin-bottom { margin-bottom: var(--hotel-section-space); }

/* Dates and guests stay side by side; the longer application action gets a row. */
.mobile-barboon form { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mobile-barboon .barboon-item { min-width: 0; min-height: var(--hotel-control); padding: var(--hotel-space-12) var(--hotel-gutter); }
.mobile-barboon .barboon-item:last-child { grid-column: 1 / -1; padding-top: var(--hotel-space-0); }
.mobile-barboon .gift-reservation-cta { min-height: var(--hotel-control); font-size: var(--hotel-type-body); }
.mobile-barboon .gift-reservation-copy { flex-direction: row; flex-wrap: wrap; gap: var(--hotel-space-4); }
.mobile-barboon .gift-reservation-copy > span { font-size: inherit; }
.mobile-barboon input:not(.datepicker-input), .mobile-barboon select,
.section-timeline .custom-select { font-size: var(--hotel-type-body); min-height: var(--hotel-touch); }
.mobile-barboon .dropdown-menu { min-width: min(var(--hotel-guest-width), calc(100vw - 2 * var(--hotel-gutter))); }
.mobile-barboon .dropdown-menu .btn { min-width: var(--hotel-touch); min-height: var(--hotel-touch); }
.btn-navigation, .btn-icon { min-width: var(--hotel-touch); min-height: var(--hotel-touch); }
.header-desktop .dropdown > .btn { min-width: var(--hotel-touch); min-height: var(--hotel-touch); }
/* Preserve the archived 12 px dots and 52 px centre spacing, with 44 px hit areas. */
.owl-carousel .owl-dots .owl-dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: var(--hotel-touch); height: var(--hotel-touch); transform: translate(-50%, -50%); }
.owl-carousel .owl-dots .owl-dot:focus-visible::before { outline: var(--hotel-space-2) solid var(--hotel-gold); outline-offset: var(--hotel-space-2); }

/* Keep mobile gift copy and its action in the normal flow of the gold panel.
   Desktop variables restore the archived geometry and the original type weights. */
.wheel-promo .reservation-call {
  display: var(--hotel-gift-display);
  width: var(--hotel-gift-width);
  margin: var(--hotel-space-0) auto;
  padding: var(--hotel-gift-padding);
  text-align: var(--hotel-gift-align);
}
.wheel-promo-sizing { display: var(--hotel-gift-sizing-display); }
.wheel-promo-button-size { display: var(--hotel-gift-button-sizing); }
.wheel-promo-copy, .wheel-promo-button-copy { position: var(--hotel-gift-copy-position); }
.wheel-promo-button-copy { padding: var(--hotel-gift-copy-padding); }
.wheel-promo .reservation-btn-container { position: static; transform: none; margin-top: var(--hotel-gift-button-gap); }
.wheel-promo .wheel-promo-button { width: var(--hotel-gift-button-width); white-space: normal; }

/* Descriptions must remain readable after the associated detail action is removed. */
.section-navigation-list-content .navigation-card-item > p.ellipse {
  display: block;
  width: 100% !important; /* Overrides the archived w-percent utility. */
  max-width: var(--hotel-reading-max);
  height: auto;
  max-height: none;
  overflow: visible;
  text-overflow: clip;
  -webkit-line-clamp: unset;
}
.section-navigation-list-content .navigation-card-item { margin-bottom: var(--hotel-space-0) !important; }
.section-navigation-list-content .row.justify-content-md-center { row-gap: var(--hotel-space-48); }
.section-navigation-list-content .navigation-card-item:only-child { flex: 0 0 100%; max-width: 100%; }
.section-navigation-list-content .removed-inspect-space { display: none; }

.honeymoon-panel { padding: var(--hotel-package-padding) !important; /* Legacy padding utilities are !important. */ }
.honeymoon-benefits { max-width: var(--hotel-reading-max); margin: var(--hotel-space-0) auto; padding-left: var(--hotel-space-24); text-align: left; }
.honeymoon-benefits li { padding-left: var(--hotel-space-4); line-height: var(--hotel-line-copy); }
.honeymoon-benefits li + li { margin-top: var(--hotel-space-12); }
.honeymoon-note { max-width: var(--hotel-reading-max); margin: var(--hotel-space-32) auto var(--hotel-space-0); line-height: var(--hotel-line-copy); }

.application-section { margin-block: var(--hotel-section-space); }
.application-section h1 { font-size: var(--hotel-heading-fluid); line-height: var(--hotel-line-heading); }
.application-field label { font-size: var(--hotel-type-small); margin-bottom: var(--hotel-space-8); }
.application-optional { font-size: var(--hotel-type-caption); }
.application-details { padding-block: var(--hotel-space-0); }
.application-details:first-of-type { margin-top: var(--hotel-space-16); }
.application-details summary { min-height: var(--hotel-touch); padding-block: var(--hotel-space-12); line-height: var(--hotel-line-control); }
.application-details summary span { font-size: var(--hotel-type-small); }
.application-details-body { padding-block: var(--hotel-space-24); }
.application-information { max-width: var(--hotel-reading-max); margin: var(--hotel-space-24) auto; font-size: var(--hotel-type-small); line-height: var(--hotel-line-copy); }
.application-retry { min-width: var(--hotel-touch); min-height: var(--hotel-touch); padding: var(--hotel-space-12); font-size: var(--hotel-type-small); }
.application-privacy { max-width: var(--hotel-reading-max); }
.application-privacy p { font-size: var(--hotel-type-body); line-height: var(--hotel-line-copy); }
.application-section :focus-visible { outline-color: var(--hotel-gold); }

@media (min-width: 768px) {
  .mobile-barboon .barboon-item:last-child { grid-column: auto; padding-top: var(--hotel-space-12); }
}
@media (min-width: 992px) {
  :root {
    --hotel-gutter: 15px; /* Exact archived desktop container inset. */
    --hotel-gift-display: inline-block;
    --hotel-gift-width: auto;
    --hotel-gift-padding: var(--hotel-space-30) var(--hotel-space-40);
    --hotel-gift-align: left;
    --hotel-gift-copy-position: absolute;
    --hotel-gift-sizing-display: block;
    --hotel-gift-button-sizing: inline;
    --hotel-gift-copy-padding: var(--hotel-space-2);
    --hotel-gift-button-width: auto;
    --hotel-gift-button-gap: var(--hotel-space-0);
    --hotel-package-padding: var(--hotel-space-70) var(--hotel-space-50);
  }
  body { padding-top: var(--hotel-space-0); }
  .header-mobile { padding-top: var(--hotel-space-0); }
}
@media (min-width: 1200px) { :root { --hotel-section-space: var(--hotel-space-70); } }
