/* =========================================================
   DENU JAPAN - THEME LAYER
   Step 2: Korean-store-like minimal header / utility / overlay
========================================================= */

body.denu-custom-header .site-header {
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 0 !important;
  border-bottom: 1px solid #e8e8e8 !important;
  box-shadow: none !important;
}

body.denu-custom-header .site-header::before,
body.denu-custom-header .site-header::after {
  content: none !important;
  display: none !important;
}

body.denu-custom-header .storefront-handheld-footer-bar,
body.denu-custom-header .site-header-cart,
body.denu-custom-header .site-search,
body.denu-custom-header .main-navigation,
body.denu-custom-header .secondary-navigation {
  display: none !important;
}

.denu-announcement {
  width: 100%;
  padding: 8px 16px;
  text-align: center;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom: 1px solid #eee;
  color: #111;
  background: #fff;
}

.denu-header-main {
  width: 100%;
  background: #fff;
}

.denu-header-main__inner {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  padding: 22px 32px 16px;
}

.denu-head-nav {
  display: flex;
  align-items: center;
  gap: 34px;
  line-height: 1;
}

.denu-head-nav--right {
  justify-content: flex-end;
}

.denu-head-nav a,
.denu-utility a,
.denu-utility button {
  color: #111 !important;
  text-decoration: none !important;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 500;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  padding: 0;
}

.denu-head-nav a:hover,
.denu-utility a:hover,
.denu-utility button:hover,
.denu-head-nav a:focus,
.denu-utility a:focus,
.denu-utility button:focus {
  color: #777 !important;
  outline: none;
}

.denu-branding {
  text-align: center;
  line-height: 1;
}

