@charset "utf-8";
/* aspect-ratio
サブナビ、ピックアップ、トピック：4/5
新商品、ランキング、コンテンツ：1/1.1 */

/* ■reset cssここから */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td,
legend {
    margin: 0;
    padding: 0;
    list-style: none;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video,
input {
    border: 0 none;
    margin: 0;
    outline: 0 none;
    letter-spacing: 0.06rem;
}

img {
    vertical-align: bottom;
    width: 100%;
}

section {
    margin: 0;
}

/* ■reset cssここまで */


/* ■common cssここから */
* {
    margin: 0;
    padding: 0;
}

html {
    background: #ffffff;
}

body,
input {
    line-height: 1.5;
    font-size: clamp(11px, 3.1vw, 13px);
    color: #1a1a1a;
    font-family: 'Montserrat', 'Noto Sans JP', '游ゴシック体', YuGothic, sans-serif;
}

/* コンテンツ間 margin */
.category-nav_wrapper,
.pickup_wrapper,
.newitem_wrapper,
.sale_wrapper,
.coupon_wrapper,
.ranking_wrapper,
.topic_wrapper,
.contents_wrapper,
.news_wrapper,
.feature_wrapper,
.buzznow_wrapper,
.roomideas_wrapper {
    margin-bottom: 9rem;
}

.category-nav_php .swiper,
.buzznow_php .swiper,
.newitem_php .swiper,
.contents_php .swiper {
    padding-right: clamp(28px, 7.7vw, 32px);
}

/* 初期状態で高さを出す（CLS対策） */
.ranking_php {
    min-height: clamp(339px, 94.1vw, 390px);
}

.pickup_php {
    min-height: clamp(923px, 256.4vw, 1062px);
}


/* 各タイトルここから */
.section-title {
    font-weight: 500;
    letter-spacing: 0.2rem;
    font-size: clamp(23px, 6.4vw, 27px);
    margin: 0 clamp(14px, 3.8vw, 16px) clamp(14px, 3.8vw, 16px);
}

.section-title span {
    font-size: clamp(14px, 3.8vw, 16px);
    margin-left: 1rem;
}

.section-subttl {
    margin-bottom: clamp(14px, 3.8vw, 16px);
    font-size: clamp(13px, 3.6vw, 15px);
    color: #55A5A3;
    font-weight: 500;
    margin-right: clamp(14px, 3.8vw, 16px);
}

.section-subttl a,
.section-subttl a:active,
.section-subttl a:visited {
    color: #55A5A3;
}

#index_wrapper .flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* MOREボタンここから */
.contents-button_wrapper {
    width: fit-content;
    margin: 4rem auto 0;
    color: #fff;
}

#topic-btn {
    position: absolute;
    top: 25%;
    left: 50%;
    transform: translateX(-50%);
    color: #fff !important;
    z-index: 2;
}

.contents-button_inner {
    background: #1a1a1a;
    padding: 0.5rem 4rem;
    border-radius: 100px;
    font-size: clamp(11px, 3.1vw, 13px);
}

.contents-button_inner.topic-btn {
    background: #fff;
    color: #6b4b59;
    font-weight: 500;
    padding: 0.5rem 1rem 0.5rem 2rem;
    letter-spacing: 0.15rem;
    border-radius: 100px;
font-size: clamp(12px, 3.3vw, 14px);
}

/* ※topicリンクボタン */
.contents-button_inner.topic-btn::after {
    content: "";
    display: inline-block;
    top: 50%;
    right: 5px;
    border: 5px solid transparent;
    border-left: 7px solid #6b4b59; 
}

/* ※MOREリンクボタン */
.btn-link::after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
    transition: transform 0.3s ease;
}

.btn-link:active::after,
.btn-link:hover::after {
    border-top: 1px solid #1a1a1a;
    border-right: 1px solid #1a1a1a;
    transform: translateX(8px) rotate(45deg);
}

.btn-link,
.btn-link:visited {
    color: #fff;
    border: #1a1a1a 1px solid;
}

.btn-link:active,
.btn-toggle:active,
.btn-link:hover {
    background-color: #fff;
    color: #1a1a1a;
    border: #1a1a1a 1px solid;
}

.contents-button_inner.topic-btn:hover {
    background-color: #6b4b59;
    color: #fff;
}

.contents-button_inner.topic-btn:hover::after {
    border-left-color: #fff;
}


/* ※MOREトグルボタン */
.btn-toggle_wrap .contents-button_inner {
    display: inline-block;
}

