/* ===== WooCommerce Pages (Cart / Checkout / MyAccount) ===== */

/* --- Page Layout (3-column matching products section) --- */
.wc-page-layout {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 10vh 0 8vh;
  box-sizing: border-box;
}

/* トップ以外: 左メニュー列を流し幅のまま、ブロックを縦中央 */
body:not(.home) .wc-page-layout {
  align-items: center;
}

/* My Account のみ: 3カラムを上揃え（他の WC/固定ページの縦中央は維持） */
body.woocommerce-account .wc-page-layout {
  align-items: flex-start;
}

/* 左右列の縦位置は他 WC ページと同じ .wc-page-layout .products-side--*（translateY(-50%)）に任せる。
   ここを transform: none にするとマイページだけ左メニューが下にズレる。 */

body.woocommerce-account .wc-page-inner {
  padding-top: 0;
}

.wc-page-inner {
  flex: 0 0 65%;
  padding-top: 2vh;
}

.wc-page-layout .products-side--left {
  opacity: 1;
  transform: translateX(0) translateY(-50%);
}

.wc-page-layout .products-side--right {
  opacity: 1;
  transform: translateX(0) translateY(-50%);
}

/* --- Global form reset: no white backgrounds --- */
.wc-page-inner input[type="text"],
.wc-page-inner input[type="email"],
.wc-page-inner input[type="tel"],
.wc-page-inner input[type="url"],
.wc-page-inner input[type="password"],
.wc-page-inner input[type="search"],
.wc-page-inner input[type="number"],
.wc-page-inner textarea,
.wc-page-inner select {
  background-color: rgba(0, 0, 0, 0.04) !important;
  color: #000;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.wc-page-inner button,
.wc-page-inner .button,
.wc-page-inner input[type="submit"] {
  color: #000;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.wc-page-inner input:-webkit-autofill,
.wc-page-inner input:-webkit-autofill:hover,
.wc-page-inner input:-webkit-autofill:focus,
.wc-page-inner textarea:-webkit-autofill,
.wc-page-inner select:-webkit-autofill {
  -webkit-text-fill-color: #000;
  -webkit-box-shadow: 0 0 0px 1000px #bb7a60 inset !important;
  transition: background-color 5000s ease-in-out 0s;
}

.wc-page-inner ::placeholder {
  color: rgba(0, 0, 0, 0.35);
}

.wc-page-inner select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23000'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1em center;
  background-size: 8px;
  padding-right: 2.5em;
}

.select2-container .select2-selection,
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--open .select2-selection--single,
.select2-container--open .select2-selection--multiple,
.woocommerce-checkout .select2-container .select2-selection,
.woocommerce .select2-container .select2-selection {
  background-color: rgba(0, 0, 0, 0.04) !important;
  background: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  border-radius: 0 !important;
}

.select2-dropdown,
.select2-container--open .select2-dropdown {
  background-color: #C48265 !important;
  background: #C48265 !important;
  border: 1px solid rgba(0, 0, 0, 0.25) !important;
  border-radius: 0 !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background-color: rgba(0, 0, 0, 0.12);
  color: #000;
}

.select2-container--default .select2-search--dropdown .select2-search__field,
.select2-search--dropdown .select2-search__field {
  background: rgba(0, 0, 0, 0.04) !important;
  background-color: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.25) !important;
  color: #000;
  outline: none;
}

.select2-results__option {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  color: #000;
  padding: 0.6em 1em;
}

.wc_payment_method .payment_box {
  background: transparent !important;
}

.wc_payment_method .payment_box::before {
  display: none;
}

/* --- Visited link color reset --- */
.wc-page-inner a,
.wc-page-inner a:visited,
.wc-page-inner a:link {
  color: #000;
}

/* --- Page Title (WC outputs h1/h2) --- */
.wc-page-inner .woocommerce > h2,
.wc-page-inner .woocommerce > h1,
.wc-page-inner > h1,
.wc-page-inner > h2,
.wc-page-inner .entry-title {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #000;
  margin-bottom: 4vh;
  text-transform: uppercase;
}

/* --- Notices / Messages --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  color: #000;
  padding: 1.2em 1.6em;
  margin-bottom: 3vh;
  border: 1px solid rgba(0, 0, 0, 0.15);
  background: rgba(255, 255, 255, 0.12);
  list-style: none;
}

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
  color: #000;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.woocommerce-error {
  border-color: rgba(180, 40, 40, 0.4);
}

/* ===== CART: Side-by-side layout (products left, totals right) ===== */
.woocommerce-cart .wc-page-inner > .woocommerce {
  display: flex;
  flex-wrap: wrap;
  gap: 5%;
  align-items: flex-start;
}

.woocommerce-cart .wc-page-inner > .woocommerce > .woocommerce-notices-wrapper {
  flex: 0 0 100%;
}

.woocommerce-cart-form {
  flex: 0 0 58%;
}

.shop_table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  color: #000;
}

.shop_table thead {
  display: none;
}

.shop_table td {
  padding: 2vh 0;
  vertical-align: middle;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.shop_table .product-remove {
  width: 30px;
}

.shop_table .product-remove a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  font-size: 1.1rem;
  color: #000;
  text-decoration: none;
  opacity: 0.4;
  transition: opacity 0.3s ease;
}

.shop_table .product-remove a:hover {
  opacity: 1;
}

.shop_table .product-thumbnail {
  width: 80px;
  padding-right: 1.5vw;
}

.shop_table .product-thumbnail img {
  width: 70px;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
  border-radius: 2px;
}

.shop_table .product-name {
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
}

.shop_table .product-name a {
  color: #000;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.shop_table .product-name a:hover {
  opacity: 0.6;
}

.shop_table .product-name dl.variation {
  font-size: 0.7rem;
  font-weight: 300;
  margin-top: 0.4em;
}

.shop_table .product-name dl.variation dt,
.shop_table .product-name dl.variation dd {
  display: inline;
  margin: 0;
}

.shop_table .product-name dl.variation dd p {
  display: inline;
  margin: 0;
}

.shop_table .product-price,
.shop_table .product-subtotal {
  font-weight: 400;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

/* --- Quantity Input --- */
.shop_table .product-quantity .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid #000;
}

