/* Reservaline mobile Attraction V117 — approved mobile UI + RH1 modern shell. */
  body.single-st_activity.rhs117-activity-mobile-active { background:#f7f9fd; color:#092d6f; }
  body.single-st_activity .rhs108-activity-mobile,
  body.single-st_activity .rhs108-activity-mobile * { box-sizing:border-box; }
  body.single-st_activity .rhs108-activity-mobile { position:relative; width:100%; padding:0 0 calc(102px + env(safe-area-inset-bottom)); background:#f7f9fd; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
  .rhs108-shell { width:100%; max-width:680px; margin:0 auto; padding:12px 14px 28px; }

  .rhs108-gallery { position:relative; margin:0 0 15px; }
  .rhs108-gallery-track { display:flex; width:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:18px; background:#eaf0fb; }
  .rhs108-gallery-track::-webkit-scrollbar { display:none; }
  .rhs108-gallery-slide { flex:0 0 100%; width:100%; aspect-ratio:16/10; padding:0; border:0; margin:0; scroll-snap-align:start; background:#eaf0fb; overflow:hidden; }
  .rhs108-gallery-slide img { display:block; width:100%; height:100%; object-fit:cover; }
  .rhs108-gallery-empty { width:100%; aspect-ratio:16/10; border-radius:18px; background:linear-gradient(135deg,#eef3fb,#dce7f8); }
  .rhs108-photo-count { position:absolute; right:11px; bottom:25px; padding:4px 8px; border-radius:9px; background:rgba(9,28,62,.78); color:#fff; font-size:12px; font-weight:700; line-height:1; }
  .rhs108-gallery-dots { display:flex; justify-content:center; gap:7px; height:16px; padding-top:9px; }
  .rhs108-gallery-dots span { width:6px; height:6px; border-radius:50%; background:#d6deec; transition:.2s ease; }
  .rhs108-gallery-dots span.is-active { width:7px; height:7px; background:#1757d5; }

  .rhs108-summary { padding:0 4px; }
  .rhs108-type-pill { display:inline-flex; align-items:center; min-height:24px; padding:3px 10px; border-radius:9px; background:#eaf1ff; color:#1657d2; font-size:12px; font-weight:750; }
  .rhs108-summary h1 { margin:8px 0 8px; color:#092f73; font-size:24px; line-height:1.16; font-weight:780; letter-spacing:-.35px; }
  .rhs108-rating-location { display:grid; gap:6px; color:#4d5f7b; font-size:14px; }
  .rhs108-rating { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .rhs108-stars { color:#ffb31a; font-size:17px; letter-spacing:1px; line-height:1; }
  .rhs108-rating strong { color:#263a59; font-size:14px; }
  .rhs108-location { display:flex; align-items:flex-start; gap:7px; min-width:0; }
  .rhs108-location svg { width:17px; height:17px; flex:none; fill:none; stroke:#173b79; stroke-width:1.8; margin-top:1px; }
  .rhs108-location span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

  .rhs108-benefits { display:flex; gap:7px; margin:15px -4px 13px; padding:0 4px 2px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .rhs108-benefits::-webkit-scrollbar { display:none; }
  .rhs108-benefit { flex:0 0 auto; min-width:112px; max-width:148px; min-height:53px; padding:8px 9px; border:1px solid #dbe4f2; border-radius:12px; background:#fff; color:#123d85; display:flex; gap:7px; align-items:flex-start; scroll-snap-align:start; font-size:11px; font-weight:700; line-height:1.15; }
  .rhs108-benefit.is-green { color:#1e764c; }
  .rhs108-benefit-icon { display:grid; place-items:center; width:22px; height:22px; flex:none; border-radius:50%; background:#edf3ff; color:#1757d5; font-size:13px; font-weight:800; }
  .rhs108-benefit.is-green .rhs108-benefit-icon { background:#e8f7ef; color:#1c9a61; }
  .rhs108-benefit small { display:block; margin-top:3px; color:#62728a; font-size:10px; font-weight:550; line-height:1.15; }

  .rhs108-intro { color:#4e5d73; font-size:14px; line-height:1.45; }
  .rhs108-intro p { margin:0; }
  .rhs108-text-link { display:inline-flex; align-items:center; gap:6px; padding:6px 0 0; border:0; background:transparent; color:#1454c8; font-size:14px; font-weight:750; }
  .rhs108-description-full { margin-top:10px; color:#46556b; }
  .rhs108-description-full > *:first-child { margin-top:0; }

  .rhs108-card { margin:14px 0 0; padding:15px 14px; border:1px solid #e1e7f0; border-radius:16px; background:#fff; box-shadow:0 3px 14px rgba(20,47,90,.045); }
  .rhs108-card h2 { margin:0 0 13px; color:#0b3478; font-size:18px; line-height:1.2; font-weight:780; }
  .rhs108-highlight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; }
  .rhs108-highlight-item { display:flex; align-items:flex-start; gap:8px; min-width:0; color:#344861; font-size:12px; line-height:1.25; }
  .rhs108-highlight-icon { display:grid; place-items:center; width:29px; height:29px; flex:none; border-radius:9px; background:#eef3ff; color:#1454d5; font-size:17px; }
  .rhs108-check-grid { display:grid; gap:10px; }
  .rhs108-check-grid > div { display:flex; align-items:flex-start; gap:9px; color:#344861; font-size:13px; line-height:1.3; }
  .rhs108-check-grid > div > span:first-child { color:#1457d4; font-size:15px; font-weight:800; }
  .rhs108-excluded { margin-top:12px; padding-top:11px; border-top:1px solid #edf0f5; color:#53637a; font-size:13px; }
  .rhs108-excluded summary { cursor:pointer; color:#173d7b; font-weight:700; }
  .rhs108-excluded ul { margin:9px 0 0; padding-left:20px; }

  .rhs108-booking-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:14px 0 0; border:1px solid #dbe3ef; border-radius:15px; overflow:hidden; background:#fff; box-shadow:0 3px 14px rgba(20,47,90,.05); }
  .rhs108-booking-shortcuts button { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr) 8px; align-items:center; gap:6px; min-width:0; min-height:68px; padding:9px 8px; border:0; border-right:1px solid #e6ebf2; background:#fff; color:#153c7d; text-align:left; }
  .rhs108-booking-shortcuts button:last-child { border-right:0; }
  .rhs108-booking-shortcuts svg { width:18px; height:18px; fill:none; stroke:#1456d5; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .rhs108-booking-shortcuts span { min-width:0; }
  .rhs108-booking-shortcuts small { display:block; margin-bottom:3px; font-size:10px; font-weight:650; }
  .rhs108-booking-shortcuts strong { display:block; overflow:hidden; color:#0d316d; font-size:11px; font-weight:760; white-space:nowrap; text-overflow:ellipsis; }
  .rhs108-booking-shortcuts b { font-size:12px; font-weight:500; color:#73829a; }

  .rhs117-native-booking { position:fixed !important; z-index:10040; left:0; right:0; bottom:0; width:100%; max-height:min(76vh,680px); padding:13px 15px calc(18px + env(safe-area-inset-bottom)); overflow:auto; border-radius:22px 22px 0 0; background:#fff; box-shadow:0 -12px 35px rgba(8,35,78,.18); transform:translateY(110%); visibility:hidden; transition:transform .25s ease,visibility .25s ease; }
  .rhs117-native-booking.is-open { transform:translateY(0); visibility:visible; }
  .rhs117-sheet-backdrop { position:fixed; z-index:10030; inset:0; border:0; background:rgba(4,20,48,.36); }
  .rhs117-sheet-backdrop[hidden] { display:none !important; }
  .rhs108-sheet-head { position:sticky; z-index:3; top:-13px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:-13px -15px 13px; padding:14px 16px 12px; border-bottom:1px solid #edf0f5; background:#fff; }
  .rhs108-sheet-head small { display:block; color:#71809a; font-size:11px; }
  .rhs108-sheet-head strong { display:block; max-width:270px; margin-top:2px; overflow:hidden; color:#0d3374; font-size:15px; white-space:nowrap; text-overflow:ellipsis; }
  .rhs108-sheet-head button { width:34px; height:34px; border:0; border-radius:50%; background:#f1f4f9; color:#173b77; font-size:24px; line-height:1; }

  /* Restyle Traveler's native activity form instead of replacing its logic. */
  .rhs117-native-booking .form-book-wrapper { border:0 !important; padding:0 !important; box-shadow:none !important; }
  .rhs117-native-booking .form-head { display:none !important; }
  .rhs117-native-booking .tour-sale-box { display:none !important; }
  .rhs117-native-booking .form-group { margin-bottom:11px !important; }
  .rhs117-native-booking .form-date-search,
  .rhs117-native-booking .st-form-starttime,
  .rhs117-native-booking .form-guest-search,
  .rhs117-native-booking .form-pickup,
  .rhs117-native-booking .form-more-extra { padding:12px !important; border:1px solid #dce4ef !important; border-radius:13px !important; background:#fff !important; }
  .rhs117-native-booking .form-date-search .date-wrapper { min-height:42px; cursor:pointer; }
  .rhs117-native-booking label { color:#153b79 !important; font-size:12px !important; font-weight:750 !important; }
  .rhs117-native-booking .render,
  .rhs117-native-booking select,
  .rhs117-native-booking input[type="text"] { color:#233a59 !important; font-size:14px !important; }
  .rhs117-native-booking .check-in-input,
  .rhs117-native-booking .check-in-out-input { position:absolute !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }
  .rhs117-native-booking .guest-wrapper { display:grid !important; grid-template-columns:minmax(0,1fr) 96px; align-items:center; gap:10px; min-height:56px; padding:8px 0 !important; border-bottom:1px solid #eef1f5; }
  .rhs117-native-booking .guest-wrapper:last-child { border-bottom:0; }
  .rhs117-native-booking .select-wrapper { width:96px !important; }
  .rhs117-native-booking .st-number-wrapper { display:grid !important; grid-template-columns:30px 36px 30px; align-items:center; width:96px !important; min-width:96px !important; }
  .rhs117-native-booking .st-number-wrapper .prev,
  .rhs117-native-booking .st-number-wrapper .next { display:grid !important; place-items:center; width:30px !important; height:30px !important; margin:0 !important; border:1px solid #ccd8e8 !important; border-radius:50% !important; background:#fff !important; color:#1554cc !important; }
  .rhs117-native-booking .st-number-wrapper input { display:block !important; width:36px !important; height:30px !important; padding:0 !important; border:0 !important; background:transparent !important; color:#173665 !important; font-weight:750 !important; text-align:center !important; opacity:1 !important; }
  .rhs117-native-booking .submit-group .btn-book-ajax { width:100% !important; min-height:48px !important; border:0 !important; border-radius:13px !important; background:#0c4ac3 !important; color:#fff !important; font-size:15px !important; font-weight:780 !important; text-transform:none !important; }
  .rhs117-native-booking .message-wrapper { margin-top:10px !important; }
  .rhs117-native-booking .title-enquiry-form { color:#0d3374; }
  .rhs117-native-booking .nav-tabs { margin-bottom:13px; }


  .rhs108-viewer { position:fixed; z-index:10100; inset:0; display:grid; place-items:center; padding:50px 12px; background:rgba(3,15,36,.96); }
  .rhs108-viewer[hidden] { display:none !important; }
  .rhs108-viewer img { display:block; max-width:100%; max-height:84vh; object-fit:contain; }
  .rhs108-viewer-close { position:absolute; top:calc(14px + env(safe-area-inset-top)); right:14px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:28px; }
  .rhs108-viewer-nav { position:absolute; top:50%; width:42px; height:52px; margin-top:-26px; border:0; border-radius:12px; background:rgba(255,255,255,.12); color:#fff; font-size:36px; line-height:1; }
  .rhs108-viewer-nav.is-prev { left:10px; }
  .rhs108-viewer-nav.is-next { right:10px; }
  .rhs108-viewer > span { position:absolute; bottom:calc(18px + env(safe-area-inset-bottom)); color:#fff; font-size:13px; font-weight:700; }

  body.rhs117-sheet-open { overflow:hidden !important; }

  @media (max-width:390px) {
    .rhs108-shell { padding-left:11px; padding-right:11px; }
    .rhs108-summary h1 { font-size:22px; }
    .rhs108-booking-shortcuts button { grid-template-columns:16px minmax(0,1fr); min-height:64px; padding:8px 6px; }
    .rhs108-booking-shortcuts button > b { display:none; }
    .rhs108-booking-shortcuts svg { width:16px; height:16px; }
    .rhs117-sticky-reservation { padding-left:11px; padding-right:11px; }
    .rhs108-sticky-cta { font-size:15px; padding:0 12px; }
  }



/* =============================================================
   V117 — exact mobile homepage chrome + fixed booking controls
   ============================================================= */

/* Mobile UI is present in HTML for cache safety but never alters desktop. */
.rhs117-mobile-home-header,
.rhs108-activity-mobile,
.rhs117-mobile-footer,
.rhs117-sticky-reservation {
  display:none !important;
}

@media (max-width:767px) {
  body.single-st_activity {
    background:#f7f9fd !important;
  }

  /* Exact homepage mobile header component. The homepage final CSS hides the
     category row inside the header and keeps the blue logo/actions bar fixed;
     mirror those final homepage rules on st_activity without rebuilding markup. */
  body.single-st_activity .rhs117-mobile-home-header {
    display:block !important;
    position:relative !important;
    z-index:2147482000 !important;
    width:100% !important;
  }

  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header {
    position:fixed !important;
    z-index:2147482000 !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    display:block !important;
    width:100% !important;
    min-height:auto !important;
    margin:0 !important;
    padding:calc(6px + env(safe-area-inset-top, 0px)) 14px 10px !important;
    border:0 !important;
    border-bottom:0 !important;
    background:var(--reservaline-blue, #073b8f) !important;
    background-color:var(--reservaline-blue, #073b8f) !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header::before,
  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header::after {
    display:none !important;
    content:none !important;
  }

  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header__top,
  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header__top--centered {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:38px !important;
    min-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
  }

  body.single-st_activity .rhs117-mobile-home-header .reservaline-brand {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    max-height:38px !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-mobile-home-header .reservaline-brand__image {
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:178px !important;
    max-height:34px !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center !important;
  }

  /* On the homepage this row is moved into the search block; therefore it must
     not appear below the header on an Attraction detail page either. */
  body.single-st_activity .rhs117-mobile-home-header .reservaline-mobile-header > .reservaline-category-bar {
    display:none !important;
  }

  /* Traveler desktop/legacy header remains in DOM for desktop only. */
  body.single-st_activity > #header,
  body.single-st_activity #header.header-style-3,
  body.single-st_activity #header.header-style-4 {
    display:none !important;
  }

  body.single-st_activity .rhs108-activity-mobile {
    display:block !important;
    padding-top:calc(54px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom:calc(160px + env(safe-area-inset-bottom)) !important;
  }

  body.single-st_activity .rhs108-shell {
    padding-top:12px !important;
  }

  /* Once Traveler's real form has been moved into the V117 sheet, hide the
     old activity page entirely. */
  body.single-st_activity .rhs117-native-activity.rhs117-native-activity-hidden {
    display:none !important;
  }

  body.single-st_activity .rhs117-native-activity.rhs117-native-booking-fallback {
    display:block !important;
    margin-top:14px !important;
  }

  /* Never allow Traveler's old fixed availability bar or Reservaline's global
     icon navigation to cover the V117 Date/Heure/Voyageurs bar. */
  body.single-st_activity .hotel-target-book-mobile,
  body.single-st_activity .reservaline-mobile-bottom-nav {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  /* One mobile footer only: the compact legal footer already used by the
     Reservaline mobile shell. */
  body.single-st_activity .rhs117-mobile-footer {
    display:block !important;
    position:relative;
    z-index:1;
    padding-bottom:calc(154px + env(safe-area-inset-bottom));
  }

  /* Native Traveler footer is desktop-only on this route. */
  body.single-st_activity > #main-footer,
  body.single-st_activity > .main-footer-sub,
  body.single-st_activity #main-footer,
  body.single-st_activity .main-footer-sub,
  body.single-st_activity .rh1-footer,
  body.single-st_activity .st-footer,
  body.single-st_activity footer:not(.reservaline-mobile-footer) {
    display:none !important;
  }

  /* Booking sheet. */
  body.single-st_activity .rhs117-native-booking {
    position:fixed !important;
    z-index:10040 !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    display:block !important;
    width:100% !important;
    max-height:min(78vh,700px) !important;
    padding:13px 15px calc(20px + env(safe-area-inset-bottom)) !important;
    overflow:auto !important;
    border:0 !important;
    border-radius:22px 22px 0 0 !important;
    background:#fff !important;
    box-shadow:0 -10px 30px rgba(8,35,78,.14) !important;
    transform:translateY(110%) !important;
    visibility:hidden !important;
    opacity:1 !important;
    transition:transform .24s ease,visibility .24s ease !important;
  }

  body.single-st_activity .rhs117-native-booking.is-open {
    transform:translateY(0) !important;
    visibility:visible !important;
  }

  body.single-st_activity .rhs117-sheet-backdrop {
    position:fixed !important;
    z-index:10030 !important;
    inset:0 !important;
    border:0 !important;
    background:rgba(4,20,48,.36) !important;
  }

  body.single-st_activity .rhs117-sheet-backdrop[hidden] {
    display:none !important;
  }

  body.single-st_activity.rhs117-sheet-open {
    overflow:hidden !important;
  }

  /* All Traveler Activity booking layouts are flattened into one clean sheet. */
  body.single-st_activity .rhs117-native-booking .form-book-wrapper,
  body.single-st_activity .rhs117-native-booking .st-form-book-wrapper,
  body.single-st_activity .rhs117-native-booking .st-wrapper-form-booking,
  body.single-st_activity .rhs117-native-booking .st-form-booking-action,
  body.single-st_activity .rhs117-native-booking form.activity-booking-form,
  body.single-st_activity .rhs117-native-booking form#form-booking-inpage {
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-native-booking .form-head,
  body.single-st_activity .rhs117-native-booking .form-booking-price,
  body.single-st_activity .rhs117-native-booking .st-form-head-book,
  body.single-st_activity .rhs117-native-booking .tour-sale-box,
  body.single-st_activity .rhs117-native-booking .total-price-book {
    display:none !important;
  }

  body.single-st_activity .rhs117-native-booking .st-group-form,
  body.single-st_activity .rhs117-native-booking .search-form {
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:#fff !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-native-booking .form-date-search,
  body.single-st_activity .rhs117-native-booking .st-search-date-tour,
  body.single-st_activity .rhs117-native-booking .st-form-starttime,
  body.single-st_activity .rhs117-native-booking .form-guest-search,
  body.single-st_activity .rhs117-native-booking .form-pickup,
  body.single-st_activity .rhs117-native-booking .form-more-extra {
    position:relative !important;
    display:block;
    width:100% !important;
    margin:0 0 11px !important;
    padding:12px !important;
    border:1px solid #dce4ef !important;
    border-radius:13px !important;
    background:#fff !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-native-booking .date-wrapper {
    position:relative !important;
    z-index:2;
    width:100% !important;
    min-height:42px !important;
    cursor:pointer !important;
  }

  /* Traveler keeps three technical date values. They remain in the form for
     daterangepicker/AJAX, but only the human render is visible. */
  body.single-st_activity .rhs117-native-booking .rhs117-technical-date-input,
  body.single-st_activity .rhs117-native-booking .check-in-input,
  body.single-st_activity .rhs117-native-booking .check-out-input,
  body.single-st_activity .rhs117-native-booking .check-in-out-input {
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    width:1px !important;
    height:1px !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    opacity:0 !important;
    color:transparent !important;
    background:transparent !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-native-booking .sts-tour-checkout-label.rhs117-duplicate-date-hidden {
    display:none !important;
  }

  body.single-st_activity .rhs117-native-booking label {
    color:#153b79 !important;
    font-size:12px !important;
    font-weight:750 !important;
  }

  body.single-st_activity .rhs117-native-booking .render,
  body.single-st_activity .rhs117-native-booking select {
    color:#233a59 !important;
    font-size:14px !important;
  }

  body.single-st_activity .rhs117-native-booking .guest-wrapper {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 96px !important;
    align-items:center !important;
    gap:10px !important;
    min-height:56px !important;
    padding:8px 0 !important;
    border-bottom:1px solid #eef1f5 !important;
  }

  body.single-st_activity .rhs117-native-booking .guest-wrapper:last-child {
    border-bottom:0 !important;
  }

  body.single-st_activity .rhs117-native-booking .select-wrapper {
    width:96px !important;
  }

  body.single-st_activity .rhs117-native-booking .st-number-wrapper {
    display:grid !important;
    grid-template-columns:30px 36px 30px !important;
    align-items:center !important;
    width:96px !important;
    min-width:96px !important;
  }

  body.single-st_activity .rhs117-native-booking .st-number-wrapper .prev,
  body.single-st_activity .rhs117-native-booking .st-number-wrapper .next {
    display:grid !important;
    place-items:center !important;
    width:30px !important;
    height:30px !important;
    margin:0 !important;
    border:1px solid #ccd8e8 !important;
    border-radius:50% !important;
    background:#fff !important;
    color:#1554cc !important;
  }

  body.single-st_activity .rhs117-native-booking .st-number-wrapper input {
    display:block !important;
    position:static !important;
    width:36px !important;
    height:30px !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#173665 !important;
    font-weight:750 !important;
    text-align:center !important;
    opacity:1 !important;
  }

  body.single-st_activity .rhs117-native-booking .btn-book-ajax {
    width:100% !important;
    min-height:48px !important;
    border:0 !important;
    border-radius:13px !important;
    background:#0c4ac3 !important;
    color:#fff !important;
    font-size:15px !important;
    font-weight:800 !important;
    text-transform:none !important;
    box-shadow:none !important;
  }

  /* Fixed Date / Heure / Voyageurs + price/action bar. */
  body.single-st_activity .rhs117-sticky-reservation {
    position:fixed !important;
    z-index:10010 !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    display:block !important;
    width:100% !important;
    padding:7px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    border-top:1px solid #dce4ef !important;
    background:#fff !important;
    box-shadow:0 -4px 16px rgba(11,42,88,.08) !important;
  }

  body.single-st_activity .rhs117-sticky-selectors {
    display:grid !important;
    grid-template-columns:1fr 1fr 1fr !important;
    gap:0 !important;
    min-height:52px !important;
    margin:0 0 7px !important;
    overflow:hidden !important;
    border:1px solid #dbe3ef !important;
    border-radius:12px !important;
    background:#fff !important;
  }

  body.single-st_activity .rhs117-sticky-selector {
    display:grid !important;
    grid-template-columns:17px minmax(0,1fr) !important;
    align-items:center !important;
    gap:6px !important;
    min-width:0 !important;
    min-height:52px !important;
    padding:6px 7px !important;
    border:0 !important;
    border-right:1px solid #e3e8f0 !important;
    background:#fff !important;
    color:#153b79 !important;
    text-align:left !important;
  }

  body.single-st_activity .rhs117-sticky-selector:last-child {
    border-right:0 !important;
  }

  body.single-st_activity .rhs117-sticky-selector svg {
    width:17px !important;
    height:17px !important;
    fill:none !important;
    stroke:#1456d5 !important;
    stroke-width:1.8 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
  }

  body.single-st_activity .rhs117-sticky-selector span {
    min-width:0 !important;
  }

  body.single-st_activity .rhs117-sticky-selector small {
    display:block !important;
    margin:0 0 2px !important;
    color:#718099 !important;
    font-size:9px !important;
    font-weight:700 !important;
    line-height:1.1 !important;
  }

  body.single-st_activity .rhs117-sticky-selector strong {
    display:block !important;
    overflow:hidden !important;
    color:#0d316d !important;
    font-size:10.5px !important;
    font-weight:780 !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  body.single-st_activity .rhs117-sticky-action-row {
    display:grid !important;
    grid-template-columns:minmax(0,.9fr) minmax(150px,1.1fr) !important;
    align-items:center !important;
    gap:10px !important;
  }

  body.single-st_activity .rhs117-sticky-price {
    min-width:0 !important;
  }

  body.single-st_activity .rhs117-sticky-price small,
  body.single-st_activity .rhs117-sticky-price span {
    display:block !important;
    color:#718099 !important;
    font-size:9px !important;
    line-height:1.1 !important;
  }

  body.single-st_activity .rhs117-sticky-price strong {
    display:block !important;
    margin:1px 0 !important;
    overflow:hidden !important;
    color:#0b326f !important;
    font-size:17px !important;
    line-height:1.1 !important;
    font-weight:820 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  body.single-st_activity .rhs117-sticky-cta {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:9px !important;
    min-height:45px !important;
    padding:0 14px !important;
    border:0 !important;
    border-radius:12px !important;
    background:#0f50cb !important;
    color:#fff !important;
    font-size:15px !important;
    font-weight:800 !important;
    text-decoration:none !important;
  }

  body.single-st_activity .rhs117-sticky-cta span {
    font-size:22px !important;
    line-height:1 !important;
  }
}

@media (max-width:390px) {
  body.single-st_activity .rhs117-sticky-reservation {
    padding-left:7px !important;
    padding-right:7px !important;
  }

  body.single-st_activity .rhs117-sticky-selector {
    grid-template-columns:15px minmax(0,1fr) !important;
    gap:4px !important;
    padding-left:5px !important;
    padding-right:5px !important;
  }

  body.single-st_activity .rhs117-sticky-selector svg {
    width:15px !important;
    height:15px !important;
  }

  body.single-st_activity .rhs117-sticky-selector strong {
    font-size:9.5px !important;
  }
}

/* =============================================================
   V117 stability / interaction hotfix
   - stop oversized SVG inheritance
   - keep Traveler calendar above the booking sheet
   - keep technical dates invisible without hiding the native picker
   - focus the real Date / Heure / Voyageurs controls
   ============================================================= */
@media (max-width:767px) {
  /* Never let generic Traveler/theme SVG rules expand Attraction icons. */
  body.single-st_activity .rhs108-activity-mobile svg {
    display:block !important;
    width:20px !important;
    height:20px !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:20px !important;
    max-height:20px !important;
    flex:0 0 auto !important;
  }

  body.single-st_activity .rhs108-activity-mobile .rhs108-location svg {
    width:16px !important;
    height:16px !important;
    max-width:16px !important;
    max-height:16px !important;
  }

  body.single-st_activity .rhs108-activity-mobile .rhs117-sticky-selector svg {
    width:16px !important;
    height:16px !important;
    max-width:16px !important;
    max-height:16px !important;
  }

  /* Traveler can output SVG icons inside form controls as well. */
  body.single-st_activity .rhs117-native-booking svg {
    width:18px !important;
    height:18px !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:18px !important;
    max-height:18px !important;
  }

  body.single-st_activity .rhs117-native-booking i,
  body.single-st_activity .rhs117-native-booking [class^="stt-icon-"],
  body.single-st_activity .rhs117-native-booking [class*=" stt-icon-"] {
    font-size:16px !important;
    line-height:1 !important;
  }

  /* The native Activity picker is appended outside our sheet. It must remain
     above the sheet/backdrop or Date appears to do nothing. */
  body.single-st_activity .daterangepicker,
  body.single-st_activity .daterangepicker.dropdown-menu {
    z-index:10080 !important;
  }

  /* Technical values stay present for Traveler AJAX/daterangepicker only. */
  body.single-st_activity .rhs117-native-booking .check-in-input,
  body.single-st_activity .rhs117-native-booking .check-out-input,
  body.single-st_activity .rhs117-native-booking .check-in-out-input {
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    display:block !important;
    width:1px !important;
    height:1px !important;
    min-width:1px !important;
    min-height:1px !important;
    padding:0 !important;
    margin:0 !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  /* One visible date for a one-day Activity. */
  body.single-st_activity .rhs117-native-booking .sts-tour-checkout-label.hidden,
  body.single-st_activity .rhs117-native-booking .sts-tour-checkout-label.d-none,
  body.single-st_activity .rhs117-native-booking .sts-tour-checkout-label.rhs117-duplicate-date-hidden {
    display:none !important;
  }

  /* Clear visual feedback when a fixed selector opens its real Traveler field. */
  body.single-st_activity .rhs117-native-booking .rhs117-focus-target {
    border-color:#0f50cb !important;
    box-shadow:0 0 0 2px rgba(15,80,203,.08) !important;
  }

  body.single-st_activity .rhs117-time-note {
    margin:0 0 10px !important;
    padding:9px 11px !important;
    border-radius:10px !important;
    background:#eef4ff !important;
    color:#17427f !important;
    font-size:12px !important;
    line-height:1.35 !important;
  }

  /* Stop old mobile booking/nav controls from resurfacing above V117. */
  body.single-st_activity .hotel-target-book-mobile,
  body.single-st_activity .reservaline-mobile-bottom-nav {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

/* =============================================================
   V117 definitive mobile Activity correction
   - exact visible Reservaline mobile-home chrome (independent namespace)
   - simple Share/Favorite controls
   - the native Traveler Date / Heure / Voyageurs controls are the fixed bar
   - no proxy buttons and no common booking sheet
   ============================================================= */
.rhs117-home-header,
.rhs117-booking-dock {
  display:none !important;
}

@media (max-width:767px) {
  html,
  body.single-st_activity {
    overflow-x:hidden !important;
  }

  body.single-st_activity > #header,
  body.single-st_activity #header.header-style-3,
  body.single-st_activity #header.header-style-4,
  body.single-st_activity .header.header-sticky-menu:not(.rhs117-home-header),
  body.single-st_activity .reservaline-mobile-header,
  body.single-st_activity .reservaline-native-blue-header,
  body.single-st_activity .reservaline-mobile-bottom-nav,
  body.single-st_activity .hotel-target-book-mobile,
  body.single-st_activity #main-footer {
    display:none !important;
    visibility:hidden !important;
  }

  /* This is the same mobile-home visual contract: blue logo/actions bar +
     four service tabs, with Attractions selected. It uses the very same
     Reservaline logo and SVG icon helpers but cannot be hidden by Traveler. */
  body.single-st_activity .rhs117-home-header {
    position:fixed !important;
    z-index:10080 !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:calc(6px + env(safe-area-inset-top, 0px)) 0 0 !important;
    border:0 !important;
    background:#073b8f !important;
    color:#fff !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-home-header__top {
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:46px !important;
    padding:0 70px !important;
  }

  body.single-st_activity .rhs117-home-brand,
  body.single-st_activity .rhs117-home-brand:link,
  body.single-st_activity .rhs117-home-brand:visited {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:0 !important;
    margin:0 auto !important;
    color:#fff !important;
    text-decoration:none !important;
  }

  body.single-st_activity .rhs117-home-brand img,
  body.single-st_activity .rhs117-home-brand .reservaline-brand__image {
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:174px !important;
    max-height:38px !important;
    object-fit:contain !important;
  }

  body.single-st_activity .rhs117-home-brand span {
    color:#fff !important;
    font-size:20px !important;
    font-weight:800 !important;
  }

  body.single-st_activity .rhs117-home-header__actions {
    position:absolute !important;
    top:50% !important;
    right:14px !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    transform:translateY(-50%) !important;
  }

  body.single-st_activity .rhs117-home-header__actions > a {
    position:relative !important;
    display:grid !important;
    place-items:center !important;
    width:31px !important;
    height:31px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#fff !important;
  }

  body.single-st_activity .rhs117-home-header__actions svg,
  body.single-st_activity .rhs117-home-header__icon,
  body.single-st_activity .rhs117-home-header__icon * {
    display:block !important;
    width:21px !important;
    height:21px !important;
    max-width:21px !important;
    max-height:21px !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.8 !important;
    vector-effect:non-scaling-stroke !important;
  }

  body.single-st_activity .rhs117-home-header__badge {
    position:absolute !important;
    top:0 !important;
    right:-3px !important;
    display:grid !important;
    place-items:center !important;
    min-width:15px !important;
    height:15px !important;
    padding:0 3px !important;
    border:2px solid #073b8f !important;
    border-radius:10px !important;
    background:#ff5a3d !important;
    color:#fff !important;
    font-size:8px !important;
    font-weight:800 !important;
  }

  body.single-st_activity .rhs117-home-categories {
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    align-items:stretch !important;
    width:100% !important;
    min-height:49px !important;
    padding:0 8px !important;
    border-top:1px solid rgba(255,255,255,.12) !important;
    background:#073b8f !important;
  }

  body.single-st_activity .rhs117-home-categories__item {
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    min-width:0 !important;
    padding:5px 2px 7px !important;
    color:rgba(255,255,255,.82) !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1.05 !important;
    text-align:center !important;
    text-decoration:none !important;
  }

  body.single-st_activity .rhs117-home-categories__item.is-active {
    color:#fff !important;
  }

  body.single-st_activity .rhs117-home-categories__item.is-active::after {
    position:absolute !important;
    right:18% !important;
    bottom:0 !important;
    left:18% !important;
    height:3px !important;
    border-radius:3px 3px 0 0 !important;
    background:#f6c344 !important;
    content:"" !important;
  }

  body.single-st_activity .rhs117-home-categories__icon,
  body.single-st_activity .rhs117-home-categories__icon *,
  body.single-st_activity .rhs117-home-categories__item svg,
  body.single-st_activity .rhs117-home-categories__item svg * {
    display:block !important;
    width:18px !important;
    height:18px !important;
    max-width:18px !important;
    max-height:18px !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.7 !important;
    vector-effect:non-scaling-stroke !important;
  }

  /* Content starts below the real fixed home header. */
  body.single-st_activity .rhs108-activity-mobile {
    display:block !important;
    padding-top:calc(103px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom:calc(126px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Share/favorite: deterministic circles, no Traveler pseudo-icon styling. */
  body.single-st_activity .rhs117-gallery-actions {
    position:absolute !important;
    z-index:35 !important;
    top:12px !important;
    right:12px !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }

  body.single-st_activity .rhs117-gallery-action,
  body.single-st_activity .rhs117-gallery-action:link,
  body.single-st_activity .rhs117-gallery-action:visited {
    position:relative !important;
    display:grid !important;
    place-items:center !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    max-width:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:1px solid rgba(20,48,90,.12) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.96) !important;
    color:#123d85 !important;
    line-height:1 !important;
    text-decoration:none !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-gallery-action::before,
  body.single-st_activity .rhs117-gallery-action::after {
    display:none !important;
    content:none !important;
  }

  body.single-st_activity .rhs117-gallery-action svg,
  body.single-st_activity .rhs117-gallery-action svg * {
    display:block !important;
    width:18px !important;
    height:18px !important;
    max-width:18px !important;
    max-height:18px !important;
    margin:0 !important;
    padding:0 !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:1.9 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
    vector-effect:non-scaling-stroke !important;
  }

  body.single-st_activity .rhs117-favorite.is-added {
    color:#e11d48 !important;
  }
  body.single-st_activity .rhs117-favorite.is-added svg {
    fill:#e11d48 !important;
    stroke:#e11d48 !important;
  }
  body.single-st_activity .rhs117-gallery-action .lds-dual-ring {
    display:none !important;
  }
  body.single-st_activity .rhs117-gallery-action.is-loading {
    opacity:.55 !important;
    pointer-events:none !important;
  }

  /* The native Traveler booking form itself becomes the fixed bottom bar. */
  body.single-st_activity .rhs117-booking-dock.has-native-form,
  body.single-st_activity .rhs117-booking-dock .rhs117-native-booking-dock {
    display:block !important;
  }

  body.single-st_activity .rhs117-booking-dock.has-native-form {
    position:fixed !important;
    z-index:10070 !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    width:100% !important;
    margin:0 !important;
    padding:7px 9px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    border-top:1px solid #dbe3ef !important;
    background:#fff !important;
    box-shadow:0 -3px 12px rgba(13,48,97,.08) !important;
  }

  body.single-st_activity .rhs117-native-booking-dock,
  body.single-st_activity .rhs117-native-booking-dock > .form-book-wrapper,
  body.single-st_activity .rhs117-native-booking-dock > .st-wrapper-form-booking,
  body.single-st_activity .rhs117-native-booking-dock > .st-form-booking-action,
  body.single-st_activity .rhs117-native-booking-dock > .st-form-book-wrapper {
    position:static !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-booking-form {
    position:relative !important;
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  body.single-st_activity .rhs117-hidden-price-head,
  body.single-st_activity .rhs117-native-booking-dock .tour-sale-box,
  body.single-st_activity .rhs117-native-booking-dock .loader-wrapper,
  body.single-st_activity .rhs117-native-booking-dock .st-loader {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-fields {
    display:grid !important;
    grid-template-columns:minmax(0,1.08fr) minmax(0,.82fr) minmax(0,1fr) !important;
    align-items:stretch !important;
    width:100% !important;
    min-height:54px !important;
    margin:0 0 7px !important;
    overflow:visible !important;
    border:1px solid #dbe3ef !important;
    border-radius:12px !important;
    background:#fff !important;
  }

  body.single-st_activity .rhs117-booking-field {
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    min-width:0 !important;
    min-height:54px !important;
    margin:0 !important;
    padding:7px 8px !important;
    border:0 !important;
    border-right:1px solid #e3e8f0 !important;
    border-radius:0 !important;
    background:#fff !important;
    color:#163c77 !important;
    text-align:left !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-booking-field:last-child {
    border-right:0 !important;
  }

  body.single-st_activity .rhs117-booking-field label,
  body.single-st_activity .rhs117-booking-field > label {
    display:block !important;
    margin:0 0 2px !important;
    padding:0 !important;
    color:#77859a !important;
    font-size:9px !important;
    font-weight:700 !important;
    line-height:1.05 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-field .render,
  body.single-st_activity .rhs117-booking-field strong,
  body.single-st_activity .rhs117-booking-field select {
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:0 !important;
    background:transparent !important;
    color:#0e316d !important;
    font-size:11px !important;
    font-weight:780 !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    box-shadow:none !important;
    outline:0 !important;
  }

  body.single-st_activity .rhs117-booking-field--date .date-wrapper,
  body.single-st_activity .rhs117-booking-field--date .check-in-wrapper,
  body.single-st_activity .rhs117-booking-field--time #starttime_box {
    position:static !important;
    display:block !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }

  body.single-st_activity .rhs117-booking-field--date .arrow,
  body.single-st_activity .rhs117-booking-field--date > svg,
  body.single-st_activity .rhs117-booking-field--time > input[type="hidden"] {
    display:none !important;
  }

  /* Three Traveler technical date values remain submitted but are never text. */
  body.single-st_activity .rhs117-booking-form .check-in-input,
  body.single-st_activity .rhs117-booking-form .check-out-input,
  body.single-st_activity .rhs117-booking-form .check-in-out-input {
    position:absolute !important;
    left:-9999px !important;
    display:block !important;
    width:1px !important;
    height:1px !important;
    margin:0 !important;
    padding:0 !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-form .sts-tour-checkout-label.hidden,
  body.single-st_activity .rhs117-booking-form .sts-tour-checkout-label.d-none,
  body.single-st_activity .rhs117-booking-form .sts-tour-checkout-label.rhs117-duplicate-date-hidden {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-field--guests {
    appearance:none !important;
    cursor:pointer !important;
  }
  body.single-st_activity .rhs117-booking-field--guests > span {
    position:absolute !important;
    right:6px !important;
    bottom:8px !important;
    color:#7a8799 !important;
    font-size:10px !important;
  }

  /* Only Voyageurs opens this panel. Date stays the native daterangepicker and
     Heure stays the native select, so the three zones can no longer open the same UI. */
  body.single-st_activity .rhs117-guest-panel {
    position:absolute !important;
    z-index:10090 !important;
    right:9px !important;
    bottom:100% !important;
    left:9px !important;
    display:none !important;
    max-height:56vh !important;
    margin-bottom:7px !important;
    padding:8px 12px !important;
    overflow:auto !important;
    border:1px solid #dbe3ef !important;
    border-radius:14px !important;
    background:#fff !important;
    box-shadow:0 10px 28px rgba(14,43,86,.16) !important;
  }
  body.single-st_activity .rhs117-guest-panel.is-open {
    display:block !important;
  }
  body.single-st_activity .rhs117-guest-panel .guest-wrapper {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:10px !important;
    min-height:52px !important;
    padding:7px 0 !important;
    border-bottom:1px solid #edf1f6 !important;
  }
  body.single-st_activity .rhs117-guest-panel .guest-wrapper:last-child {
    border-bottom:0 !important;
  }
  body.single-st_activity .rhs117-guest-panel .check-in-wrapper label {
    display:block !important;
    margin:0 0 2px !important;
    color:#173b75 !important;
    font-size:12px !important;
    font-weight:780 !important;
  }
  body.single-st_activity .rhs117-guest-panel .check-in-wrapper .render {
    color:#7a8799 !important;
    font-size:10px !important;
  }
  body.single-st_activity .rhs117-guest-panel .st-number-wrapper {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:5px !important;
    width:auto !important;
    min-width:96px !important;
  }
  body.single-st_activity .rhs117-guest-panel .st-number-wrapper .prev,
  body.single-st_activity .rhs117-guest-panel .st-number-wrapper .next,
  body.single-st_activity .rhs117-number-btn {
    display:grid !important;
    place-items:center !important;
    width:29px !important;
    height:29px !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid #cbd7e7 !important;
    border-radius:50% !important;
    background:#fff !important;
    color:#1555c6 !important;
    font-size:17px !important;
    line-height:1 !important;
  }
  body.single-st_activity .rhs117-guest-panel .st-number-wrapper input {
    display:block !important;
    width:31px !important;
    height:29px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#173665 !important;
    font-size:13px !important;
    font-weight:800 !important;
    text-align:center !important;
  }

  body.single-st_activity .rhs117-booking-form .form-pickup,
  body.single-st_activity .rhs117-booking-form .form-more-extra:not(.st-form-starttime),
  body.single-st_activity .rhs117-booking-form .guest_name_input:not(.hidden) {
    max-height:130px !important;
    margin:6px 0 !important;
    overflow:auto !important;
    font-size:11px !important;
  }

  body.single-st_activity .rhs117-booking-action-row {
    display:grid !important;
    grid-template-columns:minmax(0,.88fr) minmax(145px,1.12fr) !important;
    align-items:center !important;
    gap:9px !important;
    width:100% !important;
  }
  body.single-st_activity .rhs117-booking-price {
    min-width:0 !important;
    padding-left:3px !important;
  }
  body.single-st_activity .rhs117-booking-price small,
  body.single-st_activity .rhs117-booking-price span {
    display:block !important;
    margin:0 !important;
    color:#78869a !important;
    font-size:8.5px !important;
    line-height:1.05 !important;
  }
  body.single-st_activity .rhs117-booking-price strong {
    display:block !important;
    margin:1px 0 !important;
    overflow:hidden !important;
    color:#0c326f !important;
    font-size:16px !important;
    font-weight:820 !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }
  body.single-st_activity .rhs117-booking-action-row .submit-group {
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }
  body.single-st_activity .rhs117-booking-action-row .btn-book-ajax,
  body.single-st_activity .rhs117-book-now {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-height:43px !important;
    margin:0 !important;
    padding:0 12px !important;
    border:0 !important;
    border-radius:11px !important;
    background:#0f50cb !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-transform:none !important;
    box-shadow:none !important;
  }
  body.single-st_activity .rhs117-booking-action-row .btn-send-message {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-form .message-wrapper,
  body.single-st_activity .rhs117-booking-form .message-wrapper-2 {
    position:absolute !important;
    right:0 !important;
    bottom:100% !important;
    left:0 !important;
    width:100% !important;
    margin:0 0 7px !important;
    padding:0 !important;
    background:#fff !important;
  }

  body.single-st_activity .daterangepicker,
  body.single-st_activity .daterangepicker.dropdown-menu {
    z-index:10120 !important;
  }

  body.single-st_activity .rhs117-native-activity.rhs117-native-activity-hidden {
    display:none !important;
  }
  body.single-st_activity .rhs117-native-activity.rhs117-native-booking-fallback {
    display:block !important;
  }

  body.single-st_activity .rhs117-mobile-footer {
    display:block !important;
    padding-bottom:calc(128px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width:390px) {
  body.single-st_activity .rhs117-home-brand img,
  body.single-st_activity .rhs117-home-brand .reservaline-brand__image {
    max-width:150px !important;
  }
  body.single-st_activity .rhs117-home-categories__item {
    font-size:9.5px !important;
  }
  body.single-st_activity .rhs117-booking-field {
    padding-right:6px !important;
    padding-left:6px !important;
  }
  body.single-st_activity .rhs117-booking-field .render,
  body.single-st_activity .rhs117-booking-field strong,
  body.single-st_activity .rhs117-booking-field select {
    font-size:10px !important;
  }
}

/* ================================================================
 * V117 booking stabilisation
 * - one canonical Activity form
 * - one visible date value
 * - Traveler owns start-time options
 * - pickup/guest-name/extras collapsed by default
 * - native spinner never leaks into the idle button
 * ================================================================ */
@media (max-width:767px) {
  body.single-st_activity .rhs117-booking-field--date {
    cursor:pointer !important;
    overflow:hidden !important;
  }

  body.single-st_activity .rhs117-booking-field--date .rhs117-native-date-render {
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-field--date .rhs117-date-summary {
    position:relative !important;
    z-index:4 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    width:100% !important;
    min-height:40px !important;
    margin:0 !important;
    padding:0 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-field--date .rhs117-date-summary label,
  body.single-st_activity .rhs117-booking-field--time .rhs117-time-caption {
    display:block !important;
    margin:0 0 3px !important;
    padding:0 !important;
    color:#77859a !important;
    font-size:9px !important;
    font-weight:700 !important;
    line-height:1.05 !important;
  }

  body.single-st_activity .rhs117-booking-field--date .rhs117-date-summary strong,
  body.single-st_activity .rhs117-booking-field--time .rhs117-time-placeholder {
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    color:#0e316d !important;
    font-size:11px !important;
    font-weight:780 !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  /* Keep the daterangepicker anchor exactly on the Date cell. It remains
     transparent but has real geometry, so the popup cannot open off-screen. */
  body.single-st_activity .rhs117-booking-field--date .check-in-out-input {
    position:absolute !important;
    z-index:2 !important;
    inset:0 !important;
    left:0 !important;
    top:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    opacity:0 !important;
    color:transparent !important;
    background:transparent !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-field--date .check-in-input,
  body.single-st_activity .rhs117-booking-field--date .check-out-input {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-booking-field--time {
    overflow:hidden !important;
  }

  body.single-st_activity .rhs117-booking-field--time .rhs117-native-time-label {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-field--time #starttime_box,
  body.single-st_activity .rhs117-booking-field--time .starttime_box {
    position:static !important;
    display:block !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }

  body.single-st_activity .rhs117-booking-field--time:not(.has-time-options) select[name="starttime_tour"],
  body.single-st_activity .rhs117-booking-field--time:not(.has-time-options) .st_tour_starttime {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-field--time.has-time-options .rhs117-time-placeholder {
    display:none !important;
  }

  body.single-st_activity .rhs117-booking-field--time.has-time-options select[name="starttime_tour"],
  body.single-st_activity .rhs117-booking-field--time.has-time-options .st_tour_starttime {
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:20px !important;
    margin:0 !important;
    padding:0 14px 0 0 !important;
    overflow:hidden !important;
    border:0 !important;
    background:transparent !important;
    color:#0e316d !important;
    font-size:11px !important;
    font-weight:780 !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    box-shadow:none !important;
    outline:0 !important;
  }

  body.single-st_activity .rhs117-booking-field--time input[type="hidden"] {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-secondary-toggle {
    display:block !important;
    width:100% !important;
    margin:5px 0 0 !important;
    padding:5px 2px !important;
    border:0 !important;
    background:transparent !important;
    color:#1554c8 !important;
    font-size:10px !important;
    font-weight:700 !important;
    text-align:left !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs117-secondary-options {
    display:none !important;
    max-height:42vh !important;
    margin:4px 0 8px !important;
    padding:8px !important;
    overflow:auto !important;
    border:1px solid #dbe3ef !important;
    border-radius:12px !important;
    background:#fff !important;
  }

  body.single-st_activity .rhs117-secondary-options.is-open {
    display:block !important;
  }

  body.single-st_activity .rhs117-secondary-options .form-pickup,
  body.single-st_activity .rhs117-secondary-options .form-more-extra,
  body.single-st_activity .rhs117-secondary-options .guest_name_input {
    display:block !important;
    width:100% !important;
    margin:0 0 7px !important;
    padding:7px !important;
    border:1px solid #e2e8f1 !important;
    border-radius:10px !important;
    background:#fff !important;
  }

  /* Traveler controls the AJAX request. The permanent native spinner is not
     part of the Reservaline UI and must never appear while the button is idle. */
  body.single-st_activity .rhs117-booking-action-row .rhs117-native-spinner,
  body.single-st_activity .rhs117-booking-action-row .fa-spinner,
  body.single-st_activity .rhs117-booking-action-row .fa-spin {
    display:none !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }

  body.single-st_activity .rhs117-booking-action-row .rhs117-book-label {
    display:inline !important;
    color:inherit !important;
    font:inherit !important;
  }
}

/* ================================================================
 * V117 final Date / Heure correction
 * - the real Traveler range input is the clickable hitbox
 * - Traveler daterangepicker is a mobile modal above the fixed dock
 * - starttime_tour remains the real Traveler select
 * ================================================================ */
@media (max-width:767px) {
  body.single-st_activity .rhs117-booking-field--date {
    overflow:visible !important;
  }

  body.single-st_activity .rhs117-booking-field--date .check-in-out-input.rhs117-native-date-hitbox,
  body.single-st_activity .rhs117-booking-field--date .check-in-out-input {
    position:absolute !important;
    z-index:8 !important;
    inset:0 !important;
    left:0 !important;
    top:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    min-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    opacity:0 !important;
    color:transparent !important;
    background:transparent !important;
    cursor:pointer !important;
    pointer-events:auto !important;
  }

  body.single-st_activity .rhs117-booking-field--date .rhs117-date-summary,
  body.single-st_activity .rhs117-booking-field--date .rhs117-native-date-render {
    pointer-events:none !important;
  }

  body.single-st_activity .rhs117-field-chevron {
    position:absolute !important;
    right:5px !important;
    bottom:8px !important;
    color:#7b8798 !important;
    font-size:10px !important;
    line-height:1 !important;
  }

  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker,
  body.single-st_activity .daterangepicker.dropdown-menu.rhs117-activity-daterangepicker,
  body.single-st_activity .daterangepicker {
    position:fixed !important;
    z-index:120000 !important;
    top:calc(env(safe-area-inset-top, 0px) + 68px) !important;
    right:10px !important;
    bottom:auto !important;
    left:10px !important;
    width:auto !important;
    max-width:none !important;
    max-height:calc(100dvh - 230px) !important;
    margin:0 !important;
    padding:12px !important;
    overflow:auto !important;
    border:1px solid #dce4ef !important;
    border-radius:18px !important;
    background:#fff !important;
    box-shadow:0 16px 44px rgba(7,35,82,.22) !important;
    transform:none !important;
  }

  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker::before,
  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker::after {
    display:none !important;
  }

  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker .calendar,
  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker .calendar-table,
  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker table {
    width:100% !important;
    max-width:none !important;
  }

  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker td,
  body.single-st_activity .daterangepicker.rhs117-activity-daterangepicker th {
    min-width:36px !important;
    height:36px !important;
    font-size:12px !important;
    line-height:36px !important;
  }

  body.single-st_activity .rhs117-booking-field--time {
    overflow:visible !important;
  }

  body.single-st_activity .rhs117-booking-field--time.is-loading-time .rhs117-time-placeholder {
    color:#66758b !important;
  }

  body.single-st_activity .rhs117-booking-field--time.has-time-options select[name="starttime_tour"],
  body.single-st_activity .rhs117-booking-field--time.has-time-options .st_tour_starttime {
    position:relative !important;
    z-index:3 !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

/* V117 — Hour field semantics.
 * The Activity endpoint returns time + free-place count separately. The Hour
 * control deliberately renders only the time. Availability remains metadata. */
@media (max-width: 767px) {
  body.single-st_activity .rhs117-booking-field--time.has-time-options select[name="starttime_tour"],
  body.single-st_activity .rhs117-booking-field--time.has-time-options .st_tour_starttime {
    min-width:0 !important;
    color:#0e316d !important;
    text-overflow:ellipsis !important;
  }

  body.single-st_activity .rhs117-booking-field--time select[name="starttime_tour"] option,
  body.single-st_activity .rhs117-booking-field--time .st_tour_starttime option {
    color:#0e316d !important;
  }
}


/* =============================================================
   V123 — compact single-Attraction top bar
   Full mobile Reservaline header removed from single st_activity.
   Blue header background is kept with Retour left, Favoris + Partager right.
   ============================================================= */
@media (max-width:767px) {
  body.single-st_activity .rhs117-home-header,
  body.single-st_activity .rhs117-mobile-home-header,
  body.single-st_activity .reservaline-mobile-header,
  body.single-st_activity .reservaline-native-blue-header,
  body.single-st_activity .reservaline-category-bar {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.single-st_activity .rhs108-activity-mobile[data-rhs123-detail-shell="1"] {
    display:block !important;
    padding-top:calc(58px + env(safe-area-inset-top, 0px)) !important;
  }

  body.single-st_activity .rhs123-detail-topbar {
    position:fixed !important;
    z-index:10090 !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:calc(58px + env(safe-area-inset-top, 0px)) !important;
    margin:0 !important;
    padding:calc(8px + env(safe-area-inset-top, 0px)) 14px 8px !important;
    border:0 !important;
    background:#073b8f !important;
    background-color:#073b8f !important;
    box-shadow:none !important;
  }

  body.single-st_activity .rhs123-topbar-actions {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    margin-left:auto !important;
  }

  body.single-st_activity .rhs123-topbar-button,
  body.single-st_activity .rhs123-topbar-button:link,
  body.single-st_activity .rhs123-topbar-button:visited {
    position:relative !important;
    display:grid !important;
    place-items:center !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    max-width:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:1px solid rgba(255,255,255,.22) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    text-decoration:none !important;
    box-shadow:none !important;
    line-height:1 !important;
    -webkit-appearance:none !important;
    appearance:none !important;
  }

  body.single-st_activity .rhs123-topbar-back {
    margin-right:auto !important;
  }

  body.single-st_activity .rhs123-topbar-button::before,
  body.single-st_activity .rhs123-topbar-button::after {
    display:none !important;
    content:none !important;
  }

  body.single-st_activity .rhs123-topbar-button svg,
  body.single-st_activity .rhs123-topbar-button svg * {
    display:block !important;
    width:20px !important;
    height:20px !important;
    max-width:20px !important;
    max-height:20px !important;
    margin:0 !important;
    padding:0 !important;
    fill:none !important;
    stroke:currentColor !important;
    stroke-width:2 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
    vector-effect:non-scaling-stroke !important;
  }

  body.single-st_activity .rhs123-topbar-button.rhs117-favorite.is-added {
    color:#f6c344 !important;
    border-color:rgba(246,195,68,.45) !important;
    background:rgba(246,195,68,.10) !important;
  }

  body.single-st_activity .rhs123-topbar-button.rhs117-favorite.is-added svg {
    fill:#f6c344 !important;
    stroke:#f6c344 !important;
  }

  body.single-st_activity .rhs123-topbar-button .lds-dual-ring {
    display:none !important;
  }

  body.single-st_activity .rhs123-topbar-button.is-loading {
    opacity:.55 !important;
    pointer-events:none !important;
  }

  /* Gallery no longer owns Share/Favorite controls in V123. */
  body.single-st_activity .rhs117-gallery-actions {
    display:none !important;
  }
}
