/* JE Menu Dropdown v1.2.0
 * 1) je-dropdown を付けた親メニューだけクリック開閉
 * 2) トップ商品カテゴリーを中央寄せカード表示
 * 3) 限定商品・新着商品・人気商品を PC 4列 / スマホ2列へ統一
 *
 * 対象は、確認済みのトップページ固有IDに限定。
 */

/* =========================================================
 * ヘッダードロップダウン
 * ========================================================= */
.je-dropdown.menu-item-has-children > .sub-menu {
    display: none !important;
}

.je-dropdown.menu-item-has-children.je-dropdown-open > .sub-menu {
    display: block !important;
}

.je-dropdown.menu-item-has-children > a {
    position: relative;
    padding-right: 2.2em !important;
}

.je-dropdown.menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 0.85em;
    top: 50%;
    width: 0.45em;
    height: 0.45em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-65%) rotate(45deg);
    transform-origin: center;
    transition: transform 0.2s ease;
}

.je-dropdown.menu-item-has-children.je-dropdown-open > a::after {
    transform: translateY(-35%) rotate(225deg);
}

.je-dropdown.menu-item-has-children > .sub-menu {
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    height: auto !important;
}

.je-dropdown.menu-item-has-children > .sub-menu > li {
    display: block;
}

/* =========================================================
 * トップページ共通：カテゴリー / 限定 / 新着 / 人気
 * ========================================================= */
#nav_menu-2,
#assertive_item_list-2 .inner,
#assertive_item_list-6 .inner,
#welcart_bestseller-2 {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

#nav_menu-2,
#welcart_bestseller-2 {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
}

#nav_menu-2 .widget_title,
#assertive_item_list-2 .widget_title,
#assertive_item_list-6 .widget_title,
#welcart_bestseller-2 .widget_title {
    margin: 0 0 26px !important;
    text-align: center !important;
    font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
    line-height: 1.4 !important;
    letter-spacing: 0.08em;
}

#nav_menu-2 .widget_title::after,
#assertive_item_list-2 .widget_title::after,
#assertive_item_list-6 .widget_title::after,
#welcart_bestseller-2 .widget_title::after {
    content: "";
    display: block;
    width: 42px;
    height: 2px;
    margin: 12px auto 0;
    background: currentColor;
    opacity: 0.32;
}

/* =========================================================
 * トップページ 商品カテゴリー
 * 4 + 3 のとき2段目が中央に来るよう flex を使用
 * ========================================================= */
#nav_menu-2 .je-top-category-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#nav_menu-2 .je-top-category-grid > li {
    flex: 0 1 calc(25% - 11px) !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border: 0 !important;
}

#nav_menu-2 .je-top-category-grid > li > a {
    box-sizing: border-box;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 68px;
    padding: 14px 30px 14px 16px !important;
    position: relative;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: inherit;
    text-align: center;
    line-height: 1.45;
    font-weight: 600;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

#nav_menu-2 .je-top-category-grid > li > a::after {
    content: "›";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-52%);
    font-size: 1.25em;
    line-height: 1;
    opacity: 0.48;
}

#nav_menu-2 .je-top-category-grid > li > a:hover,
#nav_menu-2 .je-top-category-grid > li > a:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(0, 0, 0, 0.26);
    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.10);
}

/* =========================================================
 * 限定商品 / 新着商品
 * JSで Slick を解除した後、通常の4列グリッドとして表示
 * ========================================================= */
#assertive_item_list-2 .item-slide-block,
#assertive_item_list-6 .item-slide-block {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

#assertive_item_list-2 .item-slide-block > article,
#assertive_item_list-6 .item-slide-block > article {
    box-sizing: border-box;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 0 14px !important;
    float: none !important;
    display: block !important;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.95);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

#assertive_item_list-2 .itemimg,
#assertive_item_list-6 .itemimg {
    margin: 0 !important;
    overflow: hidden;
}

#assertive_item_list-2 .itemimg img,
#assertive_item_list-6 .itemimg img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

#assertive_item_list-2 .item-info-wrap,
#assertive_item_list-6 .item-info-wrap {
    box-sizing: border-box;
    padding: 12px 14px 0 !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname {
    line-height: 1.55 !important;
}

#assertive_item_list-2 .itemprice,
#assertive_item_list-6 .itemprice {
    margin-top: 7px !important;
}

