/* ===========================================================
   One Spa Warm Spring · 配套页（温泉暖玉 v2.0 tokens）
   移动优先；≥820px 桌面增强（一套响应式，决议）
   =========================================================== */
:root{
  --cream:#FFF2E9; --paper:#FFFBF6;
  --peach:#FFE8DA; --rose:#EFD2C0;
  --clay:#914032; --clay-deep:#6E2A1C;
  --terra:#C2724E; --taupe:#B47F74;
  --ink:#3A2A22; --ink-soft:#7A6457;
  --line:rgba(145,64,50,.16); --line-soft:rgba(145,64,50,.09);
  --shadow:0 10px 30px rgba(110,42,28,.10);
}
body.onespa-packages{
  margin:0; font-family:"Noto Sans SC",system-ui,sans-serif;
  color:var(--ink); background:var(--cream);
  -webkit-font-smoothing:antialiased; line-height:1.65;
}
body.onespa-packages #wpadminbar{display:none;}
.osw-serif{font-family:"Noto Serif SC",serif;}
.osw-app{max-width:460px;margin:0 auto;background:var(--cream);box-shadow:0 0 60px rgba(110,42,28,.12);}
.osw-app img{max-width:100%;display:block;}
.osw-app a{color:inherit;text-decoration:none;}

/* 顶栏（交易层极简） */
.osw-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;background:rgba(255,242,233,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
body.onespa-packages .osw-bar .osw-logo{height:38px;width:auto;max-width:none;display:block;}
.osw-barR{display:flex;align-items:center;gap:12px;}
.osw-barR .trp-language-switcher,.osw-barR .trp_language_switcher_shortcode{border:1px solid var(--line);border-radius:100px;background:var(--paper);font-size:12px;}
.osw-wa{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--clay);color:var(--peach);}
.osw-wa svg{width:20px;height:20px;}

/* Hero */
.osw-hero{position:relative;}
.osw-hero-img{width:100%;height:280px;object-fit:cover;}
.osw-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(58,42,34,.16) 0%,rgba(58,42,34,0) 36%,rgba(110,42,28,.62) 100%);}
.osw-hero-cap{position:absolute;left:24px;right:24px;bottom:18px;color:var(--peach);}
.osw-eyebrow{font-size:11px;letter-spacing:.36em;text-transform:uppercase;opacity:.92;}
.osw-hero-cap h1{font-size:32px;line-height:1.22;font-weight:700;margin:8px 0 0;text-shadow:0 2px 18px rgba(58,42,34,.35);}

/* chips */
.osw-chips{position:sticky;top:63px;z-index:30;display:flex;gap:8px;overflow-x:auto;padding:12px 20px;
  background:rgba(255,242,233,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);scrollbar-width:none;}
.osw-chips::-webkit-scrollbar{display:none;}
/* R2-12：仅当 chip 栏溢出（JS 加 .osw-chips-scroll）时右缘渐隐，提示可横滑 */
.osw-chips-scroll{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);}
.osw-chips a{flex:0 0 auto;font-size:12.5px;font-weight:500;padding:7px 14px;border-radius:100px;background:var(--peach);color:var(--clay);}
.osw-chips a.on{background:var(--clay);color:var(--peach);}

/* 区块 */
.osw-sec{padding:38px 22px;}
.osw-sec.alt{background:var(--paper);}
.osw-sec-head{text-align:center;margin-bottom:22px;}
.osw-k{font-size:11px;letter-spacing:.4em;color:var(--terra);font-weight:600;text-transform:uppercase;}
.osw-sec-head h2{font-size:25px;font-weight:700;margin:8px 0 0;line-height:1.3;letter-spacing:.04em;}
.osw-sub{font-size:13.5px;color:var(--ink-soft);max-width:340px;margin:8px auto 0;font-weight:300;}
.osw-diamond{display:inline-block;width:6px;height:6px;background:var(--terra);transform:rotate(45deg);margin-top:12px;}

