/* ==========================================================================
   Deff Direct Store オリジナルCSS — 統合版
   (既存 original.css + deff_optimized.css を集約・重複排除)
   ========================================================================== */


/* ==========================================================================
   1. 基本設定・テーマ標準スタイル (Base Theme)
   ========================================================================== */
body {
    color: #666666;
    font-size: 1.3rem;
    overflow-x: hidden;
    text-rendering: optimizeSpeed;
}
a { color: inherit; }
a:hover { color: #000000; text-decoration: none; }
.fs-c-button--plain { color: inherit; }

/* Layout: Main & Side */
@media screen and (min-width: 1200px) {
    .fs-l-main { padding-right: 75px; max-width: initial; }
    .fs-l-sideArea { max-width: 280px; }
    .fs-l-sideArea + .fs-l-pageMain,
    .fs-l-pageMain + .fs-l-sideArea { max-width: initial; width: calc(100% - 280px); }
}
@media screen and (max-width: 768px) {
    .fs-l-main { margin-top: 0; padding-top: 60px; }
}


/* ==========================================================================
   2. ヘッダー (Header)
   ========================================================================== */

/* FS システムクラス上書き */
.fs-l-header { padding-top: 26px; }
@media screen and (max-width: 768px) {
    .fs-l-header {
        background-color: #ffffff;
        padding-top: inherit;
        position: fixed;
        top: 0; left: 0;
        width: 100%;
        z-index: 2;
    }
}
.fs-l-header__leftContainer { display: flex; }
.fs-l-header__contents { -ms-grid-columns: auto 35%; grid-template-columns: auto 35%; }
@media screen and (min-width: 769px) and (max-width: 1199px) {
    .fs-l-header__contents { -ms-grid-columns: auto 45%; grid-template-columns: auto 45%; }
}

/* ドロワーボタン・ロゴ */
.fs-p-drawerButton { padding: 14px; }
.fs-p-drawerButton__label { display: none; }
.fs-l-header__logo { max-width: 330px; }
@media screen and (max-width: 768px) {
    .fs-l-header__logo { padding-top: 10px; width: 80%; }
}

/* ヘッダーナビゲーション */
.fs-p-headerNavBar {
    align-items: center; background: none; border-bottom: none;
    color: inherit; display: flex; justify-content: space-between;
}
.fs-p-headerNavigation__search { flex-grow: 1; }
@media screen and (max-width: 768px) {
    .fs-p-headerNavigation__search {
        display: none; position: absolute; bottom: -100%; left: 0;
        width: 100%; background: #ffffff; padding: 14px 14px 20px; z-index: 5;
    }
}
.fs-p-inputGroup { background: none; border-color: #cccccc; height: 40px; }
.fs-p-searchForm__button { background: none; height: 40px; width: 40px; }
.fs-p-searchForm__input { width: calc(100% - 40px); }
.fs-p-headerNavigation { margin: 0; }
.fs-p-headerNavigation .headerNavigation { display: flex; list-style: none; margin: 0; padding-left: 20px; }
@media screen and (max-width: 768px) {
    .fs-p-headerNavBar .headerNavigation { padding-left: 0; }
    .fs-p-headerNavBar .headerNavigation li:first-child { display: block; }
}
.fs-p-headerNavBar .headerNavigation li:first-child { display: none; }
@media screen and (min-width: 769px) {
    .fs-p-headerNavigation #spSearch { display: none; }
    .fs-p-headerNavigation__viewCartButton { padding-left: 8px; padding-right: 8px; }
}
.fs-p-headerNavBar .headerNavigation a { color: inherit; }

/* CLS対策：ヘッダー固定サイズ */
.fs-l-header, .fs-l-header__contents { box-sizing: border-box !important; }
@media screen and (min-width: 961px) {
    .fs-l-header {
        height: 80px !important;
        overflow: visible !important; /* メガメニュー表示のため */
        padding: 0 !important;
        margin: 0 !important;
        position: relative !important;
        z-index: 9999 !important;
    }
    .fs-l-header__contents {
        height: 80px !important;
        padding: 0 20px !important;
        display: flex !important;
        align-items: center !important;
        overflow: visible !important;
    }
    .fs-l-header__logo, .fs-l-header__logo a { display: block !important; width: 200px !important; height: 40px !important; overflow: hidden !important; }
    .fs-l-header__logo img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
}
@media screen and (max-width: 960px) {
    .fs-l-header, .fs-l-header__contents { height: 60px !important; overflow: visible !important; padding: 0 !important; }
    .fs-l-header__logo img { max-height: 30px !important; width: auto !important; }
}

/* FontAwesome アイコン強制復活 */
.fs-p-headerNavigation__link {
    position: relative;
    display: block;
    width: 44px;
    height: 44px;
    text-decoration: none;
}
.fs-icon--search:before,
.fs-p-searchForm__button::before {
    content: "\f002" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    background: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
    font-size: 20px;
    color: #333;
    position: absolute;
    top: 0; left: 0;
}
.fs-icon--mypage:before {
    content: "\f007" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    background: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
    font-size: 24px;
    color: #333;
    position: absolute;
    top: 0; left: 0;
}
.fs-icon--cart:before {
    content: "\f07a" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    background: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
    font-size: 22px;
    color: #333;
    position: absolute;
    top: 0; left: 0;
}
.fs-icon--navCtrl:before {
    content: "\f0c9" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    font-size: 24px;
    color: #333;
    background: none !important;
}
.fs-icon--close:before {
    content: "\f00d" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    font-size: 24px;
    color: #333;
    background: none !important;
}


/* ==========================================================================
   3. グローバルナビゲーション (Mega Menu)
   ========================================================================== */
.deff-header-nav { display: none; }

@media screen and (min-width: 960px) {
    .deff-header-nav {
        display: block;
        flex-grow: 1;
        margin: 0 40px;
    }
    .fs-p-headerNavigation__search { display: none !important; }

    .deff-gnav-list {
        display: flex;
        justify-content: flex-start;
        list-style: none;
        padding: 0;
        margin: 0;
        gap: 50px;
    }
    .deff-gnav-item {
        position: relative;
        padding: 15px 0;
    }
    .deff-gnav-link {
        color: #333;
        font-size: 13px;
        font-weight: bold;
        text-decoration: none;
        letter-spacing: 0.1em;
        font-family: "Helvetica Neue", Arial, sans-serif;
        position: relative;
        transition: color 0.3s;
        text-transform: uppercase;
    }
    .deff-gnav-link:hover { color: #E60012; }

    .deff-gnav-dropdown {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%) translateY(10px);
        background: #fff;
        min-width: 240px;
        padding: 25px;
        box-shadow: 0 10px 25px rgba(0,0,0,0.08);
        border: 1px solid #f0f0f0;
        border-top: 2px solid #E60012;
        opacity: 0;
        visibility: hidden;
        transition: all 0.2s ease;
        z-index: 1000;
        border-radius: 0 0 4px 4px;
        text-align: left;
    }
    .deff-gnav-item:hover .deff-gnav-dropdown {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
    }
    .deff-gnav-col { display: flex; flex-direction: column; }
    .deff-gnav-cat {
        font-size: 11px;
        color: #aaa;
        font-weight: bold;
        margin-bottom: 12px;
        display: block;
        letter-spacing: 0.05em;
        border-bottom: 1px solid #eee;
        padding-bottom: 5px;
    }
    .deff-gnav-col a {
        font-size: 13px;
        color: #555;
        text-decoration: none;
        margin-bottom: 10px;
        display: block;
        transition: all 0.2s;
        white-space: nowrap;
    }
    .deff-gnav-col a:hover { color: #E60012; padding-left: 3px; }
}


/* ==========================================================================
   4. サイドメニュー・ドロワー (Side Menu / Drawer)
   ========================================================================== */
.fs-p-drawer { overflow: inherit; }
@media screen and (max-width: 1199px) { .fs-p-drawer { overflow: auto; } }
.fs-p-drawer .fs-clientInfo.is-ready { display: none; }

.fs-p-sideMenu { position: relative; width: 16.9em; }
.fs-p-sideMenu li { background: #ffffff; width: 16.9em; }
@media screen and (max-width: 1199px) { .fs-p-sideMenu li { width: 100%; } }
.fs-p-sideMenu a:hover { background: none; color: #000000; }
.fs-p-sideMenu .fs-pt-menu__submenu { height: 0; overflow: hidden; position: absolute; top: 0; left: 100%; }
@media screen and (max-width: 1199px) { .fs-p-sideMenu .fs-pt-menu__submenu { display: none; } }
.fs-p-sideMenu li:hover > .fs-pt-menu__submenu { height: auto; overflow: visible; }
.fs-p-sideMenu .fs-pt-menu__submenu li { background: #fafafa; }
.fs-p-sideMenu .fs-pt-menu__heading--lv1 { border: none; }
.fs-p-sideMenu .fs-pt-menu__heading--lv2 { border-bottom: none; }
.fs-p-sideMenu .fs-pt-menu__link--lv2 { padding-left: inherit; }
.fs-p-sideMenu .fs-pt-menu__item + .fs-pt-menu__item { margin-top: 0; }
.fs-p-sideMenu .fs-pt-menu__link::before,
.fs-p-sideMenu .fs-pt-menu__link::after { content: none; }
@media screen and (max-width: 768px) {
    .fs-p-sideMenu .fs-pt-menu__item { border-bottom: 1px solid #EFEFEF; }
}

/* スマホ ドロワー位置 */
@media screen and (max-width: 768px) {
    .fs-p-drawer,
    .fs-l-sideArea {
        z-index: 2147483647 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        height: 100vh !important;
    }
}

/* カスタム サイドナビ */
.deff-side-nav-wrapper {
    width: 100%;
    box-sizing: border-box;
    margin-top: 10px;
    padding: 0 10px;
}
.deff-side-section {
    margin-bottom: 20px;
    border-bottom: 1px dotted #ccc;
    padding-bottom: 10px;
}
.deff-side-heading {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    margin: 0 0 10px 0;
    padding: 10px 40px 10px 10px;
    border-left: 5px solid #E60012;
    line-height: 1.2;
    letter-spacing: 0.05em;
    cursor: pointer;
    list-style: none;
    position: relative;
    outline: none;
}
.deff-side-heading::-webkit-details-marker { display: none; }
.deff-side-heading::after {
    content: "+";
    font-size: 20px;
    font-weight: normal;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
}
.deff-side-section[open] .deff-side-heading::after { content: "-"; color: #E60012; }
.deff-side-list {
    list-style: none;
    padding: 0;
    margin: 0;
    animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to   { opacity: 1; transform: translateY(0); }
}
.deff-side-list li { margin-bottom: 0; }
.deff-side-list a {
    display: block;
    color: #555;
    text-decoration: none;
    font-size: 14px;
    padding: 10px 0 10px 15px;
    border-bottom: 1px solid #f0f0f0;
    transition: color 0.2s, background 0.2s;
}
.deff-side-list a:hover { color: #E60012; background-color: #fafafa; padding-left: 18px; }
.deff-side-subtext { font-size: 11px; color: #999; display: block; margin-top: 2px; font-weight: normal; }
.deff-side-list a.highlight { font-weight: bold; color: #333; }
.deff-side-sns {
    margin-top: 20px;
    text-align: center;
    padding: 30px 0 20px;
    border-top: 1px dotted #ccc;
}
.deff-side-sns a {
    display: inline-block;
    margin: 0 15px;
    transition: opacity 0.3s, transform 0.2s;
    vertical-align: middle;
}
.deff-side-sns a:hover { opacity: 0.8; transform: translateY(-2px); }
.deff-side-sns img { width: 50px; height: auto; filter: drop-shadow(0 2px 3px rgba(0,0,0,0.1)); }


/* ==========================================================================
   5. フッター (Footer)
   ========================================================================== */
.fs-l-footer { border-top: none; }
.fs-p-footerUtilityMenu { background-color: #ffffff; }
.fs-p-footerUtilityMenu__list { justify-content: center; }
.fs-p-footerUtilityMenu__list a::before { border: none; }
@media screen and (max-width: 960px) {
    .fs-pt-menu__item { text-align: center; }
    .fs-p-footerUtilityMenu__list > li:not(:first-child) a,
    .fs-p-footerUtilityMenu__list > li:first-child a { border-top: 2px solid #EFEFEF; }
    .fs-p-footerUtilityMenu__list > li:last-child a { border-bottom: 2px solid #EFEFEF; }
    .fs-p-footerUtilityMenu__list a::after { color: #EFEFEF; }
}
.fs-p-footerCopyright { background-color: #ffffff; color: inherit; padding: 40px 0 50px; }

/* SNS リンク */
.sideLinksSp { display: none !important; }
.sideLinksPc { margin-top: 70px; }
@media screen and (max-width: 768px) {
    .sideLinksPc { display: none !important; }
    .sideLinksSp { display: flex !important; }
}
.sideLinks { display: flex; flex-wrap: wrap; justify-content: space-between; width: 202px; }
.sideLinks a { display: block; line-height: 1; margin: 20px 0 0 0; }
@media screen and (max-width: 768px) {
    .sideLinks { width: 16.9em; }
    .sideLinks a { margin-top: 10px; width: 47%; }
}
.sideLinks .facebook { width: 200px; }
@media screen and (max-width: 768px) { .sideLinks .facebook { width: 100%; } }

/* フッターカテゴリマップ */
#footer-category-title {
    width: 100%; max-width: 1200px; margin: 60px auto 20px; text-align: center; font-size: 24px; font-weight: bold;
    letter-spacing: 0.1em; font-family: "Helvetica Neue", Arial, sans-serif; color: #333;
}
#footer-category-title::before, #footer-category-title::after {
    content: ""; display: inline-block; width: 40px; height: 2px; background-color: #ba0000; vertical-align: middle; margin: 0 15px;
}
ul#footer-category-map {
    display: flex !important; flex-wrap: wrap !important; width: 100% !important; max-width: 1200px !important;
    margin: 0 auto 50px !important; padding: 0 !important; list-style: none !important;
    border-top: 1px solid #ddd; border-left: 1px solid #ddd; box-sizing: border-box; background: #fff;
}
#footer-category-map > li {
    width: 20% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box; list-style: none !important;
    position: relative; background: none !important; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd;
}
#footer-category-map > li > span > a {
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 50px;
    padding: 10px; box-sizing: border-box; font-size: 14px; font-weight: bold; color: #333; text-decoration: none;
    text-align: center; background-color: #fcfcfc; transition: all 0.3s;
}
#footer-category-map > li:hover > span > a { background-color: #333; color: #fff; }
#footer-category-map ul {
    display: none; position: absolute; top: 100%; left: -1px; z-index: 100; background: #fff;
    border: 1px solid #333; padding: 10px; min-width: 200px; width: 150%; box-shadow: 0 5px 15px rgba(0,0,0,0.2); text-align: left;
}
#footer-category-map > li:nth-child(5n) ul { left: auto; right: -1px; }
#footer-category-map > li:hover ul { display: block; }
#footer-category-map ul li { width: 100% !important; border-bottom: 1px dotted #eee; display: block !important; border-right: none !important; }
#footer-category-map ul li:last-child { border-bottom: none; }
#footer-category-map ul li a { display: block; padding: 8px 5px; font-size: 13px; color: #666; text-decoration: none; }
#footer-category-map ul li a:hover { color: #ba0000; background-color: #fff4f4; }
#footer-category-map ul ul, #footer-category-map .fs-icon--plus, #footer-category-map .fs-icon--minus { display: none !important; }

/* カスタム フッター */
.deff-footer-wrapper {
    width: 100%;
    font-family: "Helvetica Neue", Arial, sans-serif;
    background-color: #fcfcfc;
    border-top: 1px solid #eaeaea;
    box-sizing: border-box;
}
.deff-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 50px 20px;
    box-sizing: border-box;
}
.deff-footer-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 60px;
    align-items: flex-start;
}
.deff-footer-col { flex: 1; min-width: 200px; }
.deff-footer-col-calendar { flex: 1; min-width: 280px; max-width: 320px; }
.deff-footer-heading {
    font-size: 14px;
    font-weight: bold;
    color: #333;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #E60012;
    display: inline-block;
    padding-bottom: 5px;
}
.deff-footer-list { list-style: none; padding: 0; margin: 0; }
.deff-footer-list li { margin-bottom: 12px; }
.deff-footer-list a {
    text-decoration: none;
    color: #555;
    font-size: 13px;
    transition: color 0.3s;
    display: inline-block;
    line-height: 1.4;
}
.deff-footer-list a:hover { color: #E60012; text-decoration: underline; }

/* カレンダー */
.deff-calendar-wrapper { width: 100%; }
#cal0, .cal_wrapper {
    width: 100% !important;
    background: #fff;
    padding: 5px !important;
    border: 1px solid #eee;
    border-radius: 4px;
    box-sizing: border-box;
    text-align: center;
}
#cal0 table { width: 100% !important; margin: 0 auto !important; }
.cal_legend { margin-top: 5px; font-size: 10px; color: #666; }

/* カテゴリ一覧 */
.deff-category-section { border-top: 1px dashed #ddd; padding-top: 40px; }
.deff-category-title {
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    color: #333;
    margin-bottom: 30px;
    letter-spacing: 0.1em;
    display: flex;
    align-items: center;
    justify-content: center;
}
.deff-category-title::before, .deff-category-title::after {
    content: "";
    display: block;
    width: 30px;
    height: 2px;
    background: #E60012;
    margin: 0 15px;
}
.deff-cat-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; }
.deff-cat-col { flex: 1; min-width: 160px; text-align: center; }
.deff-cat-link { display: block; margin-bottom: 12px; font-size: 13px; color: #333; text-decoration: none; transition: opacity 0.3s; }
.deff-cat-link.head { font-weight: bold; font-size: 14px; margin-bottom: 15px; }
.deff-cat-link:hover { color: #E60012; text-decoration: underline; }

/* その他フッター要素 */
.bottomInfo { width: 100%; }
@media screen and (min-width: 1200px) { .bottomInfo { margin: 0 -59px 0 8px; } }
.bottomInfo ul { display: flex; justify-content: center; list-style: none; margin: 0; padding: 0; }
.bottomInfo ul li { margin: 0 35px; }
.bottomInfo ul li img { max-height: 68px; width: auto; }
@media screen and (max-width: 768px) {
    .bottomInfo ul { flex-wrap: wrap; }
    .bottomInfo ul li { margin: 10px 15px; }
    .bottomInfo ul li img { max-height: 34px; }
    .deff-footer-grid { flex-direction: column; gap: 40px; }
    .deff-footer-col, .deff-footer-col-calendar {
        border-bottom: 1px dashed #ddd;
        padding-bottom: 20px;
        width: 100%;
        max-width: 100%;
    }
    .deff-footer-col:last-child { border-bottom: none; }
    .deff-cat-grid { justify-content: center; }
    .deff-cat-col { min-width: 45%; margin-bottom: 20px; }
}

/* ページトップ・スクロールカートボタン */
.fs-p-scrollingCartButton__label { color: #000; }
.fs-p-scrollingCartButton__button { background: #bfbfbf; }
.fs-p-footerPageTop__link { background: #444444; width: 65px; height: 70px; }
@media screen and (max-width: 768px) { .fs-p-footerPageTop__link { background: #444444; width: 50px; height: 50px; } }


/* ==========================================================================
   6. 見出し・パンくず・共通タイトル (Headings)
   ========================================================================== */
.fs-p-heading--lv2 { border: none; color: #333333; text-align: center; }
.fs-c-heading--page {
    border: none !important;
    color: #333 !important;
    font-family: "Helvetica Neue", Arial, sans-serif !important;
    font-size: 28px !important;
    font-weight: bold !important;
    letter-spacing: 0.1em !important;
    margin: 40px auto 30px !important;
    padding-bottom: 15px !important;
    text-align: center !important;
    position: relative !important;
}
.fs-c-heading--page::after {
    content: "" !important;
    display: block !important;
    width: 60px !important;
    height: 3px !important;
    background-color: #E60012 !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
}
@media screen and (max-width: 768px) {
    .fs-c-heading--page { font-size: 22px !important; margin-top: 30px !important; }
}
.fs-c-breadcrumb__list { padding-left: 0; padding-right: 0; }

/* 汎用ページタイトル */
.deff-page-title {
    font-size: 28px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 10px auto 30px !important;
    padding-bottom: 20px !important;
    text-align: center !important;
    position: relative !important;
    display: block !important;
    border: none !important;
    background: none !important;
}
.deff-page-title::before { display: none !important; content: none !important; border: none !important; }
.deff-page-title::after {
    content: "";
    display: block;
    width: 60px;
    height: 3px;
    background-color: #E60012;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
@media screen and (max-width: 768px) {
    .deff-page-title { font-size: 22px !important; margin-top: 30px !important; }
}
/* フリーページのみ：タイトル上部の余白を詰める */
body.fs-body-custom .fs-c-heading--page {
    padding-top: 0 !important;
    margin-top: 10px !important;
}

/* ==========================================================================
   7. トップページ レイアウト・カルーセル (Top Page)
   ========================================================================== */

/* 1カラム化 */
@media screen and (min-width: 769px) {
    body#fs_Top .fs-l-sideArea { display: none !important; }
    body#fs_Top .fs-l-pageMain { width: 100% !important; max-width: 1200px !important; margin: 0 auto !important; float: none !important; }
    body#fs_Top .fs-l-main {
        display: flex !important;
        justify-content: center !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    body#fs_Top .fs-l-pageMain > * { max-width: 100% !important; }
}

/* Main コンテナ（サイドバーあり時もFlexboxで横並び） */
.fs-l-main {
    display: flex !important;
    justify-content: space-between !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 1px !important;
}
@media screen and (max-width: 768px) {
    body#fs_Top .fs-l-main,
    .fs-l-main {
        padding-top: 60px !important; /* スマホ固定ヘッダー分 */
    }
}

/* カルーセル非表示（トップ以外） */
body:not(#fs_Top) .fs-pt-carousel:not(.pickupContents) {
    display: none !important; height: 0 !important; width: 0 !important; margin: 0 !important; padding: 0 !important;
    border: none !important; overflow: hidden !important; visibility: hidden !important; opacity: 0 !important;
    position: absolute !important; z-index: -9999 !important;
}
.fs-l-main .fs-pt-carousel:not(.pickupContents) { display: none !important; }

/* カルーセル表示（トップPC） */
@media screen and (min-width: 769px) {
    body#fs_Top .fs-pt-carousel:not(.pickupContents) {
        display: block !important; visibility: visible !important; overflow: visible !important; height: auto !important;
        position: static !important; opacity: 1 !important; z-index: auto !important; max-width: 100% !important; width: 100% !important; margin: 0 auto !important;
    }
    body#fs_Top .fs-pt-carousel:not(.pickupContents) .slick-slide img {
        max-height: 600px !important; height: auto !important; width: auto !important; margin: 0 auto !important;
    }
}

/* カルーセル表示（トップスマホ） */
@media screen and (max-width: 768px) {
    body#fs_Top .fs-pt-carousel:not(.pickupContents) {
        display: block !important; visibility: visible !important; height: auto !important; position: static !important;
        opacity: 1 !important; z-index: auto !important; padding-top: 80px !important; margin-top: 0 !important; width: 100% !important; overflow: hidden !important;
    }
    body#fs_Top .fs-pt-carousel:not(.pickupContents) .slick-list { padding: 0 !important; margin: 0 !important; width: 100% !important; }
    body#fs_Top .fs-pt-carousel:not(.pickupContents) .slick-slide { width: 100vw !important; margin: 0 !important; opacity: 1 !important; transform: none !important; }
    body#fs_Top .fs-pt-carousel:not(.pickupContents) .slick-slide img { width: 100% !important; height: auto !important; margin: 0 auto !important; display: block !important; }
}

/* カルーセル CLS対策（初期化前に空間を確保） */
.fs-pt-carousel:not(.slick-initialized) {
    display: grid !important;
    width: 100% !important;
    aspect-ratio: 1350 / 430 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 auto !important;
    height: auto !important;
    background-color: #ffffff !important;
}
.fs-pt-carousel:not(.slick-initialized) > * {
    grid-area: 1 / 1 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    z-index: 0;
    border: none !important;
    margin: 0 !important;
}
.fs-pt-carousel:not(.slick-initialized) > *:first-child { opacity: 1 !important; z-index: 10; }
.fs-pt-carousel:not(.slick-initialized) img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: none !important;
    transform: none !important;
    min-width: 100% !important;
    min-height: 100% !important;
}
.fs-pt-carousel.slick-initialized {
    display: block !important;
    aspect-ratio: 1350 / 430;
    height: auto !important;
    overflow: visible !important;
    background-color: #ffffff !important;
}

/* スライダー比率固定 */
.fs-pt-carousel .fs-pt-carousel__track,
.fs-pt-carousel .slick-list {
    aspect-ratio: 27 / 10 !important;
    width: 100% !important;
    display: block !important;
    overflow: hidden !important;
}
.fs-pt-carousel__slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Slick ドット・矢印 */
#fs_Top .fs-l-pageMain .fs-c-slick .slick-dots { margin-top: -44px; margin-bottom: 56px; }
#fs_Top .fs-l-pageMain .fs-c-slick .slick-dots li { height: 12px; margin-left: 9px; margin-right: 9px; width: 12px; }
#fs_Top .fs-l-pageMain .fs-c-slick .slick-dots li button:before { color: #666666; font-size: 12px; height: 12px; line-height: 12px; width: 12px; }
#fs_Top .fs-l-pageMain .fs-c-slick .slick-dots li.slick-active button:before { color: #666666; opacity: 1; }
#fs_Top .fs-l-pageMain .fs-c-slick .slick-prev,
#fs_Top .fs-l-pageMain .fs-c-slick .slick-next { border-radius: 100%; }
@media screen and (max-width: 768px) {
    #fs_Top .fs-l-pageMain .fs-c-slick { overflow: hidden; }
    #fs_Top .fs-l-pageMain .fs-c-slick .slick-slide img { height: auto; }
    #fs_Top .fs-l-pageMain .fs-c-slick .slick-dots { margin-bottom: 5px !important; margin-top: 0 !important; padding-bottom: 0 !important; }
}

/* ピックアップ */
.pickupContents { margin: 120px 0 80px; width: 100%; }
@media screen and (min-width: 1200px) { .pickupContents { margin-right: -59px; margin-left: 8px; width: 100vw; } }
@media screen and (max-width: 768px) { .pickupContents { margin: 60px 0 40px; } }
.pickupContents .slick-slide { margin: 0 15px; }
.pickupContents .slick-slide img { max-width: 416px; width: 100%; }
.pickupContents .slick-prev, .pickupContents .slick-next { background: transparent; }
.pickupContents .slick-prev { left: -20px; }
.pickupContents .slick-next { right: -20px; }
@media screen and (max-width: 768px) { .pickupContents .slick-next { right: 0; } .pickupContents .slick-prev { left: 0; } }
.pickupContents .slick-prev:before, .pickupContents .slick-next:before { color: #333333; }

/* トップページ 見出し ＆ 共通カスタム見出し (PC・スマホ共通) */
body#fs_Top .fs-l-pageMain .fs-p-heading--lv2,
body#fs_Top .fs-l-pageMain h2,
.deff-section-title { /* ← 全ページで効かせるために制限を外しました */
    border: none !important; background: none !important; padding: 0 !important; width: 100% !important; max-width: 1200px !important;
    margin: 60px auto 30px !important; text-align: center !important; font-size: 24px !important; font-weight: bold !important;
    letter-spacing: 0.1em !important; color: #333 !important; font-family: "Helvetica Neue", Arial, sans-serif !important; display: block !important;
}

.deff-section-title { text-transform: uppercase !important; }

body#fs_Top .fs-l-pageMain .fs-p-heading--lv2::before, body#fs_Top .fs-l-pageMain .fs-p-heading--lv2::after,
body#fs_Top .fs-l-pageMain h2::before, body#fs_Top .fs-l-pageMain h2::after,
.deff-section-title::before, .deff-section-title::after {
    content: ""; display: inline-block; width: 40px !important; height: 2px !important; background-color: #ba0000 !important;
    vertical-align: middle !important; margin: 0 15px !important;
}

/* 商品名・図内の h2 はリセット (PC・スマホ共通) */
body#fs_Top .fs-l-pageMain a h2, body#fs_Top .fs-l-pageMain a .fs-p-heading--lv2,
body#fs_Top .fs-l-pageMain figure h2, body#fs_Top .fs-l-pageMain figure .fs-p-heading--lv2 {
    border: none !important; background: none !important; font-size: 14px !important; font-weight: normal !important;
    letter-spacing: normal !important; margin: 10px 0 0 !important; text-align: inherit !important; width: auto !important; max-width: none !important;
    font-family: inherit !important; color: inherit !important; display: -webkit-box !important;
}
body#fs_Top .fs-l-pageMain a h2::before, body#fs_Top .fs-l-pageMain a h2::after,
body#fs_Top .fs-l-pageMain a .fs-p-heading--lv2::before, body#fs_Top .fs-l-pageMain a .fs-p-heading--lv2::after {
    display: none !important; content: none !important;
}

/* スマホ表示の調整 */
@media screen and (max-width: 768px) {
    body#fs_Top .fs-l-pageMain .fs-p-heading--lv2,
    body#fs_Top .fs-l-pageMain h2,
    .deff-section-title {
        font-size: 18px !important;
        margin: 40px auto 20px !important;
    }
    body#fs_Top .fs-l-pageMain .fs-p-heading--lv2::before, body#fs_Top .fs-l-pageMain .fs-p-heading--lv2::after,
    body#fs_Top .fs-l-pageMain h2::before, body#fs_Top .fs-l-pageMain h2::after,
    .deff-section-title::before, .deff-section-title::after {
        width: 25px !important;
        margin: 0 10px !important;
    }
}

/* ==========================================================================
   8. デバイスカテゴリアイコングリッド (Device Icons)
   ========================================================================== */
.deff-device-section {
    display: block !important;
    width: 100% !important;
    min-height: 500px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 15px;
    font-family: "Helvetica Neue", Arial, sans-serif;
    text-align: center;
}
@media (max-width: 900px) { .deff-device-section { min-height: 800px !important; } }
@media screen and (max-width: 768px) {
    .deff-device-section { min-height: 0 !important; }
    body:not(.fs-body-top) .deff-device-section { display: none !important; }
}

.deff-device-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
    justify-content: start;
}
.deff-device-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #333;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.deff-device-item:hover { transform: translateY(-5px); opacity: 0.8; }

.deff-icon-box {
    display: block !important;
    width: 100% !important;
    position: relative !important;
    height: 0 !important;
    padding-top: 100% !important;
    background-color: #f9f9f9 !important;
    border-radius: 10px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.deff-icon-box img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 10% !important;
    box-sizing: border-box !important;
    transition: none !important;
}
.deff-device-name { font-size: 14px; font-weight: 500; color: #000; text-align: center; }
@media (max-width: 900px) { .deff-device-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 600px) {
    .deff-device-grid { grid-template-columns: repeat(3, 1fr); gap: 15px; }
    .deff-device-name { font-size: 12px; }
}


/* ==========================================================================
   9. 新商品・ランキング スライダー (New Items / Ranking)
   ========================================================================== */

/* CLS対策：初期化前の横並び確保 */
.new_item:not(.slick-initialized) .fs-c-productListCarousel__list__itemTrack {
    display: flex !important;
    overflow: hidden !important;
    flex-wrap: nowrap !important;
    gap: 20px !important;
}
.new_item:not(.slick-initialized) .fs-c-productListItem {
    flex: 0 0 calc(25% - 15px) !important;
    max-width: calc(25% - 15px) !important;
    box-sizing: border-box !important;
}
@media screen and (max-width: 1024px) {
    .new_item:not(.slick-initialized) .fs-c-productListItem {
        flex: 0 0 calc(33.333% - 13px) !important;
        max-width: calc(33.333% - 13px) !important;
    }
}
@media screen and (max-width: 768px) {
    .new_item:not(.slick-initialized) .fs-c-productListCarousel__list__itemTrack { gap: 10px !important; }
    .new_item:not(.slick-initialized) .fs-c-productListItem {
        flex: 0 0 85% !important;
        max-width: 85% !important;
    }
}
.new_item:not(.slick-initialized) .fs-c-productListCarousel__ctrl { display: none !important; }

/* 画像スペース予約（CLS防止） */
.new_item .fs-c-productListItem__imageContainer {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
}
.new_item .fs-c-productImage__image {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important;
    object-fit: contain !important;
    transition: transform 0.3s ease !important;
}
.new_item .fs-c-productListItem__image a:hover img { transform: scale(1.05) !important; }

/* 商品カードデザイン */
.new_item .fs-c-productListItem {
    text-align: center !important;
    background: #fff !important;
    padding: 10px !important;
    box-sizing: border-box !important;
}
.new_item .fs-c-productName__name {
    font-size: 13px !important;
    line-height: 1.4 !important;
    color: #333 !important;
    margin-top: 10px !important;
    margin-bottom: 5px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    height: 2.8em !important;
}
.new_item .fs-c-price { font-size: 14px !important; font-weight: bold !important; color: #333 !important; }
.new_item .fs-c-productName__copy { display: none !important; }

/* ランキングバッジ */
.new_item[data-part-name*="ランキング"] .fs-c-productListItem__imageContainer::before {
    position: absolute;
    top: 5px; left: 5px;
    width: 44px; height: 44px;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    z-index: 20;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.new_item[data-part-name*="ランキング"]:not(.slick-initialized) .fs-c-productListItem:nth-child(1) .fs-c-productListItem__imageContainer::before { content: "1"; background: #F5B700; }
.new_item[data-part-name*="ランキング"]:not(.slick-initialized) .fs-c-productListItem:nth-child(2) .fs-c-productListItem__imageContainer::before { content: "2"; background: #A9A9A9; }
.new_item[data-part-name*="ランキング"]:not(.slick-initialized) .fs-c-productListItem:nth-child(3) .fs-c-productListItem__imageContainer::before { content: "3"; background: #B58E52; }
.new_item[data-part-name*="ランキング"].slick-initialized .fs-c-productListItem[data-slick-index="0"] .fs-c-productListItem__imageContainer::before { content: "1"; background: #F5B700; }
.new_item[data-part-name*="ランキング"].slick-initialized .fs-c-productListItem[data-slick-index="1"] .fs-c-productListItem__imageContainer::before { content: "2"; background: #A9A9A9; }
.new_item[data-part-name*="ランキング"].slick-initialized .fs-c-productListItem[data-slick-index="2"] .fs-c-productListItem__imageContainer::before { content: "3"; background: #B58E52; }
.new_item[data-part-name*="ランキング"] .slick-cloned .fs-c-productListItem__imageContainer::before { display: none !important; }

/* レコメンド（閲覧履歴）非表示 */
.FS2_Recommend2_container_history,
.fs-c-history,
.fs-c-history__heading { display: none !important; }


/* ==========================================================================
   10. NEWS・お知らせリスト (News List)
   ========================================================================== */
.fs-pt-list { height: 170px; overflow-y: auto; padding: 0 20px 0 0; }
.fs-pt-list > li { border-color: #EFEFEF; padding-top: 10px; }
.fs-pt-list > li:last-child { margin-top: 10px; }
.fs-pt-list > li time:first-child { background: none; color: inherit; width: 6em; }
.fs-pt-list__link span { padding-left: 2em; }
.fs-pt-list__link { display: table; width: 100%; }
.fs-pt-list__link > * { display: table-cell; line-height: 1.4; text-align: left; vertical-align: top; }

/* トップページ NEWSリスト デザイン */
html body#fs_Top ul.fs-p-dateList {
    /* ▼ 変更: 800px から 1000px に広げて横幅をゆったりさせました */
    max-width: 1000px !important; 
    margin: 0 auto 20px !important; padding: 0 20px !important;
    background: transparent !important; list-style: none !important;
    border-top: 1px solid #e8e8e8 !important; border-bottom: none !important; border-left: none !important; border-right: none !important;
}
html body#fs_Top .fs-pt-list__item {
    padding: 15px 30px !important; margin: 0 !important; background: transparent !important;
    border-bottom: 1px solid #e8e8e8 !important; border-top: none !important; border-left: none !important; border-right: none !important;
}
html body#fs_Top .fs-pt-list__link {
    display: flex !important; align-items: flex-start !important; text-decoration: none !important; color: #333 !important;
}
html body#fs_Top .fs-pt-list__item time {
    flex: 0 0 120px !important; font-size: 13px !important; 
    /* ▼ 変更: #888 から #555 にしてGoogleの基準をクリアしつつ上品さを維持 */
    color: #555 !important; 
    display: block !important;
    background: transparent !important; padding: 0 !important; border: none !important;
    text-align: left !important; line-height: 1.6 !important; margin: 0 !important;
}
html body#fs_Top .fs-pt-list__item time + span,
html body#fs_Top .fs-pt-list__item span.deff-title-wrap {
    flex: 1 !important; display: block !important; line-height: 1.6 !important; font-size: 14px !important; word-break: break-all;
}
html body#fs_Top .deff-wp-cat {
    display: inline-block !important; color: #fff !important; font-size: 11px !important; font-weight: normal !important;
    padding: 2px 8px !important; margin-right: 10px !important; border-radius: 2px !important;
    vertical-align: middle !important; line-height: 1.2 !important; position: relative !important; top: -1px !important;
}
html body#fs_Top .deff-wp-cat--press    { background-color: #2C3E50 !important; }
html body#fs_Top .deff-wp-cat--interview { background-color: #7A5C43 !important; }
html body#fs_Top .deff-wp-cat--support  { background-color: #2E755E !important; }
html body#fs_Top .deff-wp-cat--info     { background-color: #555555 !important; }
html body#fs_Top .deff-wp-cat--default  { background-color: #666666 !important; }
#news-read-more, #wp-news-read-more {
    display: block; text-align: center; color: #333; padding: 12px; margin: 20px auto;
    border-radius: 4px; font-size: 14px; font-weight: bold; cursor: pointer;
    max-width: 300px; width: 90%; background: #fbfbfb; border: 1px solid #e8e8e8;
    transition: background 0.3s, opacity 0.3s; position: relative; z-index: 10;
}
#news-read-more:hover, #wp-news-read-more:hover { background: #eee; opacity: 0.8; }
#news-read-more::after, #wp-news-read-more::after {
    content: ""; display: inline-block; width: 6px; height: 6px;
    border-right: 2px solid #666; border-bottom: 2px solid #666;
    transform: rotate(45deg); margin-left: 8px; margin-bottom: 2px; transition: transform 0.3s;
}
#news-read-more.is-open::after, #wp-news-read-more.is-open::after { transform: rotate(-135deg); margin-bottom: -2px; }
#deff-news-skeleton {
    min-height: 250px; width: 100%; display: flex; align-items: center;
    justify-content: center; color: #ccc; font-size: 13px; margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
    html body#fs_Top .fs-pt-list__link { display: block !important; }
    html body#fs_Top .fs-pt-list__item time { margin-bottom: 5px !important; }
    html body#fs_Top .deff-wp-cat { margin-bottom: 4px !important; }
    html body#fs_Top .fs-pt-list__item { padding: 15px 10px !important; }
}


/* ==========================================================================
   11. カテゴリページ・商品一覧 (Category / Product List)
   ========================================================================== */

/* 子カテゴリグリッド */
.fs-c-subgroupList {
    display: grid !important; gap: 10px !important; padding: 0 !important; margin: 20px 0 40px !important;
    list-style: none !important; width: 100% !important; box-sizing: border-box !important;
}
@media screen and (min-width: 769px) { .fs-c-subgroupList { grid-template-columns: repeat(3, 1fr) !important; } }
@media screen and (max-width: 768px) { .fs-c-subgroupList { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; } }
.fs-c-subgroupList__item { width: auto !important; margin: 0 !important; padding: 0 !important; }
.fs-c-subgroupList__item[style*="display: none"],
.fs-c-subgroupList__item.fs-is-hide { display: none !important; }
.fs-c-subgroupList__link {
    display: flex !important; align-items: center !important; justify-content: center !important;
    width: 100% !important; height: 100% !important; min-height: 50px !important; padding: 10px !important;
    box-sizing: border-box !important; background-color: #fff !important; border: 1px solid #e5e5e5 !important;
    border-radius: 4px !important; color: #333 !important; text-decoration: none !important; font-size: 14px !important;
    font-weight: bold !important; text-align: center !important; line-height: 1.3 !important;
    transition: all 0.2s ease !important; box-shadow: 0 2px 4px rgba(0,0,0,0.03) !important;
}
.fs-c-subgroupList__label { display: inline !important; background: none !important; border: none !important; padding: 0 !important; }
.fs-c-subgroupList__link::before, .fs-c-subgroupList__link::after,
.fs-c-subgroupList__label::before, .fs-c-subgroupList__label::after { display: none !important; content: none !important; }
.fs-c-subgroupList__item--more { grid-column: 1 / -1 !important; }
.fs-c-subgroupList__more {
    display: block !important; width: 100% !important; max-width: 300px !important; margin: 20px auto 0 !important;
    padding: 12px !important; background: #f4f4f4 !important; border: 1px solid #ddd !important;
    text-align: center !important; border-radius: 4px !important; cursor: pointer !important;
}
@media screen and (min-width: 769px) {
    .fs-c-subgroupList__link:hover {
        border-color: #E60012 !important; color: #E60012 !important; background-color: #fff5f5 !important;
        transform: translateY(-2px) !important; box-shadow: 0 4px 8px rgba(230,0,18,0.15) !important; z-index: 1;
    }
}

/* カテゴリページ 制御 */
.fs-body-category .fs-c-subgroup .fs-c-listControl { display: none; }
@media screen and (max-width: 768px) {
    .fs-body-category .fs-c-subgroup { margin: 0; }
    .fs-body-category .fs-c-subgroupList { align-items: flex-start; }
}

/* 商品一覧 PC4列 */
@media screen and (min-width: 769px) {
    ul.fs-c-productList, ul[class*="productList"], .fs-c-productList__list {
        display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 30px 20px !important;
        margin: 0 !important; padding: 0 !important; width: 100% !important; box-sizing: border-box !important;
    }
    .fs-c-productList__item, ul[class*="productList"] > li {
        width: auto !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; display: block !important;
    }
    .fs-c-productList__imageContainer, .fs-c-productList__item figure { width: 100% !important; margin-bottom: 10px !important; }
    .fs-c-productList__imageContainer img { width: 100% !important; height: auto !important; }
    .fs-c-productList__productName { width: 100% !important; display: block !important; }
    .fs-c-productList__item--more, li.fs-c-productList__item--more, li[class*="more"] {
        grid-column: 1 / -1 !important; width: 100% !important; margin-top: 20px !important;
    }
}

/* ソート・ページネーション */
.fs-c-productList__controller { flex-direction: row-reverse; }
@media screen and (max-width: 768px) {
    .fs-c-productList__controller { flex-direction: column-reverse; }
    .fs-c-sortItems { border: none; }
}
.fs-c-productList__controller .fs-c-sortItems { margin-left: 18px; }
.fs-c-productList__controller .fs-c-sortItems__label { display: none; }
.fs-c-productList__controller .fs-c-sortItems__list { border-left: none; }
.fs-c-productList__controller .fs-c-sortItems__list > li { border-right: 1px solid #707070; }
.fs-c-productList__controller .fs-c-sortItems__list > li:first-child { border-left: 1px solid #707070; }
.fs-c-productList__controller .fs-c-sortItems__list__item.is-active { background: #707070; }
.fs-c-productList__controller:first-of-type .fs-c-pagination { display: none; }
.fs-c-productList__controller:last-of-type .fs-c-listControl__status,
.fs-c-productList__controller:last-of-type .fs-c-sortItems { display: none; }
.fs-c-productList__controller:last-of-type .fs-c-listControl { flex-direction: column; }
.fs-c-pagination__item { padding: 12px; }
.fs-c-pagination__item.is-active { background: #666666; }
.fs-c-productListItem__productName { line-height: 1.4; }
.fs-c-productListItem__productName .fs-c-productName__copy { margin-bottom: 0.2em; }
.fs-c-productList__list__item { border-bottom: none; }

/* 価格 */
.fs-c-productPrice:not(.fs-c-productPrice--listed) .fs-c-productPrice__main__price { color: inherit; }

/* 商品画像（カート以外は100%幅） */
.fs-c-productList .fs-c-productImage__image,
.fs-c-productListItem .fs-c-productImage__image,
.fs-c-productListItem__image img,
.fs-c-productList__item img,
ul[class*="productList"] img,
.ukomi_promoted_product__slide img,
.fs-c-recommend__item img {
    width: 100% !important; max-width: 100% !important; height: auto !important; border: none !important;
}

/* 商品名デザイン */
.fs-c-productListItem__productName,
.fs-c-productListItem .fs-c-productName,
.fs-c-productList__item .fs-c-productName,
ul[class*="productList"] .fs-c-productName {
    font-size: 14px !important; line-height: 1.4 !important; margin-bottom: 5px !important; font-weight: bold !important;
}
.fs-c-productListItem__productName .fs-c-productName__copy,
.fs-c-productName .fs-c-productName__copy {
    font-weight: normal !important; display: block !important; margin-bottom: 4px !important; color: #666 !important;
}

/* 画像ホバー拡大 */
.fs-c-productListItem__imageContainer,
.fr2-productListItem__imageContainer,
.fs-pt-carousel__slide,
.ukomiInstaCarousel-productImg {
    overflow: hidden !important;
    border-radius: 4px;
    transform: translateZ(0);
}
.fs-c-productListItem__image img,
.fr2-productListItem__image,
.fs-pt-carousel__slide img,
.ukomiInstaCarousel-productImg img {
    transition: transform 0.4s ease !important;
    width: 100%;
    display: block;
}
@media screen and (min-width: 769px) {
    .fs-c-productListItem__image a:hover img,
    .fr2-productListItem:hover .fr2-productListItem__image,
    .fs-pt-carousel__slide a:hover img,
    .ukomiInstaCarousel-imgWrap:hover .ukomiInstaCarousel-productImg img {
        transform: scale(1.015) !important;
    }
}

/* もっと見るボタン */
.category-read-more-btn, .deff-desc-btn {
    display: block; text-align: center; background: #f9f9f9; border: 1px solid #ddd; color: #333;
    padding: 12px; margin: 20px auto; border-radius: 4px; font-size: 14px; font-weight: bold;
    cursor: pointer; max-width: 300px; width: 90%; position: relative; z-index: 10;
    transition: background 0.3s, opacity 0.3s;
}
.category-read-more-btn:hover, .deff-desc-btn:hover { background: #eee; opacity: 0.8; }
.category-read-more-btn::after, .deff-desc-btn::after {
    content: ""; display: inline-block; width: 6px; height: 6px;
    border-right: 2px solid #666; border-bottom: 2px solid #666;
    transform: rotate(45deg); margin-left: 8px; margin-bottom: 2px; transition: transform 0.3s;
}
.category-read-more-btn.is-open::after, .deff-desc-btn.is-open::after { transform: rotate(-135deg); margin-bottom: -2px; }


/* ==========================================================================
   12. 商品詳細ページ (Product Detail)
   ========================================================================== */
.fs-body-product .more { display: none; }
@media screen and (max-width: 768px) { .fs-body-product .fs-p-productDescription { position: relative; } }
.fs-body-product .fs-p-productDescription { max-width: 950px; }
@media screen and (max-width: 1199px) { .fs-body-product .fs-p-productDescription { margin: 0 auto; } }
@media screen and (min-width: 960px) {
    .fs-l-product4 .fs-l-productLayout { grid-template-columns: calc(60% - 40px / 2) calc(40% - 40px / 2); grid-gap: 40px; }
}
.fs-c-productCarouselMainImage .fs-c-slick .slick-prev,
.fs-c-productCarouselMainImage .fs-c-slick .slick-next { border-radius: 100%; }
.fs-c-productNameHeading { display: flex; font-size: 3.0rem; flex-direction: column-reverse; }
@media screen and (max-width: 768px) { .fs-c-productNameHeading { font-size: 2.6rem; } }
.fs-c-productNameHeading__copy { font-size: 0.53em; font-weight: normal; line-height: 1.4; margin-top: 0.8em; }

/* タイトル・キャッチコピー調整 */
.fs-body-product .fs-c-productMain__name,
.fs-c-productNameHeading { font-size: 22px !important; line-height: 1.5 !important; margin-bottom: 20px !important; font-weight: bold; }
.fs-c-productNameHeading__copy { font-size: 14px !important; line-height: 1.6 !important; margin-top: 10px !important; font-weight: normal !important; color: #444 !important; }

.fs-c-productNumber { border: none; margin-top: 2em; padding-left: 0; padding-right: 0; }
.fs-c-productPointDisplay { background: none; color: inherit; font-size: 1.2rem; padding-left: 0; }
.fs-c-productQuantityAndWishlist .fs-c-button--addToWishList--detail { background: none; border: none; box-shadow: none; }
.fs-c-productQuantityAndWishlist .fs-c-button--addToWishList--detail .fs-c-button__label { display: none; }
.fs-c-inquiryAboutProduct { margin-bottom: 0; }
.fs-c-variationRadioList__name { font-weight: normal; }
.fs-c-productPrices--productDetail .fs-c-productPrice:not(.fs-c-productPrice--listed) .fs-c-productPrice__main__price {
    color: #3c3c3c; font-weight: bold; font-size: 2.8rem;
}
.fs-c-productPrices--productDetail .fs-c-productPrice:not(.fs-c-productPrice--listed) .fs-c-productPrice__main__price .fs-c-price__value { margin: 0 0.2em; }
.fs-c-inquiryAboutProduct.fs-c-buttonContainer.fs-c-buttonContainer--inquiryAboutProduct { margin-bottom: 0; }
.fs-c-productActionButton .fs-c-button--primary { padding-top: 1.2em; padding-bottom: 1.2em; }
.fs-l-product4 .fs-l-productLayout .faqLink { margin: 8px 0 0 0; }
.fs-c-quantity { display: flex; align-items: center; position: relative; }
.fs-c-quantity::before { content: "数量"; margin: 0 0.5em 0 0; white-space: nowrap; }
.fs-c-quantity__number:focus:not(.is-error) + .fs-c-quantity__message { left: calc(100% + 4px); }
.fs-p-snsArea { margin-top: 20px; }
.fs-p-snsArea > * { margin-right: 0; }
.fs-p-productDescription.fs-p-productDescription--full { margin-top: 100px; }
@media screen and (max-width: 768px) { .fs-p-productDescription.fs-p-productDescription--full { margin-top: 30px; } }
#fs-recommend--flick { margin-top: 40px; }
.FS2_Recommend2_container_history img { object-fit: cover; }

/* 画像：スマホはカルーセル、PCはメイン+サムネイル */
.fs-c-productCarouselMainImage { display: none; }
@media screen and (max-width: 768px) {
    .fs-c-productCarouselMainImage { display: block; }
    .fs-c-productMainImage, .fs-c-productThumbnail { display: none; }
}

/* 商品詳細 画像 CLS対策 */
@media screen and (max-width: 768px) {
    body.fs-p-productDetail .fs-l-productLayout,
    body.fs-p-productDetail .fs-l-productLayout__item--1 {
        width: 100% !important; max-width: 100vw !important; padding: 0 !important; margin: 0 auto !important; display: block !important; box-sizing: border-box !important;
    }
    body.fs-p-productDetail .fs-c-productCarouselMainImage,
    body.fs-p-productDetail .fs-c-productMainImage {
        width: 100% !important; margin: 0 auto 10px !important; height: auto !important; overflow: hidden !important;
    }
    body.fs-p-productDetail .slick-list { padding: 0 !important; width: 100% !important; }
    body.fs-p-productDetail .fs-c-productCarouselMainImage__image,
    body.fs-p-productDetail .slick-slide,
    body.fs-p-productDetail .fs-c-productMainImage__image {
        height: auto !important; text-align: center !important; background: #fff !important;
        aspect-ratio: 1 / 1 !important; display: flex !important; align-items: center; justify-content: center;
    }
    body.fs-p-productDetail .fs-c-productCarouselMainImage__image img,
    body.fs-p-productDetail .fs-c-productMainImage__image img,
    body.fs-p-productDetail .slick-slide img {
        width: 100% !important; height: 100% !important; object-fit: contain !important;
        max-width: 100% !important; max-height: 400px !important; display: block !important; margin: 0 auto !important;
    }
    body.fs-p-productDetail .fs-c-productThumbnail { display: none !important; }
}
@media screen and (min-width: 769px) {
    body.fs-p-productDetail .fs-c-productCarouselMainImage__image,
    body.fs-p-productDetail .fs-c-productMainImage__image,
    body.fs-p-productDetail .slick-slide:not(.singleReview) {
        aspect-ratio: 1 / 1 !important; width: 100% !important; display: block !important; position: relative !important;
    }
    body.fs-p-productDetail .fs-c-productCarouselMainImage__image img,
    body.fs-p-productDetail .fs-c-productMainImage__image img,
    body.fs-p-productDetail .slick-slide img {
        width: 100% !important; height: 100% !important; object-fit: contain !important;
        position: absolute !important; top: 0; left: 0; right: 0; bottom: 0; margin: auto !important; max-width: 100% !important;
    }
}

/* スマホ商品説明の開閉 */
@media screen and (max-width: 768px) {
    .fs-p-productDescription {
        transition: height 0.5s ease;
        overflow: hidden;
    }
    .fs-p-productDescription.deff-collapsed {
        height: 500px;
        position: relative;
    }
    .fs-p-productDescription.deff-collapsed::after {
        content: "";
        position: absolute; bottom: 0; left: 0;
        width: 100%; height: 100px;
        background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1) 80%);
        pointer-events: none;
    }
}

/* 送料表記 */
.deff-shipping-notice {
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: 13px; color: #555; margin-top: 15px; margin-bottom: 20px;
    padding: 10px 15px; background-color: #f9f9f9; border-radius: 4px;
    display: block; line-height: 1.6; border: 1px solid #eee; width: 100%; box-sizing: border-box; clear: both;
}
.deff-ship-item strong { color: #E60012; font-weight: bold; }
.deff-ship-item .icon { margin-right: 5px; font-size: 16px; vertical-align: middle; }
.deff-shipping-notice .divider { margin: 0 12px; color: #ccc; }
@media screen and (max-width: 768px) {
    .deff-shipping-notice { font-size: 12px; text-align: left; padding: 10px; }
    .deff-ship-item { display: block; margin-bottom: 5px; }
    .deff-ship-item:last-child { margin-bottom: 0; }
    .deff-shipping-notice .divider { display: none; }
}

/* 追従カートボタン */
.deff-floating-nav {
    position: fixed; bottom: 20px; right: 20px; z-index: 9990;
    opacity: 0; visibility: hidden; transform: translateY(20px);
    transition: all 0.3s ease; pointer-events: none;
}
.deff-floating-nav.is-visible { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.deff-floating-nav a {
    display: flex; align-items: center; justify-content: center;
    background-color: #333; color: #fff; text-decoration: none;
    padding: 12px 20px; border-radius: 30px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    font-weight: bold; font-size: 14px; line-height: 1;
}
.deff-floating-nav a:hover { background-color: #E60012; opacity: 1; }
.deff-nav-icon { margin-right: 8px; font-size: 16px; }
#fs_p_scrollingCartButton { display: none !important; }
@media screen and (max-width: 768px) {
    .deff-floating-nav { bottom: 15px; right: 15px; left: 15px; }
    .deff-floating-nav a { width: 100%; padding: 15px 0; font-size: 16px; }
}


/* ==========================================================================
   13. カートページ (Cart)
   ========================================================================== */
.fs-c-cartTable {
    width: 100% !important; border-collapse: collapse !important; margin-bottom: 40px !important;
    border-top: 2px solid #E60012 !important; font-family: "Helvetica Neue", Arial, sans-serif !important;
}
.fs-c-cartTable th, .fs-c-cartTable__headerCell {
    background-color: #f9f9f9 !important; color: #555 !important; padding: 15px !important;
    border-bottom: 1px solid #ddd !important; font-weight: bold !important; text-align: center !important;
}
.fs-c-cartTable td, .fs-c-cartTable__dataCell {
    padding: 20px 15px !important; border-bottom: 1px solid #eee !important; vertical-align: middle !important; color: #333 !important;
}
.fs-c-cartTable .fs-c-productImage__image,
.fs-c-cartTable__productImage__image {
    width: 80px !important; height: auto !important; border: 1px solid #eee !important;
    display: block !important; margin: 0 auto !important; max-width: 80px !important;
}
.fs-c-cartTable__productName a, .fs-c-listedProductName__name {
    text-decoration: none !important; color: #333 !important; font-weight: bold !important;
    font-size: 14px !important; transition: color 0.3s !important; display: block !important; line-height: 1.5 !important;
}
.fs-c-cartTable__productName a:hover { color: #E60012 !important; }
.fs-c-button--cancel--cart {
    background: #fff !important; border: 1px solid #ccc !important; color: #888 !important;
    font-size: 12px !important; padding: 6px 12px !important; border-radius: 4px !important;
    cursor: pointer !important; transition: all 0.3s !important; width: auto !important; height: auto !important;
}
.fs-c-button--cancel--cart:hover { background: #666 !important; color: #fff !important; border-color: #666 !important; }
.fs-c-button--cancel--cart span { display: inline !important; }

.fs-c-purchaseHere, .fs-c-cartPayment { text-align: center !important; margin-top: 40px !important; }
.fs-c-purchaseHere__message { margin-bottom: 20px !important; font-size: 14px !important; }

.fs-c-button--loginAndPurchase, .fs-c-button--unregisteredUserPurchase,
a[href*="checkout"], a[href*="login"] {
    display: flex !important; justify-content: center !important; align-items: center !important;
    width: 100% !important; max-width: 300px !important; margin: 15px auto !important;
    padding: 18px 20px !important; border-radius: 50px !important; font-size: 18px !important;
    font-weight: bold !important; text-decoration: none !important; transition: all 0.3s ease !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important; cursor: pointer !important; box-sizing: border-box !important;
}
.fs-c-button--loginAndPurchase {
    background-color: #E60012 !important; border: 1px solid #E60012 !important; color: #ffffff !important;
}
.fs-c-button--loginAndPurchase:hover {
    background-color: #cc0010 !important; transform: translateY(-2px) !important; box-shadow: 0 6px 15px rgba(230,0,18,0.3) !important;
}
.fs-c-button--unregisteredUserPurchase {
    background-color: #ffffff !important; border: 1px solid #cccccc !important; color: #333333 !important;
}
.fs-c-button--unregisteredUserPurchase:hover {
    background-color: #f5f5f5 !important; border-color: #999999 !important; color: #000000 !important; transform: translateY(-2px) !important;
}
.fs-c-button--loginAndPurchase span { color: #ffffff !important; }
.fs-c-button--unregisteredUserPurchase span { color: #333333 !important; }
#AmazonPayButton, .amazonpay-button-container {
    margin: 20px auto !important; background: transparent !important; box-shadow: none !important; border: none !important; padding: 0 !important;
}

/* カート スマホ */
@media screen and (max-width: 768px) {
    .fs-c-cartTable, .fs-c-cartTable tbody, .fs-c-cartTable tr, .fs-c-cartTable td {
        display: block !important; width: 100% !important; box-sizing: border-box !important;
    }
    .fs-c-cartTable thead { display: none !important; }
    .fs-c-cartTable__row {
        position: relative !important; background: #fff !important; border: 1px solid #e0e0e0 !important;
        border-radius: 8px !important; margin-bottom: 20px !important; padding: 15px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.05) !important;
    }
    .fs-c-cartTable__dataCell { padding: 5px 0 !important; border: none !important; text-align: left !important; }
    .fs-c-cartTable__dataCell--product .fs-c-cartTable__product { display: flex !important; align-items: flex-start !important; flex-wrap: nowrap !important; }
    .fs-c-cartTable__productImage { width: 90px !important; margin-right: 15px !important; flex-shrink: 0 !important; }
    .fs-c-cartTable__productImage__image { width: 100% !important; }
    .fs-c-cartTable__productInfo { flex: 1 !important; padding-right: 40px !important; }
    .fs-c-listedProductName__name { font-size: 14px !important; line-height: 1.4 !important; }
    .fs-c-cartTable__dataCell--quantity {
        margin-top: 15px !important; border-top: 1px dashed #eee !important; padding-top: 10px !important;
        display: flex !important; align-items: center !important; justify-content: space-between !important;
    }
    .fs-c-cartTable__dataCell--quantity::before { content: "数量"; font-size: 12px; color: #888; }
    .fs-c-cartTable__dataCell--subtotal {
        display: flex !important; align-items: center !important; justify-content: space-between !important; margin-top: 5px !important;
    }
    .fs-c-cartTable__dataCell--subtotal::before { content: "小計"; font-size: 12px; color: #888; }
    .fs-c-cartTable__dataCell--subtotal .fs-c-price__value { font-size: 18px !important; font-weight: bold !important; color: #E60012 !important; }
    .fs-c-cartTable__dataCell--point { display: none !important; }
    .fs-c-cartTable__dataCell--action { position: absolute !important; top: 10px !important; right: 10px !important; padding: 0 !important; width: auto !important; }
    .fs-c-button--cancel--cart { background: #f4f4f4 !important; border: none !important; color: #666 !important; font-size: 11px !important; padding: 6px 10px !important; }
}

/* カートポップアップ */
.deff-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.6); z-index: 2147483647;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: opacity 0.3s ease; pointer-events: none;
}
.deff-modal-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.deff-modal-content {
    background: #fff; width: 90%; max-width: 500px; padding: 30px; border-radius: 8px;
    position: relative; box-shadow: 0 10px 25px rgba(0,0,0,0.2); text-align: center;
    transform: translateY(20px); transition: transform 0.3s ease;
}
.deff-modal-overlay.is-open .deff-modal-content { transform: translateY(0); }
.deff-modal-header {
    font-size: 20px; font-weight: bold; color: #333; margin-bottom: 15px;
    display: flex; align-items: center; justify-content: center; gap: 10px;
}
.deff-check-icon {
    color: #fff; background: #E60012; width: 24px; height: 24px;
    border-radius: 50%; font-size: 14px; display: flex; align-items: center; justify-content: center;
}
.deff-modal-body p { margin-bottom: 25px; font-size: 14px; color: #666; }
.deff-modal-buttons { display: flex; gap: 15px; justify-content: center; }
.deff-btn-continue, .deff-btn-cart {
    display: flex; align-items: center; justify-content: center;
    width: 48%; padding: 15px 0; border-radius: 4px; text-decoration: none !important;
    font-weight: bold; font-size: 14px; cursor: pointer; transition: opacity 0.3s; box-sizing: border-box;
}
.deff-btn-continue { background: #fff; border: 1px solid #ccc; color: #333 !important; }
.deff-btn-continue:hover { background: #f5f5f5; }
.deff-btn-cart { background: #E60012; border: 1px solid #E60012; color: #fff !important; }
.deff-btn-cart:hover { opacity: 0.8; color: #fff !important; }
.deff-modal-close { position: absolute; top: 10px; right: 15px; font-size: 24px; color: #999; cursor: pointer; line-height: 1; }
@media screen and (max-width: 768px) {
    .deff-modal-buttons { flex-direction: column-reverse; }
    .deff-btn-continue, .deff-btn-cart { width: 100%; padding: 15px 0; }
}


/* ==========================================================================
   14. お客様情報入力ページ (Customer Details)
   ========================================================================== */
.fs-body-customerDetails {
    background-color: #fff !important; font-family: "Helvetica Neue", Arial, sans-serif !important; color: #333 !important;
}
.fs-body-customerDetails .fs-c-heading--page {
    text-align: center !important; font-size: 24px !important; font-weight: bold !important;
    margin: 40px 0 30px !important; padding-bottom: 15px !important; position: relative !important; border-bottom: none !important;
}
.fs-body-customerDetails .fs-c-heading--page::after {
    content: ""; display: block; width: 60px; height: 3px; background: #E60012; margin: 15px auto 0;
}
.fs-body-customerDetails .fs-c-inputInformation__message { text-align: center !important; margin-bottom: 40px !important; font-size: 14px !important; color: #666 !important; }
.fs-body-customerDetails .fs-c-inputTable {
    width: 100% !important; max-width: 800px !important; margin: 0 auto !important;
    border-collapse: separate !important; border-spacing: 0 15px !important; border: none !important; display: table !important;
}
.fs-body-customerDetails .fs-c-inputTable__headerCell {
    background: transparent !important; width: 220px !important; padding: 15px 10px !important;
    vertical-align: top !important; text-align: left !important; font-weight: bold !important; border: none !important; display: table-cell !important;
}
.fs-body-customerDetails .fs-c-inputTable__dataCell { padding: 0 !important; border: none !important; display: table-cell !important; }
.fs-body-customerDetails .fs-c-requiredMark {
    text-indent: 0 !important; font-size: 11px !important; line-height: 1.2 !important; width: auto !important;
    height: auto !important; background-image: none !important; display: inline-block !important;
    background-color: #E60012 !important; color: #ffffff !important; padding: 3px 8px !important;
    border-radius: 4px !important; margin-left: 8px !important; vertical-align: middle !important;
    font-weight: normal !important; white-space: nowrap !important;
}
.fs-body-customerDetails .fs-c-requiredMark::before,
.fs-body-customerDetails .fs-c-requiredMark::after { display: none !important; content: none !important; }
.fs-body-customerDetails input[type="text"], .fs-body-customerDetails input[type="tel"],
.fs-body-customerDetails input[type="email"], .fs-body-customerDetails input[type="password"],
.fs-body-customerDetails select {
    display: block !important; width: 100% !important; box-sizing: border-box !important; padding: 12px 15px !important;
    font-size: 16px !important; border: 1px solid #ccc !important; border-radius: 4px !important; background: #fff !important;
    color: #333 !important; margin: 0 !important; height: auto !important; box-shadow: none !important; visibility: visible !important; opacity: 1 !important;
}
.fs-body-customerDetails input:focus, .fs-body-customerDetails select:focus {
    border-color: #E60012 !important; outline: none !important; box-shadow: 0 0 0 2px rgba(230,0,18,0.1) !important;
}
.fs-body-customerDetails .fs-c-inputTextGroup { display: flex !important; gap: 10px !important; }
.fs-body-customerDetails .fs-c-inputTextGroup__item { flex: 1 !important; }
.fs-body-customerDetails .fs-c-radioGroup { display: flex !important; gap: 20px !important; padding: 10px 0 !important; }
.fs-body-customerDetails .fs-c-radio__label { cursor: pointer !important; display: flex !important; align-items: center !important; }
.fs-body-customerDetails input[type="radio"] { width: auto !important; margin-right: 5px !important; accent-color: #E60012 !important; }
.fs-body-customerDetails .fs-c-inputDate { display: flex !important; gap: 10px !important; }
.fs-body-customerDetails .fs-c-inputDate__year, .fs-body-customerDetails .fs-c-inputDate__month, .fs-body-customerDetails .fs-c-inputDate__date { width: auto !important; min-width: 80px !important; }
.fs-body-customerDetails fieldset { border: none !important; margin: 0 !important; padding: 0 !important; }
.fs-body-customerDetails .fs-c-agreementConfirmationArea {
    background: #f9f9f9 !important; padding: 20px !important; border-radius: 8px !important; margin-top: 30px !important; border: 1px solid #eee !important;
}
.fs-body-customerDetails .fs-c-checkbox__label { display: flex !important; align-items: center !important; cursor: pointer !important; font-weight: bold !important; }
.fs-body-customerDetails input[type="checkbox"] { width: 20px !important; height: 20px !important; margin-right: 10px !important; accent-color: #E60012 !important; }
.fs-body-customerDetails .fs-c-buttonContainer { text-align: center !important; margin: 50px 0 !important; }
.fs-body-customerDetails button[type="submit"], .fs-body-customerDetails .fs-c-button--next,
.fs-body-customerDetails .fs-c-button--registerAndContinue {
    background-color: #E60012 !important; color: #fff !important; border: 1px solid #E60012 !important;
    padding: 20px 60px !important; font-size: 20px !important; font-weight: bold !important;
    border-radius: 50px !important; cursor: pointer !important; transition: all 0.3s !important;
    min-width: 300px !important; display: inline-block !important; box-shadow: 0 5px 15px rgba(230,0,18,0.3) !important;
}
.fs-body-customerDetails button[type="submit"]:hover { background-color: #cc0010 !important; transform: translateY(-2px) !important; }
@media screen and (max-width: 768px) {
    .fs-body-customerDetails .fs-c-inputTable, .fs-body-customerDetails .fs-c-inputTable tbody,
    .fs-body-customerDetails .fs-c-inputTable tr, .fs-body-customerDetails .fs-c-inputTable th,
    .fs-body-customerDetails .fs-c-inputTable td { display: block !important; width: 100% !important; }
    .fs-body-customerDetails .fs-c-inputTable__headerCell { width: 100% !important; padding: 10px 0 5px !important; background: transparent !important; border-bottom: none !important; }
    .fs-body-customerDetails .fs-c-inputTable__dataCell { padding-bottom: 20px !important; }
    .fs-body-customerDetails .fs-c-inputTextGroup { gap: 10px !important; }
    .fs-body-customerDetails .fs-c-inputDate { display: flex !important; justify-content: space-between !important; }
    .fs-body-customerDetails .fs-c-inputDate > div { flex: 1 !important; }
    .fs-body-customerDetails button[type="submit"] { width: 100% !important; padding: 15px !important; font-size: 18px !important; }
}


/* ==========================================================================
   15. ログインページ (Login)
   ========================================================================== */
.fs-p-loginMain { max-width: 1000px !important; margin: 40px auto 80px !important; font-family: "Helvetica Neue", Arial, sans-serif !important; color: #333 !important; }
.fs-p-loginMain h2, .fs-c-heading--lv2 {
    text-align: center !important; font-size: 28px !important; font-weight: bold !important;
    margin-bottom: 40px !important; border: none !important; letter-spacing: 0.05em !important;
}
.fs-p-loginMain__body { display: flex !important; justify-content: center !important; gap: 40px !important; flex-wrap: wrap !important; }
.fs-p-loginMain__body > div, .fs-c-registeredUsers, .fs-c-newUsers {
    flex: 1 !important; min-width: 300px !important; max-width: 480px !important;
    background: #fff !important; padding: 40px !important; border: 1px solid #eaeaea !important;
    border-radius: 8px !important; box-shadow: 0 5px 20px rgba(0,0,0,0.03) !important;
    box-sizing: border-box !important; margin-bottom: 0 !important;
}
.fs-p-loginMain__lead, .fs-c-heading--lv3, .fs-c-subSection__title {
    font-size: 18px !important; font-weight: bold !important; text-align: center !important;
    margin-bottom: 30px !important; border-bottom: 2px solid #E60012 !important;
    display: inline-block !important; padding-bottom: 8px !important; width: auto !important;
}
.fs-c-subSection__title { display: block !important; border-bottom: none !important; }
.fs-c-subSection__title::after { content: ""; display: block; width: 60px; height: 2px; background: #E60012; margin: 10px auto 0; }

.fs-c-inputTable th { background: none !important; font-weight: bold !important; padding: 10px 0 5px !important; border: none !important; display: block !important; width: 100% !important; }
.fs-c-inputTable td { padding: 0 0 20px !important; border: none !important; display: block !important; }
.fs-c-inputField__field input[type="text"],
.fs-c-inputField__field input[type="password"],
.fs-c-inputField__field input[type="email"] {
    width: 100% !important; padding: 12px 15px !important; border: 1px solid #ccc !important;
    border-radius: 4px !important; box-sizing: border-box !important; font-size: 16px !important;
    background: #f9f9f9 !important; transition: border-color 0.3s, background 0.3s !important; height: auto !important;
}
.fs-c-inputField__field input:focus { border-color: #333 !important; background: #fff !important; outline: none !important; }

.fs-c-button--login, input[name="loginButton"], #loginButton {
    display: block !important; width: 100% !important; background-color: #333 !important; color: #fff !important;
    border: none !important; padding: 15px 0 !important; font-size: 16px !important; font-weight: bold !important;
    border-radius: 4px !important; cursor: pointer !important; margin-top: 10px !important;
    transition: opacity 0.3s !important; text-align: center !important; text-decoration: none !important; height: auto !important;
}
.fs-c-button--login:hover, input[name="loginButton"]:hover, #loginButton:hover { opacity: 0.8 !important; background-color: #E60012 !important; }

.fs-c-button--memberRegister, a[href*="Entry"], .fs-p-loginMain__body a[href*="entry"] {
    display: block !important; width: 100% !important; background-color: #fff !important;
    color: #333 !important; border: 1px solid #333 !important; padding: 15px 0 !important;
    font-size: 16px !important; font-weight: bold !important; border-radius: 4px !important;
    text-decoration: none !important; text-align: center !important; transition: all 0.3s !important;
    box-sizing: border-box !important; height: auto !important;
}
.fs-c-button--memberRegister:hover, a[href*="Entry"]:hover, .fs-p-loginMain__body a[href*="entry"]:hover { background-color: #333 !important; color: #fff !important; }

.fs-c-textLinkContainer { text-align: center !important; margin-top: 15px !important; }
.fs-c-textLink { font-size: 13px !important; color: #666 !important; text-decoration: underline !important; }
.fs-c-otherServiceLogin, #amazon_pay_button_area {
    margin-top: 30px !important; padding-top: 30px !important; border-top: 1px dashed #eee !important; text-align: center !important;
}
.fs-c-linkedServiceLogin__title { font-size: 14px !important; margin-bottom: 15px !important; color: #666 !important; }

/* パスワード再設定 */
.passWord {
    max-width: 800px !important; margin: 0 auto 40px !important; padding: 15px 20px !important;
    background-color: #f9f9f9 !important; border: 1px solid #eaeaea !important; border-radius: 4px !important;
    text-align: center !important; box-sizing: border-box !important;
}
.passWord p { margin: 0 !important; font-size: 14px !important; color: #555 !important; line-height: 1.8 !important; }
.passWord a { color: #333 !important; font-weight: bold !important; text-decoration: underline !important; margin-left: 5px !important; transition: color 0.3s !important; }
.passWord a:hover { color: #E60012 !important; text-decoration: none !important; }
body.fs-body-login .passWord { display: none; }
@media screen and (max-width: 768px) { body.fs-body-login .passWord { display: block; text-align: center; margin-bottom: 20px; font-size: 14px; } }

/* スマホ 新規会員登録表示 */
@media screen and (max-width: 768px) {
    section.fs-c-newUsers, .fs-c-newUsers {
        display: block !important; visibility: visible !important; opacity: 1 !important;
        height: auto !important; width: 100% !important; overflow: visible !important;
        position: static !important; margin-top: 40px !important; background: #fff !important;
        border: 1px solid #eaeaea !important; padding: 20px !important; box-sizing: border-box !important;
    }
    .fs-p-loginMain__body, .fs-l-pageMain, .fs-l-main { overflow: visible !important; height: auto !important; }
    .fs-p-loginMain__body { display: flex !important; flex-direction: column !important; }
    .fs-c-loginForm { order: 1 !important; }
    .fs-c-newUsers { order: 2 !important; }
    .fs-c-newUsers * { display: block !important; visibility: visible !important; opacity: 1 !important; height: auto !important; }
    .fs-c-newUsers span, .fs-c-newUsers a, .fs-c-newUsers strong { display: inline-block !important; }
    .fs-p-loginMain { margin-top: 20px !important; padding: 0 15px !important; }
    .fs-p-loginMain__body { flex-direction: column !important; gap: 30px !important; }
    .fs-c-registeredUsers, .fs-c-newUsers { max-width: 100% !important; padding: 25px !important; min-width: auto !important; }
    .passWord { width: 100% !important; padding: 15px !important; font-size: 13px !important; text-align: left !important; }
}


/* ==========================================================================
   16. ボトム信頼情報エリア (Trust Section)
   ========================================================================== */
.deff-trust-section {
    width: 100%; max-width: 1100px; margin: 60px auto 40px; padding: 0 20px;
    box-sizing: border-box; font-family: "Helvetica Neue", Arial, sans-serif; color: #333;
}
.deff-trust-grid { display: flex; flex-wrap: wrap; gap: 30px; justify-content: space-between; }
.deff-trust-col {
    flex: 1; min-width: 280px; background: #f9f9f9; padding: 20px;
    border-radius: 6px; border: 1px solid #eee; text-align: center;
}
.deff-trust-title {
    font-size: 14px; font-weight: bold; text-transform: uppercase; letter-spacing: 0.05em;
    margin-bottom: 15px; color: #555; position: relative; display: inline-block;
}
.deff-trust-title::after { content: ""; display: block; width: 30px; height: 2px; background: #ccc; margin: 5px auto 0; }
.deff-trust-items { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 15px; list-style: none; padding: 0; margin: 0; }
.deff-trust-items li { margin: 0; }
.deff-trust-img { max-width: 100%; height: auto; display: block; transition: opacity 0.3s; }
a .deff-trust-img:hover { opacity: 0.7; }
.img-payment { max-height: 30px; }
.img-banner { max-width: 100%; border-radius: 4px; }
.deff-trust-img, .img-banner { display: block !important; min-height: 40px !important; width: auto !important; }
@media screen and (max-width: 768px) {
    .deff-trust-grid { flex-direction: column; gap: 20px; }
    .deff-trust-col { padding: 15px; }
}


/* ==========================================================================
   17. コンテンツバナー・セクション (Banners / Sections)
   ========================================================================== */

/* Kevlar バナー */
.kevlar-banner-section {
    position: relative; width: 100%; max-width: 1200px; margin: 80px auto;
    overflow: hidden; background-color: #333; color: #fff; font-family: "Helvetica Neue", Arial, sans-serif;
}
.kevlar-bg-image { width: 100%; height: 450px; display: block; object-fit: cover; object-position: center; }
.kevlar-content {
    position: absolute; top: 50%; right: 5%; transform: translateY(-50%);
    text-align: right; width: 70%; text-shadow: 0 2px 10px rgba(0,0,0,0.5); z-index: 2;
}
.kevlar-title {
    font-size: 36px; font-weight: 400; letter-spacing: 0.05em; margin-bottom: 20px;
    line-height: 1.2; border: none; background: none; padding: 0; display: block;
}
.kevlar-title::before, .kevlar-title::after { content: none !important; display: none !important; }
.kevlar-desc { font-size: 16px; line-height: 1.6; font-weight: 300; opacity: 0.9; white-space: nowrap; }
@media screen and (max-width: 768px) {
    .kevlar-banner-section { margin: 50px auto; }
    .kevlar-bg-image { height: 300px; }
    .kevlar-content { width: 90%; right: 50%; transform: translate(50%, -50%); text-align: center; }
    .kevlar-title { font-size: 24px; margin-bottom: 15px; }
    .kevlar-desc { font-size: 13px; white-space: normal; }
}

/* About / YouTube */
.deff-about-section { display: flex; flex-wrap: wrap; width: 100%; max-width: 1200px; margin: 0 auto 30px; }
.deff-about-col { width: 50%; position: relative; box-sizing: border-box; }
.deff-about-link { display: block; width: 100%; height: 0; padding-bottom: 56.25%; position: relative; overflow: hidden; }
.deff-about-img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.deff-about-link:hover .deff-about-img { transform: scale(1.05); }
.deff-video-wrap { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; background: #000; }
.deff-video-iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
@media screen and (max-width: 768px) { .deff-about-col { width: 100%; } }

/* Ultrafit PC Bag バナー */
.deff-banner-bag { position: relative; width: 100%; max-width: 1200px; margin: 0 auto 30px; overflow: hidden; aspect-ratio: 2.6 / 1; }
.deff-bag-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.deff-bag-content {
    position: absolute; top: 50%; right: 5%; transform: translateY(-50%);
    text-align: right; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.6);
    font-family: "Helvetica Neue", Arial, sans-serif; width: 50%;
}
.deff-bag-title { font-size: 32px; margin-bottom: 10px; }
.deff-bag-desc { font-size: 14px; line-height: 1.5; margin-bottom: 20px; }
.deff-btn-gray {
    display: inline-block; padding: 10px 20px; background-color: rgba(255,255,255,0.2);
    border: 1px solid #fff; color: #fff; text-decoration: none; font-size: 14px; transition: all 0.3s ease;
}
.deff-btn-gray:hover { background-color: #fff; color: #333; }
@media screen and (max-width: 768px) {
    .deff-banner-bag { aspect-ratio: 16 / 9; }
    .deff-bag-content { width: 90%; right: 5%; }
    .deff-bag-title { font-size: 22px; }
    .deff-bag-desc { font-size: 12px; }
}


/* ==========================================================================
   18. Splide カスタムスライダー (Splide)
   ========================================================================== */
#my-new-splide {
    margin: 0 auto 60px;
    padding: 0 40px;
    max-width: 1200px;
    opacity: 0;
    transition: opacity 0.5s;
}
#my-new-splide.is-active { opacity: 1; }
.my-slide-item {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: #fff; padding: 10px; height: 100%; box-sizing: border-box;
}
.my-slide-img-box { width: 100%; margin-bottom: 10px; overflow: hidden; position: relative; }
.my-slide-img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; display: block; transition: transform 0.3s; }
.my-slide-item:hover .my-slide-img { transform: scale(1.05); }
.my-slide-title {
    font-size: 13px; line-height: 1.4; color: #333; text-decoration: none;
    margin-bottom: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; height: 2.8em;
}
.my-slide-price { font-size: 14px; font-weight: bold; color: #333; display: block; }
#my-new-splide .splide__arrow {
    background: rgba(255,255,255,0.9); border: 1px solid #ddd; opacity: 1; width: 40px; height: 40px;
}
#my-new-splide .splide__arrow:hover { background: #E60012; border-color: #E60012; }
#my-new-splide .splide__arrow:hover svg { fill: #fff; }
#my-new-splide .splide__arrow--prev { left: 0; }
#my-new-splide .splide__arrow--next { right: 0; }
@media screen and (max-width: 768px) {
    #my-new-splide { padding: 0; margin-bottom: 40px; }
    .my-slide-title { font-size: 12px; }
    #my-new-splide .splide__arrow { display: none; }
}

/* Splide 共通デザイン */
body#fs_Top .deff-custom-splide .splide__arrow {
    background: rgba(255,255,255,0.9) !important; border: 1px solid #ddd !important;
    width: 40px !important; height: 40px !important; opacity: 1 !important;
}
body#fs_Top .deff-custom-splide .splide__arrow:hover { background: #E60012 !important; border-color: #E60012 !important; }
body#fs_Top .deff-custom-splide .splide__arrow:hover svg { fill: #fff !important; }
.splide__pagination__page.is-active { background: #E60012; transform: scale(1.2); }


/* ==========================================================================
   19. About Deff・マイページ・特殊ページ (Misc)
   ========================================================================== */
.aboutDeff { background: url(/bg_about.svg) no-repeat center; padding: 30px 0; }
@media screen and (max-width: 768px) {
    .aboutDeff { background-size: 80%; padding: 0; }
    .aboutDeff br.pc { display: none; }
}
.fs-p-accountInfo.fs-clientInfo { padding-bottom: 0; }
.fs-p-accountInfo.fs-clientInfo p { padding: 10px 0 0 0; }
.fs-p-accountInfo.fs-clientInfo p a { background-color: #ffffff; display: block; padding: 0.8em 0; text-align: center; width: 100%; }

/* LP / 特殊コンテンツ */
ul.list-style-disc { padding: 0 0 0 15px; }
p.subheading { margin: 20px 0 0 0; font-weight: bold; }
#contents1st .wrapper { margin: 30px 0 100px 0; }
#contents1st ul.icon { width: 950px; padding: 0; display: flex; justify-content: space-between; }
#contents1st ul.icon li { margin: 0 0 0 10px; }
#contents1st ul.icon li:first-child { margin: 0; }
#contents1st ul.icon li img { width: 95%; }
#compare .unit { display: flex; align-items: flex-start; margin-top: 20px; }
#compare .unit dl.txt { margin: 0 0 0 30px; width: 100%; }
#compare .unit dl.txt dt { padding: 0.3em 0.8em; }
#compare .unit dl.txt dt.film01 { border: solid 1px #000; margin: 0; }
#compare .unit dl.txt dt.film02 { background-color: #000; color: #f5f5f5; margin: 0; }
#compare .unit dl.txt dt.film03 { background-color: #ba0000; color: #f5f5f5; margin: 0; }
#compare .unit dl.txt dd { margin-top: 10px; }
.c-movie { max-width: 950px; margin: 10px auto 0 auto; aspect-ratio: 16 / 9; }
.c-movie iframe { width: 100%; height: 100%; }
#agar .unit { display: flex; justify-content: space-between; }
#agar .unit dl { width: 23%; }
#agar .unit dl img { width: 100%; }
#agar .unit dl dd { margin-top: 10px; }
#kiresepa .unit dl { margin-top: 30px; display: flex; }
#kiresepa .unit dl dt { width: 40%; }
#kiresepa .unit dl dd { width: 50%; margin-top: 30px; }
@media only screen and (max-width: 767px) {
    #container { width: 100%; }
    .fs-p-productDescription #contents1st ul.icon { width: 100%; display: flex; flex-wrap: wrap; align-items: start; }
    .fs-p-productDescription #contents1st ul.icon li { margin: 0; width: 20%; }
    #compare .unit { display: flex; flex-direction: column; }
    #compare .unit img { width: 100%; height: 100%; }
    #compare .unit dl.txt { margin: 0; width: 100%; }
    #agar .unit { display: flex; flex-wrap: wrap; }
    #agar .unit dl { width: 48%; }
    #agar .unit dl img { width: 100%; height: 100%; }
    #kiresepa .unit dl { display: flex; flex-direction: column; }
    #kiresepa .unit dl dt { text-align: center; width: 100%; }
    #kiresepa .unit dl dd { width: 100%; }
}

/* レコメンド */
#fs_Top #_rcmdjp_display_1 .fs-p-heading--lv2 { display: none; }
@media screen and (max-width: 768px) {
    #fs_Top #_rcmdjp_display_1 .fr2-productList--col5 { display: flex; flex-wrap: wrap; justify-content: space-between; }
    #fs_Top #_rcmdjp_display_1 .fr2-productList--col5 .fr2-productListItem { width: 30%; }
}

/* ユーティリティ */
.deff-kill-element { display: none !important; }
.deff-force-hidden { display: none !important; }

/* ========================================
   CLS修正: 商品ページ・カテゴリページでの
   カルーセル・デバイスグリッド非表示
   JSに頼らずCSSで即座に非表示にする
   ======================================== */

/* トップページ以外ではカルーセルをCSSで即時非表示 */
body:not(#fs_Top) #main-carousel {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Featured Products: 画像読み込み前に高さを確保してCLSを防ぐ */
.deff-device-section {
    min-height: 480px; /* グリッド2行分の目安 */
    contain: layout;
}

.deff-device-grid {
    min-height: 420px;
}

/* アイコン画像の読み込み前に背景色で場所を確保 */
.deff-icon-box {
    background-color: #f0f0f0 !important;
    transition: none !important;
}

@media screen and (max-width: 900px) {
    .deff-device-section { min-height: 700px; }
}

@media screen and (max-width: 600px) {
    .deff-device-section { min-height: 500px; }
}

/* ========================================
   CLS修正: 商品ページ・カテゴリページでの
   カルーセル・デバイスグリッド非表示
   JSに頼らずCSSで即座に非表示にする
   ======================================== */

/* トップページ以外ではカルーセルをCSSで即時非表示 */
body:not(#fs_Top) #main-carousel {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* デバイスグリッドの安定化 */
.deff-device-section {
    /* 既存のmin-heightに加え、コンテントの前に最低限の高さを確保 */
    contain: layout style; /* 外部へのレイアウト影響を制限 */
}

.deff-device-grid {
    /* グリッド行の高さを事前に確保（6列×2行 = 最低400px目安） */
    min-height: 380px;
}

/* 画像読み込み前の背景色でガタつきを視覚的に抑制 */
.deff-icon-box {
    background-color: #f0f0f0 !important; /* 既存の#f9f9f9より少し濃く */
    transition: none !important; /* transitionによる再計算を防ぐ */
}

.deff-icon-box img {
    /* 画像読み込み前も空間を確保（decoding属性と組み合わせると◎） */
    image-rendering: auto;
    will-change: auto; /* 不必要なGPUレイヤー生成を防ぐ */
}

/* ==========================================================================
   20. Makuake プロジェクト特設ページ (Makuake Projects)
   ========================================================================== */
.deff-makuake-intro {
    text-align: center;
    margin-bottom: 50px;
    font-size: 15px;
    line-height: 1.8;
    color: #555;
}

.deff-makuake-current {
    background: #fff;
    border: 2px solid #E60012;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 60px;
    box-shadow: 0 10px 20px rgba(230, 0, 18, 0.05);
}
.deff-makuake-current__header {
    background: #E60012;
    color: #fff;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}
.deff-makuake-badge {
    background: #fff;
    color: #E60012;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 12px;
    border-radius: 20px;
    white-space: nowrap;
}
/* 見出し装飾の初期化 */
.deff-makuake-current__header h2 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: bold !important;
    line-height: 1.4 !important;
    color: #fff !important;
    border: none !important;
    padding: 0 !important;
    text-align: left !important;
    letter-spacing: normal !important;
}
.deff-makuake-current__header h2::before, 
.deff-makuake-current__header h2::after { display: none !important; }

.deff-makuake-current__content {
    display: flex;
    padding: 30px;
    gap: 30px;
    align-items: center;
}
.deff-makuake-current__image {
    flex: 0 0 50%;
}
.deff-makuake-current__image img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    display: block;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.deff-makuake-current__info {
    flex: 1;
}
.deff-makuake-current__info p {
    font-size: 14px;
    line-height: 1.8;
    color: #333;
    margin-bottom: 25px;
}
.deff-btn-makuake {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #E60012;
    color: #fff !important;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    padding: 18px 30px;
    border-radius: 50px;
    text-decoration: none !important;
    transition: all 0.3s;
    width: 100%;
    max-width: 350px;
    box-sizing: border-box;
    box-shadow: 0 4px 10px rgba(230, 0, 18, 0.2);
    margin: 0 auto;
}
.deff-btn-makuake::after {
    content: "\f08e"; /* FontAwesomeの外部リンクアイコン */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 10px;
}
.deff-btn-makuake:hover {
    background: #cc0010;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(230, 0, 18, 0.3);
}

/* 過去プロジェクトエリア */
.deff-makuake-history { margin-bottom: 60px; }
.deff-makuake-history__grid {
    text-align: center;
    color: #666;
    font-size: 14px;
    padding: 50px 20px;
    background: #f9f9f9;
    border-radius: 8px;
    border: 1px solid #eee;
    line-height: 1.8;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .deff-makuake-intro { font-size: 13px; margin-bottom: 30px; text-align: left; padding: 0 15px; }
    .deff-makuake-current__header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .deff-makuake-current__header h2 { font-size: 15px !important; }
    .deff-makuake-current__content { flex-direction: column; padding: 15px; gap: 20px; }
    .deff-makuake-current__image { flex: auto; width: 100%; }
    .deff-btn-makuake { font-size: 15px; max-width: 100%; padding: 15px 20px; }
}

/* ==========================================================================
   21. 営業日カレンダー (Flatpickr Custom for Deff)
   ========================================================================== */
.deff-calendar-wrapper {
    width: 100%;
    margin-bottom: 20px;
}
/* カレンダーの枠デザインをDeffのトーンに合わせる */
.flatpickr-calendar.inline {
    width: 100% !important;
    max-width: 100% !important; /* ← 追加: 親の箱より大きくならないようにする */
    box-shadow: none !important;
    border: 1px solid #eee;
    padding: 5px;
    border-radius: 4px;
    background: #fff;
    box-sizing: border-box !important; /* ← 追加: paddingを含めて100%にする */
}

/* ▼▼▼ ここから新規追加：カレンダーの内部も100%で伸縮させる ▼▼▼ */
.flatpickr-innerContainer, 
.flatpickr-rContainer, 
.dayContainer, 
.flatpickr-days {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
.flatpickr-day {
    max-width: 14.28% !important; /* 100% ÷ 7日間 で均等に割り当てる */
    pointer-events: none !important;
    color: #333 !important;
    font-weight: normal !important;
}
/* ▲▲▲ 新規追加ここまで ▲▲▲ */

/* 今日の日付の青い装飾を消してシンプルに */
.flatpickr-day.today {
    border-color: #ccc !important;
    background: transparent !important;
}

/* ▼▼ 変更点①：休業日（無効化された日）を赤くする ▼▼ */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: #E60012 !important; /* Deff Red */
    background-color: #fff4f4 !important;
    font-weight: bold !important;
    border-color: transparent !important;
}

/* ▼▼ 変更点②：前月・翌月の余計な日付を完全に隠す（見えなくする） ▼▼ */
.flatpickr-day.prevMonthDay, 
.flatpickr-day.nextMonthDay {
    visibility: hidden !important;
}

/* 矢印（前の月/次の月へ）の調整 */
.flatpickr-months .flatpickr-prev-month, 
.flatpickr-months .flatpickr-next-month {
    fill: #666 !important;
    padding: 10px !important;
}
.flatpickr-months .flatpickr-prev-month:hover svg, 
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: #E60012 !important;
}
/* ==========================================================================
   22. ページトップへ戻るボタン (Custom Page Top Button)
   ========================================================================== */
/* FS標準のスタイル（文字隠し等）を強力にリセット・上書き */
.fs-p-footerPageTop__link.deff-page-top-link {
    width: auto !important; 
    height: auto !important; 
    text-indent: 0 !important; /* ← 画面外に飛ばされた文字を戻す */
    overflow: visible !important; /* ← 隠れた文字を表示する */
    white-space: nowrap !important;
    background-color: #333 !important; 
    border-radius: 0 !important; 
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 15px 25px !important; /* WordPress側と同じくらいのゆとりを持たせる */
    color: #fff !important;
    text-decoration: none !important;
    font-family: "Helvetica Neue", Arial, sans-serif !important;
    font-weight: bold !important;
    font-size: 13px !important;
    letter-spacing: 0.05em !important;
    box-sizing: border-box !important;
    transition: all 0.3s ease !important;
    line-height: 1 !important;
}

/* FS標準のアイコン（矢印）を非表示にする */
.fs-p-footerPageTop__link::before,
.fs-p-footerPageTop__link::after {
    content: none !important;
    display: none !important;
}

/* ホバー時の効果 */
.fs-p-footerPageTop__link.deff-page-top-link:hover {
    background-color: #000 !important;
    color: #fff !important;
}

/* 「^」アイコンの調整 */
.deff-page-top-icon {
    margin-left: 8px !important;
    font-family: sans-serif !important;
    font-size: 16px !important;
    position: relative !important;
    top: 2px !important;
}

/* スマホでの微調整 */
@media screen and (max-width: 768px) {
    .fs-p-footerPageTop__link.deff-page-top-link {
        padding: 12px 18px !important;
        font-size: 12px !important;
    }
}
/* ==========================================================================
   スマホ トップページのみ：余白調整
   ========================================================================== */

/* FEATURED PRODUCTS の上下クリアランスを広げる */
@media screen and (max-width: 768px) {
    body#fs_Top .deff-device-section {
        margin-top: 30px !important;
        margin-bottom: 30px !important;
        min-height: 0 !important; /* 過剰なmin-heightをリセット */
        padding-bottom: 10px !important;
    }
    body#fs_Top .deff-device-grid {
        min-height: 0 !important; /* こちらもリセット */
    }
}
@media screen and (max-width: 768px) {
    body#fs_Top .deff-device-section {
        margin-top: 30px !important;
        margin-bottom: 0 !important; /* 30px → 0 に変更 */
        min-height: 0 !important;
        padding-bottom: 10px !important;
    }
    body#fs_Top .deff-device-grid {
        min-height: 0 !important;
    }

    /* NEWS & JOURNAL 見出しの上余白を詰める */
    body#fs_Top .fs-l-pageMain .fs-p-heading--lv2,
    body#fs_Top .fs-l-pageMain h2 {
        margin-top: 20px !important;
    }
}



/* 10. スマホ商品詳細CLS対策（完全版） */
@media screen and (max-width: 768px) {
    html body .fs-l-productLayout, html body .fs-l-productLayout__item--1 { width: 100% !important; max-width: 100vw !important; padding: 0 !important; margin: 0 auto !important; display: block !important; box-sizing: border-box !important; }
    
    /* ▼▼▼ 追加：スライダー準備前は高さを固定し、2枚目以降を隠す ▼▼▼ */
    html body .fs-c-productCarouselMainImage__carousel:not(.slick-initialized) {
        display: block !important;
        width: 100% !important;
        aspect-ratio: 1 / 1 !important; /* 枠のサイズを正方形に固定 */
        overflow: hidden !important;
        position: relative !important;
    }
    html body .fs-c-productCarouselMainImage__carousel:not(.slick-initialized) > .fs-c-productCarouselMainImage__image {
        display: none !important; /* 一旦すべての画像を隠す */
    }
    html body .fs-c-productCarouselMainImage__carousel:not(.slick-initialized) > .fs-c-productCarouselMainImage__image:first-child {
        display: flex !important; /* 1枚目だけを復活させる */
        width: 100% !important;
        height: 100% !important;
    }
    /* ▲▲▲ 追加ここまで ▲▲▲ */

    html body .fs-c-productCarouselMainImage, html body .fs-c-productMainImage { width: 100% !important; margin: 0 auto 10px !important; height: auto !important; overflow: hidden !important; }
    html body .slick-list { padding: 0 !important; width: 100% !important; }
    html body .fs-c-productCarouselMainImage__image, html body .slick-slide, html body .fs-c-productMainImage__image { height: auto !important; text-align: center !important; background: #fff !important; aspect-ratio: 1 / 1 !important; display: flex !important; align-items: center; justify-content: center; }
    html body .fs-c-productCarouselMainImage__image img, html body .fs-c-productMainImage__image img, html body .slick-slide img { width: 100% !important; height: 100% !important; object-fit: contain !important; max-width: 100% !important; max-height: 400px !important; display: block !important; margin: 0 auto !important; pointer-events: auto !important; }
    html body .fs-c-productThumbnail { display: none !important; }
}