.denu-branding .custom-logo-link,
.denu-branding .custom-logo-link img {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.denu-branding .custom-logo-link img {
  width: auto !important;
  max-width: 120px !important;
  max-height: 42px !important;
  object-fit: contain;
}

.denu-logo-text {
  display: inline-block;
  color: #111 !important;
  text-decoration: none !important;
  font-size: 25px;
  line-height: 1;
  letter-spacing: .18em;
  font-weight: 500;
  text-transform: uppercase;
}

.denu-utility {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 0 24px 18px;
  background: #fff;
}

.denu-cart-count {
  display: inline-block;
  min-width: 1ch;
}

body.denu-panel-open {
  overflow: hidden !important;
}

.denu-panel[hidden] {
  display: none !important;
}

.denu-panel {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(255, 255, 255, .98);
  color: #111;
}

.denu-panel__inner {
  position: relative;
  width: 100%;
  min-height: 100%;
  padding: 34px 40px 60px;
  overflow-y: auto;
}

.denu-panel__close {
  position: absolute;
  top: 26px;
  right: 32px;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #111;
  box-shadow: none;
  font-size: 12px;
  letter-spacing: .08em;
  line-height: 1;
  cursor: pointer;
}

.denu-panel__title {
  margin: 0 0 48px;
  text-align: center;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.denu-panel__menus {
  width: min(760px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
}

.denu-overlay-menu,
.denu-overlay-menu ul,
.denu-overlay-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.denu-overlay-menu > li {
  border-bottom: 1px solid #ededed;
}

.denu-overlay-menu a {
  display: block;
  padding: 15px 0;
  color: #111 !important;
  text-decoration: none !important;
  font-size: 16px;
  line-height: 1.35;
  letter-spacing: .04em;
  text-transform: none;
}

.denu-overlay-menu .sub-menu {
  padding: 0 0 12px 18px !important;
}

.denu-overlay-menu .sub-menu a {
  padding: 8px 0;
  font-size: 13px;
  color: #555 !important;
}

.denu-overlay-menu a:hover,
.denu-overlay-menu a:focus {
  color: #777 !important;
}

.denu-search-form {
  width: min(620px, 100%);
  margin: 80px auto 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: end;
}

.denu-search-form input[type="search"] {
  width: 100%;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #111;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  color: #111;
  font-size: 18px;
  line-height: 1.4;
}

.denu-search-form button {
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #111;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  color: #111;
  font-size: 12px;
  letter-spacing: .08em;
  line-height: 1.4;
  cursor: pointer;
}

.denu-search-form input:focus,
.denu-search-form button:focus {
  outline: none;
  border-bottom-color: #777;
}

@media (max-width: 782px) {
  .denu-announcement {
    padding: 7px 12px;
    font-size: 10px;
    letter-spacing: .06em;
  }

  .denu-header-main__inner {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px 16px 10px;
  }

  .denu-branding {
    order: 1;
  }

  .denu-head-nav--left {
    order: 2;
    justify-content: center;
    gap: 28px;
  }

  .denu-head-nav--right {
    display: none;
  }

  .denu-logo-text {
    font-size: 22px;
  }

  .denu-branding .custom-logo-link img {
    max-width: 104px !important;
    max-height: 38px !important;
  }

  .denu-utility {
    gap: 18px;
    padding: 0 12px 14px;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
  }

  .denu-utility::-webkit-scrollbar {
    display: none;
  }

  .denu-head-nav a,
  .denu-utility a,
  .denu-utility button {
    font-size: 11px;
    white-space: nowrap;
  }

  .denu-panel__inner {
    padding: 28px 22px 48px;
  }

  .denu-panel__close {
    top: 22px;
    right: 22px;
  }

  .denu-panel__title {
    margin-bottom: 38px;
  }

  .denu-panel__menus {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .denu-overlay-menu a {
    font-size: 15px;
  }

  .denu-search-form {
    margin-top: 72px;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .denu-search-form input[type="search"] {
    font-size: 16px;
  }
}


/* =========================================================
   DENU JAPAN - STEP 2.1 FIX
   - Remove KR SITE from header markup via functions.php
   - Instagram link styling
   - Solid MENU / SEARCH overlay, no background image ghosting
   - Admin bar safe close button
========================================================= */

body.denu-custom-header .denu-utility {
  gap: 30px;
}

body.denu-custom-header .denu-panel {
  background: #fff !important;
  z-index: 999998 !important;
  opacity: 1 !important;
}

body.admin-bar.denu-custom-header .denu-panel {
  top: 32px !important;
  height: calc(100vh - 32px) !important;
}

body.denu-custom-header .denu-panel__inner {
  min-height: 100vh !important;
  background: #fff !important;
  opacity: 1 !important;
}

body.admin-bar.denu-custom-header .denu-panel__inner {
  min-height: calc(100vh - 32px) !important;
}

body.denu-custom-header .denu-panel__inner--menu,
body.denu-custom-header .denu-panel__inner--search {
  padding-top: 44px !important;
}

body.denu-custom-header .denu-panel__close {
  top: 32px !important;
  right: 40px !important;
  z-index: 3 !important;
  color: #111 !important;
  opacity: 1 !important;
}

body.denu-custom-header .denu-panel__title {
  color: #111 !important;
  opacity: 1 !important;
  margin-bottom: 58px !important;
}

body.denu-custom-header .denu-overlay-menu a,
body.denu-custom-header .denu-search-form input[type="search"],
body.denu-custom-header .denu-search-form button {
  opacity: 1 !important;
  color: #111 !important;
}

body.denu-custom-header .denu-search-form {
  margin-top: 0 !important;
}

body.denu-custom-header .denu-search-form input[type="search"]::placeholder {
  color: #777 !important;
  opacity: 1 !important;
}

body.denu-custom-header .denu-overlay-menu--instagram {
  margin-top: 22px !important;
}

body.denu-panel-open .site-content,
body.denu-panel-open .site-footer {
  pointer-events: none !important;
}

@media (max-width: 782px) {
  body.denu-custom-header .denu-utility {
    justify-content: center;
    gap: 18px;
  }

  body.admin-bar.denu-custom-header .denu-panel {
    top: 46px !important;
    height: calc(100vh - 46px) !important;
  }

  body.admin-bar.denu-custom-header .denu-panel__inner {
    min-height: calc(100vh - 46px) !important;
  }

  body.denu-custom-header .denu-panel__inner--menu,
  body.denu-custom-header .denu-panel__inner--search {
    padding-top: 38px !important;
  }

  body.denu-custom-header .denu-panel__close {
    top: 24px !important;
    right: 22px !important;
    font-size: 11px !important;
  }

  body.denu-custom-header .denu-panel__title {
    margin-bottom: 42px !important;
  }

  body.denu-custom-header .denu-search-form {
    margin-top: 12px !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 3 FOOTER
   - Minimal footer
   - Legal links preserved dynamically through functions.php
========================================================= */
body.denu-custom-footer .site-footer {
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  color: #111 !important;
  border-top: 1px solid #e8e8e8 !important;
  box-shadow: none !important;
}

body.denu-custom-footer .site-footer .col-full {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.denu-custom-footer .site-footer .widget,
body.denu-custom-footer .site-footer .footer-widgets,
body.denu-custom-footer .site-footer .site-info,
body.denu-custom-footer .site-footer .storefront-handheld-footer-bar {
  display: none !important;
}

.denu-footer {
  width: 100%;
  padding: 58px 24px 34px;
  text-align: center;
  background: #fff;
  color: #111;
}

.denu-footer__brand {
  margin: 0 0 16px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .14em;
  font-weight: 600;
  text-transform: uppercase;
}

.denu-footer__tagline {
  margin: 0 0 28px !important;
  padding: 0 !important;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: .03em;
  color: #333;
}

.denu-footer__nav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 22px;
  margin: 0 0 30px;
  padding: 0;
}

.denu-footer__nav a {
  display: inline-block;
  color: #111 !important;
  text-decoration: none !important;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .05em;
  font-weight: 500;
}

.denu-footer__nav a:hover,
.denu-footer__nav a:focus {
  color: #777 !important;
  text-decoration: none !important;
  outline: none;
}

.denu-footer__copyright {
  color: #777;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .04em;
}

@media (max-width: 782px) {
  .denu-footer {
    padding: 46px 18px 28px;
  }

  .denu-footer__tagline {
    margin-bottom: 24px !important;
    font-size: 12px;
  }

  .denu-footer__nav {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 26px;
  }

  .denu-footer__nav a {
    font-size: 12px;
  }
}

/* =========================================================
   DENU JAPAN - STEP 4 HOME MAIN
   - Clean homepage block structure
   - Hero columns / section titles / WooCommerce Product Collection
   - Keep WooCommerce data dynamic
========================================================= */

body.page-id-15115 .site-content,
body.page-id-15115 .content-area,
body.page-id-15115 .site-main,
body.page-id-15115 .hentry,
body.page-id-15115 .entry-content {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.page-id-15115 .entry-header,
body.page-id-15115 .entry-title {
  display: none !important;
}

body.page-id-15115 .entry-content {
  color: #111;
  background: #fff;
}

/* Top visual blocks */
body.page-id-15115 .entry-content > .wp-block-columns {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  gap: 0 !important;
}

body.page-id-15115 .entry-content > .wp-block-columns:first-of-type {
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}

body.page-id-15115 .entry-content > .wp-block-columns:first-of-type > .wp-block-column {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-15115 .entry-content > .wp-block-columns:first-of-type figure,
body.page-id-15115 .entry-content > .wp-block-columns:first-of-type .wp-block-image,
body.page-id-15115 .entry-content > .wp-block-columns:first-of-type img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Optional second columns block: keep it neat, not full-bleed unless images are used */
body.page-id-15115 .entry-content > .wp-block-columns:nth-of-type(2) {
  max-width: 1280px !important;
  margin: 72px auto 0 !important;
  padding: 0 24px !important;
}

/* Classic blocks usually contain section titles such as Best Seller / 26SS */
body.page-id-15115 .entry-content > .wp-block-freeform,
body.page-id-15115 .entry-content > .wp-block-classic,
body.page-id-15115 .entry-content > .classic,
body.page-id-15115 .entry-content > p:not([class]) {
  max-width: 1280px !important;
  margin: 78px auto 24px !important;
  padding: 0 24px !important;
  text-align: center !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  letter-spacing: .04em !important;
  font-weight: 500 !important;
}

body.page-id-15115 .entry-content > .wp-block-freeform h1,
body.page-id-15115 .entry-content > .wp-block-freeform h2,
body.page-id-15115 .entry-content > .wp-block-freeform h3,
body.page-id-15115 .entry-content > .wp-block-classic h1,
body.page-id-15115 .entry-content > .wp-block-classic h2,
body.page-id-15115 .entry-content > .wp-block-classic h3 {
  margin: 0 !important;
  padding: 0 !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  letter-spacing: .04em !important;
  font-weight: 500 !important;
  text-align: center !important;
}

/* Product Collection blocks */
body.page-id-15115 .wp-block-woocommerce-product-collection,
body.page-id-15115 .wc-block-product-collection {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 0 70px !important;
}

body.page-id-15115 .wp-block-woocommerce-product-collection ul,
body.page-id-15115 .wc-block-product-template,
body.page-id-15115 .wc-block-grid__products,
body.page-id-15115 .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.page-id-15115 .wp-block-woocommerce-product-collection li,
body.page-id-15115 .wc-block-product,
body.page-id-15115 .wc-block-grid__product,
body.page-id-15115 .woocommerce ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 0 26px !important;
  border: 0 !important;
  box-shadow: none !important;
  list-style: none !important;
  text-align: center !important;
}

body.page-id-15115 .wp-block-woocommerce-product-collection a,
body.page-id-15115 .wc-block-grid__product a,
body.page-id-15115 .woocommerce ul.products li.product a {
  color: #111 !important;
  text-decoration: none !important;
}

body.page-id-15115 .wc-block-components-product-image,
body.page-id-15115 .wc-block-grid__product-image,
body.page-id-15115 .woocommerce ul.products li.product a img {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-15115 .wc-block-components-product-image img,
body.page-id-15115 .wc-block-grid__product-image img,
body.page-id-15115 .woocommerce ul.products li.product img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
}

body.page-id-15115 .wc-block-components-product-title,
body.page-id-15115 .wc-block-grid__product-title,
body.page-id-15115 .woocommerce-loop-product__title,
body.page-id-15115 .wp-block-post-title {
  margin: 16px 14px 5px !important;
  padding: 0 !important;
  color: #111 !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  letter-spacing: .03em !important;
  font-weight: 500 !important;
  text-align: center !important;
}

body.page-id-15115 .wc-block-components-product-price,
body.page-id-15115 .wc-block-grid__product-price,
body.page-id-15115 .woocommerce ul.products li.product .price {
  display: block !important;
  margin: 0 14px !important;
  padding: 0 !important;
  color: #444 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  letter-spacing: .02em !important;
  font-weight: 500 !important;
  text-align: center !important;
}

body.page-id-15115 .wp-block-woocommerce-product-collection .wp-block-button,
body.page-id-15115 .wp-block-woocommerce-product-collection .wc-block-components-product-button,
body.page-id-15115 .wp-block-woocommerce-product-collection .add_to_cart_button,
body.page-id-15115 .woocommerce ul.products li.product .button,
body.page-id-15115 .woocommerce ul.products li.product .added_to_cart {
  display: none !important;
}

/* Remove leftover empty spacer at the very bottom of the old homepage */
body.page-id-15115 .entry-content > .wp-block-spacer:last-child {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 1024px) {
  body.page-id-15115 .wp-block-woocommerce-product-collection ul,
  body.page-id-15115 .wc-block-product-template,
  body.page-id-15115 .wc-block-grid__products,
  body.page-id-15115 .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 782px) {
  body.page-id-15115 .entry-content > .wp-block-columns:first-of-type {
    grid-template-columns: 1fr !important;
  }

  body.page-id-15115 .entry-content > .wp-block-columns:nth-of-type(2) {
    margin-top: 48px !important;
    padding: 0 18px !important;
  }

  body.page-id-15115 .entry-content > .wp-block-freeform,
  body.page-id-15115 .entry-content > .wp-block-classic,
  body.page-id-15115 .entry-content > .classic,
  body.page-id-15115 .entry-content > p:not([class]) {
    margin: 56px auto 20px !important;
    padding: 0 18px !important;
    font-size: 12px !important;
  }

  body.page-id-15115 .wp-block-woocommerce-product-collection,
  body.page-id-15115 .wc-block-product-collection {
    padding-bottom: 50px !important;
  }

  body.page-id-15115 .wp-block-woocommerce-product-collection ul,
  body.page-id-15115 .wc-block-product-template,
  body.page-id-15115 .wc-block-grid__products,
  body.page-id-15115 .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.page-id-15115 .wc-block-components-product-title,
  body.page-id-15115 .wc-block-grid__product-title,
  body.page-id-15115 .woocommerce-loop-product__title,
  body.page-id-15115 .wp-block-post-title {
    margin: 12px 10px 4px !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  body.page-id-15115 .wc-block-components-product-price,
  body.page-id-15115 .wc-block-grid__product-price,
  body.page-id-15115 .woocommerce ul.products li.product .price {
    font-size: 11px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 4.1 HOME SECTION TITLE FIX
   - Make Classic / Heading section titles visible
   - Support JS-injected fallback titles before product collections
========================================================= */

body.page-id-15115 .entry-content > .wp-block-freeform,
body.page-id-15115 .entry-content > .wp-block-classic,
body.page-id-15115 .entry-content > .wp-block-heading,
body.page-id-15115 .entry-content > h1,
body.page-id-15115 .entry-content > h2,
body.page-id-15115 .entry-content > h3,
body.page-id-15115 .entry-content > h4,
body.page-id-15115 .entry-content > p,
body.page-id-15115 .entry-content > .denu-home-section-title,
body.page-id-15115 .entry-content > .denu-home-source-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 82px auto 28px !important;
  padding: 0 24px !important;
  text-align: center !important;
  color: #111 !important;
  background: #fff !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  letter-spacing: .06em !important;
  font-weight: 600 !important;
  text-transform: none !important;
}

body.page-id-15115 .entry-content > .wp-block-freeform *,
body.page-id-15115 .entry-content > .wp-block-classic *,
body.page-id-15115 .entry-content > .wp-block-heading *,
body.page-id-15115 .entry-content > .denu-home-source-title *,
body.page-id-15115 .entry-content > .denu-home-section-title * {
  color: #111 !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  font-weight: inherit !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-15115 .entry-content > .wp-block-woocommerce-product-collection,
body.page-id-15115 .entry-content > .wc-block-product-collection {
  margin-top: 0 !important;
}

@media (max-width: 782px) {
  body.page-id-15115 .entry-content > .wp-block-freeform,
  body.page-id-15115 .entry-content > .wp-block-classic,
  body.page-id-15115 .entry-content > .wp-block-heading,
  body.page-id-15115 .entry-content > h1,
  body.page-id-15115 .entry-content > h2,
  body.page-id-15115 .entry-content > h3,
  body.page-id-15115 .entry-content > h4,
  body.page-id-15115 .entry-content > p,
  body.page-id-15115 .entry-content > .denu-home-section-title,
  body.page-id-15115 .entry-content > .denu-home-source-title {
    margin: 58px auto 22px !important;
    padding: 0 18px !important;
    font-size: 12px !important;
    letter-spacing: .05em !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 4.2 HOME PRODUCT GRID / TITLES
   - PC product collections: 5 columns
   - Fallback section titles: Attention Seller / Best Seller
========================================================= */

@media (min-width: 1025px) {
  body.page-id-15115 .wp-block-woocommerce-product-collection ul,
  body.page-id-15115 .wc-block-product-template,
  body.page-id-15115 .wc-block-grid__products,
  body.page-id-15115 .woocommerce ul.products {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}

body.page-id-15115 .entry-content > .denu-home-section-title:nth-of-type(1),
body.page-id-15115 .entry-content > .denu-home-section-title:nth-of-type(2) {
  display: block !important;
}

/* =========================================================
   DENU JAPAN - STEP 5 SHOP / CATEGORY ARCHIVE
   - Header font normalization
   - Parent category navigation on every shop/category page
   - Product archive grid: PC 5 columns / tablet 3 / mobile 2
========================================================= */

/* MENU / SEARCH are buttons, so force the same font as links */
body.denu-custom-header .denu-head-nav a,
body.denu-custom-header .denu-utility a,
body.denu-custom-header .denu-utility button,
body.denu-custom-header .denu-panel__title,
body.denu-custom-header .denu-panel__close,
body.denu-custom-header .denu-overlay-menu a,
body.denu-custom-header .denu-search-form input[type="search"],
body.denu-custom-header .denu-search-form button {
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
}

body.denu-custom-header .denu-utility button {
  -webkit-appearance: none !important;
  appearance: none !important;
  font: inherit !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

body.denu-custom-header .denu-utility a {
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

/* Archive top area cleanup */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.post-type-archive-product .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title,
body.post-type-archive-product .term-description,
body.tax-product_cat .term-description {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* Hide old category bar if it is injected by an older snippet/block. */
body.post-type-archive-product .shop-catbar,
body.tax-product_cat .shop-catbar {
  display: none !important;
}

/* Remove WooCommerce default sorting/result count row. */
body.post-type-archive-product .woocommerce-ordering,
body.tax-product_cat .woocommerce-ordering,
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count {
  display: none !important;
}

.denu-shop-nav-wrap {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 1px solid #ededed !important;
  border-bottom: 1px solid #ededed !important;
  background: #fff !important;
}

.denu-shop-nav {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: 30px !important;
  overflow-x: auto !important;
  white-space: nowrap !important;
  scrollbar-width: none !important;
}

.denu-shop-nav::-webkit-scrollbar {
  display: none !important;
}

.denu-shop-nav + .denu-shop-nav {
  border-top: 1px solid #f2f2f2 !important;
}

.denu-shop-nav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 0 !important;
  color: #333 !important;
  text-decoration: none !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  font-weight: 500 !important;
}

.denu-shop-nav a:hover,
.denu-shop-nav a:focus,
.denu-shop-nav a.is-active {
  color: #111 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* Keep product archive minimal and full-width */
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.woocommerce-page.post-type-archive-product ul.products,
body.woocommerce-page.tax-product_cat ul.products {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  column-gap: 0 !important;
  row-gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 42px 0 0 !important;
  list-style: none !important;
}

body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.woocommerce-page.post-type-archive-product ul.products li.product,
body.woocommerce-page.tax-product_cat ul.products li.product {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 46px !important;
  list-style: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}

body.post-type-archive-product ul.products li.product a,
body.tax-product_cat ul.products li.product a {
  color: #111 !important;
  text-decoration: none !important;
}

body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
}

body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
  margin: 16px 12px 5px !important;
  padding: 0 !important;
  color: #111 !important;
  font-size: 11px !important;
  line-height: 1.5 !important;
  letter-spacing: .02em !important;
  font-weight: 500 !important;
  text-align: center !important;
}

body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price {
  display: block !important;
  margin: 0 12px !important;
  padding: 0 !important;
  color: #444 !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: .02em !important;
  font-weight: 500 !important;
  text-align: center !important;
}

body.post-type-archive-product ul.products li.product .button,
body.tax-product_cat ul.products li.product .button,
body.post-type-archive-product ul.products li.product .added_to_cart,
body.tax-product_cat ul.products li.product .added_to_cart {
  display: none !important;
}

body.post-type-archive-product nav.woocommerce-pagination,
body.tax-product_cat nav.woocommerce-pagination {
  width: 100% !important;
  margin: 20px 0 70px !important;
  padding: 0 !important;
  text-align: center !important;
}

body.post-type-archive-product nav.woocommerce-pagination ul,
body.tax-product_cat nav.woocommerce-pagination ul {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.post-type-archive-product nav.woocommerce-pagination ul li,
body.tax-product_cat nav.woocommerce-pagination ul li {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.post-type-archive-product nav.woocommerce-pagination ul li a,
body.post-type-archive-product nav.woocommerce-pagination ul li span,
body.tax-product_cat nav.woocommerce-pagination ul li a,
body.tax-product_cat nav.woocommerce-pagination ul li span {
  min-width: 28px !important;
  height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 8px !important;
  background: transparent !important;
  color: #222 !important;
  border: 1px solid #eee !important;
  font-size: 11px !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

body.post-type-archive-product nav.woocommerce-pagination ul li span.current,
body.tax-product_cat nav.woocommerce-pagination ul li span.current {
  background: #f3f3f3 !important;
}

@media (max-width: 1180px) {
  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.woocommerce-page.post-type-archive-product ul.products,
  body.woocommerce-page.tax-product_cat ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.woocommerce-page.post-type-archive-product ul.products,
  body.woocommerce-page.tax-product_cat ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 782px) {
  body.denu-custom-header .denu-utility button,
  body.denu-custom-header .denu-utility a {
    font-size: 11px !important;
  }

  .denu-shop-nav {
    justify-content: flex-start !important;
    gap: 22px !important;
    padding: 0 16px !important;
  }

  .denu-shop-nav a {
    min-height: 40px !important;
    font-size: 11px !important;
  }

  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.woocommerce-page.post-type-archive-product ul.products,
  body.woocommerce-page.tax-product_cat ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding-top: 26px !important;
  }

  body.post-type-archive-product ul.products li.product,
  body.tax-product_cat ul.products li.product,
  body.woocommerce-page.post-type-archive-product ul.products li.product,
  body.woocommerce-page.tax-product_cat ul.products li.product {
    padding-bottom: 34px !important;
  }

  body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
  body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
  body.post-type-archive-product ul.products li.product .price,
  body.tax-product_cat ul.products li.product .price {
    font-size: 10.5px !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 5.1 SHOP ARCHIVE REFINEMENT
   - Remove empty top spacing above category navigation
   - Restore sorting dropdown
   - Keep pagination only at the bottom
   - 15 products per page = clean 5 columns x 3 rows on desktop
========================================================= */

body.post-type-archive-product .storefront-breadcrumb,
body.tax-product_cat .storefront-breadcrumb,
body.post-type-archive-product .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-notices-wrapper:empty,
body.tax-product_cat .woocommerce-notices-wrapper:empty {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.post-type-archive-product .site-content .col-full,
body.tax-product_cat .site-content .col-full,
body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.post-type-archive-product #main,
body.tax-product_cat #main,
body.post-type-archive-product .content-area,
body.tax-product_cat .content-area,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.post-type-archive-product .denu-shop-nav-wrap,
body.tax-product_cat .denu-shop-nav-wrap {
  margin-top: 0 !important;
}

/* Restore only our top sorting dropdown. */
body.post-type-archive-product .denu-shop-toolbar,
body.tax-product_cat .denu-shop-toolbar {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 12px 24px 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  background: #fff !important;
}

body.post-type-archive-product .denu-shop-toolbar .woocommerce-ordering,
body.tax-product_cat .denu-shop-toolbar .woocommerce-ordering {
  display: block !important;
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.post-type-archive-product .denu-shop-toolbar select.orderby,
body.tax-product_cat .denu-shop-toolbar select.orderby {
  display: inline-block !important;
  width: auto !important;
  min-width: 138px !important;
  height: 28px !important;
  padding: 0 22px 0 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #dcdcdc !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: #222 !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
}

body.post-type-archive-product .denu-shop-toolbar select.orderby:focus,
body.tax-product_cat .denu-shop-toolbar select.orderby:focus {
  outline: none !important;
  border-bottom-color: #111 !important;
}

/* Result count stays hidden, but sorting is visible through .denu-shop-toolbar. */
body.post-type-archive-product .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count {
  display: none !important;
}

/* Safety: if Storefront still outputs an upper pagination block, hide only the one before products. */
body.post-type-archive-product .denu-shop-toolbar + nav.woocommerce-pagination,
body.tax-product_cat .denu-shop-toolbar + nav.woocommerce-pagination,
body.post-type-archive-product .denu-shop-toolbar + .storefront-sorting,
body.tax-product_cat .denu-shop-toolbar + .storefront-sorting {
  display: none !important;
}

body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.woocommerce-page.post-type-archive-product ul.products,
body.woocommerce-page.tax-product_cat ul.products {
  padding-top: 30px !important;
}

body.post-type-archive-product nav.woocommerce-pagination,
body.tax-product_cat nav.woocommerce-pagination {
  margin-top: 6px !important;
}

@media (max-width: 782px) {
  body.post-type-archive-product .denu-shop-toolbar,
  body.tax-product_cat .denu-shop-toolbar {
    justify-content: flex-start !important;
    padding: 10px 16px 0 !important;
  }

  body.post-type-archive-product .denu-shop-toolbar select.orderby,
  body.tax-product_cat .denu-shop-toolbar select.orderby {
    min-width: 128px !important;
    height: 30px !important;
    font-size: 11px !important;
  }

  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.woocommerce-page.post-type-archive-product ul.products,
  body.woocommerce-page.tax-product_cat ul.products {
    padding-top: 24px !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 5.2 UPPER PAGINATION FINAL FIX
   - Keep pagination only after product grid
   - Fallback CSS for browsers that support :has()
========================================================= */
body.post-type-archive-product nav.woocommerce-pagination:has(+ ul.products),
body.tax-product_cat nav.woocommerce-pagination:has(+ ul.products),
body.woocommerce-page.post-type-archive-product nav.woocommerce-pagination:has(+ ul.products),
body.woocommerce-page.tax-product_cat nav.woocommerce-pagination:has(+ ul.products) {
  display: none !important;
}

body.post-type-archive-product .denu-shop-nav-wrap + nav.woocommerce-pagination,
body.tax-product_cat .denu-shop-nav-wrap + nav.woocommerce-pagination,
body.post-type-archive-product .denu-shop-toolbar + nav.woocommerce-pagination,
body.tax-product_cat .denu-shop-toolbar + nav.woocommerce-pagination,
body.post-type-archive-product .denu-shop-nav-wrap ~ .storefront-sorting nav.woocommerce-pagination,
body.tax-product_cat .denu-shop-nav-wrap ~ .storefront-sorting nav.woocommerce-pagination {
  display: none !important;
}

/* =========================================================
   DENU JAPAN - STEP 6.2 PRODUCT DETAIL REBUILD
   - Desktop: wider, balanced product hero
   - Preserve WooCommerce gallery JS / thumbnail switching
   - Mobile: compact title and clean purchase area
========================================================= */

body.single-product .storefront-breadcrumb,
body.single-product .woocommerce-breadcrumb,
body.single-product .woocommerce-notices-wrapper:empty,
body.single-product .storefront-sticky-add-to-cart {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-product .site-content,
body.single-product .site-content .col-full,
body.single-product .content-area,
body.single-product #primary,
body.single-product #main,
body.single-product .site-main {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product div.product {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body.single-product div.product .woocommerce-product-gallery,
body.single-product div.product .images,
body.single-product div.product .summary,
body.single-product div.product .entry-summary {
  float: none !important;
  clear: none !important;
  box-sizing: border-box !important;
}

/* Do not force slide widths. WooCommerce/Flexslider needs inline widths for thumbnail switching. */
body.single-product div.product .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product div.product .woocommerce-product-gallery .flex-viewport {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.single-product div.product .woocommerce-product-gallery__image a {
  display: block !important;
}

body.single-product div.product .woocommerce-product-gallery__image img,
body.single-product div.product .images img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 auto !important;
}

body.single-product div.product .flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  justify-content: center !important;
  margin: 20px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.single-product div.product .flex-control-thumbs li {
  float: none !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.single-product div.product .flex-control-thumbs img {
  width: 58px !important;
  height: 58px !important;
  object-fit: cover !important;
  opacity: .55 !important;
  transition: opacity .2s ease !important;
  cursor: pointer !important;
}

body.single-product div.product .flex-control-thumbs img.flex-active,
body.single-product div.product .flex-control-thumbs img:hover {
  opacity: 1 !important;
}

body.single-product div.product .product_title,
body.single-product div.product .entry-title {
  margin: 0 0 22px !important;
  padding: 0 !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  line-height: 1.18 !important;
  font-weight: 600 !important;
  letter-spacing: .005em !important;
  color: #222 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}

body.single-product div.product p.price,
body.single-product div.product span.price {
  margin: 0 0 24px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
  color: #555 !important;
}

body.single-product div.product .woocommerce-product-details__short-description {
  margin: 0 0 28px !important;
  color: #555 !important;
  line-height: 1.7 !important;
}

body.single-product div.product form.cart {
  margin: 0 0 26px !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 12px !important;
}

body.single-product div.product form.cart .quantity {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body.single-product div.product form.cart .quantity input.qty {
  width: 58px !important;
  height: 44px !important;
  padding: 0 !important;
  border: 1px solid #e5e5e5 !important;
  border-radius: 0 !important;
  background: #f7f7f7 !important;
  box-shadow: none !important;
  color: #222 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-align: center !important;
}

body.single-product div.product form.cart .button,
body.single-product div.product form.cart button.single_add_to_cart_button {
  min-width: 188px !important;
  height: 44px !important;
  padding: 0 28px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #222 !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 42px !important;
  letter-spacing: .02em !important;
  text-align: center !important;
}

body.single-product div.product form.cart .button.disabled,
body.single-product div.product form.cart button.single_add_to_cart_button.disabled,
body.single-product div.product form.cart button.single_add_to_cart_button.wc-variation-selection-needed {
  background: #aaa !important;
  border-color: #aaa !important;
  opacity: 1 !important;
}

body.single-product div.product table.variations {
  width: 100% !important;
  margin: 0 0 18px !important;
  border: 0 !important;
  display: block !important;
}

body.single-product div.product table.variations tbody,
body.single-product div.product table.variations tr,
body.single-product div.product table.variations th,
body.single-product div.product table.variations td {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

body.single-product div.product table.variations label {
  display: block !important;
  margin: 0 0 8px !important;
  color: #555 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: .02em !important;
}

body.single-product div.product table.variations select {
  width: min(300px, 100%) !important;
  height: 38px !important;
  padding: 0 32px 0 10px !important;
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  color: #222 !important;
  box-shadow: none !important;
  font-family: "Noto Serif JP", "Noto Serif KR", Georgia, "Times New Roman", serif !important;
  font-size: 13px !important;
  line-height: 1 !important;
}

body.single-product div.product .reset_variations {
  display: inline-block !important;
  margin: 8px 0 0 !important;
  font-size: 11px !important;
  color: #777 !important;
}

body.single-product div.product .product_meta,
body.single-product div.product .sku_wrapper,
body.single-product div.product .posted_in,
body.single-product div.product .tagged_as,
body.single-product div.product .brand_wrapper,
body.single-product div.product .woocommerce-product-rating,
body.single-product div.product .storefront-product-pagination {
  display: none !important;
}

body.single-product div.product .woocommerce-tabs {
  width: 100% !important;
  margin: 70px auto 0 !important;
  padding: 0 !important;
  border-top: 1px solid #eee !important;
  box-sizing: border-box !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 26px !important;
  margin: 0 !important;
  padding: 18px 0 !important;
  border: 0 !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs li {
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs li a {
  padding: 0 !important;
  color: #444 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

body.single-product div.product .woocommerce-tabs .panel {
  max-width: 960px !important;
  margin: 0 auto !important;
  padding: 28px 0 0 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}

body.single-product .related.products,
body.single-product .upsells.products {
  width: 100% !important;
  margin-top: 70px !important;
}

body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
  margin: 0 0 28px !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
}

@media (min-width: 981px) {
  body.single-product div.product {
    display: grid !important;
    grid-template-columns: minmax(0, 55vw) minmax(380px, 34vw) !important;
    column-gap: 4.5vw !important;
    row-gap: 0 !important;
    justify-content: center !important;
    align-items: start !important;
    padding: 54px 4vw 76px !important;
  }

  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .images {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
    align-self: start !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-product div.product .summary,
  body.single-product div.product .entry-summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 620px !important;
    justify-self: start !important;
    align-self: start !important;
    margin: 0 !important;
    padding: 22px 0 0 !important;
  }

  body.single-product div.product .woocommerce-product-gallery__image img,
  body.single-product div.product .images img {
    max-height: 72vh !important;
  }

  body.single-product div.product .product_title,
  body.single-product div.product .entry-title {
    font-size: clamp(30px, 2.7vw, 48px) !important;
  }

  body.single-product div.product p.price,
  body.single-product div.product span.price {
    font-size: 22px !important;
  }

  body.single-product div.product .woocommerce-product-details__short-description {
    font-size: 14px !important;
  }

  body.single-product div.product .woocommerce-tabs,
  body.single-product .related.products,
  body.single-product .upsells.products {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 980px) {
  body.single-product div.product {
    display: block !important;
    padding: 48px 22px 54px !important;
  }

  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .images,
  body.single-product div.product .summary,
  body.single-product div.product .entry-summary {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.single-product div.product .summary,
  body.single-product div.product .entry-summary {
    padding-top: 32px !important;
  }

  body.single-product div.product .woocommerce-product-gallery__image img,
  body.single-product div.product .images img {
    max-height: 58vh !important;
  }
}

@media (max-width: 782px) {
  body.single-product .denu-announcement {
    display: none !important;
  }

  body.single-product div.product {
    padding: 26px 16px 46px !important;
  }

  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .images {
    overflow: hidden !important;
  }

  body.single-product div.product .woocommerce-product-gallery__image img,
  body.single-product div.product .images img {
    max-height: 48vh !important;
  }

  body.single-product div.product .flex-control-thumbs {
    gap: 8px !important;
    margin-top: 12px !important;
  }

  body.single-product div.product .flex-control-thumbs li,
  body.single-product div.product .flex-control-thumbs img {
    width: 48px !important;
    height: 48px !important;
  }

  body.single-product div.product .summary,
  body.single-product div.product .entry-summary {
    padding-top: 28px !important;
  }

  body.single-product div.product .product_title,
  body.single-product div.product .entry-title {
    margin-bottom: 18px !important;
    font-size: 26px !important;
    line-height: 1.23 !important;
    letter-spacing: 0 !important;
    overflow-wrap: break-word !important;
    word-break: keep-all !important;
  }

  body.single-product div.product p.price,
  body.single-product div.product span.price {
    margin-bottom: 20px !important;
    font-size: 20px !important;
  }

  body.single-product div.product .woocommerce-product-details__short-description {
    margin-bottom: 22px !important;
    font-size: 13px !important;
  }

  body.single-product div.product form.cart {
    gap: 10px !important;
    align-items: stretch !important;
  }

  body.single-product div.product form.cart .quantity input.qty {
    width: 58px !important;
    height: 44px !important;
  }

  body.single-product div.product form.cart .button,
  body.single-product div.product form.cart button.single_add_to_cart_button {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    height: 44px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
    line-height: 42px !important;
    white-space: nowrap !important;
  }

  body.single-product div.product table.variations select {
    width: 100% !important;
    max-width: 260px !important;
    height: 40px !important;
  }

  body.single-product div.product .woocommerce-tabs {
    margin-top: 44px !important;
  }

  body.single-product div.product .woocommerce-tabs ul.tabs {
    justify-content: flex-start !important;
    gap: 16px !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    padding: 16px 0 !important;
  }

  body.single-product div.product .woocommerce-tabs .panel {
    padding-top: 20px !important;
  }
}

@media (max-width: 420px) {
  body.single-product div.product .product_title,
  body.single-product div.product .entry-title {
    font-size: 24px !important;
  }

  body.single-product div.product form.cart .button,
  body.single-product div.product form.cart button.single_add_to_cart_button {
    font-size: 11px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 7 CART / CHECKOUT
   - Keep WooCommerce Blocks and Stripe/Express Checkout stable
   - Visual cleanup only
========================================================= */

body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content,
body.woocommerce-account .site-content {
  background: #fff !important;
}

body.woocommerce-cart .content-area,
body.woocommerce-checkout .content-area,
body.woocommerce-account .content-area,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main,
body.woocommerce-cart .hentry,
body.woocommerce-checkout .hentry,
body.woocommerce-account .hentry,
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-cart .entry-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-account .entry-header {
  margin: 0 !important;
  padding: 86px 24px 64px !important;
  text-align: center !important;
}

body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title {
  margin: 0 !important;
  color: #222 !important;
  font-size: clamp(32px, 3.2vw, 54px) !important;
  line-height: 1.15 !important;
  letter-spacing: .02em !important;
  font-weight: 700 !important;
}

/* WooCommerce Blocks common width */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-cart .wc-block-cart,
body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-account .woocommerce {
  width: min(1520px, calc(100vw - 48px)) !important;
  max-width: 1520px !important;
  margin: 0 auto 88px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

body.woocommerce-cart .wc-block-cart,
body.woocommerce-checkout .wc-block-checkout {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #222 !important;
}

/* Links should not fall back to browser purple */
body.woocommerce-cart a,
body.woocommerce-checkout a,
body.woocommerce-account a {
  color: #111 !important;
  text-decoration: none !important;
}

body.woocommerce-cart a:hover,
body.woocommerce-checkout a:hover,
body.woocommerce-account a:hover {
  color: #777 !important;
}

/* CART block layout */
body.woocommerce-cart .wc-block-cart__main {
  padding-right: 48px !important;
}

body.woocommerce-cart .wc-block-cart__sidebar {
  padding-left: 0 !important;
}

body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-components-totals-wrapper {
  border-color: #eee !important;
}

body.woocommerce-cart .wc-block-cart-items__header,
body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-order-summary__button-text,
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
  font-family: inherit !important;
}

body.woocommerce-cart .wc-block-cart-item__image img,
body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  display: block !important;
  width: 74px !important;
  height: 74px !important;
  object-fit: contain !important;
}

body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #111 !important;
}

body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata {
  color: #777 !important;
  font-size: 11px !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector {
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  height: 40px !important;
  min-width: 104px !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector input,
body.woocommerce-cart .wc-block-components-quantity-selector button {
  min-height: 38px !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-button,
body.woocommerce-checkout .wc-block-components-button,
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  border-radius: 0 !important;
  background: #222 !important;
  color: #fff !important;
  box-shadow: none !important;
  border: 1px solid #222 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  text-decoration: none !important;
}

body.woocommerce-cart .wc-block-components-button:hover,
body.woocommerce-checkout .wc-block-components-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
  background: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}

body.woocommerce-cart .wc-block-components-main,
body.woocommerce-checkout .wc-block-components-main,
body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
  box-sizing: border-box !important;
}

body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
  border: 1px solid #eee !important;
  padding: 26px 28px !important;
  background: #fff !important;
}

body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper:first-child,
body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-totals-wrapper:first-child {
  border-top: 0 !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #444 !important;
}

/* Empty cart recommendation section: keep, but make it quieter */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block,
body.woocommerce-cart .wc-block-cart__empty-cart__title.with-empty-cart-icon:before {
  color: #333 !important;
}

body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-heading {
  font-size: 22px !important;
  line-height: 1.3 !important;
  text-align: center !important;
}

/* CHECKOUT block */
body.woocommerce-checkout .wc-block-checkout__main {
  padding-right: 54px !important;
}

body.woocommerce-checkout .wc-block-checkout__actions_row,
body.woocommerce-checkout .wc-block-checkout__terms,
body.woocommerce-checkout .wc-block-components-checkout-step {
  border-color: #eee !important;
}

body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-order-summary__button-text,
body.woocommerce-checkout .wc-block-components-address-form__address_1 label,
body.woocommerce-checkout .wc-block-components-text-input label {
  color: #222 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title {
  font-size: 20px !important;
  line-height: 1.5 !important;
  font-weight: 600 !important;
}

body.woocommerce-checkout input,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input {
  border: 1px solid #aaa !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: #111 !important;
}

body.woocommerce-checkout input:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus {
  border-color: #111 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Keep express payment provider colors intact; only spacing */
body.woocommerce-checkout .wc-block-components-express-payment,
body.woocommerce-checkout .wc-block-components-express-payment__event-buttons,
body.woocommerce-checkout .wc-block-components-express-payment__content {
  margin-top: 0 !important;
}

/* MY ACCOUNT simple cleanup */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account form.login,
body.woocommerce-account form.register {
  border-color: #eee !important;
}

body.woocommerce-account button.button,
body.woocommerce-account .button {
  border-radius: 0 !important;
  background: #222 !important;
  color: #fff !important;
  box-shadow: none !important;
}

@media (min-width: 981px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 480px) !important;
    gap: 56px !important;
    align-items: start !important;
  }
}

@media (max-width: 980px) {
  body.woocommerce-cart .wp-block-woocommerce-cart,
  body.woocommerce-checkout .wp-block-woocommerce-checkout,
  body.woocommerce-cart .wc-block-cart,
  body.woocommerce-checkout .wc-block-checkout,
  body.woocommerce-account .woocommerce {
    width: calc(100vw - 32px) !important;
    margin-bottom: 64px !important;
  }

  body.woocommerce-cart .wc-block-cart__main,
  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-cart .wc-block-components-main,
  body.woocommerce-checkout .wc-block-components-main {
    padding-right: 0 !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar,
  body.woocommerce-checkout .wc-block-components-sidebar {
    margin-top: 28px !important;
    padding: 22px 18px !important;
  }
}

@media (max-width: 782px) {
  body.woocommerce-cart .entry-header,
  body.woocommerce-checkout .entry-header,
  body.woocommerce-account .entry-header {
    padding: 44px 16px 34px !important;
    text-align: left !important;
  }

  body.woocommerce-cart .entry-title,
  body.woocommerce-checkout .entry-title,
  body.woocommerce-account .entry-title {
    font-size: 42px !important;
    line-height: 1.08 !important;
    letter-spacing: .01em !important;
  }

  body.woocommerce-cart .wp-block-woocommerce-cart,
  body.woocommerce-checkout .wp-block-woocommerce-checkout,
  body.woocommerce-cart .wc-block-cart,
  body.woocommerce-checkout .wc-block-checkout,
  body.woocommerce-account .woocommerce {
    width: 100% !important;
    margin: 0 0 54px !important;
    padding: 0 !important;
  }

  body.woocommerce-cart .wc-block-cart,
  body.woocommerce-checkout .wc-block-checkout {
    font-size: 13px !important;
  }

  body.woocommerce-cart .wc-block-components-main,
  body.woocommerce-checkout .wc-block-components-main,
  body.woocommerce-cart .wc-block-components-sidebar,
  body.woocommerce-checkout .wc-block-components-sidebar {
    width: 100% !important;
  }

  body.woocommerce-cart .wc-block-cart-items,
  body.woocommerce-cart .wc-block-cart-items__row,
  body.woocommerce-cart .wc-block-components-totals-wrapper,
  body.woocommerce-checkout .wc-block-components-totals-wrapper,
  body.woocommerce-checkout .wc-block-components-checkout-step,
  body.woocommerce-checkout .wc-block-components-order-summary,
  body.woocommerce-checkout .wc-block-components-express-payment {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-cart .wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) auto !important;
    gap: 14px !important;
    align-items: start !important;
  }

  body.woocommerce-cart .wc-block-cart-item__image img,
  body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    width: 62px !important;
    height: 62px !important;
  }

  body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name,
  body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #111 !important;
  }

  body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    font-size: 14px !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
  }

  body.woocommerce-cart .wc-block-components-product-metadata {
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  body.woocommerce-cart .wc-block-components-quantity-selector {
    min-width: 104px !important;
    width: 104px !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar,
  body.woocommerce-checkout .wc-block-components-sidebar {
    border-left: 0 !important;
    border-right: 0 !important;
    padding: 18px 0 !important;
  }

  body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
  body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
  body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
  body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 26px !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary__button-text,
  body.woocommerce-checkout .wc-block-components-order-summary__button-text span {
    font-size: 24px !important;
    line-height: 1.3 !important;
  }

  body.woocommerce-checkout .wc-block-components-checkout-step__title {
    font-size: 22px !important;
  }

  body.woocommerce-checkout .wc-block-components-express-payment__title-container,
  body.woocommerce-checkout .wc-block-components-express-payment__title {
    font-size: 15px !important;
  }

  body.woocommerce-checkout .wc-block-components-button,
  body.woocommerce-cart .wc-block-components-button {
    min-height: 48px !important;
  }
}

@media (max-width: 420px) {
  body.woocommerce-cart .entry-title,
  body.woocommerce-checkout .entry-title,
  body.woocommerce-account .entry-title {
    font-size: 38px !important;
  }

  body.woocommerce-cart .wc-block-cart-items__row {
    grid-template-columns: 62px minmax(0, 1fr) auto !important;
    gap: 12px !important;
  }

  body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
    font-size: 13px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 7.1 CART / CHECKOUT SIDEBAR FIX
   - Fix broken narrow right column on desktop
   - Keep WooCommerce Blocks / Stripe express payment functional
========================================================= */

@media (min-width: 981px) {
  body.woocommerce-cart .wp-block-woocommerce-cart,
  body.woocommerce-checkout .wp-block-woocommerce-checkout,
  body.woocommerce-cart .wc-block-cart,
  body.woocommerce-checkout .wc-block-checkout {
    width: min(1360px, calc(100vw - 96px)) !important;
    max-width: 1360px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 420px !important;
    gap: 72px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.woocommerce-cart .wc-block-components-main,
  body.woocommerce-checkout .wc-block-components-main,
  body.woocommerce-cart .wc-block-cart__main,
  body.woocommerce-checkout .wc-block-checkout__main {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
    flex: none !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar,
  body.woocommerce-checkout .wc-block-components-sidebar,
  body.woocommerce-cart .wc-block-cart__sidebar,
  body.woocommerce-checkout .wc-block-checkout__sidebar {
    grid-column: 2 !important;
    width: 420px !important;
    min-width: 420px !important;
    max-width: 420px !important;
    flex: 0 0 420px !important;
    box-sizing: border-box !important;
    padding: 28px 30px !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item,
  body.woocommerce-cart .wc-block-components-order-summary-item {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: start !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__image,
  body.woocommerce-cart .wc-block-components-order-summary-item__image {
    width: 56px !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__image img,
  body.woocommerce-cart .wc-block-components-order-summary-item__image img {
    width: 56px !important;
    height: 56px !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__description,
  body.woocommerce-cart .wc-block-components-order-summary-item__description {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
  body.woocommerce-cart .wc-block-components-order-summary-item__total-price {
    white-space: nowrap !important;
    text-align: right !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-button,
  body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-button,
  body.woocommerce-cart .wc-block-cart__submit-button {
    width: 100% !important;
  }

  body.woocommerce-cart .wc-block-components-express-payment__event-buttons,
  body.woocommerce-cart .wc-block-components-express-payment__content,
  body.woocommerce-checkout .wc-block-components-express-payment__event-buttons,
  body.woocommerce-checkout .wc-block-components-express-payment__content {
    width: 100% !important;
  }
}

@media (min-width: 981px) and (max-width: 1180px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout,
  body.woocommerce-checkout .wc-block-components-sidebar-layout {
    grid-template-columns: minmax(0, 1fr) 360px !important;
    gap: 40px !important;
  }

  body.woocommerce-cart .wc-block-components-sidebar,
  body.woocommerce-checkout .wc-block-components-sidebar,
  body.woocommerce-cart .wc-block-cart__sidebar,
  body.woocommerce-checkout .wc-block-checkout__sidebar {
    width: 360px !important;
    min-width: 360px !important;
    max-width: 360px !important;
    flex-basis: 360px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 8 SUPPORT PAGES
   MYPAGE / SEARCH / CONTACT / empty results
========================================================= */

body.woocommerce-account .entry-header,
body.search .entry-header,
body.page-id-15120 .entry-header,
body.page-id-15119 .entry-header,
body.page-id-15121 .entry-header,
body.page-id-15122 .entry-header {
  text-align: center !important;
  margin: 92px auto 48px !important;
}

body.woocommerce-account .entry-title,
body.search .entry-title,
body.page .entry-title {
  font-size: clamp(28px, 3.2vw, 48px) !important;
  line-height: 1.1 !important;
  letter-spacing: .03em !important;
  text-align: center !important;
}

body.woocommerce-account .entry-content,
body.search .site-main,
body.search .content-area,
body.page-id-15120 .entry-content,
body.page-id-15119 .entry-content {
  width: min(1120px, calc(100vw - 64px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* My Account */
body.woocommerce-account .woocommerce-MyAccount-navigation {
  width: 260px !important;
  margin-right: 72px !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
  width: calc(100% - 332px) !important;
  max-width: 760px !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border-top: 1px solid #eee !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0 !important;
  border-bottom: 1px solid #eee !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 46px !important;
  padding: 0 4px !important;
  color: #222 !important;
  text-decoration: none !important;
  font-size: 13px !important;
  letter-spacing: .03em !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.woocommerce-account .woocommerce-Button,
body.woocommerce-account button.button,
body.woocommerce-account input.button {
  border-radius: 0 !important;
  background: #222 !important;
  color: #fff !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
  padding: 13px 22px !important;
}

body.woocommerce-account input.input-text,
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="password"] {
  border: 1px solid #ccc !important;
  border-radius: 0 !important;
  min-height: 44px !important;
  padding: 10px 12px !important;
  background: #fff !important;
}

/* Search overlay page / search results */
body.search .site-content,
body.search-results .site-content,
body.search-no-results .site-content {
  min-height: 58vh !important;
}

body.search .woocommerce-info,
body.search-no-results .woocommerce-info,
body.search .woocommerce-message,
body.search-no-results .woocommerce-message {
  display: none !important;
}

.denu-empty-results {
  width: min(720px, calc(100vw - 48px)) !important;
  margin: 110px auto 140px !important;
  text-align: center !important;
}

.denu-empty-results h1 {
  margin: 0 0 22px !important;
  font-size: clamp(26px, 3vw, 44px) !important;
  line-height: 1.1 !important;
  letter-spacing: .04em !important;
}

.denu-empty-results p {
  margin: 0 0 34px !important;
  font-size: 14px !important;
  color: #666 !important;
  line-height: 1.8 !important;
}

.denu-empty-results__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
}

.denu-empty-results__actions a,
.denu-empty-results__actions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 160px !important;
  height: 44px !important;
  padding: 0 22px !important;
  border: 1px solid #222 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #222 !important;
  text-decoration: none !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: .06em !important;
  font-family: inherit !important;
  cursor: pointer !important;
}

.denu-empty-results__actions a:hover,
.denu-empty-results__actions button:hover {
  background: #222 !important;
  color: #fff !important;
}

/* Native search page form when directly opened */
body.search .denu-panel__inner--search,
body.search .denu-search-form {
  font-family: inherit !important;
}

body.search main form.search-form,
body.search main .woocommerce-product-search,
body.page-id-15117 main form.search-form,
body.page-id-15117 main .woocommerce-product-search {
  width: min(620px, calc(100vw - 48px)) !important;
  margin: 100px auto !important;
  display: flex !important;
  align-items: flex-end !important;
  gap: 22px !important;
}

body.search main form.search-form input[type="search"],
body.search main .woocommerce-product-search input[type="search"],
body.page-id-15117 main form.search-form input[type="search"],
body.page-id-15117 main .woocommerce-product-search input[type="search"] {
  flex: 1 1 auto !important;
  border: 0 !important;
  border-bottom: 1px solid #222 !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-height: 42px !important;
  padding: 0 !important;
}

body.search main form.search-form button,
body.search main .woocommerce-product-search button,
body.page-id-15117 main form.search-form button,
body.page-id-15117 main .woocommerce-product-search button {
  border: 0 !important;
  border-bottom: 1px solid #222 !important;
  background: transparent !important;
  color: #222 !important;
  min-height: 42px !important;
  padding: 0 4px !important;
  font-size: 12px !important;
  letter-spacing: .05em !important;
}

/* Contact / generic form pages */
body.page-id-15119 .entry-content,
body.page-id-15120 .entry-content {
  font-size: 14px !important;
  line-height: 1.9 !important;
}

body.page-id-15119 input,
body.page-id-15119 textarea,
body.page-id-15120 input,
body.page-id-15120 textarea {
  border: 1px solid #ccc !important;
  border-radius: 0 !important;
  background: #fff !important;
  min-height: 44px !important;
}

@media (max-width: 782px) {
  body.woocommerce-account .entry-header,
  body.search .entry-header,
  body.page .entry-header {
    margin: 56px auto 34px !important;
  }

  body.woocommerce-account .entry-title,
  body.search .entry-title,
  body.page .entry-title,
  body.woocommerce-cart .entry-title,
  body.woocommerce-checkout .entry-title {
    font-size: 42px !important;
    line-height: 1.05 !important;
    text-align: left !important;
    padding-left: 0 !important;
  }

  body.woocommerce-account .entry-content,
  body.search .site-main,
  body.search .content-area,
  body.page-id-15120 .entry-content,
  body.page-id-15119 .entry-content {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
  }

  body.woocommerce-account .woocommerce {
    display: block !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 32px !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-top: 1px solid #eee !important;
    border-left: 1px solid #eee !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation li {
    border-right: 1px solid #eee !important;
    border-bottom: 1px solid #eee !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation a {
    min-height: 48px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-content {
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

  .denu-empty-results {
    margin: 76px auto 100px !important;
    width: calc(100vw - 32px) !important;
  }

  .denu-empty-results h1 {
    font-size: 36px !important;
  }

  .denu-empty-results__actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .denu-empty-results__actions a,
  .denu-empty-results__actions button {
    width: 100% !important;
  }

  body.search main form.search-form,
  body.search main .woocommerce-product-search,
  body.page-id-15117 main form.search-form,
  body.page-id-15117 main .woocommerce-product-search {
    width: calc(100vw - 32px) !important;
    margin: 70px auto !important;
    gap: 12px !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 9 SUPPORT / PRESS / CATEGORY ORDER FIX
   - Center My Page, no-results, and footer legal pages
   - Press archive grid: PC 5 columns / mobile 2 columns
   - Product category child nav now follows WooCommerce menu order via PHP
========================================================= */

/* Support pages: remove side bias from Storefront content columns */
body.woocommerce-account #primary,
body.search #primary,
body.search-no-results #primary,
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) #primary {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.woocommerce-account .site-main,
body.search .site-main,
body.search-no-results .site-main,
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .site-main {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* My Page: center the navigation + content block as one unit */
body.woocommerce-account .entry-header {
  margin: 86px auto 52px !important;
  text-align: center !important;
}

body.woocommerce-account .entry-content > .woocommerce,
body.woocommerce-account .woocommerce-MyAccount-navigation + .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce {
  box-sizing: border-box !important;
}

body.woocommerce-account .entry-content > .woocommerce {
  width: min(920px, calc(100vw - 64px)) !important;
  max-width: 920px !important;
  margin: 0 auto 130px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 72px !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
  flex: 0 0 260px !important;
  width: 260px !important;
  margin: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: 600px !important;
  margin: 0 !important;
}

/* No-results search page: force true center */
body.search-no-results .site-content,
body.search-no-results .content-area,
body.search-no-results .site-main,
body.search-no-results #primary {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.search-no-results .denu-empty-results,
body.search .denu-empty-results {
  width: min(720px, calc(100vw - 48px)) !important;
  max-width: 720px !important;
  margin: 92px auto 145px !important;
  padding: 0 !important;
  text-align: center !important;
}

body.search-no-results .denu-empty-results h1,
body.search .denu-empty-results h1 {
  text-align: center !important;
}

/* Contact / privacy / legal / generic footer pages */
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-header {
  margin: 86px auto 46px !important;
  text-align: center !important;
}

body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-title {
  font-size: clamp(30px, 3.1vw, 48px) !important;
  line-height: 1.1 !important;
  letter-spacing: .03em !important;
  text-align: center !important;
}

body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content {
  width: min(860px, calc(100vw - 64px)) !important;
  max-width: 860px !important;
  margin: 0 auto 120px !important;
  padding: 0 !important;
  font-size: 14px !important;
  line-height: 2 !important;
  color: #333 !important;
  text-align: left !important;
}

body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content p,
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content ul,
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content ol,
body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content table {
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content a {
  color: #222 !important;
  text-underline-offset: 3px !important;
}

body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .edit-link,
body.woocommerce-account .edit-link,
body.search .edit-link {
  display: none !important;
}

/* Press / Archive page grid */
body.page-id-15121 .entry-header,
body.page-id-15121 .entry-title {
  text-align: center !important;
}

body.page-id-15121 .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 120px !important;
  padding: 0 !important;
}

body.page-id-15121 .wp-block-post-template,
body.page-id-15121 .wp-block-post-template.is-layout-grid,
body.page-id-15121 ul.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.page-id-15121 .wp-block-post,
body.page-id-15121 .wp-block-post-template > li {
  margin: 0 !important;
  padding: 0 0 46px !important;
  list-style: none !important;
  text-align: center !important;
}

body.page-id-15121 .wp-block-post-featured-image,
body.page-id-15121 .wp-block-post-featured-image a,
body.page-id-15121 .wp-block-post-featured-image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
}

body.page-id-15121 .wp-block-post-title {
  margin: 14px 12px 5px !important;
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  text-align: center !important;
}

body.page-id-15121 .wp-block-post-title a {
  color: #111 !important;
  text-decoration: none !important;
}

body.page-id-15121 .wp-block-post-excerpt,
body.page-id-15121 .wp-block-post-date,
body.page-id-15121 .wp-block-post-author,
body.page-id-15121 .wp-block-post-terms {
  margin: 0 12px !important;
  font-size: 11px !important;
  line-height: 1.6 !important;
  color: #666 !important;
  text-align: center !important;
}

/* Category nav: keep manually configured order readable and allow horizontal scroll */
.denu-shop-nav--children {
  justify-content: center !important;
}

@media (max-width: 1200px) {
  .denu-shop-nav--children,
  .denu-shop-nav--parents {
    justify-content: flex-start !important;
  }
}

@media (max-width: 782px) {
  body.woocommerce-account .entry-header,
  body.search .entry-header,
  body.search-no-results .entry-header,
  body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-header {
    margin: 54px auto 30px !important;
    text-align: center !important;
  }

  body.woocommerce-account .entry-title,
  body.search .entry-title,
  body.search-no-results .entry-title,
  body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-title {
    font-size: 36px !important;
    line-height: 1.1 !important;
    text-align: center !important;
    padding: 0 !important;
  }

  body.woocommerce-account .entry-content > .woocommerce {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
    margin: 0 auto 90px !important;
    display: block !important;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    max-width: none !important;
  }

  body.page:not(.page-id-15115):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .entry-content {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
    margin-bottom: 90px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  body.search-no-results .denu-empty-results,
  body.search .denu-empty-results {
    width: calc(100vw - 32px) !important;
    margin: 70px auto 95px !important;
  }

  body.search-no-results .denu-empty-results h1,
  body.search .denu-empty-results h1 {
    font-size: 36px !important;
  }

  body.page-id-15121 .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template.is-layout-grid,
  body.page-id-15121 ul.wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.page-id-15121 .wp-block-post,
  body.page-id-15121 .wp-block-post-template > li {
    padding-bottom: 34px !important;
  }

  body.page-id-15121 .wp-block-post-title {
    font-size: 11px !important;
    margin: 12px 8px 4px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 9.1 ARCHIVE / POST / SUPPORT FIX
   - Reduce top gap on Archive/Press
   - Full-width 5 column Press grid on desktop, 2 column on mobile
   - Remove post comments UI
   - Add readable margins to single post text
   - Force footer support pages to share one centered content width
========================================================= */

/* Press / Archive: reduce huge gap below header */
body.page-id-15121 .site-content,
body.page-id-15121 .content-area,
body.page-id-15121 .site-main {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.page-id-15121 .entry-header {
  margin: 44px auto 34px !important;
  padding: 0 !important;
  text-align: center !important;
}

body.page-id-15121 .entry-title {
  font-size: clamp(32px, 3.2vw, 48px) !important;
  line-height: 1.1 !important;
  text-align: center !important;
}

/* Make the query block itself full bleed, not the title */
body.page-id-15121 .entry-content,
body.page-id-15121 .entry-content > .wp-block-query,
body.page-id-15121 .entry-content > .wp-block-group,
body.page-id-15121 .wp-block-query {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.page-id-15121 .wp-block-query .wp-block-post-template,
body.page-id-15121 .wp-block-post-template,
body.page-id-15121 .wp-block-post-template.is-layout-grid,
body.page-id-15121 ul.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  list-style: none !important;
}

body.page-id-15121 .wp-block-post,
body.page-id-15121 .wp-block-post-template > li {
  padding: 0 0 52px !important;
}

body.page-id-15121 .wp-block-post-featured-image img {
  aspect-ratio: 3 / 4 !important;
  object-fit: cover !important;
}

/* Single archive/post detail pages */
body.single-post .site-content,
body.single-post .content-area,
body.single-post .site-main,
body.single-post #primary {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-post .entry-header {
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin: 54px auto 28px !important;
  padding: 0 !important;
  text-align: left !important;
}

body.single-post .entry-title {
  font-size: clamp(30px, 3.2vw, 48px) !important;
  line-height: 1.15 !important;
  letter-spacing: .01em !important;
  text-align: left !important;
}

body.single-post .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 120px !important;
  padding: 0 !important;
}

body.single-post .entry-content > p,
body.single-post .entry-content > h1,
body.single-post .entry-content > h2,
body.single-post .entry-content > h3,
body.single-post .entry-content > h4,
body.single-post .entry-content > ul,
body.single-post .entry-content > ol,
body.single-post .entry-content > blockquote,
body.single-post .entry-content > .wp-block-group:not(.alignfull):not(.alignwide),
body.single-post .entry-content > .wp-block-columns:not(.alignfull):not(.alignwide) {
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content p {
  font-size: 14px !important;
  line-height: 1.9 !important;
  letter-spacing: .01em !important;
}

body.single-post .entry-content > .wp-block-image,
body.single-post .entry-content > figure,
body.single-post .entry-content .wp-block-image.alignfull,
body.single-post .entry-content .wp-block-gallery.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content img {
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
}

/* Remove comments and comment links on archive posts */
body.single-post .comments-area,
body.single-post #comments,
body.single-post .comment-respond,
body.single-post .comment-reply-title,
body.single-post .comments-title,
body.single-post .comment-form,
body.single-post .comments-link,
body.single-post .post-comments,
body.single-post .entry-meta,
body.single-post .entry-footer,
body.single-post .nav-links,
body.single-post .post-navigation,
body.single-post .edit-link {
  display: none !important;
}

/* Footer menu pages: contact / legal / privacy true centered body */
body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .site-content,
body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .content-area,
body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) #primary,
body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .site-main {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .hentry .entry-content,
body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) #main .entry-content {
  width: min(860px, calc(100vw - 72px)) !important;
  max-width: 860px !important;
  margin: 0 auto 120px !important;
  padding: 0 !important;
  text-align: left !important;
}

body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .hentry .entry-content > * {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 782px) {
  body.page-id-15121 .entry-header {
    margin: 34px auto 28px !important;
  }

  body.page-id-15121 .wp-block-query .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template.is-layout-grid,
  body.page-id-15121 ul.wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.single-post .entry-header,
  body.single-post .entry-content > p,
  body.single-post .entry-content > h1,
  body.single-post .entry-content > h2,
  body.single-post .entry-content > h3,
  body.single-post .entry-content > h4,
  body.single-post .entry-content > ul,
  body.single-post .entry-content > ol,
  body.single-post .entry-content > blockquote,
  body.single-post .entry-content > .wp-block-group:not(.alignfull):not(.alignwide),
  body.single-post .entry-content > .wp-block-columns:not(.alignfull):not(.alignwide) {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
  }

  body.single-post .entry-header {
    margin-top: 38px !important;
    margin-bottom: 24px !important;
  }

  body.single-post .entry-title {
    font-size: 32px !important;
  }

  body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) .hentry .entry-content,
  body.page:not(.page-id-15115):not(.page-id-15121):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.post-type-archive-product):not(.tax-product_cat) #main .entry-content {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
    margin-bottom: 90px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 9.2 PRESS ALIGN / SINGLE POST IMAGE FIX
   - Press archive: centered wide 5-column grid, no right drift
   - Single post: images no longer full-bleed; readable side margins
========================================================= */

/* Press / Archive: keep wide, but centered inside viewport */
body.page-id-15121 .entry-header {
  margin: 36px auto 30px !important;
  padding: 0 !important;
}

body.page-id-15121 .entry-content,
body.page-id-15121 .entry-content > .wp-block-query,
body.page-id-15121 .entry-content > .wp-block-group,
body.page-id-15121 .wp-block-query {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

body.page-id-15121 .wp-block-query .wp-block-post-template,
body.page-id-15121 .wp-block-post-template,
body.page-id-15121 .wp-block-post-template.is-layout-grid,
body.page-id-15121 ul.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: min(1680px, calc(100vw - 64px)) !important;
  max-width: min(1680px, calc(100vw - 64px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
  list-style: none !important;
  transform: none !important;
}

body.page-id-15121 .wp-block-post,
body.page-id-15121 .wp-block-post-template > li {
  min-width: 0 !important;
  padding: 0 0 52px !important;
  margin: 0 !important;
  text-align: center !important;
}

body.page-id-15121 .wp-block-post-featured-image,
body.page-id-15121 .wp-block-post-featured-image a,
body.page-id-15121 .wp-block-post-featured-image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-15121 .wp-block-post-featured-image img {
  aspect-ratio: 3 / 4 !important;
  object-fit: cover !important;
}

/* Single post: text and images share a controlled readable width */
body.single-post .entry-header {
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin: 50px auto 28px !important;
  padding: 0 !important;
}

body.single-post .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 120px !important;
  padding: 0 !important;
}

body.single-post .entry-content > p,
body.single-post .entry-content > h1,
body.single-post .entry-content > h2,
body.single-post .entry-content > h3,
body.single-post .entry-content > h4,
body.single-post .entry-content > ul,
body.single-post .entry-content > ol,
body.single-post .entry-content > blockquote,
body.single-post .entry-content > .wp-block-group:not(.alignfull):not(.alignwide),
body.single-post .entry-content > .wp-block-columns:not(.alignfull):not(.alignwide),
body.single-post .entry-content > .wp-block-image,
body.single-post .entry-content > figure,
body.single-post .entry-content .wp-block-image.alignfull,
body.single-post .entry-content .wp-block-image.alignwide,
body.single-post .entry-content .wp-block-gallery.alignfull,
body.single-post .entry-content .wp-block-gallery.alignwide,
body.single-post .entry-content > .wp-block-gallery {
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content .wp-block-image img,
body.single-post .entry-content figure img,
body.single-post .entry-content img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 782px) {
  body.page-id-15121 .entry-header {
    margin: 30px auto 24px !important;
  }

  body.page-id-15121 .wp-block-query .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template.is-layout-grid,
  body.page-id-15121 ul.wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-post .entry-header,
  body.single-post .entry-content > p,
  body.single-post .entry-content > h1,
  body.single-post .entry-content > h2,
  body.single-post .entry-content > h3,
  body.single-post .entry-content > h4,
  body.single-post .entry-content > ul,
  body.single-post .entry-content > ol,
  body.single-post .entry-content > blockquote,
  body.single-post .entry-content > .wp-block-group:not(.alignfull):not(.alignwide),
  body.single-post .entry-content > .wp-block-columns:not(.alignfull):not(.alignwide),
  body.single-post .entry-content > .wp-block-image,
  body.single-post .entry-content > figure,
  body.single-post .entry-content .wp-block-image.alignfull,
  body.single-post .entry-content .wp-block-image.alignwide,
  body.single-post .entry-content .wp-block-gallery.alignfull,
  body.single-post .entry-content .wp-block-gallery.alignwide,
  body.single-post .entry-content > .wp-block-gallery {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 9.3 PRESS GRID CENTER / POST IMAGE WIDTH
   - Fix /press/ grid drifting to the right by centering it to viewport
   - Keep PC 5 columns, mobile 2 columns
   - Prevent single post images from full-bleeding edge to edge
========================================================= */

/* Press page: reduce upper whitespace and center the whole post grid */
body.page-id-15121 .site-content,
body.page-id-15121 .content-area,
body.page-id-15121 .site-main,
body.page-id-15121 #primary {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.page-id-15121 .entry-header {
  margin: 28px auto 28px !important;
  padding: 0 24px !important;
}

body.page-id-15121 .entry-content {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

body.page-id-15121 .entry-content > *:not(.wp-block-query) {
  width: min(1400px, calc(100vw - 96px)) !important;
  max-width: min(1400px, calc(100vw - 96px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-15121 .wp-block-query,
body.page-id-15121 .wp-block-query .wp-block-post-template,
body.page-id-15121 .wp-block-post-template,
body.page-id-15121 .wp-block-post-template.is-layout-grid,
body.page-id-15121 ul.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: min(1400px, calc(100vw - 96px)) !important;
  max-width: min(1400px, calc(100vw - 96px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
}

body.page-id-15121 .wp-block-query {
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-15121 .wp-block-post,
body.page-id-15121 .wp-block-post-template > li {
  text-align: center !important;
  padding-bottom: 56px !important;
}

body.page-id-15121 .wp-block-post-title,
body.page-id-15121 .wp-block-post-excerpt,
body.page-id-15121 .wp-block-read-more {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* Single press post: text and image should share a controlled center width */
body.single-post .site-content,
body.single-post .content-area,
body.single-post .site-main,
body.single-post #primary {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.single-post .entry-header,
body.single-post .entry-content {
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content {
  padding-bottom: 90px !important;
}

body.single-post .entry-content > *,
body.single-post .entry-content .wp-block-image,
body.single-post .entry-content figure,
body.single-post .entry-content .alignfull,
body.single-post .entry-content .alignwide {
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content img,
body.single-post .entry-content p > img,
body.single-post .entry-content figure > img,
body.single-post .entry-content .wp-block-image img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.single-post .entry-content .wp-block-image img,
body.single-post .entry-content figure > img,
body.single-post .entry-content > img,
body.single-post .entry-content p > img {
  width: 100% !important;
  max-width: 1180px !important;
}

@media (max-width: 782px) {
  body.page-id-15121 .entry-header {
    margin: 26px auto 22px !important;
  }

  body.page-id-15121 .entry-content > *:not(.wp-block-query),
  body.page-id-15121 .wp-block-query,
  body.page-id-15121 .wp-block-query .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template,
  body.page-id-15121 .wp-block-post-template.is-layout-grid,
  body.page-id-15121 ul.wp-block-post-template {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.single-post .entry-header,
  body.single-post .entry-content {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
  }

  body.single-post .entry-content > *,
  body.single-post .entry-content .wp-block-image,
  body.single-post .entry-content figure,
  body.single-post .entry-content .alignfull,
  body.single-post .entry-content .alignwide {
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* =========================================================
   DENU JAPAN - STEP 9.4 PRESS TOP GAP + PRODUCT REVIEW FIX
   - Reduce Archive/Press top blank area further
   - Keep product reviews visible while blog comments remain hidden
========================================================= */

/* Press / Archive: remove remaining large blank space under header */
body.page-id-15121 .site-content,
body.page-id-15121 .content-area,
body.page-id-15121 #primary,
body.page-id-15121 .site-main,
body.page-id-15121 .hentry,
body.page-id-15121 article.page,
body.page-id-15121 .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.page-id-15121 .entry-header {
  margin-top: 18px !important;
  margin-bottom: 28px !important;
  padding-top: 0 !important;
}

body.page-id-15121 .entry-title {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Keep Press grid centered and not too far from title */
body.page-id-15121 .wp-block-query,
body.page-id-15121 .entry-content > .wp-block-query,
body.page-id-15121 .entry-content > .wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Product detail: make WooCommerce reviews/tabs visible and styled */
body.single-product div.product .woocommerce-tabs {
  display: block !important;
  visibility: visible !important;
  clear: both !important;
  width: min(1180px, calc(100vw - 96px)) !important;
  max-width: 1180px !important;
  margin: 72px auto 0 !important;
  border-top: 1px solid #eee !important;
}

body.single-product div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  justify-content: center !important;
  gap: 28px !important;
}

body.single-product div.product .woocommerce-tabs .panel,
body.single-product div.product #reviews,
body.single-product div.product #comments,
body.single-product div.product #review_form_wrapper {
  display: block !important;
  visibility: visible !important;
}

body.single-product div.product #reviews {
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 10px 0 40px !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}

body.single-product div.product #reviews #comments h2,
body.single-product div.product #review_form_wrapper .comment-reply-title {
  font-size: 14px !important;
  letter-spacing: .04em !important;
  text-align: center !important;
  margin: 0 0 22px !important;
}

body.single-product div.product #reviews .commentlist,
body.single-product div.product #reviews ol.commentlist {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.single-product div.product #reviews .comment_container {
  border-top: 1px solid #eee !important;
  padding: 18px 0 !important;
}

body.single-product div.product #reviews textarea,
body.single-product div.product #reviews input[type="text"],
body.single-product div.product #reviews input[type="email"] {
  border: 1px solid #ddd !important;
  background: #fff !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.single-product div.product #reviews .form-submit input,
body.single-product div.product #reviews button,
body.single-product div.product #reviews input[type="submit"] {
  border-radius: 0 !important;
  background: #222 !important;
  color: #fff !important;
  border: 1px solid #222 !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
}

@media (max-width: 782px) {
  body.page-id-15121 .entry-header {
    margin-top: 18px !important;
    margin-bottom: 22px !important;
  }

  body.single-product div.product .woocommerce-tabs {
    width: calc(100vw - 32px) !important;
    margin-top: 48px !important;
  }

  body.single-product div.product .woocommerce-tabs ul.tabs {
    gap: 18px !important;
    padding: 16px 0 !important;
  }

  body.single-product div.product .woocommerce-tabs .panel,
  body.single-product div.product #reviews {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 9.5 PRESS GAP + PRODUCT TAB CLICK FIX
   - Force Press title closer to header
   - Keep product reviews tab clickable and visible
========================================================= */

/* Press / Archive: kill remaining large gap between header and Archive title */
body.page-id-15121 .denu-site-header + .site-content,
body.page-id-15121 .site-header + .site-content,
body.page-id-15121 .site-content,
body.page-id-15121 #content,
body.page-id-15121 #primary,
body.page-id-15121 .content-area,
body.page-id-15121 .site-main,
body.page-id-15121 article.page,
body.page-id-15121 .hentry {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.page-id-15121 .entry-header {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
  padding-top: 34px !important;
  padding-bottom: 0 !important;
}

body.page-id-15121 .entry-title {
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-15121 .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.page-id-15121 .entry-content > .wp-block-spacer:first-child,
body.page-id-15121 .entry-content > .wp-block-group:first-child:empty,
body.page-id-15121 .entry-content > p:first-child:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Product tabs: make manual JS switching look clean */
body.single-product div.product .woocommerce-tabs ul.tabs li.active a,
body.single-product div.product .woocommerce-tabs ul.tabs li a:hover,
body.single-product div.product .woocommerce-tabs ul.tabs li a:focus {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.single-product div.product .woocommerce-tabs .panel {
  scroll-margin-top: 120px !important;
}

body.single-product div.product .woocommerce-tabs .panel[hidden] {
  display: none !important;
}

/* Keep blog/post comments hidden, but never hide WooCommerce product reviews */
body.single-post:not(.single-product) .comments-area,
body.single-post:not(.single-product) #comments,
body.single-post:not(.single-product) .comment-respond,
body.single-post:not(.single-product) .comment-form {
  display: none !important;
}

@media (max-width: 782px) {
  body.page-id-15121 .entry-header {
    padding-top: 24px !important;
    margin-bottom: 20px !important;
  }

  body.single-product div.product .woocommerce-tabs .panel {
    scroll-margin-top: 90px !important;
  }
}

/* =========================================================
   DENU JAPAN - STEP 9.6 PRESS TOP GAP FINAL FIX
   - /press/ page only
   - Uses JS-added body class as fallback when page-id targeting is unstable
========================================================= */
body.denu-press-page .site-content,
body.denu-press-page #content,
body.denu-press-page #primary,
body.denu-press-page .content-area,
body.denu-press-page .site-main,
body.denu-press-page article.page,
body.denu-press-page .hentry,
body.denu-press-page .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.denu-press-page .site-main {
  margin-top: -118px !important;
}

body.denu-press-page .entry-header {
  margin: 0 auto 22px !important;
  padding: 0 !important;
  text-align: center !important;
}

body.denu-press-page .entry-title {
  margin: 0 !important;
  padding: 0 !important;
}

body.denu-press-page .entry-content > *:first-child {
  margin-top: 0 !important;
}

@media (max-width: 782px) {
  body.denu-press-page .site-main {
    margin-top: -52px !important;
  }

  body.denu-press-page .entry-header {
    margin-bottom: 18px !important;
  }
}