.shop_table .product-quantity .quantity input[type="number"] {
  font-family: 'Roboto', sans-serif;
  font-size: 0.8rem;
  width: 3em;
  text-align: center;
  border: none;
  background: transparent !important;
  background-color: transparent !important;
  color: #000;
  -moz-appearance: textfield;
  padding: 0.4em 0;
}

.shop_table .product-quantity .quantity input::-webkit-outer-spin-button,
.shop_table .product-quantity .quantity input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* --- Cart Actions --- */
.shop_table td.actions {
  padding: 3vh 0 1vh;
  border-bottom: none;
}

.shop_table td.actions .coupon {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

.shop_table td.actions .coupon label {
  display: none;
}

.shop_table td.actions .coupon input[type="text"] {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  padding: 0.7em 1em;
  border: 1px solid rgba(0, 0, 0, 0.25);
  background: rgba(0, 0, 0, 0.04) !important;
  color: #000;
  letter-spacing: 0.06em;
  outline: none;
  transition: border-color 0.3s ease;
}

.shop_table td.actions .coupon input[type="text"]:focus {
  border-color: rgba(0, 0, 0, 0.6);
}

.shop_table td.actions .coupon input[type="text"]::placeholder {
  color: rgba(0, 0, 0, 0.35);
}

/* --- Buttons --- */
.woocommerce .button,
.woocommerce button[type="submit"],
.woocommerce input[type="submit"],
.wc-proceed-to-checkout .checkout-button {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #C48265;
  background: #000;
  border: 1px solid #000;
  padding: 0.9em 2em;
  cursor: none;
  transition: background 0.3s ease, color 0.3s ease;
  text-decoration: none;
  display: inline-block;
  text-align: center;
}

.woocommerce .button:disabled,
.woocommerce button[type="submit"]:disabled {
  opacity: 0.35;
  cursor: default;
}

.woocommerce .button:hover,
.woocommerce button[type="submit"]:hover,
.woocommerce input[type="submit"]:hover,
.wc-proceed-to-checkout .checkout-button:hover {
  background: transparent;
  color: #000;
}

.woocommerce .button:disabled:hover,
.woocommerce button[type="submit"]:disabled:hover {
  background: #000;
  color: #C48265;
}

.shop_table td.actions button[type="submit"] {
  float: right;
}

/* --- Cart empty (custom template) --- */
.tenponess-empty-cart {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
  text-align: center;
  padding: 6vh 2em;
}

.tenponess-empty-cart__icon {
  width: 52px;
  height: 52px;
  margin-bottom: 3vh;
  opacity: 0.3;
}

.tenponess-empty-cart__icon svg {
  width: 100%;
  height: 100%;
}

.tenponess-empty-cart__message {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #000;
  margin-bottom: 3.5vh;
}

.tenponess-empty-cart__btn {
  display: inline-block;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #000;
  background: transparent;
  border: 1.5px solid #000;
  padding: 1em 3em;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease;
}

.tenponess-empty-cart__btn:hover {
  background: #000;
  color: #C48265;
}

/* Legacy fallback (WC default template) */
.cart-empty.woocommerce-info {
  text-align: center;
  padding: 6vh 2em;
  border: none;
  background: transparent;
}

.return-to-shop {
  text-align: center;
  margin-top: 3vh;
}

/* 空カート: 本文エリア（左カラム内）の中央揃え */
.woocommerce-cart .wc-page-inner:has(.tenponess-empty-cart) {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.woocommerce-cart .wc-page-inner:has(.tenponess-empty-cart) > .woocommerce {
  width: 100%;
  max-width: 28rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.woocommerce-cart .wc-page-inner:has(.tenponess-empty-cart) .tenponess-empty-cart {
  width: 100%;
  box-sizing: border-box;
}

/* --- Cross-sells: below cart table (left column), separated from line items --- */
.tenponess-cart-cross-sells {
  flex: 0 0 58%;
  max-width: 58%;
  box-sizing: border-box;
  margin-top: 10vh;
  padding-top: 5.5vh;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.tenponess-cart-cross-sells .cross-sells {
  margin: 0;
}

/* カート右カラム「CART TOTALS」見出し（.cart_totals h2）と同系 */
.tenponess-cart-cross-sells .cross-sells > h2 {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #000;
  margin: 0 0 2vh 0;
}

.tenponess-cart-cross-sells .cross-sells ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, max-content);
  justify-content: start;
  column-gap: 2rem;
  row-gap: 1.25rem;
  clear: both;
}

.tenponess-cart-cross-sells .cross-sells ul.products::before,
.tenponess-cart-cross-sells .cross-sells ul.products::after {
  display: none;
}

.tenponess-cart-cross-sells .cross-sells ul.products li.product {
  width: auto !important;
  max-width: none;
  margin: 0 !important;
  float: none !important;
  padding: 0;
}

/* Shop grid uses .products-item { opacity:0 } until .animate-in — cart has no scroll anim */
.tenponess-cart-cross-sells .products-item {
  --tenponess-cross-thumb: 7.5rem;
  opacity: 1 !important;
  transform: none !important;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: visible;
}

/* サムネ幅（モバイルは下にテキスト常時表示／PCはホバーでショップ同様オーバーレイ） */
.tenponess-cart-cross-sells .products-item img {
  width: var(--tenponess-cross-thumb);
  max-width: 42vw;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
  border-radius: 2px;
}

/* モバイル: 画像下にテキスト（タッチでホバーしにくいため） */
.tenponess-cart-cross-sells .products-spec {
  position: static;
  width: var(--tenponess-cross-thumb);
  max-width: 42vw;
  opacity: 1;
  background: transparent;
  padding: 0.65rem 0 0 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.tenponess-cart-cross-sells .products-spec-name {
  font-size: 0.62rem;
  color: #000;
}

.tenponess-cart-cross-sells .products-spec-price {
  font-size: 0.52rem;
  margin-top: 0.3em;
  color: #000;
}

@media screen and (min-width: 769px) {
  .tenponess-cart-cross-sells .products-item {
    display: block;
    position: relative;
    align-items: stretch;
    overflow: hidden;
    border-radius: 2px;
  }

  .tenponess-cart-cross-sells .products-item img {
    width: var(--tenponess-cross-thumb);
    max-width: 42vw;
    vertical-align: top;
  }

  /* style.css .products-spec と同じ（ホバーで表示） */
  .tenponess-cart-cross-sells .products-spec {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: none;
    padding: 8%;
    background: rgba(196, 130, 101, 0.75);
    opacity: 0;
    transition: opacity 0.35s ease;
    justify-content: flex-end;
    align-items: flex-start;
    pointer-events: none;
  }

  .tenponess-cart-cross-sells .products-spec-name {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.5;
  }

  .tenponess-cart-cross-sells .products-spec-price {
    font-size: 0.65rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    margin-top: 0.6em;
  }

  .tenponess-cart-cross-sells .products-item:hover .products-spec {
    opacity: 1;
  }
}

/* ===== CART TOTALS (right column) ===== */
.cart-collaterals {
  flex: 0 0 37%;
  margin-top: 0;
}

.cart_totals {
  width: 100%;
  position: sticky;
  top: 12vh;
}

.cart_totals h2 {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #000;
  margin-bottom: 2vh;
  text-transform: uppercase;
}

.cart_totals .shop_table {
  border-top: 1px solid rgba(0, 0, 0, 0.15);
}

.cart_totals .shop_table th {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #000;
  text-align: left;
  padding: 1.4em 2em 1.4em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.cart_totals .shop_table td {
  font-size: 0.8rem;
  text-align: right;
  padding: 1.4em 0;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
  font-weight: 500;
  font-size: 0.8rem;
  border-bottom: none;
}

.cart_totals .shop_table th {
  font-size: 0.7rem;
}

.cart_totals .shop_table td {
  font-size: 0.75rem;
}

.wc-proceed-to-checkout {
  margin-top: 3vh;
}

.wc-proceed-to-checkout .checkout-button,
.wc-proceed-to-checkout a.checkout-button,
.wc-proceed-to-checkout .checkout-button.button,
.wc-proceed-to-checkout .checkout-button.button.alt {
  display: block;
  width: 100%;
  padding: 1.2em 0;
  font-size: 0.8rem;
  background: transparent !important;
  color: #000 !important;
  border: 1.5px solid #000 !important;
  font-weight: 500;
  letter-spacing: 0.18em;
}

.wc-proceed-to-checkout .checkout-button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
.wc-proceed-to-checkout .checkout-button.button:hover,
.wc-proceed-to-checkout .checkout-button.button.alt:hover {
  background: #000 !important;
  color: #C48265 !important;
}

/* ===== CHECKOUT: Side-by-side layout (form left, order right) ===== */
.woocommerce-checkout form.checkout::after,
.woocommerce-checkout form.woocommerce-checkout::after {
  content: '';
  display: table;
  clear: both;
}

.woocommerce-checkout .col2-set {
  float: left;
  width: 58%;
}

.woocommerce-checkout #order_review_heading {
  float: right;
  width: 37%;
  clear: right;
}

.woocommerce-checkout #order_review {
  float: right;
  width: 37%;
  clear: right;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  width: 100%;
  margin-bottom: 3vh;
}

.woocommerce-checkout h3 {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: #000;
  margin-bottom: 2.5vh;
  text-transform: uppercase;
}

/* --- Form Fields --- */
.woocommerce form .form-row {
  margin-bottom: 1.6vh;
}

.woocommerce form .form-row label {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #000;
  display: block;
  margin-bottom: 0.5vh;
}

.woocommerce form .form-row label .required {
  color: rgba(0, 0, 0, 0.4);
}

/* --- Checkout: マーケ同意・別住所・個人情報の説明をラベルと同じ 0.7rem に --- */
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p,
.woocommerce-checkout .woocommerce-additional-fields .form-row label {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.65 !important;
  color: #000 !important;
}

.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout label.woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-form__label-for-checkbox span,
.woocommerce-checkout .create-account .woocommerce-form__label-for-checkbox,
#ship-to-different-address label,
#ship-to-different-address span,
#ship-to-different-address-checkbox + label,
.woocommerce-shipping-fields__field-wrapper h3,
#customer_details .form-row label.woocommerce-form__label-for-checkbox {
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.65 !important;
  color: #000 !important;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-account input.input-text,
.woocommerce-account textarea,
.woocommerce-account select,
.select2-container--default .select2-selection--single {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  width: 100%;
  padding: 0.8em 1em;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0;
  background-color: rgba(0, 0, 0, 0.04) !important;
  background: rgba(0, 0, 0, 0.04) !important;
  color: #000;
  outline: none;
  transition: border-color 0.3s ease, background-color 0.3s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-account input.input-text:focus,
.woocommerce-account textarea:focus {
  border-color: #000;
  background-color: rgba(0, 0, 0, 0.07) !important;
  background: rgba(0, 0, 0, 0.07) !important;
}

body input[type="text"],
body input[type="email"],
body input[type="tel"],
body input[type="url"],
body input[type="password"],
body input[type="search"],
body input[type="number"],
body textarea,
body select,
#billing_country,
#billing_state,
#shipping_country,
#shipping_state,
.country_select,
.state_select,
.woocommerce-checkout select,
.woocommerce select {
  background-color: rgba(0, 0, 0, 0.04) !important;
  background: rgba(0, 0, 0, 0.04) !important;
}

body input:-webkit-autofill,
body input:-webkit-autofill:hover,
body input:-webkit-autofill:focus,
body textarea:-webkit-autofill,
body select:-webkit-autofill {
  -webkit-text-fill-color: #000;
  -webkit-box-shadow: 0 0 0px 1000px #bb7a60 inset !important;
  transition: background-color 5000s ease-in-out 0s;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: #000;
}

.select2-container--default .select2-selection--single {
  height: auto;
  border-radius: 0;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #000;
  line-height: 1.4;
  padding: 0;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
}

/* --- Checkout Order Review --- */
/* カート用 .shop_table thead { display:none } が付くため、ご注文表だけヘッダを表示して列幅も安定させる */
.woocommerce-checkout-review-order-table.shop_table thead {
  display: table-header-group;
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  color: #000;
}

.woocommerce-checkout-review-order-table th {
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-align: left;
  vertical-align: middle;
  padding: 1em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.woocommerce-checkout-review-order-table td {
  padding: 1em 0;
  text-align: right;
  vertical-align: middle;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.woocommerce-checkout-review-order-table .order-total td {
  font-weight: 500;
  font-size: 0.95rem;
}

/* --- Place Order --- */
#place_order {
  width: 100%;
  padding: 1.2em 0;
  font-size: 0.8rem;
  margin-top: 3vh;
  background: transparent !important;
  color: #000 !important;
  border: 1.5px solid #000 !important;
  font-weight: 500;
  letter-spacing: 0.18em;
}

#place_order:hover {
  background: #000 !important;
  color: #C48265 !important;
}

/* --- Checkbox & Radio --- */
.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"],
body input[type="checkbox"],
body input[type="radio"] {
  width: 16px;
  height: 16px;
  background-color: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.3) !important;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 2px;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
  margin-right: 0.4em;
  flex-shrink: 0;
}

body input[type="radio"] {
  border-radius: 50%;
}

body input[type="checkbox"]:checked,
body input[type="radio"]:checked {
  background-color: #000 !important;
  border-color: #000 !important;
}

body input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: solid #C48265;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

body input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #C48265;
}

/* --- Payment Methods --- */
.wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 2vh 0;
}