/* ＋マーク */
.contents-button_wrapper .btn-toggle::after {
    content: "+";
    display: inline-block;
    width: 10px;
    margin-left: 0.5rem;
    vertical-align: middle;
    color: #fff;
}

.contents-button_wrapper .btn-toggle:active::after {
    color: #1a1a1a;
}

/* -マーク */
.contents-button_wrapper.is-open .btn-toggle::after {
    content: "-";
}

/* すべて見るリンクボタン　矢印 */
.contents-allitem::after,
.cate-nav-allitem::after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #55A5A3;
    border-right: 1px solid #55A5A3;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
    transition: transform 0.3s ease;
}

.contents-allitem:active::after,
.contents-allitem:hover::after,
.cate-nav-allitem:active::after,
.cate-nav-allitem:hover::after {
    border-top: 1px solid #55A5A3;
    border-right: 1px solid #55A5A3;
    transform: translateX(6px) rotate(45deg);
}

/* タップ時のハイライトを消す */
a {
    -webkit-tap-highlight-color: transparent;
}

/* 半透明にしてタップ感 */
a:has(img) {
    transition: opacity 0.2s ease;
}

/* a:has(img):active,
a:has(img):hover {
    opacity: 0.6;
} */

.topmv_wrapper a:has(img) {
    transition: none;
    opacity: 1;
}


/* タップアニメーションここから */
.tap-anime::before {
    content: '';
    position: absolute;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background-color: transparent;
    border: solid #fff;
    box-sizing: border-box;

    /* アニメーション設定（元のコードと同じ） */
    animation: expand-ring 1.45s ease-out infinite;

    /* ポインターイベントを無効化（クリックの邪魔をしないように） */
    pointer-events: none;
}

/* キーフレーム */
@keyframes expand-ring {
    0% {
        width: 0px;
        height: 0px;
        opacity: 1;
        border-width: 0px;
    }

    15% {
        opacity: 1;
        border-width: 4px;
    }

    30% {
        opacity: 1;
    }

    50% {
        width: 35px;
        height: 35px;
        opacity: 0;
        border-width: 0px;
    }

    /* 50% 〜 100% は「1テンポ休み」の時間（透明のまま待機） */
    100% {
        width: 35px;
        height: 35px;
        opacity: 0;
        border-width: 0px;
    }
}

/* セクションタイトル　キャッチ共通 */
span.section-catch {
    display: block;
    font-size: clamp(10px, 2.8vw, 12px);
    margin-left: 0;
}


/* ■top MVここから
【/smaf/php/topmv.php】 */
.topmv_wrapper {
    margin: 0 0 4rem 0;
}

.topmv_main {
    display: grid;
    gap: clamp(4px, 1vw, 4px);
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);

    grid-template-areas:
        "a a"
        "b c"
        "d c"
        "d e";
}

.topmv_card--a {
    grid-area: a;
    /* aspect-ratio: 390/653; */
    aspect-ratio: 390/550;
}

.topmv_card--b {
    grid-area: b;
    aspect-ratio: 193/226;
}

.topmv_card--c {
    grid-area: c;
    aspect-ratio: 193/291;
}

.topmv_card--d {
    grid-area: d;
    aspect-ratio: 193/226;
}

.topmv_card--e {
    grid-area: e;
    aspect-ratio: 193/161;
}

.topmv_card {
    position: relative;
    width: 100%;
}

.topmv_card a {
    display: block;
    height: 100%;
}


.topmv_card img {
    border-radius: 0;
    height: 100%;
    object-fit: cover;
}


.guerrilla-band {
    position: absolute;
    top: 65%;
    left: 0;
    width: 100%;
    color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: clamp(9px, 2.6vw, 11px) 0 clamp(14px, 3.8vw, 16px);
    box-sizing: border-box;
    z-index: 10;
    gap: clamp(14px, 3.8vw, 16px);
    font-family: 'Montserrat', 'Noto Sans JP', '游ゴシック体', YuGothic, sans-serif;
}

.limit-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    padding: 3px 0;
    line-height: 1.1;
    font-size: clamp(15px, 4.1vw, 17px);
    font-weight: 600;
    letter-spacing: -2px;
}

.limit-label span {
    letter-spacing: 0.2rem;
}


.countdown-area {
    display: flex;
    align-items: flex-start;
}


.time-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}

.time-box .num {
    font-size: clamp(52px, 14.4vw, 59px);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    font-family: 'Montserrat', 'Noto Sans JP', '游ゴシック体', YuGothic, sans-serif;
    letter-spacing: -2px;
}

.time-box .unit {
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 600;
    margin-top: 4px;
    letter-spacing: 1px;
}