/* 配套卡 */
.osw-pk{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:22px;scroll-margin-top:122px;}
.osw-pk.feat{background:linear-gradient(172deg,var(--peach),var(--paper) 46%);border-color:rgba(194,114,78,.5);}
.osw-pk-img{position:relative;}
.osw-pk-img img{width:100%;height:200px;object-fit:cover;}
.osw-tag{position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  background:rgba(110,42,28,.88);color:var(--peach);padding:5px 11px;border-radius:100px;}
.osw-pk-body{padding:18px 18px 20px;}
.osw-pk-name{font-family:"Noto Serif SC",serif;font-size:21px;font-weight:700;margin:0;line-height:1.3;}
.osw-pk-sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.osw-price2{margin:12px 0 4px;border:1px dashed var(--line);border-radius:12px;overflow:hidden;}
.osw-prow{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;}
.osw-prow + .osw-prow{border-top:1px dashed var(--line);}
.osw-prl{font-size:12.5px;color:var(--ink-soft);flex:1;padding-right:10px;}
.osw-prv{font-family:"Noto Serif SC",serif;font-size:18px;font-weight:700;color:var(--clay);white-space:nowrap;}
.osw-prv small{font-size:11.5px;color:var(--ink-soft);font-weight:400;margin-left:3px;}
.osw-prv .osw-was{font-size:11.5px;color:var(--taupe);text-decoration:line-through;font-weight:400;margin-right:5px;}
/* R2-04 风暴浴双价位：主推行高亮 + 最划算徽标 */
.osw-prow-best{background:var(--peach);}
.osw-prow-best .osw-prl{color:var(--clay);font-weight:600;}
.osw-prow-best .osw-prv{font-size:20px;}
.osw-best-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--peach);background:var(--terra);padding:2px 8px;border-radius:100px;margin-left:6px;vertical-align:middle;font-style:normal;}
.osw-pp{font-size:13px;font-weight:700;}
.osw-pricenote{font-size:11.5px;color:var(--terra);margin:6px 2px 0;}
.osw-incl{list-style:none;margin:10px 0 0;padding:0;}
.osw-incl li{position:relative;padding:4px 0 4px 18px;font-size:13.5px;font-weight:300;}
.osw-incl li::before{content:"";position:absolute;left:2px;top:13px;width:5px;height:5px;background:var(--terra);transform:rotate(45deg);}
.osw-note{display:flex;gap:8px;background:var(--peach);border-radius:10px;padding:9px 12px;margin-top:12px;font-size:12.5px;color:var(--clay-deep);line-height:1.55;}
.osw-ctas{display:flex;flex-direction:column;gap:9px;margin-top:14px;}