.wc_payment_method {
  padding: 1.2em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.wc_payment_method label {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  color: #000;
  cursor: pointer;
}

.wc_payment_method .payment_box {
  font-size: 0.75rem;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(0, 0, 0, 0.7);
  padding: 1em 0 0;
}

/* ===== MY ACCOUNT ===== */
.woocommerce-MyAccount-navigation {
  margin-bottom: 4vh;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 2em;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  padding-bottom: 1.5vh;
}

.woocommerce-MyAccount-navigation ul li a {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #000;
  text-decoration: none;
  opacity: 0.5;
  transition: opacity 0.3s ease;
}

.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
  opacity: 1;
}

.woocommerce-MyAccount-content {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 300;
  color: #000;
  line-height: 1.8;
}

.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button) {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* .wc-page-inner button { color:#000 } より上書き: 黒地にアクセント（他ページは既存 .woocommerce .button 優先） */
body.woocommerce-account .wc-page-inner .button,
body.woocommerce-account .wc-page-inner a.button,
body.woocommerce-account .wc-page-inner button.woocommerce-Button,
body.woocommerce-account .wc-page-inner button[type="submit"],
body.woocommerce-account .wc-page-inner input[type="submit"] {
  color: #C48265 !important;
  background: #000 !important;
  background-color: #000 !important;
  border: 1px solid #000 !important;
  text-decoration: none !important;
}

body.woocommerce-account .wc-page-inner .button:hover,
body.woocommerce-account .wc-page-inner a.button:hover,
body.woocommerce-account .wc-page-inner button.woocommerce-Button:hover,
body.woocommerce-account .wc-page-inner button[type="submit"]:hover,
body.woocommerce-account .wc-page-inner input[type="submit"]:hover {
  color: #000 !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #000 !important;
}

/* --- My Account: 住所一覧 / 表示 --- */
body.woocommerce-account .woocommerce-Addresses,
body.woocommerce-account .u-columns.col2-set.addresses,
body.woocommerce-account .col2-set.addresses {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1.5em 5%;
  margin: 0 0 1em;
  padding: 0;
  width: 100%;
  clear: both;
  box-sizing: border-box;
}

body.woocommerce-account .woocommerce-Address,
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
body.woocommerce-account .col2-set.addresses .u-column1,
body.woocommerce-account .col2-set.addresses .u-column2,
body.woocommerce-account .col2-set.addresses .col-1,
body.woocommerce-account .col2-set.addresses .col-2 {
  flex: 1 1 260px;
  min-width: 0;
  max-width: 100%;
  margin: 0 0 0.5em;
  box-sizing: border-box;
  float: none !important;
  width: auto !important;
}

body.woocommerce-account .woocommerce-Address address {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.6;
  font-style: normal;
  letter-spacing: 0.06em;
  color: #000;
  margin: 0.75em 0 0;
  padding: 0;
  border: 0;
}

body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3,
body.woocommerce-account header.woocommerce-Address-title h2,
body.woocommerce-account header.woocommerce-Address-title h3,
body.woocommerce-account .woocommerce-Address .woocommerce-Address-title h3,
body.woocommerce-account .u-column1 .title h2,
body.woocommerce-account .u-column1 .title h3,
body.woocommerce-account .u-column2 .title h2,
body.woocommerce-account .u-column2 .title h3,
body.woocommerce-account .u-column1 .woocommerce-Address-title h3,
body.woocommerce-account .u-column2 .woocommerce-Address-title h3 {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #000;
  margin: 0 0 0.4em;
}

body.woocommerce-account .woocommerce-Address-title .edit,
body.woocommerce-account header.woocommerce-Address-title a,
body.woocommerce-account .u-column1 .title a,
body.woocommerce-account .u-column2 .title a,
body.woocommerce-account .col2-set a.edit {
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-decoration: underline;
  text-underline-offset: 3px;
  color: #000;
}

/* 住所の編集フォーム */
body.woocommerce-account .woocommerce-address-fields__field-wrapper,
body.woocommerce-account .woocommerce-address-fields {
  margin-top: 0.5em;
  margin-bottom: 0;
  padding: 0;
  max-width: 36rem;
}

body.woocommerce-account .woocommerce-address-fields .form-row,
body.woocommerce-account form[name="address"] .form-row {
  margin-bottom: 1.2vh;
}

body.woocommerce-account .u-columns.col2-set + * {
  clear: both;
  padding-top: 0;
}

/* --- My Account: アカウント詳細のパスワード変更 (fieldset) --- */
body.woocommerce-account .woocommerce-EditAccountForm fieldset,
body.woocommerce-account form.edit-account fieldset,
body.woocommerce-account #account_password_field {
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.02) !important;
  padding: 1.2em 1.25em 0.4em;
  margin: 1.5em 0 0;
  max-width: 36rem;
  box-sizing: border-box;
}