.countdown-area .colon {
    font-size: clamp(42px, 11.5vw, 48px); /* 数字より少し小さく */
    margin: 0 8px;
    position: relative;
    top: 0; /* 縦位置の微調整 */
    font-weight: 500;
    line-height: 1;
}



/* ■important-news ナビここから
【/smaf/php/important-news.php】 */
.important-news_wrapper {
    margin-bottom: 4rem;
}

.important-news-list {
    margin: 0 clamp(14px, 3.8vw, 16px);
    margin-bottom: 1rem;
}

.important-news-item {
    font-weight: 500;
    font-size: clamp(12px, 3.3vw, 14px);
    background: #f5f5f5;
    padding: 1rem;
    margin-bottom: 1rem;
}

.important-news-item a {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.important-news-item a,
.important-news-item a:active {
    color: #1a1a1a;
}

.important-news-item p {
    width: 68%;
}

.important-news-item span {
    display: block;
    font-size: clamp(9px, 2.6vw, 11px);
    color: #929292;
}

.important-news-item a::after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #1a1a1a;
    border-right: 1px solid #1a1a1a;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
}


/* ■category ナビここから
【/smaf/php/category-nav.php】 */
.category-nav_wrapper {
    margin-right: 0;
}

.category-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    grid-auto-columns: clamp(97px, 26.9vw, 111px);
    overflow-x: auto;
    gap: clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
}

.category-list::-webkit-scrollbar {
    display: none;
}

.category-item.sale_coupon p.logo {
    background-color: #FAF8F6;
    width: clamp(97px, 26.9vw, 111px);
    aspect-ratio: 1 / 1.1;
    border-radius: clamp(5px, 1.3vw, 5px);
    font-size: clamp(55px, 15.4vw, 64px);
    font-weight: 400;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.category-item {
    scroll-snap-align: start;
    position: relative;
}

.category-item img {
    background: #FAF8F6;
    aspect-ratio: 1 / 1.1;
    object-fit: contain;
    margin-bottom: 1rem;
    border-radius: clamp(5px, 1.3vw, 5px);
}

.category-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
}

/* .category-item.text-only .text-label {
    display: flex;
    justify-content: center;
    align-items: center;
    height: clamp(115px, 32.1vw, 133px);
    background: #FAF8F6;
    border-radius: clamp(6px, 1.8vw, 7px);
    margin-bottom: 0.5rem;
    font-weight: 500;
    font-size: clamp(20px, 5.6vw, 23px);
    color: #1a1a1a;
} */


/* ■buzznow ここから
【/smaf/php/buzznow.php】 */
.buzznow_wrapper {
    margin-right: 0;
}

.buzznow-title_flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* グリッドにしたい場合は下記使う */
/* .buzznow-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
} */

.buzznow-list {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding: clamp(14px, 3.8vw, 16px);
    gap: clamp(12px, 3.3vw, 14px);
}

.buzznow-list::-webkit-scrollbar {
    display: none;
}

.buzznow-item {
    scroll-snap-align: start;
    position: relative;
    flex: 0 0 auto;
    width: 80%;
}

.buzznow-item img {
    margin-bottom: 1rem;
    aspect-ratio: 1/1;
}

.buzznow-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.buzznow-item .name {
    display: flex;
}

.buzznow-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.buzznow-item .price {
    margin-left: 0.5rem;
    display: block;
}


/* ■pickup ここから
【/smaf/php/pickup.php】 */
.pickup-list {
    display: block;
    margin: 0;
}

.pickup-list li.pickup-item {
    display: block;
    position: relative;
    margin-bottom: 0.5rem;
}

.pickup-list li.pickup-item:last-of-type {
    margin-bottom: 0;
}

.pickup-item a {
    display: block;
    text-align: left;
}

.pickup-item img {
    opacity: 1;
    border-radius: 0;
    margin-bottom: 0;
}

.pickup-item p {
    display: block;
    color: #fff;
    letter-spacing: 0.08rem;
    font-weight: 400;
}

.pickup-item p.price {
    margin-left: 0;
    font-size: clamp(14px, 3.8vw, 16px);
}

.pickup-item p.link {
    text-decoration: none;
    font-size: clamp(11px, 3.1vw, 13px);
}

/* pickup 各価格とリンク位置調整ここから */
.price-link_wrapper {
    position: absolute;
}

.pickup_wrapper .item_1st .price-link_wrapper {
    top: 25%;
    right: 6%;
}

/* pickup 黒文字 */
.pickup_wrapper .item_1st .price-link_wrapper p {
    color: #1a1a1a;
}