#assertive_item_list-2 .slick-arrow,
#assertive_item_list-6 .slick-arrow,
#assertive_item_list-2 .slick-dots,
#assertive_item_list-6 .slick-dots {
    display: none !important;
}

#assertive_item_list-2 nav.see-more,
#assertive_item_list-6 nav.see-more {
    margin-top: 28px !important;
    text-align: center !important;
}

/* =========================================================
 * 人気商品
 * ========================================================= */
#welcart_bestseller-2 ul.ucart_widget_body {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#welcart_bestseller-2 ul.ucart_widget_body > li {
    box-sizing: border-box;
    min-width: 0;
    margin: 0 !important;
    padding: 0 0 14px !important;
    list-style: none !important;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.95);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

#welcart_bestseller-2 .itemimg {
    margin: 0 !important;
    overflow: hidden;
}

#welcart_bestseller-2 .itemimg img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

#welcart_bestseller-2 .itemname,
#welcart_bestseller-2 .itemprice {
    box-sizing: border-box;
    padding-left: 14px !important;
    padding-right: 14px !important;
}

#welcart_bestseller-2 .itemname {
    padding-top: 12px !important;
    line-height: 1.55 !important;
}

#welcart_bestseller-2 .itemprice {
    margin-top: 7px !important;
}

/* =========================================================
 * Tablet
 * ========================================================= */
@media (max-width: 900px) {
    #nav_menu-2 .je-top-category-grid > li {
        flex-basis: calc(33.333% - 10px) !important;
    }

    #assertive_item_list-2 .item-slide-block,
    #assertive_item_list-6 .item-slide-block,
    #welcart_bestseller-2 ul.ucart_widget_body {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
}

/* =========================================================
 * Smartphone
 * ========================================================= */
@media (max-width: 600px) {
    #nav_menu-2,
    #assertive_item_list-2 .inner,
    #assertive_item_list-6 .inner,
    #welcart_bestseller-2 {
        width: calc(100% - 24px) !important;
    }

    #nav_menu-2,
    #welcart_bestseller-2 {
        padding-top: 34px !important;
        padding-bottom: 34px !important;
    }

    #nav_menu-2 .widget_title,
    #assertive_item_list-2 .widget_title,
    #assertive_item_list-6 .widget_title,
    #welcart_bestseller-2 .widget_title {
        margin-bottom: 18px !important;
        font-size: 1.25rem !important;
    }

    #nav_menu-2 .je-top-category-grid {
        gap: 9px !important;
    }

    #nav_menu-2 .je-top-category-grid > li {
        flex-basis: calc(50% - 5px) !important;
    }

    #nav_menu-2 .je-top-category-grid > li > a {
        min-height: 56px;
        padding: 10px 24px 10px 10px !important;
        border-radius: 6px;
        font-size: 0.92rem;
    }

    #nav_menu-2 .je-top-category-grid > li > a::after {
        right: 9px;
    }

    #assertive_item_list-2 .item-slide-block,
    #assertive_item_list-6 .item-slide-block,
    #welcart_bestseller-2 ul.ucart_widget_body {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    #assertive_item_list-2 .item-info-wrap,
    #assertive_item_list-6 .item-info-wrap,
    #welcart_bestseller-2 .itemname,
    #welcart_bestseller-2 .itemprice {
        padding-left: 9px !important;
        padding-right: 9px !important;
    }

    #assertive_item_list-2 .itemname,
    #assertive_item_list-6 .itemname,
    #welcart_bestseller-2 .itemname {
        font-size: 0.88rem !important;
    }

    #assertive_item_list-2 .itemprice,
    #assertive_item_list-6 .itemprice,
    #welcart_bestseller-2 .itemprice {
        font-size: 0.9rem !important;
    }
}


/* =========================================================
 * v1.2.1 refinement
 * 商品カードの縦書き化・左右分割を解除し、スマホで見やすい縦積みカードへ統一
 * ========================================================= */

/* セクション全体の横幅と背景 */
#home-first-widget-area > section,
#home-second-widget-area > section {
    box-sizing: border-box;
}

#assertive_item_list-2,
#assertive_item_list-6,
#welcart_bestseller-2 {
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

#assertive_item_list-2 .backdrop,
#assertive_item_list-6 .backdrop,
#event_list-6 .backdrop,
#page_appeal_widget-2 .backdrop,
#welcart_bestseller-2 {
    border-radius: 12px;
}

