/* GoUSTours 站点专属样式覆写 — 本文件是 goustours 自有文件,重建不会被 uvtravel 覆盖。
   全站级样式改动写这里,不要直接改 style.css(build_all.sh 每次重拷)。 */

/* 英文 hero 标题: 中文书法体的 nowrap/超大字号/5px字距 对长英文句会溢出屏幕,
   英文改衬线体、缩小字号、允许换行 (2026-07-06 用户要求修英文排版) */
.qhy-h1 .lang-en {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 4.4vw, 58px);
  letter-spacing: .5px;
  white-space: normal;
  line-height: 1.18;
}

/* 首页入口卡只有 3 张(原版4列网格会左对齐留白): 改 3 等分铺满居中 (2026-07-06 用户要求) */
.entry-bar { grid-template-columns: repeat(3, 1fr); }

/* 英文 Logo(logo-main.svg 560x380 方形构图)在 46px 档显得过小,放大一档 */
.uvt-brand .brand-logo.lang-en { height: 60px; }
.foot-brand .brand-logo.lang-en { height: 72px; }

/* 卡片销售量(价格行右侧) */
.uvt-card .price .sold { margin-left: auto; font-size: 12px; color: #9aa0a8; font-weight: 500; }

/* 详情页销售量徽章(标题右侧) */
.uvt-head .det-sold { align-self: center; white-space: nowrap; background: #fdf0e7; color: #c2410c;
  font-weight: 800; font-size: 15px; padding: 8px 14px; border-radius: 999px; }

/* 评价区「系统翻译 / Machine-translated」小标签 — 页面语言与评论原文语言不同时,
   由 user.js 在作者名旁插入(浅灰小字圆角胶囊) */
.rv-item .rv-mt { display: inline-block; font-size: 11px; color: #9aa0a8;
  background: #f2f3f5; border: 1px solid #e4e6ea; border-radius: 999px;
  padding: 1px 8px; font-weight: 500; white-space: nowrap; vertical-align: 1px; }

/* Hero 布局协调化 (2026-07-06 用户反馈文字与背景不协调):
   ① 收紧高度,减少顶部大片留白 ② 文字块整体略上移居中偏下,构图更均衡
   ③ 文字区加柔和椭圆暗色衬托,白色书法标题在明亮桥景/雾气上也清晰 */
.qhy-hero { height: 76vh; min-height: 500px; }
.qhy-hero-in { padding: 0 20px 8vh; }
.qhy-hero-scrim {
  background:
    radial-gradient(ellipse 78% 46% at 50% 74%, rgba(8,16,30,.52) 0%, rgba(8,16,30,0) 66%),
    linear-gradient(180deg, rgba(8,16,30,.20) 0%, rgba(8,16,30,.16) 38%, rgba(8,16,30,.52) 72%, rgba(8,16,30,.90) 100%);
}
.qhy-h1 { letter-spacing: 3px; text-shadow: 0 3px 26px rgba(0,0,0,.6); }
.qhy-sub { opacity: 1; text-shadow: 0 1px 12px rgba(0,0,0,.7); }

/* 页头/页脚 公司名（趣环游 · Moreahead USA LLC）2026-07-06 用户要求 */
.uvt-brand + .brand-co { font-size: 12px; color: #8a8f98; font-weight: 600; letter-spacing: .2px;
  padding-left: 12px; margin-left: 10px; border-left: 1px solid #e2e4e8; white-space: nowrap; align-self: center; }
.foot-co { margin-top: 8px; font-size: 12.5px; color: #9aa0a8; font-weight: 600; }
@media (max-width: 860px) { .uvt-brand + .brand-co { display: none; } }  /* 窄屏页头不挤,信息仍在页脚 */

/* 咨询制线路卡片价格位:显示"价格请咨询"(替代空白价格) */
.uvt-card .price-inq .inq { font-size: 15px; font-weight: 700; color: #185FA5; }

/* 优惠码输入区(预订弹窗) — goustours 自有,重建不被 uvtravel 覆盖 (2026-08) */
.uvt-order-form .of-promo { margin-bottom: 11px; }
.of-promo-row { display: flex; gap: 8px; align-items: stretch; }
.of-promo-row input { flex: 1; text-transform: uppercase; }
.of-promo-row input::placeholder { text-transform: none; }
.of-apply { flex: 0 0 auto; padding: 0 16px; border: 1px solid var(--accent, #f5841f);
  background: #fff; color: var(--accent, #f5841f); border-radius: 10px; font-size: 13.5px;
  font-weight: 700; cursor: pointer; white-space: nowrap; transition: .15s; }
.of-apply:hover { background: var(--accent, #f5841f); color: #fff; }
.of-promo-msg { font-size: 12.5px; margin-top: 6px; line-height: 1.4; }
.of-promo-msg.ok { color: #1d8a4e; }
.of-promo-msg.err { color: #cf3636; }
/* 折后总价的三行展示 */
.of-total .of-total-strike { display: block; color: var(--muted, #8a8a99); text-decoration: line-through;
  font-weight: 500; font-size: 12.5px; }
.of-total .of-total-disc { display: block; color: #1d8a4e; font-weight: 700; font-size: 13px; }
.of-total .of-total-final { display: block; color: var(--accent, #f5841f); font-weight: 800; font-size: 15px; margin-top: 1px; }

/* 预订弹窗内的「出发日历 · 库存」选择器 — 复用详情页 .cal-* 类,缩小尺寸适配弹窗(约360-480px)
   goustours 自有文件,重建不被 uvtravel 覆盖 (2026-08) */
.uvt-order-form .of-cal-field { display: block; }
.of-cal { border: 1px solid var(--line); border-radius: 12px; padding: 12px 12px 11px; background: #fff; }
.of-cal .cal-head { gap: 10px; margin-bottom: 9px; }
.of-cal .cal-month { font-size: 15px; min-width: 118px; }
.of-cal .cal-nav { width: 30px; height: 30px; font-size: 17px; }
.of-cal .cal-grid { gap: 3px; }
.of-cal .cal-dow { font-size: 11px; padding-bottom: 2px; }
.of-cal .cal-cell { min-height: 40px; border-radius: 7px; padding: 3px 1px 2px; font-size: 10px;
  gap: 0; min-width: 0; overflow: hidden; }
.of-cal .cal-cell.sold { cursor: default; }   /* 售罄不可点:去掉从 .avail 继承来的手型指针 */
.of-cal .cal-cell .dn { font-size: 12.5px; }
.of-cal .cal-cell .cstk { font-size: 9.5px; line-height: 1.15; white-space: nowrap; letter-spacing: -.2px; }
.of-cal .cal-legend { gap: 12px; margin-top: 10px; font-size: 12px; }
.of-cal .cal-legend i.dot { width: 10px; height: 10px; }
.of-cal-sel { margin-top: 10px; min-height: 20px; font-size: 13px; color: var(--ink); font-weight: 600; }
.of-cal-sel:empty { margin-top: 0; }
.of-cal-sel b { color: var(--accent); }
.of-cal-sel .pill { display: inline-flex; align-items: center; padding: 1px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; }
.of-cal-sel .pill.ample { background: #eafaf0; color: #15a05a; }
.of-cal-sel .pill.low   { background: #fff3e0; color: #d9820a; }
.of-cal-sel .pill.sold  { background: #f3f3f6; color: #b3b3bd; }
/* 行程「每天」标题行:悬停高亮提示可点开 (2026-08-16 用户要求) */
.uvt-day .dhead { border-radius: 10px; padding: 7px 10px 7px 8px; margin-left: -8px; transition: background .15s ease; }
@media (hover: hover) {
  .uvt-day .dhead:hover { background: #fdf3e7; }
  .uvt-day .dhead:hover .dsection, .uvt-day .dhead:hover .dlabel { color: var(--accent, #f5841f); }
  .uvt-day .dhead:hover .dtoggle { color: var(--accent-dark, #d96f10); }
}

/* 方案C:「Details ⌄」文字+箭头(2026-08-16 用户选定,替代实心橙圆按钮)
   展开时文字变「Hide」、只有箭头翻转(整体旋转会把文字也转倒) */
.uvt-day .dhead .dtoggle {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 3px;
  color: var(--accent, #f5841f); font-size: 12.5px; font-weight: 700;
  white-space: nowrap; transition: color .15s ease;
}
/* style.css 第449行有 `.uvt-day.open .dtoggle{transform:rotate(180deg)}` —— 会把文字也转倒,
   必须显式取消;旋转只加在 svg 上。(style.css 每次构建从 uvtravel 重拷,不能直接改那边) */
.uvt-day.open .dhead .dtoggle { transform: none; }
.uvt-day .dhead .dtoggle svg { display: block; width: 15px; height: 15px;
  transition: transform .2s ease; }
.uvt-day.open .dhead .dtoggle svg { transform: rotate(180deg); }
.uvt-day .dhead .dtoggle .t-close { display: none; }
.uvt-day.open .dhead .dtoggle .t-open { display: none; }
.uvt-day.open .dhead .dtoggle .t-close { display: inline; }
/* 极窄屏(≤380px)行内空间紧张:只留箭头,不显示文字 */
@media (max-width: 380px) { .uvt-day .dhead .dtoggle .dt-t { display: none; } }

/* 行程顶部提示条(2026-08-16;「全部展开」按钮用户已决定去掉,只留这句提示) */
.itin-bar { margin: -2px 0 14px; padding-bottom: 12px;
  border-bottom: 1px solid var(--line, #eceef1); }
.itin-hint { font-size: 13px; color: var(--muted, #8a8f98); }

/* 预订/咨询弹窗联系区:去二维码,改三行文字联系方式 (2026-08 用户要求) */
.enq-contacts { border: 1px solid var(--line, #e4e6ea); border-radius: 12px; padding: 2px 14px; margin-top: 12px; }
.enq-crow { display: flex; align-items: center; gap: 12px; padding: 12px 2px;
  border-bottom: 1px solid var(--line, #eceef1); text-decoration: none; color: inherit; }
.enq-crow:last-child { border-bottom: 0; }
.enq-crow .ci { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center;
  justify-content: center; font-size: 17px; flex: 0 0 auto; }
.enq-crow .ci-mail { background: #e8f0fb; }
.enq-crow .ci-wa   { background: #e7f8ec; }
.enq-crow .ci-wx   { background: #e6f4ea; }
.enq-crow .ct { display: flex; flex-direction: column; min-width: 0; }
.enq-crow .ct small { font-size: 12px; color: var(--muted, #8a8f98); }
.enq-crow .ct b { font-size: 15px; font-weight: 600; color: var(--ink, #23262b); word-break: break-all; }
.enq-crow .arr { margin-left: auto; color: var(--muted, #b3b8c0); font-size: 20px; }
a.enq-crow:hover .ct b { color: var(--accent, #f5841f); }
.enq-copy { margin-left: auto; flex: 0 0 auto; font-size: 12px; font-weight: 700; cursor: pointer;
  border: 1px solid var(--line, #dfe2e7); background: #fff; color: var(--ink, #444); border-radius: 999px;
  padding: 4px 13px; transition: .15s; }
.enq-copy:hover { border-color: var(--accent, #f5841f); color: var(--accent, #f5841f); }
.enq-copy.ok { border-color: #1d8a4e; color: #1d8a4e; }

/* 「二次确认 / 别急着买机票」警示框 — 预订第2步 + 成功页 (2026-08-16 用户要求) */
.of-warn { background: #fff6e8; border: 1px solid #f7c98b; border-left: 4px solid var(--accent, #f5841f);
  border-radius: 10px; padding: 12px 14px; margin: 4px 0 14px; }
.of-warn-h { font-size: 13.5px; font-weight: 800; color: #a35a06; margin-bottom: 6px; line-height: 1.35; }
.of-warn-b { font-size: 12.8px; color: #6b4a1f; line-height: 1.6; }
.of-warn-b b { color: #a35a06; font-weight: 800; }

/* 联系人电话:区号下拉 + 号码 (2026-08 用户要求) */
.of-phone-row { display: flex; gap: 8px; }
.of-phone-row .of-cc { flex: 0 0 auto; width: auto; max-width: 128px; }
.of-phone-row input { flex: 1; min-width: 0; }

/* 单日游 Adults/Children 标签上的每人价小字(2026-08 去掉房型下拉后价格标在这里) */
.uvt-order-form .of-pp { color: var(--muted, #8a8a99); font-weight: 500; font-size: 11.5px; margin-left: 4px; }

/* 窄屏(≤480px):再压缩,保证 375px 弹窗日历不横向溢出 */
@media (max-width: 480px) {
  .uvt-modal-card:has(.uvt-order-form) { padding: 22px 15px 24px; }
  .of-cal { padding: 10px 7px 10px; }
  .of-cal .cal-grid { gap: 2px; }
  .of-cal .cal-cell { min-height: 38px; }
  .of-cal .cal-cell .cstk { font-size: 8.5px; letter-spacing: -.4px; }
  .of-cal .cal-legend { gap: 9px; font-size: 11px; }
}

/* ── 手机/窄屏:修线路详情页横向溢出 (2026-08 用户要求) ──
   起因:.uvt-main 是 grid 项,默认 min-width:auto 会被富文本/日历撑破单元格,把整页顶宽出屏幕;
   吸底预订条与详情页出发日历也一起溢出。以下让它们都能收进屏幕。 */
.uvt-main { min-width: 0; }                        /* grid 项可收缩,不再撑破单元格 */
.uvt-rich { overflow-wrap: break-word; word-break: break-word; }
.uvt-rich img, .uvt-main img { max-width: 100%; height: auto; }
.uvt-rich table, .uvt-rich pre { max-width: 100%; overflow-x: auto; display: block; }
/* 详情页出发日历(#uvtCalWidget):7 列始终塞进容器,格内内容裁切不撑破页面(不影响弹窗内 .of-cal 日历) */
#uvtCalWidget .cal-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
#uvtCalWidget .cal-dow, #uvtCalWidget .cal-cell { min-width: 0; }
#uvtCalWidget .cal-cell { overflow: hidden; }
/* 吸底预订条:按视口宽、信息区可收缩(该条仅手机可见) */
.uvt-mobilebar { width: 100vw; max-width: 100vw; left: 0; right: auto; box-sizing: border-box; }
.uvt-mobilebar .mb-info { min-width: 0; }

@media (max-width: 480px) {
  /* 窄屏:日历格省略每格价格(价格在吸底条/预订弹窗已有),字号收紧、不拥挤 */
  #uvtCalWidget .cal-cell { padding: 4px 2px; }
  #uvtCalWidget .cal-cell .cprice { display: none; }
  #uvtCalWidget .cal-cell .cstk { font-size: 8.5px; }
  #uvtCalWidget .cal-cell .dn { font-size: 12px; }
}

/* 多日线路预订:房间数 stepper + 每间入住人数下拉(app.js 动态渲染进 #ofRoomsWrap)
   goustours 自有文件,重建不被 uvtravel 覆盖 (2026-08);强调色=站点橙 --accent #f5841f */
.uvt-order-form .of-rooms { margin-bottom: 12px; }
.of-rooms-stepper { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.of-rooms-stepper > span { display: block; font-size: 12px; color: var(--muted); font-weight: 600; }
.of-stepper { display: inline-flex; align-items: stretch; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; flex: 0 0 auto; }
.of-stepper button { width: 40px; height: 40px; border: 0; background: #fff; color: var(--accent, #f5841f);
  font-size: 20px; font-weight: 700; line-height: 1; cursor: pointer; transition: .15s; }
.of-stepper button:hover:not(:disabled) { background: var(--accent, #f5841f); color: #fff; }
.of-stepper button:disabled { color: #c9ccd2; cursor: not-allowed; }
.of-stepper-n { min-width: 44px; text-align: center; font-size: 15px; font-weight: 800; color: var(--ink);
  align-self: center; border-left: 1px solid var(--line); border-right: 1px solid var(--line); height: 40px; line-height: 40px; }
.of-room-list { display: flex; flex-direction: column; gap: 10px; }
.of-room-row { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fff; }
.of-room-head { display: flex; align-items: center; margin-bottom: 7px; }
.of-room-label { font-size: 12.5px; font-weight: 700; color: var(--accent, #f5841f); }
/* the per-room <select> inherits .uvt-order-form select box styling (width:100%, box-sizing) — no overflow */
.of-room-sub { margin-top: 7px; font-size: 12.5px; color: var(--muted); font-weight: 600; }
@media (max-width: 480px) {
  .of-room-row { padding: 9px 10px; }
  .of-stepper button { width: 38px; height: 38px; }
  .of-stepper-n { min-width: 40px; height: 38px; line-height: 38px; }
}

/* ══ 两步预订 · Step 2（出行人信息）— goustours 自有，重建不被 uvtravel 覆盖 (2026-08) ══
   强调色=站点橙 --accent #f5841f；复用 .uvt-order-form 既有输入框样式，只加新块。 */
.of-back { border: 0; background: none; color: var(--accent, #f5841f); font-size: 13.5px;
  font-weight: 700; cursor: pointer; padding: 0 0 10px; }
.of-back:hover { text-decoration: underline; }
/* 顶部订单摘要（复用 step-1 已算总价，不另算） */
.of-summary { background: var(--accent-soft, #fff4e3); border: 1px solid #ffe3c2; border-radius: 12px;
  padding: 12px 14px; margin-bottom: 16px; }
.of-sum-name { font-size: 14.5px; font-weight: 800; color: var(--ink, #34343d); margin-bottom: 8px; line-height: 1.35; }
.of-sum-row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px;
  color: var(--ink-2, #565660); padding: 3px 0; }
.of-sum-row > span:first-child { color: var(--muted, #8a8a99); }
.of-sum-row b { color: var(--ink, #34343d); font-weight: 700; }
.of-sum-total { border-top: 1px dashed #ffd7a8; margin-top: 4px; padding-top: 7px; font-size: 14px; }
.of-sum-total b { color: var(--accent, #f5841f); font-weight: 800; font-size: 15px; }
.of-sum-total s { color: var(--muted, #8a8a99); }
.of-sum-promo { color: #1d8a4e; font-weight: 700; font-size: 12px; }
/* 分区标题 */
.of-sec-h { font-size: 13px; font-weight: 800; color: var(--ink, #34343d); letter-spacing: .2px;
  margin: 18px 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--line, #ececf1); }
/* 「同第 1 位客人」勾选（覆盖 .uvt-order-form input 的 width:100%） */
.of-check { display: flex; align-items: center; gap: 8px; margin: -4px 0 12px; font-size: 13px;
  color: var(--ink-2, #565660); cursor: pointer; }
.of-check input[type=checkbox] { width: 16px; height: 16px; margin: 0; flex: 0 0 auto;
  accent-color: var(--accent, #f5841f); }
.of-check span { font-weight: 600; }
/* 出行人卡片 */
.of-guests { display: flex; flex-direction: column; gap: 12px; }
.of-guest { border: 1px solid var(--line, #ececf1); border-radius: 12px; padding: 12px 12px 4px; background: #fff; }
.of-guest-h { font-size: 12.5px; font-weight: 800; color: var(--accent, #f5841f); margin-bottom: 8px; }
/* 分段开关（大人/孩子、男 M/女 F）— 选中态=橙 */
.of-seg { display: flex; border: 1px solid var(--line, #ececf1); border-radius: 10px; overflow: hidden; }
.of-seg-b { flex: 1; border: 0; border-left: 1px solid var(--line, #ececf1); background: #fff;
  color: var(--ink-2, #565660); font-size: 13.5px; font-weight: 600; padding: 9px 4px; cursor: pointer;
  font-family: inherit; transition: .15s; }
.of-seg-b:first-child { border-left: 0; }
.of-seg-b:hover { background: var(--accent-soft, #fff4e3); }
.of-seg-b.on { background: var(--accent, #f5841f); color: #fff; }
/* 上/下车地点：desc 小提示（保留换行） */
.of-cp-hint { margin-top: 6px; font-size: 12px; color: var(--muted, #8a8a99); line-height: 1.5; white-space: pre-line; }
@media (max-width: 480px) {
  .of-guest { padding: 10px 10px 2px; }
  .of-seg-b { font-size: 13px; padding: 9px 2px; }
}