.pickup_wrapper .item_2nd .price-link_wrapper {
    bottom: 53%;
    right: 52%;
}

.pickup_wrapper .item_3rd .price-link_wrapper {
    top: 31%;
    right: 67%;
}

/* pickup 各価格とリンク位置調整ここまで */

/* pickup タップアニメ位置調整ここから */
.pickup_wrapper .item_1st::before {
    top: 60%;
    left: 50%;
}

.pickup_wrapper .item_2nd::before {
    top: 67%;
    left: 40%;
}

.pickup_wrapper .item_3rd::before {
    top: 55%;
    left: 50%;
}

/* pickup タップアニメ位置調整ここまで */



/* ■newitem ここから
【/php/sp-new.php】 */
.newitem_wrapper {
    margin-right: 0;
    position: relative;
}

.date-all_wrapper {
    width: fit-content;
    position: absolute;
    right: 0;
    top: -9%;
}

.newitem-date {
    margin-bottom: clamp(14px, 3.8vw, 16px);
    font-size: clamp(13px, 3.6vw, 15px);
    color: #55A5A3;
    font-weight: 500;
    margin-right: clamp(14px, 3.8vw, 16px);
}

.newitem-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(24px, 6.7vw, 28px) clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
}

.newitem-list::-webkit-scrollbar {
    display: none;
}

.newitem-item {
    scroll-snap-align: start;
    position: relative;

}

.newitem-item img {
    background: #FAF8F6;
    width: clamp(129px, 35.9vw, 149px);
    aspect-ratio: 1/1.1;
    object-fit: contain;
    margin-bottom: 1rem;
    border-radius: clamp(5px, 1.3vw, 5px);

}

.newitem-item::after {
    content: "NEW";
    position: absolute;
    top: 0.7rem;
    left: 0.7rem;
    display: grid;
    place-items: center;
    background: #fff;
    color: #1a1a1a;
    border-radius: clamp(5px, 1.3vw, 5px);
    font-weight: 500;
    font-size: clamp(9px, 2.6vw, 11px);
    padding: 2% 4%;
}

.newitem-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    width: clamp(129px, 35.9vw, 149px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.newitem-item .name {
    display: flex;
}

.newitem-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.newitem-item .price {
    margin-left: 0.5rem;
    display: block;
}


/* ■sale ここから
【/smaf/php/sale.php】 */
.sale_wrapper {
    margin-right: 0;
}

.sale-title_flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sale-title {
    font-weight: 500;
    letter-spacing: 0.1rem;
}

.sale-title span {
    display: block;
    font-size: clamp(10px, 2.8vw, 12px);
    margin-left: 0;
}

.sale-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(24px, 6.7vw, 28px) clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
}

.sale-list::-webkit-scrollbar {
    display: none;
}

.sale-item {
    scroll-snap-align: start;
    position: relative;

}

.sale-item img {
    background: #FAF8F6;
    width: clamp(129px, 35.9vw, 149px);
    aspect-ratio: 1/1.1;
    object-fit: contain;
    margin-bottom: 1rem;
    border-radius: clamp(5px, 1.3vw, 5px);

}

.sale-item::after {
    content: "SALE";
    position: absolute;
    top: 0.7rem;
    left: 0.7rem;
    display: grid;
    place-items: center;
    background: #55A5A3;
    color: #fff;
    border-radius: clamp(5px, 1.3vw, 5px);
    font-weight: 500;
    font-size: clamp(9px, 2.6vw, 11px);
    padding: 2% 4%;
}

.sale-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    width: clamp(129px, 35.9vw, 149px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sale-item .name {
    display: flex;
}

.sale-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.sale-item .price {
    margin-left: 0.5rem;
    display: block;
    color: #c62a2b;
}

/* saleMV */
.sale-list-mv {
    text-align: right;
    margin-bottom: clamp(24px, 6.7vw, 28px);
    position: relative;
}

.sale_php .tap-anime::before {
    top: 60%;
    left: 43%;
}

.sale-list-mv img {
    margin-bottom: 1rem;
}

.sale-list-mv .name_wrapper {
    margin-right: clamp(14px, 3.8vw, 16px);
}

.sale-list-mv .name_wrapper:after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #1a1a1a;
    border-right: 1px solid #1a1a1a;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
}

.sale-list-mv p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    display: inline-block;
    line-height: 1.8;
}

.sale-list-mv .type-name {
    display: block;

}

.sale-list-mv span.eng-name {
    margin-right: 0.5rem;
}

/* saleMV ここまで */

/* ★セール 開催時ここから★ */
.sale-item img {
    background: #fff;
}

