/* Source: styles.css */
@font-face {
  font-family: "Anton Local";
  src: url("./assets/Anton-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ground: #ecefeb;
  --paper: #f8faf8;
  --slate: #193d42;
  --slate-deep: #17363b;
  --orange: #f1773c;
  --steel: #b4c4c7;
  --muted: #536168;
  --line: rgba(255, 255, 255, .3);
  --font-body: "Avenir Next", Avenir, "Helvetica Neue", sans-serif;
  --font-display: "Anton Local", "DIN Condensed", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--ground); color: var(--slate-deep); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
button { cursor: pointer; }
button, a, input { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--orange); color: white; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
input:focus-visible { outline-offset: 1px; }
a { color: inherit; text-decoration: none; text-underline-offset: .18em; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; z-index: 20; top: -80px; left: 16px; padding: 12px 18px; background: var(--slate); color: white; }
.skip-link:focus { top: 12px; }

.site-header { height: 82px; display: grid; grid-template-columns: minmax(275px, 29%) 1fr minmax(285px, 20%) 62px; align-items: center; background: var(--paper); padding-left: clamp(24px, 3.8vw, 60px); border-bottom: 1px solid rgba(25, 61, 66, .09); }
.brand { white-space: nowrap; font-size: clamp(25px, 2.25vw, 36px); font-weight: 800; letter-spacing: -.045em; line-height: 1; width: fit-content; }
.desktop-nav { display: flex; justify-content: center; align-items: center; gap: clamp(20px, 3.2vw, 54px); height: 100%; white-space: nowrap; }
.desktop-nav a { font-size: 17px; font-weight: 650; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { text-decoration: underline; }
.category-search { display: flex; align-items: center; gap: 16px; min-width: 0; height: 100%; padding: 0 18px 0 4px; }
.category-search input { width: 100%; min-width: 0; appearance: none; border: 0; outline: 0; background: transparent; color: var(--slate); font-size: 17px; font-weight: 600; }
.category-search input::placeholder { color: #607078; opacity: 1; }
.category-search input::-webkit-search-cancel-button { cursor: pointer; }
.search-mark { width: 20px; height: 20px; border: 3px solid var(--slate); border-radius: 50%; position: relative; flex: none; transform: scale(.82); }
.search-mark::after { content: ""; position: absolute; width: 10px; height: 3px; background: var(--slate); right: -8px; bottom: -4px; transform: rotate(47deg); transform-origin: left center; }
.menu-toggle { width: 62px; height: 50px; padding: 10px 12px; border: 0; border-left: 1px solid rgba(25, 61, 66, .25); background: transparent; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.menu-toggle span { display: block; width: 25px; height: 2px; background: var(--slate); margin-left: auto; }
.menu-toggle span:nth-child(2) { width: 19px; }
.menu-toggle:hover span:nth-child(2) { width: 25px; }
.mobile-nav { display: none; }
.mobile-nav:not([hidden]) { position: absolute; z-index: 10; top: 82px; right: 0; width: 340px; display: flex; flex-direction: column; padding: 18px 26px 28px; background: var(--paper); box-shadow: 0 18px 36px rgba(12, 33, 37, .14); }
.mobile-nav a { padding: 12px 0; font-size: 18px; font-weight: 700; border-bottom: 1px solid rgba(25,61,66,.12); }
.mobile-nav label { padding-top: 20px; padding-bottom: 8px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.mobile-nav input { border: 1px solid rgba(25,61,66,.35); background: white; padding: 12px; border-radius: 0; font-size: 17px; }

.hero { min-height: 650px; height: calc(100svh - 192px); display: grid; grid-template-columns: 41.8% 58.2%; }
.hero-intro { min-width: 0; background: var(--ground); display: flex; align-items: center; padding: 2rem clamp(28px, 3.9vw, 62px); }
.hero-copy { width: 100%; min-width: 0; transform: translateY(36px); }
.hero h1 { margin: 0; font-family: var(--font-display); font-size: clamp(88px, 8.2vw, 132px); font-weight: 400; line-height: 1; letter-spacing: 0; color: var(--slate-deep); }
.hero h1 span { display: block; white-space: nowrap; }
.hero-intro p { margin: 39px 0 40px; color: var(--muted); font-size: clamp(22px, 2vw, 31px); line-height: 1.3; font-weight: 550; letter-spacing: -.028em; }
.primary-action { width: 355px; max-width: 100%; min-height: 87px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 34px; background: var(--orange); color: var(--slate-deep); font-size: 24px; font-weight: 700; line-height: 1.1; }
.primary-action:hover { background: #f9864d; }
.primary-action:focus-visible { outline-offset: -6px; outline-color: var(--slate-deep); }
.arrow { position: relative; width: 33px; height: 2.5px; display: inline-block; flex: none; background: currentColor; }
.arrow::after { content: ""; position: absolute; right: 1px; top: 50%; width: 16px; height: 16px; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.arrow--action { width: 30px; }

.activity-index { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--slate); }
.activity-lane { flex: 1 1 0; min-height: 0; width: 100%; border: 0; border-top: 1px solid var(--line); color: white; background: var(--slate); position: relative; padding: 0; text-align: left; overflow: hidden; isolation: isolate; transition: flex-grow .55s cubic-bezier(.16, 1, .3, 1); }
.activity-lane:first-child { border-top: 0; }
.activity-lane.is-active { flex-grow: 2.15; background: var(--orange); color: var(--slate-deep); }
.activity-lane img { position: absolute; inset: 0 0 0 auto; width: 70%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.86) contrast(.97); transition: transform .7s cubic-bezier(.16, 1, .3, 1), filter .4s ease; z-index: 0; }
.activity-lane:hover img, .activity-lane:focus-visible img { transform: scale(1.035); filter: saturate(1) contrast(1); }
.lane-field { position: absolute; inset: 0; background: var(--slate); clip-path: polygon(0 0, 45% 0, 36% 100%, 0 100%); z-index: 1; }
.is-active .lane-field { background: var(--orange); }
.lane-content { position: relative; z-index: 2; width: 39%; height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 33px; align-items: center; gap: 12px; padding: 0 12px 0 clamp(24px, 2.1vw, 35px); }
.lane-label { display: block; min-width: 0; max-width: 100%; font-size: clamp(24px, 2.5vw, 39px); font-weight: 750; line-height: 1.03; letter-spacing: -.03em; white-space: normal; text-wrap: balance; }
.lane-content .arrow { margin: 0; justify-self: end; }
.activity-lane[data-category="rafting"]:not(.is-active) .lane-label,
.activity-lane[data-category="private"]:not(.is-active) .lane-label { font-size: clamp(23px, 2.05vw, 32px); }
.is-active .lane-content { width: 39%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 26px; padding-right: 18px; }
.is-active .lane-label { font-family: var(--font-display); font-size: clamp(48px, 4vw, 64px); font-weight: 400; letter-spacing: 0; line-height: 1; }
.activity-lane[data-category="atv"].is-active .lane-label { font-size: clamp(53px, 4.35vw, 70px); }
.activity-lane[data-category="rafting"].is-active .lane-label,
.activity-lane[data-category="private"].is-active .lane-label { font-size: clamp(42px, 3.5vw, 56px); }
.is-active .lane-content .arrow { width: 48px; height: 3px; margin: 0; }
.is-active .lane-content .arrow::after { width: 23px; height: 23px; border-width: 3px; }
.activity-lane:focus-visible { outline: 4px solid white; outline-offset: -6px; z-index: 3; }
.activity-lane.is-active:focus-visible { outline-color: var(--slate-deep); }

.booking-notes { height: 110px; display: flex; align-items: center; padding: 0 clamp(28px, 4vw, 65px); background: var(--steel); gap: 40px; color: var(--slate-deep); }
.booking-notes p { height: 56px; margin: 0; display: flex; align-items: center; gap: 23px; font-size: 20px; font-weight: 650; letter-spacing: -.025em; white-space: nowrap; }
.booking-notes p + p { border-left: 1px solid rgba(25, 61, 66, .3); padding-left: 39px; }
.note-icon { display: inline-block; flex: none; position: relative; width: 40px; height: 31px; }
.note-icon--card { border: 3px solid var(--slate); border-radius: 4px; }
.note-icon--card::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; height: 3px; background: var(--slate); }
.note-icon--pickup { width: 43px; height: 23px; margin-top: -5px; border: 3px solid var(--slate); border-radius: 5px 5px 2px 2px; }
.note-icon--pickup::before, .note-icon--pickup::after { content: ""; width: 7px; height: 7px; border: 2px solid var(--slate); border-radius: 50%; background: var(--steel); position: absolute; bottom: -10px; }
.note-icon--pickup::before { left: 4px; }
.note-icon--pickup::after { right: 4px; }

.activity-preview { padding: clamp(60px, 8vw, 120px) clamp(28px, 4vw, 65px); display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; min-height: 420px; background: var(--paper); border-top: 1px solid rgba(25,61,66,.1); }
.activity-preview__heading, .activity-preview__body { min-width: 0; }
.activity-preview h2 { margin: 0; font-family: var(--font-display); font-size: clamp(56px, 5.6vw, 96px); font-weight: 400; letter-spacing: 0; line-height: 1; text-wrap: balance; }
.activity-preview__body { max-width: 540px; padding-top: 44px; }
.activity-preview__body > p:first-child { margin: 0 0 26px; font-size: clamp(24px, 2.6vw, 38px); line-height: 1.18; font-weight: 650; letter-spacing: -.035em; }
.preview-state { max-width: 54ch; margin: 0; padding-top: 23px; border-top: 1px solid rgba(25,61,66,.25); font-size: 16px; line-height: 1.55; color: var(--muted); }
.preview-product-link { width: fit-content; display: flex; align-items: center; gap: 20px; margin-top: 27px; padding: 12px 0; border-bottom: 2px solid var(--slate); font-size: 18px; font-weight: 750; }
.preview-product-link[hidden] { display: none; }
.preview-product-link:hover { gap: 28px; }
.preview-product-link .arrow { width: 23px; }
.preview-product-link .arrow::after { width: 12px; height: 12px; }
.site-footer { display: flex; align-items: baseline; justify-content: space-between; gap: 40px; background: var(--slate-deep); color: #e5eeec; padding: 35px clamp(28px, 4vw, 65px); }
.site-footer span { white-space: nowrap; font-weight: 800; font-size: 19px; letter-spacing: -.04em; }
.site-footer p { margin: 0; max-width: 690px; font-size: 13px; line-height: 1.5; color: #c3d4d4; }

@media (max-width: 1190px) {
  .site-header { grid-template-columns: minmax(245px, 30%) 1fr minmax(210px, 24%) 56px; padding-left: 25px; }
  .desktop-nav { gap: 20px; }
  .desktop-nav a, .category-search input { font-size: 15px; }
  .hero { min-height: 690px; height: calc(100svh - 172px); }
  .hero-intro { padding-left: 32px; padding-right: 18px; }
  .hero h1 { font-size: clamp(80px, 10.2vw, 120px); }
  .hero-intro p { font-size: 24px; }
  .wide-only { display: none; }
  .lane-content { gap: 8px; }
  .lane-label { font-size: clamp(23px, 2.6vw, 33px); }
  .activity-lane[data-category="rafting"]:not(.is-active) .lane-label,
  .activity-lane[data-category="private"]:not(.is-active) .lane-label { font-size: clamp(21px, 2.3vw, 28px); }
  .is-active .lane-label { font-size: clamp(43px, 4.7vw, 58px); }
  .activity-lane[data-category="atv"].is-active .lane-label { font-size: clamp(49px, 5vw, 62px); }
  .activity-lane[data-category="rafting"].is-active .lane-label,
  .activity-lane[data-category="private"].is-active .lane-label { font-size: clamp(40px, 4.2vw, 52px); }
}

@media (max-width: 800px) {
  .site-header { height: 68px; grid-template-columns: minmax(0, 1fr) 44px; padding-left: 22px; padding-right: 16px; }
  .brand { max-width: 100%; font-size: clamp(21px, 3.4vw, 26px); }
  .desktop-nav, .category-search { display: none; }
  .menu-toggle { width: 44px; height: 48px; padding-right: 2px; }
  .mobile-nav:not([hidden]) { top: 68px; width: 100%; gap: 0; padding: 15px 24px 27px; border-bottom: 1px solid rgba(25,61,66,.15); }
  .mobile-nav a { padding: 11px 0; }
  .hero { height: auto; min-height: 0; display: block; }
  .hero-intro { min-height: min(52svh, 520px); padding: 46px 24px 50px; }
  .hero-copy { transform: none; }
  .hero h1 { font-size: clamp(58px, 9.7vw, 80px); }
  .hero h1 span { white-space: normal; }
  .hero-intro p { max-width: 30ch; margin: 24px 0 29px; font-size: clamp(19px, 2.6vw, 22px); }
  .primary-action { min-height: 66px; width: min(100%, 300px); font-size: 19px; padding: 0 22px; }
  .activity-index { height: 660px; }
  .lane-field { clip-path: polygon(0 0, 70% 0, 62% 100%, 0 100%); }
  .lane-content { width: 62%; grid-template-columns: minmax(0, 1fr) 24px; gap: 8px; padding-left: 22px; padding-right: 10px; }
  .lane-label { font-size: clamp(20px, 3.7vw, 28px); }
  .activity-lane[data-category="rafting"]:not(.is-active) .lane-label,
  .activity-lane[data-category="private"]:not(.is-active) .lane-label { font-size: clamp(19px, 3.2vw, 25px); }
  .is-active .lane-content { width: 62%; gap: 18px; padding-right: 14px; }
  .is-active .lane-label,
  .activity-lane[data-category="atv"].is-active .lane-label,
  .activity-lane[data-category="rafting"].is-active .lane-label,
  .activity-lane[data-category="private"].is-active .lane-label { font-size: clamp(42px, 7vw, 56px); }
  .booking-notes { height: auto; min-height: 100px; gap: 14px; padding: 20px 24px; flex-wrap: wrap; }
  .booking-notes p { font-size: 17px; gap: 14px; height: 40px; }
  .booking-notes p + p { border-left: 0; padding-left: 0; }
  .note-icon { transform: scale(.82); transform-origin: left center; margin-right: -5px; }
  .activity-preview { grid-template-columns: minmax(0, 1fr); gap: 24px; min-height: 0; padding: 75px 25px; }
  .activity-preview h2 { font-size: clamp(46px, 9vw, 70px); text-wrap: balance; }
  .activity-preview__body { padding-top: 0; }
  .site-footer { padding: 30px 25px; flex-direction: column; gap: 15px; }
}

@media (max-width: 500px) {
  .hero-intro { min-height: 0; padding: 42px 22px 48px; }
  .hero h1 { font-size: clamp(48px, 13.5vw, 64px); }
  .hero-intro p { max-width: 28ch; font-size: 18px; line-height: 1.42; }
  .wide-only { display: none; }
  .primary-action { width: min(100%, 280px); min-height: 64px; padding: 0 20px; font-size: 18px; }
  .activity-index { height: 590px; }
  .activity-lane img { width: 72%; }
  .lane-content { width: 62%; grid-template-columns: minmax(0, 1fr) 20px; padding-left: 20px; }
  .lane-label { font-size: clamp(18px, 4.8vw, 22px); }
  .activity-lane[data-category="rafting"]:not(.is-active) .lane-label,
  .activity-lane[data-category="private"]:not(.is-active) .lane-label { font-size: clamp(18px, 4.4vw, 21px); }
  .lane-content .arrow { width: 20px; }
  .lane-content .arrow::after { width: 12px; height: 12px; }
  .is-active .lane-content { width: 62%; gap: 16px; padding-right: 12px; }
  .is-active .lane-label,
  .activity-lane[data-category="atv"].is-active .lane-label,
  .activity-lane[data-category="rafting"].is-active .lane-label,
  .activity-lane[data-category="private"].is-active .lane-label { font-size: clamp(36px, 9vw, 45px); }
  .is-active .lane-content .arrow { width: 35px; }
  .is-active .lane-content .arrow::after { width: 17px; height: 17px; }
  .booking-notes { gap: 4px; }
  .booking-notes p { width: 100%; font-size: 16px; white-space: normal; }
  .activity-preview h2 { font-size: clamp(42px, 10vw, 54px); }
}

@media (min-width: 801px) and (max-height: 800px) {
  .hero { min-height: 480px; height: calc(100svh - 192px); }
  .hero-copy { transform: none; }
  .hero h1 { font-size: clamp(78px, 7vw, 108px); }
  .hero-intro p { margin: 26px 0 30px; font-size: clamp(20px, 1.7vw, 24px); }
  .primary-action { width: 310px; min-height: 70px; padding: 0 27px; font-size: 20px; }
  .is-active .lane-content { gap: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .activity-lane, .activity-lane img { transition: none; }
}

/* Source: product.css */
/* KUBER product detail extends the Bali Wayfinding system without reusing the split-index composition. */
.product-page { background: var(--paper); caret-color: var(--slate-deep); scrollbar-color: var(--steel) var(--ground); }
.product-page ::selection { background: var(--orange); color: var(--slate-deep); }
.product-page .site-header { grid-template-columns: minmax(260px, 31%) 1fr 62px; padding-right: clamp(20px, 3vw, 48px); }
.product-page .desktop-nav { justify-content: flex-end; padding-right: clamp(20px, 3vw, 46px); }
.product-page .mobile-nav:not([hidden]) { right: clamp(20px, 3vw, 48px); }
.product-page a:not(.brand):not(.primary-action):not(.skip-link):focus-visible { outline-color: var(--slate-deep); }
.product-page select { font: inherit; color: inherit; }
.product-page select:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

.breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 54px; padding: 12px clamp(24px, 4vw, 64px); background: var(--ground); color: var(--muted); font-size: 13px; font-weight: 650; }
.breadcrumbs a { text-decoration: underline; text-decoration-color: transparent; }
.breadcrumbs a:hover { text-decoration-color: currentColor; }
.breadcrumbs [aria-current] { color: var(--slate-deep); }

.product-hero { display: grid; grid-template-columns: 51% 49%; min-height: min(620px, calc(100svh - 136px)); background: var(--ground); }
.product-hero__copy { padding: clamp(48px, 5.4vw, 90px) clamp(28px, 4vw, 64px) clamp(48px, 5vw, 76px); display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 44px; min-width: 0; }
.product-hero h1 { max-width: 11ch; margin: 0; font: 400 clamp(56px, 6.7vw, 96px)/1.06 var(--font-display); letter-spacing: -.012em; }
.product-hero__copy p { max-width: 34ch; margin: 30px 0 0; font-size: clamp(20px, 1.9vw, 27px); line-height: 1.32; font-weight: 550; letter-spacing: -.025em; color: var(--muted); }
.product-hero__action { width: min(350px, 100%); min-height: 76px; font-size: 21px; }
.product-hero__media { min-width: 0; margin: 0; position: relative; overflow: hidden; background: var(--slate); }
.product-hero__media img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; object-position: center; filter: saturate(.8) contrast(.96); }
.product-hero__media figcaption { position: absolute; right: 0; bottom: 0; max-width: 100%; padding: 13px 19px; color: white; background: var(--slate-deep); font-size: 13px; line-height: 1.35; font-weight: 600; }

.product-facts { display: grid; grid-template-columns: 1fr 1fr; min-height: 104px; background: var(--steel); padding: 0 clamp(28px, 4vw, 64px); }
.product-facts p { display: flex; align-items: baseline; gap: 13px; margin: 0; padding: 29px 0; font-size: 16px; line-height: 1.35; }
.product-facts p + p { padding-left: clamp(24px, 4vw, 64px); }
.product-facts strong { white-space: nowrap; font-size: 21px; line-height: 1.2; }
.product-facts span { max-width: 35ch; }

.gallery-strip { display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); }
.gallery-strip figure { min-width: 0; margin: 0; position: relative; background: var(--slate); }
.gallery-strip img { width: 100%; height: clamp(220px, 23vw, 380px); object-fit: cover; filter: saturate(.88); }
.gallery-strip figure:first-child img { object-position: center 58%; }
.gallery-strip figcaption { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 50px; padding: 11px clamp(16px, 2vw, 30px); background: var(--slate-deep); color: white; font-size: 16px; font-weight: 750; }
.gallery-strip figcaption span { color: var(--steel); font-size: 12px; font-weight: 600; }

.track-section { padding: clamp(76px, 8vw, 126px) clamp(28px, 4vw, 64px); background: var(--slate); color: white; scroll-margin-top: 20px; }
.track-section__intro { display: grid; grid-template-columns: 51% 49%; align-items: end; gap: 0; padding-bottom: 54px; }
.track-section h2 { max-width: 11ch; margin: 0; font: 400 clamp(56px, 6.2vw, 92px)/1.05 var(--font-display); letter-spacing: -.012em; }
.track-section__intro p { max-width: 37ch; margin: 0 0 5px; color: var(--steel); font-size: clamp(19px, 1.8vw, 26px); line-height: 1.4; font-weight: 550; letter-spacing: -.02em; }
.track-comparison { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.36); border-bottom: 1px solid rgba(255,255,255,.36); }
.track-comparison > div { padding: 29px clamp(24px, 3.5vw, 55px) 35px 0; }
.track-comparison > div + div { padding-left: clamp(24px, 3.5vw, 55px); border-left: 1px solid rgba(255,255,255,.36); }
.track-comparison h3 { margin: 0 0 15px; font: 400 44px/1.05 var(--font-display); }
.track-comparison p { max-width: 42ch; margin: 0; color: var(--steel); font-size: 16px; line-height: 1.55; }
.track-ledger { display: grid; grid-template-columns: 35% minmax(0, 1fr); column-gap: 5%; padding-top: clamp(65px, 7vw, 105px); }
.track-ledger__title h3 { max-width: 13ch; margin: 0 0 13px; font: 400 clamp(36px, 3.6vw, 53px)/1.1 var(--font-display); }
.track-ledger__title p { margin: 0; color: var(--steel); font-size: 14px; }
.track-ledger ol { margin: 0; padding: 0; list-style: none; counter-reset: track; border-top: 1px solid rgba(255,255,255,.36); }
.track-ledger li { counter-increment: track; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: baseline; gap: 18px; min-height: 65px; padding: 19px 12px 15px 0; border-bottom: 1px solid rgba(255,255,255,.36); }
.track-ledger li::before { content: counter(track, decimal-leading-zero); color: var(--steel); font-size: 14px; font-variant-numeric: tabular-nums; }
.track-ledger li span { font-size: clamp(17px, 1.65vw, 23px); line-height: 1.22; font-weight: 700; }
.track-ledger li small { color: var(--steel); font-size: 13px; line-height: 1.3; text-align: right; white-space: nowrap; }
.track-ledger li.track-ledger__premium { padding-left: 12px; background: var(--steel); color: var(--slate-deep); border-color: var(--steel); }
.track-ledger li.track-ledger__premium::before, .track-ledger .track-ledger__premium small { color: var(--slate-deep); font-weight: 750; }
.track-ledger__note { grid-column: 2; max-width: 62ch; margin: 19px 0 0; color: var(--steel); font-size: 14px; line-height: 1.5; }
.track-ledger__action { grid-column: 2; display: flex; align-items: center; justify-content: space-between; width: min(370px, 100%); gap: 20px; margin-top: 38px; padding: 14px 0; border-bottom: 2px solid white; font-size: 18px; font-weight: 750; }
.track-ledger__action:hover .arrow { transform: translateX(7px); }
.track-ledger__action .arrow { width: 27px; transition: transform .2s cubic-bezier(.16,1,.3,1); }
.track-ledger__action .arrow::after { width: 13px; height: 13px; }

.ride-section { padding: clamp(74px, 8vw, 130px) clamp(28px, 4vw, 64px) clamp(90px, 9vw, 150px); background: var(--paper); }
.section-intro { display: grid; grid-template-columns: 58% 42%; align-items: end; gap: 0; border-bottom: 1px solid rgba(25,61,66,.3); padding-bottom: 33px; }
.section-intro h2, .place-section h2, .terms-section h2 { font: 400 clamp(60px, 6.2vw, 94px)/1.06 var(--font-display); letter-spacing: -.01em; margin: 0; }
.section-intro p { max-width: 37ch; margin: 0 0 5px; color: var(--muted); font-size: clamp(18px, 1.7vw, 23px); line-height: 1.38; font-weight: 550; }
.ride-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, 38%); gap: clamp(44px, 6vw, 105px); align-items: start; padding-top: 44px; }
.ride-controls { min-width: 0; }
.ride-options { border: 0; padding: 0; margin: 0; min-width: 0; }
.ride-options legend { width: 100%; padding: 0 0 19px; font-size: 19px; font-weight: 800; }
.package-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 20px 0 11px; border-top: 1px solid rgba(25,61,66,.5); }
.package-heading--second { margin-top: 31px; }
.package-heading h3 { font: 400 37px/1.1 var(--font-display); margin: 0; }
.package-heading p { margin: 0; max-width: 29ch; color: var(--muted); text-align: right; font-size: 14px; line-height: 1.4; }
.ride-option { display: grid; grid-template-columns: minmax(0, 1fr) auto 154px; align-items: center; gap: 20px; min-height: 94px; border-bottom: 1px solid rgba(25,61,66,.24); padding: 13px 16px; transition: background-color .18s ease; }
.ride-option[data-selected="true"] { background: var(--orange); border-color: var(--orange); }
.ride-option__name { font-size: 20px; font-weight: 750; line-height: 1.2; }
.ride-option small { display: block; font-size: 13px; line-height: 1.4; font-weight: 550; }
.ride-option__name small { color: var(--muted); margin-top: 3px; }
.ride-option[data-selected="true"] small { color: var(--slate-deep); }
.ride-option__price { font-size: 20px; font-weight: 800; line-height: 1.2; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

.ride-quantity { display: grid; grid-template-columns: 46px 52px 46px; align-items: center; height: 52px; border: 1px solid var(--slate); background: var(--paper); }
.ride-quantity button { width: 46px; height: 50px; border: 0; background: transparent; color: var(--slate-deep); font-size: 25px; line-height: 1; cursor: pointer; }
.ride-quantity button:hover:not(:disabled) { background: var(--steel); }
.ride-quantity button:active:not(:disabled) { transform: translateY(1px); }
.ride-quantity button:focus-visible { outline: 3px solid var(--slate-deep); outline-offset: -3px; }
.ride-quantity button:disabled { color: #8a999b; cursor: not-allowed; }
.ride-quantity output { min-width: 52px; text-align: center; font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; }

.ride-selection-note { display: flex; justify-content: space-between; align-items: baseline; gap: 28px; padding: 28px 0 31px; border-bottom: 1px solid rgba(25,61,66,.3); }
.ride-selection-note strong { flex: none; font-size: 18px; line-height: 1.3; }
.ride-selection-note p { max-width: 44ch; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; text-align: right; }

.pickup-control { padding-top: 42px; scroll-margin-top: 20px; }
.pickup-control label { display: block; margin-bottom: 7px; font-size: 20px; font-weight: 800; }
.pickup-control p { max-width: 54ch; margin: 0 0 19px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.pickup-control select { display: block; width: 100%; min-height: 58px; padding: 12px 44px 12px 16px; border: 1px solid var(--slate); border-radius: 0; background-color: white; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' fill='none' stroke='%2317363b' stroke-width='2'/%3E%3C/svg%3E"); background-position: right 17px center; background-repeat: no-repeat; appearance: none; cursor: pointer; font-size: 16px; font-weight: 650; }
.pickup-control .pickup-note { margin: 11px 0 0; font-size: 13px; }

.fare-panel { position: sticky; top: 28px; padding: clamp(28px, 3vw, 46px); background: var(--slate-deep); color: white; }
.fare-panel h3 { margin: 0 0 5px; font: 400 clamp(33px, 3.1vw, 48px)/1.08 var(--font-display); }
.fare-panel__selection { margin: 0 0 41px; color: var(--steel); font-size: 15px; }
.fare-lines { margin: 0; border-top: 1px solid rgba(255,255,255,.35); }
.fare-lines div { display: flex; justify-content: space-between; gap: 14px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.35); font-size: 14px; line-height: 1.4; }
.fare-lines dt { color: var(--steel); }
.fare-lines dd { margin: 0; flex: none; text-align: right; font-weight: 750; font-variant-numeric: tabular-nums; }
.fare-total { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 25px 0 6px; font-size: 15px; }
.fare-total strong { font-size: clamp(22px, 2vw, 31px); line-height: 1.18; font-variant-numeric: tabular-nums; text-align: right; }
.fare-panel__caveat { margin: 15px 0 34px; max-width: 42ch; color: var(--steel); font-size: 13px; line-height: 1.5; }
.booking-disabled { width: 100%; min-height: 64px; border: 0; background: var(--steel); color: var(--slate-deep); font-size: 18px; font-weight: 800; cursor: not-allowed; opacity: 1; }
.booking-preview-link { width: 100%; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 21px; background: var(--orange); color: var(--slate-deep); font-size: 18px; font-weight: 800; }
.booking-preview-link:hover { background: #f9864d; }
.booking-preview-link:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.booking-preview-link .arrow { width: 26px; }
.booking-preview-link .arrow::after { width: 13px; height: 13px; }
.fare-panel__status { max-width: 38ch; margin: 13px 0 0; color: var(--steel); font-size: 13px; line-height: 1.45; }
.calculator-status { margin: 19px 0 0; padding: 13px 16px; background: var(--steel); color: var(--slate-deep); font-size: 14px; font-weight: 700; line-height: 1.4; }
.mobile-booking-bar { display: none; }

.place-section, .terms-section { display: grid; grid-template-columns: 43% 57%; gap: 0; padding: clamp(75px, 8vw, 130px) clamp(28px, 4vw, 64px); }
.place-section { background: var(--steel); }
.place-section__detail { padding: 9px 0 0 clamp(22px, 4vw, 70px); }
.place-section__detail > p:first-child { max-width: 35ch; margin: 0 0 32px; font-size: clamp(20px, 1.8vw, 27px); line-height: 1.4; }
.place-section__detail strong { font-size: 1.08em; }
.place-section__map { display: block; width: 100%; height: clamp(280px, 27vw, 390px); margin: 0 0 25px; border: 0; background: var(--ground); }
.place-section__detail a { display: flex; align-items: center; width: fit-content; gap: 22px; padding: 14px 0; border-top: 1px solid var(--slate); border-bottom: 1px solid var(--slate); font-size: 16px; font-weight: 800; }
.place-section__detail a:hover { gap: 30px; }
.place-section__detail .arrow { width: 24px; }
.place-section__detail .arrow::after { width: 12px; height: 12px; }
.place-section__note { max-width: 49ch; margin: 24px 0 0; color: var(--slate); font-size: 14px; line-height: 1.5; }
.terms-section { background: var(--paper); }
.terms-section h2 { font-size: clamp(54px, 5.6vw, 84px); }
.terms-list { padding-left: clamp(22px, 4vw, 70px); }
.terms-list > div { display: grid; grid-template-columns: 31% 1fr; gap: 22px; padding: 24px 0; border-top: 1px solid rgba(25,61,66,.3); }
.terms-list > div:last-child { border-bottom: 1px solid rgba(25,61,66,.3); }
.terms-list h3 { margin: 0; font-size: 17px; line-height: 1.35; }
.terms-list p { margin: 0; max-width: 47ch; color: var(--muted); font-size: 15px; line-height: 1.55; }
.product-page .site-footer { align-items: center; }
.product-page .site-footer a { flex: none; text-decoration: underline; text-underline-offset: .24em; font-size: 14px; font-weight: 750; }

@media (max-width: 1050px) {
  .product-page .site-header { grid-template-columns: minmax(230px, 29%) 1fr 56px; }
  .product-page .desktop-nav { gap: 24px; padding-right: 20px; }
  .product-page .desktop-nav a { font-size: 15px; }
  .product-hero { grid-template-columns: 51% 49%; }
  .ride-layout { grid-template-columns: minmax(0, 1fr) minmax(310px, 39%); gap: 32px; }
  .ride-option { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .ride-quantity { grid-column: 1 / -1; justify-self: end; }
  .ride-option__price { font-size: 17px; }
  .product-facts p { display: block; }
  .product-facts strong { display: block; margin-bottom: 4px; }
}

@media (max-width: 800px) {
  .product-page.has-mobile-booking-bar { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .mobile-booking-bar:not([hidden]) { position: fixed; inset: auto 0 0; z-index: 60; display: grid; grid-template-columns: minmax(0, 1fr) minmax(154px, 43%); align-items: stretch; gap: 12px; padding: 11px 20px calc(11px + env(safe-area-inset-bottom)); background: #29464b; color: white; border-top: 1px solid rgba(255,255,255,.34); }
  .mobile-booking-bar__estimate { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
  .mobile-booking-bar__estimate span { overflow: hidden; color: #d3dfe0; font-size: 13px; line-height: 1.25; white-space: nowrap; text-overflow: ellipsis; }
  .mobile-booking-bar__estimate strong { margin-top: 3px; font: 400 27px/1.08 var(--font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .mobile-booking-bar a { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 0 14px; background: var(--orange); color: var(--slate-deep); font-size: 16px; font-weight: 800; white-space: nowrap; }
  .mobile-booking-bar a:hover { background: var(--orange-hover); }
  .mobile-booking-bar a:focus-visible { outline: 3px solid white; outline-offset: -4px; }
  .mobile-booking-bar svg { flex: none; }
  .product-page .site-header { grid-template-columns: minmax(0, 1fr) 44px; padding-right: 16px; }
  .product-page .mobile-nav:not([hidden]) { right: 0; }
  .breadcrumbs { padding: 10px 24px; min-height: 48px; font-size: 12px; }
  .product-hero { min-height: 0; grid-template-columns: 1fr; }
  .product-hero__copy { padding: 64px 24px 54px; gap: 38px; }
  .product-hero h1 { font-size: clamp(63px, 11vw, 88px); }
  .product-hero__copy p { margin-top: 24px; font-size: clamp(21px, 3vw, 24px); }
  .product-hero__action { min-height: 69px; }
  .product-hero__media { height: min(53vw, 460px); min-height: 300px; }
  .product-hero__media img { min-height: 0; }
  .product-facts { padding: 0 24px; }
  .product-facts p + p { padding-left: 25px; }
  .gallery-strip img { height: clamp(210px, 30vw, 300px); }
  .track-section { padding: 84px 24px 96px; }
  .track-section__intro { grid-template-columns: 1fr; gap: 27px; padding-bottom: 40px; }
  .track-section h2 { font-size: clamp(60px, 10vw, 80px); }
  .track-section__intro p { max-width: 46ch; }
  .track-ledger { grid-template-columns: 1fr; gap: 30px; }
  .track-ledger__title h3 { max-width: none; }
  .track-ledger__note, .track-ledger__action { grid-column: 1; }
  .track-ledger__note { margin-top: -9px; }
  .track-ledger__action { margin-top: 2px; }
  .ride-section { padding: 85px 24px 100px; }
  .section-intro { grid-template-columns: 1fr; gap: 27px; }
  .section-intro h2, .place-section h2 { font-size: clamp(67px, 10vw, 86px); }
  .section-intro p { max-width: 43ch; }
  .ride-layout { grid-template-columns: 1fr; gap: 52px; }
  .fare-panel { position: static; }
  .place-section, .terms-section { grid-template-columns: 1fr; gap: 35px; padding: 88px 24px; }
  .place-section__detail, .terms-list { padding-left: 0; }
  .product-page .site-footer { align-items: flex-start; }
}

@media (max-width: 500px) {
  .breadcrumbs { gap: 7px; padding: 12px 20px; }
  .product-hero__copy { padding: 48px 20px 44px; }
  .product-hero h1 { font-size: clamp(54px, 14vw, 70px); }
  .product-hero__copy p { max-width: 29ch; font-size: 19px; }
  .product-hero__action { width: 100%; }
  .product-hero__media { min-height: 245px; height: 62vw; }
  .product-hero__media figcaption { font-size: 11px; padding: 9px 12px; }
  .product-facts { display: block; padding: 0 20px; }
  .product-facts p { padding: 20px 0; }
  .product-facts p + p { border-left: 0; border-top: 1px solid rgba(25,61,66,.28); padding-left: 0; }
  .product-facts strong { font-size: 19px; }
  .gallery-strip img { height: 41vw; min-height: 140px; }
  .gallery-strip figcaption { display: block; min-height: 0; padding: 8px 10px; font-size: 12px; line-height: 1.2; }
  .gallery-strip figcaption span { display: block; margin-top: 2px; font-size: 10px; }
  .track-section { padding: 74px 20px 82px; }
  .track-section h2 { font-size: clamp(53px, 12vw, 68px); }
  .track-section__intro p { font-size: 18px; }
  .track-comparison { display: block; }
  .track-comparison > div, .track-comparison > div + div { padding: 23px 0 27px; border-left: 0; }
  .track-comparison > div + div { border-top: 1px solid rgba(255,255,255,.36); }
  .track-comparison h3 { font-size: 36px; margin-bottom: 8px; }
  .track-comparison p { font-size: 15px; }
  .track-ledger { padding-top: 70px; }
  .track-ledger__title h3 { font-size: 41px; }
  .track-ledger li { grid-template-columns: 30px minmax(0, 1fr) auto; gap: 9px; padding-right: 3px; }
  .track-ledger li span { font-size: 17px; }
  .track-ledger li small { font-size: 11px; }
  .track-ledger li.track-ledger__premium { padding-left: 8px; padding-right: 8px; }
  .ride-section { padding: 76px 20px 86px; }
  .section-intro h2, .place-section h2 { font-size: clamp(56px, 13vw, 72px); }
  .section-intro p { font-size: 18px; }
  .ride-layout { gap: 42px; padding-top: 36px; }
  .package-heading { display: block; }
  .package-heading h3 { font-size: 34px; }
  .package-heading p { max-width: none; margin-top: 5px; text-align: left; }
  .ride-option { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; min-height: 116px; padding: 13px 10px; }
  .ride-option__name { font-size: 17px; }
  .ride-option__price { font-size: 15px; }
  .ride-option small { font-size: 11px; }
  .ride-quantity { grid-column: 1 / -1; justify-self: stretch; grid-template-columns: 1fr 54px 1fr; width: 100%; }
  .ride-quantity button { width: 100%; min-height: 50px; }
  .ride-selection-note { display: block; }
  .ride-selection-note p { margin-top: 7px; text-align: left; }
  .pickup-control label { font-size: 18px; }
  .fare-panel { margin: 0 -20px; padding: 34px 20px; }
  .fare-total { display: block; }
  .fare-total strong { display: block; margin-top: 8px; text-align: left; font-size: 29px; }
  .place-section, .terms-section { padding: 78px 20px; }
  .terms-section h2 { font-size: clamp(49px, 11vw, 65px); }
  .terms-list > div { display: block; }
  .terms-list h3 { margin-bottom: 8px; }
}

@media (max-width: 375px) {
  .mobile-booking-bar:not([hidden]) { grid-template-columns: minmax(0, 1fr) 154px; gap: 8px; padding-left: 16px; padding-right: 16px; }
  .mobile-booking-bar__estimate strong { font-size: 25px; }
  .mobile-booking-bar a { padding: 0 11px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .ride-option { transition: none; }
}

/* Source: kuber-activity.css */
/* Activity detail follows the approved Surya baseline; existing header/footer stay intact. */
html:has(.activity-page) { scroll-behavior: auto; }
.activity-page { background: var(--paper); }
.activity-page [hidden] { display: none !important; }
.activity-page button, .activity-page summary { -webkit-user-select: none; user-select: none; }
.activity-page :is(h1,h2,h3,p,figure) { margin: 0; }
.activity-page :is(h1,h2,h3) { overflow-wrap: anywhere; }
.activity-main { max-width: 1280px; margin: auto; padding: 12px clamp(16px,7.2vw,64px) 36px; }
.activity-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.activity-breadcrumb a { display: inline-flex; align-items: center; min-height: 28px; }
.activity-page h1 { font: 400 clamp(42px,5vw,64px)/1.08 var(--font-display); max-width: 22ch; text-wrap: balance; }
.activity-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; color: var(--muted); padding: 6px 0 12px; font-size: 14px; }
.activity-ratings { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; padding-left: 20px; border-left: 1px solid var(--steel); }
.activity-rating { display: inline-flex; align-items: baseline; gap: 8px; min-height: 44px; padding: 10px 0; color: var(--slate-deep); text-decoration: none; }
.activity-rating strong { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.activity-rating-scale { font-size: 13px; color: var(--muted); font-weight: 400; }
.activity-rating-source { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.activity-rating:hover .activity-rating-source { text-decoration-thickness: 2px; }
.activity-rating:focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 4px; }
.activity-columns { display: grid; grid-template-columns: minmax(0,1.72fr) minmax(0,1fr); grid-template-areas: "overview booking"; gap: 28px; align-items: start; }
.activity-overview { grid-area: overview; min-width: 0; }
.activity-route-summary { scroll-margin-top: 20px; }
.activity-overview > .activity-route-summary { margin-top: 36px; }
.activity-opening { grid-area: opening; }
.activity-columns > .activity-booking, .activity-columns > [aria-hidden="true"] { grid-area: booking; }
.activity-columns > .activity-route-summary { grid-area: route; margin-top: 8px; }
.activity-columns > *, .activity-section > *, .activity-plan > * { min-width: 0; }
.activity-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; background: var(--slate-deep); color: var(--paper); padding: 18px 20px; margin: 0; }
.activity-facts dt { font-size: 12px; color: #d3dfe0; }
.activity-facts dd { font: 400 clamp(19px,2.25vw,28px)/1.2 var(--font-display); margin: 4px 0 0; }
.activity-package-guide { margin-top: 24px; }
.activity-page h2 { font: 400 clamp(30px,3.4vw,42px)/1.12 var(--font-display); text-wrap: balance; }
.activity-package-guide h2 { font-size: 26px; }
.activity-guide-rows { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 14px; }
.activity-guide-rows > div { padding: 18px; background: var(--ground); }
.activity-guide-rows h3 { font-size: 16px; margin-bottom: 6px; }
.activity-guide-rows p { font-size: 14px; line-height: 1.55; color: var(--muted); }
.activity-note { font-size: 12px; color: var(--muted); line-height: 1.6; max-width: 75ch; padding-top: 18px; }
.activity-booking h2 { font-size: clamp(28px,3.1vw,38px); margin-bottom: 16px; }
.activity-booking-stage { border: 0; padding: 0; margin: 0; min-width: 0; }
.activity-booking label { display: block; font-size: 14px; font-weight: 750; line-height: 1.4; }
.activity-booking :is(input, textarea) { width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; margin-top: 8px; border: 1px solid var(--slate-deep); border-radius: 0; background: var(--paper); color: var(--slate-deep); font: 400 16px/1.5 var(--font-body); }
.activity-booking input { color-scheme: light; }
.activity-booking input::placeholder { color: var(--muted); opacity: 1; }
.activity-booking :is(input, select, textarea):focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 3px; }
.activity-booking [aria-invalid="true"] { border-color: var(--owner-error, #7b2f1c); }
.activity-date-control { margin-top: 12px; }
.activity-booking .activity-date-control label { font-size: 18px; }
.activity-booking .activity-booking-stage .activity-error { color: var(--owner-error, #7b2f1c); font-size: 13px; line-height: 1.5; margin-top: 6px; }
.activity-contact label { margin-top: 18px; }
.activity-contact textarea { resize: vertical; }
.activity-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0; margin-bottom: 8px; border: 0; background: transparent; color: var(--slate-deep); font: 750 14px/1.4 var(--font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.activity-back:hover { text-decoration-thickness: 2px; }
.activity-back:focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 4px; }
.activity-booking-status { color: var(--muted); font-size: 13px; line-height: 1.5; margin-top: 10px; }
.activity-message-panel { border-top: 1px solid var(--steel); margin-top: 18px; padding-top: 4px; }
.activity-message-panel summary { min-height: 44px; padding: 12px 0; font-size: 14px; font-weight: 750; cursor: pointer; }
.activity-message-panel textarea { min-height: 220px; resize: vertical; }
.activity-message-panel > p { color: var(--muted); font-size: 13px; line-height: 1.6; margin-top: 8px; }
.activity-message-actions { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 8px; }
.activity-message-actions :is(a, button) { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--slate-deep); font: 750 14px/1.4 var(--font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.activity-message-actions :is(a, button):hover { text-decoration-thickness: 2px; }
.activity-message-actions :is(a, button):focus-visible, .activity-message-panel summary:focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 4px; }
.activity-booking .ride-options { border: 0; margin: 0; padding: 0; min-width: 0; }
.activity-booking .ride-options > legend { font: 700 14px/1.4 var(--font-body); padding: 0 0 10px; }
.activity-booking .package-heading { padding: 12px 0 8px; border: 0; display: block; background: transparent; }
.activity-booking .package-heading h3 { font: 750 16px/1.4 var(--font-body); }
.activity-booking .package-heading p { max-width: none; text-align: left; color: var(--muted); font-size: 12px; line-height: 1.5; margin-top: 4px; }
.activity-booking .package-heading--second { margin-top: 10px; }
.activity-booking .ride-option { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 12px; min-height: 76px; padding: 10px 12px; border: 0; border-top: 1px solid var(--steel); background: transparent; color: var(--slate-deep); }
.activity-booking .ride-option[data-selected="true"] { background: var(--orange); }
.activity-booking .ride-option__name { font: 750 16px/1.3 var(--font-body); }
.activity-booking .ride-option__name small { display: inline; font-size: 12px; font-weight: 400; margin-left: 5px; }
.activity-booking .ride-option__price { grid-column: 1; grid-row: 2; text-align: left; white-space: normal; font: 700 14px/1.4 var(--font-body); }
.activity-booking .ride-option__price small { display: inline; color: inherit; font-size: 12px; font-weight: 400; }
.activity-booking .ride-quantity { grid-column: 2; grid-row: 1 / 3; width: auto; align-self: center; justify-self: end; display: grid; grid-template-columns: 44px 30px 44px; border: 1px solid var(--slate-deep); gap: 0; }
.activity-booking .ride-quantity button { width: 44px; min-height: 48px; border: 0; background: transparent; color: inherit; font-size: 22px; }
.activity-booking .ride-quantity output { min-width: 0; display: grid; place-items: center; padding: 0; font-size: 14px; font-weight: 750; font-variant-numeric: tabular-nums; }
.activity-booking button:disabled { opacity: .4; cursor: default; }
.activity-booking .ride-selection-note { display: block; padding: 14px 0; margin: 0; border: 0; }
.activity-booking .ride-selection-note strong { font: 750 14px/1.4 var(--font-body); }
.activity-booking .ride-selection-note p, .activity-booking .pickup-control p { text-align: left; font-size: 12px; line-height: 1.5; color: var(--muted); margin-top: 6px; }
.activity-booking .start-time-control { margin: 26px 0; }
.activity-booking .start-time-control label { display: block; font-size: 18px; line-height: 1.4; font-weight: 750; }
.activity-booking .start-time-control p { font-size: 13px; line-height: 1.5; color: var(--muted); }
.activity-booking .start-time-control .start-time-zone { margin-top: 4px; }
.activity-booking .start-time-control .start-time-note { margin-top: 8px; }
.activity-booking .start-time-control select:focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 3px; }
.activity-booking .pickup-control { margin: 0; padding: 0; border: 0; }
.activity-booking .pickup-control label { display: block; font-size: 14px; font-weight: 700; }
.activity-booking select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; border: 1px solid var(--slate-deep); border-radius: 0; background: var(--paper); color: var(--slate-deep); font-size: 16px; margin-top: 8px; }
.activity-booking .fare-panel { position: static; margin: 24px 0 0; padding: 20px; background: var(--slate-deep); color: var(--paper); }
.activity-booking .fare-panel h3 { font: 750 15px/1.4 var(--font-body); }
.activity-booking .fare-panel__selection { margin: 8px 0 0; font-size: 12px; color: #d3dfe0; }
.activity-booking .fare-lines { margin: 16px 0 0; padding-top: 12px; }
.activity-booking .fare-lines > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 8px 16px; margin: 0; padding: 0 0 12px; border: 0; font-size: 12px; }
.activity-booking .fare-lines dt { color: #d3dfe0; line-height: 1.5; }
.activity-booking .fare-lines dd { margin: 0; font: 750 12px/1.5 var(--font-body); white-space: nowrap; font-variant-numeric: tabular-nums; }
.activity-booking .fare-total { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: 4px; padding: 16px 0 0; border-top: 1px solid var(--steel); }
.activity-booking .fare-total span { font-size: 13px; }
.activity-booking .fare-total strong { font: 400 28px/1.1 var(--font-display); }
.activity-booking .fare-panel__caveat { margin: 16px 0 0; font-size: 12px; line-height: 1.6; color: #d3dfe0; }
.activity-booking .fare-panel__status { margin: 12px 0 0; font-size: 12px; line-height: 1.6; color: #d3dfe0; }
.activity-booking .booking-preview-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; width: 100%; margin-top: 20px; padding: 12px 14px; border: 0; background: var(--orange); color: var(--slate-deep); font-size: 15px; font-weight: 750; }
.activity-booking button.booking-preview-link { cursor: pointer; text-align: left; font-family: var(--font-body); }
.activity-booking .booking-preview-link:hover { background: #f9864d; }
.activity-booking .booking-preview-link:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }
.activity-section, .activity-plan, .activity-preparation { margin-top: 48px; }
.activity-section > p, .activity-faq-intro p { font-size: 14px; line-height: 1.6; color: var(--muted); margin-top: 10px; max-width: 65ch; }
.activity-track-stops { list-style: none; margin: 24px 0 0; padding: 0; }
.activity-track-stop { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 20px; min-width: 0; padding-bottom: 24px; }
.activity-track-stop:last-child { padding-bottom: 0; }
.activity-track-number { display: block; position: relative; color: var(--slate-deep); font: 400 24px/1.25 var(--font-display); font-variant-numeric: tabular-nums; }
.activity-track-stop:not(:last-child) .activity-track-number::after { content: ""; position: absolute; left: 6px; top: 36px; bottom: -8px; width: 1px; background: var(--steel); }
.activity-track-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.activity-track-name h3 { font: 750 18px/1.4 var(--font-body); }
.activity-track-copy p { color: var(--muted); font-size: 14px; line-height: 1.6; margin-top: 6px; }
.activity-track-premium { color: var(--slate-deep); font-size: 12px; font-weight: 650; line-height: 1.6; text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.activity-inclusions { background: var(--ground); padding: 28px 24px; }
.activity-inclusion-groups { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; margin-top: 20px; }
.activity-inclusion-groups h3 { font: 750 16px/1.5 var(--font-body); }
.activity-inclusion-groups ul { padding-left: 20px; margin: 8px 0 0; }
.activity-inclusion-groups li { color: var(--muted); font-size: 14px; line-height: 1.6; margin-top: 6px; }
.activity-preparation { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; padding: 36px 24px; background: var(--slate-deep); color: var(--paper); }
.activity-preparation h2 { font-size: clamp(28px,2.7vw,34px); margin-bottom: 20px; }
.activity-notes { margin: 0; }
.activity-notes > div + div { margin-top: 16px; }
.activity-notes dt { font-size: 14px; line-height: 1.4; font-weight: 750; }
.activity-notes dd { margin: 4px 0 0; color: #d3dfe0; font-size: 14px; line-height: 1.6; max-width: 65ch; }
.activity-plan { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; align-items: start; }
.activity-location h3 { font-size: 16px; margin-top: 18px; }
.activity-location address { font-style: normal; font-size: 14px; line-height: 1.6; color: var(--muted); margin-top: 8px; }
.activity-location a, .activity-faq-help { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; text-decoration: underline; font-size: 14px; font-weight: 650; margin: 6px 0 16px; }
.activity-location .place-section__map { width: 100%; height: 280px; margin: 0; border: 0; background: var(--ground); }
.activity-faq-list { border-top: 1px solid var(--steel); margin-top: 8px; }
.activity-faq-list details { border-bottom: 1px solid var(--steel); }
.activity-faq-list summary { padding: 14px 6px 14px 0; min-height: 48px; font-size: 15px; line-height: 1.45; font-weight: 750; cursor: pointer; overflow-wrap: anywhere; }
.activity-faq-list summary::marker { font-size: .75em; }
.activity-faq-list summary:hover { background: var(--ground); }
.activity-faq-answer { padding: 0 6px 16px 18px; max-width: 65ch; }
.activity-faq-answer p { font-size: 14px; line-height: 1.6; color: var(--muted); }
.activity-faq-answer a { text-decoration: underline; }
.activity-arrow { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; flex: none; }
.activity-related-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 24px; margin-top: 20px; align-items: stretch; }
.activity-related-trip { border: 1px solid var(--steel); min-width: 0; display: flex; flex-direction: column; }
.activity-related-trip img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.activity-related-copy { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.activity-related-copy > p { font-size: 13px; line-height: 1.6; color: var(--muted); }
.activity-related-copy h3 { font: 400 28px/1.18 var(--font-display); margin: 10px 0; }
.activity-related-copy .activity-related-bottom { margin-top: auto; padding-top: 20px; }
.activity-related-price { font-size: 18px; font-weight: 750; }
.activity-related-price small { font-size: 12px; font-weight: 400; }
.activity-related-action { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--steel); padding: 10px 14px; font-size: 14px; font-weight: 750; margin-top: 12px; }
.activity-related-lead .activity-related-action { background: var(--orange); border-color: var(--orange); }
.activity-related-side { display: grid; gap: 16px; }
.activity-related-side .activity-related-trip { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1fr); }
.activity-related-side img { height: 100%; aspect-ratio: auto; }
.activity-related-side .activity-related-copy { padding: 16px; }
.activity-related-side h3 { font-size: 25px; }
.activity-page a:hover { text-decoration-thickness: 2px; }
.activity-page :focus-visible { outline: 3px solid var(--slate-deep); outline-offset: 3px; }
.activity-page .fare-panel :focus-visible, .activity-preparation :focus-visible { outline-color: var(--paper); }
@media (max-width: 1100px) {
  .activity-related-grid { grid-template-columns: minmax(0,1fr); }
  .activity-related-side { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .activity-related-side .activity-related-trip { display: flex; }
  .activity-related-side img { height: auto; aspect-ratio: 3 / 2; }
}
@media (max-width: 1023px) {
  .activity-columns { grid-template-areas: "overview" "booking"; }
  html[data-route-layout] .activity-columns { grid-template-areas: "opening" "booking" "route"; }
  html[data-route-layout] .activity-overview { display: contents; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .activity-columns { grid-template-columns: minmax(0,1fr); }
  .activity-booking { max-width: 640px; }
}
@media (max-width: 767px) {
  .activity-main { padding: 18px 20px 36px; }
  .activity-page h1 { font-size: clamp(38px,7.5vw,54px); }
  .activity-meta { display: block; padding: 10px 0 16px; }
  .activity-ratings { padding-left: 0; border-left: 0; gap: 0 20px; }
  .activity-columns { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .activity-booking h2 { font-size: 34px; }
  .activity-section, .activity-plan, .activity-preparation { margin-top: 36px; }
  .activity-track-stop { grid-template-columns: 24px minmax(0,1fr); gap: 16px; }
  .activity-inclusions { padding: 28px 20px; }
  .activity-inclusion-groups { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .activity-preparation { grid-template-columns: minmax(0,1fr); gap: 32px; padding: 28px 20px; }
  .activity-preparation > section + section { border-top: 1px solid var(--steel); padding-top: 28px; }
  .activity-plan { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .activity-location .place-section__map { height: 250px; }
  .activity-related-side { grid-template-columns: minmax(0,1fr); }
  .activity-booking .ride-quantity { grid-template-columns: 44px 30px 44px; }
  .activity-booking .ride-quantity button { width: 44px; min-height: 48px; }
}
@media (max-width: 380px) {
  .activity-main { padding-inline: 16px; }
  .activity-facts { padding: 16px 12px; gap: 12px; }
  .activity-facts dd { font-size: 18px; overflow-wrap: anywhere; }
  .activity-guide-rows { grid-template-columns: minmax(0,1fr); }
  .activity-booking .ride-option__name small { display: block; margin-left: 0; }
  .activity-booking .ride-option__price { white-space: nowrap; }
  .activity-booking .ride-option__price small { display: block; }
  .activity-booking .fare-panel { padding: 16px; }
  .activity-booking .fare-lines > div { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .activity-booking .fare-lines dd { text-align: left; }
}

/* Source: batur-trek.css */
/* Product-specific content within the approved KUBER activity composition. */
.batur-intro, .batur-location-copy { color: var(--muted); font-size: 14px; line-height: 1.6; max-width: 65ch; margin-top: 10px !important; }
.batur-booking-intro { color: var(--muted); font-size: 13px; line-height: 1.5; margin-bottom: 20px !important; }
.batur-helper { color: var(--muted); font-size: 13px; line-height: 1.5; margin-top: 8px !important; }
.batur-guest-control, .batur-trek-page .activity-date-control { margin-top: 20px; }
.batur-count { display: grid; grid-template-columns: 48px minmax(0,1fr) 48px; margin-top: 8px; border: 1px solid var(--slate-deep); }
.activity-booking .batur-count input { min-height: 48px; padding: 10px 0; margin: 0; border: 0; text-align: center; font-variant-numeric: tabular-nums; appearance: textfield; }
.batur-count input::-webkit-inner-spin-button, .batur-count input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.batur-count button { display: grid; place-items: center; min-height: 48px; border: 0; background: transparent; color: var(--slate-deep); cursor: pointer; }
.batur-count button:hover:not(:disabled) { background: var(--ground); }
.batur-count button:active:not(:disabled) { transform: translateY(1px); }
.batur-count button:focus-visible { outline-offset: -3px; }
.batur-minus, .batur-plus { position: relative; display: block; width: 14px; height: 2px; background: currentColor; }
.batur-plus::after { content: ""; position: absolute; left: 6px; top: -6px; width: 2px; height: 14px; background: currentColor; }
.batur-schedule { display: grid; gap: 8px; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--steel); font-size: 13px; font-variant-numeric: tabular-nums; }
.batur-schedule > div { display: flex; justify-content: space-between; gap: 12px; }
.batur-schedule dt { color: var(--muted); }
.batur-schedule dd { margin: 0; font-weight: 650; }
.batur-itinerary ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px 28px; list-style: none; padding: 0; margin: 24px 0 0; }
.batur-itinerary li { border-top: 1px solid var(--steel); padding-top: 14px; min-width: 0; }
.batur-itinerary h3 { font: 750 16px/1.4 var(--font-body); margin-top: 6px; }
.batur-itinerary li > p { color: var(--muted); font-size: 14px; line-height: 1.6; margin-top: 6px; }
.batur-itinerary li .batur-stage-time { color: var(--slate-deep); font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; margin-top: 0; }
.batur-area-bands { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; margin-top: 24px; }
.batur-area-bands article { min-width: 0; border-top: 1px solid var(--steel); padding-top: 18px; }
.batur-area-bands h3 { font: 750 16px/1.4 var(--font-body); min-height: 45px; }
.batur-band-price { font: 400 28px/1.3 var(--font-display); margin-top: 12px !important; color: var(--slate-deep); }
.batur-band-price small { display: block; font: 400 13px/1.5 var(--font-body); color: var(--muted); }
.batur-area-bands dl { margin: 16px 0 0; font-size: 13px; font-variant-numeric: tabular-nums; }
.batur-area-bands dl > div { display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; }
.batur-area-bands dt { color: var(--muted); }
.batur-area-bands dd { margin: 0; font-weight: 650; }
.batur-trek-page :is(input, textarea) { caret-color: var(--slate-deep); }
@media (max-width: 1023px) { .batur-itinerary ol { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
  .batur-itinerary ol, .batur-area-bands { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .batur-area-bands h3 { min-height: 0; }
  .batur-area-bands dl { max-width: 440px; }
}
@media (prefers-reduced-motion: reduce) { .batur-count button:active:not(:disabled) { transform: none; } }

/* Source: activity-gallery.css */
/* Owner-selected gallery A: a large photo, five previews and a full-photo viewer. */
.activity-gallery-hero { display: block; position: relative; aspect-ratio: 1.85; background: var(--ground); touch-action: pan-y; }
.activity-gallery-hero .activity-hero-photo { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.activity-gallery-main-status { position: absolute; inset: 0; display: grid; place-content: center; padding: 20px; text-align: center; }
.activity-gallery-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 12px 0 4px; }
.activity-gallery-thumb { display: block; flex: 0 0 84px; min-width: 44px; min-height: 44px; aspect-ratio: 1.5; padding: 3px; border: 2px solid transparent; border-radius: 0; background: transparent; color: var(--slate-deep); cursor: pointer; }
.activity-gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.activity-gallery-thumb[aria-pressed="true"] { border-color: var(--slate-deep); }
.activity-gallery-thumb:hover { background: var(--steel); }
.activity-gallery-thumb-fallback { display: grid; height: 100%; place-content: center; padding: 2px; overflow: hidden; font: 600 11px/1.2 var(--font-body); }
.activity-gallery-footer { display: flex; min-height: 68px; align-items: center; justify-content: end; gap: 12px; padding: 8px 0 16px; }
.activity-gallery-footer .activity-photo-note { padding: 0; }
.activity-gallery-tools { display: flex; flex-shrink: 0; flex-wrap: wrap; justify-content: end; gap: 8px; }
.activity-gallery-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 9px 14px; border: 1px solid var(--steel); border-radius: 0; background: var(--paper); color: var(--slate-deep); font: inherit; font-size: 14px; font-weight: 650; line-height: 1.4; cursor: pointer; }
.activity-gallery-button:hover { background: var(--ground); border-color: var(--slate-deep); }
.activity-gallery-fallback summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; text-decoration: underline; }
.activity-gallery-fallback ul { padding-left: 20px; }
.activity-gallery-fallback a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.activity-gallery-dialog { width: min(1120px, calc(100% - 48px)); height: min(860px, calc(100dvh - 48px)); max-width: none; max-height: none; margin: auto; padding: 20px; border: 1px solid var(--steel); border-radius: 0; background: var(--paper); color: var(--slate-deep); overflow: hidden; }
.activity-gallery-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto; gap: 12px; }
.activity-gallery-dialog::backdrop { background: rgb(23 54 59 / 78%); }
.activity-gallery-viewer-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.activity-gallery-viewer-header h2 { margin: 0; font: 400 28px/1.2 var(--font-display); }
.activity-gallery-viewer-header button { flex-shrink: 0; }
.activity-gallery-frame { display: grid; position: relative; min-width: 0; min-height: 0; place-items: center; background: var(--ground); touch-action: pan-y; }
.activity-gallery-full-photo { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.activity-gallery-feedback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 16px; text-align: center; pointer-events: none; }
.activity-gallery-feedback button { pointer-events: auto; }
.activity-gallery-viewer-caption p { font-size: 14px; line-height: 1.4; }
.activity-gallery-viewer-caption #activity-gallery-note { margin-top: 4px; color: var(--muted); font-size: 12px; }
.activity-gallery-navigation { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.activity-gallery-navigation p { margin-inline: auto; font-size: 14px; font-variant-numeric: tabular-nums; }
.activity-gallery-all-thumbnails { display: flex; gap: 8px; min-width: 0; padding: 4px; overflow-x: auto; scroll-snap-type: x proximity; }
.activity-gallery-all-thumbnails .activity-gallery-thumb { scroll-snap-align: center; }
@media (max-width: 767px) {
  .activity-gallery-hero { aspect-ratio: 3 / 2; }
  .activity-gallery-thumbnails { display: flex; overflow-x: auto; scroll-snap-type: x proximity; padding: 10px 4px 4px; }
  .activity-gallery-thumbnails .activity-gallery-thumb { scroll-snap-align: center; }
  .activity-gallery-footer { align-items: start; flex-direction: column; gap: 12px; padding: 8px 0 16px; }
  .activity-gallery-tools { width: 100%; justify-content: start; }
  .activity-gallery-tools [data-gallery-open] { flex: 1; }
  .activity-gallery-dialog { width: 100%; height: 100dvh; margin: 0; padding: 16px; border: 0; }
  .activity-gallery-viewer-header { gap: 12px; }
  .activity-gallery-viewer-header h2 { font-size: 24px; }
  .activity-gallery-viewer-header button { padding-inline: 10px; font-size: 13px; }
  .activity-gallery-navigation { gap: 8px; }
  .activity-gallery-navigation .activity-gallery-button { padding-inline: 10px; font-size: 13px; }
}
@media (max-height: 500px) {
  .activity-gallery-dialog[open] { gap: 8px; }
  .activity-gallery-dialog { padding: 12px; }
  .activity-gallery-all-thumbnails { display: none; }
}
@media (max-height: 500px) and (min-width: 600px) {
  .activity-gallery-dialog[open] { grid-template-columns: minmax(0, 1fr) 240px; grid-template-rows: auto minmax(0, 1fr) auto; gap: 12px; }
  .activity-gallery-frame { grid-column: 1; grid-row: 1 / 4; }
  .activity-gallery-viewer-header { grid-column: 2; grid-row: 1; flex-wrap: wrap; gap: 8px; }
  .activity-gallery-viewer-header h2 { font-size: 24px; }
  .activity-gallery-viewer-caption { grid-column: 2; grid-row: 2; align-self: center; }
  .activity-gallery-navigation { grid-column: 2; grid-row: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .activity-gallery-navigation p { grid-column: 1 / -1; grid-row: 1; }
  .activity-gallery-navigation button { grid-row: 2; padding-inline: 8px; font-size: 13px; }
}

/* Source: activity-motion.css */
/* Approved interaction motion. Content and initial hero remain visible. */
:root { --activity-motion-ease: cubic-bezier(.2,.8,.2,1); }
.activity-gallery-hero > img[data-motion-layer], .activity-gallery-frame > img[data-motion-layer] { position: absolute; inset: 0; }
.activity-gallery-frame > img[data-motion-layer] { background: var(--ground); }
.activity-gallery-feedback { z-index: 1; }
.activity-gallery-feedback p:not([hidden]) { padding: 8px 12px; border: 1px solid var(--steel); background: var(--paper); }
.activity-gallery-main-status:not([hidden]) { z-index: 1; pointer-events: none; padding: 12px; place-content: end start; color: var(--paper); background: linear-gradient(transparent 70%,rgb(23 54 59 / 80%)); }
.activity-gallery-dialog { opacity: 1; transform: translateY(0); transition: opacity 220ms var(--activity-motion-ease), transform 220ms var(--activity-motion-ease); }
.activity-gallery-dialog::backdrop { opacity: 1; transition: opacity 220ms var(--activity-motion-ease); }
.activity-gallery-dialog[data-motion-closing]::backdrop { opacity: 0; }
@starting-style { .activity-gallery-dialog[open]::backdrop { opacity: 0; } }
.activity-action, .activity-gallery-button, .activity-back, .activity-stepper button { transition: transform 120ms var(--activity-motion-ease); }
html:not([data-motion-off]):not([data-motion-keyboard]) :is(.activity-action,.activity-gallery-button,.activity-back,.activity-stepper button):active:not(:disabled) { transform: translateY(1px); }
html[data-motion-off] .activity-gallery-dialog, html[data-motion-off] .activity-gallery-dialog::backdrop, html[data-motion-off] button,
html[data-motion-keyboard] .activity-gallery-dialog, html[data-motion-keyboard] .activity-gallery-dialog::backdrop, html[data-motion-keyboard] button { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .activity-gallery-dialog, .activity-gallery-dialog::backdrop, .activity-page button, .activity-page a { transition: none; }
  .activity-page button:active { transform: none !important; }
}

/* Source: activity-mobile-booking.css */
/* Owner-selected A: compact mobile price, booking and secondary chat.
   Only the dock uses z-index 20; native dialogs use the browser top layer. */
.activity-mobile-dock { display: none; }
.activity-mobile-dock [data-mobile-price] { display: flex; flex-direction: column; line-height: 1.3; }
.activity-mobile-dock small { font-size: 12px; color: var(--muted); }
.activity-mobile-dock strong { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; }
.activity-mobile-book, .activity-mobile-chat { display: flex; align-items: center; justify-content: center; color: var(--slate-deep); -webkit-user-select: none; user-select: none; }
.activity-mobile-book { min-height: 48px; border: 0; background: var(--orange); padding: 12px 14px; font-size: 16px; font-weight: 750; white-space: nowrap; text-decoration: none; }
.activity-mobile-chat { min-height: 44px; padding: 0; font-size: 13px; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; justify-self: start; }
.activity-mobile-book:focus-visible, .activity-mobile-chat:focus-visible, .activity-booking-sheet button:focus-visible { outline: 2px solid var(--slate-deep); outline-offset: 3px; }
.activity-booking-sheet { width: min(560px, 100%); height: min(92dvh, 860px); max-height: none; max-width: none; margin: auto auto 0; border: 0; padding: 0; background: var(--paper); color: var(--slate-deep); overflow: hidden; }
.activity-booking-sheet[open] { display: flex; flex-direction: column; }
.activity-booking-sheet::backdrop { background: rgb(23 54 59 / 72%); }
.activity-booking-sheet-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 10px 20px; border-bottom: 1px solid var(--steel); flex-shrink: 0; }
.activity-booking-sheet-header p { font-size: 13px; color: var(--muted); }
.activity-booking-sheet-header button { min-height: 44px; padding: 8px 12px; border: 1px solid var(--steel); border-radius: 0; font: inherit; font-weight: 750; background: var(--paper); color: var(--slate-deep); cursor: pointer; }
.activity-booking-sheet-content { overflow: auto; min-height: 0; padding: 22px 20px calc(20px + env(safe-area-inset-bottom)); overscroll-behavior: contain; }
@media (max-width: 767px) {
  .activity-page[data-mobile-booking] { padding-bottom: calc(120px + env(safe-area-inset-bottom)); }
  .activity-mobile-dock { position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--steel); display: grid; grid-template-columns: minmax(112px, .78fr) minmax(0, 1.22fr); column-gap: 12px; align-items: center; }
  .activity-mobile-dock [data-mobile-price] { grid-column: 1; grid-row: 1; }
  .activity-mobile-book { grid-column: 2; grid-row: 1 / span 2; }
  .activity-mobile-chat { grid-column: 1; grid-row: 2; }
}
@media (max-width: 350px) {
  .activity-mobile-dock { padding-left: 12px; padding-right: 12px; grid-template-columns: 112px minmax(0, 1fr); gap: 6px 8px; }
  .activity-mobile-book { padding: 12px 8px; font-size: 14px; }
  .activity-mobile-dock strong { font-size: 15px; }
  .activity-mobile-chat { font-size: 12px; }
}
@media (hover: hover) {
  .activity-mobile-book:hover { background: var(--slate-deep); color: var(--paper); }
  .activity-mobile-chat:hover { text-decoration-thickness: 2px; }
  .activity-booking-sheet-header button:hover { background: var(--ground); }
}
html:not([data-motion-off]):not([data-motion-keyboard]) .activity-mobile-book:active { transform: translateY(1px); }
@media (prefers-reduced-motion: reduce) { .activity-mobile-book:active { transform: none; } }

/* Source: activity-booking-controls.css */
/* Shared native controls for every public activity booking form.
   Load after activity styles so background shorthands cannot erase the chevron.
   Reuses the established Bali Wander pickup chevron from product.css. */
.activity-booking select,
.surya-booking select {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 44px 10px 12px;
  border: 1px solid var(--slate-deep);
  border-radius: 0;
  background-color: var(--paper);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' fill='none' stroke='%2317363b' stroke-width='2'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-size: 16px 10px;
  background-repeat: no-repeat;
  color: var(--slate-deep);
  color-scheme: light;
  font: 400 16px/1.5 var(--font-body);
  cursor: pointer;
}

.activity-booking select:focus-visible,
.surya-booking select:focus-visible {
  outline: 3px solid var(--slate-deep);
  outline-offset: 3px;
}

.activity-booking select:disabled,
.surya-booking select:disabled {
  cursor: default;
}

.activity-booking :is(.activity-date-control, .start-time-control, .pickup-control, .alasan-engine-control) > label {
  margin: 0;
  font: 750 14px/1.4 var(--font-body);
}

.activity-booking .pickup-control > p:not(.activity-error) {
  margin: 8px 0 0;
  max-width: 45ch;
  color: var(--muted);
  font: 400 13px/1.5 var(--font-body);
}

@media (forced-colors: active) {
  .activity-booking select,
  .surya-booking select {
    appearance: auto;
    background-image: none;
  }
}

/* Source: header.css */
/* Shared Header A: owner-approved five-category menu, 17 October 2026.
   Layers: page 0; header 10, booking dock 20, open navigation 30.
   Within the header context: scrim -1 and panel 1; native dialogs remain above both.
   The approved logo is displayed through CSS windows without editing it. */
html:has(.bw-header) { scrollbar-gutter: stable; }
html:has(.bw-header .bw-disclosure[open]) { overflow: hidden; }
.bw-header {
  --bw-surface: var(--ground); --bw-paper: var(--paper); --bw-ink: var(--slate-deep);
  --bw-muted: var(--muted); --bw-rule: var(--steel); --bw-accent: var(--orange);
  --bw-header-height: 76px;
  position: relative; z-index: 10; min-width: 0; height: var(--bw-header-height);
  display: flex; align-items: center; gap: 32px;
  padding: 0 max(32px, calc((100vw - 1280px) / 2));
  color: var(--bw-ink); background: var(--bw-surface); border-bottom: 1px solid var(--bw-rule);
  font-family: var(--font-body);
}
.bw-header :is(summary, a) { -webkit-tap-highlight-color: transparent; }
.bw-header:has(.bw-disclosure[open]) { z-index: 30; }
.bw-header :focus-visible { outline: 2px solid var(--bw-ink); outline-offset: 4px; }
.bw-header ::selection { background: var(--bw-accent); color: #17363b; }
.bw-brand { display: flex; align-items: center; gap: 10px; flex: none; width: 196px; height: 48px; }
.bw-brand-mark, .bw-brand-name { position: relative; display: block; flex: none; overflow: hidden; }
.bw-brand-mark { width: 40px; height: 40px; }
.bw-brand-name { width: 146px; height: 23px; }
.bw-brand img { position: absolute; max-width: none; height: auto; mix-blend-mode: darken; }
.bw-brand-mark img { width: 109px; left: -35px; top: -10px; }
.bw-brand-name img { width: 246px; left: -50px; top: -114px; }
.bw-brand--inverse img { mix-blend-mode: lighten; }
.bw-main-nav { display: flex; align-items: center; justify-content: center; gap: 28px; margin-left: auto; white-space: nowrap; height: 100%; }
.bw-main-nav > a, .bw-disclosure > summary { font-size: 16px; font-weight: 650; }
.bw-main-nav > a { display: flex; align-items: center; min-height: 44px; }
.bw-main-nav > a:hover { text-decoration: underline; text-underline-offset: 6px; }
.bw-main-nav > a[aria-current], .bw-mobile-secondary > a[aria-current] { text-decoration: underline; text-underline-offset: 6px; }
.bw-disclosure > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 9px; list-style: none; }
.bw-disclosure > summary::-webkit-details-marker { display: none; }
.bw-disclosure > summary::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.bw-disclosure[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.bw-disclosure[open] > summary { text-decoration: underline; text-decoration-color: var(--bw-accent); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.bw-header-actions { display: flex; align-items: center; gap: 18px; flex: none; }
.bw-help { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--bw-rule); min-height: 44px; padding: 0 17px; font-size: 15px; font-weight: 650; white-space: nowrap; }
.bw-help:hover { background: var(--bw-ink); color: var(--bw-paper); border-color: var(--bw-ink); }
.bw-mobile-menu, .bw-menu-close-label { display: none; }
.bw-panel {
  position: absolute; z-index: 1; top: calc(var(--bw-header-height) - 1px); left: 0; right: 0;
  max-height: calc(100dvh - var(--bw-header-height)); overflow-y: auto; overscroll-behavior: contain;
  padding: 38px max(32px, calc((100vw - 1456px) / 2)) 16px;
  color: var(--bw-ink); background: var(--bw-paper); border-bottom: 1px solid var(--bw-rule);
  scrollbar-color: var(--bw-muted) var(--bw-surface); scrollbar-width: thin;
}
.bw-panel h2 { margin: 0 0 12px; font-family: var(--font-body); font-size: 18px; line-height: 1.3; font-weight: 750; }
.bw-panel :focus-visible { outline-color: var(--bw-ink); }
.bw-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.bw-category { display: block; min-width: 0; color: inherit; text-decoration: none; }
.bw-category-photo { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; background: var(--bw-surface); }
.bw-category-label { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; min-height: 44px; padding-top: 14px; font-size: 18px; font-weight: 700; line-height: 1.35; white-space: normal; }
.bw-category-label > span:first-child { min-width: 0; }
.bw-nav-arrow {
  display: block; flex: none; width: 20px; height: 20px; margin-top: 2px; background: currentColor;
  mask: url('./assets/tabler/arrow-up-right.svg') center / contain no-repeat;
  transform: rotate(45deg);
}
.bw-category:hover .bw-category-label > span:first-child, .bw-all-activities:hover > span:first-child { text-decoration: underline; text-underline-offset: 4px; }
.bw-category:active .bw-category-label, .bw-all-activities:active { background: var(--bw-surface); }
.bw-all-activities { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 56px; margin-top: 24px; padding-top: 10px; border-top: 1px solid var(--bw-rule); color: inherit; font-size: 17px; font-weight: 700; line-height: 1.35; text-decoration: none; }
.bw-all-activities .bw-nav-arrow { margin-top: 0; }
.bw-menu-scrim { display: none; position: fixed; z-index: -1; inset: var(--bw-header-height) 0 0; background: rgb(15 35 38 / .56); }
.bw-header:has(.bw-disclosure[open]) .bw-menu-scrim { display: block; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .bw-header { padding: 0 24px; gap: 22px; }
  .bw-main-nav { gap: 22px; }
  .bw-panel { padding-inline: 24px; }
  .bw-category-grid { gap: 16px; }
  .bw-category-label { font-size: 16px; gap: 8px; }
}
@media (max-width: 1023px) {
  .bw-header { --bw-header-height: 68px; padding: 0 24px; gap: 16px; }
  .bw-main-nav, .bw-header-actions > .bw-help { display: none; }
  .bw-header-actions { margin-left: auto; gap: 20px; }
  .bw-mobile-menu { display: block; }
  .bw-mobile-menu > summary { justify-content: center; min-width: 56px; font-size: 15px; }
  .bw-mobile-menu > summary::after { display: none; }
  .bw-mobile-menu[open] .bw-menu-open-label { display: none; }
  .bw-mobile-menu[open] .bw-menu-close-label { display: inline; }
  .bw-mobile-panel { left: auto; right: 24px; width: min(520px, calc(100vw - 48px)); padding: 22px 24px max(20px, env(safe-area-inset-bottom)); border: 1px solid var(--bw-rule); border-top: 0; }
  .bw-mobile-panel nav { min-width: 0; }
  .bw-mobile-categories { display: grid; gap: 4px; }
  .bw-mobile-panel .bw-category { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 14px; min-height: 64px; padding-block: 4px; }
  .bw-mobile-panel .bw-category-photo { width: 72px; height: 52px; aspect-ratio: auto; }
  .bw-mobile-panel .bw-category-label { align-items: center; min-height: 44px; padding-top: 0; font-size: 16px; line-height: 1.35; }
  .bw-mobile-panel .bw-nav-arrow { width: 18px; height: 18px; margin-top: 0; }
  .bw-mobile-panel .bw-all-activities { min-height: 48px; margin-top: 12px; padding-top: 6px; font-size: 16px; }
  .bw-mobile-secondary { display: flex; flex-direction: column; align-items: stretch; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--bw-rule); }
  .bw-mobile-secondary > a { display: flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 650; }
  .bw-mobile-secondary > a:hover { text-decoration: underline; text-underline-offset: 4px; }
  .bw-mobile-panel .bw-help { display: flex; width: 100%; margin-top: 12px; color: var(--bw-ink); border-color: var(--bw-rule); }
  .bw-mobile-panel .bw-help:hover { background: var(--bw-ink); color: var(--bw-paper); }
}
@media (max-width: 600px) {
  .bw-mobile-panel { left: 0; right: 0; width: auto; padding-inline: 20px; border-inline: 0; }
}
@media (max-width: 500px) {
  .bw-header { --bw-header-height: 64px; padding: 0 16px; gap: 10px; }
  .bw-brand { width: 157px; height: 44px; gap: 5px; }
  .bw-brand-mark { width: 32px; height: 32px; }
  .bw-brand-name { width: 120px; height: 19px; }
  .bw-brand-mark img { width: 88px; left: -28px; top: -8px; }
  .bw-brand-name img { width: 202px; left: -41px; top: -94px; }
  .bw-header-actions { gap: 14px; }
  .bw-mobile-panel { padding-top: 18px; }
}
@media (prefers-reduced-motion: no-preference) {
  .bw-header a { transition: background-color 140ms ease-out, color 140ms ease-out; }
}
@media (forced-colors: active) {
  .bw-nav-arrow { background: CanvasText; forced-color-adjust: none; }
  .bw-menu-scrim { background: transparent; }
  .bw-panel { border: 1px solid CanvasText; }
}

/* Source: footer.css */
/* Shared Bali Wayfinding footer. Inherits the approved light brand surface.
   No additional layers, motion library or raster assets. */
.bw-footer {
  color: var(--slate-deep); background: var(--ground);
  border-top: 1px solid var(--steel); font-family: var(--font-body);
  padding: 36px max(24px, calc((100vw - 1152px) / 2)) 0;
}
.bw-footer-inner { max-width: 1152px; margin: 0 auto; }
.bw-footer-main { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr; gap: 40px; padding-bottom: 28px; }
.bw-footer-main > * { min-width: 0; }
.bw-footer h2 { margin: 0 0 8px; font: 400 26px/1.2 var(--font-display); letter-spacing: 0; }
.bw-footer p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.bw-footer-activities { display: flex; flex-direction: column; align-items: flex-start; }
.bw-footer-activities > a, .bw-footer-basics { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; line-height: 1.4; font-weight: 650; }
.bw-footer-activities > a:hover, .bw-footer-basics:hover, .bw-footer-top:hover { text-decoration: underline; text-underline-offset: 5px; }
.bw-footer-help > a:not(.bw-footer-contact) { display:flex; align-items:center; min-height:44px; font-size:15px; font-weight:650; line-height:1.4; }
.bw-footer-contact { display: inline-flex; align-items: center; justify-content: center; gap: 10px; margin-top: 12px; padding: 12px 15px; min-height: 48px; color: var(--slate-deep); background: var(--orange); font-size: 15px; font-weight: 750; white-space: nowrap; }
.bw-footer-contact:hover { background: var(--orange-hover, #f9864d); color: var(--on-signal, var(--slate-deep)); }
.bw-footer-contact:active { transform: translateY(1px); }
.bw-footer svg { flex: none; width: 22px; height: 22px; stroke-width: 2; }
.bw-footer-activities > a svg, .bw-footer-top svg { width: 18px; height: 18px; }
.bw-footer-social { border-top: 1px solid var(--steel); padding: 30px 0 24px; }
.bw-footer-social h2 { margin-bottom: 8px; }
.bw-footer-social-list { display: flex; flex-wrap: wrap; column-gap: 30px; row-gap: 4px; margin: 0; padding: 0; list-style: none; }
.bw-footer-social-link { display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 4px 0; font-size: 15px; line-height: 1.3; font-weight: 650; }
.bw-footer-social-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.bw-footer-bottom { border-top: 1px solid var(--steel); display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 0; }
.bw-footer-bottom p { font-size: 13px; }
.bw-footer-top { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; font-weight: 650; white-space: nowrap; }
.bw-footer :focus-visible { outline: 2px solid var(--slate-deep); outline-offset: 4px; }
.bw-footer ::selection { background: var(--orange); color: var(--slate-deep); }
@media (max-width: 1023px) {
  .bw-footer-main { grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
  .bw-footer-social-list { column-gap: 20px; }
}
@media (max-width: 767px) {
  .bw-footer { padding: 32px 20px 0; }
  .bw-footer-main { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-bottom: 24px; }
  .bw-footer-activities, .bw-footer-help { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .bw-footer-activities > h2, .bw-footer-help > h2, .bw-footer-contact { grid-column: 1 / -1; }
  .bw-footer-contact { justify-self: start; }
  .bw-footer-social { padding: 26px 0 22px; }
  .bw-footer-social-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 20px; }
  .bw-footer-bottom { flex-wrap: wrap; gap: 4px 20px; }
  /* Existing activity-page body padding provides the mobile booking dock clearance. */
}
@media (prefers-reduced-motion: no-preference) {
  .bw-footer-contact { transition: color 140ms ease-out, background-color 140ms ease-out, transform 140ms ease-out; }
}

/* Source: breadcrumbs.css */
/* Shared hierarchy A. Lists wrap at item boundaries on narrow screens. */
nav.bw-breadcrumb { display: block; max-width: 100%; margin-bottom: 16px; color: var(--muted); font: 400 13px/1.5 var(--font-body); }
.bw-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; list-style: none; margin: 0; padding: 0; }
.bw-breadcrumb li { display: inline-flex; align-items: baseline; gap: 10px; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.bw-breadcrumb .bw-breadcrumb-separator { flex: none; color: var(--muted); }
nav.bw-breadcrumb a { display: inline-flex; align-items: center; min-height: 36px; color: inherit; text-decoration: none; text-underline-offset: 4px; }
.bw-breadcrumb a:hover { text-decoration: underline; }
.bw-breadcrumb a:focus-visible { outline: 2px solid var(--slate-deep); outline-offset: 3px; }
.bw-breadcrumb [aria-current="page"] { color: var(--slate-deep); }
@media (max-width: 767px) {
  .bw-breadcrumb ol { gap: 0 8px; }
  .bw-breadcrumb li { gap: 8px; }
  nav.bw-breadcrumb a { min-height: 44px; }
}

/* Source: activity-theme.css */
/* Activity details share the homepage preference and Wayfinding palette.
   Load after operator styles; photographs and commercial choices stay intact. */
:root {
  color-scheme: light;
  --on-signal: #17363b;
}

.bw-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  background: transparent;
  color: var(--slate-deep);
  cursor: pointer;
}
.bw-theme-toggle[hidden] { display: none; }
.bw-theme-toggle:hover { background: var(--paper); }
.bw-theme-toggle svg { width: 20px; height: 20px; }
.bw-theme-toggle [data-theme-icon="moon"],
:root[data-theme="dark"] .bw-theme-toggle [data-theme-icon="sun"] { display: none; }
:root[data-theme="dark"] .bw-theme-toggle [data-theme-icon="moon"] { display: block; }
.bw-header .bw-header-actions { gap: 12px; }

:root[data-theme="dark"] {
  color-scheme: dark;
  --ground: #17363b;
  --paper: #193d42;
  --slate-deep: #ecefeb;
  --steel: #536d71;
  --muted: #b9cbcd;
  --owner-error: #ffb5a3;
  --activity-inverse: #112c30;
}

/* Inverse sections keep a dark ground instead of following the text token. */
:root[data-theme="dark"] :is(
  .activity-facts, .activity-preparation, .activity-booking .fare-panel,
  .surya-river-facts, .surya-preparation, .surya-summary
) {
  background: var(--activity-inverse);
  color: var(--slate-deep);
}

/* Orange always carries the brand's deep teal ink. */
:root[data-theme="dark"] :is(
  .activity-booking .ride-option[data-selected="true"],
  .activity-booking .ride-option[data-selected="true"] small,
  .surya-package:has(input:checked), .surya-time:has(input:checked),
  .surya-action, .surya-mobile-book, .activity-mobile-book,
  .activity-booking .booking-preview-link,
  .activity-related-lead .activity-related-action,
  .surya-related-lead .surya-related-action, .bw-footer-contact
) { color: var(--on-signal); }

:root[data-theme="dark"] :is(.activity-mobile-book, .surya-mobile-book):hover {
  background: #f9864d;
  color: var(--on-signal);
}
:root[data-theme="dark"] .surya-page .surya-action:active {
  background: #f9864d;
}
:root[data-theme="dark"] :is(.surya-package, .surya-time):has(input:checked) input {
  accent-color: var(--on-signal);
}
:root[data-theme="dark"] :is(.surya-package, .surya-time):has(input:checked):has(input:focus-visible) {
  outline-color: var(--on-signal);
}

/* Native date pickers, option menus and the existing inset chevron follow theme. */
:root[data-theme="dark"] :is(.activity-booking, .surya-booking) select {
  color-scheme: dark;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' fill='none' stroke='%23ecefeb' stroke-width='2'/%3E%3C/svg%3E");
}
:root[data-theme="dark"] :is(input, textarea) {
  caret-color: var(--slate-deep);
}
:root[data-theme="dark"] :is(input, textarea)::placeholder {
  color: var(--muted);
  opacity: 1;
}
:root[data-theme="dark"] .surya-error { color: var(--owner-error); }
:root[data-theme="dark"] .surya-page [aria-invalid="true"] {
  border-color: var(--owner-error);
}
:root[data-theme="dark"] .activity-booking .ride-quantity {
  border-color: var(--slate-deep);
  color: var(--slate-deep);
}
:root[data-theme="dark"] .jeep-page .ride-quantity button:hover:not(:disabled) {
  background: var(--ground);
}
:root[data-theme="dark"] :is(.activity-page, .surya-page) ::selection {
  background: var(--orange);
  color: var(--on-signal);
}
:root[data-theme="dark"] :is(.bw-header, .bw-footer) .bw-brand {
  background: transparent;
}
:root[data-theme="dark"] :is(.bw-header, .bw-footer) .bw-brand img {
  filter: grayscale(1) invert(1) contrast(2);
  mix-blend-mode: screen;
}

@media (forced-colors: active) {
  :root[data-theme="dark"] :is(.activity-booking, .surya-booking) select {
    background-image: none;
  }
  :root[data-theme="dark"] :is(.bw-header, .bw-footer) .bw-brand img {
    filter: none;
    mix-blend-mode: normal;
  }
}