body.woocommerce-account .woocommerce-EditAccountForm fieldset legend,
body.woocommerce-account form.edit-account fieldset legend {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #000;
  padding: 0 0.4em;
  margin: 0;
  float: none;
  display: table;
  width: auto;
}

body.woocommerce-account .woocommerce-EditAccountForm fieldset .form-row,
body.woocommerce-account form.edit-account fieldset .form-row,
body.woocommerce-account .woocommerce-EditAccountForm fieldset p.form-row,
body.woocommerce-account form.edit-account fieldset p.form-row {
  margin-bottom: 1.2vh;
  padding: 0;
}

/* --- Login / Register / Lost password（未ログイン：マイアカウント周り） --- */
/* カラム内 h2 は .woocommerce 直下に無いため、他ページの見出しに合わせる */
.wc-page-inner .woocommerce-MyAccount-content h2,
.wc-page-inner #customer_login h2,
.wc-page-inner .woocommerce-MyAccount-content h3,
.wc-page-inner .woocommerce-ResetPassword h2,
.wc-page-inner .woocommerce-ResetPassword h3,
.wc-page-inner .lost_reset_password h2,
.wc-page-inner .lost_reset_password h3,
body.woocommerce-lost-password .wc-page-inner .woocommerce > h2,
body.woocommerce-reset-password .wc-page-inner .woocommerce > h2 {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #000;
  margin: 0 0 1.1em;
  padding: 0;
  border: none;
}

