/* WooCommerce スタイル上書き — Plan 2 で充実させる */
.woocommerce,
.woocommerce-page {
  color: var(--color-ink);
  font-family: var(--font-base);
}

/* ボタン基本上書き */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce-page #respond input#submit {
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-xl);
  font-weight: 700;
  font-size: 14px;
  padding: 12px 24px;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.woocommerce-page #respond input#submit:hover {
  background: var(--color-primary-dark);
  color: #fff;
}

/* ボタン focus-visible */
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:focus-visible,
.woocommerce-page a.button:focus-visible,
.woocommerce-page button.button:focus-visible,
.woocommerce-page input.button:focus-visible,
.woocommerce-page #respond input#submit:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Breadcrumb & notices
   -------------------------------------------------------------------------- */
.woocommerce .woocommerce-breadcrumb {
  font-size: 12px;
  color: var(--color-ink-muted);
  margin-bottom: 16px;
}
.woocommerce .woocommerce-breadcrumb a {
  color: var(--color-primary-dark);
}
/* --------------------------------------------------------------------------
   Notices — error / message / info
   -------------------------------------------------------------------------- */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info {
  border-radius: var(--radius-md);
  border-left-width: 4px;
}

/* カート追加通知 */
.woocommerce .woocommerce-message {
  background: rgba(120, 194, 196, 0.1);
  border-top-color: var(--color-primary);
  border-color: var(--color-primary);
  border-left: 4px solid var(--color-primary);
  border-top: none;
  border-right: none;
  border-bottom: none;
  padding: 16px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 2px 12px rgba(88, 153, 155, 0.12);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-ink);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* WooCommerceデフォルトのショッピングカートアイコン色を上書き */
.woocommerce .woocommerce-message::before {
  color: var(--color-primary-dark);
}

/* 通知内の li は flex 子として展開 */
.woocommerce .woocommerce-message > li {
  display: contents;
}

/* 「お買い物カゴを表示」ボタン */
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-message .wc-forward {
  order: 2;
  margin-left: auto;
  background: var(--color-primary-dark) !important;
  color: #fff !important;
  border: 2px solid var(--color-primary-dark) !important;
  border-radius: var(--radius-sm);
  padding: 9px 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-decoration: none;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s;
}

.woocommerce .woocommerce-message a.button:hover,
.woocommerce .woocommerce-message .wc-forward:hover {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* --------------------------------------------------------------------------
   Shop archive — full width, title, toolbar, empty state
   -------------------------------------------------------------------------- */
.woocommerce-page #primary.content-area {
  width: 100%;
  float: none;
}
.woocommerce-page #main.site-main {
  width: 100%;
  max-width: none;
}
.woocommerce-products-header {
  margin-bottom: 28px;
  text-align: center;
}
.woocommerce-products-header__title.page-title {
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--color-ink);
}
.woocommerce .term-description {
  font-size: 14px;
  color: var(--color-ink-muted);
  max-width: 42em;
  margin: 0 auto;
  text-align: left;
}
.a-styles-shop-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border);
}
.a-styles-shop-toolbar .woocommerce-result-count {
  margin: 0;
}
.a-styles-shop-toolbar .woocommerce-ordering {
  margin: 0;
}
.a-styles-shop-empty {
  padding: 32px 24px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  margin-top: 8px;
}
.a-styles-shop-empty .woocommerce-info {
  margin: 0 0 20px !important;
  background: rgba(188, 226, 226, 0.35);
  border: none;
  border-radius: var(--radius-md);
}
.a-styles-shop-empty__search {
  margin-top: 8px;
}
.a-styles-shop-empty__search .woocommerce-product-search {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: center;
  max-width: 520px;
  margin: 0 auto;
}
.a-styles-shop-empty__search .search-field {
  flex: 1 1 220px;
  min-width: 0;
  padding: 12px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: var(--font-base);
  font-size: 14px;
}
.woocommerce nav.woocommerce-pagination {
  margin-top: 40px;
}
.woocommerce nav.woocommerce-pagination ul {
  border: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: center;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: none;
  display: inline-flex;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 8px 14px;
  min-width: 2.5em;
  text-align: center;
  color: var(--color-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* --------------------------------------------------------------------------
   Product grid & cards (prototype)
   -------------------------------------------------------------------------- */
ul.products.a-styles-product-grid {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px !important;
}
@media (min-width: 769px) {
  ul.products.a-styles-product-grid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
  }
}

ul.products.a-styles-product-grid li.a-styles-product-grid__item {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.product-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
}
.product-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.product-card__media {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-base);
}
.product-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-card__badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.product-card__badge {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: var(--radius-full);
}
.product-card__badge--sale {
  background: var(--color-secondary);
  color: var(--color-ink);
}
.product-card__badge--new {
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}
.product-card__badge--soldout {
  background: var(--color-ink-muted);
  color: var(--color-surface);
}
.product-card__rank {
  position: absolute;
  top: -4px;
  left: -4px;
  z-index: 4;
  width: 38px;
  height: 38px;
  border-radius: var(--radius-full);
  background: var(--color-secondary);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--color-surface);
  box-shadow: var(--shadow-sm);
}
.product-card__badges--with-rank {
  left: auto;
  right: 12px;
  top: 12px;
}
.product-card__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.product-card__title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}
.product-card__title a {
  color: var(--color-ink);
}
.product-card__title a:hover {
  color: var(--color-primary-dark);
}
.product-card__rating .star-rating {
  font-size: 12px;
  color: var(--color-secondary);
}
.product-card__price {
  font-weight: 700;
  font-size: 15px;
  color: var(--color-ink);
}
.product-card__price del {
  color: var(--color-ink-muted);
  font-weight: 500;
  margin-right: 6px;
}

/* ループのカゴボタン — ショップは body に .woocommerce があるが、TOP等では無いためここで完結させる */
.product-card__actions,
.product-card__action {
  margin-top: auto;
  padding-top: 4px;
}
.product-card__actions a.button,
.product-card__actions button.button,
.product-card__action a.button,
.product-card__action button.button {
  display: block;
  box-sizing: border-box;
  width: 100%;
  text-align: center;
  margin: 0;
  background: var(--color-primary);
  color: #fff !important;
  border-radius: var(--radius-xl);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.4;
  padding: 10px 14px;
  border: none;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
  box-shadow: 0 1px 2px rgba(30, 95, 116, 0.12);
}
.product-card__actions a.button:hover,
.product-card__actions button.button:hover,
.product-card__action a.button:hover,
.product-card__action button.button:hover {
  background: var(--color-primary-dark);
  color: #fff !important;
}
.product-card__actions a.button:focus-visible,
.product-card__actions button.button:focus-visible,
.product-card__action a.button:focus-visible,
.product-card__action button.button:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.product-card__actions a.button.loading,
.product-card__action a.button.loading {
  opacity: 0.85;
  pointer-events: none;
}
.product-card__actions a.added_to_cart,
.product-card__action a.added_to_cart {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--color-primary-dark);
  text-align: center;
  text-decoration: underline;
}

/* Shop toolbar */
.woocommerce .woocommerce-result-count {
  font-size: 13px;
  color: var(--color-ink-muted);
}
.woocommerce .woocommerce-ordering select {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  font-family: var(--font-base);
  background: var(--color-surface);
}

