/* Styles specific to this tour; shared layout utilities remain in the base CSS. */
html { scroll-behavior: smooth; }
.tour-page .main_header, .tour-page .main_header._fixed { position: sticky; top: 0; z-index: 11; background: white; }
#temp_jWDNhamgDBNUcFiQ { height: auto; align-items: stretch; }
.tour-gallery-media { align-self: stretch; height: auto; }
.gallery-thumbnails { max-height: 500px; }
.gallery-preview { height: auto; }
.gallery-preview img { width: 100%; height: 100%; }
#tour-detail-nav .toc-inner, #tour-detail-nav .toc-inner:hover { scrollbar-width: none; }
#tour-detail-nav .toc-inner::-webkit-scrollbar, #tour-detail-nav .toc-inner:hover::-webkit-scrollbar { height: 0; }
.participation-range small { color: #777; font-size: 14px; font-weight: 400; }
.tour-participation { margin-top: 18px; padding-top: 20px; border-top: 1px solid #e3e3e3; }
.participation-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-weight: 700; }
.participation-tag { font-size: 12px; color: #cf473e; background: #fbe7e4; padding: 3px 9px; border-radius: 20px; }
.participation-range { margin: 12px 0 6px; color: #d94b41; font-size: clamp(22px, 2.2vw, 30px); font-weight: 700; line-height: 1.4; }
.participation-range > span:first-child { font-size: 18px; }
.tour-participation .participation-hint { margin: 6px 0 12px; color: #777; font-size: 12px; line-height: 1.6; }
.participation-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.participation-options button { padding: 9px 0; border: 1px solid #ddd; border-radius: 6px; background: white; color: #444; font: inherit; cursor: pointer; }
.participation-options button[aria-pressed="true"] { border-color: #d94b41; color: #d94b41; background: #fff0ed; font-weight: 700; }
.participation-label { display: block; margin-bottom: 8px; font-size: 14px; }
#participation-quantity { display: block; box-sizing: border-box; width: 100%; padding: 11px 12px; border: 1px solid #ddd; border-radius: 6px; background: white; color: #333; font: inherit; }
.participation-total { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 18px 0; font-size: 14px; }
.participation-total strong { color: #d94b41; font-size: 22px; }
.participation-submit { width: 100%; margin-top: 18px; padding: 13px 10px; border: 0; border-radius: 5px; background: #d94b41; color: white; font: inherit; font-size: 20px; font-weight: 700; cursor: pointer; }
.participation-submit:hover { background: #c64037; }
.tour-participation :focus-visible { outline: 2px solid #d94b41; outline-offset: 3px; }
#participation-summary { margin-top: 14px; color: #d94b41; }
.tour-page .main_container, .tour-page .temp_G0utV86A39UBRUKJ {
  max-width: calc(100% - 40px); margin-inline: auto;
}
.nav_item { scroll-margin-top: 140px; }
#tour-detail-nav { top: 70px; }
.tour-content { margin-right: 0; min-width: 0; }
.tour-gallery-media { min-width: 0; }
.gallery-thumbnails {
  width: 20%; display: flex; flex-direction: column; gap: 10px;
  height: 100%; overflow: auto; padding-right: 5px;
}
.gallery-thumbnail {
  position: relative; padding: 0; border: 0; border-radius: 10px;
  background: transparent; cursor: pointer; flex-shrink: 0;
}
.gallery-thumbnail img {
  display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px;
}
.gallery-thumbnail[aria-pressed="false"]::before {
  content: ''; position: absolute; inset: 0; border-radius: 10px; background: rgb(0 0 0 / 30%);
}
.gallery-preview {
  display: block; flex: 1; min-width: 0; height: 100%; margin-left: 10px;
  padding: 0; border: 0; background: transparent; cursor: zoom-in;
}
.gallery-preview img { height: 100%; max-width: 100%; object-fit: cover; border-radius: 10px; }
.tour-hot-badge {
  position: absolute; top: 0; right: 0; padding: 10px 20px;
  border-radius: 0 10px 0 10px; background: #ff8524; color: white;
  box-shadow: 0 6px 18px rgb(255 133 36 / 25%); font-weight: 700;
}
[data-toggle-days] { border: 0; background: transparent; font: inherit; }
.contact-tools {
  position: fixed; right: max(20px, env(safe-area-inset-right));
  top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 12px; z-index: 20;
}
.contact-tool {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; width: 64px; height: 68px; margin: 0; padding: 0;
  border: 1px solid rgb(255 255 255 / 20%); border-radius: 14px;
  background: #1e77bc; color: white;
  font: 500 13px/1.2 "Microsoft YaHei", "PingFang SC", sans-serif;
  letter-spacing: 0; text-decoration: none; text-align: center;
  cursor: pointer; box-shadow: 0 3px 10px rgb(0 0 0 / 10%);
  transition: background-color .15s, box-shadow .15s;
}
.contact-tool:hover { color: white; background: #1769a7; box-shadow: 0 4px 14px rgb(0 0 0 / 15%); }
.contact-tool img {
  display: block; width: 26px; height: 26px; margin: 0; padding: 0;
  flex: none; object-fit: contain; filter: brightness(0) invert(1);
}
.contact-tool span { display: block; margin: 0; padding: 0; line-height: 16px; white-space: nowrap; }
.contact-tool:focus-visible { outline: 2px solid #1e77bc; outline-offset: 3px; }
.contact-tool--wechat { background: #07a95a; }
.contact-tool--wechat:hover { background: #07944f; }
.wechat-dialog {
  width: min(340px, calc(100vw - 32px)); padding: 28px; border: 0;
  border-radius: 16px; text-align: center; color: #333;
}
.wechat-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.wechat-dialog h2 { font-size: 22px; margin: 0 0 16px; }
.wechat-dialog img { display: block; width: 220px; max-width: 100%; margin: 0 auto 16px; }
.wechat-dialog p { margin: 0; font-size: 14px; color: #666; }
.wechat-dialog-close {
  position: absolute; top: 6px; right: 10px; padding: 4px 8px;
  border: 0; background: transparent; color: #666; font-size: 26px; cursor: pointer;
}
.gallery-thumbnail:focus-visible, .gallery-preview:focus-visible,
[role="button"]:focus-visible, [data-toggle-days]:focus-visible {
  outline: 2px solid #1e77bc; outline-offset: 3px;
}
@media (max-width: 768px) {
  .tour-gallery-media { height: clamp(180px, 50vw, 350px); flex: none; }
  .contact-tools { right: max(10px, env(safe-area-inset-right)); gap: 10px; }
  .contact-tool { width: 56px; height: 62px; gap: 5px; border-radius: 12px; font-size: 12px; }
  .contact-tool img { width: 24px; height: 24px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.product-description img { max-width: 100%; height: auto; }
.product-description h1, .product-description h2, .product-description h3 { white-space: normal; }
.product-description ul, .product-description ol { padding-left: 24px; }
.product-description blockquote { padding: 12px 16px; border-left: 3px solid #d94b41; background: #f5f5f5; }