.wc-page-inner .woocommerce-MyAccount-content > p,
.wc-page-inner .woocommerce-ResetPassword > p,
body.woocommerce-lost-password .wc-page-inner .woocommerce > p,
body.woocommerce-reset-password .wc-page-inner .woocommerce > p {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #000;
  margin: 0 0 1.25em;
  max-width: 28rem;
}

/* ログイン＋登録の 2 カラム（#customer_login） */
body.woocommerce-account #customer_login,
body.woocommerce-account .u-columns.col2-set#customer_login {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 2em 5%;
  width: 100%;
  max-width: 44rem;
  margin: 0 0 2vh;
  padding: 0;
  float: none !important;
  clear: both;
  box-sizing: border-box;
}

body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .u-column2,
body.woocommerce-account #customer_login .col-1,
body.woocommerce-account #customer_login .col-2 {
  float: none !important;
  width: auto !important;
  flex: 1 1 240px;
  min-width: 0;
  max-width: 100%;
  margin: 0 0 1.5em;
  padding: 0;
  box-sizing: border-box;
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
form.lost_reset_password,
form.woocommerce-form.lost_reset_password {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.woocommerce-form-login p:not(.form-row):not(.woocommerce-form-row),
.woocommerce-form-register p:not(.form-row):not(.woocommerce-form-row),
.woocommerce-ResetPassword p:not(.form-row),
form.lost_reset_password p:not(.form-row),
form.woocommerce-ResetPassword p:not(.form-row) {
  margin: 0 0 1.2em;
}

.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row,
.woocommerce-ResetPassword .form-row,
form.lost_reset_password .form-row {
  margin-bottom: 1.2vh;
}

.woocommerce-form-login .woocommerce-form__label.woocommerce-form-login__rememberme,
.woocommerce-form-login .woocommerce-form__label.woocommerce-form-login__rememberme span,
.woocommerce-form-login label.woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.5;
  color: #000;
  margin: 0.25em 0 0.75em;
  cursor: pointer;
  vertical-align: middle;
}

.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text p,
.woocommerce-form-register .woocommerce-privacy-policy-text {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.7rem !important;
  font-weight: 400;
  line-height: 1.65 !important;
  letter-spacing: 0.08em !important;
  color: #000 !important;
  margin: 0.5em 0 1em;
}

.woocommerce-privacy-policy-text a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.woocommerce-LostPassword,
.woocommerce-MyAccount-content .woocommerce-LostPassword,
form.woocommerce-ResetPassword .woocommerce-Button--link,
.woocommerce-MyAccount-content .woocommerce-form-login p.lost_password {
  margin: 0.5em 0 0;
}

.woocommerce-LostPassword a,
.woocommerce-MyAccount-content p.lost_password a,
form.woocommerce-ResetPassword a {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-decoration: underline;
  text-underline-offset: 3px;
  color: #000;
}

/* 登録: 「ログインはこちら」等 */
.woocommerce-MyAccount-content p:not(.form-row) a,
#customer_login + p a {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}

/* パスワード再設定フォーム（エンドポイント lost-password 等） */
body.woocommerce-lost-password .woocommerce-ResetPassword,
body.woocommerce-lost-password .lost_reset_password,
body.woocommerce-lost-password form.woocommerce-Form {
  max-width: 28rem;
  width: 100%;
}

/* 未ログイン時のコンテンツ幅（ナビが無い分、中央付近の読み幅） */
body.woocommerce-account:not(.logged-in) .wc-page-inner .woocommerce-MyAccount-content,
body.woocommerce-account:not(.logged-in) .wc-page-inner > .woocommerce {
  max-width: 100%;
  width: 100%;
}

/* ===== 注文完了（クラシックチェックアウト） ===== */
.woocommerce-order-received .wc-page-inner {
  max-width: 38rem;
}

.woocommerce-order-received .woocommerce-order {
  padding: 0;
  margin: 0;
}

.woocommerce-order-received .woocommerce-notice--success {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: #000;
  border: none;
  background: transparent;
  padding: 0 0 2.5vh;
  margin: 0;
}