/* --------------------------------------------------------------------------
   Single product
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  .woocommerce div.product {
    display: grid;
    grid-template-columns: 55% minmax(0, 1fr);
    gap: 40px;
    align-items: start;
  }
}
.woocommerce div.product .woocommerce-product-gallery {
  margin-bottom: 0;
}
.woocommerce div.product .summary {
  margin-bottom: 0;
}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products {
  grid-column: 1 / -1;
}
.woocommerce span.onsale {
  background: var(--color-secondary);
  color: var(--color-ink);
  border-radius: var(--radius-full);
  line-height: 1;
  min-height: auto;
  padding: 8px 14px;
}

/* --- Single Product UI / UX (Japanese EC Style) --- */
.woocommerce div.product .product_title {
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 12px;
  color: var(--color-ink);
  border-bottom: 2px solid var(--color-border);
  padding-bottom: 12px;
}

.woocommerce div.product .product_meta {
  font-size: 13px;
  color: var(--color-ink-muted);
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.woocommerce div.product .product_meta > span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.woocommerce div.product .product_meta a {
  color: var(--color-primary-dark);
  text-decoration: none;
}
.woocommerce div.product .product_meta a:hover {
  text-decoration: underline;
}

/* Purchase Box (価格・カート) */
.a-styles-purchase-box {
  background-color: rgba(120, 194, 196, 0.05); /* Extremely subtle primary tint */
  border: 1px solid rgba(120, 194, 196, 0.3);
  border-radius: var(--radius-xl);
  padding: 24px;
  margin-top: 24px;
  margin-bottom: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

.a-styles-purchase-box .price {
  font-size: 28px;
  font-weight: 700;
  color: var(--color-ink);
  margin-bottom: 20px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  border-bottom: 1px dashed var(--color-border);
  padding-bottom: 16px;
}

.a-styles-purchase-box .price ins {
  text-decoration: none;
  color: var(--color-secondary);
}

.a-styles-purchase-box .price del {
  font-size: 16px;
  color: var(--color-ink-muted);
  font-weight: normal;
}

.a-styles-purchase-box .price > .woocommerce-Price-amount::after,
.a-styles-purchase-box .price ins > .woocommerce-Price-amount::after {
  content: ' (税込)';
  font-size: 14px;
  font-weight: 500;
  color: var(--color-ink-muted);
  margin-left: 4px;
}

/* Cart Form */
.a-styles-purchase-box form.cart {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 0;
}

@media (min-width: 480px) {
  .a-styles-purchase-box form.cart {
    flex-direction: row;
    align-items: stretch;
  }
}

.a-styles-purchase-box form.cart .quantity {
  flex-shrink: 0;
}
.a-styles-purchase-box form.cart .quantity input.qty {
  width: 80px;
  height: 52px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-ink);
  background: var(--color-surface);
  padding: 0 10px;
}

.a-styles-purchase-box form.cart button.single_add_to_cart_button {
  flex-grow: 1;
  height: 52px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-radius: var(--radius-xl);
  background: var(--color-primary);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(120, 194, 196, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.a-styles-purchase-box form.cart button.single_add_to_cart_button:hover {
  background: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(120, 194, 196, 0.35);
}

/* --- Variable Product: Variation Selector --- */
.a-styles-purchase-box .variations {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}
.a-styles-purchase-box .variations td {
  padding: 8px 0;
  border: none;
}
.a-styles-purchase-box .variations td.label {
  width: auto;
  padding-right: 16px;
  white-space: nowrap;
}
.a-styles-purchase-box .variations td.label label {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-ink);
}
.a-styles-purchase-box .variations td.value {
  width: 100%;
}
.a-styles-purchase-box .variations td.value select {
  width: 100%;
  height: 48px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0 16px;
  font-family: var(--font-base);
  font-size: 15px;
  color: var(--color-ink);
  background: var(--color-surface);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px;
  transition: border-color 0.2s;
}
.a-styles-purchase-box .variations td.value select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(120, 194, 196, 0.15);
}
.a-styles-purchase-box .variations .reset_variations {
  font-size: 12px;
  color: var(--color-ink-muted);
  text-decoration: underline;
  margin-top: 4px;
  display: inline-block;
}
.a-styles-purchase-box .variations .reset_variations:hover {
  color: var(--color-primary-dark);
}

/* Variable product: cart form layout (needs column direction for variations + qty + button) */
.a-styles-purchase-box form.cart.variations_form {
  flex-direction: column;
}
.a-styles-purchase-box .single_variation_wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.a-styles-purchase-box .single_variation_wrap .woocommerce-variation {
  margin-bottom: 0;
}
.a-styles-purchase-box .single_variation_wrap .woocommerce-variation-price {
  margin-bottom: 0;
}
.a-styles-purchase-box .single_variation_wrap .woocommerce-variation-add-to-cart {
  display: flex;
  gap: 16px;
  align-items: stretch;
}
@media (max-width: 479px) {
  .a-styles-purchase-box .single_variation_wrap .woocommerce-variation-add-to-cart {
    flex-direction: column;
  }
}
.a-styles-purchase-box .woocommerce-variation-availability p.stock {
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}
.a-styles-purchase-box .woocommerce-variation-availability .in-stock {
  color: #2e8b57;
}
.a-styles-purchase-box .woocommerce-variation-availability .out-of-stock {
  color: #c0392b;
}

/* Product Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border-bottom: 2px solid var(--color-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 12px 24px;
  font-weight: 700;
  font-size: 15px;
  color: var(--color-ink-muted);
  text-decoration: none;
  border: 2px solid transparent;
  border-bottom: none;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  background: var(--color-base);
  transition: all 0.2s;
  position: relative;
  top: 2px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--color-ink);
  background: var(--color-surface);
  border-color: var(--color-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-surface);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--color-primary-dark);
}
.woocommerce div.product .woocommerce-tabs .panel {
  padding: 24px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0 var(--radius-xl) var(--radius-xl) var(--radius-xl);
  margin-bottom: 40px;
}

/* --- Product Reviews (Japanese EC Style) --- */
#reviews {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

@media (min-width: 769px) {
  #reviews {
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
  }
  #reviews #comments {
    flex: 1;
  }
  #reviews #review_form_wrapper {
    width: 360px;
    flex-shrink: 0;
  }
}

#reviews h2.woocommerce-Reviews-title {
  font-size: 20px;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-border);
}

/* Existing Reviews */
#reviews .commentlist {
  list-style: none;
  padding: 0;
  margin: 0;
}
#reviews .commentlist li.review {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px dashed var(--color-border);
}
#reviews .commentlist li.review:last-child {
  border-bottom: none;
}
#reviews .commentlist li.review .comment_container {
  display: flex;
  gap: 16px;
}
#reviews .commentlist li.review img.avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}
#reviews .commentlist li.review .comment-text {
  flex: 1;
}
#reviews .commentlist li.review .meta {
  font-size: 13px;
  color: var(--color-ink-muted);
  margin-bottom: 8px;
}
#reviews .commentlist li.review .meta strong {
  color: var(--color-ink);
  font-size: 14px;
  margin-right: 8px;
}
#reviews .commentlist li.review .description {
  font-size: 14px;
  line-height: 1.6;
}

/* Review Form */
#review_form_wrapper {
  background: rgba(120, 194, 196, 0.05);
  border: 1px solid var(--color-border);
  padding: 24px;
  border-radius: var(--radius-xl);
}

#review_form #reply-title {
  display: block;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--color-ink);
}

.comment-form-rating {
  margin-bottom: 20px;
}
.comment-form-rating label {
  display: block;
  font-weight: 700;
  margin-bottom: 8px;
  font-size: 14px;
}