/* ▼背景あり */
/* .sale_wrapper {
    background: #f9f9f8;
    padding: 4.5rem 0;
    margin-bottom: 4.5rem;
} */
/* ▲背景あり */

/* ▼背景無し */
.sale_wrapper {
    background: transparent;
    padding: 0;
    margin-bottom: 9rem;
}

/* ▲背景無し */

.sale-title {
    color: #1a1a1a;
}

.sale-title span {
    color: #55A5A3;
    letter-spacing: 0.2rem;
    font-size: clamp(14px, 3.8vw, 16px);
    line-height: 1;
}

.sale-item p {
    color: #1a1a1a;
}

.sale-item .price {
    color: #55A5A3;
}

.sale-item::after {
    background: #55A5A3;
}

.sale_wrapper .contents-button_inner {
    background: #1a1a1a;
}

.sale_wrapper .btn-link,
.btn-link:visited {
    color: #fff;
    border: #1a1a1a 1px solid;
}

.sale_wrapper .btn-link::after {
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
}

/* ★セール 開催時ここまで★ */


/* ■coupon(5%OFF) ここから
【/smaf/php/coupon.php】 */
.coupon_wrapper {
    margin-right: 0;
}

.coupon-title_flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* couponMV */
.coupon-list-mv {
    text-align: right;
    margin-bottom: clamp(24px, 6.7vw, 28px);
    position: relative;
}

.coupon-list-mv:before {
    position: absolute;
    content: none;
    border-radius: 50%;
    background-color: transparent;
    border: solid #fff;
    box-sizing: border-box;
    animation: expand-ring 1.45s ease-out infinite;
    pointer-events: none;

    top: 52%;
    left: 65%;
    transform: translate(-50%, -50%);
}

.coupon_php .tap-anime::before {
    top: 52%;
    left: 65%;
}

.coupon-list-mv img {
    margin-bottom: 1rem;
}

.coupon-list-mv .name_wrapper {
    margin-right: clamp(14px, 3.8vw, 16px);
}

.coupon-list-mv .name_wrapper:after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #1a1a1a;
    border-right: 1px solid #1a1a1a;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
}

.coupon-list-mv p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    display: inline-block;
    line-height: 1.8;
}

.copuon-list-mv .type-name {
    display: block;
}

.coupon-list-mv p br {
    display: none;
}

.coupon-list-mv span.eng-name {
    margin-right: 0.5rem;
}

/* couponMV ここまで */

.coupon-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
}

.coupon-list::-webkit-scrollbar {
    display: none;
}

.coupon-item {
    scroll-snap-align: start;
    position: relative;

}

.coupon-item img {
    background: #FAF8F6;
    width: clamp(129px, 35.9vw, 149px);
    aspect-ratio: 1/1.1;
    object-fit: contain;
    margin-bottom: 1rem;
    border-radius: clamp(5px, 1.3vw, 5px);

}

.coupon-item::after,
.coupon-list-mv::after {
    content: var(--couponBadge, "5%OFF");
    position: absolute;
    top: 0.7rem;
    left: 0.7rem;
    display: grid;
    place-items: center;
    background: #55A5A3;
    color: #fff;
    border-radius: clamp(5px, 1.3vw, 5px);
    font-weight: 500;
    font-size: clamp(9px, 2.6vw, 11px);
    padding: 0.3rem 0.7rem;
}

.coupon-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    width: clamp(129px, 35.9vw, 149px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.coupon-item .name {
    display: flex;
}

.coupon-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.coupon-item .price {
    margin-left: 0.5rem;
    display: block;
}


/* ■ranking ここから
【/smaf/php/ranking.php】 */


#reco16>div::first-line {
    font-size: 0;
}

.ranking_wrapper {
    margin-right: 0;
}

.ranking_wrapper .list-tab {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    margin-bottom: 3rem;
    scrollbar-width: none;
    padding-left: clamp(14px, 3.8vw, 16px);
}

.ranking_wrapper .list-tab li {
    padding: 0 1rem 0.5rem;
    border-bottom: 3px solid #D9D9D9;
}

.ranking_wrapper .list-tab li.active {
    border-bottom: 3px solid #1a1a1a;
}

.ranking_wrapper .list-tab a {
    color: #1a1a1a;
    font-size: clamp(12px, 3.3vw, 14px);
    font-weight: 500;
    font-family: 'Montserrat', 'Noto Sans JP', '游ゴシック体', YuGothic, sans-serif;
}

.ranking_wrapper .review-count {
    display: none;
}

.ranking_wrapper .name {
    display: none;
}