/* 商品カード共通 */
#assertive_item_list-2 .item-slide-block > article,
#assertive_item_list-6 .item-slide-block > article,
#welcart_bestseller-2 ul.ucart_widget_body > li {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
}

#assertive_item_list-2 .item-slide-block > article > *,
#assertive_item_list-6 .item-slide-block > article > *,
#welcart_bestseller-2 ul.ucart_widget_body > li > * {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

#assertive_item_list-2 .itemimg,
#assertive_item_list-6 .itemimg,
#welcart_bestseller-2 .itemimg {
    order: 1;
}

#assertive_item_list-2 .itemimg a,
#assertive_item_list-6 .itemimg a,
#welcart_bestseller-2 .itemimg a {
    display: block !important;
}

#assertive_item_list-2 .itemimg img,
#assertive_item_list-6 .itemimg img,
#welcart_bestseller-2 .itemimg img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

#assertive_item_list-2 .item-info-wrap,
#assertive_item_list-6 .item-info-wrap {
    order: 2;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname,
#assertive_item_list-2 .itemprice,
#assertive_item_list-6 .itemprice,
#welcart_bestseller-2 .itemname,
#welcart_bestseller-2 .itemprice,
#welcart_bestseller-2 li,
#welcart_bestseller-2 li * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname,
#welcart_bestseller-2 .itemname {
    margin: 0 !important;
    font-size: 0.98rem !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
}

#assertive_item_list-2 .itemname a,
#assertive_item_list-6 .itemname a,
#welcart_bestseller-2 .itemname a {
    display: block !important;
    text-decoration: none !important;
}

#assertive_item_list-2 .itemprice,
#assertive_item_list-6 .itemprice,
#welcart_bestseller-2 .itemprice {
    margin-top: 8px !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
}

/* ランク表示やバッジ類が崩れないよう整える */
#welcart_bestseller-2 ul.ucart_widget_body > li {
    position: relative;
}

#welcart_bestseller-2 ul.ucart_widget_body > li > *:not(.itemimg):not(.itemname):not(.itemprice) {
    width: auto !important;
}

/* PCでは見出し下にゆとり */
#assertive_item_list-2 .backdrop,
#assertive_item_list-6 .backdrop,
#welcart_bestseller-2,
#nav_menu-2 {
    padding-left: 18px !important;
    padding-right: 18px !important;
}

@media (max-width: 900px) {
    #assertive_item_list-2,
    #assertive_item_list-6,
    #welcart_bestseller-2 {
        width: calc(100% - 28px) !important;
    }
}

@media (max-width: 600px) {
    #assertive_item_list-2,
    #assertive_item_list-6,
    #welcart_bestseller-2,
    #nav_menu-2 {
        width: calc(100% - 20px) !important;
    }

    #assertive_item_list-2 .backdrop,
    #assertive_item_list-6 .backdrop,
    #welcart_bestseller-2,
    #nav_menu-2 {
        padding-left: 10px !important;
        padding-right: 10px !important;
        border-radius: 8px;
    }

    #assertive_item_list-2 .item-slide-block > article,
    #assertive_item_list-6 .item-slide-block > article,
    #welcart_bestseller-2 ul.ucart_widget_body > li {
        padding-bottom: 10px !important;
        border-radius: 8px;
    }

    #assertive_item_list-2 .itemimg,
    #assertive_item_list-6 .itemimg,
    #welcart_bestseller-2 .itemimg {
        width: 100% !important;
    }

    #assertive_item_list-2 .itemimg img,
    #assertive_item_list-6 .itemimg img,
    #welcart_bestseller-2 .itemimg img {
        width: 100% !important;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    #assertive_item_list-2 .item-info-wrap,
    #assertive_item_list-6 .item-info-wrap,
    #welcart_bestseller-2 .itemname,
    #welcart_bestseller-2 .itemprice {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    #assertive_item_list-2 .itemname,
    #assertive_item_list-6 .itemname,
    #welcart_bestseller-2 .itemname {
        font-size: 0.9rem !important;
        line-height: 1.5 !important;
    }

    #assertive_item_list-2 .itemprice,
    #assertive_item_list-6 .itemprice,
    #welcart_bestseller-2 .itemprice {
        font-size: 0.95rem !important;
    }

    /* 売り切れ・新入荷などのラベルが縦に暴れないように折り返しを制御 */
    #assertive_item_list-2 .item-info-wrap [class*="item"],
    #assertive_item_list-6 .item-info-wrap [class*="item"],
    #assertive_item_list-2 .item-info-wrap [class*="stock"],
    #assertive_item_list-6 .item-info-wrap [class*="stock"],
    #welcart_bestseller-2 [class*="item"],
    #welcart_bestseller-2 [class*="stock"] {
        writing-mode: horizontal-tb !important;
        white-space: normal !important;
    }
}