/* Fix WooCommerce Default Star Rating HTML */
p.stars {
  margin: 0;
  display: flex;
  gap: 4px;
}
p.stars a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  text-indent: -9999px;
  width: 24px;
  height: 24px;
}
p.stars a::before {
  content: '☆';
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  line-height: 24px;
  font-size: 24px;
  text-indent: 0;
  color: #ccc; /* Default empty star color */
  font-family: sans-serif;
}
p.stars a:hover ~ a::before {
  content: '☆';
  color: #ccc;
}
p.stars.selected a.active ~ a::before {
  content: '☆';
  color: #ccc;
}
p.stars:hover a::before,
p.stars.selected a::before {
  content: '★';
  color: #ffb800; /* Gold color for filled stars */
}

/* Form Inputs */
#review_form .comment-form-comment {
  margin-bottom: 16px;
}
#review_form .comment-form-comment label {
  display: block;
  font-weight: 700;
  margin-bottom: 8px;
  font-size: 14px;
}
#review_form .comment-form-comment textarea {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 12px;
  font-family: var(--font-base);
  font-size: 14px;
  min-height: 120px;
  resize: vertical;
  background: var(--color-surface);
}

#review_form .form-submit {
  margin-top: 16px;
  margin-bottom: 0;
}
#review_form .form-submit input.submit {
  width: 100%;
  background: var(--color-primary);
  color: #fff;
  border: none;
  padding: 12px;
  font-size: 15px;
  font-weight: 700;
  border-radius: var(--radius-xl);
  cursor: pointer;
  transition: all 0.2s ease;
}
#review_form .form-submit input.submit:hover {
  background: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(120, 194, 196, 0.25);
}

/* --------------------------------------------------------------------------
   Cart
   -------------------------------------------------------------------------- */
/* 追尾時、画面上部の sticky ヘッダー（告知バー＋ナビ）のおおよその高さ */
body.woocommerce-cart {
  --a-styles-sticky-header-offset: 112px;
}

.a-styles-cart-free-ship {
  margin-bottom: 24px;
  max-width: 560px;
}

/* 固定ページ内カート: 送料バーはコンテナ幅いっぱい（Grid 1行目で全幅） */
body.woocommerce-cart .entry-content .woocommerce > .a-styles-cart-free-ship {
  max-width: none;
}

/*
 * 明細 + 合計の2カラム（WC 標準 CSS 無効化の代替）
 * 子セレクタは .woocommerce 直下のみ。親は > ではなく後代にしてブロックラッパー内でも効かせる。
 */
body.woocommerce-cart .entry-content .woocommerce {
  display: grid;
  gap: 24px 32px;
  width: 100%;
  max-width: 100%;
}

/* タブレット幅から明細左・合計右（チェックアウト等と同じ 769px 基準） */
@media (min-width: 769px) {
  body.woocommerce-cart .entry-content .woocommerce {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
    align-items: start;
  }
  /* WC が woocommerce_before_cart で先に出す通知。左1列だけ占有すると列2行1が空になるため全幅行にする */
  body.woocommerce-cart .entry-content .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }
  body.woocommerce-cart .entry-content .woocommerce > .a-styles-cart-free-ship {
    grid-column: 1 / -1;
  }
  body.woocommerce-cart .entry-content .woocommerce > .woocommerce-cart-form {
    grid-column: 1;
    min-width: 0;
  }
  body.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
    grid-column: 2;
    min-width: 0;
    align-self: start;
    /* 明細が長いとき合計ブロックをビューポートに追尾（sticky ヘッダー分を top に確保） */
    position: sticky;
    top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px);
    z-index: 1;
  }
}

/* 管理バー表示時は追尾位置を下げる（固定バー分） */
body.admin-bar.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
  top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px + var(--wp-admin--admin-bar--height, 32px));
}

@media screen and (max-width: 782px) {
  body.admin-bar.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
    top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px + var(--wp-admin--admin-bar--height, 46px));
  }
}

@media (max-width: 768px) {
  body.woocommerce-cart .entry-content .woocommerce > .cart-collaterals {
    position: static;
    top: auto;
    z-index: auto;
  }
}

body.woocommerce-cart .woocommerce-cart-form {
  width: 100%;
  max-width: 100%;
}

body.woocommerce-cart .cart-collaterals {
  float: none;
  width: 100%;
  clear: both;
}

body.woocommerce-cart .cart-collaterals .cross-sells {
  float: none;
  width: 100%;
  margin-bottom: 24px;
}

.woocommerce table.shop_table {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: var(--color-border);
}

body.woocommerce-cart table.shop_table.cart.woocommerce-cart-form__contents {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}

