/* ===========================================================
   One Spa Warm Spring · 结账壳（温泉暖玉 v2.0 tokens，与 packages.css 同源）
   作用对象：WooCommerce Blocks 结账。所有按钮/输入覆盖一律带 body.onespa-checkout
   前缀（压过 Elementor kit 的 .elementor-kit-419 button 全局样式，同 packages 防坑）。
   =========================================================== */
: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-checkout{
  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-checkout #wpadminbar{display:none;}
.osw-co{max-width:460px;margin:0 auto;background:var(--cream);min-height:100vh;
  box-shadow:0 0 60px rgba(110,42,28,.12);display:flex;flex-direction:column;}
.osw-co img{max-width:100%;}
@media (min-width:521px){
  body.onespa-checkout{background:linear-gradient(170deg,#F4E3D7,#EFD2C0);}
  .osw-co{margin:28px auto;border-radius:24px;overflow:hidden;min-height:auto;
    box-shadow:0 24px 80px rgba(110,42,28,.22);}
}

/* 顶栏（logo 规则带 body+bar 前缀：旧站全局 img 规则特异性 0,1,1 会把 38px 顶掉，实测放大到 168px） */
.osw-co-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-checkout .osw-co-bar .osw-co-logo{height:38px;width:auto;max-width:none;display:block;}
.osw-co-bar .trp-shortcode-switcher__wrapper{font-size:12px;}

/* 加购入口（文案表 v2 §5：结账加购位 / 结账按摩位） */
.osw-co-upsell{display:flex;gap:8px;padding:12px 16px 0;}
.osw-co-up{flex:1;display:flex;align-items:center;justify-content:space-between;gap:6px;
  font-size:12px;line-height:1.4;color:var(--clay);text-decoration:none;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px 12px;}
.osw-co-up.hot{background:linear-gradient(160deg,var(--peach),var(--rose));color:var(--clay-deep);font-weight:600;}
.osw-co-up span{font-size:16px;opacity:.7;}

/* P1.5 种子#1：入口话术按购物车状态切换（服务端渲染初态，JS 跟随 blocks cart store 只切 class）
   默认 = pk-more + m0（中性按摩入口）；车内有 B1F1 = m8（8 折承诺）；空车 = 只剩 pk-empty */
.osw-co-up.pk-empty,.osw-co-up.m8{display:none;}
.osw-co-upsell.has-b1f1 .m8{display:flex;}
.osw-co-upsell.has-b1f1 .m0{display:none;}
.osw-co-upsell.cart-empty .pk-more,.osw-co-upsell.cart-empty .m0,.osw-co-upsell.cart-empty .m8{display:none;}
.osw-co-upsell.cart-empty .pk-empty{display:flex;}

/* P1.5 种子#6 补充：blocks 空车态自带的"Browse store"按钮指向旧 shop 页(/spapackages/ 旧 UI)，
   藏掉；去配套页的路径 = 顶部 pk-empty 入口（新前台） */
body.onespa-checkout .wc-block-checkout-empty .wp-block-button{display:none !important;}

/* P1.5 拍板项③：到店日期不一致软提醒 */
.osw-co-datewarn{margin:10px 16px 0;padding:10px 12px;border-radius:10px;font-size:12.5px;line-height:1.6;
  background:#FCF3DC;border:1px solid rgba(170,120,30,.25);color:#7A5A18;}
.osw-co-datewarn b{font-weight:700;}

/* P1.5 到店凭证卡（order-received）：大字订单号 = 前台核销凭据（散客群"报名字查无此单"对策） */
.osw-co-voucher{margin:14px 16px 0;padding:18px 18px 14px;border-radius:14px;color:var(--clay-deep);
  background:linear-gradient(160deg,var(--peach),var(--rose));box-shadow:var(--shadow);}
.osw-co-voucher .osw-vc-k{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;}
.osw-co-voucher .osw-vc-num{font-family:"Noto Serif SC",serif;font-size:40px;font-weight:800;line-height:1.15;letter-spacing:.02em;}
.osw-co-voucher .osw-vc-hint{font-size:13px;margin-top:2px;opacity:.85;}
.osw-co-voucher .osw-vc-items{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px dashed rgba(110,42,28,.3);}
.osw-co-voucher .osw-vc-items li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:14px;padding:2px 0;}
.osw-co-voucher .osw-vc-items b{font-weight:600;}
.osw-co-voucher .osw-vc-items em{font-style:normal;opacity:.8;}
.osw-co-voucher .osw-vc-items span{margin-left:auto;font-weight:700;white-space:nowrap;font-family:"Noto Serif SC",serif;}

/* 主体（标题加固：旧站 inline 全局样式会注入 Abhaya 大字号，统一 !important 钉死） */
.osw-co-main{padding:14px 16px 26px;flex:1;}
body.onespa-checkout .osw-co-main h1,body.onespa-checkout .osw-co-main h2,
body.onespa-checkout .osw-co-main h3,body.onespa-checkout .osw-co-main h4,
body.onespa-checkout .osw-co-main .wc-block-components-title,
body.onespa-checkout .osw-co-main .wc-block-components-checkout-step__title{
  font-family:"Noto Serif SC",serif !important;color:var(--ink);
  font-size:16.5px !important;line-height:1.4 !important;}
body.onespa-checkout .wc-block-components-checkout-order-summary__title-text{
  font-family:"Noto Serif SC",serif !important;font-size:16.5px !important;}
body.onespa-checkout a{color:var(--clay);}

/* Blocks 结账整容 */
body.onespa-checkout .wc-block-checkout{margin:0;}
body.onespa-checkout .wc-block-components-checkout-step{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  padding:14px 14px 16px;margin-bottom:12px;box-shadow:var(--shadow);}
body.onespa-checkout .wc-block-components-checkout-step__heading{margin:0 0 4px;}
body.onespa-checkout .wc-block-components-checkout-step__title{font-size:16.5px;}
body.onespa-checkout .wc-block-components-text-input input,
body.onespa-checkout .wc-block-components-combobox .components-combobox-control__suggestions-container input,
body.onespa-checkout select,
body.onespa-checkout textarea{
  background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);
  font-family:inherit;box-shadow:none;}
body.onespa-checkout .wc-block-components-text-input input:focus,
body.onespa-checkout select:focus,
body.onespa-checkout textarea:focus{border-color:var(--clay);box-shadow:0 0 0 1px var(--clay);outline:none;}
body.onespa-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]{accent-color:var(--clay);}
body.onespa-checkout .wc-block-components-radio-control__input{accent-color:var(--clay);}

/* 下单主按钮（压 kit 的 button 样式） */
body.onespa-checkout button.wc-block-components-checkout-place-order-button,
body.onespa-checkout .wc-block-components-button{
  appearance:none;-webkit-appearance:none;border:none;cursor:pointer;font-family:inherit;
  background:linear-gradient(160deg,#8E3826,#6A2516);color:var(--peach);
  border-radius:10px;font-size:14.5px;font-weight:600;letter-spacing:.04em;
  padding:14px 22px;box-shadow:var(--shadow);text-transform:none;}
body.onespa-checkout .wc-block-components-button:hover{filter:brightness(1.08);}
body.onespa-checkout .wc-block-components-button:disabled{opacity:.5;}
/* 次级小按钮（优惠码 Apply 等）不抢戏 */
body.onespa-checkout .wc-block-components-totals-coupon__button{
  background:var(--peach);color:var(--clay-deep);box-shadow:none;font-weight:500;}

/* 订单摘要 */
body.onespa-checkout .wc-block-components-order-summary,
body.onespa-checkout .wp-block-woocommerce-checkout-totals-block{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);}
body.onespa-checkout .wp-block-woocommerce-checkout-totals-block{padding:6px 14px 10px;}
body.onespa-checkout .wc-block-components-order-summary{border:none;box-shadow:none;padding:0;}
/* 商品名是 H3，会被旧站全局 h3（Abhaya Libre 48px）劫持——显式钉死字号字体 */
body.onespa-checkout .wc-block-components-order-summary-item h3.wc-block-components-product-name,
body.onespa-checkout .wc-block-components-product-name{
  color:var(--ink);font-weight:500;font-family:"Noto Sans SC",system-ui,sans-serif;
  font-size:14.5px;line-height:1.5;margin:0;letter-spacing:normal;}
/* 商品缩略图隐藏：极简结账 + 本地快照缺图会露烂图标和 alt 实体字符；名称足够识别 */
body.onespa-checkout .wc-block-components-order-summary-item__image{display:none !important;}
body.onespa-checkout .wc-block-components-order-summary-item__description{padding-left:0;}
/* 折叠头总额隐藏：TRP 动态翻译会冻结 React 的延迟更新文本（CN 页实测停在 RM0.00，EN 正常）。
   宁可不显示也不显示错的；完整金额在摘要内部和合计行 */
body.onespa-checkout .wc-block-components-checkout-order-summary__title-price{display:none !important;}
/* 双摘要去重（叶伟 6/12 深夜报）：窄屏下 blocks 用 slot/fill 同时渲染"侧栏折叠摘要(slot)"+"内联完整摘要(fill，紧贴下单按钮)"。
   #1（6/14 页面检查）：原先只隐藏侧栏内的 order-summary-block，但侧栏容器 totals-block 仍带 paper 底+边框+padding（见下方
   订单摘要规则），渲染成结账顶部那个空盒。改为直接隐藏整个侧栏容器；真摘要在 fill（checkout-order-summary-block-fill-wrapper），不受影响。 */
body.onespa-checkout .wc-block-components-sidebar.wp-block-woocommerce-checkout-totals-block{display:none !important;}
body.onespa-checkout .wc-block-components-product-price,
body.onespa-checkout .wc-block-components-totals-item__value{
  font-family:"Noto Serif SC",serif;color:var(--clay);font-weight:700;}
body.onespa-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{font-size:19px;}
body.onespa-checkout .wc-block-components-product-details__name{color:var(--ink-soft);}
/* B1：订单摘要不展示商品长描述——access 类商品短描述为英文会在付款前泄漏（弃单诱因），
   且交易层不需要在摘要里堆段落。中英文一律隐藏，保留商品名+预约日期/时间+价格即可。 */
body.onespa-checkout .wc-block-components-product-metadata__description{display:none !important;}

/* Fix #1（结账修复批 2026-06-14）：订单摘要每项「×移除」按钮（JS 注入，调官方 removeItemFromCart）。 */
body.onespa-checkout .wc-block-components-order-summary-item__description .osw-rm{
  display:inline-flex;align-items:center;gap:3px;margin-top:5px;
  background:none;border:none;padding:2px 0;cursor:pointer;
  font-family:"Noto Sans SC",system-ui,sans-serif;font-size:12.5px;line-height:1.2;
  color:var(--ink-soft);}
body.onespa-checkout .wc-block-components-order-summary-item__description .osw-rm:hover{
  color:var(--clay);text-decoration:underline;}
body.onespa-checkout .wc-block-components-order-summary-item__description .osw-rm:disabled{
  opacity:.5;cursor:default;text-decoration:none;}
body.onespa-checkout .wc-block-components-order-summary-item__description .osw-rm span{font-size:14.5px;line-height:1;}

/* 数量 × N（6/14）：WC 数量角标在被隐藏的缩略图里看不到，故在描述区补一个小 pill。 */
body.onespa-checkout .wc-block-components-order-summary-item__description .osw-qty{
  display:inline-block;margin:4px 0 0;padding:1px 8px;border-radius:6px;
  background:var(--peach);color:var(--clay-deep);font-size:12.5px;font-weight:700;line-height:1.55;letter-spacing:.02em;}

/* 地址字段隐藏的 CSS 保险层（主逻辑在 functions.php 的 default_address_fields 过滤；
   决议：姓名+手机+邮箱，国家默认 MY，地址隐藏） */
body.onespa-checkout .wc-block-components-address-form__company,
body.onespa-checkout .wc-block-components-address-form__address_1,
body.onespa-checkout .wc-block-components-address-form__address_2,
body.onespa-checkout .wc-block-components-address-form__city,
body.onespa-checkout .wc-block-components-address-form__state,
body.onespa-checkout .wc-block-components-address-form__postcode,
body.onespa-checkout .wc-block-components-address-form__country{display:none !important;}

/* 页脚一行 */
.osw-co-foot{text-align:center;font-size:11.5px;color:var(--ink-soft);
  padding:6px 20px calc(20px + env(safe-area-inset-bottom));line-height:1.9;}
.osw-co-foot b{display:block;color:var(--clay-deep);}

/* 浮动 WhatsApp（同 packages） */
.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;}
body.onespa-checkout .trp-floating-switcher{display:none !important;}