/* 按钮 */
.osw-btn{font-size:14px;font-weight:500;letter-spacing:.04em;text-align:center;padding:13px 22px;border-radius:10px;
  background:linear-gradient(160deg,#8E3826,#6A2516);color:var(--peach) !important;display:inline-block;}
.osw-btn.block{display:block;}
.osw-btn.ghost{background:transparent;border:1px solid var(--line);color:var(--clay) !important;}
.osw-btn.peach{background:var(--peach);color:var(--clay-deep) !important;font-weight:600;}
.osw-btn:hover{filter:brightness(1.08);}

/* 组合模块 */
.osw-combo{background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.osw-crow{padding:14px 16px;border-bottom:1px dashed var(--line);display:flex;flex-direction:column;gap:6px;}
.osw-crow:last-child{border-bottom:none;}
.osw-crow b{font-family:"Noto Serif SC",serif;font-size:15px;color:var(--clay);}
.osw-crow span{font-size:13px;font-weight:300;line-height:1.6;}
.osw-combo-ctas{display:flex;gap:8px;flex-wrap:wrap;}
.osw-combo-ctas .osw-btn{padding:9px 14px;font-size:12.5px;}
.osw-fine{font-size:11px;color:var(--ink-soft);text-align:center;font-weight:300;margin:14px 6px 0;line-height:1.7;}

/* 按摩列表 */
.osw-upsell{background:linear-gradient(160deg,var(--peach),var(--rose));border-radius:12px;padding:12px 16px;
  font-size:13px;color:var(--clay-deep);margin-bottom:14px;line-height:1.6;}
.osw-mlist{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper);}
.osw-mrow{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px dashed var(--line-soft);}
.osw-mrow:last-child{border-bottom:none;}
.osw-mrow:hover{background:var(--cream);}
.osw-mname{flex:1;font-size:13.5px;font-weight:400;}
.osw-star{font-style:normal;font-size:10px;color:var(--terra);margin-left:6px;letter-spacing:.04em;}
.osw-mmeta{font-size:11.5px;color:var(--ink-soft);white-space:nowrap;}
.osw-mprice{font-family:"Noto Serif SC",serif;font-weight:700;font-size:14.5px;color:var(--clay);white-space:nowrap;}

/* 购买须知 */
.osw-notice{list-style:none;margin:0;padding:0;}
.osw-notice li{position:relative;padding:8px 0 8px 24px;font-size:13.5px;font-weight:300;border-bottom:1px dashed var(--line-soft);}
.osw-notice li:last-child{border-bottom:none;}
.osw-notice li::before{content:"";position:absolute;left:4px;top:18px;width:6px;height:6px;background:var(--terra);transform:rotate(45deg);}

/* 页脚 */
.osw-foot{background:linear-gradient(170deg,var(--clay),var(--clay-deep));color:var(--peach);text-align:center;padding:44px 24px 38px;}
.osw-flogo{height:44px;width:auto;margin:0 auto 18px;}
.osw-foot h2{font-size:24px;font-weight:700;line-height:1.4;margin:0 0 18px;}
.osw-fmeta{margin-top:24px;font-size:11.5px;line-height:1.9;opacity:.78;}

/* ===== 全局浮动 WhatsApp（常驻右下，WhatsApp 标准绿保证辨识度） ===== */
.osw-wa-float{
  position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:90;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;display:grid;place-items:center;
  box-shadow:0 8px 24px rgba(37,211,102,.45),0 2px 8px rgba(58,42,34,.2);
  transition:transform .15s ease;
}
.osw-wa-float:hover{transform:scale(1.08);}
.osw-wa-float svg{width:30px;height:30px;}
/* 顶栏已有语言切换；交易页隐藏 TRP 底部浮动切换器（TRP 3.x v2 真实类名=trp-floating-switcher，
   旧版 #trp-floater-ls 选择器已失效），右下黄金位只留 WhatsApp 一个触点 */
body.onespa-packages .trp-floating-switcher,
body.onespa-packages .trp-language-switcher-container,
body.onespa-packages #trp-floater-ls{display:none !important;}

/* ===== 预订日历弹层（温泉暖玉） =====
   注意：Elementor kit 用 .elementor-kit-419 button（0,1,1）给 <button> 全局上色，
   故所有按钮规则统一加 body.onespa-packages 前缀（0,2,x）夺回控制权。 */
body.onespa-packages .osw-bmodal button{
  appearance:none;-webkit-appearance:none;background:none;border:none;box-shadow:none;
  color:inherit;font-family:inherit;letter-spacing:normal;text-transform:none;line-height:inherit;}
.osw-bmodal{position:fixed;inset:0;z-index:120;}
.osw-bm-back{position:absolute;inset:0;background:rgba(58,42,34,.5);backdrop-filter:blur(3px);}
.osw-bm-sheet{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:460px;
  max-height:88vh;overflow-y:auto;background:var(--paper);border-radius:22px 22px 0 0;
  box-shadow:0 -12px 50px rgba(110,42,28,.3);padding:0 18px calc(14px + env(safe-area-inset-bottom));
  animation:oswUp .22s ease;}
@keyframes oswUp{from{transform:translate(-50%,40px);opacity:.4;}to{transform:translate(-50%,0);opacity:1;}}
@media (min-width:521px){
  .osw-bm-sheet{bottom:auto;top:50%;transform:translate(-50%,-50%);border-radius:22px;max-height:86vh;}
  @keyframes oswUp{from{transform:translate(-50%,-46%);opacity:.4;}to{transform:translate(-50%,-50%);opacity:1;}}
}
.osw-bm-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;
  padding:16px 0 10px;background:var(--paper);border-bottom:1px solid var(--line-soft);}
.osw-bm-title{font-size:19px;font-weight:700;}
body.onespa-packages .osw-bm-close{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--cream);
  color:var(--clay);font-size:20px;line-height:1;cursor:pointer;padding:0;}
.osw-bm-tier{display:flex;gap:8px;margin-top:12px;}
.osw-bm-tier span{flex:1;font-size:11.5px;color:var(--ink-soft);background:var(--cream);border:1px solid var(--line-soft);
  border-radius:10px;padding:8px 10px;line-height:1.5;}
.osw-bm-tier b{display:block;font-family:"Noto Serif SC",serif;font-size:15px;color:var(--clay);}
.osw-bm-sun{font-size:11px;color:var(--terra);margin-top:6px;}
.osw-bm-nav{display:flex;align-items:center;justify-content:space-between;margin:14px 0 8px;}
.osw-bm-month{font-family:"Noto Serif SC",serif;font-size:15.5px;font-weight:700;color:var(--ink);}
body.onespa-packages .osw-bm-prev,body.onespa-packages .osw-bm-next{width:32px;height:32px;border:1px solid var(--line);
  border-radius:50%;background:var(--paper);color:var(--clay);font-size:18px;line-height:1;cursor:pointer;padding:0;}
