/*
 * NeoTribe: restyle of EC-CUBE's standard pages (cart / purchase flow, later mypage etc.).
 * The templates are NOT copied; markup, form names and plugin hooks stay exactly as in EC-CUBE.
 * Scoped to body.nt-ec, which default_frame.twig sets for the routes listed there.
 * Tokens (--nt-*) come from neotribe.css.
 */
body.nt-ec .ec-layoutRole__contents,
body.nt-ec .ec-layoutRole__main { max-width: none; width: 100%; margin: 0; padding: 0; }
body.nt-ec .ec-role,
body.nt-ec .ec-cartRole,
body.nt-ec .ec-orderRole,
body.nt-ec .ec-registerRole,
body.nt-ec .ec-RegisterRole,
body.nt-ec .ec-cartCompleteRole,
body.nt-ec .ec-customerRole {
  max-width: calc(var(--nt-max) + var(--nt-gutter) * 2);
  margin-left: auto; margin-right: auto;
  padding-left: var(--nt-gutter); padding-right: var(--nt-gutter);
  box-sizing: border-box; width: 100%;
}
body.nt-ec .ec-customerRole .ec-cartRole,
body.nt-ec .ec-customerRole .ec-role,
body.nt-ec .ec-customerRole .ec-registerRole,
body.nt-ec .ec-role .ec-role,
body.nt-ec .ec-cartRole .ec-role,
body.nt-ec .ec-orderRole .ec-role { padding-left: 0; padding-right: 0; }

/* ---- headings ---- */
body.nt-ec .ec-pageHeader { margin: 0; padding: 40px 0 0; border: 0; }
body.nt-ec .ec-pageHeader h1 {
  margin: 0 0 28px; padding: 0; border: 0; text-align: left;
  font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em;
}
body.nt-ec .ec-rectHeading { margin: 0 0 16px; padding: 0; background: none; border: 0; }
body.nt-ec .ec-rectHeading h2, body.nt-ec .ec-rectHeading .ec-rectHeading__title {
  margin: 0; padding: 0; background: none; border: 0;
  font-size: 18px; font-weight: 500; line-height: 1.4;
}
body.nt-ec .ec-reportHeading h2 {
  margin: 0; padding: 0; border: 0; text-align: left;
  font-size: 32px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em;
}
body.nt-ec .ec-reportDescription { margin: 20px 0 0; text-align: left; font-size: 15px; line-height: 1.9; }

/* ---- progress ---- */
body.nt-ec .ec-cartRole__progress,
body.nt-ec .ec-orderRole__progress { margin: 0; }
body.nt-ec .ec-progress {
  max-width: none;
  display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 32px; padding: 0; list-style: none;
  font-size: 12px; color: var(--nt-muted);
}
body.nt-ec .ec-progress__item {
  display: flex; align-items: center; gap: 8px; width: auto; margin: 0; padding: 0 20px 0 0;
  text-align: left; position: static; flex: none;
}
body.nt-ec .ec-progress__item::before, body.nt-ec .ec-progress__item::after,
body.nt-ec .ec-progress__number::before, body.nt-ec .ec-progress__number::after { display: none; content: none; }
body.nt-ec .ec-progress__number {
  position: static; display: grid; place-items: center; flex: none;
  width: 22px; height: 22px; margin: 0; padding: 0;
  border-radius: 50%; background: var(--nt-tint); color: var(--nt-muted);
  font-size: 11px; line-height: 1; font-feature-settings: "tnum" 1;
}
body.nt-ec .ec-progress__label { margin: 0; padding: 0; font-size: 12px; }
body.nt-ec .ec-progress__item.is-complete .ec-progress__number { background: var(--nt-accent); color: var(--nt-text); }
body.nt-ec .ec-progress__item.is-complete .ec-progress__label { color: var(--nt-text); }

/* ---- alerts ---- */
body.nt-ec .ec-alert-warning, body.nt-ec .ec-alert-warning__inner { background: none; border: 0; padding: 0; margin: 0; }
body.nt-ec .ec-alert-warning__inner__item {
  display: flex; gap: 10px; margin: 0 0 16px; padding: 12px 16px;
  background: var(--nt-accent-tint); color: #6b3008; border-radius: var(--nt-radius);
  font-size: 13px; line-height: 1.7;
}
body.nt-ec .ec-alert-warning__icon { display: none; }
body.nt-ec .ec-alert-warning__text { color: inherit; padding: 0; }
body.nt-ec .ec-cartRole__error { margin: 0 0 16px; }
body.nt-ec .ec-errorMessage, body.nt-ec .ec-input .error, body.nt-ec .text-danger,
body.nt-ec .ec-errorMessage--error { color: #b42318; font-size: 13px; }

/* ---- buttons ---- */
body.nt-ec .ec-blockBtn--action,
body.nt-ec .ec-blockBtn--primary,
body.nt-ec .ec-inlineBtn--action {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-height: 48px; margin: 0; padding: 0 20px;
  font: inherit; font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; letter-spacing: 0;
  color: var(--nt-text); background: var(--nt-accent); border: 1px solid var(--nt-accent);
  border-radius: var(--nt-radius); cursor: pointer; box-sizing: border-box;
}
body.nt-ec .ec-blockBtn--action:hover, body.nt-ec .ec-blockBtn--primary:hover, body.nt-ec .ec-inlineBtn--action:hover {
  background: var(--nt-accent-hover); border-color: var(--nt-accent-hover); color: #fff;
}
body.nt-ec .ec-blockBtn--action[disabled], body.nt-ec .ec-blockBtn--primary[disabled] { opacity: .45; cursor: not-allowed; }
body.nt-ec .ec-blockBtn--cancel,
body.nt-ec .ec-inlineBtn--cancel,
body.nt-ec .ec-inlineBtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-height: 48px; margin: 0; padding: 0 20px;
  font: inherit; font-size: 14px; font-weight: 500; line-height: 1.2; text-decoration: none;
  color: var(--nt-text); background: transparent; border: 1px solid #d9dbe0;
  border-radius: var(--nt-radius); cursor: pointer; box-sizing: border-box;
}
body.nt-ec .ec-blockBtn--cancel:hover, body.nt-ec .ec-inlineBtn--cancel:hover, body.nt-ec .ec-inlineBtn:hover { background: var(--nt-tint); color: var(--nt-text); }
body.nt-ec .ec-inlineBtn { width: auto; min-height: 40px; padding: 0 14px; font-size: 13px; }

/* ---- form controls ---- */
body.nt-ec .ec-input input, body.nt-ec .ec-halfInput input, body.nt-ec .ec-zipInput input,
body.nt-ec .ec-telInput input, body.nt-ec .ec-numberInput input, body.nt-ec .ec-birth select,
body.nt-ec .ec-select select, body.nt-ec .ec-select__delivery select, body.nt-ec .ec-select__time select,
body.nt-ec .ec-input textarea, body.nt-ec textarea {
  width: 100%; min-height: 44px; padding: 0 12px; margin: 0; box-sizing: border-box;
  font: inherit; font-size: 15px; color: var(--nt-text);
  background: var(--nt-bg); border: 1px solid #d9dbe0; border-radius: var(--nt-radius);
}
body.nt-ec textarea, body.nt-ec .ec-input textarea { min-height: 96px; padding: 10px 12px; }
body.nt-ec .ec-input input:focus, body.nt-ec .ec-select select:focus, body.nt-ec textarea:focus,
body.nt-ec .ec-halfInput input:focus, body.nt-ec .ec-zipInput input:focus, body.nt-ec .ec-telInput input:focus {
  border-color: var(--nt-accent); outline: none; box-shadow: 0 0 0 2px rgba(232, 113, 26, .25);
}
body.nt-ec .ec-input, body.nt-ec .ec-select, body.nt-ec .ec-halfInput, body.nt-ec .ec-zipInput, body.nt-ec .ec-telInput { margin-bottom: 12px; }
body.nt-ec .ec-label, body.nt-ec label.ec-label { font-size: 13px; font-weight: 500; margin-bottom: 6px; display: block; }
body.nt-ec .ec-required, body.nt-ec .ec-required .ec-required__label { color: var(--nt-accent-hover); background: none; border: 0; padding: 0 0 0 4px; font-size: 12px; }
body.nt-ec .ec-halfInput { display: flex; gap: 12px; }
body.nt-ec .ec-halfInput input { flex: 1 1 0; min-width: 0; }
body.nt-ec .ec-zipInput { display: flex; align-items: center; gap: 8px; }
body.nt-ec .ec-zipInputHelp { margin-left: 8px; font-size: 13px; }

/* radios become selectable cards (shipping / payment / delivery address) */
body.nt-ec .ec-radio, body.nt-ec .ec-blockRadio { display: block; margin: 0 0 8px; }
body.nt-ec .ec-radio label, body.nt-ec .ec-blockRadio label {
  display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 14px 16px;
  border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); background: var(--nt-bg);
  font-size: 14px; line-height: 1.6; cursor: pointer; box-sizing: border-box; width: 100%;
}
body.nt-ec .ec-radio label:hover, body.nt-ec .ec-blockRadio label:hover { box-shadow: 0 0 0 1px var(--nt-accent-light); }
body.nt-ec .ec-radio label:has(input:checked), body.nt-ec .ec-blockRadio label:has(input:checked) {
  box-shadow: 0 0 0 1px var(--nt-accent); background: var(--nt-accent-tint);
}
body.nt-ec .ec-radio input[type=radio], body.nt-ec .ec-blockRadio input[type=radio] { margin-top: 4px; accent-color: var(--nt-accent); }
body.nt-ec input[type=checkbox] { accent-color: var(--nt-accent); }