.ranking_wrapper .recommend_item {
    display: flex;
    overflow-x: auto;
    gap: clamp(11px, 3.1vw, 13px);
    scrollbar-width: none;
    counter-reset: num;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}


.ranking_wrapper .recommend_item img {
    width: clamp(115px, 32.1vw, 133px);
    border-radius: clamp(5px, 1.3vw, 5px);
    aspect-ratio: 1/1.1;
    object-fit: cover;
    object-position: 25%;
}

.ranking_wrapper .historyItem {
    position: relative;
    counter-increment: num;
    flex: 0 0 auto;
}

.ranking_wrapper .historyItem:first-child {
    padding-left: clamp(14px, 3.8vw, 16px);
}

.ranking_wrapper .reommend_item::-webkit-scrollbar,
.ranking_wrapper .list-tab::-webkit-scrollbar {
    display: none;
}

.recommend_item dt {
    margin-bottom: 0.7rem;
    position: relative;
}

#index_wrapper .recommend_item dt:after {
    content: counter(num);
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    width: 2.8rem;
    height: 2rem;
    display: grid;
    place-items: center;
    background: #fff;
    color: #1a1a1a;
    border-radius: clamp(3px, 0.8vw, 3px);
    font-weight: 500;
    font-size: clamp(12px, 3.3vw, 14px);
}

.recommend_item dd {
    font-size: clamp(12px, 3.3vw, 14px);
    color: #1a1a1a;
    font-weight: 500;
}

/* PCリニュ　swiper関連の修正 */



/* ■topic ここから
【/smaf/php/topic.php】 */
.topic-mv {
    position: relative;
    overflow: hidden;
}

.topic-mv img {
    object-fit: cover;
    /* aspect-ratio: 4 / 3;
    transform: scale(1.3) translateY(10px); */
}

.topic-mv .topic-title {
    position: absolute;
    top: 3%;
    left: 50%;
    transform: translatex(-50%);
    width: 100%;
    margin: 0;
    text-align: center;
    font-size: 28px;
    line-height: 1.5;
    font-weight: 600;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.topic-mv .topic-title span {
    display: block;
font-size: clamp(10px, 2.8vw, 12px);
    margin: 0;
    letter-spacing: 0.2rem;
    font-weight: 500;
}

/* --- 白抜きカルーセル --- */
/* 円形フレーム */
.topic-right {
    margin: -13% auto 0;
    width: 100%;
    position: relative;
}


.topic-item .circle-frame {
    border-radius: 50%;
    aspect-ratio: 1/1;
    position: relative;
    background: #faf8f6;
    margin: 0 auto 1rem;
    width: 75%;
}

.topic-item .circle-frame img {
    border-radius: 50%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    width: 75%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.topic-item .circle-frame::after {
    content: "";
    display: block;
    position: absolute;
    top: 51%;
    left: 52%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    box-shadow: inset 0 -8px 10px 13px #faf8f5;
    pointer-events: none;
    z-index: 2;
    width: 83%;
    height: 83%;
}

/* テキスト情報 */
.topic-info {
    text-align: left;
    width: 75%;
    margin: 0 auto;
}

.topic-info .type-name {
    font-size: clamp(12px, 3.3vw, 14px);
    color: #1a1a1a;
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

.topic-info .name {
    font-size: clamp(12px, 3.3vw, 14px);
    display: flex;
    justify-content: space-between;
}

.topic-info .price {
    font-size: clamp(12px, 3.3vw, 14px);
    font-weight: 500;
}

.topic-info .price:after {
    content: "";
    display: inline-block;
    width: clamp(4px, 1vw, 4px);
    height: clamp(4px, 1vw, 4px);
    border-top: 1px solid #1a1a1a;
    border-right: 1px solid #1a1a1a;
    transform: rotate(45deg);
    margin-left: 0.5rem;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
    right: 0.3rem;
}


/* ▼swiper矢印 */
/* ▼topic以外の矢印削除 */
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
    content: none;
}

.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
    content: none;
}

.topic_wrapper .swiper-button-next:after,
.topic_wrapper .swiper-rtl .swiper-button-prev:after {
    content: 'next';
}

.topic_wrapper .swiper-button-prev:after,
.topic_wrapper .swiper-rtl .swiper-button-next:after {
    content: 'prev';
}

/* ▲topic以外の矢印削除 */

/* ▼矢印見た目スタイル */
.topic_wrapper .arrow-prev,
.topic_wrapper .arrow-next {
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.55);
    border: 1px solid #1a1a1a;
    border-radius: 50%;
    z-index: 10;
    transition: opacity 0.2s ease;
}

