/* ACE2017 desktop commerce. All changes start at 1024px; mobile keeps its existing flow. */
@media (min-width: 1024px) {
  /* Browse fixed sales units in a full webshop catalogue. */
  .page-shop .production-products,
  .page-japan-catalog .production-products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
  }
  .page-shop .production-products > .shop-card,
  .page-japan-catalog .production-products > .shop-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-radius: 15px;
  }
  .page-shop .shop-pic,
  .page-japan-catalog .shop-pic {
    height: 220px;
    flex: 0 0 220px;
    padding: 15px;
  }
  .page-shop .shop-pic img,
  .page-japan-catalog .shop-pic img { height: 100%; }
  .page-shop .shop-info,
  .page-japan-catalog .shop-info { display: flex; flex: 1; flex-direction: column; padding: 19px; }
  .page-shop .shop-name,
  .page-japan-catalog .shop-name { font-size: 17px; line-height: 1.55; }
  .page-shop .shop-spec,
  .page-japan-catalog .shop-spec { margin: 8px 0; font-size: 12px; }
  .page-shop .shop-price,
  .page-japan-catalog .shop-price { font-size: 26px; }
  .page-shop .shop-price-label,
  .page-japan-catalog .shop-price-label,
  .page-shop .shop-allin,
  .page-japan-catalog .shop-allin { font-size: 12px; }
  .page-shop .shop-allin,
  .page-japan-catalog .shop-allin { margin-bottom: 16px; }
  .page-shop .shop-card .btn,
  .page-japan-catalog .shop-card .btn { padding: 12px; font-size: 14px; margin-top: auto; }
  .page-shop .production-search,
  .page-japan-catalog .production-search { max-width: 840px; margin: 24px 0 18px; }
  .page-shop .production-search input,
  .page-japan-catalog .production-search input { padding: 14px 18px; font-size: 15px; }
  .page-shop .production-search button,
  .page-japan-catalog .production-search button { min-width: 96px; font-size: 14px; }
  .page-shop .shop-core-note { padding: 20px 24px; }
  .page-shop .shop-core-note b { font-size: 17px; }
  .page-shop .shop-core-note p { max-width: 1080px; font-size: 13px; line-height: 1.8; }

  /* Product photo and purchase summary share the first desktop row. */
  .page-product-detail.on {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
    column-gap: 32px;
    padding: 26px 32px 40px;
    align-items: start;
  }
  .page-product-detail > .pad { grid-column: 1 / -1; padding: 0 0 18px; }
  .page-product-detail > .product-gallery {
    grid-column: 1;
    grid-row: 2 / 4;
    border-radius: 20px;
    border: 1px solid #e5e8ed;
    position: sticky;
    top: 126px;
  }
  .page-product-detail .product-gallery-slide { height: clamp(410px, 37vw, 680px); }
  .page-product-detail .product-gallery-slide img { padding: 30px; }
  .page-product-detail > .product-panel { display: contents; }
  .page-product-detail .product-detail-summary { grid-column: 2; grid-row: 2; background: white; padding: 25px; border-radius: 18px 18px 0 0; }
  .page-product-detail .product-detail-extra { grid-column: 1 / -1; grid-row: 4; margin-top: 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
  .page-product-detail .product-detail-extra > .product-description,
  .page-product-detail .product-detail-extra > .product-alert-box { margin: 0; padding: 24px; border: 1px solid #e5e8ed; }
  .page-product-detail .product-detail-extra > .product-description:first-child { grid-column: 1 / -1; }
  .page-product-detail > .h5-buybar-space { display: none; }
  .page-product-detail > .product-buybar {
    position: static;
    grid-column: 2;
    grid-row: 3;
    width: 100%;
    max-width: none;
    transform: none;
    margin: 0;
    padding: 18px 25px 25px;
    border-radius: 0 0 18px 18px;
    background: white;
    z-index: auto;
    backdrop-filter: none;
    grid-template-columns: 90px minmax(0, 1fr);
  }
  .page-product-detail .product-buybar .buy-now-btn,
  .page-product-detail .product-buybar .fav-buybtn { min-height: 54px; }
  .page-product-detail .product-title { font-size: 28px; }
  .page-product-detail .product-final-price,
  .page-japan-product .product-final-price { font-size: 38px; }
  .page-product-detail .meta,
  .page-product-detail .product-included,
  .page-product-detail .fixed-pack p,
  .page-product-detail .info-line b,
  .page-product-detail .product-description p,
  .page-product-detail .age-product-warning div { font-size: 13px; line-height: 1.8; }
  .page-product-detail .product-description h3 { font-size: 18px; }
  .page-product-detail .info-line { gap: 22px; }
  .page-product-detail .info-line > span { flex: 0 0 100px; font-size: 13px; }
  .page-product-detail .fixed-pack b { font-size: 21px; }
  .page-product-detail .product-alert-actions button { font-size: 13px; min-height: 42px; }

  .page-japan-product .product-panel { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 0 36px; padding: 30px; border-radius: 20px; }
  .page-japan-product .jp-product-intro { grid-column: 2; grid-row: 1; min-width: 0; }
  .page-japan-product .jp-product-intro h1 { font-size: 28px; }
  .page-japan-product .jp-product-photo { grid-column: 1; grid-row: 1 / 3; align-self: start; position: sticky; top: 126px; border-radius: 18px; padding: 26px; background: #f6f7f9; min-height: 380px; display: grid; align-items: center; }
  .page-japan-product .jp-product-photo img { height: min(42vw, 580px); max-height: 580px !important; }
  .page-japan-product .jp-product-details { grid-column: 2; grid-row: 2; min-width: 0; font-size: 14px; line-height: 1.85; }
  .page-japan-product .product-panel:not(:has(.jp-product-photo)) { grid-template-columns: minmax(0, 1fr); }
  .page-japan-product .product-panel:not(:has(.jp-product-photo)) > .jp-product-intro,
  .page-japan-product .product-panel:not(:has(.jp-product-photo)) > .jp-product-details { grid-column: 1; max-width: 960px; }
  .page-japan-product .production-links { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; }
  .page-japan-product .production-links > form { margin: 0; }
  .page-japan-product .production-links a { text-align: center; }

  /* Member identity, quick actions and all existing services remain available. */
  .page-member .member-overview { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 20px; }
  .page-member .member-overview > .member { grid-column: 1; grid-row: 1 / 3; padding: 30px; display: flex; flex-direction: column; justify-content: center; }
  .page-member .member .founder { font-size: 13px; }
  .page-member .member .mid { font-size: 34px; overflow-wrap: anywhere; }
  .page-member .member .metrics { margin-top: 26px; }
  .page-member .member .m b { font-size: 25px; }
  .page-member .member .m span { font-size: 12px; }
  .page-member .member-top-actions { grid-column: 2; grid-row: 1; margin: 0; gap: 12px; }
  .page-member .member-action { padding: 18px 10px; font-size: 13px; }
  .page-member .member-action i { font-size: 26px; }
  .page-member .member-wealth { grid-column: 2; grid-row: 2; margin: 0; padding: 22px; }
  .page-member .member-wealth h3 { font-size: 18px; }
  .page-member .member-wealth p,
  .page-member .member-wealth-item span { font-size: 12px; }
  .page-member .member-wealth-item b { font-size: 18px; }
  .page-member .member-japan-orders { grid-column: 1; margin: 0; }
  .page-member .member-service-grid { margin-top: 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; background: transparent; overflow: visible; }
  .page-member .member-service-grid > .row { min-width: 0; min-height: 94px; border: 1px solid #e2e6ec; border-radius: 13px; background: white; padding: 19px; gap: 14px; }
  .page-member .member-service-grid .rm { min-width: 0; }
  .page-member .member-service-grid b { font-size: 15px; }
  .page-member .member-service-grid small { font-size: 12px; line-height: 1.7; }
  .page-member .member-company-entry,
  .page-member .member-logout { display: inline-block; width: auto; margin-top: 26px; margin-right: 16px; }
  .page-member .member-logout .production-save { margin: 0; }

  /* Independent orders use roomy cards without stretching a single order across the screen. */
  .page-order-list .order-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
  .page-order-list .order-tabs a { min-width: 108px; padding: 12px 20px; font-size: 14px; }
  .page-order-list .orders-wrap,
  .page-japan-orders .japan-orders-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
  .page-order-list .orders-wrap > .banner,
  .page-japan-orders .japan-orders-grid > .banner { grid-column: 1 / -1; }
  .page-order-list .order-list-card,
  .page-japan-orders .order-list-card { padding: 23px; min-width: 0; }
  .page-order-list .order-list-top,
  .page-japan-orders .order-list-top { justify-content: space-between; align-items: flex-start; }
  .page-order-list .order-no,
  .page-order-list .order-status,
  .page-japan-orders .jp-order-number { font-size: 13px; overflow-wrap: anywhere; }
  .page-order-list .order-mini-product { grid-template-columns: 96px minmax(0, 1fr); gap: 19px; margin: 20px 0; }
  .page-order-list .order-mini-pic { height: 96px; }
  .page-order-list .order-mini-name { font-size: 16px; line-height: 1.6; }
  .page-order-list .order-mini-meta { font-size: 12px; margin-top: 7px; }
  .page-order-list .order-mini-bottom { gap: 12px; flex-wrap: wrap; align-items: center; }
  .page-order-list .order-mini-bottom strong { font-size: 23px; }
  .page-order-list .order-mini-bottom small,
  .page-order-list .order-open,
  .page-order-list .reorder-btn { font-size: 13px; }
  .page-japan-orders .japan-orders-grid { margin-top: 24px; }
  .page-japan-orders .order-list-card h3 { font-size: 18px; margin: 20px 0 12px; }
  .page-japan-orders .order-list-card p { font-size: 14px; }
  .page-japan-orders .order-list-card .btn { margin: 12px 12px 0 0; }

  /* Keep each order in one form. Contact fields and the purchase review are separate columns. */
  .page-checkout > .pad,
  .page-japan-checkout > .pad { max-width: 1440px; margin: 0 auto; }
  .page-checkout [data-checkout-form] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 0 26px; align-items: start; }
  .page-checkout [data-checkout-form] > .errorlist { grid-column: 1 / -1; }
  .page-checkout .checkout-contact-column,
  .page-checkout .checkout-review-column { min-width: 0; }
  .page-checkout .order-card { padding: 24px; margin-bottom: 20px; }
  .page-checkout .order-card h3 { font-size: 18px; }
  .page-checkout .field-note,
  .page-checkout .one-order-note,
  .page-checkout .order-kv,
  .page-checkout .order-agree,
  .page-checkout .order-allin,
  .page-checkout .order-safe { font-size: 13px; line-height: 1.8; }
  .page-checkout .order-product { grid-template-columns: 90px minmax(0, 1fr); gap: 16px; }
  .page-checkout .order-product-pic { height: 90px; }
  .page-checkout .order-product-name { font-size: 16px; }
  .page-checkout .order-product-spec { font-size: 12px; }
  .page-checkout .h5-address-fields { padding: 16px; }
  .page-japan-checkout .jp-checkout-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; align-items: start; }
  .page-japan-checkout .jp-checkout-overview,
  .page-japan-checkout .japan-checkout-form { min-width: 0; }
  .page-japan-checkout .japan-checkout-form { margin: 0; padding: 28px; }
  .page-japan-checkout .jp-form-field > label:not(.jp-confirm),
  .page-japan-checkout .jp-confirm { font-size: 14px; }
  .page-japan-checkout .jp-help { font-size: 12px; }
  .page-japan-checkout .quote-summary { padding: 25px; font-size: 15px; line-height: 1.8; }
  .page-japan-checkout .jp-checkout-overview > * + * { margin-top: 22px; }
}
@media (min-width: 1200px) {
  .page-shop .production-products,
  .page-japan-catalog .production-products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1600px) {
  .page-shop .production-products,
  .page-japan-catalog .production-products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .page-member .member-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1780px) {
  .page-order-list .orders-wrap,
  .page-japan-orders .japan-orders-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1920px) {
  .page-shop .production-products,
  .page-japan-catalog .production-products { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