/* ---- cart ---- */
body.nt-ec .ec-cartRole__totalText { margin: 0 0 20px; font-size: 14px; color: var(--nt-muted); text-align: left; }
body.nt-ec .ec-cartRole__totalText p { margin: 0; }
body.nt-ec form#form_cart {
  display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: 40px; align-items: start;
  grid-auto-flow: row dense;          /* the totals card fills column 2 next to the first cart */
  max-width: none; padding: 0; width: auto; margin: 0;
}
body.nt-ec form#form_cart > .ec-cartRole__error { grid-column: 1 / -1; }
body.nt-ec .ec-cartRole__cart { grid-column: 1; margin: 0; padding: 0; background: none; border: 0; }
body.nt-ec form#form_cart > .ec-cartRole__progress { grid-column: 1; padding: 12px 0 0; font-size: 13px; color: var(--nt-muted); text-align: left; }
body.nt-ec .ec-cartTable { border: 0; background: none; }
body.nt-ec .ec-cartHeader {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) 140px 120px; gap: 16px;
  margin: 0; padding: 0 0 10px; list-style: none; border-bottom: 1px solid rgba(31, 33, 36, .14);
  font-size: 12px; color: var(--nt-muted); background: none;
}
body.nt-ec .ec-cartHeader__label { padding: 0; text-align: left; border: 0; background: none; font-weight: 400; }
body.nt-ec .ec-cartRow {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) 140px 120px; gap: 16px; align-items: center;
  margin: 0; padding: 20px 0; list-style: none; border-bottom: 1px solid rgba(31, 33, 36, .14);
}
body.nt-ec .ec-cartRow > li { display: block; width: auto; margin: 0; padding: 0; border: 0; float: none; text-align: left; }
body.nt-ec .ec-cartRow__contentColumn { display: flex !important; gap: 16px; align-items: flex-start; }
body.nt-ec .ec-cartRow__img { flex: none; width: 96px; aspect-ratio: 1; background: var(--nt-tint); border-radius: 4px; overflow: hidden; }
body.nt-ec .ec-cartRow__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
body.nt-ec .ec-cartRow__summary { min-width: 0; font-size: 14px; line-height: 1.6; }
body.nt-ec .ec-cartRow__name a { font-weight: 500; text-decoration: none; }
body.nt-ec .ec-cartRow__unitPrice { margin-top: 4px; font-size: 14px; font-feature-settings: "tnum" 1; }
body.nt-ec .ec-cartRow__sutbtotalSP, body.nt-ec .ec-cartRow__amountSP { display: none; }
body.nt-ec .ec-cartRow__amountColumn { display: flex !important; align-items: center; gap: 10px; }
body.nt-ec .ec-cartRow__amount { min-width: 28px; text-align: center; font-feature-settings: "tnum" 1; font-weight: 500; }
body.nt-ec .ec-cartRow__amountUpDown { display: flex; gap: 4px; }
body.nt-ec .ec-cartRow__amountUpButton, body.nt-ec .ec-cartRow__amountDownButton, body.nt-ec .ec-cartRow__amountDownButtonDisabled {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; padding: 0; border-radius: 4px; background: var(--nt-tint); border: 0;
}
body.nt-ec .ec-cartRow__amountDownButtonDisabled { opacity: .4; }
body.nt-ec .ec-cartRow__subtotalColumn { text-align: right !important; font-size: 15px; font-weight: 500; font-feature-settings: "tnum" 1; }
body.nt-ec .ec-cartRow__delColumn .ec-icon { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; margin: 0; }
body.nt-ec .ec-cartRow__delColumn img { width: 16px; height: 16px; opacity: .6; }
body.nt-ec .ec-cartRole__actions {
  grid-column: 2; grid-row: span 2; align-self: start; justify-self: stretch; position: sticky; top: 85px;
  width: auto; max-width: none; float: none; box-sizing: border-box;
  display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 20px;
  background: var(--nt-surface); border-radius: var(--nt-radius); text-align: left;
}
body.nt-ec .ec-cartRole__total { display: flex; justify-content: space-between; align-items: baseline; margin: 0; font-size: 14px; text-align: left; }
body.nt-ec .ec-cartRole__totalAmount { font-size: 24px; font-weight: 500; color: var(--nt-text); font-feature-settings: "tnum" 1; }
body.nt-ec .ec-cartRole__actions a { margin: 0; }

/* empty cart message */
body.nt-ec .ec-off3Grid, body.nt-ec .ec-off4Grid, body.nt-ec .ec-off1Grid { margin: 0; width: 100%; max-width: none; padding: 0; }
body.nt-ec .ec-off3Grid__cell, body.nt-ec .ec-off4Grid__cell, body.nt-ec .ec-off1Grid__cell { margin: 0; width: 100%; max-width: 720px; float: none; padding: 0; }

/* ---- order (shopping/index, confirm) ---- */
body.nt-ec .ec-orderRole {
  display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start;
}
body.nt-ec .ec-orderRole__detail, body.nt-ec .ec-orderRole__summary { width: auto; max-width: none; margin: 0; padding: 0; float: none; }
body.nt-ec .ec-orderRole__detail > * + * { margin-top: 40px; }
body.nt-ec .ec-orderRole__summary {
  position: sticky; top: 85px; padding: 20px; background: var(--nt-surface); border-radius: var(--nt-radius);
}
body.nt-ec .ec-orderAccount, body.nt-ec .ec-orderDelivery, body.nt-ec .ec-orderPayment, body.nt-ec .ec-orderConfirm {
  margin: 0; padding: 0; border: 0; background: none; font-size: 14px; line-height: 1.8;
}
body.nt-ec .ec-orderAccount__account, body.nt-ec .ec-orderDelivery__address, body.nt-ec .ec-orderDelivery__item {
  margin: 0; padding: 14px 16px; background: var(--nt-surface); border-radius: var(--nt-radius); border: 0;
}
body.nt-ec .ec-orderDelivery__title { margin: 0 0 12px; font-weight: 500; font-size: 15px; }
body.nt-ec .ec-orderDelivery__actions, body.nt-ec .ec-orderAccount__change, body.nt-ec .ec-orderDelivery__edit, body.nt-ec .ec-orderDelivery__change { margin: 12px 0 0; }
body.nt-ec .ec-borderedList, body.nt-ec .ec-borderedDefs { margin: 0; padding: 0; list-style: none; border: 0; }
body.nt-ec .ec-borderedList > li, body.nt-ec .ec-borderedDefs > dl, body.nt-ec .ec-borderedDefs > div { padding: 12px 0; border-bottom: 1px solid rgba(31, 33, 36, .14); border-top: 0; }
body.nt-ec .ec-totalBox { margin: 0; padding: 0; background: none; border: 0; }
body.nt-ec .ec-totalBox__spec { display: flex; justify-content: space-between; margin: 0 0 8px; font-size: 14px; }
body.nt-ec .ec-totalBox__spec dt, body.nt-ec .ec-totalBox__spec dd { margin: 0; padding: 0; font-weight: 400; }
body.nt-ec .ec-totalBox__total, body.nt-ec .ec-totalBox__paymentTotal { display: flex; justify-content: space-between; align-items: baseline; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid rgba(31, 33, 36, .14); font-size: 14px; }
body.nt-ec .ec-totalBox__price, body.nt-ec .ec-totalBox__paymentTotal .ec-totalBox__price { font-size: 24px; font-weight: 500; font-feature-settings: "tnum" 1; }
body.nt-ec .ec-totalBox__taxLabel, body.nt-ec .ec-totalBox__taxRate { font-size: 12px; color: var(--nt-muted); }
body.nt-ec .ec-totalBox__btn { margin-top: 16px; }
body.nt-ec .ec-totalBox__btn button, body.nt-ec .ec-totalBox__btn a { margin-bottom: 8px; }
body.nt-ec .ec-imageGrid { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: start; margin: 0 0 12px; padding: 12px 0; border-bottom: 1px solid rgba(31, 33, 36, .14); }
body.nt-ec .ec-imageGrid__img { margin: 0; width: 56px; background: var(--nt-tint); border-radius: 4px; overflow: hidden; }
body.nt-ec .ec-imageGrid__img img { width: 100%; height: 56px; object-fit: contain; display: block; }
body.nt-ec .ec-imageGrid__content { margin: 0; padding: 0; font-size: 13px; line-height: 1.5; }

/* ---- guest / login / register-like blocks ---- */
body.nt-ec .ec-login, body.nt-ec .ec-guest {
  margin: 0; padding: 24px; background: var(--nt-surface); border-radius: var(--nt-radius); border: 0;
}
body.nt-ec .ec-login__actions, body.nt-ec .ec-guest__actions { margin-top: 16px; }
body.nt-ec .ec-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin: 0; }
body.nt-ec .ec-grid2__cell { width: auto; float: none; padding: 0; }
body.nt-ec .ec-registerRole__actions, body.nt-ec .ec-RegisterRole__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
body.nt-ec .ec-registerRole__actions > *, body.nt-ec .ec-RegisterRole__actions > * { width: auto; min-width: 200px; flex: 1 1 200px; max-width: 320px; }
body.nt-ec .ec-addressList__item { margin: 0 0 8px; padding: 16px; background: var(--nt-surface); border-radius: var(--nt-radius); border: 0; }
body.nt-ec .ec-addressRole__actions { margin-top: 20px; }

/* ---- complete ---- */
body.nt-ec .ec-cartCompleteRole { padding-top: 80px; padding-bottom: 96px; max-width: 720px; text-align: left; }
body.nt-ec .ec-cartCompleteRole .ec-reportHeading { margin-bottom: 0; }
body.nt-ec .ec-cartCompleteRole .ec-off4Grid__cell { max-width: none; margin: 24px 0 0; }
body.nt-ec .ec-cartCompleteRole .ec-blockBtn--cancel, body.nt-ec .ec-cartCompleteRole .ec-blockBtn--action { width: auto; min-width: 240px; }