body.woocommerce-cart table.shop_table.cart th,
body.woocommerce-cart table.shop_table.cart td {
  padding: 12px 14px;
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table.cart .product-remove {
  width: 44px;
  text-align: center;
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table.cart .product-thumbnail {
  width: 120px;
  max-width: 28%;
}

body.woocommerce-cart table.shop_table.cart .product-thumbnail img {
  max-width: 100px;
  width: 100%;
  height: auto;
  display: block;
}

body.woocommerce-cart table.shop_table.cart .product-name {
  text-align: left;
}

body.woocommerce-cart table.shop_table.cart .product-price,
body.woocommerce-cart table.shop_table.cart .product-subtotal {
  text-align: right;
  white-space: nowrap;
}

body.woocommerce-cart table.shop_table.cart .product-quantity {
  text-align: center;
}

body.woocommerce-cart table.shop_table.cart .quantity .qty {
  width: 72px;
  padding: 8px;
  text-align: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: var(--font-base);
}

body.woocommerce-cart table.shop_table.cart td.actions {
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text {
  min-width: 0;
  flex: 1 1 160px;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: var(--font-base);
}

body.woocommerce-cart table.shop_table.cart td.actions > .button {
  margin-top: 4px;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: 100%;
  margin: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 20px 22px 22px;
  box-sizing: border-box;
}

body.woocommerce-cart .cart-collaterals .cart_totals h2 {
  font-size: 18px;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border);
}

/* 合計内の shop_table — 外側カードと二重にならないよう内側の枠・角丸を外す */
body.woocommerce-cart .cart_totals table.shop_table {
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  margin: 0;
  width: 100%;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
  padding: 12px 0;
  vertical-align: top;
  border-left: none;
  border-right: none;
  border-top: none;
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-cart .cart_totals table.shop_table tr:last-child th,
body.woocommerce-cart .cart_totals table.shop_table tr:last-child td {
  border-bottom: none;
}

body.woocommerce-cart .cart_totals table.shop_table .order-total th,
body.woocommerce-cart .cart_totals table.shop_table .order-total td {
  padding-top: 16px;
  border-top: 2px solid var(--color-border);
  border-bottom: none;
  font-weight: 700;
  font-size: 16px;
  vertical-align: middle;
}

body.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
  margin-top: 20px;
  padding-top: 4px;
}

body.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  margin-bottom: 0;
}

/* shop_table_responsive — カート明細テーブルのみ（合計テーブルは通常の2列のまま） */
@media (max-width: 768px) {
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart thead {
    display: none;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tbody tr:first-child td:first-child {
    border-top: 0;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tbody th {
    display: none;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr {
    display: block;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: right !important;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td::before {
    content: attr(data-title) ': ';
    font-weight: 700;
    float: left;
    clear: left;
    margin-right: 8px;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.product-remove::before,
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.actions::before {
    display: none;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.product-remove {
    text-align: center !important;
    border-bottom: 0;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.product-thumbnail::before {
    display: none;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.product-thumbnail {
    text-align: center !important;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.product-thumbnail img {
    max-width: 120px;
    margin-inline: auto;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr td.actions {
    text-align: left !important;
  }
  body.woocommerce-cart .woocommerce table.shop_table_responsive.cart tr:nth-child(2n) td {
    background-color: rgba(0, 0, 0, 0.02);
  }
  body.woocommerce-cart table.cart td.actions .coupon {
    float: none;
    flex-direction: column;
    align-items: stretch;
  }
  body.woocommerce-cart table.cart td.actions .coupon .input-text {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   Checkout — 左: お客様情報 / 右: 注文・支払い（デスクトップ sticky）
   -------------------------------------------------------------------------- */
body.woocommerce-checkout {
  --a-styles-checkout-aside-width: minmax(300px, 440px);
  --a-styles-sticky-header-offset: 112px;
}

.a-styles-checkout-shell {
  padding-top: 24px;
  padding-bottom: 64px;
}

.a-styles-checkout-layout {
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
}

@media (min-width: 769px) {
  .a-styles-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--a-styles-checkout-aside-width);
    align-items: start;
    gap: 36px 48px;
  }
}

.a-styles-checkout-main {
  min-width: 0;
}

/* メイン列の読みやすさ（広すぎる入力幅を抑える） */
@media (min-width: 900px) {
  body.woocommerce-checkout .a-styles-checkout-main {
    max-width: 640px;
  }
}

.a-styles-checkout-aside {
  min-width: 0;
}

@media (min-width: 769px) {
  .a-styles-checkout-aside {
    position: sticky;
    top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px);
    z-index: 1;
  }
}

body.admin-bar.woocommerce-checkout .a-styles-checkout-aside {
  top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px + var(--wp-admin--admin-bar--height, 32px));
}

@media screen and (max-width: 782px) {
  body.admin-bar.woocommerce-checkout .a-styles-checkout-aside {
    top: calc(var(--a-styles-sticky-header-offset, 112px) + 16px + var(--wp-admin--admin-bar--height, 46px));
  }
}

@media (max-width: 768px) {
  .a-styles-checkout-aside {
    position: static;
    top: auto;
    z-index: auto;
  }
}

/*
 * 請求（col-1）と配送・注文メモ（col-2）を横並びにすると「3列」に見えて窮屈になるため、
 * 769px 以上でも縦積み。全体は「左: 入力の流れ / 右: 注文・支払い」の2カラムに統一。
 */
.a-styles-checkout-shell .checkout .col2-set {
  display: grid;
  gap: 28px;
  grid-template-columns: 1fr;
}

body.woocommerce-checkout .a-styles-checkout-main .col-1,
body.woocommerce-checkout .a-styles-checkout-main .col-2 {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 22px 22px 24px;
  box-sizing: border-box;
}

body.woocommerce-checkout #ship-to-different-address {
  margin: 0 0 12px;
  padding: 0;
  border: none;
}

body.woocommerce-checkout #ship-to-different-address label {
  font-weight: 600;
  font-size: 15px;
  line-height: 1.45;
  cursor: pointer;
}

body.woocommerce-checkout .woocommerce-shipping-fields .shipping_address {
  margin-top: 8px;
}

/* フィールドラッパー: 半幅ペアを揃える（float を打ち消し） */
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px 20px;
}
@media (min-width: 481px) {
  body.woocommerce-checkout .a-styles-checkout-main .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .a-styles-checkout-main .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.woocommerce-checkout .a-styles-checkout-main .woocommerce-billing-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-shipping-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-billing-fields__field-wrapper #order_comments_field,
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-shipping-fields__field-wrapper #order_comments_field {
  grid-column: 1 / -1;
}

body.woocommerce-checkout .a-styles-checkout-main .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

body.woocommerce-checkout .a-styles-checkout-main .woocommerce-additional-fields__field-wrapper .form-row-wide,
body.woocommerce-checkout .a-styles-checkout-main .woocommerce-additional-fields__field-wrapper #order_comments_field {
  grid-column: 1 / -1;
}

body.woocommerce-checkout .woocommerce-additional-fields > h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 20px 0 12px;
  color: var(--color-ink);
}

body.woocommerce-checkout .a-styles-checkout-main .form-row-first,
body.woocommerce-checkout .a-styles-checkout-main .form-row-last {
  float: none;
  width: 100%;
  margin-right: 0;
}

body.woocommerce-checkout .form-row {
  margin: 0 0 4px;
  padding: 0;
}

body.woocommerce-checkout .form-row label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  font-size: 14px;
  color: var(--color-ink);
}

body.woocommerce-checkout .form-row label.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 500;
  cursor: pointer;
}

body.woocommerce-checkout .form-row label.checkbox input {
  margin-top: 4px;
  flex-shrink: 0;
}

body.woocommerce-checkout .form-row .optional {
  font-weight: 400;
  color: var(--color-ink-muted);
  font-size: 12px;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  font-family: var(--font-base);
  font-size: 15px;
}

body.woocommerce-checkout .form-row select {
  min-height: 44px;
  background-color: var(--color-surface);
  cursor: pointer;
}

body.woocommerce-checkout .form-row input.input-text:hover,
body.woocommerce-checkout .form-row textarea:hover,
body.woocommerce-checkout .form-row select:hover {
  border-color: rgba(120, 194, 196, 0.65);
}

body.woocommerce-checkout .form-row input.input-text:focus-visible,
body.woocommerce-checkout .form-row textarea:focus-visible,
body.woocommerce-checkout .form-row select:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(120, 194, 196, 0.35);
}

body.woocommerce-checkout #order_comments {
  display: block;
  width: 100%;
  min-height: 120px;
  margin-top: 0;
  resize: vertical;
  line-height: 1.5;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3 {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-border);
  color: var(--color-ink);
}

body.woocommerce-checkout #order_review_heading {
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-border);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-ink);
}

body.woocommerce-checkout .woocommerce-checkout-review-order,
body.woocommerce-checkout #order_review.woocommerce-checkout-review-order {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 18px 20px 22px;
  box-sizing: border-box;
}

body.woocommerce-checkout #order_review .shop_table {
  width: 100%;
  margin: 0 0 16px;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

body.woocommerce-checkout #order_review .shop_table th,
body.woocommerce-checkout #order_review .shop_table td {
  padding: 10px 0;
  border-left: none;
  border-right: none;
  vertical-align: top;
}

body.woocommerce-checkout #order_review .shop_table thead th {
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-checkout #order_review .shop_table tbody td {
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-checkout #order_review .shop_table tfoot th,
body.woocommerce-checkout #order_review .shop_table tfoot td {
  border-bottom: 1px solid var(--color-border);
}

body.woocommerce-checkout #order_review .shop_table tfoot .order-total th,
body.woocommerce-checkout #order_review .shop_table tfoot .order-total td {
  border-bottom: none;
  font-size: 16px;
  font-weight: 700;
  padding-top: 14px;
}

body.woocommerce-checkout #payment {
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border);
  background: transparent;
}

body.woocommerce-checkout #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  border: none;
}

body.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

body.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: var(--radius-md);
  background: rgba(188, 226, 226, 0.25);
  border: 1px solid var(--color-border);
  font-size: 13px;
  line-height: 1.55;
  max-height: 220px;
  overflow-y: auto;
}

body.woocommerce-checkout #place_order {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 20px;
  padding: 16px 24px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