/* =========================================================
 * v1.2.4 targeted fix for Assertive item cards
 * 実測HTML:
 * article > a > .itemimg + .in-block
 * .in-block > .item-info-wrap + ul.opt-tag
 *
 * テーマ既定の a { display:flex; flex-direction:row } と
 * img { position:absolute } をトップの限定/新着だけ上書きする。
 * ========================================================= */

/* v1.2.0/1.2.1で二重に狭めていた inner 幅を戻す */
#assertive_item_list-2 .inner,
#assertive_item_list-6 .inner {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* カード自体 */
#assertive_item_list-2 .item-slide-block > article,
#assertive_item_list-6 .item-slide-block > article {
    box-sizing: border-box !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
    position: relative !important;
    overflow: hidden !important;
}

/* テーマ標準の横並びを解除: 画像上 / 情報下 */
#assertive_item_list-2 .item-slide-block > article > a,
#assertive_item_list-6 .item-slide-block > article > a {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    text-decoration: none !important;
}

/* 商品画像: 正方形の中に全体を収め、絶対配置を解除 */
#assertive_item_list-2 .item-slide-block > article > a > .itemimg,
#assertive_item_list-6 .item-slide-block > article > a > .itemimg {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 8px !important;
    position: relative !important;
    overflow: hidden !important;
    background: #fff !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .itemimg img,
#assertive_item_list-6 .item-slide-block > article > a > .itemimg img {
    display: block !important;
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
}

/* 画像下の情報ブロック */
#assertive_item_list-2 .item-slide-block > article > a > .in-block,
#assertive_item_list-6 .item-slide-block > article > a > .in-block {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 10px 10px 0 !important;
    position: static !important;
}

#assertive_item_list-2 .item-info-wrap,
#assertive_item_list-6 .item-info-wrap {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    text-align: left !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname,
#assertive_item_list-2 .itemprice,
#assertive_item_list-6 .itemprice {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    position: static !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname {
    margin: 0 !important;
    font-size: 0.96rem !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
}

#assertive_item_list-2 .itemprice,
#assertive_item_list-6 .itemprice {
    margin: 7px 0 0 !important;
    font-size: 0.98rem !important;
    line-height: 1.4 !important;
}

#assertive_item_list-2 .itemprice .tax,
#assertive_item_list-6 .itemprice .tax {
    font-size: 0.78em !important;
    white-space: nowrap !important;
}

/* 新入荷・おすすめ・売り切れ等 */
#assertive_item_list-2 ul.opt-tag,
#assertive_item_list-6 ul.opt-tag {
    box-sizing: border-box !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    position: static !important;
    list-style: none !important;
}

#assertive_item_list-2 ul.opt-tag > li,
#assertive_item_list-6 ul.opt-tag > li {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 4px 7px !important;
    position: static !important;
    float: none !important;
    writing-mode: horizontal-tb !important;
    white-space: nowrap !important;
    line-height: 1.25 !important;
    font-size: 0.76rem !important;
}

@media (max-width: 600px) {
    #assertive_item_list-2 .inner,
    #assertive_item_list-6 .inner {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    #assertive_item_list-2 .item-slide-block,
    #assertive_item_list-6 .item-slide-block {
        gap: 10px !important;
    }

    #assertive_item_list-2 .item-slide-block > article > a > .itemimg,
    #assertive_item_list-6 .item-slide-block > article > a > .itemimg {
        padding: 6px !important;
    }

    #assertive_item_list-2 .item-slide-block > article > a > .in-block,
    #assertive_item_list-6 .item-slide-block > article > a > .in-block {
        padding: 8px 8px 0 !important;
    }

    #assertive_item_list-2 .itemname,
    #assertive_item_list-6 .itemname {
        font-size: 0.86rem !important;
        line-height: 1.45 !important;
    }

    #assertive_item_list-2 .itemprice,
    #assertive_item_list-6 .itemprice {
        font-size: 0.9rem !important;
    }
}