/* ---- responsive ---- */
@media (max-width: 1000px) {
  body.nt-ec form#form_cart, body.nt-ec .ec-orderRole { grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
  body.nt-ec .ec-cartRole__actions { grid-column: 1; grid-row: auto; position: static; }
  body.nt-ec .ec-orderRole__summary { position: static; }
}
@media (max-width: 760px) {
  body.nt-ec .ec-role, body.nt-ec .ec-cartRole, body.nt-ec .ec-orderRole, body.nt-ec .ec-registerRole,
  body.nt-ec .ec-RegisterRole, body.nt-ec .ec-cartCompleteRole { padding-left: 16px; padding-right: 16px; }
  body.nt-ec .ec-pageHeader { padding-top: 32px; }
  body.nt-ec .ec-pageHeader h1 { font-size: 24px; margin-bottom: 20px; }
  body.nt-ec .ec-reportHeading h2 { font-size: 26px; }
  body.nt-ec .ec-cartHeader { display: none; }
  body.nt-ec .ec-cartRow { grid-template-columns: minmax(0, 1fr) auto; row-gap: 12px; }
  body.nt-ec .ec-cartRow__delColumn { order: 3; grid-column: 2; justify-self: end; }
  body.nt-ec .ec-cartRow__contentColumn { grid-column: 1 / -1; order: 1; }
  body.nt-ec .ec-cartRow__amountColumn { order: 2; grid-column: 1; }
  body.nt-ec .ec-cartRow__subtotalColumn { order: 2; grid-column: 2; }
  body.nt-ec .ec-cartRow__img { width: 72px; }
  body.nt-ec .ec-grid2 { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  body.nt-ec .ec-halfInput { flex-direction: column; gap: 0; }
  /* cart: total + checkout pinned to the bottom of the screen */
  body.nt-ec .ec-cartRole__actions {
    position: sticky; bottom: 0; z-index: 20; margin: 0 -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: var(--nt-bg); border-top: 1px solid var(--nt-line); border-radius: 0; gap: 8px;
  }
  body.nt-ec .ec-cartRole__actions .ec-blockBtn--cancel { display: none; }
}

/* =====================================================================
 * Group 3: login / entry (registration) / forgot-password
 * ===================================================================== */
body.nt-ec .ec-registerCompleteRole,
body.nt-ec .ec-forgetCompleteRole,
body.nt-ec .ec-forgotRole {
  max-width: calc(var(--nt-max) + var(--nt-gutter) * 2);
  margin-left: auto; margin-right: auto; padding-left: var(--nt-gutter); padding-right: var(--nt-gutter);
  box-sizing: border-box; width: 100%;
}
body.nt-ec .ec-registerCompleteRole, body.nt-ec .ec-forgetCompleteRole { max-width: 720px; margin-left: 0; text-align: left; padding-top: 24px; padding-bottom: 72px; }
body.nt-ec .ec-registerCompleteRole .ec-off3Grid, body.nt-ec .ec-forgetCompleteRole .ec-off3Grid { text-align: left; }
body.nt-ec .ec-registerCompleteRole .ec-blockBtn--cancel, body.nt-ec .ec-forgetCompleteRole .ec-blockBtn--cancel { width: auto; min-width: 240px; margin-top: 24px; }
body.nt-ec .ec-text-ac { text-align: left; }
body.nt-ec .ec-pageHeader .nt-kicker { margin-bottom: 12px; }

/* auth: two columns (form | register card) */
.nt-authgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: start; padding-bottom: 80px; }
.nt-authgrid__main { max-width: 440px; }
.nt-authgrid__side { padding: clamp(24px, 4vw, 40px); background: var(--nt-surface); border-radius: 14px; }
.nt-authgrid__title { margin: 0 0 12px; font-size: 24px; line-height: 1.3; font-weight: 500; }
.nt-authgrid__side p { margin: 0 0 20px; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
.nt-checks { margin: 0 0 24px; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 14px; }
.nt-checks li { display: flex; gap: 10px; }
.nt-checks li::before { content: "✓"; color: var(--nt-accent); }
.nt-notice { margin: 8px 0 0; padding: 10px 14px; font-size: 13px; background: var(--nt-accent-tint); color: #6b3008; border-radius: var(--nt-radius); }

body.nt-ec .ec-login { margin: 0; padding: 0; background: none; border: 0; text-align: left; }
body.nt-ec .ec-login__icon { display: none; }
body.nt-ec .ec-login__input { margin: 0; padding: 0; }
body.nt-ec .ec-login__input .ec-input { margin: 0; }
body.nt-ec .ec-login__input .ec-input input { margin-bottom: 12px; }
body.nt-ec .ec-checkbox { margin: 4px 0 12px; font-size: 13px; }
body.nt-ec .ec-checkbox label { display: flex; gap: 8px; align-items: center; margin: 0; font-weight: 400; }
body.nt-ec .ec-login__actions { margin: 16px 0 0; padding: 0; }
body.nt-ec .ec-login__actions .ec-blockBtn--cancel { background: var(--nt-accent); border-color: var(--nt-accent); color: var(--nt-text); }
body.nt-ec .ec-login__links { margin-top: 16px; font-size: 13px; }
body.nt-ec .ec-link { color: var(--nt-accent-hover); text-decoration: none; }
body.nt-ec .ec-link:hover { text-decoration: underline; }
body.nt-ec .ec-login__link { margin: 0 0 8px; font-size: 13px; }

/* label / field rows (entry, confirm, forgot, reset): label left, field right */
body.nt-ec .ec-borderedDefs dl {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 8px 24px;
  margin: 0; padding: 16px 0; border-bottom: 1px solid rgba(31, 33, 36, .14);
}
body.nt-ec .ec-borderedDefs dt, body.nt-ec .ec-borderedDefs dd { margin: 0; padding: 0; width: auto; float: none; border: 0; }
body.nt-ec .ec-borderedDefs dt { font-size: 13px; font-weight: 500; line-height: 1.6; padding-top: 10px; }
body.nt-ec .ec-borderedDefs dt .ec-required { display: inline; margin-left: 6px; font-size: 11px; }
body.nt-ec .ec-borderedDefs dd { min-width: 0; }
body.nt-ec .ec-registerRole .ec-off1Grid__cell, body.nt-ec .ec-forgotRole .ec-off1Grid__cell { max-width: 860px; }
body.nt-ec .ec-forgotRole__intro { margin: 0 0 20px; }
body.nt-ec .ec-para-normal { margin: 0 0 8px; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .ec-registerRole__actions, body.nt-ec .ec-RegisterRole__actions { margin-top: 28px; }
body.nt-ec .ec-forgotRole .ec-off4Grid { margin-top: 24px; }
body.nt-ec .ec-forgotRole .ec-off4Grid__cell { max-width: 320px; }

@media (max-width: 860px) {
  .nt-authgrid { grid-template-columns: minmax(0, 1fr); }
  .nt-authgrid__main { max-width: none; }
}
@media (max-width: 760px) {
  body.nt-ec .ec-borderedDefs dl { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 14px 0; }
  body.nt-ec .ec-borderedDefs dt { padding-top: 0; }
  body.nt-ec .ec-registerCompleteRole, body.nt-ec .ec-forgetCompleteRole, body.nt-ec .ec-forgotRole { padding-left: 16px; padding-right: 16px; }
}

/* =====================================================================
 * Group 4: my page (history / favorite / change / delivery / withdraw)
 * Layout: <main class="ec-layoutRole__main"> > <div class="ec-layoutRole__main"> holds
 *   .ec-mypageRole (header + navi) and the content role(s). The first role is dissolved
 *   (display: contents) so the page header spans the top, the navi sits left, content right.
 * ===================================================================== */
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main {
  max-width: calc(var(--nt-max) + var(--nt-gutter) * 2); width: 100%; margin: 0 auto; box-sizing: border-box;
  padding: 40px var(--nt-gutter) 80px;
}
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 40px; align-items: start;
}
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main > .ec-mypageRole { max-width: none; width: auto; margin: 0; padding: 0; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child { display: contents; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole > .ec-pageHeader { grid-column: 1 / -1; padding-top: 0; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-navlistRole { grid-column: 1; grid-row: 2 / span 30; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-welcomeMsg { grid-column: 2; grid-row: 2; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > :not(.ec-mypageRole:first-child) { grid-column: 2; min-width: 0; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main > .ec-mypageRole:not(:first-child) .ec-off1Grid__cell,
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main > .ec-mypageRole:not(:first-child) .ec-off3Grid__cell,
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main > .ec-mypageRole:not(:first-child) .ec-off4Grid__cell { max-width: 720px; }
body.nt-ec .ec-layoutRole__main .ec-role.ec-orderRole { padding-left: 0; padding-right: 0; max-width: none; }

body.nt-ec .ec-mypageRole .ec-pageHeader h1 { margin-bottom: 28px; }
body.nt-ec .ec-welcomeMsg { margin: 0 0 20px; padding: 0; font-size: 13px; color: var(--nt-muted); text-align: left; }
body.nt-ec .ec-welcomeMsg p { margin: 0; }

/* left navigation */
body.nt-ec .ec-navlistRole { margin: 0; padding: 0; border: 0; background: none; }
body.nt-ec .ec-navlistRole__navlist {
  display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; border: 0; background: none; font-size: 14px;
}
body.nt-ec .ec-navlistRole__item { width: auto; margin: 0; padding: 0; border: 0; background: none; float: none; text-align: left; }
body.nt-ec .ec-navlistRole__item a {
  display: block; padding: 10px 12px; border-radius: 4px; background: none; border: 0;
  color: var(--nt-text); text-decoration: none; font-weight: 400; text-align: left;
}
body.nt-ec .ec-navlistRole__item a:hover { background: var(--nt-surface); color: var(--nt-text); }
body.nt-ec .ec-navlistRole__item.active a { background: var(--nt-accent-tint); color: #9d470b; font-weight: 500; }
body.nt-ec .ec-navlistRole__item--muted { margin-top: 12px; }
body.nt-ec .ec-navlistRole__item--muted a { color: var(--nt-muted); font-size: 13px; }

/* order history cards */
body.nt-ec .ec-historyRole { margin: 0 0 12px; padding: 16px 20px; background: var(--nt-surface); border: 0; border-radius: var(--nt-radius); }
body.nt-ec .ec-historyRole__contents { margin: 0; padding: 0; }
body.nt-ec .ec-historyListHeader { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 0; padding: 0 0 12px; border-bottom: 1px solid var(--nt-line); }
body.nt-ec .ec-historyListHeader__date { margin: 0; font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .ec-definitions { display: flex; gap: 8px; margin: 0; font-size: 13px; }
body.nt-ec .ec-definitions dt { margin: 0; padding: 0; width: auto; float: none; color: var(--nt-muted); font-weight: 400; }
body.nt-ec .ec-definitions dd { margin: 0; padding: 0; font-feature-settings: "tnum" 1; }
body.nt-ec .ec-historyListHeader__action { margin: 0 0 0 auto; }
body.nt-ec .ec-historyRole__detail { padding-top: 4px; }
body.nt-ec .ec-historyRole__detailTitle { margin: 0 0 4px; font-size: 14px; font-weight: 500; }
body.nt-ec .ec-historyRole__detailPrice { margin: 4px 0 0; font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .ec-historyRole .ec-imageGrid { border-bottom: 0; padding: 8px 0; margin: 0; }

/* order detail inside my page: single column (summary under the details) */
body.nt-ec .ec-layoutRole__main .ec-orderRole { grid-template-columns: minmax(0, 1fr); }
body.nt-ec .ec-layoutRole__main .ec-orderRole__summary { position: static; }

/* favorites */
body.nt-ec .ec-favoriteRole { margin: 0; padding: 0; border: 0; }
body.nt-ec .ec-favoriteRole__header { margin: 0 0 20px; padding: 0; font-size: 14px; color: var(--nt-muted); }
body.nt-ec .ec-favoriteRole__itemList { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
body.nt-ec .ec-favoriteRole__item {
  position: relative; display: flex; flex-direction: column; gap: 6px; width: auto; margin: 0; padding: 0 0 16px;
  background: var(--nt-surface); border: 0; border-radius: var(--nt-radius); overflow: hidden;
}
body.nt-ec .ec-favoriteRole__itemThumb { display: block; margin: 0; }
body.nt-ec .ec-favoriteRole__item-image { margin: 0; aspect-ratio: 4 / 3; background: var(--nt-tint); overflow: hidden; }
body.nt-ec .ec-favoriteRole__item-image img { width: 100%; height: 100%; object-fit: contain; display: block; }
body.nt-ec .ec-favoriteRole__itemTitle, body.nt-ec .ec-favoriteRole__itemPrice { margin: 0; padding: 0 16px; font-size: 14px; }
body.nt-ec .ec-favoriteRole__itemTitle { font-weight: 500; line-height: 1.5; }
body.nt-ec .ec-favoriteRole__itemPrice { font-feature-settings: "tnum" 1; }
body.nt-ec .ec-favoriteRole__item .ec-icon, body.nt-ec .ec-favoriteRole__itemDelete { position: absolute; top: 10px; right: 10px; }

/* delivery address list */
body.nt-ec .ec-addressList { margin: 0; padding: 0; list-style: none; border: 0; }
body.nt-ec .ec-addressList__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; }
body.nt-ec .ec-addressList__address { margin: 0; padding: 0; font-size: 14px; line-height: 1.7; color: var(--nt-muted); }
body.nt-ec .ec-addressList__remove, body.nt-ec .ec-addressList__action { margin: 0; padding: 0; border: 0; background: none; text-align: right; font-size: 13px; }
body.nt-ec .ec-addressRole__actions .ec-blockBtn--action, body.nt-ec .ec-addressRole__actions a { width: auto; min-width: 240px; }

/* withdraw */
body.nt-ec .ec-mypageRole .ec-off3Grid p, body.nt-ec .ec-mypageRole .ec-off3Grid__cell p { font-size: 15px; line-height: 1.9; }

/* mypage form rows: slightly narrower label column next to the left navi */
body.nt-ec .ec-layoutRole__main .ec-mypageRole .ec-borderedDefs dl { grid-template-columns: 180px minmax(0, 1fr); }

@media (max-width: 1000px) {
  body.nt-ec .ec-favoriteRole__itemList { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-navlistRole { grid-column: 1; grid-row: auto; }
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-welcomeMsg,
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > :not(.ec-mypageRole:first-child) { grid-column: 1; }
  /* navi becomes a horizontally scrollable tab strip */
  body.nt-ec .ec-navlistRole__navlist { flex-direction: row; overflow-x: auto; gap: 4px; margin-bottom: 20px; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
  body.nt-ec .ec-navlistRole__item { flex: none; }
  body.nt-ec .ec-navlistRole__item--muted { margin-top: 0; }
  body.nt-ec .ec-navlistRole__item a { padding: 10px 14px; white-space: nowrap; }
}
@media (max-width: 760px) {
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main { padding: 32px 16px 56px; }
  body.nt-ec .ec-favoriteRole__itemList { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .ec-layoutRole__main .ec-mypageRole .ec-borderedDefs dl { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .ec-addressList__item { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .ec-historyListHeader__action { margin-left: 0; }
}

/* EC-CUBE marks the primary submit of the my-page edit forms with the "cancel" class: render it as the primary button */
body.nt-ec .ec-RegisterRole__actions button[type=submit].ec-blockBtn--cancel,
body.nt-ec .ec-registerRole__actions button[type=submit].ec-blockBtn--cancel[name="mode"]:not([value="back"]) {
  background: var(--nt-accent); border-color: var(--nt-accent); color: var(--nt-text);
}
body.nt-ec .ec-RegisterRole__actions button[type=submit].ec-blockBtn--cancel:hover { background: var(--nt-accent-hover); border-color: var(--nt-accent-hover); color: #fff; }

/* =====================================================================
 * Group 5: information pages (guide / tradelaw / privacy / agreement / about)
 * The core Help templates are wrapped (by a generator, text untouched):
 *   <div class="ec-role nt-info"> [nav] <div class="nt-info__body"> ...core content... </div></div>
 * ===================================================================== */
body.nt-ec .ec-role.nt-info {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 40px; align-items: start;
  padding-top: 56px; padding-bottom: 96px;
}
body.nt-ec .nt-info__nav { display: flex; flex-direction: column; gap: 2px; font-size: 14px; position: sticky; top: 85px; }
body.nt-ec .nt-info__nav a { display: block; padding: 10px 12px; border-radius: 4px; color: var(--nt-text); text-decoration: none; }
body.nt-ec .nt-info__nav a:hover { background: var(--nt-surface); color: var(--nt-text); }
body.nt-ec .nt-info__nav a.is-current { background: var(--nt-accent-tint); color: #9d470b; font-weight: 500; }
body.nt-ec .nt-info__body { max-width: 760px; min-width: 0; }
body.nt-ec .nt-info__body .ec-pageHeader { padding-top: 0; }
body.nt-ec .nt-info__body .ec-off1Grid, body.nt-ec .nt-info__body .ec-off1Grid__cell { max-width: none; padding: 0; margin: 0; }
body.nt-ec .nt-info__body .ec-off1Grid { margin-bottom: 28px; }
body.nt-ec .nt-info__body p, body.nt-ec .nt-info__body .ec-off1Grid__cell {
  font-size: 14.5px; line-height: 1.95; color: rgba(31, 33, 36, .88);
}
body.nt-ec .nt-info__body p { margin: 0 0 12px; }
body.nt-ec .ec-heading-bold { margin: 0 0 8px; font-size: 17px; font-weight: 500; line-height: 1.5; color: var(--nt-text); }
body.nt-ec .nt-info__body .ec-borderedDefs dl { grid-template-columns: minmax(120px, 180px) minmax(0, 1fr); gap: 0 24px; padding: 14px 0; border-bottom: 0; border-top: 1px solid rgba(31, 33, 36, .14); }
body.nt-ec .nt-info__body .ec-borderedDefs dt { padding-top: 0; }
body.nt-ec .nt-info__body .ec-borderedDefs dt .ec-label { font-weight: 400; color: var(--nt-muted); }
body.nt-ec .nt-info__body .ec-borderedDefs dd { font-size: 14px; line-height: 1.8; }

@media (max-width: 860px) {
  body.nt-ec .ec-role.nt-info { grid-template-columns: minmax(0, 1fr); row-gap: 24px; padding-top: 32px; padding-bottom: 56px; }
  body.nt-ec .nt-info__nav { position: static; flex-direction: row; overflow-x: auto; gap: 4px; padding-bottom: 4px; }
  body.nt-ec .nt-info__nav a { white-space: nowrap; flex: none; }
}
@media (max-width: 760px) {
  body.nt-ec .nt-info__body .ec-borderedDefs dl { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* =====================================================================
 * Diff #1 (§2–§4): my page forms (change / delivery edit) and delivery cards
 * ===================================================================== */
/* shared form parts: label above the field, 2-column grid */
body.nt-ec .nt-form { max-width: 640px; }
body.nt-ec .nt-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body.nt-ec .nt-field { min-width: 0; }
body.nt-ec .nt-field--full { grid-column: 1 / -1; }
body.nt-ec .nt-field--spacer { display: block; }
body.nt-ec .nt-field > label, body.nt-ec .nt-field > .nt-label {
  display: block; margin: 0 0 6px; font-size: 13px; font-weight: 400; color: var(--nt-text);
}
body.nt-ec .nt-req { color: var(--nt-accent); }
body.nt-ec .nt-field input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
body.nt-ec .nt-field select, body.nt-ec .nt-field textarea {
  width: 100%; min-height: 44px; padding: 0 12px; box-sizing: border-box; margin: 0;
  font: inherit; font-size: 15px; color: var(--nt-text); background: var(--nt-bg);
  border: 1px solid var(--nt-divider); border-radius: var(--nt-radius);
}
body.nt-ec .nt-field textarea { min-height: 120px; padding: 10px 12px; }
body.nt-ec .nt-field input:focus, body.nt-ec .nt-field select:focus, body.nt-ec .nt-field textarea:focus {
  border-color: var(--nt-accent); outline: none; box-shadow: 0 0 0 2px rgba(232, 113, 26, .25);
}
body.nt-ec .nt-field.has-error input, body.nt-ec .nt-field.has-error select, body.nt-ec .nt-field.has-error textarea { border-color: var(--nt-accent-strong); }
body.nt-ec .nt-field .ec-errorMessage, body.nt-ec .nt-field .invalid-feedback, body.nt-ec .nt-field .ec-errorMessage--error {
  display: block; margin: 4px 0 0; font-size: 12px; line-height: 1.5; color: var(--nt-accent-strong);
}
body.nt-ec .nt-zip { display: flex; align-items: center; gap: 8px; max-width: 360px; }
body.nt-ec .nt-zip__mark { font-size: 14px; color: var(--nt-muted); }
body.nt-ec .nt-zip input { flex: 1 1 auto; min-width: 0; }
body.nt-ec .nt-zip .nt-btn-ghost { flex: none; white-space: nowrap; }
body.nt-ec .nt-birth { display: flex; align-items: center; gap: 8px; }
body.nt-ec .nt-birth span { color: var(--nt-muted); }
body.nt-ec .nt-birth select { flex: 1 1 0; min-width: 0; }
body.nt-ec .nt-choices { display: flex; flex-wrap: wrap; gap: 8px 20px; min-height: 44px; align-items: center; font-size: 14px; }
body.nt-ec .nt-choices > div, body.nt-ec .nt-choices .ec-radio, body.nt-ec .nt-choices .ec-checkbox { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; }
body.nt-ec .nt-choices label { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0; background: none; box-shadow: none; font-weight: 400; cursor: pointer; min-height: 44px; }
body.nt-ec .nt-choices input[type=checkbox], body.nt-ec .nt-choices input[type=radio] { width: 18px; height: 18px; margin: 0; accent-color: var(--nt-accent); }
body.nt-ec .nt-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
body.nt-ec .nt-btn-cta--form { min-width: 0; padding: 0 40px; min-height: 48px; font-size: 15px; }
body.nt-ec .nt-btn-ghost--form { min-height: 48px; }
body.nt-ec .nt-backlink { display: inline-block; margin: 0 0 20px; font-size: 13px; color: var(--nt-muted); text-decoration: none; }
body.nt-ec .nt-backlink:hover { color: var(--nt-accent-hover); }
/* the form sits in the content column next to the navi */
body.nt-ec .ec-mypageRole .nt-form { max-width: 640px; }

/* delivery: cards */
body.nt-ec .nt-deliv { display: flex; flex-direction: column; gap: 32px; }
body.nt-ec .nt-deliv__h { margin: 0 0 10px; font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--nt-muted); }
body.nt-ec .nt-deliv__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
body.nt-ec .nt-deliv__head .nt-deliv__h { margin: 0; }
body.nt-ec .nt-deliv__count { font-size: 12px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-deliv__note { margin: 8px 0 0; font-size: 12px; line-height: 1.7; color: var(--nt-muted); }
body.nt-ec .nt-addr { box-sizing: border-box; background: var(--nt-bg); border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); }
body.nt-ec .nt-addr--main { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16.8px; background: var(--nt-surface); box-shadow: none; }
body.nt-ec .nt-addr__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--nt-radius); background: var(--nt-dark); color: var(--nt-accent-light); }
body.nt-ec .nt-addr__name { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 15px; font-weight: 500; }
body.nt-ec .nt-addr__kana { font-size: 12px; font-weight: 400; color: var(--nt-muted); }
body.nt-ec .nt-addr__line { margin-top: 4px; font-size: 14px; line-height: 1.7; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-addr__tel { font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-addr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
body.nt-ec .nt-addr--card { display: flex; flex-direction: column; gap: 12px; padding: 16.8px; }
body.nt-ec .nt-addr__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; min-height: 0; }
body.nt-ec .nt-addr__pencil {
  display: grid; place-items: center; flex: none; width: 36px; height: 36px; margin: -8px -8px 0 0; border-radius: 4px; color: var(--nt-muted); text-decoration: none;
}
body.nt-ec .nt-addr__pencil:hover { background: var(--nt-surface); color: var(--nt-text); }
body.nt-ec .nt-addr--card .nt-addr__body { flex: 1; margin-top: -24px; }
body.nt-ec .nt-addr__foot { padding-top: 12px; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-addr__remove { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--nt-muted); text-decoration: none; }
body.nt-ec .nt-addr__remove:hover { color: var(--nt-text); }
body.nt-ec .nt-addr-add {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 180px; padding: 16px; text-align: center;
  font-size: 14px; color: var(--nt-muted); text-decoration: none; border: 1px dashed #b2b6ca; border-radius: var(--nt-radius);
}
body.nt-ec a.nt-addr-add:hover { border-color: var(--nt-accent); color: #9d470b; background: var(--nt-accent-tint); }
body.nt-ec .nt-addr-add.is-disabled { opacity: .6; cursor: not-allowed; }

/* my page navi: current page = dark ground + accent text; "withdraw" small at the bottom */
body.nt-ec .ec-navlistRole__item.active a { background: var(--nt-dark); color: var(--nt-accent-light); font-weight: 500; }

@media (max-width: 600px) {
  body.nt-ec .nt-fgrid { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-field--spacer { display: none; }
  body.nt-ec .nt-addr--main { grid-template-columns: auto minmax(0, 1fr); }
  body.nt-ec .nt-addr--main .nt-addr__edit { grid-column: 1 / -1; width: 100%; min-height: 44px; border: 1px solid var(--nt-divider); }
  body.nt-ec .nt-addr-grid { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-form__actions .nt-btn-cta, body.nt-ec .nt-form__actions .nt-btn-ghost { flex: 1 1 100%; justify-content: center; }
}

/* =====================================================================
 * Diff #1 (§5): contact (EC-CUBE standard /contact)
 * ===================================================================== */
body.nt-ec .nt-contact { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 5vw, 80px); align-items: start; padding-top: 56px; padding-bottom: 96px; }
body.nt-ec .nt-contact__h1 { margin: 0 0 12px; font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em; }
body.nt-ec .nt-contact__lead { margin: 0 0 28px; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-contact__consent { margin: 16px 0 0; font-size: 13px; color: var(--nt-muted); }
body.nt-ec .nt-contact__consent a { color: var(--nt-accent-hover); }
body.nt-ec .nt-field__hint { margin: 6px 0 0; font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
body.nt-ec .nt-formerror { margin: 0 0 16px; padding: 12px 16px; font-size: 13px; background: var(--nt-accent-tint); color: #6b3008; border-radius: var(--nt-radius); }
body.nt-ec .nt-formerror p { margin: 0; }
body.nt-ec .nt-contact__side { display: flex; flex-direction: column; gap: 16px; }
body.nt-ec .nt-contact__tel { padding: 28px; background: var(--nt-dark); color: var(--nt-on-dark); border-radius: 14px; }
body.nt-ec .nt-contact__telLabel { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--nt-accent-light); }
body.nt-ec .nt-contact__telNo { display: block; margin: 8px 0 4px; font-size: 28px; font-weight: 500; color: var(--nt-on-dark); text-decoration: none; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-contact__telNote { font-size: 13px; line-height: 1.8; color: var(--nt-on-dark-muted); }
body.nt-ec .nt-panel { padding: 16.8px; background: var(--nt-surface); border-radius: var(--nt-radius); }
body.nt-ec .nt-panel__kicker { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--nt-accent); }
body.nt-ec .nt-panel p { margin: 8px 0 0; font-size: 13px; line-height: 1.8; }
body.nt-ec .nt-muted { color: var(--nt-muted); }

/* confirm */
body.nt-ec .nt-contact-confirm { max-width: calc(800px + var(--nt-gutter) * 2); margin-left: 0; padding-top: 56px; padding-bottom: 96px; }
body.nt-ec .nt-confirm { display: grid; grid-template-columns: minmax(120px, 160px) minmax(0, 1fr); margin: 0; font-size: 14px; line-height: 1.8; }
body.nt-ec .nt-confirm dt, body.nt-ec .nt-confirm dd { margin: 0; padding: 14px 0; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-confirm dt { color: var(--nt-muted); }
body.nt-ec .nt-confirm dd { overflow-wrap: anywhere; }
body.nt-ec .nt-form__actions--confirm { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--nt-divider); }

/* complete (shared look: check icon, title, text, ghost buttons) */
body.nt-ec .nt-complete { max-width: calc(720px + var(--nt-gutter) * 2); margin-left: 0; padding-top: 80px; padding-bottom: 96px; }
body.nt-ec .nt-complete__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 24px; border-radius: 50%; background: var(--nt-accent-tint); color: var(--nt-accent); }
body.nt-ec .nt-complete__title { margin: 0; font-size: 32px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em; }
body.nt-ec .nt-complete__text { margin: 20px 0 0; font-size: 15px; line-height: 1.9; }
body.nt-ec .nt-complete__hint { margin: 16px 0 0; font-size: 13px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-complete__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
body.nt-ec .nt-complete__actions .nt-btn-ghost { border: 1px solid var(--nt-divider); padding: 0 32px; }

/* order history: contact link next to the detail link */
body.nt-ec .ec-historyListHeader__action { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 860px) {
  body.nt-ec .nt-contact { grid-template-columns: minmax(0, 1fr); padding-top: 32px; padding-bottom: 56px; }
}
@media (max-width: 600px) {
  body.nt-ec .nt-contact__h1 { font-size: 24px; }
  body.nt-ec .nt-confirm { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-confirm dt { padding-bottom: 0; border-top: 1px solid var(--nt-divider); }
  body.nt-ec .nt-confirm dd { padding-top: 4px; border-top: 0; }
  body.nt-ec .nt-complete { padding-top: 48px; }
  body.nt-ec .nt-complete__title { font-size: 26px; }
}

/* ===== 注文履歴詳細：下部ボタン（戻る／この注文について問い合わせる） ===== */
body.nt-ec .ec-orderRole__detail:has(> .ec-inlineBtn) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
body.nt-ec .ec-orderRole__detail > .ec-inlineBtn + .ec-inlineBtn { margin-top: 0; }
body.nt-ec .ec-layoutRole__main .ec-role.ec-orderRole:has(> .ec-orderRole__detail > .ec-inlineBtn) { padding-left: var(--nt-gutter); padding-right: var(--nt-gutter); }
@media (max-width: 760px) {
  body.nt-ec .ec-layoutRole__main .ec-role.ec-orderRole:has(> .ec-orderRole__detail > .ec-inlineBtn) { padding-left: 16px; padding-right: 16px; }
}

/* =====================================================================
 * Diff #2 (§1): order detail (Mypage/history.twig) + shared progress (Mypage/_order_progress.twig)
 * ===================================================================== */
body.nt-ec .nt-od { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
body.nt-ec .nt-od__back { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; font-size: 13px; color: var(--nt-muted); }
body.nt-ec .nt-od__head { padding: 0; overflow: hidden; border: 1px solid var(--nt-divider); border-radius: 14px; background: var(--nt-bg); }
body.nt-ec .nt-od__headTop { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; background: var(--nt-surface); border-bottom: 1px solid var(--nt-divider); }
body.nt-ec .nt-od__label { font-size: 12px; letter-spacing: .04em; color: var(--nt-muted); }
body.nt-ec .nt-od__no { margin: 2px 0 0; font-size: 22px; line-height: 1.3; font-weight: 500; font-feature-settings: "tnum" 1; overflow-wrap: anywhere; }
body.nt-ec .nt-od__tag { display: inline-block; padding: 6px 12px; font-size: 13px; line-height: 1.2; border-radius: 999px; white-space: nowrap; }
body.nt-ec .nt-od__tag--accent { background: #6b3008; color: var(--nt-accent-tint); }
body.nt-ec .nt-od__tag--neutral { background: #3f424d; color: #f3f5fe; }
body.nt-ec .nt-od__tag--outline { background: transparent; color: var(--nt-text); border: 1px solid var(--nt-divider); }
body.nt-ec .nt-od__meta { margin: 0; padding: 14px 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px 24px; font-size: 13px; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-od__meta dt { font-size: 11px; letter-spacing: .04em; color: var(--nt-muted); }
body.nt-ec .nt-od__meta dd { margin: 2px 0 0; }
body.nt-ec .nt-od__meta .nt-od__pt { color: var(--nt-accent-strong); font-weight: 500; }

/* progress (shared with /mypage/ order cards) */
body.nt-ec .nt-progress { list-style: none; margin: 0; padding: 4px 20px 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.nt-ec .nt-progress__step { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
body.nt-ec .nt-progress__track { display: flex; align-items: center; }
body.nt-ec .nt-progress__dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--nt-divider); }
body.nt-ec .nt-progress__bar { flex: 1; height: 2px; margin: 0 4px; background: var(--nt-divider); }
body.nt-ec .nt-progress__label { font-size: 11px; color: var(--nt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.nt-ec .nt-progress__step.is-done .nt-progress__dot, body.nt-ec .nt-progress__step.is-done .nt-progress__bar { background: var(--nt-accent); }
body.nt-ec .nt-progress__step.is-done .nt-progress__label { color: var(--nt-text); }
body.nt-ec .nt-progress__step.is-current .nt-progress__dot { background: var(--nt-dark); box-shadow: 0 0 0 4px var(--nt-accent-tint); }
body.nt-ec .nt-progress__step.is-current .nt-progress__label { color: var(--nt-text); font-weight: 500; }

/* items */
body.nt-ec .nt-od__h { margin: 0 0 12px; font-size: 15px; font-weight: 500; }
body.nt-ec .nt-od__h span { margin-left: 4px; font-size: 13px; font-weight: 400; color: var(--nt-muted); }
body.nt-ec .nt-od__items { display: flex; flex-direction: column; }
body.nt-ec .nt-od__row { display: grid; grid-template-columns: 144px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 16px 0; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-od__thumb { display: block; width: 144px; aspect-ratio: 1; overflow: hidden; border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); background: var(--nt-tint); }
body.nt-ec .nt-od__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.nt-ec .nt-od__info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
body.nt-ec .nt-od__code, body.nt-ec .nt-od__fit { font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-od__name { font-size: 15px; font-weight: 500; line-height: 1.5; color: var(--nt-text); }
body.nt-ec .nt-od__unit { margin-top: 4px; font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-od__again { margin-top: 6px; }
body.nt-ec .nt-od__small { min-height: 32px; padding: 0 12px; font-size: 12px; }
body.nt-ec .nt-od__sub { align-self: start; font-size: 16px; font-weight: 500; font-feature-settings: "tnum" 1; white-space: nowrap; }
body.nt-ec .nt-od__note { margin: 8px 0 0; font-size: 12px; color: var(--nt-accent-strong); }

/* address / payment cards */
body.nt-ec .nt-od__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
body.nt-ec .nt-od__ships { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
body.nt-ec .nt-od__card { padding: 16px 20px; border: 1px solid var(--nt-divider); border-radius: 14px; background: var(--nt-bg); min-width: 0; }
body.nt-ec .nt-od__kicker { font-size: 12px; letter-spacing: .04em; color: var(--nt-accent-strong); }
body.nt-ec .nt-od__addr { margin: 8px 0 0; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
body.nt-ec .nt-od__addr span { margin-left: 6px; font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-od__dl { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--nt-divider); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; font-size: 13px; }
body.nt-ec .nt-od__dl dt { color: var(--nt-muted); }
body.nt-ec .nt-od__dl dd { margin: 0; font-feature-settings: "tnum" 1; overflow-wrap: anywhere; }
body.nt-ec .nt-od__dl dd a { color: var(--nt-accent-strong); text-decoration: underline; text-underline-offset: 2px; }
body.nt-ec .nt-od__sum { margin: 8px 0 0; display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; font-size: 14px; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-od__sum dt { color: var(--nt-muted); }
body.nt-ec .nt-od__sum dd { margin: 0; text-align: right; }
body.nt-ec .nt-od__sum .nt-od__total { padding-top: 8px; border-top: 1px solid var(--nt-divider); color: var(--nt-text); font-weight: 500; }
body.nt-ec .nt-od__sum dd.nt-od__total { font-size: 18px; }
body.nt-ec .nt-od__tax { margin-top: 8px; font-size: 12px; color: var(--nt-muted); text-align: right; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-od__pay { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: 8px; font-size: 13px; color: var(--nt-muted); }
body.nt-ec .nt-od__pay strong { font-weight: 500; color: var(--nt-accent-strong); }

body.nt-ec .nt-od__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
body.nt-ec .nt-od__actions > a { min-height: 44px; }
body.nt-ec .nt-od__toList { margin-left: auto; color: var(--nt-muted); }

@media (max-width: 760px) {
  body.nt-ec .nt-od { gap: 24px; }
  body.nt-ec .nt-od__row { grid-template-columns: 96px minmax(0, 1fr); gap: 12px 16px; align-items: start; }
  body.nt-ec .nt-od__thumb { width: 96px; }
  body.nt-ec .nt-od__sub { grid-column: 2; }
  body.nt-ec .nt-od__cols { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-od__toList { margin-left: 0; }
  body.nt-ec .nt-progress { padding: 4px 16px 16px; }
}

/* =====================================================================
 * Diff #2 (§2): my page common welcome band (replaces the two standard <p> lines)
 * ===================================================================== */
body.nt-ec .ec-welcomeMsg.nt-welcome {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px;
  margin: 0 0 28px; padding: 14px 20px; font-size: 14px; color: var(--nt-text);
  background: var(--nt-surface); border-radius: 14px;
}
body.nt-ec .nt-welcome__name strong { font-weight: 500; }
body.nt-ec .nt-welcome__pt { display: inline-flex; align-items: baseline; gap: 6px; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-welcome__pt small { font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-welcome__pt strong { font-size: 18px; font-weight: 700; color: var(--nt-accent-strong); }
body.nt-ec .nt-welcome__pt a { margin-left: 8px; font-size: 12px; color: var(--nt-muted); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 600px) {
  body.nt-ec .ec-welcomeMsg.nt-welcome { padding: 12px 16px; }
}

/* =====================================================================
 * Diff #2 (§4): order history list (Mypage/index.twig) + pager
 * ===================================================================== */
body.nt-ec .nt-ol { min-width: 0; }
body.nt-ec .nt-ol__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
body.nt-ec .nt-ol__title { margin: 0; font-size: 18px; font-weight: 500; }
body.nt-ec .nt-ol__title span { margin-left: 6px; font-size: 13px; font-weight: 400; color: var(--nt-muted); }
body.nt-ec .nt-ol__chips { display: flex; flex-wrap: wrap; gap: 6px; }
body.nt-ec .nt-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; font-size: 12px; border: 1px solid var(--nt-divider); border-radius: 999px; color: var(--nt-text); background: var(--nt-bg); }
body.nt-ec .nt-chip.is-active { background: var(--nt-dark); border-color: var(--nt-dark); color: var(--nt-on-dark); }
body.nt-ec .nt-ol__list { display: flex; flex-direction: column; gap: 16px; }
body.nt-ec .nt-ol__card { padding: 0; overflow: hidden; border: 1px solid var(--nt-divider); border-radius: 14px; background: var(--nt-bg); }
body.nt-ec .nt-ol__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 20px; background: var(--nt-surface); border-bottom: 1px solid var(--nt-divider); font-size: 13px; }
body.nt-ec .nt-ol__facts { display: flex; flex-wrap: wrap; gap: 4px 16px; color: var(--nt-text); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ol__facts small { margin-right: 6px; font-size: 11px; letter-spacing: .04em; color: var(--nt-muted); }
body.nt-ec .nt-ol__facts strong { font-weight: 500; }
body.nt-ec .nt-ol__mid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px 20px; }
body.nt-ec .nt-ol__thumbs { display: flex; gap: 6px; align-items: center; }
body.nt-ec .nt-ol__thumb, body.nt-ec .nt-ol__more { flex: none; width: 56px; height: 56px; border-radius: 4px; overflow: hidden; }
body.nt-ec .nt-ol__thumb { display: block; box-shadow: var(--nt-shadow-sm); background: var(--nt-tint); }
body.nt-ec .nt-ol__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.nt-ec .nt-ol__more { display: grid; place-items: center; background: var(--nt-surface); font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ol__items { display: block; font-size: 14px; font-weight: 500; line-height: 1.5; color: var(--nt-text); overflow-wrap: anywhere; }
body.nt-ec .nt-ol__sub { margin-top: 4px; font-size: 12px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ol__prog .nt-progress { padding-top: 4px; }
body.nt-ec .nt-ol__track { margin: -6px 20px 14px; font-size: 12px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ol__track span { color: var(--nt-accent-strong); text-decoration: underline; text-underline-offset: 2px; }
body.nt-ec .nt-ol__foot { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-ol__btn { min-height: 36px; padding: 0 16px; font-size: 13px; }
body.nt-ec .nt-ol__ask { margin-left: auto; color: var(--nt-muted); }
@media (max-width: 760px) {
  body.nt-ec .nt-ol__mid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body.nt-ec .nt-ol__ask { margin-left: 0; }
}

/* pager (standard pager.twig markup): 36px squares, current page on dark */
body.nt-ec .ec-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 13px; font-feature-settings: "tnum" 1; }
body.nt-ec .ec-pager__item, body.nt-ec .ec-pager__item--active { margin: 0; padding: 0; border: 0; background: none; }
body.nt-ec .ec-pager__item > a, body.nt-ec .ec-pager__item--active > a { display: grid; place-items: center; min-width: 36px; height: 36px; padding: 0 8px; border-radius: 4px; color: var(--nt-text); background: none; text-decoration: none; }
body.nt-ec .ec-pager__item > a:hover { background: var(--nt-surface); }
body.nt-ec .ec-pager__item--active > a { background: var(--nt-dark); color: var(--nt-accent-light); }

/* =====================================================================
 * Diff #2 (§5): accent-filled buttons use white text (per the comps)
 * ===================================================================== */
body.nt-ec .ec-blockBtn--action, body.nt-ec a.ec-blockBtn--action, body.nt-ec button.ec-blockBtn--action { color: #fff; }
body.nt-ec .nt-btn-cta { color: #fff; }

/* cart: the form sits inside a flex wrapper (.ec-cartRole) next to the progress/total text; make it fill the row
   (otherwise it is content-sized and drifts away from the page gutter) */
body.nt-ec form#form_cart { flex: 1 1 100%; width: 100%; }

/* =====================================================================
 * Diff #3: welcome band outside the 2-column grid, "My Page" kicker, SP navi strip
 * ===================================================================== */
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-welcomeMsg { grid-column: 1 / -1; grid-row: 2; }
body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-navlistRole { grid-column: 1; grid-row: 3 / span 30; }
body.nt-ec .ec-pageHeader .nt-kicker {
  display: block; margin: 0 0 16px; font-size: 13px; line-height: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--nt-accent);
}
@media (max-width: 860px) {
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-welcomeMsg { grid-column: 1; grid-row: auto; }
  body.nt-ec main.ec-layoutRole__main > .ec-layoutRole__main:has(.ec-navlistRole) > .ec-mypageRole:first-child > .ec-navlistRole { grid-column: 1; grid-row: auto; }
  body.nt-ec .ec-navlistRole__navlist {
    display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; white-space: nowrap;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  body.nt-ec .ec-navlistRole__navlist::-webkit-scrollbar { display: none; }
  body.nt-ec .ec-navlistRole__item { flex: none; }
  body.nt-ec .ec-navlistRole__item--muted { margin-left: auto; }
}

/* =====================================================================
 * Diff #4 (Phase C): purchase flow — Cart / Shopping (index, confirm, complete, nonmember, shipping, error)
 * ===================================================================== */
body.nt-ec .nt-flow { max-width: calc(var(--nt-max) + var(--nt-gutter) * 2); margin: 0 auto; padding: 40px var(--nt-gutter) 80px; box-sizing: border-box; width: 100%; }
body.nt-ec .nt-flow__h1 { margin: 0 0 28px; font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em; }
body.nt-ec .nt-flow__lead { margin: -16px 0 28px; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-flow__lead a { color: var(--nt-accent-strong); }
body.nt-ec .nt-flow__alert { margin: 0 0 16px; padding: 12px 16px; font-size: 13px; line-height: 1.7; background: var(--nt-accent-tint); color: #6b3008; border-radius: var(--nt-radius); }
body.nt-ec .nt-flow__note { margin: 20px 0 0; padding: 14px 16px; font-size: 13px; line-height: 1.7; background: var(--nt-accent-tint); color: #6b3008; border-radius: var(--nt-radius); }
body.nt-ec .nt-flow__back { margin-top: 20px; }
body.nt-ec .nt-flow__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; }
body.nt-ec .nt-flow__main { min-width: 0; }
body.nt-ec .nt-flow__aside { position: sticky; top: 85px; min-width: 0; }

/* steps */
body.nt-ec .nt-steps { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 0; font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-steps__item { display: flex; align-items: center; gap: 8px; padding-right: 20px; }
body.nt-ec .nt-steps__n { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: 11px; font-feature-settings: "tnum" 1; background: var(--nt-surface); color: var(--nt-muted); }
body.nt-ec .nt-steps__item.is-current .nt-steps__n { background: var(--nt-accent); color: #fff; }
body.nt-ec .nt-steps__item.is-current .nt-steps__t { color: var(--nt-text); font-weight: 500; }
body.nt-ec .nt-steps__item.is-done .nt-steps__n { background: var(--nt-accent-tint); color: var(--nt-accent-strong); }

/* cart (the form id is kept; neutralise the older grid rule on form#form_cart) */
body.nt-ec form#form_cart.nt-cartform { display: block; max-width: none; width: 100%; padding: 0; margin: 0; }
body.nt-ec .nt-cartform .nt-flow__grid + .nt-spbar + .nt-flow__grid { margin-top: 40px; }
body.nt-ec .nt-cart__head { display: grid; grid-template-columns: 96px minmax(0, 1fr) 132px 110px 44px; gap: 16px; padding: 0 0 10px; border-bottom: 1px solid var(--nt-divider); font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-cart__row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 132px 110px 44px; gap: 16px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--nt-divider); }
body.nt-ec .nt-cart__thumb { display: block; width: 96px; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: var(--nt-tint); }
body.nt-ec .nt-cart__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
body.nt-ec .nt-cart__info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
body.nt-ec .nt-cart__code, body.nt-ec .nt-cart__fit { font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-cart__name { font-size: 14px; font-weight: 500; line-height: 1.5; color: var(--nt-text); overflow-wrap: anywhere; }
body.nt-ec .nt-cart__unit { margin-top: 2px; font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-cart__qty { display: inline-flex; align-items: center; width: max-content; border-radius: 4px; box-shadow: var(--nt-shadow-sm); overflow: hidden; }
body.nt-ec .nt-cart__step { display: grid; place-items: center; width: 36px; height: 36px; background: var(--nt-tint); color: var(--nt-text); font-size: 16px; text-decoration: none; }
body.nt-ec .nt-cart__step.is-disabled { opacity: .4; }
body.nt-ec .nt-cart__num { min-width: 36px; text-align: center; font-size: 14px; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-cart__sub { font-size: 15px; font-weight: 500; text-align: right; font-feature-settings: "tnum" 1; white-space: nowrap; }
body.nt-ec .nt-cart__del { display: grid; place-items: center; width: 44px; height: 44px; color: var(--nt-muted); justify-self: end; }
body.nt-ec .nt-cart__del:hover { color: var(--nt-accent-strong); }
body.nt-ec .nt-cart__free { margin: 16px 0 0; font-size: 13px; color: var(--nt-muted); }

/* summary card */
body.nt-ec .nt-sum { display: flex; flex-direction: column; gap: 12px; padding: 20px; background: var(--nt-surface); border-radius: 14px; }
body.nt-ec .nt-sum__title { font-size: 16px; font-weight: 500; }
body.nt-ec .nt-sum__row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-sum__row > span:first-child { color: var(--nt-muted); }
body.nt-ec .nt-sum__muted { color: var(--nt-muted); }
body.nt-ec .nt-sum__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 12px; border-top: 1px solid var(--nt-divider); font-size: 14px; }
body.nt-ec .nt-sum__total strong { font-size: 24px; font-weight: 500; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-sum__tax { font-size: 12px; color: var(--nt-muted); text-align: right; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-sum__points { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-sum__points strong { color: var(--nt-accent-strong); font-weight: 500; }
body.nt-ec .nt-sum__cta { width: 100%; min-height: 48px; justify-content: center; margin-top: 8px; }
body.nt-ec .nt-sum__back { width: 100%; justify-content: center; }
body.nt-ec .nt-sum__tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
body.nt-ec .nt-sum__tags span { padding: 2px 8px; font-size: 11px; border: 1px solid var(--nt-divider); border-radius: 999px; color: var(--nt-muted); }

/* sections / cards (checkout) */
body.nt-ec .nt-sec { margin: 0 0 40px; }
body.nt-ec .nt-sec__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 16px; }
body.nt-ec .nt-sec__head h2 { margin: 0; font-size: 18px; font-weight: 500; }
body.nt-ec .nt-sec__link { padding: 0; font: inherit; font-size: 13px; color: var(--nt-accent-strong); background: none; border: 0; cursor: pointer; text-decoration: none; }
body.nt-ec .nt-sec__hint { margin: 0 0 8px; font-size: 13px; color: var(--nt-muted); }
body.nt-ec .nt-sec__text { font-size: 13px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-sec__add { margin-top: 4px; }
body.nt-ec .nt-card { padding: 16px; background: var(--nt-bg); border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); font-size: 14px; line-height: 1.8; }
body.nt-ec .nt-card + .nt-card { margin-top: 12px; }
body.nt-ec .nt-addr p { margin: 0; }
body.nt-ec .nt-addr__kana { font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-ship__title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 13px; color: var(--nt-accent-strong); }
body.nt-ec .nt-ship__addr { margin: 0; font-size: 14px; line-height: 1.8; }
body.nt-ec .nt-ship__addr span { margin-left: 6px; font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-ship__items { list-style: none; margin: 12px 0 0; padding: 0; }
body.nt-ec .nt-ship__items li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--nt-divider); font-size: 13px; }
body.nt-ec .nt-ship__items img { display: block; width: 56px; height: 56px; object-fit: contain; background: var(--nt-tint); border-radius: 4px; }
body.nt-ec .nt-ship__name { font-weight: 500; line-height: 1.5; }
body.nt-ec .nt-ship__fit, body.nt-ec .nt-ship__qty { font-size: 12px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ship__sub { font-feature-settings: "tnum" 1; white-space: nowrap; }
body.nt-ec .nt-ship__note { margin: 4px 0 0; font-size: 12px; color: var(--nt-muted); }
body.nt-ec .nt-ship__selects { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--nt-divider); grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.nt-ec .nt-ship .nt-od__dl { margin-top: 12px; }
body.nt-ec .nt-muted { color: var(--nt-muted); }

/* payment choices */
body.nt-ec .nt-pay { display: flex; flex-direction: column; gap: 8px; }
body.nt-ec .nt-pay__opt { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); background: var(--nt-bg); font-size: 14px; }
body.nt-ec .nt-pay__opt:has(input:checked) { box-shadow: 0 0 0 1px var(--nt-accent); background: var(--nt-accent-tint); }
body.nt-ec .nt-pay__opt .ec-radio, body.nt-ec .nt-pay__opt label { margin: 0; }
body.nt-ec .nt-pay__img { max-height: 28px; width: auto; }

/* fixed bottom bar (SP only) */
body.nt-ec .nt-spbar { display: none; }

/* empty cart / complete / error / shipping select / nonmember */
body.nt-ec .nt-empty { padding: 64px 24px; text-align: center; background: var(--nt-surface); border-radius: 20px; }
body.nt-ec .nt-empty__icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 20px; border-radius: 50%; background: var(--nt-bg); color: var(--nt-muted); box-shadow: var(--nt-shadow-sm); }
body.nt-ec .nt-empty__title { margin: 0; font-size: 20px; font-weight: 500; }
body.nt-ec .nt-empty__text { margin: 12px auto 0; max-width: 40ch; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
body.nt-ec .nt-complete--order, body.nt-ec .nt-complete--error { margin-left: auto; margin-right: auto; padding-left: var(--nt-gutter); padding-right: var(--nt-gutter); box-sizing: border-box; width: 100%; padding-top: 32px; }
body.nt-ec .nt-complete__icon--muted { background: var(--nt-surface); color: var(--nt-muted); }
body.nt-ec .nt-complete__text--muted { color: var(--nt-muted); }
body.nt-ec .nt-complete__msg { margin-top: 16px; font-size: 14px; line-height: 1.8; }
body.nt-ec .nt-complete--error .nt-flow__alert { margin-top: 16px; }
body.nt-ec .nt-nonmember, body.nt-ec .nt-shipsel { max-width: 720px; }
body.nt-ec .nt-nonmember .nt-flow__h1 { margin-bottom: 8px; }
body.nt-ec .nt-shipsel .nt-flow__h1 { margin-bottom: 8px; }
body.nt-ec .nt-shipsel__list { display: flex; flex-direction: column; gap: 8px; }
body.nt-ec .nt-shipsel__item { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); background: var(--nt-bg); cursor: pointer; }
body.nt-ec .nt-shipsel__item:has(input:checked) { box-shadow: 0 0 0 1px var(--nt-accent); background: var(--nt-accent-tint); }
body.nt-ec .nt-shipsel__item input { margin-top: 4px; }
body.nt-ec .nt-shipsel__body { display: flex; flex-direction: column; gap: 4px; }
body.nt-ec .nt-shipsel__name { font-weight: 500; }
body.nt-ec .nt-shipsel__addr { font-size: 13px; line-height: 1.7; color: var(--nt-muted); }
body.nt-ec .nt-shipsel__add { display: flex; justify-content: center; align-items: center; min-height: 48px; border: 1px dashed var(--nt-divider); border-radius: var(--nt-radius); color: var(--nt-accent-strong); text-decoration: none; }

@media (max-width: 1000px) {
  body.nt-ec .nt-flow__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.nt-ec .nt-flow__aside { position: static; }
}
@media (max-width: 760px) {
  body.nt-ec .nt-flow { padding-top: 24px; padding-bottom: 40px; }
  body.nt-ec .nt-flow__h1 { font-size: 24px; margin-bottom: 20px; }
  body.nt-ec .nt-steps { margin-bottom: 20px; }
  body.nt-ec .nt-steps__item { padding-right: 12px; }
  body.nt-ec .nt-cart__head { display: none; }
  body.nt-ec .nt-cart__row { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 8px 12px; align-items: start; }
  body.nt-ec .nt-cart__thumb { width: 72px; grid-row: 1 / span 2; }
  body.nt-ec .nt-cart__info { grid-column: 2; grid-row: 1; }
  body.nt-ec .nt-cart__del { grid-column: 3; grid-row: 1; margin: -6px -6px 0 0; }
  body.nt-ec .nt-cart__qty { grid-column: 2; grid-row: 2; }
  body.nt-ec .nt-cart__sub { grid-column: 3; grid-row: 2; align-self: center; }
  body.nt-ec .nt-ship__selects { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-sum__cta { display: none; }
  body.nt-ec .nt-spbar {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--nt-bg); border-top: 1px solid var(--nt-divider);
  }
  body.nt-ec .nt-spbar__sum small { display: block; font-size: 11px; color: var(--nt-muted); }
  body.nt-ec .nt-spbar__sum strong { font-size: 20px; font-weight: 500; line-height: 1.2; font-feature-settings: "tnum" 1; }
  body.nt-ec .nt-spbar .nt-btn-cta { flex: 1; max-width: 220px; justify-content: center; min-height: 48px; }
  body.nt-ec:has(.nt-spbar) { padding-bottom: 76px; }
}

/* =====================================================================
 * customize.css integration (rules Claude in Chrome added via 管理画面 CSS 管理; customize.css is now empty)
 * The purchase flow no longer uses .ec-orderRole, so the old 2-column override for it is dropped.
 * ===================================================================== */
body.nt-ec .ec-orderRole__summary { margin-top: 0; }
body.nt-ec .ec-totalBox .ec-totalBox__total,
body.nt-ec .ec-totalBox .ec-totalBox__paymentTotal {
  display: grid; grid-template-columns: 1fr auto 3em; align-items: baseline; column-gap: 8px; text-align: left;
}
body.nt-ec .ec-totalBox .ec-totalBox__total .ec-totalBox__price,
body.nt-ec .ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__price {
  justify-self: end; margin: 0; text-align: right; font-variant-numeric: tabular-nums;
}
body.nt-ec .ec-totalBox .ec-totalBox__total .ec-totalBox__taxLabel,
body.nt-ec .ec-totalBox .ec-totalBox__paymentTotal .ec-totalBox__taxLabel { justify-self: end; margin: 0; white-space: nowrap; }
@media (max-width: 767px) {
  body.nt-ec .ec-totalBox .ec-totalBox__total, body.nt-ec .ec-totalBox .ec-totalBox__paymentTotal { grid-template-columns: 1fr auto 2.75em; column-gap: 6px; }
}
body.nt-ec .nt-nonmember .nt-flow__lead, body.nt-ec .nt-shipsel .nt-flow__lead { margin-top: 0; }

/* =====================================================================
 * Diff #5 (guide): Help/guide.twig
 * ===================================================================== */
body.nt-ec .nt-info__h1 { margin: 0 0 12px; font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: -.01em; }
body.nt-ec .nt-info__lead { margin: 0 0 32px; font-size: 14px; line-height: 1.8; color: var(--nt-muted); }
body.nt-ec .nt-info__body .nt-kicker { display: block; margin: 0 0 16px; font-size: 13px; line-height: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--nt-accent); }
body.nt-ec .nt-guide__steps { list-style: none; margin: 0 0 48px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border-radius: 20px; background: var(--nt-surface); }
body.nt-ec .nt-guide__steps li { display: flex; flex-direction: column; gap: 4px; padding: 20px 18px; border-right: 1px solid var(--nt-bg); font-size: 13px; line-height: 1.7; color: var(--nt-muted); }
body.nt-ec .nt-guide__steps li:last-child { border-right: 0; }
body.nt-ec .nt-guide__steps strong { margin-top: 2px; font-size: 15px; font-weight: 500; color: var(--nt-text); }
body.nt-ec .nt-guide__n { font-size: 12px; color: var(--nt-accent); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-guide__sections { display: flex; flex-direction: column; gap: 40px; }
body.nt-ec .nt-guide__sections section { scroll-margin-top: 90px; }
body.nt-ec .nt-guide__sections h2 { display: inline-block; margin: 0 0 12px; padding-bottom: 10px; font-size: 20px; font-weight: 500; border-bottom: 2px solid var(--nt-accent); }
body.nt-ec .nt-guide__sections dl { display: grid; grid-template-columns: minmax(120px, 180px) minmax(0, 1fr); margin: 0; font-size: 14px; line-height: 1.8; }
body.nt-ec .nt-guide__sections dt, body.nt-ec .nt-guide__sections dd { margin: 0; padding: 12px 0; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-guide__sections dt { color: var(--nt-muted); }
body.nt-ec .nt-guide__contact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; margin-top: 48px; padding: 28px; border-radius: 20px; background: var(--nt-dark); color: var(--nt-on-dark); }
body.nt-ec .nt-guide__contactLabel { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--nt-accent-light); }
body.nt-ec .nt-guide__contactText { margin-top: 6px; font-size: 16px; font-weight: 500; }
@media (max-width: 1000px) { body.nt-ec .nt-guide__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  body.nt-ec .nt-info__h1 { font-size: 24px; }
  body.nt-ec .nt-guide__steps { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-guide__steps li { border-right: 0; border-bottom: 1px solid var(--nt-bg); }
  body.nt-ec .nt-guide__sections dl { grid-template-columns: minmax(0, 1fr); }
  body.nt-ec .nt-guide__sections dt { padding-bottom: 0; }
  body.nt-ec .nt-guide__sections dd { border-top: 0; padding-top: 2px; }
}

/* Entry/index: terms checkbox row (agreement is given by this checkbox) */
body.nt-ec .nt-agree { margin-top: 24px; font-size: 14px; }
body.nt-ec .nt-agree label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
body.nt-ec .nt-agree input[type=checkbox] { flex: none; width: 18px; height: 18px; margin-top: 2px; }
body.nt-ec .nt-agree a { color: var(--nt-accent-strong); text-decoration: underline; text-underline-offset: 2px; }
body.nt-ec .nt-agree .ec-errorMessage, body.nt-ec .nt-agree .invalid-feedback { display: block; margin-top: 6px; font-size: 12px; color: var(--nt-accent-strong); }

/* =====================================================================
 * Diff #5: purchase flow spacing + address form (shipping_edit / shipping_multiple_edit)
 * ===================================================================== */
/* the note band at the top of confirm / index sits 32px above the first section */
body.nt-ec .nt-flow__main > .nt-flow__note:first-child { margin: 0 0 32px; }
body.nt-ec .nt-flow > .ec-cartRole__error, body.nt-ec .nt-flow .ec-cartRole__error { margin-bottom: 32px; }

body.nt-ec .nt-addrform { max-width: 640px; }
body.nt-ec .nt-addrform .nt-flow__h1 { margin-bottom: 24px; }
body.nt-ec .nt-addrform .nt-form__actions--row,
body.nt-ec .nt-form__actions.nt-form__actions--row { display: flex; flex-wrap: nowrap; gap: 12px; align-items: center; margin-top: 28px; }
body.nt-ec .nt-form__actions--row .nt-btn-cta { flex: 0 0 auto; min-height: 48px; padding: 0 40px; color: #fff; justify-content: center; }
body.nt-ec .nt-form__actions--row .nt-btn-ghost { flex: 0 0 auto; min-height: 48px; justify-content: center; }
@media (max-width: 600px) {
  body.nt-ec .nt-form__actions--row .nt-btn-cta { flex: 1 1 auto; padding: 0 16px; }
  body.nt-ec .nt-form__actions--row .nt-btn-ghost { flex: 0 0 auto; }
  body.nt-ec .nt-addrform .nt-fgrid { grid-template-columns: minmax(0, 1fr); }
}

/* base bottom space (80px) for core-structured pages whose last block has none (shopping/login, shipping_multiple, ...) */
body.nt-ec main.ec-layoutRole__main > .ec-role:last-child,
body.nt-ec main.ec-layoutRole__main > .ec-AddAddress:last-child,
body.nt-ec main.ec-layoutRole__main > .ec-registerRole:last-child,
body.nt-ec main.ec-layoutRole__main > .ec-customerRole:last-child,
body.nt-ec main.ec-layoutRole__main > .ec-forgotRole:last-child,
body.nt-ec main.ec-layoutRole__main > .ec-addressRole:last-child { padding-bottom: 80px; }

/* =====================================================================
 * Diff #6: in-page anchors under the sticky header, shipping_multiple
 * ===================================================================== */
[id] { scroll-margin-top: 81px; }
@media (max-width: 760px) { [id] { scroll-margin-top: 80px; } }

body.nt-ec .nt-multi__new { margin: 0 0 24px; }
body.nt-ec .nt-multi__item { margin: 0 0 24px; padding: 16px; background: var(--nt-bg); border-radius: var(--nt-radius); box-shadow: var(--nt-shadow-sm); }
body.nt-ec .nt-multi__product { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--nt-divider); }
body.nt-ec .nt-multi__thumb { display: block; width: 72px; height: 72px; object-fit: contain; background: var(--nt-tint); border-radius: 4px; }
body.nt-ec .nt-multi__name { font-size: 14px; font-weight: 500; line-height: 1.5; }
body.nt-ec .nt-multi__sub { font-size: 12px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-multi__rows { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
body.nt-ec .nt-multi__row { display: grid; grid-template-columns: minmax(0, 1fr) 120px 58px; gap: 12px; align-items: end; }
body.nt-ec .nt-multi__row .nt-multi__del { box-sizing: border-box; width: 58px; min-height: 44px; padding: 0; font-size: 13px; justify-content: center; }
body.nt-ec .nt-multi__add { margin-top: 12px; }
body.nt-ec .nt-multi__add .nt-btn-ghost { min-height: 40px; font-size: 13px; }
@media (max-width: 760px) {
  body.nt-ec .nt-multi__row { grid-template-columns: minmax(0, 1fr) 96px; }
  body.nt-ec .nt-multi__row .nt-multi__del { grid-column: 1 / -1; justify-self: start; }
  body.nt-ec .nt-flow { padding-left: 20px; padding-right: 20px; }
}

/* diff #7: SP bottom space of the multi-shipping page equals PC (80px) */
@media (max-width: 760px) { body.nt-ec .nt-flow:has(.nt-multi) { padding-bottom: 80px; } }

/* =====================================================================
 * Diff #12: privacy policy (Help/privacy.twig) — accent rule under each h2
 * ===================================================================== */
body.nt-ec .nt-privacy__meta { margin: 0 0 24px; font-size: 13px; color: var(--nt-muted); font-feature-settings: "tnum" 1; }
body.nt-ec .nt-privacy__sec { margin: 40px 0 0; }
body.nt-ec .nt-privacy__h { margin: 0; font-size: 20px; line-height: 1.5; font-weight: 500; }
body.nt-ec .nt-privacy__rule { height: 0; margin: 15px 0; border: 0; border-top: 1px solid #e8711a; }
body.nt-ec .nt-privacy__list { margin: 0 0 12px; padding: 0; list-style: none; font-size: 14px; line-height: 1.9; }
body.nt-ec .nt-privacy__list li { position: relative; padding-left: 1.2em; }
body.nt-ec .nt-privacy__list li::before { content: "・"; position: absolute; left: 0; }
body.nt-ec .nt-privacy__desk { margin-top: 48px; padding: 24px; }
body.nt-ec .nt-privacy__desk p { margin: 8px 0 0; font-size: 14px; line-height: 1.9; }
body.nt-ec .nt-privacy__deskrule { height: 0; margin: 16px 0 12px; border: 0; border-top: 1px solid var(--nt-divider); }
body.nt-ec .nt-privacy__desk .nt-privacy__maker { margin: 0; font-size: 12px; color: var(--nt-muted); }

/* === 商品ごとの配送（ProductDelivery）: お届け先は1か所、配送カードは商品ごと === */
body.nt-ec .nt-ship--addr { margin-bottom: 12px; }
body.nt-ec .nt-ship + .nt-ship { margin-top: 12px; }
body.nt-ec .nt-ship__feerow { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--nt-divider); font-size: 14px; }
body.nt-ec .nt-ship__feerow dt { margin: 0; font-weight: 400; color: var(--nt-muted); }
body.nt-ec .nt-ship__feerow dd { margin: 0; text-align: right; font-feature-settings: "tnum" 1; }
body.nt-ec .nt-ship__feerow dd span { margin-left: 6px; font-size: 12px; color: var(--nt-muted); }

/* === 会員登録: Cloudflare Turnstile のウィジェット === */
body.nt-ec .nt-form__turnstile { margin-top: 20px; min-height: 65px; }
body.nt-ec .nt-form__global-error { margin-bottom: 16px; }

/* === 会員登録（入力・確認）と非会員購入は、1カラムの内容を画面中央に置く（お問合せ3画面は入力画面と同じ2カラム） === */
body.nt-ec#page_entry .nt-nonmember, body.nt-ec#page_shopping_nonmember .nt-nonmember { max-width: 640px; margin-left: auto; margin-right: auto; }
body.nt-ec#page_entry .ec-registerRole { max-width: calc(860px + var(--nt-gutter) * 2); }