.topic_wrapper .arrow-prev::after,
.topic_wrapper .arrow-next::after {
    font-size: 16px;
    color: #1a1a1a;
    font-weight: normal;
}

/* ▲矢印見た目スタイル */
/* ▲swiper矢印 */

/* ▼topic ページ送り位置調整（画面端に配置） */
.topic_wrapper .arrow-prev {
    left: 7%;
    top: 48%;
    transform: translateY(-50%);
}

.topic_wrapper .arrow-next {
    right: 7%;
    top: 48%;
    transform: translateY(-50%);
}

/* ▲topic ページ送り位置調整（画面端に配置） */



/* ■contents ここから
【/smaf/php/contents.php】 */
.contents_wrapper {
    margin-right: 0;
}

.contents-title {
    font-size: clamp(18px, 4.9vw, 20px);
    font-family: 'Montserrat', 'Zen Kaku Gothic New', 'Noto Sans JP', '游ゴシック体', YuGothic, sans-serif;
    font-weight: 600;
    letter-spacing: 0.1rem;
}

.contents-title span {
    display: block;
    font-size: clamp(10px, 2.8vw, 12px);
    margin-left: 0;
}

.contents-title .contents-title-off {
font-size: clamp(17px, 4.6vw, 19px);
    color: #55A5A3;
    line-height: 1;
    letter-spacing: 0.1rem;
}

.contents-title .contents-title-note {
    color: #929292;
}

.contents-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(24px, 6.7vw, 28px) clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 8rem;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
}

.contents-list::-webkit-scrollbar {
    display: none;
}

.contents-item {
    scroll-snap-align: start;
}

.contents-item img {
    background: #FAF8F6;
    width: clamp(129px, 35.9vw, 149px);
    /* aspect-ratio: 1/1.1; */
    object-fit: cover;
    margin-bottom: 1rem;
    border-radius: clamp(5px, 1.3vw, 5px);
}

.contents-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    font-weight: 500;
    width: clamp(129px, 35.9vw, 149px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contents-item .name {
    display: flex;
}

.contents-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.contents-item .price {
    margin-left: 0.5rem;
    display: block;
}

/* ▼seasonal-contents固有 */
.seasonal .contents-list {
    margin-bottom: 0;
}

/* ▲seasonal-contents固有 */



/* ■feature ここから
【/smaf/php/feature.php】 */
.feature_wrapper {
    margin-right: 0;
}

.feature-title_flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.feature-title span {
    display: block;
    font-size: clamp(10px, 2.8vw, 12px);
    margin-left: 0;
}

/* グリッドにしたい場合は下記使う */
/* .feature-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    overflow-x: auto;
    gap: clamp(12px, 3.3vw, 14px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding-left: clamp(14px, 3.8vw, 16px);
} */

.feature-list {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
    scroll-padding: clamp(14px, 3.8vw, 16px);
    gap: clamp(12px, 3.3vw, 14px);
}

.feature-list::-webkit-scrollbar {
    display: none;
}

.feature-item {
    scroll-snap-align: start;
    position: relative;
    flex: 0 0 auto;
    width: 80%;
}

.feature-item:nth-child(-n+1) {
    height: 0;
    width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: none;
    opacity: 0;
    pointer-events: none;
}

.feature-item img {
    aspect-ratio: 748/323;
    object-fit: cover;
    margin-bottom: 1rem;
}

.feature-item p {
    color: #1a1a1a;
    font-size: clamp(11px, 3.1vw, 13px);
    line-height: 1.8;
}

.feature-item .name {
    display: flex;
}

.feature-item .eng-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.feature-item .price {
    margin-left: 0.5rem;
    display: block;
}

.feature-item.coupon_list_end:nth-of-type(n+5) {
    display: block !important;
}


/* ■news ここから
【/smaf/php/news.php】 */
.news-list {
    margin: 0 clamp(14px, 3.8vw, 16px);
}

.news-item {
    border-left: 1px solid #1a1a1a;
    margin-bottom: 1rem;
    font-weight: 500;
    font-size: clamp(12px, 3.3vw, 14px);
}

.news-item a,
.news-item a:active {
    color: #1a1a1a;
}

.news-item p {
    margin-left: 1.5rem;
}

.news-item p span.date {
    display: block;
    font-size: clamp(9px, 2.6vw, 11px);
    color: #929292;
}

/* ■roomideas ここから
【/smaf/php/roomideas.php】 */
.roomideas_wrapper {
    padding-right: clamp(14px, 3.8vw, 16px);
    padding-left: clamp(14px, 3.8vw, 16px);
}

.roomideas-title span {
    display: block;
    font-size: clamp(10px, 2.8vw, 12px);
    margin-left: 0;
}

.roomideas-txt {
    font-size: clamp(10px, 2.8vw, 12px);
    margin-top: clamp(9px, 2.6vw, 11px);
    line-height: 1.8;
}

.roomideas_wrapper .yotpo-pictures-gallery,
.yotpo-pictures-widget {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.roomideas_wrapper .yotpo-pictures-gallery .yotpo-pictures-gallery-header-wrapper,
.yotpo-pictures-widget .yotpo-pictures-gallery-header-wrapper {
    margin-bottom: 0 !important;
}

.roomideas_wrapper .btn-link::before {
    content: "";
    position: relative;
    bottom: 0.1rem;
    width: clamp(15px, 4.1vw, 17px);
    height: clamp(15px, 4.1vw, 17px);
    background: url("../../images/insta.png") no-repeat;
    background-size: 100%;
    vertical-align: middle;
    display: inline-block;
    margin-right: clamp(5px, 1.3vw, 5px);
}

.roomideas_wrapper .btn-link:hover::before {
    content: "";
    position: relative;
    bottom: 0.1rem;
    width: clamp(15px, 4.1vw, 17px);
    height: clamp(15px, 4.1vw, 17px);
    margin-right: clamp(5px, 1.3vw, 5px);
    background: url("../../images/insta_black.png") no-repeat;
    background-size: 100%;
    vertical-align: middle;
    display: inline-block;
}

.roomideas_wrapper .yotpo-display-wrapper {
    display: block !important;
}




/* ◇共通レイアウト用スタイル ここから */
/* リスト一行 ここから */
/* .one-row li:nth-child(1) {
    padding-left: clamp(14px, 3.8vw, 16px);
} */

.one-row li:nth-child(2) {
    padding-left: 0;
}

#index_wrapper .one-row {
    grid-auto-flow: column;
    grid-template-rows: none;
    grid-auto-columns: max-content;
}

/* リスト一行 ここまで */





/*-----------------------------
 トップカテゴリーエリア
-----------------------------*/
#product_list #cate-sp {
    border-bottom: solid 1px #ccc;
}

