/* Current-shell adapter for the hash-guarded Tuk-tuk V0.6.8 body.
   The sticky deliberately reuses the shared product-page visual grammar. */

.mobile-lang-wrap.osl-runtime-anchor {
  display: none !important;
}

/* My OSL owns saved ideas. Keep the recovered local-programme control hidden:
   an unconfirmed visit belongs in Mes idées or Demandes en cours. */
#addProgramme,
#programmeInlineCopy {
  display: none !important;
}

.actions {
  grid-template-columns: 1fr !important;
}

/* A pointer selection only replaces the principal photo. It never adds a
   persistent frame to the thumbnail; keyboard focus remains visible. */
[data-osl-recovered-surface="tuk-tuk-v068"] .thumb,
[data-osl-recovered-surface="tuk-tuk-v068"] .thumb.active {
  border-color: transparent !important;
  box-shadow: none !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .thumb:focus {
  outline: none;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .thumb:focus-visible {
  outline: 2px solid var(--osl-color-focus);
  outline-offset: 2px;
}

/* The shared favourite is the same photo-overlay heart used by every product. */
[data-osl-recovered-surface="tuk-tuk-v068"] {
  position: relative;
}

.osl-tuktuk-product-body {
  position: relative;
}

.osl-tuktuk-favorite-wrap {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 12;
}

.osl-tuktuk-breadcrumb {
  padding: 18px 0;
}

/* Shared product typography contract. The recovered body remains hash-guarded;
   this adapter makes its active typography consume the same roles as React products. */
[data-osl-recovered-surface="tuk-tuk-v068"] {
  font-family: var(--osl-font-ui) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] h1,
[data-osl-recovered-surface="tuk-tuk-v068"] .hero h1 {
  font-family: var(--osl-font-editorial) !important;
  font-size: var(--osl-type-product-page) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] h2,
[data-osl-recovered-surface="tuk-tuk-v068"] .section-head h2 {
  font-family: var(--osl-font-editorial) !important;
  font-size: var(--osl-type-product-section) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] h3 {
  font-family: var(--osl-font-editorial) !important;
  font-size: var(--osl-type-card) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .section-kicker {
  font-family: var(--osl-font-ui) !important;
  font-size: var(--osl-type-label) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .dtime {
  font-size: var(--osl-type-meta) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .dprice {
  font-family: var(--osl-font-editorial) !important;
  font-size: var(--osl-type-product-option-title) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .dsub {
  font-size: var(--osl-type-helper) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .dbadge {
  padding: 4px 8px !important;
  background: var(--osl-color-accent) !important;
  color: var(--osl-color-paper) !important;
  font-size: var(--osl-type-label) !important;
  line-height: 1 !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .field label,
[data-osl-recovered-surface="tuk-tuk-v068"] .when-grid label {
  font-size: var(--osl-type-product-project-label) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] #backupToggle,
[data-osl-recovered-surface="tuk-tuk-v068"] .dep-map,
[data-osl-recovered-surface="tuk-tuk-v068"] .dep-address-action {
  font-size: var(--osl-type-product-utility-action) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .recap-card-kicker {
  font-size: var(--osl-type-product-recap-kicker) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .recap-edit {
  font-size: var(--osl-type-product-recap-edit) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .recap-label {
  font-size: var(--osl-type-product-recap-label) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .recap-value {
  font-size: var(--osl-type-product-recap-value) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .recap-micro {
  font-size: var(--osl-type-product-recap-micro) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .tuk-estimate-main span,
[data-osl-recovered-surface="tuk-tuk-v068"] .taxSummaryRow span {
  font-size: var(--osl-type-product-price-label) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] #tukEstimateTotal {
  font-size: var(--osl-type-product-price-total) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] #tukEstimatePerPerson {
  font-size: var(--osl-type-product-price-budget) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .taxSummaryRow strong {
  font-size: var(--osl-type-product-price-tax-value) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .taxSummaryNote {
  font-size: var(--osl-type-product-price-note) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .theme-more {
  font-size: var(--osl-type-product-choice-disclosure) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .theme-select b {
  font-size: var(--osl-type-product-choice-body) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .theme-select small {
  font-size: var(--osl-type-product-choice-meta) !important;
}

/* V0.6.8 renders the active theme collection through interest cards. */
[data-osl-recovered-surface="tuk-tuk-v068"] .interest-main b {
  font-size: var(--osl-type-product-choice-body) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .interest-main small {
  font-size: var(--osl-type-product-choice-meta) !important;
}

[data-osl-recovered-surface="tuk-tuk-v068"] .details summary,
[data-osl-recovered-surface="tuk-tuk-v068"] .details .inside,
[data-osl-recovered-surface="tuk-tuk-v068"] .included-item b {
  font-size: var(--osl-type-product-choice-meta) !important;
}

body:has([data-osl-recovered-surface="tuk-tuk-v068"]) {
  padding-bottom: 0 !important;
}

/* Canonical Visit project-control rhythm: compact languages with readable help spacing. */
.early-booking-panel .tour-lang-options {
  gap: 5px !important;
}

.early-booking-panel .tour-lang-btn {
  min-height: 36px !important;
  padding: 7px 6px !important;
  font-size: var(--osl-type-product-language-option) !important;
}

.early-booking-panel .lang-field .micro {
  margin-top: 10px !important;
}

/* One quantity control across Tuk-tuk, shared Products and Sintra. */
.compact-stepper,
#childModal .compact-stepper {
  grid-template-columns:
    var(--osl-quantity-stepper-button)
    var(--osl-quantity-stepper-value)
    var(--osl-quantity-stepper-button) !important;
  width: max-content !important;
  height: auto !important;
  min-height: var(--osl-quantity-stepper-height) !important;
  border: 1px solid var(--osl-color-control-border) !important;
  border-radius: var(--osl-radius-control) !important;
  background: var(--osl-color-paper) !important;
}

.compact-stepper button,
.compact-stepper span,
#childModal .compact-stepper button,
#childModal .compact-stepper span {
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: var(--osl-quantity-stepper-height) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--osl-color-brand) !important;
  font-family: var(--osl-font-ui) !important;
  font-size: var(--osl-type-product-option-title) !important;
  font-weight: 800 !important;
}

.compact-stepper span,
#childModal .compact-stepper span {
  border-right: 1px solid var(--osl-color-control-border) !important;
  border-left: 1px solid var(--osl-color-control-border) !important;
}

/* The approved recovered source stays immutable; the current shell removes this
   redundant, negative reassurance from the customer-facing experience. */
[data-osl-recovered-surface="tuk-tuk-v068"] [data-i="backupMicro"] {
  display: none !important;
}

@media (min-width: 761px) {
  #sticky {
    display: none !important;
  }
}

@media (max-width: 760px) {
  .osl-tuktuk-favorite-wrap {
    top: 12px;
    right: 12px;
  }

  .osl-tuktuk-breadcrumb { padding: 14px 0; }

  #sticky,
  #sticky.v065-docked {
    position: fixed !important;
    z-index: 30 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    min-height: 72px !important;
    margin: 0 !important;
    transform: none !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    border: 0 !important;
    border-top: 1px solid var(--osl-color-line) !important;
    border-bottom: 1px solid var(--osl-color-paper) !important;
    border-radius: 0 !important;
    background: var(--osl-color-brand) !important;
    color: var(--osl-color-paper) !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    box-shadow: var(--osl-shadow-sticky) !important;
    pointer-events: auto !important;
  }

  #sticky.osl-current-shell-docked {
    position: relative !important;
    z-index: 2 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
  }

  .osl-current-shell-sticky-dock {
    display: none !important;
    width: 100% !important;
    background: var(--osl-color-paper) !important;
  }

  .osl-current-shell-sticky-dock.osl-current-shell-sticky-dock-active {
    display: block !important;
  }

  #sticky.show {
    display: flex !important;
  }

  body:has([data-osl-recovered-surface="tuk-tuk-v068"]):has(#sticky.show:not(.osl-current-shell-docked)) {
    padding-bottom: 72px !important;
  }

  #sticky .sticky-copy {
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #sticky #stickyContext,
  #sticky #stickyTotal,
  #sticky #stickyPerPerson {
    display: block !important;
    margin: 0 !important;
    color: var(--osl-color-paper) !important;
    opacity: 1 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  #sticky #stickyContext,
  #sticky #stickyPerPerson {
    font-family: var(--osl-font-ui) !important;
    font-size: var(--osl-type-product-sticky-meta-mobile) !important;
    line-height: 1.2 !important;
  }

  #sticky #stickyTotal {
    margin-top: 2px !important;
    font-family: var(--osl-font-editorial) !important;
    font-size: var(--osl-type-product-sticky-price-mobile) !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
  }

  #sticky #stickyPerPerson {
    margin-top: 2px !important;
    font-weight: 400 !important;
  }

  #stickyRequest {
    flex: 0 0 auto !important;
    align-self: center !important;
    min-height: 43px !important;
    border: 1px solid var(--osl-color-paper) !important;
    border-radius: var(--osl-radius-control) !important;
    background: var(--osl-color-paper) !important;
    color: var(--osl-color-brand) !important;
    padding: 0 15px !important;
    cursor: pointer !important;
    font-family: var(--osl-font-ui) !important;
    font-size: var(--osl-type-product-sticky-action-mobile) !important;
    font-weight: var(--osl-weight-action) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
}