/* =========================================================
 * v1.2.5 card alignment refinement
 * 商品名の行数・タグ数に左右されず、各カードの商品写真を
 * 必ずカード上端の同じ位置に固定する。
 * ========================================================= */

/* グリッド各行のカード高を揃え、カード自体を上端から伸ばす */
#assertive_item_list-2 .item-slide-block,
#assertive_item_list-6 .item-slide-block {
    align-items: stretch !important;
    grid-auto-rows: 1fr !important;
}

#assertive_item_list-2 .item-slide-block > article,
#assertive_item_list-6 .item-slide-block > article {
    align-self: stretch !important;
    justify-self: stretch !important;
    height: 100% !important;
}

/* カード内も高さを100%使い、画像は常に最上部に固定 */
#assertive_item_list-2 .item-slide-block > article > a,
#assertive_item_list-6 .item-slide-block > article > a {
    height: 100% !important;
    min-height: 100% !important;
    justify-content: flex-start !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .itemimg,
#assertive_item_list-6 .item-slide-block > article > a > .itemimg {
    order: 1 !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .in-block,
#assertive_item_list-6 .item-slide-block > article > a > .in-block {
    order: 2 !important;
    flex: 1 1 auto !important;
}

/* 商品名の短いカードにも一定の文字領域を確保して、
   価格・タグの開始位置もなるべく揃える */
#assertive_item_list-2 .item-info-wrap,
#assertive_item_list-6 .item-info-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

#assertive_item_list-2 .itemname,
#assertive_item_list-6 .itemname {
    min-height: 4.5em !important; /* PC基準: 約3行分 */
}

@media (max-width: 600px) {
    #assertive_item_list-2 .itemname,
    #assertive_item_list-6 .itemname {
        min-height: 5.8em !important; /* スマホ基準: 約4行分 */
    }
}


/* =========================================================
 * v1.2.6 title-first product cards
 * 限定商品・新着商品を「商品名 → 写真 → 価格・タグ」に統一。
 * 商品名の高さを固定することで、写真の開始位置を全カードで揃える。
 * ========================================================= */
#assertive_item_list-2 .item-slide-block > article > a,
#assertive_item_list-6 .item-slide-block > article > a {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .je-item-title,
#assertive_item_list-6 .item-slide-block > article > a > .je-item-title {
    order: 1 !important;
    box-sizing: border-box !important;
    display: -webkit-box !important;
    width: 100% !important;
    height: 4.5em !important;
    min-height: 4.5em !important;
    max-height: 4.5em !important;
    margin: 0 !important;
    padding: 10px 10px 8px !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    font-size: 0.96rem !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    text-align: left !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .itemimg,
#assertive_item_list-6 .item-slide-block > article > a > .itemimg {
    order: 2 !important;
    flex: 0 0 auto !important;
    margin-top: 0 !important;
}

#assertive_item_list-2 .item-slide-block > article > a > .in-block,
#assertive_item_list-6 .item-slide-block > article > a > .in-block {
    order: 3 !important;
    flex: 1 1 auto !important;
    padding-top: 9px !important;
}

/* 商品名を上へ移動した後の情報欄は価格から開始 */
#assertive_item_list-2 .item-info-wrap,
#assertive_item_list-6 .item-info-wrap {
    min-height: 0 !important;
}

#assertive_item_list-2 .item-info-wrap .itemprice,
#assertive_item_list-6 .item-info-wrap .itemprice {
    margin-top: 0 !important;
}

@media (max-width: 600px) {
    #assertive_item_list-2 .item-slide-block > article > a > .je-item-title,
    #assertive_item_list-6 .item-slide-block > article > a > .je-item-title {
        height: 5.8em !important;
        min-height: 5.8em !important;
        max-height: 5.8em !important;
        padding: 8px 8px 7px !important;
        -webkit-line-clamp: 4 !important;
        line-clamp: 4 !important;
        font-size: 0.86rem !important;
        line-height: 1.45 !important;
    }
}


/* =========================================================
 * v1.2.9 人気商品・ニュース・見出し最終調整
 * ========================================================= */

