/* NI_PAGE_FLOW_CSS_SPLIT: cart/checkout/done flow layer. Loaded by ni_frontend_page_css. */
/* Extracted from pages.css: flow cart/consignee rules */
/* NI_FLOW_CART_STEP_CONVERGENCE
 * Cart-step page styling for flow.dwt. Keep transaction field names, ids and shopping_flow.js contract unchanged.
 */
html body.ni-page-flow{
  background:#fdfbf8;
}
/* Flow pages keep the viewport full-width so header/nav/search/flow blocks share one 960px centering contract. */
html body.ni-page-flow.ni-page{
  width:100%;
  max-width:100%;
  margin:0;
}
html body.ni-page-flow .block.ni-flow-page{
  width:100%;
  max-width:var(--ni-page-max, 960px);
  margin:0 auto 44px;
  padding:0;
  box-sizing:border-box;
}
html body .ni-flow-cart-panel{
  position:relative;
  width:100%;
  margin:18px auto 28px;
  padding:22px;
  border:1px solid rgba(219,195,181,.72);
  border-radius:28px;
  background:linear-gradient(180deg,#fffdf9 0%,#fff8f3 100%);
  box-shadow:0 18px 42px rgba(120,90,80,.10);
  box-sizing:border-box;
  overflow:hidden;
}
html body .ni-flow-cart-panel::before{
  content:"";
  position:absolute;
  top:-88px;
  right:-68px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(215,160,157,.24) 0%,rgba(215,160,157,0) 68%);
  pointer-events:none;
}
html body .ni-flow-cart-head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:0 0 20px;
  padding:0 0 18px;
  border-bottom:1px solid rgba(219,195,181,.55);
}
html body .ni-flow-kicker{
  text-transform:uppercase;
}
html body .ni-flow-title{
  margin:0;
  color:#4e3932;
  font-family:"Noto Serif TC","PMingLiU",serif;
  font-size:30px;
  line-height:1.24;
  letter-spacing:.04em;
}
html body .ni-flow-lead{
  margin:8px 0 0;
  color:#8a766f;
  font-size:14px;
  line-height:1.75;
}
html body .ni-flow-cart-form{
  position:relative;
  z-index:1;
  margin:0;
}
html body .ni-flow-cart-table-wrap{
  width:100%;
  overflow:hidden;
  border:1px solid rgba(219,195,181,.56);
  border-radius:24px;
  background:#fffdf9;
  box-shadow:0 10px 24px rgba(120,90,80,.06);
}
html body .ni-flow-cart-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:transparent;
  color:#5d514b;
  font-family:var(--ni-font-body);
}
html body .ni-flow-cart-table th{
  padding:14px 12px;
  border:0;
  border-bottom:1px solid rgba(219,195,181,.58);
  background:linear-gradient(180deg,#fbf4ee 0%,#f6ece6 100%);
  color:#7b635b;
  font-size:13px;
  font-weight:900;
  line-height:1.35;
  text-align:center;
  white-space:nowrap;
}
html body .ni-flow-cart-table th:first-child{
  text-align:left;
  padding-left:18px;
}
@media (min-width:701px){
  html body .ni-flow-cart-row td{
    padding:16px 12px;
    border:0;
    border-bottom:1px solid rgba(219,195,181,.42);
    background:#fffdf9;
    color:#5d514b;
    font-size:14px;
    line-height:1.6;
    text-align:center;
    vertical-align:middle;
    box-sizing:border-box;
  }
  html body .ni-flow-cart-row:last-child td{
    border-bottom:0;
  }
}
html body .ni-flow-cart-row td.ni-cart-product-cell{
  text-align:left;
  padding-left:18px;
}
html body .ni-cart-product{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  width:100%;
  min-width:0;
}
html body .ni-cart-product__media{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:78px;
  height:78px;
  border:1px solid rgba(219,195,181,.5);
  border-radius:18px;
  background:#fbf4ee;
  overflow:hidden;
  text-decoration:none;
}
html body .ni-cart-product__media img,
html body .ni-cart-product__media picture,
html body .ni-cart-product__media .ni-img-frame{
  display:block;
  max-width:100%;
  max-height:100%;
}
html body .ni-cart-product__media img,
html body .ni-img--cart-thumb{
  width:100%;
  height:100%;
  object-fit:contain;
}
html body .ni-cart-product__body{
  flex:1 1 auto;
  min-width:0;
  text-align:left;
}
html body .ni-cart-product__title{
  display:block;
  color:#4e3932;
  font-size:14px;
  font-weight:800;
  line-height:1.55;
  text-align:left;
  text-decoration:none;
}
html body .ni-cart-product__title:hover{
  color:#b96f72;
  text-decoration:none;
}
html body .ni-cart-product__badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:7px;
}
html body .ni-cart-badge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 9px;
  border:1px solid rgba(215,160,157,.42);
  border-radius:999px;
  background:#f8e5e2;
  color:#a76768;
  font-size:12px;
  font-weight:800;
  line-height:1;
}
html body .ni-cart-package-list{
  margin-top:8px;
  color:#8a766f;
  font-size:13px;
}
html body .ni-cart-package-list a{
  color:#8a766f;
  text-decoration:none;
}
html body .ni-cart-attr-text{
  color:#8a766f;
  font-size:13px;
  line-height:1.7;
}
html body .ni-cart-price-cell,
html body .ni-cart-subtotal-cell{
  color:#7b4c48;
  font-weight:900;
  white-space:nowrap;
}
html body .ni-cart-subtotal-cell{
  color:#b05f65;
}
html body .ni-cart-market-cell{
  color:#9d8880;
  text-decoration:line-through;
  white-space:nowrap;
}
html body .ni-cart-qty-cell{
  min-width:122px;
}
/* 數量選擇器外觀：components.css cart-qty 全站統一 */
html body .ni-cart-qty-control,
html body .flowBox1 .cart-qty-control{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
html body .ni-cart-static-qty{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:#fbf4ee;
  color:#7b635b;
  font-weight:900;
}
html body .ni-cart-remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#a76768;
  text-decoration:none;
  transition:color .18s ease, transform .18s ease, opacity .18s ease;
}
html body .ni-cart-remove__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:24px;
  height:24px;
}
html body .ni-cart-remove__icon svg{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html body .ni-cart-remove:hover{
  background:transparent;
  color:#8f5357;
  text-decoration:none;
  transform:translateY(-1px);
  opacity:.92;
}
html body .ni-flow-cart-summary-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:16px 0 0;
  padding:16px;
  border:1px solid rgba(219,195,181,.56);
  border-radius:22px;
  background:linear-gradient(180deg,#fffdf9 0%,#fbf4ee 100%);
  box-shadow:0 8px 20px rgba(120,90,80,.06);
}
html body .ni-flow-cart-total{
  flex:1 1 auto;
  min-width:0;
  color:#6e5b54;
  font-size:14px;
  line-height:1.7;
}
html body .ni-flow-money-summary{
  color:#5d514b;
  font-weight:900;
}
html body .ni-flow-discount{
  margin-bottom:4px;
  color:#b96f72;
  font-weight:800;
}
html body .ni-flow-cart-actions-inline,
html body .ni-flow-cart-footer-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
html body .ni-flow-cart-footer-actions{
  position:relative;
  z-index:1;
  margin:18px 0 0;
}
/* NI_FLOW_CART_ACTION_BUTTONS
 * 根因：style.css 全域 button { background; background-image:none }
 * 會壓過 page-flow hover。footer 的 <a.ni-button> 不受影響，僅 <button> 失效。
 * 保留本區塊為購物車四顆操作鈕唯一樣式來源。
 */
html body.ni-page-flow .ni-flow-cart-actions-inline .ni-button,
html body.ni-page-flow .ni-flow-cart-footer-actions .ni-button{
  transition:background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease, color .18s ease;
}
html body.ni-page-flow button.ni-button.ni-button-secondary,
html body.ni-page-flow button.ni-button.ni-button-primary{
  -webkit-appearance:none;
  appearance:none;
}
html body.ni-page-flow button.ni-button.ni-button-secondary{
  border-color:rgba(219,195,181,.72);
  background:linear-gradient(180deg,#fffdf9 0%,#f7eee7 100%);
  background-image:linear-gradient(180deg,#fffdf9 0%,#f7eee7 100%);
  color:#6e5b54;
  box-shadow:0 8px 18px rgba(120,90,80,.08);
}
html body.ni-page-flow a.ni-button.ni-button-secondary{
  border-color:rgba(219,195,181,.72);
  background:linear-gradient(180deg,#fffdf9 0%,#f7eee7 100%);
  color:#6e5b54;
  box-shadow:0 8px 18px rgba(120,90,80,.08);
}
html body.ni-page-flow .ni-flow-cart-actions-inline a.ni-button:hover,
html body.ni-page-flow .ni-flow-cart-actions-inline a.ni-button:focus-visible,
html body.ni-page-flow .ni-flow-cart-footer-actions a.ni-button:hover,
html body.ni-page-flow .ni-flow-cart-footer-actions a.ni-button:focus-visible{
  border-color:rgba(199,137,132,.82);
  background:linear-gradient(180deg,#fff8f4 0%,#f3e4db 100%);
  box-shadow:0 10px 22px rgba(184,118,112,.14);
  transform:translateY(-1px);
  color:#7b4c48;
}
html body.ni-page-flow .ni-flow-cart-actions-inline button.ni-button:hover,
html body.ni-page-flow .ni-flow-cart-actions-inline button.ni-button:focus-visible,
html body.ni-page-flow .ni-flow-cart-footer-actions button.ni-button:hover,
html body.ni-page-flow .ni-flow-cart-footer-actions button.ni-button:focus-visible{
  border-color:rgba(188,118,113,.92);
  background:linear-gradient(180deg,#fff0ea 0%,#f2cfc5 100%);
  background-image:linear-gradient(180deg,#fff0ea 0%,#f2cfc5 100%);
  box-shadow:0 10px 22px rgba(184,118,112,.2), inset 0 1px 0 rgba(255,255,255,.78);
  transform:translateY(-1px);
  color:#7b3e3f;
}
html body.ni-page-flow .ni-flow-cart-footer-actions a.ni-button.ni-flow-checkout:hover,
html body.ni-page-flow .ni-flow-cart-footer-actions a.ni-button.ni-flow-checkout:focus-visible{
  border-color:rgba(188,118,113,.9);
  background:linear-gradient(180deg,#fbe8e5 0%,#efb9b3 100%);
  color:#7b3e3f;
  box-shadow:0 12px 24px rgba(184,118,112,.18);
}
html body .ni-flow-checkout{
  min-width:148px;
  min-height:44px;
  font-size:15px;
  font-weight:900;
}
html body .ni-flow-continue{
  min-width:120px;
  min-height:42px;
  font-weight:800;
}
html body .ni-cart-clear,
html body .ni-cart-update{
  min-height:38px;
  font-weight:800;
}
html body .ni-flow-cart-empty{
  margin:0;
}

html body .ni-flow-extra-panel{
  position:relative;
  width:min(100% - 32px, var(--ni-page-max, 960px));
  margin:18px auto 0;
  padding:20px;
  border:1px solid rgba(219,195,181,.62);
  border-radius:28px;
  background:linear-gradient(180deg,#fffdf9 0%,#fff8f2 100%);
  box-shadow:0 14px 34px rgba(120,90,80,.08);
  box-sizing:border-box;
  overflow:hidden;
}
html body .ni-flow-extra-panel::before{
  content:"";
  position:absolute;
  right:-38px;
  top:-48px;
  width:142px;
  height:142px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(217,121,128,.16) 0%,rgba(217,121,128,0) 68%);
  pointer-events:none;
}
html body .ni-flow-extra-head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(219,195,181,.5);
  text-align:left;
}
html body .ni-flow-extra-panel.is-collapsed .ni-flow-extra-head{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:0;
}
/* NI_FLOW_COLLECTION_PANEL_CANONICAL
 * style.css 對 button 全域 background/border，收藏區在此收斂。
 * 日系低調淡色：藕灰 / 灰粉 / 暖褐文字。 */
html body.ni-page-flow .ni-flow-extra-panel--collection{
  --ni-collection-dust:#b8a69d;
  --ni-collection-dust-hover:#9f8f86;
  --ni-collection-text:#6b5c55;
  --ni-collection-muted:#a8958c;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-head[data-ni-flow-extra-head]{
  align-items:center;
  cursor:pointer;
  user-select:none;
  outline:none;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-head[data-ni-flow-extra-head]:focus-visible{
  outline:2px solid rgba(184,166,157,.5);
  outline-offset:3px;
  border-radius:12px;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-head[data-ni-flow-extra-head] .ni-flow-extra-toggle__icon{
  display:block;
  flex:0 0 auto;
  align-self:center;
  width:0;
  height:0;
  margin:4px;
  padding:0;
  border:0;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
  border-left:7px solid var(--ni-collection-dust);
  border-right:0;
  transform:rotate(0deg);
  transition:transform .18s ease, border-left-color .18s ease;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-head[data-ni-flow-extra-head]:hover .ni-flow-extra-toggle__icon,
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-head[data-ni-flow-extra-head]:focus-visible .ni-flow-extra-toggle__icon{
  border-left-color:var(--ni-collection-dust-hover);
}
html body.ni-page-flow .ni-flow-extra-panel--collection:not(.is-collapsed) .ni-flow-extra-head[data-ni-flow-extra-head] .ni-flow-extra-toggle__icon{
  transform:rotate(90deg);
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  grid-template-rows:minmax(88px,1fr) auto;
  grid-template-areas:
    "media body"
    "action action";
  gap:0 12px;
  align-items:stretch;
  min-height:136px;
  border-color:rgba(196,181,173,.42);
  background:rgba(255,251,247,.88);
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media{
  grid-area:media;
  width:88px;
  height:88px;
  margin:0;
  aspect-ratio:1/1;
  border:0;
  border-radius:16px;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media img,
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media picture,
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media .autoslim-picture,
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media .ni-img-frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  border-radius:inherit;
  overflow:hidden;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media img{
  padding:0;
  object-fit:cover;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__body{
  grid-area:body;
  align-self:start;
  justify-self:stretch;
  width:100%;
  min-width:0;
  text-align:left;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__title{
  display:-webkit-box;
  width:100%;
  max-width:100%;
  min-height:0;
  margin:0;
  overflow:hidden;
  color:var(--ni-collection-text);
  font-size:14px;
  font-weight:800;
  line-height:1.45;
  text-align:left;
  text-decoration:none;
  word-break:normal;
  overflow-wrap:break-word;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__title:hover{
  color:#8f756e;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__meta{
  margin:6px 0 0;
  color:var(--ni-collection-muted);
  font-size:12px;
  line-height:1.55;
  text-align:left;
}
html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-action{
  grid-area:action;
  margin-top:10px;
}
html body .ni-flow-extra-toggle{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  background-color:transparent;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  line-height:1;
  cursor:pointer;
  transition:color .18s ease;
}
html body .ni-flow-extra-toggle:hover,
html body .ni-flow-extra-toggle:focus-visible{
  border:0;
  background:none;
  background-color:transparent;
  box-shadow:none;
  outline:none;
}
html body .ni-flow-extra-toggle__icon{
  display:block;
  flex:0 0 auto;
}
html body .ni-flow-extra-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  min-height:22px;
  margin-left:8px;
  padding:0 7px;
  border-radius:999px;
  background:rgba(215,160,157,.18);
  color:#bf6d73;
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  font-size:12px;
  font-weight:900;
  line-height:1;
  vertical-align:middle;
}
html body .ni-flow-extra-body[hidden]{
  display:none;
}
html body .ni-flow-extra-card__placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:#aa958c;
  font-size:10px;
  line-height:1.45;
  text-align:center;
}
html body .ni-flow-extra-card__placeholder em{
  font-style:normal;
  font-weight:800;
}
html body .ni-flow-extra-card__placeholder small{
  margin-top:2px;
  font-size:10px;
}
html body .ni-flow-extra-head__main{
  flex:1 1 auto;
  min-width:0;
  width:100%;
  text-align:left;
}
html body .ni-flow-extra-head .ni-flow-kicker,
html body .ni-flow-extra-head .ni-flow-extra-title,
html body .ni-flow-extra-head .ni-flow-extra-lead{
  text-align:left;
}
html body .ni-flow-extra-title{
  margin:2px 0 0;
  color:#4e3932;
  font-family:"Noto Serif TC","PMingLiU",serif;
  font-size:23px;
  font-weight:800;
  letter-spacing:.04em;
}
html body .ni-flow-extra-lead{
  max-width:620px;
  margin:7px 0 0;
  color:#8a766f;
  font-size:13px;
  line-height:1.8;
}
html body .ni-flow-extra-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
html body .ni-flow-extra-grid--collection{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
html body .ni-flow-extra-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:100%;
  padding:14px;
  border:1px solid rgba(219,195,181,.56);
  border-radius:22px;
  background:rgba(255,253,249,.92);
  box-shadow:0 8px 22px rgba(120,90,80,.06);
  box-sizing:border-box;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
html body .ni-flow-extra-card:hover,
html body .ni-flow-extra-card:focus-within{
  transform:translateY(-2px);
  border-color:rgba(201,143,145,.72);
  box-shadow:0 14px 30px rgba(120,90,80,.11);
}
html body .ni-flow-extra-card__media{
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:1/1;
  margin-bottom:12px;
  border:1px solid rgba(219,195,181,.48);
  border-radius:20px;
  background:linear-gradient(180deg,#fffaf6 0%,#f7eee7 100%);
  overflow:hidden;
}
html body .ni-flow-extra-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  box-sizing:border-box;
  transition:transform .22s ease;
}
html body .ni-flow-extra-card:hover .ni-flow-extra-card__media img{
  transform:scale(1.035);
}
html body .ni-flow-extra-card__body{
  flex:1 1 auto;
  min-width:0;
}
html body .ni-flow-extra-card__title{
  display:-webkit-box;
  min-height:2.9em;
  margin:0;
  overflow:hidden;
  color:#5d514b;
  font-size:14px;
  font-weight:900;
  line-height:1.45;
  text-decoration:none;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
html body .ni-flow-extra-card__title:hover{
  color:#bf6d73;
}
html body .ni-flow-extra-card__meta{
  margin:8px 0 0;
  color:#9a8279;
  font-size:12px;
  line-height:1.55;
}
html body .ni-flow-extra-price{
  display:flex;
  align-items:baseline;
  gap:6px;
  margin:9px 0 0;
  color:#8a766f;
  font-size:12px;
}
html body .ni-flow-extra-price strong{
  color:#c7656c;
  font-size:15px;
  font-weight:900;
}
html body .ni-flow-extra-action{
  width:100%;
  min-height:38px;
  margin-top:12px;
  font-weight:900;
  box-sizing:border-box;
}
html body .ni-flow-favourable-list{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
html body .ni-flow-favourable-card{
  min-width:0;
  margin:0;
}
html body .ni-flow-favourable-card__inner{
  display:flex;
  flex-direction:column;
  min-height:100%;
  padding:16px;
  border:1px solid rgba(219,195,181,.56);
  border-radius:24px;
  background:rgba(255,253,249,.94);
  box-shadow:0 10px 24px rgba(120,90,80,.07);
  box-sizing:border-box;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
html body .ni-flow-favourable-card:focus-within .ni-flow-favourable-card__inner,
html body .ni-flow-favourable-card:hover .ni-flow-favourable-card__inner{
  transform:translateY(-2px);
  border-color:rgba(201,143,145,.72);
  box-shadow:0 16px 34px rgba(120,90,80,.11);
}
html body .ni-flow-favourable-card__head{
  position:relative;
  min-height:58px;
  padding-right:100px;
  margin-bottom:14px;
}
html body .ni-flow-favourable-label{
  margin:0 0 5px;
  color:#a58c82;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
html body .ni-flow-favourable-name{
  margin:0;
  color:#4e3932;
  font-family:"Noto Serif TC","PMingLiU",serif;
  font-size:18px;
  font-weight:900;
  line-height:1.45;
  letter-spacing:.03em;
}
html body .ni-flow-favourable-badge{
  position:absolute;
  top:0;
  right:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  max-width:92px;
  padding:0 10px;
  border:1px solid rgba(219,195,181,.62);
  border-radius:999px;
  background:#fffaf6;
  color:#8a766f;
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  text-align:center;
  box-sizing:border-box;
}
html body .ni-flow-favourable-badge.is-available{
  border-color:rgba(201,143,145,.45);
  background:linear-gradient(180deg,#f9e4e2 0%,#f3d5d2 100%);
  color:#9e5d63;
}
html body .ni-flow-favourable-meta{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  margin:0;
}
html body .ni-flow-favourable-meta__item{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(219,195,181,.45);
  border-radius:17px;
  background:linear-gradient(180deg,#fffaf6 0%,#fff6ef 100%);
  box-sizing:border-box;
}
html body .ni-flow-favourable-meta dt{
  margin:0;
  color:#9a8279;
  font-size:12px;
  font-weight:900;
  line-height:1.6;
}
html body .ni-flow-favourable-meta dd{
  margin:0;
  color:#5d514b;
  font-size:13px;
  font-weight:700;
  line-height:1.7;
}
html body .ni-flow-favourable-meta dd strong{
  display:block;
  color:#c7656c;
  font-size:13px;
  font-weight:900;
}
html body .ni-flow-favourable-meta dd span{
  display:block;
  margin-top:2px;
  color:#8a766f;
  font-weight:600;
}
html body .ni-flow-gift-list{
  display:grid;
  gap:8px;
  margin:14px 0 0;
  padding:12px;
  border:1px dashed rgba(201,143,145,.48);
  border-radius:18px;
  background:rgba(255,250,246,.72);
}
html body .ni-flow-gift-option{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:0;
  color:#5d514b;
  font-size:13px;
  line-height:1.6;
  cursor:pointer;
}
html body .ni-flow-gift-option input{
  flex:0 0 auto;
  width:16px;
  height:16px;
  margin:2px 0 0;
  accent-color:#c7656c;
}
html body .ni-flow-gift-option__text{
  display:block;
  min-width:0;
}
html body .ni-flow-gift-option a{
  color:#5d514b;
  font-weight:800;
  text-decoration:none;
}
html body .ni-flow-gift-option a:hover{
  color:#bf6d73;
}
html body .ni-flow-gift-option em{
  display:inline-block;
  margin-left:5px;
  color:#c7656c;
  font-style:normal;
  font-weight:900;
}
html body .ni-flow-favourable-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:auto;
  padding-top:14px;
}
html body .ni-flow-favourable-submit{
  width:auto;
  min-width:136px;
}
html body .ni-flow-favourable-note{
  margin:0;
  color:#9a8279;
  font-size:12px;
  font-weight:700;
  line-height:1.7;
}

html body .ni-flow-extra-panel .is-action-pending{
  pointer-events:none;
  opacity:.72;
}
html body .ni-flow-extra-panel .is-action-pending::after{
  content:"";
  width:12px;
  height:12px;
  margin-left:8px;
  border:2px solid rgba(255,255,255,.58);
  border-top-color:currentColor;
  border-radius:999px;
  animation:niFlowCartSpin .72s linear infinite;
}

html body .ni-flow-cart-panel .is-action-pending{
  pointer-events:none;
  opacity:.72;
}
html body .ni-flow-cart-panel .is-action-pending::after{
  content:"";
  width:12px;
  height:12px;
  margin-left:8px;
  border:2px solid rgba(255,255,255,.58);
  border-top-color:currentColor;
  border-radius:999px;
  animation:niFlowCartSpin .72s linear infinite;
}
@keyframes niFlowCartSpin{
  to{ transform:rotate(360deg); }
}

/* Flow consignee step: visual-only convergence. Runtime field names, ids and region.js handlers are preserved. */
html body .ni-flow-step-hero{
  position:relative;
  width:min(100%, var(--ni-page-max, 960px));
  margin:0 auto 18px;
  padding:22px 24px;
  border:1px solid rgba(219,195,181,.62);
  border-radius:28px;
  background:
    radial-gradient(circle at 92% 10%, rgba(217,160,157,.18), transparent 34%),
    linear-gradient(135deg, #fffdf9 0%, #fff8f2 100%);
  box-shadow:0 16px 36px rgba(120,90,80,.09);
  box-sizing:border-box;
  overflow:hidden;
}
html body .ni-flow-step-hero::before{
  content:"";
  position:absolute;
  inset:auto 22px 18px auto;
  width:92px;
  height:92px;
  border-radius:999px;
  background:rgba(215,160,157,.13);
  pointer-events:none;
}
html body .ni-flow-step-hero .ni-flow-kicker{
  margin:0;
}
html body .ni-flow-step-title{
  position:relative;
  z-index:1;
  margin:0;
  color:#4e3932;
  font-family:"Noto Serif TC","PMingLiU",serif;
  font-size:30px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:.04em;
}
html body .ni-flow-step-lead{
  position:relative;
  z-index:1;
  max-width:620px;
  margin:10px 0 0;
  color:#8a766f;
  font-size:14px;
  font-weight:600;
  line-height:1.9;
}
/* Flow consignee step form visuals moved to member-account.css via data-ni-address-form-contract. */
html body .ni-flow-consignee-form{
  display:block;
  margin:0;
}
html body [data-ni-flow-consignee-submit].is-action-pending,
html body .ni-member-submit[data-ni-flow-consignee-submit].is-action-pending{
  pointer-events:none;
  opacity:.72;
}

/* Flow checkout confirmation step: canonical outer-frame convergence. */
html body .ni-flow-checkout-form{
  max-width: var(--ni-frame, 960px);
  margin: 0 auto 34px;
}

html body .ni-flow-checkout-section{
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  padding: 20px;
  background:
    radial-gradient(circle at 14% 0%, rgba(215,160,157,.14), transparent 34%),
    linear-gradient(180deg, #fffdf9 0%, #fffaf6 100%);
  border: 1px solid rgba(219,195,181,.62);
  border-radius: 26px;
  box-shadow: 0 14px 36px rgba(120,90,80,.09);
  color: #5d514b;
}

html body .ni-flow-checkout-section::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, rgba(213,166,160,.78), rgba(255,250,246,0));
  pointer-events: none;
}

html body .ni-flow-checkout-section__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px;
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(219,195,181,.42);
  line-height: 1.45;
}

html body .ni-flow-checkout-section__title{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Noto Serif TC", "PMingLiU", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .05em;
  color: #4e3932;
}

html body .ni-flow-checkout-section__title::before{
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: linear-gradient(180deg,#d7a09d 0%,#c98f91 100%);
  box-shadow: 0 0 0 5px rgba(215,160,157,.14);
}

html body .ni-flow-section-edit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(210,181,166,.72);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: #8a5f5d;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

html body .ni-flow-section-edit:hover{
  background: #fff7f4;
  color: #c7656c;
}

html body .ni-flow-checkout-gap{
  height: 18px;
}

html body .ni-flow-checkout-table{
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid rgba(219,195,181,.52);
  border-radius: 18px;
  background: rgba(255,253,249,.88);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

html body .ni-flow-checkout-table th,
html body .ni-flow-checkout-table td{
  padding: 13px 14px;
  border: 0;
  border-bottom: 1px solid rgba(219,195,181,.38);
  background: rgba(255,253,249,.82);
  color: #5d514b;
  vertical-align: middle;
}

html body .ni-flow-checkout-table tr:last-child th,
html body .ni-flow-checkout-table tr:last-child td{
  border-bottom: 0;
}

html body .ni-flow-checkout-table th{
  background: linear-gradient(180deg,#fff7f2 0%,#f7eee8 100%);
  color: #7a6159;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .03em;
  text-align: center;
}

html body .ni-flow-checkout-table a,
html body .ni-flow-order-total a{
  color: #8a5f5d;
  text-decoration: none;
}

html body .ni-flow-checkout-table a:hover,
html body .ni-flow-order-total a:hover{
  color: #c7656c;
}

html body .ni-flow-option-table tr:has(input[type="radio"]:checked) td,
html body .ni-flow-option-table tr.is-selected td{
  background: #fff7f4;
  box-shadow: inset 3px 0 0 rgba(215,160,157,.78);
}

html body .ni-flow-checkout-table input[type="radio"],
html body .ni-flow-checkout-table input[type="checkbox"]{
  accent-color: #c7656c;
}

html body .ni-flow-choice-list{
  display: grid;
  gap: 12px;
}

html body .ni-flow-choice-card{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: flex-start;
  padding: 15px 16px;
  border: 1px solid rgba(219,195,181,.58);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(255,248,244,.86) 100%);
  color: #5d514b;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(120,90,80,.07);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

html body .ni-flow-choice-card:hover,
html body .ni-flow-choice-card:focus-within{
  border-color: rgba(215,160,157,.88);
  background: #fff7f4;
  box-shadow: 0 14px 30px rgba(120,90,80,.10);
  transform: translateY(-1px);
}

html body .ni-flow-choice-card.is-selected,
html body .ni-flow-choice-card:has(input[type="radio"]:checked){
  border-color: rgba(199,101,108,.78);
  background:
    radial-gradient(circle at 96% 10%, rgba(215,160,157,.18), transparent 30%),
    linear-gradient(180deg,#fff7f4 0%,#fffdf9 100%);
  box-shadow: 0 16px 34px rgba(120,90,80,.12), inset 4px 0 0 rgba(215,160,157,.82);
}

html body .ni-flow-choice-card.is-disabled,
html body .ni-flow-choice-card:has(input[type="radio"]:disabled){
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}

html body .ni-flow-choice-radio{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-height: 28px;
  padding-top: 2px;
}

html body .ni-flow-choice-radio input[type="radio"],
html body .ni-flow-checkline input[type="checkbox"]{
  accent-color: #c7656c;
}

html body .ni-flow-choice-body{
  display: grid;
  gap: 12px;
  min-width: 0;
}

html body .ni-flow-choice-main{
  display: grid;
  gap: 5px;
  min-width: 0;
}

html body .ni-flow-choice-title{
  color: #4e3932;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .02em;
}

html body .ni-flow-choice-desc{
  color: #7d6a63;
  font-size: 13px;
  line-height: 1.7;
}

html body .ni-flow-choice-meta-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

html body .ni-flow-choice-meta-grid--payment{
  grid-template-columns: minmax(120px, 180px);
  justify-content: end;
}

html body .ni-flow-choice-meta-grid--shipping{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

html body .ni-flow-choice-meta{
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(219,195,181,.44);
  border-radius: 14px;
  background: rgba(255,255,255,.66);
}

html body .ni-flow-choice-meta-label{
  color: #9a8278;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}

html body .ni-flow-choice-meta-value{
  color: #6a5550;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

html body .ni-flow-checkline{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(210,181,166,.68);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: #7a6159;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

html body .ni-flow-checkout-section input[type="text"],
html body .ni-flow-checkout-section select,
html body .ni-flow-checkout-section textarea{
  max-width: 100%;
  min-height: 38px;
  border: 1px solid rgba(210,181,166,.72);
  border-radius: 14px;
  background: rgba(255,255,255,.84);
  color: #5d514b;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

html body .ni-flow-checkout-section textarea{
  width: min(100%, 520px);
  padding: 10px 12px;
}

html body .ni-flow-checkout-section input[type="button"],
html body .ni-flow-checkout-section .bnt_blue_1{
  min-height: 36px;
  padding: 0 14px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg,#d7a09d 0%,#c98f91 100%);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

html body .ni-flow-checkout-section--total{
  background:
    radial-gradient(circle at 92% 0%, rgba(215,160,157,.16), transparent 34%),
    linear-gradient(180deg,#fffdf9 0%,#fff7f2 100%);
}

html body .ni-flow-order-total{
  display: grid;
  gap: 14px;
  margin: 0;
}

html body .ni-flow-order-total__reward{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid rgba(219,195,181,.46);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
  color: #7a6159;
  font-size: 13px;
  line-height: 1.6;
}

html body .ni-flow-order-total__reward-label{
  color: #9a8278;
  font-weight: 800;
  letter-spacing: .04em;
}

html body .ni-flow-order-total__reward-value{
  text-align: right;
}

html body .ni-flow-order-total__reward strong,
html body .ni-flow-order-total strong{
  color: #c7656c;
  font-weight: 900;
}

html body .ni-flow-order-total__body{
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(219,195,181,.56);
  border-radius: 22px;
  background:
    radial-gradient(circle at 96% 0%, rgba(215,160,157,.14), transparent 30%),
    linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(255,248,244,.88) 100%);
  box-shadow: 0 14px 32px rgba(120,90,80,.08), inset 0 1px 0 rgba(255,255,255,.76);
}

html body .ni-flow-order-total__list{
  display: grid;
  gap: 0;
  margin: 0;
}

html body .ni-flow-order-total__row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 38px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(219,195,181,.44);
  color: #6a5550;
}

html body .ni-flow-order-total__row dt,
html body .ni-flow-order-total__row dd{
  margin: 0;
}

html body .ni-flow-order-total__row dt{
  color: #7a6159;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .03em;
}

html body .ni-flow-order-total__row dd{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
  text-align: right;
  color: #5d514b;
  font-size: 14px;
  font-weight: 800;
}

html body .ni-flow-order-total__row dd span{
  color: #9a8278;
  font-size: 12px;
  font-weight: 700;
}

html body .ni-flow-order-total__row--minus strong{
  color: #b96f73;
}

html body .ni-flow-order-total__amount{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px 18px;
  padding: 16px 18px;
  border-radius: 20px;
  background:
    linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  color: #fff;
  box-shadow: 0 16px 34px rgba(199,101,108,.22);
}

html body .ni-flow-order-total__amount-label{
  color: rgba(255,255,255,.88);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}

html body .ni-flow-order-total__amount-value{
  color: #fff;
  font-size: 24px;
  line-height: 1.1;
  text-align: right;
  text-shadow: 0 1px 0 rgba(80,40,40,.12);
}

html body .ni-flow-order-total__notice{
  grid-column: 1 / -1;
  color: rgba(255,255,255,.88);
  font-size: 12px;
  line-height: 1.6;
}

html body .ni-flow-order-total__notice strong{
  color: #fff;
}

html body .ni-flow-submit-wrap{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  margin: 18px auto 0;
  padding-top: 2px;
}

html body .ni-flow-submit-note{
  margin: 0;
  color: #8a766f;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

html body .ni-flow-submit-order{
  min-width: 220px;
  min-height: 48px;
  font-size: 16px;
  letter-spacing: .08em;
}

html body .ni-flow-submit-order.is-action-pending{
  position: relative;
  pointer-events: none;
  opacity: .78;
}

html body .ni-flow-submit-order.is-action-pending::after{
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 8px;
  border: 2px solid rgba(255,255,255,.62);
  border-top-color: #fff;
  border-radius: 999px;
  animation: ni-spin .75s linear infinite;
}

@keyframes ni-spin{
  to{ transform: rotate(360deg); }
}

/* Flow checkout pack / card choice cards */
html body .ni-flow-choice-meta-grid--gift{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html body .ni-flow-choice-list--pack,
html body .ni-flow-choice-list--card{
  gap: 13px;
}

html body .ni-flow-checkout-section--pack .ni-flow-choice-meta-value a,
html body .ni-flow-checkout-section--card .ni-flow-choice-meta-value a{
  color: #b96f73;
  font-weight: 800;
  text-decoration: none;
}

html body .ni-flow-checkout-section--pack .ni-flow-choice-meta-value a:hover,
html body .ni-flow-checkout-section--card .ni-flow-choice-meta-value a:hover{
  color: #9f5960;
  text-decoration: underline;
  text-underline-offset: 3px;
}

html body .ni-flow-card-message{
  display: grid;
  gap: 9px;
  margin-top: 16px;
  padding: 14px;
  border: 1px dashed rgba(219,195,181,.62);
  border-radius: 18px;
  background: rgba(255,250,246,.72);
}

html body .ni-flow-card-message__label{
  color: #6d5851;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .03em;
}

html body .ni-flow-card-message__textarea{
  width: 100%;
  min-height: 92px;
  resize: vertical;
}

/* Flow checkout other info / bonus / invoice / postscript convergence. */
html body .ni-flow-other-grid{
  display: grid;
  gap: 14px;
}

html body .ni-flow-other-card{
  position: relative;
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid rgba(219,195,181,.56);
  border-radius: 20px;
  background:
    radial-gradient(circle at 96% 0%, rgba(215,160,157,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(255,250,246,.88) 100%);
  color: #5d514b;
  box-shadow: 0 10px 24px rgba(120,90,80,.07);
}

html body .ni-flow-other-card::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 20px 0 0 20px;
  background: linear-gradient(180deg, rgba(215,160,157,.72), rgba(215,160,157,.18));
  opacity: .72;
}

html body .ni-flow-other-card.is-enabled,
html body .ni-flow-other-card:has(#ECS_NEEDINV:checked){
  border-color: rgba(199,101,108,.62);
  background:
    radial-gradient(circle at 96% 0%, rgba(215,160,157,.16), transparent 34%),
    linear-gradient(180deg, #fff7f4 0%, #fffdf9 100%);
  box-shadow: 0 14px 30px rgba(120,90,80,.10);
}

html body .ni-flow-other-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}

html body .ni-flow-other-card__head--toggle{
  align-items: center;
}

html body .ni-flow-other-card__title{
  color: #4e3932;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .03em;
  line-height: 1.45;
}

html body .ni-flow-other-card__hint{
  color: #8a766f;
  font-size: 13px;
  line-height: 1.65;
  text-align: right;
}

html body .ni-flow-other-control-row{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

html body .ni-flow-other-control-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

html body .ni-flow-other-control-grid--bonus{
  align-items: end;
}

html body .ni-flow-other-control-grid--invoice{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html body .ni-flow-other-field{
  display: grid;
  gap: 7px;
  min-width: 0;
}

html body .ni-flow-other-field--action{
  justify-content: start;
}

html body .ni-flow-other-label{
  color: #7a6159;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}

html body .ni-flow-other-control{
  width: 100%;
  min-width: 0;
}

html body .ni-flow-other-button{
  width: fit-content;
  min-width: 116px;
}

html body .ni-flow-other-note,
html body .ni-flow-notice{
  color: #8a766f;
  font-size: 13px;
  line-height: 1.6;
}

html body .ni-flow-notice:not(:empty){
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255,247,244,.88);
  color: #b96f73;
  font-weight: 700;
}

html body .ni-flow-checkline--invoice{
  width: fit-content;
}

html body .ni-flow-other-textarea{
  width: 100%;
  min-height: 96px;
  padding: 11px 13px;
  resize: vertical;
}

html body .ni-flow-oos-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

html body .ni-flow-choice-card--compact{
  align-items: center;
  padding: 12px 13px;
  border-radius: 16px;
}

html body .ni-flow-choice-card--compact .ni-flow-choice-body{
  gap: 0;
}

/* Flow done step convergence.
 * .ni-flow-done 為唯一寬度 owner；hero 與 summary 卡共用同一 track（對齊 checkout hero reset）。 */
html body .ni-flow-done{
  width: 100%;
  max-width: var(--ni-page-max, 960px);
  margin: 0 auto;
  display: grid;
  gap: 18px;
  box-sizing: border-box;
}

html body .ni-flow-done > .ni-flow-step-hero--done{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  justify-items: start;
  gap: 18px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 24px;
  border: 1px solid rgba(219,195,181,.62);
  border-radius: 28px;
  background:
    radial-gradient(circle at 92% 20%, rgba(215,160,157,.20), transparent 34%),
    linear-gradient(180deg, rgba(255,253,249,.98), rgba(255,250,246,.94));
  box-shadow: 0 14px 34px rgba(120,90,80,.10);
  text-align: left;
  box-sizing: border-box;
}

html body .ni-flow-done > .ni-flow-step-hero--done .ni-flow-step-hero__body,
html body .ni-flow-done > .ni-flow-step-hero--done .ni-flow-step-hero__kicker,
html body .ni-flow-done > .ni-flow-step-hero--done .ni-flow-step-hero__title{
  width: 100%;
  max-width: none;
  text-align: left;
  justify-self: stretch;
}

html body .ni-flow-done > .ni-flow-step-hero--done .ni-flow-step-hero__badge{
  justify-self: end;
}

html body .ni-flow-done > .ni-flow-done-card{
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
}

html body .ni-flow-done > .ni-flow-done-card--ezship[data-ni-ezship-shell]{
  width: 100%;
  max-width: none;
  margin: 0;
}

html body .ni-flow-done > .ni-flow-done-card--ezship .ni-flow-done-ezship,
html body .ni-flow-done > .ni-flow-done-card--ezship .ezship-inline{
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  margin-bottom: 10px;
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__eyebrow,
html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group .ni-flow-done-card__title{
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group .ni-flow-done-card__title{
  margin: 0;
}

html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__eyebrow{
  color: #b58a7c;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

html body .ni-flow-done > .ni-flow-done-card--ezship .ni-flow-ezship-shell__badge{
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  align-self: flex-start;
  justify-content: center;
  min-height: 30px;
  padding: 6px 12px;
  border: 1px solid rgba(183, 136, 117, .2);
  border-radius: 999px;
  background: rgba(255,255,255,.74);
  color: #9c6f63;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  white-space: nowrap;
}

html body .ni-flow-step-hero__kicker{
  margin:0;
}

html body .ni-flow-step-hero__title{
  margin: 0;
  color: #4e3932;
  font-family: "Noto Serif TC", PMingLiU, serif;
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 800;
  letter-spacing: .04em;
}

html body .ni-flow-step-hero__text{
  max-width: 640px;
  margin: 0;
  color: #8a766f;
  font-size: 14px;
  line-height: 1.9;
}

html body .ni-flow-step-hero__badge{
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  font-size: 32px;
  font-weight: 900;
  background: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  box-shadow: 0 12px 26px rgba(199,101,108,.22);
}

html body .ni-flow-done-card{
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid rgba(219,195,181,.62);
  border-radius: 24px;
  background: rgba(255,253,249,.96);
  box-shadow: 0 12px 28px rgba(120,90,80,.08);
}

html body .ni-flow-done-card::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, rgba(215,160,157,.88), rgba(215,160,157,.18));
  pointer-events: none;
}

html body .ni-flow-done > .ni-flow-done-card--payment,
html body .ni-flow-done > .ni-flow-done-card--ezship,
html body .ni-flow-done > .ni-flow-done-card--virtual{
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card--virtual > .ni-flow-done-card__title{
  width: 100%;
  max-width: 100%;
  margin: 0 0 12px;
  text-align: left;
}

html body .ni-flow-done-card__title{
  margin: 0 0 12px;
  color: #4e3932;
  font-family: "Noto Serif TC", PMingLiU, serif;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .04em;
}

html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px dashed rgba(219,195,181,.62);
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status__icon{
  display: grid;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  background: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
}

html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status__body{
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status__label{
  margin: 0 0 3px;
  color: #8a766f;
  font-size: 13px;
  text-align: left;
}

html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status__number{
  display: block;
  color: #c7656c;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .04em;
  word-break: break-all;
  text-align: left;
}

html body .ni-flow-done-summary-line{
  margin: 14px 0 0;
  padding: 0;
  color: #8a766f;
  font-size: 12px;
  line-height: 1.75;
  text-align: left;
}

html body .ni-flow-done-summary-line__label{
  color: #5d514b;
  font-weight: 700;
}

html body .ni-flow-done-summary-line__amount{
  color: #c7656c;
  font-weight: 800;
}

html body .ni-flow-done-pay-online{
  display: grid;
  justify-items: center;
  gap: 10px;
  text-align: center;
}

html body .ni-flow-done-pay-method{
  margin: 0 0 6px;
  color: #5d514b;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

html body .ni-flow-done-pay-method + .ni-flow-done-pay-online{
  margin-top: 24px;
}

html body .ni-flow-done-pay-block,
html body .ni-flow-done-pay-notice{
  margin: 16px 0 0;
  text-align: center;
}

html body .ni-flow-done-pay-desc{
  display: grid;
  justify-items: center;
  gap: 10px;
  margin-top: 20px;
  color: #5d514b;
  line-height: 1.8;
  text-align: center;
}

html body .ni-flow-done-pay-online #__paymentButton,
html body .ni-flow-done-pay-online input.paypal-btn,
html body .ni-flow-done-pay-online .ni-pay-btn,
html body .ni-flow-done-pay-online a,
html body .ni-flow-done-pay-online button,
html body .ni-flow-done-pay-online input[type="button"],
html body .ni-flow-done-pay-online input[type="submit"],
html body .ni-flow-done-back a{
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  -webkit-text-fill-color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .04em;
  text-decoration: none;
  background: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  background-image: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  box-shadow: 0 10px 22px rgba(199,101,108,.18);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

html body .ni-flow-done-pay-online #__paymentButton:hover,
html body .ni-flow-done-pay-online #__paymentButton:focus,
html body .ni-flow-done-pay-online input.paypal-btn:hover,
html body .ni-flow-done-pay-online input.paypal-btn:focus,
html body .ni-flow-done-pay-online .ni-pay-btn:hover,
html body .ni-flow-done-pay-online .ni-pay-btn:focus,
html body .ni-flow-done-pay-online a:hover,
html body .ni-flow-done-pay-online button:hover,
html body .ni-flow-done-pay-online input[type="button"]:hover,
html body .ni-flow-done-pay-online input[type="submit"]:hover{
  color: #fff;
  -webkit-text-fill-color: #fff;
  background: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  background-image: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  filter: brightness(1.03);
  transform: translateY(-1px);
}

html body .ni-flow-done-pay-online a.is-action-pending,
html body .ni-flow-done-pay-online button.is-action-pending,
html body .ni-flow-done-pay-online input.is-action-pending,
html body .ni-flow-done-pay-online #__paymentButton.is-action-pending,
html body .ni-flow-done-back a.is-action-pending{
  opacity: .78;
  pointer-events: none;
}

html body .ni-flow-done-ezship{
  min-height: 74px;
  padding: 14px;
  border: 1px dashed rgba(215,160,157,.58);
  border-radius: 18px;
  background: rgba(255,250,246,.72);
  color: #5d514b;
  text-align: left;
}

html body .ni-flow-virtual-list{
  display: grid;
  gap: 12px;
}

html body .ni-flow-virtual-item{
  padding: 14px;
  border: 1px solid rgba(219,195,181,.46);
  border-radius: 18px;
  background: rgba(255,250,246,.7);
}

html body .ni-flow-virtual-item__title{
  margin: 0 0 10px;
  color: #5d514b;
  font-size: 15px;
  font-weight: 800;
}

html body .ni-flow-virtual-card{
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

html body .ni-flow-virtual-card li{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(255,253,249,.86);
  color: #5d514b;
}

html body .ni-flow-virtual-card strong{
  color: #8a766f;
}

html body .ni-flow-virtual-card span{
  color: #c7656c;
  font-weight: 800;
  word-break: break-all;
}

html body .ni-flow-done-back{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 4px 0 0;
  padding: 18px;
  border: 1px solid rgba(219,195,181,.42);
  border-radius: 24px;
  background: rgba(255,253,249,.84);
}

/* Flow login/register step convergence. */
html body .ni-flow-auth{
  display: grid;
  gap: 20px;
  width: min(100%, var(--ni-page-max, 960px));
  margin: 0 auto 28px;
}

html body .ni-flow-step-hero--auth{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: start;
  align-items: start;
  text-align: left;
  padding: 22px 24px;
  border: 1px solid rgba(219,195,181,.58);
  border-radius: 28px;
  background:
    radial-gradient(circle at 92% 8%, rgba(215,160,157,.18), transparent 30%),
    linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(255,250,246,.92) 100%);
  box-shadow: 0 16px 34px rgba(120,90,80,.08);
}

html body .ni-flow-step-hero--auth .ni-flow-step-hero__body{
  width: 100%;
  max-width: none;
  text-align: left;
}

html body .ni-flow-step-hero--auth .ni-flow-step-hero__kicker,
html body .ni-flow-step-hero--auth .ni-flow-step-hero__title,
html body .ni-flow-step-hero--auth .ni-flow-step-hero__text{
  width:100%;
  max-width:none;
  text-align:left;
  justify-self:start;
}

html body .ni-flow-step-hero--auth .ni-flow-step-hero__title{
  color:var(--ni-color-heading, #4e372f);
  font-family:var(--ni-font-heading, "Noto Serif TC", "PMingLiU", serif);
  font-size:var(--ni-page-hero-title-size, clamp(24px, 3vw, 34px));
  font-weight:var(--ni-page-hero-title-weight, 900);
  line-height:var(--ni-page-hero-title-line-height, 1.24);
  letter-spacing:var(--ni-page-hero-title-letter-spacing, .045em);
}

html body .ni-flow-auth-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

html body .ni-flow-auth-card{
  position: relative;
  overflow: hidden;
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 18px;
  min-width: 0;
  padding: 22px;
  border: 1px solid rgba(219,195,181,.58);
  border-radius: 26px;
  background: rgba(255,253,249,.94);
  box-shadow: 0 14px 30px rgba(120,90,80,.08);
  text-align: center;
}

html body .ni-flow-auth-card::before{
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, rgba(215,160,157,.52), rgba(234,219,208,.28));
}

html body .ni-flow-auth-card__head{
  justify-self: stretch;
  width: 100%;
  padding-bottom: 4px;
  justify-items: start;
  text-align: left;
}

html body .ni-flow-auth-card__title{
  margin: 0;
  color: #4e3932;
  font-family: "Noto Serif TC", "PMingLiU", serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: left;
  justify-self: start;
}

html body .ni-flow-auth-card__text{
  margin: 0;
  color: #8a766f;
  font-size: 13px;
  line-height: 1.8;
  text-align: left;
  justify-self: start;
}

html body .ni-flow-auth-form,
html body .ni-flow-auth-fields{
  display: grid;
  gap: 14px;
  width: min(100%, 320px);
  min-width: 0;
  justify-self: center;
  margin-inline: auto;
}

html body .ni-flow-auth-field{
  display: grid;
  gap: 7px;
  margin: 0;
}

html body .ni-flow-auth .ni-flow-field__label{
  color: #5d514b;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}

html body .ni-flow-auth .ni-flow-control,
html body .ni-flow-auth input.inputBg{
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  padding: 0 14px;
  border: 1px solid rgba(219,195,181,.68);
  border-radius: 999px;
  color: #5d514b;
  font-size: 14px;
  background: rgba(255,250,246,.86);
  outline: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

html body .ni-flow-auth .ni-flow-control:focus,
html body .ni-flow-auth input.inputBg:focus{
  border-color: rgba(215,160,157,.9);
  background: #fffdf9;
  box-shadow: 0 0 0 4px rgba(215,160,157,.13);
}

html body .ni-flow-captcha-row{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

html body .ni-flow-captcha-input{
  max-width: none;
}

html body .ni-flow-captcha-image{
  display: block;
  max-width: 130px;
  height: auto;
  border: 1px solid rgba(219,195,181,.62);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
}

html body .ni-flow-auth-remember{
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

html body .ni-flow-auth-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}

html body .ni-flow-auth-submit{
  width: 100%;
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .06em;
  background: linear-gradient(180deg,#d97980 0%,#c7656c 100%);
  box-shadow: 0 12px 24px rgba(199,101,108,.18);
  cursor: pointer;
}

html body .ni-flow-auth-submit.is-action-pending{
  opacity: .72;
  pointer-events: none;
}

/* Flow auth remember canonical: no capsule frame, native square checkbox. */
html body .ni-flow-step-hero--auth .ni-flow-step-hero__badge{
  display: none;
}

html body .ni-flow-auth-remember{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  min-height: 24px;
  margin: 0 auto;
  padding: 4px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #7f6d63;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
  cursor: pointer;
}

html body .ni-flow-auth-remember input[type="checkbox"]{
  -webkit-appearance: checkbox;
  appearance: auto;
  display: inline-block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: initial;
  box-shadow: none;
  accent-color: #c7656c;
  cursor: pointer;
}

html body .ni-flow-auth-remember input[type="checkbox"]::after{
  content: none;
  display: none;
}

html body .ni-flow-auth-remember input[type="checkbox"]:focus-visible{
  outline: 2px solid rgba(215,160,157,.38);
  outline-offset: 3px;
}

html body .ni-flow-auth-remember input[type="checkbox"] + span,
html body .ni-flow-auth-remember span{
  color: #7f6d63;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}

/* NI_FLOW_AUTH_LAYOUT: 標題區全寬置左，表單本體置中。 */
html body.ni-flow-step-login .ni-flow-step-hero--auth,
html body.ni-flow-step-login .ni-flow-step-hero--auth .ni-flow-step-hero__body{
  justify-items: start;
  align-content: start;
  text-align: left;
}
html body.ni-flow-step-login .ni-flow-step-hero--auth .ni-flow-step-hero__kicker,
html body.ni-flow-step-login .ni-flow-step-hero--auth .ni-flow-step-hero__title{
  justify-self: start;
  width: 100%;
  max-width: none;
  text-align: left;
}
html body.ni-flow-step-login .ni-flow-auth-card{
  justify-items: center;
  text-align: center;
}
html body.ni-flow-step-login .ni-flow-auth-card__head{
  justify-self: stretch;
  width: 100%;
  max-width: none;
  justify-items: start;
  text-align: left;
}
html body.ni-flow-step-login .ni-flow-auth-card__kicker,
html body.ni-flow-step-login .ni-flow-auth-card__title,
html body.ni-flow-step-login .ni-flow-auth-card__text{
  justify-self: start;
  width: 100%;
  max-width: none;
  text-align: left;
}
html body.ni-flow-step-login .ni-flow-auth-form{
  width: min(100%, 320px);
  justify-self: center;
  margin-inline: auto;
  text-align: center;
}
html body.ni-flow-step-login .ni-flow-auth-fields,
html body.ni-flow-step-login .ni-flow-auth-field{
  width: 100%;
  justify-self: center;
}
html body.ni-flow-step-login .ni-flow-auth .ni-flow-field__label{
  text-align: left;
}
html body.ni-flow-step-login .ni-flow-auth-actions{
  justify-content: center;
  width: 100%;
}
html body.ni-flow-step-login .ni-flow-auth-remember{
  justify-content: center;
  margin-inline: auto;
  text-align: center;
}

html body .ni-flow-auth-note{
  margin: 0;
  text-align: center;
}

html body .ni-flow-auth-note a{
  color: #8a766f;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

html body .ni-flow-auth-note a:hover{
  color: #c7656c;
}

html body .ni-flow-auth-notice{
  min-height: 16px;
  color: #c7656c;
  font-size: 12px;
  line-height: 1.5;
}

html body .ni-flow-auth-alert{
  padding: 14px 16px;
  border: 1px solid rgba(215,160,157,.48);
  border-radius: 18px;
  color: #c7656c;
  font-weight: 800;
  text-align: center;
  background: rgba(255,244,242,.82);
}

/* Extracted from pages.css: checkout UX rules */
/* NI_FLOW_CHECKOUT_UX_MODERNIZATION_PACK
 * Modern checkout journey layer. Progress bar (.ni-flow-progress) is the single owner for all flow steps — do not override per step.
 */
html body .ni-flow-progress{
  position:relative;
  margin:18px auto 18px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  box-sizing:border-box;
}
html body .ni-flow-progress__list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}
html body .ni-flow-progress__item{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:12px 12px;
  border:1px solid rgba(219,195,181,.52);
  border-radius:999px;
  background:rgba(255,255,255,.52);
  color:var(--ni-color-muted, #8a766f);
  box-sizing:border-box;
}
html body .ni-flow-progress__item::after{
  content:"";
  position:absolute;
  top:50%;
  right:-12px;
  width:12px;
  height:1px;
  background:rgba(219,195,181,.72);
  transform:translateY(-50%);
}
html body .ni-flow-progress__item:last-child::after{
  display:none;
}
html body .ni-flow-progress__item.is-current,
html body .ni-flow-progress__item.is-complete{
  border-color:rgba(207,113,123,.42);
  background:rgba(247,229,226,.72);
  color:var(--ni-color-heading, #4e372f);
}
html body .ni-flow-progress__item.is-current{
  box-shadow:0 10px 24px rgba(207,113,123,.12);
}
html body .ni-flow-progress__dot{
  flex:0 0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fffdf9;
  color:#bf626d;
  font-size:13px;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(207,113,123,.25);
}
html body .ni-flow-progress__item.is-complete .ni-flow-progress__dot{
  background:#cf717b;
  color:#fff;
  box-shadow:none;
}
html body .ni-flow-progress__body{
  display:flex;
  flex-direction:column;
  min-width:0;
  line-height:1.25;
}
html body .ni-flow-progress__label{
  overflow:hidden;
  color:inherit;
  font-size:13px;
  font-weight:900;
  letter-spacing:.05em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
html body .ni-flow-progress__hint{
  overflow:hidden;
  margin-top:2px;
  color:var(--ni-color-subtle, #a48d83);
  font-size:11px;
  font-weight:700;
  text-overflow:ellipsis;
  white-space:nowrap;
}
html body .ni-flow-checkout-section{
  scroll-margin-top:150px;
}
html body .ni-flow-mobile-submit{
  display:none;
}

/* Extracted from responsive.css: flow responsive base */
/* NI_FLOW_CART_STEP_RESPONSIVE */
@media (max-width:700px){
  html body.ni-page-flow .block.ni-flow-page{
    margin-bottom:28px;
  }
  html body .ni-flow-cart-panel{
    margin:10px auto 22px;
    padding:16px 12px 14px;
    border-radius:24px;
  }
  html body .ni-flow-cart-head{
    flex-direction:column;
    gap:12px;
    margin-bottom:14px;
    padding-bottom:14px;
  }
  html body .ni-flow-title{
    font-size:25px;
  }
  html body .ni-flow-lead{
    font-size:13px;
  }
  html body .ni-flow-cart-table-wrap{
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  html body .ni-flow-cart-table,
  html body .ni-flow-cart-table thead,
  html body .ni-flow-cart-table tbody,
  html body .ni-flow-cart-table tr,
  html body .ni-flow-cart-table th,
  html body .ni-flow-cart-table td{
    display:block;
    width:100%;
  }
  html body .ni-flow-cart-table thead{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  html body .ni-flow-cart-row{
    margin:0 0 12px;
    padding:12px;
    border:1px solid rgba(219,195,181,.58);
    border-radius:22px;
    background:#fffdf9;
    box-shadow:0 10px 24px rgba(120,90,80,.07);
    box-sizing:border-box;
  }
  /* NI_FLOW_CART_MOBILE_VALUE_ROW — 手機資料列唯一實作：左標籤、右數值 */
  html body .ni-flow-cart-row td.ni-cart-attr-cell,
  html body .ni-flow-cart-row td.ni-cart-market-cell,
  html body .ni-flow-cart-row td.ni-cart-price-cell,
  html body .ni-flow-cart-row td.ni-cart-qty-cell,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell,
  html body .ni-flow-cart-row td.ni-cart-action-cell{
    display:grid;
    grid-template-columns:4.8em minmax(0,1fr);
    align-items:center;
    gap:8px 12px;
    min-height:36px;
    padding:9px 0;
    border-bottom:1px dashed rgba(219,195,181,.46);
    background:transparent;
    text-align:right;
  }
  html body .ni-flow-cart-row:last-child td.ni-cart-attr-cell,
  html body .ni-flow-cart-row:last-child td.ni-cart-market-cell,
  html body .ni-flow-cart-row:last-child td.ni-cart-price-cell,
  html body .ni-flow-cart-row:last-child td.ni-cart-qty-cell,
  html body .ni-flow-cart-row:last-child td.ni-cart-subtotal-cell,
  html body .ni-flow-cart-row:last-child td.ni-cart-action-cell{
    border-bottom:1px dashed rgba(219,195,181,.46);
  }
  html body .ni-flow-cart-row td.ni-cart-action-cell{
    border-bottom:0;
  }
  html body .ni-flow-cart-row td.ni-cart-attr-cell::before,
  html body .ni-flow-cart-row td.ni-cart-market-cell::before,
  html body .ni-flow-cart-row td.ni-cart-price-cell::before,
  html body .ni-flow-cart-row td.ni-cart-qty-cell::before,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell::before,
  html body .ni-flow-cart-row td.ni-cart-action-cell::before{
    content:attr(data-label);
    grid-column:1;
    grid-row:1;
    justify-self:start;
    text-align:left;
    color:#9a8279;
    font-size:12px;
    font-weight:900;
    line-height:1.35;
  }
  html body .ni-flow-cart-row td.ni-cart-attr-cell .ni-cart-attr-text,
  html body .ni-flow-cart-row td.ni-cart-qty-cell > .ni-cart-qty-control,
  html body .ni-flow-cart-row td.ni-cart-qty-cell > .cart-qty-control,
  html body .ni-flow-cart-row td.ni-cart-price-cell > .flow-money-center,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell > .flow-money-center,
  html body .ni-flow-cart-row td.ni-cart-market-cell > .flow-money-center,
  html body .ni-flow-cart-row td.ni-cart-action-cell > .ni-cart-remove,
  html body .ni-flow-cart-row td.ni-cart-qty-cell > .ni-cart-static-qty{
    grid-column:2;
    grid-row:1;
    justify-self:end;
    width:auto;
    max-width:100%;
    min-width:0;
    margin:0;
    text-align:right;
  }
  html body .ni-flow-cart-row .ni-cart-product-cell{
    display:block;
    width:100%;
    max-width:none;
    min-width:0;
    padding:0 0 10px;
    padding-left:0;
    margin-bottom:2px;
    border-bottom:1px dashed rgba(219,195,181,.52);
    text-align:left;
  }
  html body .ni-flow-cart-row .ni-cart-product-cell::before{
    display:none;
  }
  html body .ni-flow-cart-row .ni-cart-product-cell > *{
    grid-column:unset;
    grid-row:unset;
    justify-self:unset;
    text-align:left;
  }
  html body .ni-cart-product{
    align-items:flex-start;
    justify-content:flex-start;
    gap:12px;
    width:100%;
  }
  html body .ni-cart-product__media{
    width:74px;
    height:74px;
    flex:0 0 74px;
    border-radius:17px;
  }
  html body .ni-cart-product__body{
    flex:1 1 auto;
    width:auto;
    max-width:none;
    min-width:0;
    text-align:left;
  }
  html body .ni-cart-product__title{
    display:block;
    width:auto;
    max-width:none;
    font-size:14px;
    line-height:1.55;
    text-align:left;
  }
  html body .ni-flow-cart-row td.ni-cart-qty-cell{
    min-width:0;
  }
  html body .ni-flow-cart-summary-row{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    margin-top:14px;
    padding:14px;
    border-radius:20px;
  }
  html body .ni-flow-cart-actions-inline,
  html body .ni-flow-cart-footer-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    width:100%;
  }
  html body .ni-flow-cart-actions-inline .ni-button,
  html body .ni-flow-cart-footer-actions .ni-button{
    width:100%;
    min-width:0;
  }
  html body .ni-flow-checkout{
    min-height:46px;
  }

  html body .ni-flow-extra-panel{
    width:min(100% - 24px, var(--ni-page-max, 960px));
    margin-top:14px;
    padding:16px 12px;
    border-radius:24px;
  }
  html body .ni-flow-extra-head{
    margin-bottom:12px;
    padding-bottom:12px;
  }
  html body .ni-flow-extra-panel.is-collapsed .ni-flow-extra-head{
    margin-bottom:0;
    padding-bottom:0;
  }
  html body .ni-flow-extra-title{
    font-size:21px;
  }
  html body .ni-flow-extra-lead{
    font-size:12px;
  }
  html body .ni-flow-extra-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  /* 收藏卡為橫式圖+品名，<=700px 雙欄會把品名擠成直排（375px iPhone SE 斷點外一像素即中招） */
  html body .ni-flow-extra-grid--collection{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }
  html body .ni-flow-extra-card{
    padding:10px;
    border-radius:19px;
  }
  html body .ni-flow-extra-card__media{
    margin-bottom:9px;
    border-radius:17px;
  }
  html body .ni-flow-extra-card__title{
    font-size:13px;
  }
  html body .ni-flow-extra-action{
    min-height:36px;
    padding-inline:10px;
    font-size:12px;
  }
  html body .ni-flow-favourable-list{
    grid-template-columns:1fr;
    gap:10px;
  }
  html body .ni-flow-favourable-card__inner{
    padding:13px;
    border-radius:21px;
  }
  html body .ni-flow-favourable-card__head{
    min-height:0;
    padding-right:0;
  }
  html body .ni-flow-favourable-badge{
    position:static;
    width:max-content;
    max-width:100%;
    margin-top:9px;
  }
  html body .ni-flow-favourable-name{
    font-size:17px;
  }
  html body .ni-flow-favourable-meta__item{
    grid-template-columns:1fr;
    gap:3px;
    padding:9px 10px;
  }
  html body .ni-flow-gift-list{
    margin-top:10px;
    padding:10px;
  }
  html body .ni-flow-favourable-actions{
    align-items:stretch;
    padding-top:12px;
  }
  html body .ni-flow-favourable-submit{
    width:100%;
  }
}
@media (max-width:374px){
  html body.ni-page-flow .block.ni-flow-page{
    margin-bottom:28px;
  }
  html body .ni-flow-cart-panel{
    padding:12px 9px;
  }
  html body .ni-cart-product__media{
    width:64px;
    height:64px;
  }
  html body .ni-cart-qty-control,
  html body .flowBox1 .cart-qty-control{
    gap:4px;
  }

  html body .ni-flow-extra-panel{
    width:min(100% - 18px, var(--ni-page-max, 960px));
    padding:12px 9px;
  }
  html body .ni-flow-extra-grid,
  html body .ni-flow-extra-grid--collection{
    grid-template-columns:1fr;
  }
  html body .ni-flow-extra-card{
    display:grid;
    grid-template-columns:74px minmax(0,1fr);
    gap:10px;
    align-items:center;
  }
  html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection{
    grid-template-columns:74px minmax(0,1fr);
    gap:0 10px;
    align-items:start;
  }
  html body.ni-page-flow .ni-flow-extra-panel--collection .ni-flow-extra-card--collection .ni-flow-extra-card__media{
    width:74px;
    height:74px;
    border-radius:14px;
  }
  html body .ni-flow-extra-card__media{
    width:74px;
    height:74px;
    margin:0;
  }
  html body .ni-flow-extra-card__title{
    min-height:0;
  }
  html body .ni-flow-extra-action{
    grid-column:1 / -1;
    margin-top:2px;
  }
}
@media (prefers-reduced-motion:reduce){
  html body .ni-flow-cart-panel *,
  html body .ni-flow-cart-panel *::before,
  html body .ni-flow-cart-panel *::after,
  html body .ni-flow-extra-panel *,
  html body .ni-flow-extra-panel *::before,
  html body .ni-flow-extra-panel *::after{
    transition:none;
    animation:none;
  }
}

@media (max-width:700px){
  html body .ni-flow-step-hero:not(.ni-flow-step-hero--done){
    width:min(100% - 24px, var(--ni-page-max, 960px));
    margin-bottom:12px;
    padding:18px 16px;
    border-radius:24px;
  }
  html body .ni-flow-step-hero::before{
    width:68px;
    height:68px;
    right:12px;
    bottom:12px;
  }
  html body .ni-flow-step-title{
    font-size:24px;
  }
  html body .ni-flow-step-lead{
    font-size:13px;
    line-height:1.75;
  }
}

@media (max-width:374px){
  html body .ni-flow-step-hero:not(.ni-flow-step-hero--done){
    width:min(100% - 18px, var(--ni-page-max, 960px));
  }
  html body .ni-flow-step-hero:not(.ni-flow-step-hero--done){
    padding:15px 12px;
  }
  html body .ni-flow-step-title{
    font-size:21px;
  }
}

@media (prefers-reduced-motion:reduce){
  html body .ni-flow-step-hero *,
  html body .ni-flow-step-hero *::before,
  html body .ni-flow-step-hero *::after{
    transition:none;
    animation:none;
  }
}

/* Flow checkout confirmation step responsive convergence. */
@media (max-width: 700px){
  html body .ni-flow-checkout-form{
    width: min(100%, calc(100vw - 24px));
    margin-bottom: 28px;
  }

  html body .ni-flow-checkout-section{
    padding: 16px 14px;
    border-radius: 22px;
  }

  html body .ni-flow-checkout-section__head{
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  html body .ni-flow-checkout-section__title{
    font-size: 17px;
  }

  html body .ni-flow-section-edit{
    min-height: 32px;
    padding: 0 12px;
  }

  html body .ni-flow-checkout-table,
  html body .ni-flow-checkout-table thead,
  html body .ni-flow-checkout-table tbody,
  html body .ni-flow-checkout-table tr,
  html body .ni-flow-checkout-table th,
  html body .ni-flow-checkout-table td{
    display: block;
    width: 100%;
  }

  html body .ni-flow-checkout-table tr{
    border-bottom: 1px solid rgba(219,195,181,.48);
    background: rgba(255,253,249,.88);
  }

  html body .ni-flow-checkout-table tr:last-child{
    border-bottom: 0;
  }

  html body .ni-flow-checkout-table th{
    display: none;
  }

  html body .ni-flow-checkout-table td{
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px dashed rgba(219,195,181,.34);
  }

  html body .ni-flow-checkout-table td:last-child{
    border-bottom: 0;
  }

  html body .ni-flow-option-table tr:has(input[type="radio"]:checked) td,
  html body .ni-flow-option-table tr.is-selected td{
    box-shadow: inset 4px 0 0 rgba(215,160,157,.78);
  }

  html body .ni-flow-choice-card{
    grid-template-columns: auto minmax(0, 1fr);
    padding: 13px 12px;
    border-radius: 16px;
  }

  html body .ni-flow-choice-meta-grid,
  html body .ni-flow-choice-meta-grid--payment,
  html body .ni-flow-choice-meta-grid--shipping{
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  html body .ni-flow-checkline{
    width: 100%;
    justify-content: center;
  }

  html body .ni-flow-checkout-section textarea{
    width: 100%;
  }

  html body .ni-flow-order-total__reward{
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  html body .ni-flow-order-total__reward-value{
    text-align: left;
  }

  html body .ni-flow-order-total__body{
    padding: 13px;
    border-radius: 20px;
  }

  html body .ni-flow-order-total__row{
    align-items: flex-start;
    min-height: 0;
    padding: 9px 0;
  }

  html body .ni-flow-order-total__row dd{
    text-align: right;
  }

  html body .ni-flow-order-total__amount{
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 14px 15px;
  }

  html body .ni-flow-order-total__amount-value{
    font-size: 22px;
    text-align: left;
  }

  html body .ni-flow-submit-wrap{
    margin-top: 16px;
  }

  html body .ni-flow-submit-order{
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 374px){
  html body .ni-flow-checkout-section{
    padding: 14px 12px;
    border-radius: 20px;
  }

  html body .ni-flow-checkout-table td{
    padding: 9px 10px;
  }

  html body .ni-flow-order-total__row{
    gap: 10px;
  }

  html body .ni-flow-order-total__row dt{
    font-size: 12px;
  }

  html body .ni-flow-order-total__row dd{
    font-size: 13px;
  }

  html body .ni-flow-order-total__amount-value{
    font-size: 20px;
  }

  html body .ni-flow-choice-card{
    gap: 10px;
    padding: 12px 10px;
  }

  html body .ni-flow-choice-title{
    font-size: 14px;
  }

  html body .ni-flow-choice-desc,
  html body .ni-flow-choice-meta-value{
    font-size: 12px;
  }
}

@media (max-width: 700px){
  html body .ni-flow-choice-meta-grid--gift{
    grid-template-columns: 1fr;
  }

  html body .ni-flow-card-message{
    margin-top: 12px;
    padding: 12px;
    border-radius: 16px;
  }
}

/* Flow checkout other info responsive convergence. */
@media (max-width: 700px){
  html body .ni-flow-other-card{
    padding: 14px 12px;
    border-radius: 18px;
  }

  html body .ni-flow-other-card__head,
  html body .ni-flow-other-card__head--toggle{
    display: grid;
    gap: 8px;
  }

  html body .ni-flow-other-card__hint{
    text-align: left;
  }

  html body .ni-flow-other-control-row,
  html body .ni-flow-other-control-grid,
  html body .ni-flow-other-control-grid--bonus,
  html body .ni-flow-other-control-grid--invoice,
  html body .ni-flow-oos-list{
    grid-template-columns: 1fr;
  }

  html body .ni-flow-other-button,
  html body .ni-flow-checkline--invoice{
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 374px){
  html body .ni-flow-other-card{
    padding: 12px 10px;
    border-radius: 16px;
  }

  html body .ni-flow-other-card__title,
  html body .ni-flow-choice-card--compact .ni-flow-choice-title{
    font-size: 14px;
  }
}

/* Flow done responsive convergence. */
@media (max-width: 700px){
  html body .ni-flow-done{
    gap: 14px;
  }

  html body .ni-flow-done > .ni-flow-step-hero--done{
    grid-template-columns: minmax(0, 1fr) auto;
    justify-items: start;
    width: 100%;
    margin: 0;
    padding: 18px;
    border-radius: 22px;
    text-align: left;
  }

  html body .ni-flow-step-hero__badge{
    width: 52px;
    height: 52px;
    font-size: 26px;
  }

  html body .ni-flow-done-card{
    padding: 16px 14px;
    border-radius: 20px;
  }

  html body .ni-flow-done > .ni-flow-done-card--summary .ni-flow-done-status__number{
    font-size: 18px;
  }

  html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__head{
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    text-align: left;
  }

  html body .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group{
    align-items: flex-start;
    width: 100%;
    text-align: left;
  }

  html body .ni-flow-done-summary-line{
    font-size: 11px;
    line-height: 1.7;
  }

  html body .ni-flow-done-pay-online #__paymentButton,
  html body .ni-flow-done-pay-online input.paypal-btn,
  html body .ni-flow-done-pay-online .ni-pay-btn,
  html body .ni-flow-done-pay-online a,
  html body .ni-flow-done-pay-online button,
  html body .ni-flow-done-pay-online input[type="button"],
  html body .ni-flow-done-pay-online input[type="submit"],
  html body .ni-flow-done-back a{
    width: 100%;
  }

  html body .ni-flow-done-pay-desc{
    margin-top: 18px;
  }

  html body .ni-flow-virtual-card li{
    display: grid;
    justify-content: stretch;
  }
}

@media (max-width: 374px){
  html body .ni-flow-done > .ni-flow-step-hero--done{
    padding: 15px 12px;
  }

  html body .ni-flow-done-card{
    padding: 14px 12px;
  }
}

/* Flow login/register responsive convergence. */
@media (max-width: 700px){
  html body .ni-flow-auth{
    gap: 14px;
    margin-bottom: 22px;
  }

  html body .ni-flow-step-hero--auth{
    grid-template-columns: 1fr;
    justify-items: start;
    padding: 18px;
    border-radius: 22px;
    text-align: left;
  }

  html body .ni-flow-step-hero--auth .ni-flow-step-hero__title{
    font-size:var(--ni-page-hero-title-size-mobile, 24px);
    line-height:1.25;
  }

  html body .ni-flow-auth-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  html body .ni-flow-auth-card{
    padding: 18px 14px;
    border-radius: 22px;
    justify-items: center;
    text-align: center;
  }

  html body .ni-flow-auth-card__head{
    justify-self: stretch;
    width: 100%;
    justify-items: start;
    text-align: left;
  }

  html body .ni-flow-auth-card__kicker,
  html body .ni-flow-auth-card__title,
  html body .ni-flow-auth-card__text{
    justify-self: start;
    width: 100%;
    text-align: left;
  }

  html body .ni-flow-auth-card__title{
    font-size: 21px;
  }

  html body .ni-flow-captcha-row{
    grid-template-columns: 1fr;
  }

  html body .ni-flow-captcha-image{
    max-width: 150px;
  }

  html body .ni-flow-auth-submit{
    width: 100%;
  }
}

@media (max-width: 374px){
  html body .ni-flow-auth-card{
    padding: 16px 12px;
    border-radius: 20px;
  }

  html body .ni-flow-auth .ni-flow-control,
  html body .ni-flow-auth input.inputBg{
    min-height: 40px;
    padding: 0 12px;
  }
}

/* NI_FLOW_MOBILE_CARTBAR_SUPPRESS
 * Root cause: flow cart/checkout already ship dedicated bottom bars
 * (.ni-flow-cart-footer-actions / .ni-flow-mobile-submit). The global fixed
 * cart island stacks above them; frosted glass then reveals the flow card behind.
 */
@media screen and (max-width:700px){
  html body.ni-page-flow #mainNav .meun_float.ni-cartbar,
  html body.ni-page-flow #mainNav .meun_float[data-ni-cartbar]{
    display:none;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    position:absolute;
    left:-9999px;
    width:0;
    height:0;
    min-height:0;
    max-height:0;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  html body.ni-page-flow #mainNav .meun_float.ni-cartbar::before,
  html body.ni-page-flow #mainNav .meun_float[data-ni-cartbar]::before{
    content:none;
    display:none;
  }
}

/* Extracted from responsive.css: checkout UX responsive */
/* NI_FLOW_CHECKOUT_UX_MODERNIZATION_PACK responsive layer. */
@media (max-width:700px){
  html body.ni-flow-step-checkout .block.ni-flow-page,
  html body.ni-flow-step-checkout .ni-flow-page{
    padding-bottom:calc(90px + env(safe-area-inset-bottom, 0px));
  }
  html body .ni-flow-progress{
    margin:12px auto 14px;
    padding:0;
  }
  html body .ni-flow-progress__list{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:4px;
  }
  html body .ni-flow-progress__item{
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:var(--ni-color-muted,#8a766f);
    text-align:center;
  }
  html body .ni-flow-progress__item::after{
    display:none;
  }
  html body .ni-flow-progress__item.is-current,
  html body .ni-flow-progress__item.is-complete{
    border:0;
    background:transparent;
    box-shadow:none;
    color:var(--ni-color-heading,#4e372f);
  }
  html body .ni-flow-progress__dot{
    width:28px;
    height:28px;
    flex:0 0 28px;
    font-size:12px;
    background:#fffdf9;
    color:#bf626d;
    box-shadow:inset 0 0 0 1px rgba(207,113,123,.25);
  }
  html body .ni-flow-progress__item.is-current .ni-flow-progress__dot,
  html body .ni-flow-progress__item.is-complete .ni-flow-progress__dot{
    background:#cf717b;
    color:#fff;
    box-shadow:none;
  }
  html body .ni-flow-progress__label{
    width:100%;
    font-size:11px;
  }
  html body .ni-flow-progress__hint{
    display:none;
  }
  html body .ni-flow-checkout-section{
    scroll-margin-top:100px;
  }
  /* NI_FLOW_CHECKOUT_MOBILE_ISLAND_CARTBAR_ALIGN
   * 根因：結帳島沿用舊單層 frosted bar，與 components.css NI_CARTBAR_MOBILE_CANONICAL 尺寸/質感脫節。
   * 收斂：外殼 + 內 panel 雙層，共用 --ni-common-cartbar-* token 與全站購物車島一致。 */
  html body .ni-flow-mobile-submit{
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom, 0px));
    z-index:2147482600;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0;
    width:auto;
    height:70px;
    min-height:70px;
    margin:0;
    padding:11px 13px;
    border:0;
    border-radius:999px;
    background:var(--ni-common-cartbar-bg);
    box-shadow:var(--ni-common-cartbar-shadow);
    isolation:isolate;
    backdrop-filter:var(--ni-common-cartbar-glass-blur);
    -webkit-backdrop-filter:var(--ni-common-cartbar-glass-blur);
    box-sizing:border-box;
    overflow:visible;
  }
  html body .ni-flow-mobile-submit__panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    width:100%;
    min-width:0;
    max-width:100%;
    height:46px;
    min-height:46px;
    padding:4px 6px 4px 14px;
    border:0;
    border-radius:999px;
    background:var(--ni-common-cartbar-panel);
    box-shadow:var(--ni-common-cartbar-shadow-soft);
    backdrop-filter:var(--ni-common-cartbar-glass-blur-inner);
    -webkit-backdrop-filter:var(--ni-common-cartbar-glass-blur-inner);
    box-sizing:border-box;
  }
  html body .ni-flow-mobile-submit__summary{
    min-width:0;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    flex:1 1 auto;
    line-height:1;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  html body .ni-flow-mobile-submit__label{
    flex:0 0 auto;
    color:var(--ni-common-text, #5d514b);
    font-family:"Hiragino Sans GB","PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
    font-size:14px;
    font-weight:500;
    letter-spacing:.03em;
    white-space:nowrap;
  }
  html body .ni-flow-mobile-submit__amount{
    flex:0 1 auto;
    overflow:hidden;
    color:var(--ni-common-cartbar-accent, #b77675);
    font-family:"Noto Serif TC","Hiragino Mincho ProN","PMingLiU",serif;
    font-size:22px;
    font-weight:700;
    line-height:1;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  html body .ni-flow-mobile-submit__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-width:96px;
    height:36px;
    min-height:36px;
    margin:0 0 0 8px;
    padding:0 18px;
    border:1px solid var(--ni-common-cartbar-button-border);
    border-radius:999px;
    background:var(--ni-common-cartbar-button);
    background-image:var(--ni-common-cartbar-button);
    box-shadow:var(--ni-common-cartbar-button-shadow);
    color:var(--ni-common-cartbar-accent-deep, #9b6463);
    font-family:"Noto Serif TC","Hiragino Mincho ProN","PMingLiU",serif;
    font-size:15px;
    font-weight:700;
    letter-spacing:.1em;
    white-space:nowrap;
    cursor:pointer;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .14s cubic-bezier(.2,.8,.2,1),color .18s ease;
    -webkit-appearance:none;
    appearance:none;
  }
  html body .ni-flow-mobile-submit__button:hover,
  html body .ni-flow-mobile-submit__button:focus{
    color:#8d5a59;
    background:var(--ni-common-cartbar-button-hover);
    background-image:var(--ni-common-cartbar-button-hover);
    border-color:rgba(205,171,160,.98);
    box-shadow:var(--ni-common-cartbar-button-shadow-hover);
    transform:translateY(-1px);
  }
  html body .ni-flow-mobile-submit__button:active,
  html body .ni-flow-mobile-submit__button.ni-common-pressing{
    transform:translateY(0) scale(.988);
    box-shadow:inset 0 2px 4px rgba(160,121,109,.18),0 2px 8px rgba(131,96,88,.10);
  }
  html body .ni-flow-submit-wrap .ni-flow-submit-order{
    width:100%;
  }
}

/* NI_FLOW_CART_VISUAL_POLISH
 * Cart-only visual shell refinement. Preserve formCart, quantity ids, subtotal ids,
 * clear/drop URLs, update_cart hidden step and ajax_update_cart runtime contract.
 */
html body .ni-flow-cart-head__main{
  flex:1 1 auto;
  min-width:0;
}
html body .ni-flow-cart-table-wrap{
  position:relative;
}
html body .ni-flow-cart-table-wrap::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg, rgba(215,160,157,.72), rgba(255,250,246,0));
  pointer-events:none;
  z-index:1;
}
html body .ni-flow-cart-row{
  transition:background .18s ease, box-shadow .18s ease, transform .18s ease;
}
@media (hover:hover) and (pointer:fine){
  html body .ni-flow-cart-row:hover td{
    background:#fffaf6;
  }
}
html body .ni-flow-cart-row.is-qty-updating td{
  background:#fff7f4;
}
html body .ni-cart-product__media{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78), 0 8px 18px rgba(120,90,80,.055);
}
html body .ni-cart-product__media img,
html body .ni-img--cart-thumb{
  transition:transform .22s ease;
}
html body .ni-cart-product__media:hover img,
html body .ni-cart-product__media:hover .ni-img--cart-thumb{
  transform:scale(1.035);
}
html body .ni-cart-attr-cell{
  min-width:0;
}
/* NI: 桌面購物車欄寬 — 品名放寬、款式縮欄靠右；手機卡片走 NI_FLOW_CART_MOBILE_VALUE_ROW。 */
@media (min-width:701px){
  html body .ni-flow-cart-table{
    table-layout:fixed;
  }
  html body .ni-flow-cart-table th.ni-cart-col-product,
  html body .ni-flow-cart-row td.ni-cart-product-cell{
    width:46%;
    min-width:0;
  }
  html body .ni-flow-cart-table th.ni-cart-col-attr,
  html body .ni-flow-cart-row td.ni-cart-attr-cell{
    width:10%;
    min-width:0;
    max-width:104px;
    padding-left:8px;
    padding-right:10px;
    text-align:right;
  }
  html body .ni-flow-cart-row td.ni-cart-attr-cell .ni-cart-attr-text{
    display:block;
    width:auto;
    max-width:none;
    margin:0 0 0 auto;
    text-align:right;
  }
  html body .ni-flow-cart-table th.ni-cart-col-price,
  html body .ni-flow-cart-row td.ni-cart-price-cell{
    width:12%;
  }
  html body .ni-flow-cart-table th.ni-cart-col-qty,
  html body .ni-flow-cart-row td.ni-cart-qty-cell{
    width:14%;
    min-width:0;
  }
  html body .ni-flow-cart-table th.ni-cart-col-subtotal,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell{
    width:12%;
  }
  html body .ni-flow-cart-table th.ni-cart-col-price,
  html body .ni-flow-cart-table th.ni-cart-col-qty,
  html body .ni-flow-cart-table th.ni-cart-col-subtotal,
  html body .ni-flow-cart-row td.ni-cart-price-cell,
  html body .ni-flow-cart-row td.ni-cart-qty-cell,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell{
    padding-left:10px;
    padding-right:10px;
    text-align:center;
    vertical-align:middle;
  }
  html body .ni-flow-cart-row td.ni-cart-price-cell .flow-money-center,
  html body .ni-flow-cart-row td.ni-cart-subtotal-cell .flow-money-center{
    display:block;
    min-width:0;
    width:100%;
    max-width:none;
    margin:0;
    text-align:center;
  }
  html body .ni-flow-cart-row td.ni-cart-qty-cell .ni-cart-qty-control,
  html body .ni-flow-cart-row td.ni-cart-qty-cell .cart-qty-control{
    display:inline-flex;
    margin:0 auto;
    vertical-align:middle;
  }
}
html body .ni-cart-attr-text:empty::before{
  content:"-";
  color:#b7a49c;
}
html body .ni-flow-cart-footer-actions{
  padding:4px;
  border-radius:999px;
}
html body .ni-flow-cart-footer-actions .ni-button{
  box-sizing:border-box;
}
html body .ni-flow-cart-footer-actions .ni-flow-checkout::after{
  content:"→";
  margin-left:6px;
  font-weight:900;
}

@media (min-width:701px){
  html body .ni-flow-cart-head{
    align-items:stretch;
  }
}

@media (max-width:700px){
  html body .ni-flow-cart-head__main{
    width:100%;
  }
  html body .ni-flow-cart-table-wrap::before{
    display:none;
  }
  html body .ni-flow-cart-row:hover td{
    background:transparent;
  }
  html body .ni-flow-cart-row.is-qty-updating{
    box-shadow:0 12px 26px rgba(199,101,108,.12);
  }
  html body .ni-flow-cart-row.is-qty-updating td{
    background:transparent;
  }
  html body .ni-flow-cart-footer-actions{
    position:sticky;
    bottom:calc(10px + env(safe-area-inset-bottom, 0px));
    z-index:30;
    padding:10px;
    border:1px solid rgba(219,195,181,.58);
    border-radius:22px;
    background:rgba(255,253,249,.94);
    box-shadow:0 16px 38px rgba(120,90,80,.16);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
}

@media (prefers-reduced-motion:reduce){
  html body .ni-flow-cart-row,
  html body .ni-cart-product__media img,
  html body .ni-img--cart-thumb,
  html body.ni-page-flow .ni-flow-cart-actions-inline .ni-button,
  html body.ni-page-flow .ni-flow-cart-footer-actions .ni-button{
    transition:none;
  }
  html body.ni-page-flow .ni-flow-cart-actions-inline .ni-button:hover,
  html body.ni-page-flow .ni-flow-cart-actions-inline .ni-button:focus-visible,
  html body.ni-page-flow .ni-flow-cart-footer-actions .ni-button:hover,
  html body.ni-page-flow .ni-flow-cart-footer-actions .ni-button:focus-visible{
    transform:none;
  }
}

/* NI_FLOW_CHECKOUT_CHOICE_VISUAL_POLISH
 * Checkout choice visual shell. Preserve form name/id, radio names/values,
 * selectShipping/selectPayment/selectPack/selectCard/change* handlers,
 * order_total.lbi output and flow.php?step=done runtime contract.
 */
html body .ni-flow-checkout-section--consignee .ni-flow-checkout-info-table{
  box-shadow:0 10px 24px rgba(120,90,80,.055);
}
html body .ni-flow-checkout-section--consignee .ni-flow-checkout-info-table td:nth-child(odd){
  width:18%;
  color:#927970;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  background:rgba(255,247,242,.92);
}
html body .ni-flow-checkout-section--consignee .ni-flow-checkout-info-table td:nth-child(even){
  color:#4e3932;
  font-weight:800;
}
html body .ni-flow-checkout-section--shipping,
html body .ni-flow-checkout-section--payment{
  overflow:visible;
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-list,
html body .ni-flow-checkout-section--payment .ni-flow-choice-list{
  gap:14px;
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card{
  padding:17px 18px;
  border-radius:22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(215,160,157,.08), transparent 32%),
    linear-gradient(180deg, rgba(255,253,249,.98) 0%, rgba(255,248,244,.9) 100%);
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card::after,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card::after{
  content:"";
  position:absolute;
  inset:10px 10px auto auto;
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(215,160,157,.32);
  box-shadow:0 0 0 5px rgba(215,160,157,.08);
  pointer-events:none;
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card.is-selected::after,
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card:has(input[type="radio"]:checked)::after,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card.is-selected::after,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card:has(input[type="radio"]:checked)::after{
  background:#c7656c;
  box-shadow:0 0 0 6px rgba(199,101,108,.13);
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card.is-selected .ni-flow-choice-title::after,
html body .ni-flow-checkout-section--shipping .ni-flow-choice-card:has(input[type="radio"]:checked) .ni-flow-choice-title::after,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card.is-selected .ni-flow-choice-title::after,
html body .ni-flow-checkout-section--payment .ni-flow-choice-card:has(input[type="radio"]:checked) .ni-flow-choice-title::after{
  content:"已選擇";
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin-left:9px;
  padding:0 8px;
  border-radius:999px;
  background:#f7e5e2;
  color:#bf626d;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  vertical-align:middle;
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-desc,
html body .ni-flow-checkout-section--payment .ni-flow-choice-desc{
  color:#806b63;
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-meta,
html body .ni-flow-checkout-section--payment .ni-flow-choice-meta{
  background:rgba(255,255,255,.74);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76);
}
html body .ni-flow-checkout-section--shipping .ni-flow-choice-radio input[type="radio"],
html body .ni-flow-checkout-section--payment .ni-flow-choice-radio input[type="radio"]{
  width:18px;
  height:18px;
}
html body .ni-flow-checkout-section--payment .ni-flow-choice-card.is-disabled{
  background:rgba(246,239,234,.72);
  box-shadow:none;
}

@media (max-width:700px){
  html body .ni-flow-checkout-section--consignee .ni-flow-checkout-info-table td:nth-child(odd),
  html body .ni-flow-checkout-section--consignee .ni-flow-checkout-info-table td:nth-child(even){
    width:auto;
    background:transparent;
  }
  html body .ni-flow-checkout-section--shipping .ni-flow-choice-card,
  html body .ni-flow-checkout-section--payment .ni-flow-choice-card{
    padding:14px;
    border-radius:20px;
  }
  html body .ni-flow-checkout-section--shipping .ni-flow-choice-card.is-selected .ni-flow-choice-title::after,
  html body .ni-flow-checkout-section--shipping .ni-flow-choice-card:has(input[type="radio"]:checked) .ni-flow-choice-title::after,
  html body .ni-flow-checkout-section--payment .ni-flow-choice-card.is-selected .ni-flow-choice-title::after,
  html body .ni-flow-checkout-section--payment .ni-flow-choice-card:has(input[type="radio"]:checked) .ni-flow-choice-title::after{
    margin-left:0;
    margin-top:6px;
  }
}

@media (prefers-reduced-motion:reduce){
  html body .ni-flow-checkout-section--shipping .ni-flow-choice-card,
  html body .ni-flow-checkout-section--payment .ni-flow-choice-card{
    transition:none;
  }
}

/* NI_FLOW_ORDER_TOTAL_DONE_VISUAL_POLISH
 * Pack 4 scoped shell for order total and done step only.
 * Runtime hooks, payment/shipping modules, EZShip handoff and business logic are intentionally untouched.
 */
html body .ni-flow-order-total-shell{
  display:grid;
  gap:16px;
  padding:16px;
  border:1px solid rgba(155, 123, 101, .18);
  border-radius:24px;
  background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(250,244,238,.82));
  box-shadow:0 18px 44px rgba(116, 86, 63, .08);
}

html body .ni-flow-order-total-shell__intro{
  display:grid;
  gap:6px;
  padding:4px 2px 2px;
}

html body .ni-flow-order-total-shell__eyebrow{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#b58a7c;
  font-weight:800;
}

html body .ni-flow-order-total-shell__title{
  color:#5f4b42;
  font-size:20px;
  line-height:1.35;
  font-weight:900;
}

html body .ni-flow-order-total-shell__text{
  margin:0;
  color:#8a766b;
  font-size:14px;
  line-height:1.8;
}

html body .ni-flow-order-total__meta{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
  padding:0 0 12px;
  border-bottom:1px dashed rgba(155, 123, 101, .24);
}

html body .ni-flow-order-total__meta span{
  color:#6a5449;
  font-size:14px;
  font-weight:900;
  letter-spacing:.05em;
}

html body .ni-flow-order-total__meta small{
  color:#9d887c;
  font-size:12px;
  line-height:1.7;
  text-align:right;
}

html body .ni-flow-order-total__amount-hint{
  display:block;
  margin-top:6px;
  color:#9a8176;
  font-size:12px;
  font-weight:700;
  line-height:1.6;
}

html body .ni-flow-submit-wrap{
  border-color:rgba(181, 138, 124, .24);
  background:linear-gradient(135deg, rgba(255,255,255,.76), rgba(253,248,244,.88));
}

html body .ni-flow-submit-note{
  color:#8c756b;
  font-weight:800;
}

html body .ni-flow-done-card--summary{
  background:linear-gradient(135deg, rgba(255,255,255,.86), rgba(250,243,237,.82));
}

html body .ni-flow-done-card--payment,
html body .ni-flow-done-card--ezship,
html body .ni-flow-done-card--virtual{
  border-color:rgba(181, 138, 124, .2);
  background:rgba(255,255,255,.78);
}

@media (max-width:700px){
  html body .ni-flow-order-total-shell{
    padding:13px;
    border-radius:20px;
  }

  html body .ni-flow-order-total-shell__title{
    font-size:18px;
  }

  html body .ni-flow-order-total__meta{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  html body .ni-flow-order-total__meta small{
    text-align:left;
  }
}

/* NI_FLOW_DONE_CARD_HEAD_ALIGN
 * 完成頁 payment / ezship 標題列 left authority；覆蓋 legacy center 殘影。 */
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card--payment,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card--ezship,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card--virtual,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__head,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__eyebrow,
html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group .ni-flow-done-card__title{
  text-align:left;
}

html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__head{
  justify-content:space-between;
  align-items:flex-start;
}

html body.ni-page-flow.ni-flow-step-done .ni-flow-done > .ni-flow-done-card .ni-flow-done-card__title-group{
  align-items:flex-start;
}

/* NI_FLOW_EZSHIP_DONE_INLINE_VISUAL_POLISH */
html body .ni-flow-done-card--ezship[data-ni-ezship-shell]{
  position:relative;
  overflow:hidden;
  padding:24px;
  border-color:rgba(177, 132, 113, .24);
  background:
    radial-gradient(circle at 100% 0%, rgba(244, 226, 216, .78), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.9), rgba(252,246,241,.9));
}

html body .ni-flow-done-card--ezship[data-ni-ezship-shell]::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg, #e6b19e, #f2d9ce);
  opacity:.95;
}

html body .ni-flow-done-card--ezship .ni-flow-done-ezship{
  margin-top:14px;
  padding:0;
  border:0;
  background:transparent;
}

html body .ni-flow-done-card--ezship .ni-flow-ezship-loading__sn{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  margin-right:8px;
  padding:5px 10px;
  border-radius:999px;
  background:#f4e5dc;
  color:#9c6f63;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
}

html body .ni-flow-done-card--ezship .ni-flow-ezship-loading__text{
  color:#8c756b;
  font-size:13px;
  font-weight:800;
}

html body .ni-flow-done > .ni-flow-done-card--ezship .ezship-inline{
  max-width: none;
  margin: 0;
  padding: 18px;
  border-color: rgba(181, 138, 124, .22);
  border-radius: 22px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 38px rgba(116, 86, 63, .07);
  color: #6a5449;
}

html body .ni-flow-done-card--ezship .ezship-panel__body--inline{
  align-items:stretch;
  gap:14px 20px;
}

html body .ni-flow-done-card--ezship .ezship-mobile-field__label,
html body .ni-flow-done-card--ezship .ezship-store-logos__title{
  color:#8f7064;
  font-weight:900;
}

html body .ni-flow-done-card--ezship .ezship-mobile-field__input{
  min-height:44px;
  border-color:rgba(181, 138, 124, .28);
  background:#fffdfa;
  color:#5f4b42;
  font-weight:800;
}

html body .ni-flow-done-card--ezship .ezship-store-tag{
  border-color:rgba(181, 138, 124, .24);
  background:rgba(255,255,255,.82);
  color:#735d52;
  font-weight:800;
}

html body .ni-flow-done-card--ezship .ezship-mobile-tip{
  color:#9a8176;
  font-weight:700;
  line-height:1.7;
}

html body .ni-flow-done-card--ezship .ezship-error--inline{
  margin-top: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #9a8176;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.75;
}

html body .ni-flow-done-card--ezship .ezship-main-btn{
  min-height:46px;
  border:0;
  background:linear-gradient(135deg, #dca18f, #c98276);
  box-shadow:0 12px 26px rgba(158, 101, 85, .24);
  font-weight:900;
}

html body .ni-flow-done-card--ezship .ezship-main-btn:hover{
  filter:brightness(1.03);
  transform:translateY(-1px);
}

@media (max-width:700px){
  html body .ni-flow-done-card--ezship[data-ni-ezship-shell]{
    padding:14px;
    border-radius:20px;
  }

  html body .ni-flow-done > .ni-flow-done-card--ezship .ezship-inline{
    padding: 10px 12px 12px;
    border-radius: 16px;
  }

  html body .ni-flow-done-card--ezship .ezship-panel__body--inline{
    gap: 8px;
  }

  html body .ni-flow-done-card--ezship .ezship-mobile-field{
    flex: 0 0 auto;
    max-width: none;
  }

  html body .ni-flow-done-card--ezship .ezship-store-logos{
    min-width: 0;
  }

  html body .ni-flow-done-card--ezship .ezship-mobile-field__label{
    margin-bottom: 4px;
    font-size: 13px;
  }

  html body .ni-flow-done-card--ezship .ezship-mobile-field__input{
    min-height: 40px;
    padding: 8px 14px;
  }

  html body .ni-flow-done-card--ezship .ezship-mobile-tip{
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.55;
  }

  html body .ni-flow-done-card--ezship .ezship-inline .ezship-panel__footer{
    margin-top: 10px;
  }

  html body .ni-flow-done-card--ezship .ezship-main-btn{
    width:100%;
    min-width:0;
    padding: 10px 18px;
    font-size: 14px;
    letter-spacing: .08em;
  }
}

/* Checkout postscript underline rootfix v2.
   Root cause: the visible line below the remark capsule was not generated by
   the textarea/card itself. It came from the inter-section handoff: the generic
   checkout gap and the following order-total section top accent/border were
   rendered immediately after the other-info block. The previous selector tried
   to target an internal sibling of the postscript card, but the real sibling is
   outside .ni-flow-checkout-section--other in flow.dwt.
   Keep the remark capsule and next total card, but make this specific handoff
   visually clean. */
html body.ni-page-flow .ni-flow-checkout-section--other + .ni-flow-checkout-gap--after-other{
  height: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
html body.ni-page-flow .ni-flow-checkout-section--other + .ni-flow-checkout-gap--after-other::before,
html body.ni-page-flow .ni-flow-checkout-section--other + .ni-flow-checkout-gap--after-other::after{
  display: none;
  content: none;
}
html body.ni-page-flow .ni-flow-checkout-section--other + .ni-flow-checkout-gap--after-other + .ni-flow-checkout-section--total{
  border-top-color: transparent;
}
html body.ni-page-flow .ni-flow-checkout-section--other + .ni-flow-checkout-gap--after-other + .ni-flow-checkout-section--total::before{
  display: none;
  content: none;
}
html body.ni-page-flow .ni-flow-checkout-section--other .ni-flow-other-card--postscript{
  margin-bottom: 0;
}

/* NI EZShip checkout pickup store: choose store before order creation. */
html body .ni-flow-checkout-section--pickup-store.is-hidden{display:none;}
/* 配送↔門市間距：見 checkout-confirm.css（此檔 margin-top 會被 checkout 的 margin:0 auto 蓋掉） */
html body .ni-flow-pickup-store-card__body{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
html body .ni-flow-pickup-store-status{
  display:grid;
  gap:5px;
  min-width:0;
  flex:1 1 240px;
  width:100%;
  color:#5d514b;
  line-height:1.6;
  text-align:left;
  justify-items:start;
}
html body .ni-flow-pickup-store-status strong,
html body .ni-flow-pickup-store-status span{
  display:block;
  width:100%;
  text-align:left;
}
html body .ni-flow-pickup-store-status strong{font-size:15px;color:#4e372f;font-weight:700;}
html body .ni-flow-pickup-store-status span{font-size:13px;color:#8a766f;overflow-wrap:anywhere;}
html body .ni-flow-pickup-store-status.is-empty strong{color:#bf626d;}
html body .ni-flow-pickup-store-action{white-space:nowrap;}
html body .ni-flow-pickup-store-result .ni-flow-detail-list{margin:0;}
@media (max-width: 640px){
  html body .ni-flow-pickup-store-card__body{align-items:stretch;}
  html body .ni-flow-pickup-store-status{width:100%;}
  html body .ni-flow-pickup-store-action{width:100%;justify-content:center;}
}