body.woocommerce-checkout .woocommerce-privacy-policy-text {
  font-size: 13px;
  line-height: 1.65;
  color: var(--color-ink-muted);
  margin-bottom: 12px;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .checkout_coupon {
  margin-bottom: 20px;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
  color: var(--color-primary-dark);
  text-decoration: underline;
  font-weight: 600;
}

/* チェックアウト: クーポン入力とボタンの間が詰まらないよう余白を確保 */
body.woocommerce-checkout form.checkout_coupon.woocommerce-form-coupon {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px 18px;
  margin-top: 12px;
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-sizing: border-box;
}

body.woocommerce-checkout form.checkout_coupon .form-row {
  float: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

body.woocommerce-checkout form.checkout_coupon .form-row .input-text {
  margin: 0;
}

body.woocommerce-checkout form.checkout_coupon .clear {
  display: none;
}

@media (min-width: 480px) {
  body.woocommerce-checkout form.checkout_coupon.woocommerce-form-coupon {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 14px 16px;
  }
  body.woocommerce-checkout form.checkout_coupon .form-row-first {
    flex: 1 1 200px;
    min-width: 0;
  }
  body.woocommerce-checkout form.checkout_coupon .form-row-last {
    flex: 0 0 auto;
  }
  body.woocommerce-checkout form.checkout_coupon .form-row-last .button {
    white-space: nowrap;
    padding-inline: 22px;
    min-height: 44px;
  }
}

/* --------------------------------------------------------------------------
   My Account — Login / Register (guests)
   -------------------------------------------------------------------------- */
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
  max-width: 1040px;
  margin-inline: auto;
}

.a-styles-account-auth {
  padding: clamp(28px, 5vw, 48px) 0 clamp(40px, 6vw, 64px);
}

.a-styles-account-auth__hero {
  text-align: center;
  margin-bottom: clamp(28px, 4vw, 40px);
  padding: clamp(28px, 5vw, 40px) 20px;
  border-radius: var(--radius-lg);
  background: linear-gradient(
    135deg,
    var(--color-secondary-light) 0%,
    var(--color-base) 48%,
    var(--color-primary-light) 100%
  );
  border: 1px solid var(--color-border);
}

.a-styles-account-auth__eyebrow {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary-dark);
}

.a-styles-account-auth__title {
  margin: 0 0 10px;
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--color-ink);
  line-height: 1.35;
}

.a-styles-account-auth__title::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  margin: 14px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);
}

.a-styles-account-auth__lead {
  margin: 0 auto;
  max-width: 34em;
  font-size: 14px;
  line-height: 1.75;
  color: var(--color-ink-muted);
}

.a-styles-account-auth__grid {
  display: grid;
  gap: 24px;
  align-items: stretch;
}

@media (min-width: 900px) {
  .a-styles-account-auth__grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  .a-styles-account-auth__grid--login-only {
    grid-template-columns: minmax(0, 480px);
    justify-content: center;
  }
}

.a-styles-account-auth__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(22px, 3vw, 28px);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.a-styles-account-auth__card--register {
  border-top: 3px solid var(--color-secondary);
}

.a-styles-account-auth__card--login {
  border-top: 3px solid var(--color-primary);
}

.a-styles-account-auth__card-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}

.a-styles-account-auth__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}

.a-styles-account-auth__icon svg {
  width: 22px;
  height: 22px;
}

.a-styles-account-auth__icon--secondary {
  background: rgba(244, 175, 167, 0.35);
  color: #b85a52;
}

.a-styles-account-auth__card-title {
  margin: 0 0 4px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--color-ink);
}

.a-styles-account-auth__card-lead {
  margin: 0;
  font-size: 13px;
  color: var(--color-ink-muted);
  line-height: 1.5;
}

.a-styles-account-auth__benefits {
  list-style: none;
  margin: 0 0 20px;
  padding: 14px 16px;
  border-radius: var(--radius-md);
  background: var(--color-base);
  border: 1px solid var(--color-border);
}

.a-styles-account-auth__benefits li {
  position: relative;
  margin: 0;
  padding: 6px 0 6px 22px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--color-ink);
}

.a-styles-account-auth__benefits li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-primary);
}

.a-styles-account-auth__form {
  display: flex;
  flex-direction: column;
  flex: 1;
  margin: 0;
}

.a-styles-account-auth__form .form-row {
  float: none;
  width: 100%;
  margin: 0 0 16px;
  padding: 0;
}

.a-styles-account-auth__form .form-row label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
  line-height: 1.4;
}

.a-styles-account-auth__form .form-row label .required {
  color: var(--color-secondary-dark, #c96b62);
}

.a-styles-account-auth__form .input-text {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: var(--font-base);
  font-size: 15px;
  line-height: 1.4;
  background: var(--color-surface);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.a-styles-account-auth__form .input-text:hover {
  border-color: rgba(120, 194, 196, 0.65);
}

.a-styles-account-auth__form .input-text:focus-visible {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(120, 194, 196, 0.35);
}

/* WC 標準スタイル無効化時のパスワード表示トグル（未スタイルだと「。」のように見える） */
.a-styles-account-auth .password-input,
body.woocommerce-account .password-input,
body.woocommerce-checkout .password-input {
  display: block;
  position: relative;
  width: 100%;
}

.a-styles-account-auth .password-input input,
body.woocommerce-account .password-input input,
body.woocommerce-checkout .password-input input {
  padding-right: 48px;
}

.a-styles-account-auth .show-password-input,
body.woocommerce-account .show-password-input,
body.woocommerce-checkout .show-password-input {
  position: absolute;
  top: 50%;
  right: 12px;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-ink-muted);
  cursor: pointer;
  transform: translateY(-50%);
  font-size: 0;
  line-height: 0;
  -webkit-appearance: none;
  appearance: none;
}

.a-styles-account-auth .show-password-input::before,
body.woocommerce-account .show-password-input::before,
body.woocommerce-checkout .show-password-input::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  margin: 0 auto;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z' fill='%23515151'/%3E%3C/svg%3E");
}

.a-styles-account-auth .show-password-input.display-password::before,
body.woocommerce-account .show-password-input.display-password::before,
body.woocommerce-checkout .show-password-input.display-password::before {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.3 9.5C15 4.9 8.5 3.8 3.9 7.2C2.7 8.1 1.7 9.3 0.9 10.6C1.1 11 1.4 11.4 1.7 11.8C5 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.8 18.3 9.5ZM10.1 7.2C10.6 6.7 11.4 6.7 11.9 7.2C12.4 7.7 12.4 8.5 11.9 9C11.4 9.5 10.6 9.5 10.1 9C9.6 8.5 9.6 7.7 10.1 7.2ZM10 14.9C6.9 14.9 4 13.3 2.3 10.7C3.5 9 5.1 7.8 7 7.2C6.3 8 6 8.9 6 9.9C6 12.1 7.7 14 10 14C12.2 14 14.1 12.3 14.1 10V9.9C14.1 8.9 13.7 7.9 13 7.2C14.9 7.8 16.5 9 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z' fill='%23515151'/%3E%3C/svg%3E");
}

.a-styles-account-auth .show-password-input:hover,
.a-styles-account-auth .show-password-input:focus-visible,
body.woocommerce-account .show-password-input:hover,
body.woocommerce-account .show-password-input:focus-visible,
body.woocommerce-checkout .show-password-input:hover,
body.woocommerce-checkout .show-password-input:focus-visible {
  background: var(--color-primary-light);
  outline: none;
}