.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received ul.order_details,
.woocommerce-order-received .woocommerce-thankyou-order-details {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  list-style: none;
  margin: 0 0 2.5vh;
  padding: 2vh 0 0;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.woocommerce-order-received .woocommerce-thankyou-order-details li,
.woocommerce-order-received .woocommerce-order-overview li,
.woocommerce-order-received ul.order_details li {
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  line-height: 1.7;
  margin: 0 0 0.6em;
  color: #000;
  list-style: none;
}

.woocommerce-order-received .woocommerce-bacs-bank-details,
.woocommerce-order-received .woocommerce-bacs-bank-details + * {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  line-height: 1.8;
  margin-top: 2vh;
}

.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-bacs-bank-details,
.woocommerce-order-received address {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #000;
}

.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title,
.woocommerce-order-received h2.woocommerce-order-details__title {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 2.5vh 0 1.2vh;
  color: #000;
}

.woocommerce-order-received .woocommerce-table--order-details {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
  margin-top: 1vh;
}

.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
  padding: 0.8em 0.5em 0.8em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  text-align: left;
  font-weight: 400;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot th,
.woocommerce-order-received .woocommerce-table--order-details tfoot td {
  font-weight: 500;
}

/* ブロックチェックアウト: 注文完了 */
.wc-block-order-confirmation-status,
.wc-block-order-confirmation-totals,
.wc-block-order-confirmation-downloads,
.wc-block-order-confirmation-billing-wrapper,
.wc-block-order-confirmation-shipping-wrapper {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  color: #000;
}

.wc-block-order-confirmation-status .wc-block-order-confirmation-status__title,
.wp-block-woocommerce-order-confirmation-totals .wc-block-order-confirmation-totals__title {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ===== MOBILE ===== */
@media screen and (max-width: 768px) {
  .wc-page-layout {
    flex-direction: column;
    align-items: center;
    padding: 12vh 5vw 6vh;
    gap: 2vh;
  }

  .wc-page-layout .products-side--left,
  .wc-page-layout .products-side--right {
    display: none;
  }

  .wc-page-inner {
    flex: none;
    width: 100%;
  }

  .shop_table .product-thumbnail {
    width: 60px;
    padding-right: 3vw;
  }

  .shop_table .product-thumbnail img {
    width: 50px;
  }

  .shop_table td.actions {
    display: flex;
    flex-direction: column;
    gap: 2vh;
  }

  .shop_table td.actions .coupon {
    flex-direction: column;
    width: 100%;
  }

  .shop_table td.actions .coupon input[type="text"] {
    width: 100%;
  }

  .shop_table td.actions button[type="submit"] {
    float: none;
    width: 100%;
  }

  .woocommerce-cart .wc-page-inner > .woocommerce {
    flex-direction: column;
  }

  .woocommerce-cart-form,
  .cart-collaterals {
    flex: none !important;
    width: 100% !important;
  }

  .tenponess-cart-cross-sells {
    flex: none !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-top: 7vh;
    padding-top: 4vh;
  }

  .tenponess-cart-cross-sells .products-item {
    --tenponess-cross-thumb: 6.25rem;
  }

  .tenponess-cart-cross-sells .products-item img,
  .tenponess-cart-cross-sells .products-spec {
    max-width: 38vw;
  }

  .tenponess-cart-cross-sells .cross-sells ul.products {
    grid-template-columns: repeat(2, max-content);
    column-gap: 1.25rem;
    row-gap: 1rem;
  }

  .cart_totals {
    max-width: 100%;
    position: static;
  }

  .wc-proceed-to-checkout .checkout-button {
    width: 100%;
  }

  .woocommerce-checkout .col2-set,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    float: none !important;
    width: 100% !important;
  }

  body.woocommerce-account #customer_login,
  body.woocommerce-account .u-columns.col2-set#customer_login {
    flex-direction: column;
    gap: 1.5em;
    max-width: 100%;
  }

  body.woocommerce-account #customer_login .u-column1,
  body.woocommerce-account #customer_login .u-column2,
  body.woocommerce-account #customer_login .col-1,
  body.woocommerce-account #customer_login .col-2 {
    flex: 1 1 auto;
    width: 100% !important;
    max-width: 100%;
  }

  .woocommerce .button,
  .woocommerce button[type="submit"],
  .woocommerce input[type="submit"],
  .wc-proceed-to-checkout .checkout-button,
  .shop_table .product-quantity .quantity input[type="number"],
  .wc_payment_method label,
  .woocommerce-form-login label,
  .woocommerce-form-register label,
  .woocommerce-MyAccount-navigation ul li a {
    cursor: auto;
  }
}

/* =====================================================
   WooCommerce BLOCK-BASED pages (WC 8.x+)
   ===================================================== */

/* --- Block: Global background override --- */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-textarea textarea,
.wc-block-components-combobox .components-combobox-control input,
.wc-block-components-combobox input[type="text"],
.wc-block-components-select-input select,
.wc-block-components-country-input input,
.wc-block-components-state-input input {
  background-color: rgba(0, 0, 0, 0.04) !important;
  background: rgba(0, 0, 0, 0.04) !important;
  color: #000 !important;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  border-radius: 0 !important;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.8rem !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus {
  background-color: rgba(0, 0, 0, 0.07) !important;
  border-color: #000 !important;
  box-shadow: none !important;
}