/* トップページの各ウィジェット領域を必ず縦積みにする。 */
#home-first-widget-area,
#home-second-widget-area {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
}

/* 1段目はニュース → 商品カテゴリーの順。 */
#home-first-widget-area > #usces-recent-posts-2 {
    order: 1 !important;
}
#home-first-widget-area > #nav_menu-2 {
    order: 2 !important;
}

/* 明るい背景の見出しは黒系。 */
#assertive_item_list-2 .widget_title,
#assertive_item_list-6 .widget_title,
#welcart_bestseller-2 .widget_title,
#usces-recent-posts-2 .widget_title {
    color: #222 !important;
    text-shadow: none !important;
}

#assertive_item_list-2 .widget_title::after,
#assertive_item_list-6 .widget_title::after,
#welcart_bestseller-2 .widget_title::after,
#usces-recent-posts-2 .widget_title::after {
    background: #222 !important;
}

/* 暗い背景の見出しは白を維持。 */
#nav_menu-2 .widget_title,
#page_appeal_widget-2 .widget_title {
    color: #fff !important;
}

/* ニュース・人気商品・商品カテゴリーの横幅を揃える。 */
#usces-recent-posts-2,
#welcart_bestseller-2,
#nav_menu-2 {
    box-sizing: border-box !important;
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

#usces-recent-posts-2,
#welcart_bestseller-2 {
    margin-bottom: 34px !important;
}

/* 人気商品一覧：テーマ既定の装飾を使わず、専用カードに限定する。 */
#welcart_bestseller-2 ul.ucart_widget_body {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: none !important;
}

#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    grid-template-areas:
        "rank title"
        "rank image"
        "rank price" !important;
    grid-template-rows: auto auto auto !important;
    align-items: start !important;
    width: auto !important;
    min-width: 0 !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
    position: relative !important;
    float: none !important;
    overflow: hidden !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.05) !important;
}

/* テーマ既定の王冠・順位疑似要素を完全に無効化。 */
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card::before,
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card::after,
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card *::before,
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card *::after {
    background-image: none !important;
}

/* 当プラグインの王冠だけは表示する。 */
#welcart_bestseller-2 .je-bestseller-rank {
    grid-area: rank !important;
    align-self: start !important;
    justify-self: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 46px !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    position: static !important;
    color: #b87333 !important;
    text-align: center !important;
}

#welcart_bestseller-2 .je-bestseller-crown {
    display: block !important;
    width: 27px !important;
    height: 22px !important;
    margin: 0 auto 4px !important;
    overflow: visible !important;
    color: inherit !important;
}

#welcart_bestseller-2 .je-bestseller-rank-text {
    display: block !important;
    color: #333 !important;
    font-size: .92rem !important;
    font-weight: 700 !important;
    font-style: normal !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

#welcart_bestseller-2 li.je-bestseller-card:nth-child(1) .je-bestseller-rank { color: #d4af37 !important; }
#welcart_bestseller-2 li.je-bestseller-card:nth-child(2) .je-bestseller-rank { color: #a7a9ac !important; }
#welcart_bestseller-2 li.je-bestseller-card:nth-child(n+3) .je-bestseller-rank { color: #b87333 !important; }

/* 商品名 → 写真 → 価格。タイトル領域を固定して写真位置を揃える。 */
#welcart_bestseller-2 .je-bestseller-title {
    grid-area: title !important;
    box-sizing: border-box !important;
    display: -webkit-box !important;
    width: 100% !important;
    height: 4.5em !important;
    min-height: 4.5em !important;
    max-height: 4.5em !important;
    margin: 0 !important;
    padding: 10px 10px 8px 2px !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    color: inherit !important;
    font-size: .96rem !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    text-align: left !important;
    writing-mode: horizontal-tb !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

#welcart_bestseller-2 .je-bestseller-title a {
    display: block !important;
    color: inherit !important;
    text-decoration: none !important;
}

#welcart_bestseller-2 .je-bestseller-image {
    grid-area: image !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 6px 10px 6px 2px !important;
    position: relative !important;
    float: none !important;
    overflow: hidden !important;
    background: #fff !important;
}

#welcart_bestseller-2 .je-bestseller-image a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}

#welcart_bestseller-2 .je-bestseller-image img {
    display: block !important;
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
}