.a-styles-account-auth__note {
  margin: 0 0 16px;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-ink-muted);
  background: var(--color-base);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.a-styles-account-auth__form-actions {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: auto;
  padding-top: 4px;
}

.a-styles-account-auth__remember {
  display: flex !important;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer;
}

.a-styles-account-auth__remember input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--color-primary);
}

.a-styles-account-auth__form .button,
.a-styles-account-auth__form .woocommerce-button {
  width: 100%;
  min-height: 48px;
  margin: 0 !important;
  float: none !important;
}

.a-styles-account-auth__lost {
  margin: 16px 0 0 !important;
  padding: 0;
  text-align: center;
  font-size: 13px;
}

.a-styles-account-auth__lost a {
  color: var(--color-primary-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.a-styles-account-auth__lost a:hover {
  color: var(--color-primary);
}

.a-styles-account-auth__privacy {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border);
}

.a-styles-account-auth__privacy p {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: var(--color-ink-muted);
}

.a-styles-account-auth__privacy a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}

/* Legacy WooCommerce col2-set reset on auth page */
.woocommerce-account:not(.logged-in) #customer_login,
.woocommerce-account:not(.logged-in) .u-columns.col2-set {
  display: contents;
}

/* --------------------------------------------------------------------------
   My Account — Logged-in
   -------------------------------------------------------------------------- */
.woocommerce-account.logged-in .entry-content > .woocommerce {
  max-width: 1080px;
  margin-inline: auto;
}

.a-styles-account-shell {
  padding: clamp(24px, 4vw, 40px) 0 clamp(40px, 6vw, 64px);
}

.a-styles-account-shell__hero {
  text-align: center;
  margin-bottom: clamp(24px, 4vw, 32px);
}

.a-styles-account-shell__eyebrow {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary-dark);
}

.a-styles-account-shell__title {
  margin: 0;
  font-size: clamp(22px, 4vw, 28px);
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--color-ink);
  line-height: 1.35;
}

.a-styles-account-shell__title::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  margin: 14px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);
}

.a-styles-account-shell__layout {
  display: grid;
  gap: 20px;
  align-items: start;
}

@media (min-width: 900px) {
  .a-styles-account-shell__layout {
    grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
    gap: 28px;
  }
}

.a-styles-account-shell__content {
  min-width: 0;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

/* Sidebar navigation */
.a-styles-account-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

@media (max-width: 899px) {
  .a-styles-account-nav__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }
}

.a-styles-account-nav__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-ink);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

@media (max-width: 899px) {
  .a-styles-account-nav__link {
    padding: 8px 12px;
  }
  .a-styles-account-nav__label {
    white-space: nowrap;
  }
}

.a-styles-account-nav__icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--color-primary-dark);
}

.a-styles-account-nav__icon svg {
  width: 20px;
  height: 20px;
}

.a-styles-account-nav__item.is-active .a-styles-account-nav__link,
.a-styles-account-nav__link:hover,
.a-styles-account-nav__link:focus-visible {
  background: var(--color-primary-light);
  border-color: var(--color-primary);
  color: var(--color-primary-dark);
}

.a-styles-account-nav__item.woocommerce-MyAccount-navigation-link--customer-logout .a-styles-account-nav__link {
  margin-top: 4px;
}

@media (min-width: 900px) {
  .a-styles-account-nav__item.woocommerce-MyAccount-navigation-link--customer-logout .a-styles-account-nav__link {
    margin-top: 10px;
    border-color: rgba(244, 175, 167, 0.65);
  }
}

/* Notices（WC 標準 CSS 無効時のアイコン文字化け対策） */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error::before {
  display: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
  margin: 0 0 20px;
  padding: 14px 16px;
  border-radius: var(--radius-md);
  font-size: 14px;
  line-height: 1.65;
  list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-primary);
  color: var(--color-ink);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
  background: rgba(120, 194, 196, 0.12);
  border: 1px solid var(--color-primary-light);
  color: var(--color-ink);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
  background: rgba(244, 175, 167, 0.2);
  border: 1px solid var(--color-secondary);
  color: var(--color-ink);
}

/* Dashboard */
.a-styles-account-dashboard__welcome {
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--color-border);
}

.a-styles-account-dashboard__greeting {
  margin: 0 0 6px;
  font-size: clamp(18px, 3vw, 22px);
  font-weight: 800;
  color: var(--color-ink);
}

.a-styles-account-dashboard__logout {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--color-ink-muted);
}

.a-styles-account-dashboard__logout a {
  color: var(--color-primary-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.a-styles-account-dashboard__intro {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-ink-muted);
}

.a-styles-account-dashboard__grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}

@media (min-width: 560px) {
  .a-styles-account-dashboard__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.a-styles-account-dashboard__card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
  color: var(--color-ink);
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.a-styles-account-dashboard__card:hover,
.a-styles-account-dashboard__card:focus-visible {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
  color: var(--color-ink);
}

.a-styles-account-dashboard__card-icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}

.a-styles-account-dashboard__card-icon svg {
  width: 20px;
  height: 20px;
}

.a-styles-account-dashboard__card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.a-styles-account-dashboard__card-title {
  font-size: 15px;
  font-weight: 700;
}

.a-styles-account-dashboard__card-desc {
  font-size: 12px;
  color: var(--color-ink-muted);
  line-height: 1.5;
}

/* Account endpoints — shared layout */
.a-styles-account-endpoint-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.a-styles-account-page-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-border);
}

.a-styles-account-page-head__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--color-base);
  color: var(--color-primary-dark);
}

.a-styles-account-page-head__icon svg {
  width: 22px;
  height: 22px;
}

.a-styles-account-page-head__title {
  margin: 0 0 6px;
  font-size: clamp(18px, 3vw, 22px);
  font-weight: 800;
  color: var(--color-ink);
  line-height: 1.35;
}

.a-styles-account-page-head__lead {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--color-ink-muted);
}

.a-styles-account-lead {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--color-ink-muted);
}

.a-styles-account-back {
  margin: -8px 0 0;
}

.a-styles-account-back__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark);
  text-decoration: none;
}

.a-styles-account-back__link:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.a-styles-account-section-title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 800;
  color: var(--color-ink);
}