/* --- Block: Combobox dropdown list (country/state) --- */
.components-form-token-field__suggestions-list,
.wc-block-components-combobox .components-form-token-field__suggestions-list {
  background-color: #C48265 !important;
  background: #C48265 !important;
  border: 1px solid rgba(0, 0, 0, 0.25) !important;
  border-radius: 0 !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.components-form-token-field__suggestion,
.wc-block-components-combobox .components-form-token-field__suggestion {
  color: #000 !important;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.8rem !important;
  padding: 0.6em 1em !important;
  background: transparent !important;
}

.components-form-token-field__suggestion.is-selected,
.components-form-token-field__suggestion:hover,
.wc-block-components-combobox .components-form-token-field__suggestion.is-selected {
  background-color: rgba(0, 0, 0, 0.12) !important;
  color: #000 !important;
}

/* --- Block: Labels & text --- */
.wc-block-components-text-input label,
.wc-block-components-combobox label,
.wc-block-components-select-input label,
.wc-block-components-checkbox label,
.wc-block-components-checkout-step__heading {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: #000 !important;
}

.wc-block-components-checkout-step__description {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: rgba(0, 0, 0, 0.75) !important;
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.65 !important;
}

/* Block: マーケ同意・別住所・利用規約／プライバシー文（フォームラベルと同じ 0.7rem） */
.wc-block-components-checkbox .wc-block-components-checkbox__label,
.wc-block-components-checkbox .wc-block-components-checkbox__label span,
.wc-block-checkout__terms .wc-block-components-checkbox__label,
.wc-block-checkout__terms .wc-block-components-checkbox__label span,
.wc-block-checkout__terms p,
.wc-block-checkout__terms,
.wc-block-components-checkout__terms-checkbox .wc-block-components-checkbox__label,
.wc-block-components-checkbox__label,
.wc-block-components-checkbox__label span,
.wc-block-components-checkbox .wc-block-components-checkbox__label,
#shipping-option .wc-block-components-checkbox__label,
.wc-block-components-address-form .wc-block-components-checkbox__label {
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.65 !important;
  color: #000 !important;
}

.wc-block-checkout__terms a,
.wc-block-components-checkout-step__description a,
.woocommerce-checkout .woocommerce-privacy-policy-text a {
  font-size: inherit !important;
}

/* --- Block: Checkbox & Radio --- */
.wc-block-components-checkbox .wc-block-components-checkbox__input,
.wc-block-components-radio-control input[type="radio"] {
  background-color: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.3) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input:checked,
.wc-block-components-radio-control input[type="radio"]:checked {
  background-color: #000 !important;
  border-color: #000 !important;
}

/* --- Block: Place Order button --- */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions .wc-block-components-button,
.wc-block-components-checkout-place-order-button.wc-block-components-button {
  background: transparent !important;
  background-color: transparent !important;
  color: #000 !important;
  border: 1.5px solid #000 !important;
  border-radius: 0 !important;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  padding: 1.2em 2em !important;
  box-shadow: none !important;
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions .wc-block-components-button:hover {
  background: #000 !important;
  background-color: #000 !important;
  color: #C48265 !important;
}

.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  color: inherit !important;
}

/* --- Block: Other buttons (return to cart, etc.) --- */
.wc-block-components-button:not(.wc-block-components-checkout-place-order-button) {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  border-radius: 0 !important;
}

/* --- Block: Cart empty state --- */
.wc-block-cart__empty-cart,
.wp-block-woocommerce-cart .wc-block-cart__empty-cart {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50vh !important;
  text-align: center !important;
  padding: 6vh 2em !important;
}

.wc-block-cart__empty-cart__title {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  color: #000 !important;
  margin-bottom: 3vh !important;
}

.wc-block-cart__empty-cart__browse-button,
.wc-block-cart__empty-cart a.wp-block-button__link,
.wc-block-cart__empty-cart .wp-element-button {
  display: inline-block !important;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  color: #000 !important;
  background: transparent !important;
  border: 1.5px solid #000 !important;
  border-radius: 0 !important;
  padding: 1em 3em !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.wc-block-cart__empty-cart__browse-button:hover,
.wc-block-cart__empty-cart a.wp-block-button__link:hover,
.wc-block-cart__empty-cart .wp-element-button:hover {
  background: #000 !important;
  color: #C48265 !important;
}

/* --- Block: Cart/Checkout general --- */
.wc-block-cart,
.wc-block-checkout {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  color: #000;
}

.wc-block-cart .wc-block-components-product-name,
.wc-block-checkout .wc-block-components-product-name {
  color: #000 !important;
  text-decoration: none !important;
}

.wc-block-components-product-name:hover {
  opacity: 0.6 !important;
}

/* --- Block: Cart table --- */
.wc-block-cart-items .wc-block-cart-items__row {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
}

/* --- Block: Totals --- */
.wc-block-components-totals-wrapper,
.wc-block-components-totals-item {
  border-color: rgba(0, 0, 0, 0.1) !important;
}

.wc-block-components-totals-item__value,
.wc-block-components-totals-item__label {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: #000 !important;
}

/* --- Block: Order summary --- */
.wc-block-components-order-summary .wc-block-components-order-summary-item__description {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: #000 !important;
}

/* --- Block: Payment methods --- */
.wc-block-components-radio-control__label,
.wc-block-components-payment-method-label {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: #000 !important;
}

.wc-block-components-radio-control .wc-block-components-radio-control__description {
  color: rgba(0, 0, 0, 0.6) !important;
}

/* --- Block: Notices --- */
.wc-block-components-notice-banner {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  color: #000 !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border: 1px solid rgba(0, 0, 0, 0.15) !important;
  border-radius: 0 !important;
}

/* --- Block: Visited link color --- */
.wc-block-cart a:visited,
.wc-block-checkout a:visited {
  color: #000 !important;
}

/* --- Block: Quantity input --- */
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  background: transparent !important;
  color: #000 !important;
  border-color: rgba(0, 0, 0, 0.3) !important;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  color: #000 !important;
  background: transparent !important;
}

/* --- Block: Proceed to checkout from cart page --- */
.wc-block-cart__submit-container .wc-block-cart__submit-button,
.wc-block-cart__submit-button.wc-block-components-button {
  background: transparent !important;
  color: #000 !important;
  border: 1.5px solid #000 !important;
  border-radius: 0 !important;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  box-shadow: none !important;
}

.wc-block-cart__submit-container .wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button.wc-block-components-button:hover {
  background: #000 !important;
  color: #C48265 !important;
}

/* --- Block: Remove item button --- */
.wc-block-cart-item__remove-link {
  color: #000 !important;
  opacity: 0.4;
  font-size: 0.75rem !important;
}

.wc-block-cart-item__remove-link:hover {
  opacity: 1;
}

/* --- Block: Coupon input --- */
.wc-block-components-totals-coupon__input .wc-block-components-text-input input {
  background-color: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.25) !important;
}

.wc-block-components-totals-coupon__button {
  background: #000 !important;
  color: #C48265 !important;
  border: 1px solid #000 !important;
  border-radius: 0 !important;
}

.wc-block-components-totals-coupon__button:hover {
  background: transparent !important;
  color: #000 !important;
}

/* ===== Block Mobile ===== */
@media screen and (max-width: 768px) {
  .wc-block-cart,
  .wc-block-checkout {
    padding: 0 2vw;
  }

  .wc-block-components-checkout-place-order-button,
  .wc-block-cart__submit-button {
    width: 100% !important;
  }
}