#welcart_bestseller-2 .je-bestseller-price {
    grid-area: price !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 8px 10px 0 2px !important;
    position: static !important;
    float: none !important;
    color: inherit !important;
    font-size: .98rem !important;
    line-height: 1.4 !important;
    text-align: left !important;
    writing-mode: horizontal-tb !important;
    white-space: normal !important;
}

/* PCは最大8位。HTMLに存在する分だけ表示される。 */
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card:nth-child(n+9) {
    display: none !important;
}

@media (max-width: 900px) {
    #welcart_bestseller-2 ul.ucart_widget_body {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
}

@media (max-width: 600px) {
    #usces-recent-posts-2,
    #welcart_bestseller-2,
    #nav_menu-2 {
        width: calc(100% - 20px) !important;
    }

    #welcart_bestseller-2 ul.ucart_widget_body {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    #welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card {
        grid-template-columns: 38px minmax(0, 1fr) !important;
    }

    #welcart_bestseller-2 .je-bestseller-rank {
        width: 38px !important;
        margin-top: 8px !important;
    }

    #welcart_bestseller-2 .je-bestseller-crown {
        width: 23px !important;
        height: 19px !important;
        margin-bottom: 3px !important;
    }

    #welcart_bestseller-2 .je-bestseller-rank-text {
        font-size: .84rem !important;
    }

    #welcart_bestseller-2 .je-bestseller-title {
        height: 5.8em !important;
        min-height: 5.8em !important;
        max-height: 5.8em !important;
        padding: 8px 8px 7px 1px !important;
        -webkit-line-clamp: 4 !important;
        line-clamp: 4 !important;
        font-size: .86rem !important;
        line-height: 1.45 !important;
    }

    #welcart_bestseller-2 .je-bestseller-image {
        padding: 5px 8px 5px 1px !important;
    }

    #welcart_bestseller-2 .je-bestseller-price {
        padding: 7px 8px 0 1px !important;
        font-size: .9rem !important;
    }

    /* スマホは最大6位。 */
    #welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card:nth-child(n+7) {
        display: none !important;
    }
}


/* =========================================================
 * v1.3.0 人気商品画像の中央・拡大 + 読みやすい筆文字
 * ========================================================= */

/*
 * 人気商品：順位は上段左、商品名は上段右。
 * 画像と価格はカード全幅を使い、順位列のせいで右寄り・縮小しないようにする。
 */
#welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    grid-template-areas:
        "rank title"
        "image image"
        "price price" !important;
    grid-template-rows: auto auto auto !important;
}

#welcart_bestseller-2 .je-bestseller-image {
    grid-area: image !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 10px 12px 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #fff !important;
}

#welcart_bestseller-2 .je-bestseller-image a {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#welcart_bestseller-2 .je-bestseller-image img {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
}

#welcart_bestseller-2 .je-bestseller-price {
    grid-area: price !important;
    padding: 8px 12px 0 !important;
}

/*
 * 筆系フォントは可読性を優先して、見出し・カテゴリ入口・主要ナビだけに限定。
 * 商品名、価格、本文、FAQ本文など購入判断に必要な情報は通常フォントを維持する。
 */
#home-first-widget-area .widget_title,
#home-second-widget-area .widget_title,
#nav_menu-2 .je-top-category-grid > li > a,
.header-nav-container > li > a,
nav.see-more > a,
nav.see_more > a {
    font-family: "Yuji Syuku", "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif !important;
    font-weight: 400 !important;
}

#home-first-widget-area .widget_title,
#home-second-widget-area .widget_title {
    letter-spacing: .12em !important;
}

#nav_menu-2 .je-top-category-grid > li > a {
    letter-spacing: .06em !important;
    font-size: 1.06rem !important;
}

@media (max-width: 600px) {
    #welcart_bestseller-2 ul.ucart_widget_body > li.je-bestseller-card {
        grid-template-columns: 38px minmax(0, 1fr) !important;
        grid-template-areas:
            "rank title"
            "image image"
            "price price" !important;
    }

    #welcart_bestseller-2 .je-bestseller-image {
        padding: 8px 9px 6px !important;
    }

    #welcart_bestseller-2 .je-bestseller-price {
        padding: 7px 9px 0 !important;
    }

    #nav_menu-2 .je-top-category-grid > li > a {
        font-size: .98rem !important;
    }
}