/* Address cards */
.a-styles-account-addresses {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.a-styles-account-addresses--grid {
  display: grid;
  gap: 16px;
}

@media (min-width: 640px) {
  .a-styles-account-addresses--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.a-styles-account-address-card {
  margin: 0;
  padding: 18px 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

.a-styles-account-address-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  padding: 0;
}

.a-styles-account-address-card__title {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: var(--color-ink);
}

.a-styles-account-address-card__edit {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark);
  text-decoration: none;
}

.a-styles-account-address-card__edit:hover {
  text-decoration: underline;
}

.a-styles-account-address-card__body {
  margin: 0;
  font-style: normal;
  font-size: 14px;
  line-height: 1.75;
  color: var(--color-ink);
}

/* Forms */
.a-styles-account-form .clear,
.woocommerce-account .woocommerce-MyAccount-content .clear {
  display: none;
}

.a-styles-account-form__grid {
  display: grid;
  gap: 0 16px;
}

@media (min-width: 560px) {
  .a-styles-account-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.a-styles-account-form__hint {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  color: var(--color-ink-muted);
  line-height: 1.5;
}

.a-styles-account-form__fieldset {
  margin: 8px 0 0;
  padding: 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

.a-styles-account-form__fieldset legend {
  padding: 0 6px;
  font-size: 15px;
  font-weight: 800;
  color: var(--color-ink);
}

.a-styles-account-form__fieldset-note {
  margin: 0 0 16px;
  font-size: 13px;
  color: var(--color-ink-muted);
}

.a-styles-account-form__actions {
  margin: 8px 0 0;
  padding-top: 8px;
}

.woocommerce-account .woocommerce-MyAccount-content .a-styles-account-endpoint-body > h2,
.woocommerce-account .woocommerce-MyAccount-content .a-styles-account-endpoint-body > h3,
.woocommerce-account .woocommerce-MyAccount-content .a-styles-account-section-title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 800;
  color: var(--color-ink);
}

.woocommerce-account .woocommerce-MyAccount-content .form-row,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row {
  float: none;
  width: 100%;
  margin: 0 0 16px;
  padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row label,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content .input-text,
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-MyAccount-content textarea,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-family: var(--font-base);
  font-size: 15px;
  background: var(--color-surface);
}

.woocommerce-account .woocommerce-MyAccount-content .input-text:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content select:focus-visible,
.woocommerce-account .woocommerce-MyAccount-content textarea:focus-visible {
  border-color: var(--color-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(120, 194, 196, 0.35);
}

.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border-radius: var(--radius-md);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.woocommerce-account .woocommerce-MyAccount-content .button:not(.btn--primary),
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button.button:not(.btn--primary) {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-ink);
}

.woocommerce-account .woocommerce-MyAccount-content .button:not(.btn--primary):hover,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button.button:not(.btn--primary):hover {
  border-color: var(--color-primary);
  color: var(--color-primary-dark);
}

/* Tables — orders, downloads, payment methods */
.a-styles-account-table-wrap {
  overflow-x: auto;
  margin: 0 -4px;
  padding: 0 4px;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
  padding: 14px 12px;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: middle;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead th {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-ink-muted);
  background: var(--color-base);
  border-bottom-width: 2px;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr:last-child td,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr:last-child th {
  border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table a {
  font-weight: 600;
  color: var(--color-primary-dark);
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table a:hover {
  text-decoration: underline;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table .button {
  min-height: 40px;
  padding: 8px 14px;
  font-size: 13px;
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead {
    display: none;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tr {
    display: block;
    margin-bottom: 12px;
    padding: 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-base);
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tr:last-child {
    margin-bottom: 0;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive td,
  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive th {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border: none;
    text-align: right;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive td::before,
  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive th::before {
    content: attr(data-title);
    font-weight: 700;
    font-size: 12px;
    color: var(--color-ink-muted);
    text-align: left;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive td:last-child,
  .woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive th:last-child {
    padding-bottom: 0;
  }
}

/* Order detail view */
.a-styles-account-order-intro {
  padding: 16px 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

.a-styles-account-order-intro__status {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-ink);
}

.a-styles-account-order-intro mark {
  background: transparent;
  color: var(--color-primary-dark);
  font-weight: 700;
}

.a-styles-account-order-updates__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.a-styles-account-order-updates__item {
  padding: 14px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

.a-styles-account-order-updates__date {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-ink-muted);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-order-details,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-customer-details {
  margin-top: 8px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-order-details__title,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-column__title {
  margin: 24px 0 12px;
  font-size: 16px;
  font-weight: 800;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-columns--addresses {
  display: grid;
  gap: 16px;
}

@media (min-width: 640px) {
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-columns--addresses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-column {
  padding: 16px 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-base);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-column address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.75;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-pagination {
  margin-top: 16px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-pagination .button {
  min-height: 44px;
}

/* Reset legacy WC floats inside account */
.woocommerce-account .woocommerce-MyAccount-content .u-columns,
.woocommerce-account .woocommerce-MyAccount-content .col2-set {
  display: contents;
}

.woocommerce-account .woocommerce-MyAccount-content .u-column1,
.woocommerce-account .woocommerce-MyAccount-content .u-column2,
.woocommerce-account .woocommerce-MyAccount-content .col-1,
.woocommerce-account .woocommerce-MyAccount-content .col-2 {
  float: none;
  width: auto;
  max-width: none;
}

/* --------------------------------------------------------------------------
   Front page (loads with WooCommerce CSS on home)
   -------------------------------------------------------------------------- */
.a-styles-hero {
  background: linear-gradient(
    135deg,
    var(--color-secondary-light) 0%,
    var(--color-base) 45%,
    var(--color-primary-light) 100%
  );
  border-bottom: 1px solid var(--color-border);
}
.a-styles-hero--image {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--color-border);
  min-height: min(58vh, 520px);
  display: flex;
  align-items: center;
  background: var(--color-base);
}
.a-styles-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 42%;
  transform: scale(1);
}
.a-styles-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(30, 95, 116, 0.45) 0%,
    rgba(30, 95, 116, 0.2) 50%,
    rgba(244, 175, 167, 0.15) 100%
  );
}
.a-styles-hero--image .a-styles-hero__inner {
  position: relative;
  z-index: 1;
  padding-top: clamp(40px, 10vh, 88px);
  padding-bottom: clamp(48px, 10vh, 88px);
  text-align: center;
  width: 100%;
}
.a-styles-hero--image .a-styles-hero__eyebrow {
  color: rgba(255, 255, 255, 0.95);
}
.a-styles-hero--image .a-styles-hero__title {
  color: #fff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}
.a-styles-hero--image .a-styles-hero__lead {
  color: rgba(255, 255, 255, 0.92);
  max-width: 36em;
  margin-left: auto;
  margin-right: auto;
}
.a-styles-hero__inner {
  padding-top: 48px;
  padding-bottom: 56px;
  text-align: center;
}
.a-styles-hero__eyebrow {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary-dark);
  margin-bottom: 12px;
}
.a-styles-hero__title {
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}
.a-styles-hero__lead {
  font-size: 15px;
  color: var(--color-ink-muted);
  margin-bottom: 24px;
}
.a-styles-home-trust {
  background: var(--color-base);
  border-bottom: 1px solid var(--color-border);
  padding: 28px 0;
}
.a-styles-home-trust__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 16px;
}
@media (min-width: 900px) {
  .a-styles-home-trust__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
}
.a-styles-home-trust__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
@media (min-width: 900px) {
  .a-styles-home-trust__item {
    align-items: center;
  }
}
.a-styles-home-trust__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background: rgba(244, 175, 167, 0.35);
  color: var(--color-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.a-styles-home-trust__title {
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--color-ink);
}
.a-styles-home-trust__desc {
  font-size: 12px;
  margin: 0;
  color: var(--color-ink-muted);
  line-height: 1.45;
}
.a-styles-home-banners {
  display: grid;
  gap: 24px;
  justify-content: center;
  grid-template-columns: 1fr;
}
.a-styles-home-banners--count-1,
.a-styles-home-banners--count-2,
.a-styles-home-banners--count-3 {
  grid-template-columns: 1fr;
}
@media (min-width: 769px) {
  .a-styles-home-banners {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
  .a-styles-home-banners--count-1 {
    grid-template-columns: minmax(320px, 1fr);
    max-width: 760px;
    margin-inline: auto;
  }
  .a-styles-home-banners--count-2 {
    grid-template-columns: 1fr 1fr;
  }
  .a-styles-home-banners--count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }
  .a-styles-home-banners--count-3 .a-styles-home-banner__title {
    font-size: clamp(18px, 2.2vw, 23px);
  }
  .a-styles-home-banners--count-3 .a-styles-home-banner__lead {
    font-size: 12px;
  }
}
.a-styles-home-banner {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: inherit;
}
.a-styles-home-banner:hover .a-styles-home-banner__img {
  transform: scale(1.05);
}
.a-styles-home-banner__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.a-styles-home-banner__overlay {
  position: absolute;
  inset: 0;
  background: rgba(30, 95, 116, 0.22);
  transition: background 0.35s ease;
}
.a-styles-home-banner:hover .a-styles-home-banner__overlay {
  background: rgba(30, 95, 116, 0.08);
}
.a-styles-home-banner__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
}
.a-styles-home-banner__title {
  display: block;
  font-size: clamp(22px, 3.5vw, 28px);
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
  margin-bottom: 8px;
}
.a-styles-home-banner__lead {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
.a-styles-feature-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
}
.a-styles-feature-tabs__button {
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: #fff;
  color: var(--color-ink);
  font-size: 13px;
  font-weight: 700;
  padding: 10px 18px;
  cursor: pointer;
}
.a-styles-feature-tabs__button.is-active {
  border-color: var(--color-primary);
  background: rgba(120, 194, 196, 0.15);
}
.a-styles-feature-tabs__panel {
  display: none;
}
.a-styles-feature-tabs__panel.is-active {
  display: block;
}
.a-styles-feature-panel {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #fff;
}
.a-styles-feature-panel__hero {
  position: relative;
  min-height: 240px;
  background-size: cover;
  background-position: center;
}
.a-styles-feature-panel__overlay {
  position: absolute;
  inset: 0;
  background: rgba(30, 95, 116, 0.18);
}
.a-styles-feature-panel__content {
  position: relative;
  z-index: 1;
  color: #fff;
  text-align: center;
  padding: 64px 20px;
}
.a-styles-feature-panel__title {
  margin: 0 0 8px;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0.08em;
}
.a-styles-feature-panel__subtitle {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
}
.a-styles-feature-panel__body {
  padding: 20px;
}
.a-styles-feature-panel__banner img {
  width: 100%;
  border-radius: 14px;
  border: 1px solid var(--color-border);
  display: block;
}
.a-styles-feature-panel__meta {
  margin-top: 16px;
}
.a-styles-feature-panel__points h4,
.a-styles-feature-panel__products h4 {
  margin: 0 0 8px;
  font-size: 16px;
}
.a-styles-feature-panel__points ul {
  margin: 0;
  padding-left: 18px;
}
.a-styles-feature-panel__points li {
  margin-bottom: 6px;
  color: var(--color-ink-muted);
}
.a-styles-feature-panel__products {
  margin-top: 18px;
}
.a-styles-feature-panel__action {
  text-align: center;
  margin: 8px 0 20px;
}
.a-styles-section--ranking {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.a-styles-section {
  padding: 48px 0;
}
.a-styles-section--alt {
  background: rgba(188, 226, 226, 0.25);
}
.a-styles-muted {
  font-size: 14px;
  color: var(--color-ink-muted);
  text-align: center;
}
.a-styles-category-circles {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  justify-items: center;
}
@media (min-width: 769px) {
  .a-styles-category-circles {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.a-styles-category-circles__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-ink);
}
.a-styles-category-circles__circle {
  width: 112px;
  height: 112px;
  border-radius: var(--radius-full);
  overflow: hidden;
  border: 3px solid var(--color-border);
  background: var(--color-surface);
  display: flex;
  align-items: center;
  justify-content: center;
}
.a-styles-category-circles__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.a-styles-category-circles__placeholder {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background: var(--color-primary-light);
}

/* --------------------------------------------------------------------------
   Shop archive — sidebar layout, filters, chips
   -------------------------------------------------------------------------- */
.a-styles-shop-layout {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: 28px 32px;
  align-items: start;
  width: 100%;
}
.a-styles-shop-main {
  min-width: 0;
}
@media (min-width: 901px) {
  .a-styles-shop-sidebar {
    position: sticky;
    top: calc(var(--site-header-height, 72px) + 16px);
    align-self: start;
  }
  .a-styles-shop-sidebar__mobile {
    display: none;
  }
  .a-styles-shop-sidebar__desktop {
    display: block;
  }
  .a-styles-shop-main ul.products.a-styles-product-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 900px) {
  .a-styles-shop-layout {
    grid-template-columns: 1fr;
  }
  .a-styles-shop-sidebar__desktop {
    display: none;
  }
  .a-styles-shop-sidebar__mobile {
    display: block;
    margin-bottom: 8px;
  }
}
.a-styles-shop-sidebar__details {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: 0 16px 12px;
  margin-bottom: 16px;
}
.a-styles-shop-sidebar__summary {
  list-style: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 14px;
  padding: 14px 0;
  color: var(--color-ink);
}
.a-styles-shop-sidebar__summary::-webkit-details-marker {
  display: none;
}
.a-styles-shop-filter__heading {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 22px 0 12px;
  padding: 10px 18px;
  color: var(--color-primary-dark);
  line-height: 1.35;
  background: linear-gradient(
    145deg,
    rgba(120, 194, 196, 0.22) 0%,
    rgba(120, 194, 196, 0.08) 50%,
    rgba(247, 252, 252, 0.6) 100%
  );
  border: 1px solid rgba(120, 194, 196, 0.45);
  border-radius: var(--radius-full);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
.a-styles-shop-sidebar__desktop .a-styles-shop-filter:first-child .a-styles-shop-filter__heading,
.a-styles-shop-sidebar__details .a-styles-shop-filter:first-child .a-styles-shop-filter__heading {
  margin-top: 0;
}
.a-styles-shop-filter__list {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}
.a-styles-shop-filter__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 4px;
  font-size: 14px;
  color: var(--color-ink);
  text-decoration: none;
  border-radius: var(--radius-sm);
}
.a-styles-shop-filter__link-text {
  flex: 1 1 auto;
  min-width: 0;
}
.a-styles-shop-filter__count {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-ink-muted);
  letter-spacing: 0.02em;
}
.a-styles-shop-filter__link:hover,
.a-styles-shop-filter__link:focus-visible {
  color: var(--color-primary-dark);
  text-decoration: underline;
  outline: none;
}
.a-styles-shop-filter__link.is-active {
  font-weight: 700;
  color: var(--color-primary-dark);
  background: rgba(120, 194, 196, 0.12);
  padding-left: 10px;
  margin-left: -6px;
}
.a-styles-shop-filter__link.is-active .a-styles-shop-filter__count {
  font-weight: 600;
  color: var(--color-primary-dark);
}
.a-styles-shop-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}
.a-styles-shop-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  font-size: 12px;
  font-weight: 600;
  color: var(--color-ink);
  text-decoration: none;
}
.a-styles-shop-chip:hover,
.a-styles-shop-chip:focus-visible {
  border-color: var(--color-primary);
  outline: none;
}
.a-styles-shop-chip__remove {
  font-size: 14px;
  line-height: 1;
  opacity: 0.7;
}
.a-styles-shop-catchips {
  margin: 0 0 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.a-styles-shop-catchips__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-styles-shop-catchips__link {
  display: inline-block;
  padding: 8px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-base);
  font-size: 12px;
  font-weight: 600;
  color: var(--color-ink);
  text-decoration: none;
  white-space: nowrap;
}
.a-styles-shop-catchips__link:hover,
.a-styles-shop-catchips__link:focus-visible {
  border-color: var(--color-primary);
  outline: none;
}