body.onespa-packages .osw-bm-prev:disabled,body.onespa-packages .osw-bm-next:disabled{opacity:.3;cursor:default;}
.osw-bm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.osw-bm-dow span{text-align:center;font-size:10.5px;color:var(--ink-soft);padding:4px 0;}
body.onespa-packages .osw-bm-day{border:1px solid var(--line-soft);border-radius:10px;background:var(--paper);
  padding:5px 0 4px;text-align:center;cursor:pointer;min-height:46px;font-family:inherit;}
body.onespa-packages .osw-bm-day.pad{border:none;background:transparent;cursor:default;}
.osw-bm-day b{display:block;font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3;}
.osw-bm-day i{display:block;font-style:normal;font-size:9px;color:var(--ink-soft);line-height:1.4;}
.osw-bm-day.wk i{color:var(--terra);font-weight:600;}
.osw-bm-day.ph b::after{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--terra);
  margin-left:3px;vertical-align:2px;}
body.onespa-packages .osw-bm-day.off{opacity:.32;cursor:default;}
body.onespa-packages .osw-bm-day.sel{background:linear-gradient(160deg,#8E3826,#6A2516);border-color:var(--clay-deep);}
.osw-bm-day.sel b,.osw-bm-day.sel i{color:var(--peach);}
.osw-bm-sel{margin-top:12px;}
.osw-bm-picked{font-size:14px;font-weight:600;color:var(--clay-deep);}
.osw-bm-picked em{font-style:normal;font-size:11.5px;color:var(--terra);}
.osw-bm-ph{font-size:12px;color:var(--clay);background:var(--peach);border-radius:8px;padding:7px 10px;margin-top:6px;line-height:1.5;}
.osw-bm-stitle{font-size:13px;font-weight:600;margin:14px 0 8px;}
.osw-bm-sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
body.onespa-packages .osw-bm-slot{border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:9px 0;
  font-size:13px;color:var(--ink);cursor:pointer;font-family:inherit;}
body.onespa-packages .osw-bm-slot.sel{background:linear-gradient(160deg,#8E3826,#6A2516);color:var(--peach);
  border-color:var(--clay-deep);font-weight:600;}
.osw-bm-shint{font-size:11px;color:var(--ink-soft);margin-top:8px;line-height:1.6;}
.osw-bm-loading,.osw-bm-none{font-size:12.5px;color:var(--ink-soft);padding:14px 0;text-align:center;}
/* P1.5：无时段时的 WhatsApp 人工出口 */
.osw-bm-none .osw-bm-wa{display:inline-block;margin-top:4px;color:var(--clay);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
/* P1.5：弹层须知（文案表 §2 各卡须知/提示） */
.osw-bm-notes{list-style:none;margin:14px 0 0;padding:10px 12px;background:var(--cream);border-radius:10px;}
.osw-bm-notes li{font-size:11.5px;color:var(--ink-soft);line-height:1.7;padding-left:14px;position:relative;}
.osw-bm-notes li::before{content:"·";position:absolute;left:3px;color:var(--terra);font-weight:700;}
.osw-bm-foot{position:sticky;bottom:0;background:var(--paper);padding:10px 0 2px;margin-top:14px;border-top:1px solid var(--line-soft);}
.osw-bm-err{font-size:12px;color:var(--clay);min-height:16px;margin-bottom:6px;line-height:1.5;}
body.onespa-packages .osw-bm-book{width:100%;border:none;cursor:pointer;font-family:inherit;
  font-size:14px;font-weight:500;letter-spacing:.04em;text-align:center;padding:13px 22px;border-radius:10px;
  background:linear-gradient(160deg,#8E3826,#6A2516);color:var(--peach);}
body.onespa-packages .osw-bm-book:disabled{opacity:.45;cursor:default;}
body.onespa-packages .osw-bm-book.notready{opacity:.45;}
/* 份数步进器（预订选多份）
   方案 A（6/14 叶伟选定）：分段步进器——标签靠左；−│数字│+ 连体成一个 terra 描边 pill，
   −/+ 浅 cream 底、数字白底、中间 rose 分隔线，一眼即"数量选择器"，对比度足、不再像散落字符。 */
.osw-bm-qty{display:flex;align-items:center;margin-bottom:12px;}
.osw-bm-qty>span{margin-right:auto;font-size:14px;font-weight:500;color:var(--ink);}
/* 选择器带 .osw-bm-qty 祖先（0,3,1）压过弹层 button reset（body.onespa-packages .osw-bmodal button{border:none;background:none}，0,2,2）——
   否则 −/+ 的描边与底色会被 reset 抹掉，退化成光秃字符（数字是 <b>不受 button reset 影响，故能正常显示）。 */
body.onespa-packages .osw-bm-qty .osw-bm-qm,body.onespa-packages .osw-bm-qty .osw-bm-qp{width:42px;height:40px;box-sizing:border-box;
  border:1px solid var(--terra);background:var(--cream);color:var(--clay);font-size:20px;line-height:1;
  cursor:pointer;display:grid;place-items:center;font-family:inherit;}
body.onespa-packages .osw-bm-qty .osw-bm-qm{border-radius:10px 0 0 10px;border-right:1px solid var(--rose);}
body.onespa-packages .osw-bm-qty .osw-bm-qp{border-radius:0 10px 10px 0;border-left:1px solid var(--rose);}
body.onespa-packages .osw-bm-qty .osw-bm-qm:disabled,body.onespa-packages .osw-bm-qty .osw-bm-qp:disabled{opacity:.4;cursor:default;}
.osw-bm-qn{min-width:46px;height:40px;line-height:38px;box-sizing:border-box;text-align:center;font-size:16px;font-weight:500;
  color:var(--ink);background:#fff;border-top:1px solid var(--terra);border-bottom:1px solid var(--terra);font-variant-numeric:tabular-nums;}
/* 卡片/组合区的 <button> CTA：同样要压过 Elementor kit 的 button 全局样式 */
body.onespa-packages button.osw-btn{appearance:none;-webkit-appearance:none;border:none;box-shadow:none;cursor:pointer;
  font-family:inherit;width:100%;font-size:14px;font-weight:500;letter-spacing:.04em;text-transform:none;
  text-align:center;padding:13px 22px;border-radius:10px;line-height:inherit;
  background:linear-gradient(160deg,#8E3826,#6A2516);color:var(--peach);}
body.onespa-packages button.osw-btn.ghost{background:transparent;border:1px solid var(--line);color:var(--clay);}
body.onespa-packages .osw-combo-ctas button.osw-btn{width:auto;padding:9px 14px;font-size:12.5px;}

/* ===== 标题排版加固 =====
   旧站以 inline 全局样式注入 Abhaya Libre 72/64/48px 标题（customizer 级，外链样式表里翻不到），
   特异性压过本表常规规则——实测 hero 被放大到 72px。此处 body 前缀 + !important 钉死设计值。
   6/12 深夜叶伟报 bug 后修复；之前所有截图里的"大标题"均为该污染，非设计。 */
body.onespa-packages .osw-serif{font-family:"Noto Serif SC",serif !important;}
body.onespa-packages .osw-hero-cap h1{font-size:32px !important;line-height:1.22 !important;}
body.onespa-packages .osw-sec-head h2{font-size:25px !important;line-height:1.3 !important;margin:8px 0 0 !important;}
body.onespa-packages h3.osw-pk-name{font-size:21px !important;line-height:1.3 !important;margin:0 !important;font-family:"Noto Serif SC",serif !important;}
body.onespa-packages .osw-foot h2{font-size:24px !important;line-height:1.4 !important;margin:0 0 18px !important;}

/* ===== 大屏策略（叶伟 6/12 决议）：手机版即本体，桌面统一居中手机壳 =====
   100% 客户在手机；桌面精修排版归 P2。任何设备打开都是同一套手机体验。 */
@media (min-width:521px){
  body.onespa-packages{background:linear-gradient(170deg,#F4E3D7,#EFD2C0);}
  .osw-app{margin:28px auto;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px rgba(110,42,28,.22);}
}

/* 购物车入口（osw 页眉通用） */
.osw-barR{display:flex;align-items:center;gap:6px}
.osw-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--ink-soft);text-decoration:none;border-radius:50%;transition:background .15s}
.osw-cart:hover{background:rgba(107,85,56,.09)}
.osw-cart svg{width:22px;height:22px}
.osw-cart-n{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--clay-deep);color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center;box-sizing:border-box}
.osw-cart-n[hidden]{display:none}