ul.cate-list {
    margin: 0;
    padding: 2vw 2% 0;
    box-sizing: border-box;
}

ul.cate-list li a {
    float: left;
    width: 23%;
    text-align: center;
    display: block;
    margin: 0 1% 10px;
    color: #555 !important;
    font-weight: normal !important;
}

ul.cate-list li img {
    width: 80%;
    height: 80%;
    height: auto;
    margin: 0 0 8% 0;
}

ul.cate-list li p {
    font-size: 1.0rem;
    margin: 0 0 15%;
    color: #222;
    font-family: 'noto sans JP', 'san-serif';
    font-weight: 500;

}

ul.cate-list li:nth-of-type(4n+1) {
    clear: both;
}

/*ここから追加*/
.accordionNav p.accordionNavBtn {
    display: block;
    margin: 1vw auto 2vw;
    padding: 0;
    width: 60vw;
    position: relative;
    height: 8vw;
    border: 2px solid #222;
    text-align: center;
    color: #222;
    font-family: 'noto sans JP', 'san-serif';
}

.accordionNav p.accordionNavBtn span {
    display: block;
    text-align: center;
    font-size: 3.0vw;
    font-weight: 500;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
}

.accordionNav p.accordionNavBtn span:after {
    content: '';
    position: absolute;
    top: 44%;
    right: -50%;
    display: block;
    width: 6px;
    height: 6px;
    margin-top: -5px;
    border-top: 2px solid #222;
    border-right: 2px solid #222;
    transform: rotate(135deg);
}

.accordionNav p.accordionNavBtn.open span {
    border-bottom: none;
}

.accordionNav p.accordionNavBtn.open span:after {
    transform: rotate(-45deg);
    /* 上向き矢印 */
    margin-top: 0px;
    /* サブカテあり：下向き矢印（サブリストが開いている時） */
}

.accordionNav ul.cate-list {
    display: none;
}

.sectTtl {
    width: 100%;
    height: auto;
    margin: 10vw 0 4vw;
    text-align: center;
    line-height: 0.7em;
    color: #222;
    font-size: 4.8vw;
    font-weight: 600;
    font-family: 'Noto Sans JP', sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.1em;
}

.cate-ttl.sectTtl {
    margin-top: 0.5vw;
}

.sectTtl>span {
    font-size: 1.2rem;
    letter-spacing: 0.05rem;
    font-weight: 600;
    font-family: noto, sans-serif;
    margin-top: 1rem;
    display: block;
}