/* =========================================================
 * v1.3.2 - 発送日カレンダーだけをトップ下部に残す
 * ログイン / 旧ベストセラー / キーワード検索は JS で識別して非表示。
 * 営業日カレンダーは発送業務日の案内として残し、見出しを黒にする。
 * ========================================================= */
body.home .insider.welcart-menu {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.home .insider.welcart-menu .je-home-lower-hidden {
    display: none !important;
}

body.home .insider.welcart-menu .je-shipping-calendar {
    box-sizing: border-box !important;
    display: block !important;
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin: 36px auto 48px !important;
    float: none !important;
    clear: both !important;
}

body.home .insider.welcart-menu .je-shipping-calendar-title,
body.home .insider.welcart-menu .je-shipping-calendar h1,
body.home .insider.welcart-menu .je-shipping-calendar h2,
body.home .insider.welcart-menu .je-shipping-calendar h3,
body.home .insider.welcart-menu .je-shipping-calendar h4,
body.home .insider.welcart-menu .je-shipping-calendar .widget_title {
    color: #222 !important;
    text-shadow: none !important;
}

@media (max-width: 600px) {
    body.home .insider.welcart-menu .je-shipping-calendar {
        width: calc(100% - 20px) !important;
        margin-top: 28px !important;
        margin-bottom: 36px !important;
    }
}


/* =========================================================
 * v1.3.3 - トップ下部Welcartウィジェットを実DOM IDで確実に整理
 * 実サイト確認済み:
 *   #welcart_login-999
 *   #welcart_bestseller-999
 *   #welcart_search-999
 *   #welcart_calendar-999
 * ========================================================= */
body.home #welcart_login-999,
body.home #welcart_bestseller-999,
body.home #welcart_search-999 {
    display: none !important;
}

/* 3項目を消した後、営業日カレンダーだけを1カラムで中央表示 */
body.home #footer-widget-area > .inner {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.home #welcart_calendar-999 {
    box-sizing: border-box !important;
    display: block !important;
    float: none !important;
    clear: both !important;
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin: 36px auto 48px !important;
}

/* 営業日カレンダーの見出しは白背景でも読める黒系へ */
body.home #welcart_calendar-999 .widget_title,
body.home #welcart_calendar-999 .widget_title span,
body.home #welcart_calendar-999 .widget_title a {
    color: #222 !important;
    text-shadow: none !important;
}

/* 見出し内のカレンダーアイコンはそのまま残す */
body.home #welcart_calendar-999 .widget_title img {
    opacity: 1 !important;
}

@media (max-width: 600px) {
    body.home #welcart_calendar-999 {
        width: calc(100% - 20px) !important;
        margin-top: 28px !important;
        margin-bottom: 36px !important;
    }
}

/* =========================================================
 * v1.3.5 - 特定商取引法ページのスマホ表を安全にレスポンシブ化
 * v1.3.4 の「1行ずつカード化」は撤回。
 * スマホでも2列の表を維持し、本文だけ自然に折り返す。
 * ========================================================= */
@media (max-width: 600px) {
    body.je-regulations-page table {
        display: table !important;
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
        overflow: visible !important;
    }

    body.je-regulations-page table thead {
        display: table-header-group !important;
    }

    body.je-regulations-page table tbody {
        display: table-row-group !important;
        width: auto !important;
    }

    body.je-regulations-page table tr {
        display: table-row !important;
        width: auto !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        overflow: visible !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.je-regulations-page table th,
    body.je-regulations-page table td {
        box-sizing: border-box !important;
        display: table-cell !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        padding: 10px 8px !important;
        vertical-align: top !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        line-height: 1.6 !important;
        font-size: 14px !important;
        overflow: visible !important;
    }

    body.je-regulations-page table tr > :first-child {
        width: 36% !important;
        background: rgba(255,255,255,.82) !important;
        color: #222 !important;
        font-weight: 700 !important;
    }

    body.je-regulations-page table tr > :nth-child(2) {
        width: 64% !important;
        background: rgba(255,255,255,.96) !important;
        color: #222 !important;
        font-weight: 400 !important;
    }

    body.je-regulations-page table a {
        word-break: break-all !important;
        overflow-wrap: anywhere !important;
    }

    body.je-regulations-page table p,
    body.je-regulations-page table ul,
    body.je-regulations-page table ol {
        max-width: 100% !important;
        margin-top: .25em !important;
        margin-bottom: .25em !important;
    }
}