/* ===== Checkout: ご注文欄の商品サムネイル・数量（クラシック） ===== */
/* サムネは 3:4（カートのサムネと同系）。td に display:flex は付けない（金額列の折り返し防止）。 */
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total {
  width: 28%;
  min-width: 8rem;
  max-width: 40%;
  white-space: nowrap !important;
  text-align: right !important;
  vertical-align: middle !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total .woocommerce-Price-amount,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total .amount {
  white-space: nowrap !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-name,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-name {
  width: 72%;
  vertical-align: middle !important;
  text-align: left !important;
}

/* 商品行：td は vertical-align:middle（上のルール）。サムネ＋文は flex で縦中央＝写真下の「空き」を出さない */
.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-line {
  display: flex;
  align-items: center;
  gap: 0.55em;
  text-align: left;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* ラッパー：inline 由来の画像下の「すきま」を出さない（line-height:0 + block） */
.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-thumb-wrap {
  display: block;
  flex-shrink: 0;
  width: 38px;
  max-width: 38px;
  line-height: 0;
  font-size: 0;
  border-radius: 2px;
  overflow: hidden;
}

.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-thumb {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  margin: 0;
  padding: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 3 / 4;
}

/* 写真の右：商品名（複数行可）＋ 数量 */
.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-main {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35em 0.5em;
}

.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-name {
  flex: 1 1 0;
  min-width: 0;
  word-wrap: break-word;
  overflow-wrap: break-word;
  line-height: 1.45;
}

.woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-main > .product-quantity {
  flex: 0 0 auto;
  white-space: nowrap;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 0;
  line-height: 1.45;
}

@media screen and (max-width: 768px) {
  body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total {
    width: 32%;
    min-width: 6.75rem;
  }

  body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-name,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-name {
    width: 68%;
  }

  .woocommerce-checkout-review-order-table .product-name .tenponess-checkout-product-thumb-wrap {
    width: 32px;
    max-width: 32px;
  }
}

/* ===== 配送まわりの余分な「・」（リスト・疑似要素） ===== */
ul#shipping_method {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

ul#shipping_method li {
  list-style: none !important;
  margin: 0 0 0.5em !important;
  padding: 0 !important;
}

.cart_totals tr.shipping th::before,
.cart_totals tr.shipping th::after,
.cart_totals tr.shipping td::before,
.woocommerce-checkout-review-order-table tr.shipping th::before,
.woocommerce-checkout-review-order-table tr.shipping th::after,
.woocommerce-shipping-totals th::before,
.woocommerce-shipping-totals th::after {
  content: none !important;
  display: none !important;
}

/* ===== カート／決済：更新時の一瞬の白（BlockUI・処理中オーバーレイをテーマ色に） ===== */
body.woocommerce-cart .blockUI.blockOverlay,
body.woocommerce-checkout .blockUI.blockOverlay,
.woocommerce .blockUI.blockOverlay,
form.woocommerce-checkout .blockUI.blockOverlay {
  background-color: #C48265 !important;
  background: #C48265 !important;
  opacity: 0.88 !important;
}

body.woocommerce-cart .blockUI.blockMsg,
body.woocommerce-checkout .blockUI.blockMsg,
.woocommerce .blockUI.blockMsg {
  background: #C48265 !important;
  background-color: #C48265 !important;
  border: none !important;
  color: #000 !important;
}

form.woocommerce-checkout.processing,
form.checkout.processing,
.woocommerce-checkout form.checkout.processing {
  opacity: 1 !important;
}

#order_review,
.woocommerce-checkout-review-order-table {
  background-color: transparent;
}

/* WooCommerce Blocks: 読み込みマスク */
.wc-block-components-loading-mask,
.wc-block-components-spinner,
.wc-block-components-loading-spinner {
  background-color: rgba(196, 130, 101, 0.92) !important;
  background: rgba(196, 130, 101, 0.92) !important;
}

.wc-block-components-button__loading-icon {
  color: #000 !important;
}

/* Blocks チェックアウト：注文サマリーの画像が有効な場合 */
.wc-block-components-order-summary-item__image img,
.wc-block-cart-items__row-image img {
  border-radius: 2px;
  object-fit: cover;
}

/* ===== ショップ / 商品カテゴリアーカイブ（トップヒーローなし） ===== */
body.tenponess-wc-shop .products-section {
  padding-top: 12vh;
}

@media screen and (max-width: 768px) {
  body.tenponess-wc-shop .products-section {
    padding-top: 8vh;
  }
}

/* ===== プライバシーポリシー（固定ページテンプレート） ===== */
.tenponess-policy-page .wc-page-inner {
  max-width: 42rem;
}

.tenponess-policy {
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  color: #000;
  padding-bottom: 4vh;
}

.tenponess-policy__header {
  margin-bottom: 3.5vh;
  padding-bottom: 2.5vh;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.tenponess-policy__title {
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 1.5vh;
  line-height: 1.4;
}

.tenponess-policy__lead {
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.85;
  margin: 0;
  color: rgba(0, 0, 0, 0.88);
}

.tenponess-policy__section {
  margin-top: 2.75vh;
}

.tenponess-policy__section:first-of-type {
  margin-top: 0;
}

.tenponess-policy__h2 {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin: 0 0 1vh;
  line-height: 1.5;
}

.tenponess-policy__section p {
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.85;
  margin: 0 0 1em;
  color: rgba(0, 0, 0, 0.88);
}

.tenponess-policy__list {
  margin: 0.5em 0 0;
  padding: 0 0 0 1.25em;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  line-height: 1.75;
  color: rgba(0, 0, 0, 0.88);
}

.tenponess-policy__list li {
  margin-bottom: 0.35em;
}

.tenponess-policy__section--contact {
  margin-top: 4vh;
  padding-top: 2.5vh;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.tenponess-policy__address {
  font-size: 0.78rem;
  font-style: normal;
  letter-spacing: 0.06em;
  line-height: 1.85;
  margin: 0;
  color: rgba(0, 0, 0, 0.88);
}

.tenponess-policy__address a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 0.3s ease;
}

.tenponess-policy__address a:hover {
  opacity: 0.65;
}
