/* ************************************************
*  all
* ************************************************ */
* {
    margin: 0px;
    padding: 0px;
}

:root {
    --main-color: #684123;
    --sub-color: #F9F0E4;
    /* --accent-color:#F9F0E4; */
    --common-margin: clamp(100px, -1.705rem + 14.77vw, 19.375rem);

}

html {
    overflow-y: scroll;
    height: 100%;
}

body {
    /* font-family: "fot-tsukuardgothic-std", sans-serif;
     */
    font-family: "Hannari", "Shippori Mincho", serif;
    color: var(--main-color);
}

/* 
p {
    font-size: 18px;
} */

a {
    outline: none;
    color: var(--main-color);
    transition: all 0.3s;
}

a:visited,
:link {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
    opacity: 0.8;

}

hr {

    margin: 10px 0;
    border: 0;
}

img {
    border: none;
    vertical-align: middle;
    max-width: 100%;
}


/* ----- ローディング画面　 ----- */
html.wf-loading body {
    visibility: hidden;
}

#page-loader {
    position: fixed;
    inset: 0;
    display: flex;
    place-items: center;
    background: #fff;
    /* z-index: 9999; */
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease, visibility .3s ease;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10%;
}

#page-loader .spinner {
    width: 56px;
    height: 56px;
    border: 4px solid rgba(0, 0, 0, .1);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

#page-loader .loading-text {
    margin-top: 12px;
    font-size: 12px;
    letter-spacing: .08em;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* フォントが読み込めたらフェードアウト */
html.wf-active #page-loader,
html.wf-inactive #page-loader {
    opacity: 0;
    visibility: hidden;
}

html.wf-loading #container {
    visibility: hidden;
}

/* 動きを減らしたい人向け（任意） */
@media (prefers-reduced-motion: reduce) {
    #page-loader {
        transition: none;
    }

    #page-loader .spinner {
        animation: none;
    }
}

/* ************************************************
*  clearfix
* ************************************************ */

.clearfix {
    zoom: 1;
}

.side .clearfix {
    display: flex;
    padding: 20px 0;
}

/* 
main .clearfix {
    display: flex;
} */



/* ************************************************
*  layout
* ************************************************ */

/*ページ全体の幅、レイアウトをセンタリング*/
#container {
    margin: 0px auto;
    max-width: 1500px;
    padding-right: 15px;
    padding-left: 15px;

}

.grid-container {
    display: grid;
    grid-template-columns: 400px auto;

    @media (max-width: 996px) {
        grid-template-columns: 1fr;
    }
}

.grid_right_item {
    padding: 0px 30px 30px 30px;
    grid-column: 2 / 3;
    position: relative;

    @media (max-width: 996px) {
        padding: 0;
    }
}

#top_line {
    margin: 0 0 15px;
    width: 100%;
    height: 3px;
    background: transparent url("https://img.shop-pro.jp/tmpl_img/67/border_bottom.png") repeat-x left top;
}

/*ヘッダー*/

#header {
    position: sticky;
    top: 0;
    z-index: 5;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    padding: 15px 0 50px 0;
    background-color: #ffffffde;
    /* @media (max-width: 996px) {
        grid-template-columns: 1fr;

} */
}

/* ハンバーガーアイコン */
.hamburger {
    display: none;
    width: 30px;
    height: 22px;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
}

.hamburger span {
    height: 4px;
    background: #684123;
    border-radius: 2px;
    width: 100%;
}

/*サイド*/
#side {
    position: fixed;
    background-color: #fff;
    /* left: -10px; */
    padding: 10px 25px;
    box-shadow: 4px 6px 10px 0px rgb(190 162 110 / 25%);
    border-radius: 20px;


}

/* スマホ用：#sideを画面外に隠す */
@media (max-width: 996px) {
    .hamburger {
        display: flex;
    }

    #side {
        display: block;
        /* override display: none; */
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        z-index: 1000;
        left: -10px;
    }

    #side.active {
        transform: translateX(0);
    }

    /* #container や本文にオーバーレイ */
    .overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: rgba(0, 0, 0, 0.4);
        z-index: 999;
    }
}



/* 虫眼鏡ボタン */
.search-icon-button {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    margin: 10px 0;
}



/*スライダー*/
.slider {
    margin: 0 0 70px;
}

/* ************************************************
*  header
* ************************************************ */

.header_link {
    display: flex;
    /* flex-direction: column; */
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;

    & ul {
        display: flex;
        align-items: center;
    }

    & li {

        margin-left: 20px;
        list-style-type: none;
        line-height: 16px;
    }

    & i {
        display: block;

        margin-right: 5px;
        width: 16px;
        height: 16px;
    }

    & a {
        display: flex;
    }
}

#header .header_link ul #header .header_link ul li #header .header_link ul li a {
    text-decoration: none;
}


/* #header .header_link ul li.view_cart {} */

#header .header_link ul li.view_cart i.cart {
    background: url(https://img.shop-pro.jp/tmpl_img/67/icons16.png) no-repeat 0px 0px;
}

#header .header_link ul li.view_cart span.count {
    margin-left: 5px;
    padding: 5px 10px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    background: #ff3355;
    color: #fff;
    font-weight: bolder;
}

#header .header_delivery_price {
    margin: 0 0 17px;
    padding: .5em 1em .3em;
    border: solid 1px #aaa;
    list-style: none;
    line-height: 1.5;
}

.logo {
    width: 260px;
    margin-bottom: 40px;

    @media (max-width: 600px) {
        width: 150px;
    }
}

#header .search {

    /* テキストボックスのスタイル */
    input[type="text"] {
        width: 200px;
        padding: 9px 16px;
        border: 1px solid var(--main-color);
        border-radius: 4px;
        background-color: #edecea;
    }

    /* 検索ボタンのスタイル */
    input[type="submit"] {
        padding: 8px 16px;
        background-color: #777576;
        color: white;
        border: none;
        border-radius: 4px;
        cursor: pointer;
    }

    /* ボタンにホバー時のエフェクト */
    input[type="submit"]:hover {
        background-color: #7c7161;
    }
}

.header_search {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 15px;

    @media (max-width: 996px) {
        justify-content: normal;
        position: fixed;
        left: 0;
        width: 99%;
        background: #fff;
        padding: 15px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        transform: translateY(-120%);
        opacity: 0;
        transition: all 0.3s ease;
        z-index: 100;
        box-sizing: border-box;
        justify-content: space-around;

    }

    @media (max-width: 600px) {
        justify-content: normal;
    }


}

@media (max-width: 996px) {

    .search-icon-button {
        display: inline-block;
    }

    .header_search.active {
        transform: translateY(0);
        opacity: 1;
        top: 80px;
    }

    .header_search .search input,
    .header_search .search select {
        width: 100%;
        margin-bottom: 10px;
        padding: 8px;
        font-size: 16px;
    }

    .header_search ul {
        display: flex;
        justify-content: center;
        gap: 10px;
    }


}

.header_category {
    @media (max-width: 996px) {
        display: flex;
        gap: 15px;
    }

    & ul {
        display: flex;
        justify-content: space-around;
        list-style-type: none;
        font-size: 21px;
        line-height: 1;
    }

    & a {
        /* border-right: 1px solid; */
        position: relative;
        padding: 0 15px;

        @media (max-width: 600px) {
            padding: 0 5px;
        }

        &:after {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            right: 0;
            width: 2px;
            background: repeating-linear-gradient(to bottom, var(--sub-color), var(--sub-color) 5px, transparent 2px, transparent 9px);
        }
    }

    & li:first-child a {
        padding: 0 15px 0 0;

    }

    & li:last-child a {
        border-right: none;

    }


}

/* ************************************************
*  footer
* ************************************************ */


#footer {
    padding: 30px 0 80px 0;
    text-align: center;
    background-color: var(--main-color);
    color: var(--sub-color);

    @media (max-width: 767px) {
        padding: 30px 0 0 0;
    }
}

#footer #container {
    @media (max-width: 767px) {
        display: contents;
    }
}

.footer_container {
    margin-left: 330px;

    @media (max-width: 960px) {
        margin-right: auto;
        margin-left: auto;
    }
}

/* SNSがある場合 */
.footer_sns {
    display: flex;
    justify-content: center;
    list-style: none;
    margin: 0 auto 20px auto;
}

.footer_sns li {
    margin-right: 10px;
}

.footer_sns li:last-child {
    margin-right: 0;
}

.footer_sns img {
    width: 20px;
}

.copyright {

    padding: 1em 0;
    text-align: center;
    font-size: 76.923%;
}

.footer_box {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr;

    @media (max-width: 1300px) {
        grid-template-columns: 1fr;
        justify-items: center;
    }
}

.footer_logo {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(1.25rem, 1.709rem + 3.01vw, 6.125rem);

    & img {
        width: 200px;
    }
}

.footer_icon_s {
    display: flex;
    flex-direction: column;
    align-items: flex-end;


    @media (max-width: 1300px) {
        align-items: center;
        padding: 0 15px 30px 15px;
    }

    & a {
        color: var(--sub-color);
        display: flex;
        align-items: center;
        gap: 10px;
    }
}

.footer_menu {
    display: grid;
    grid-template-columns: 230px 230px;
    list-style-type: none;
    gap: 10px;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        width: 100%;
    }

}

.footer_line {

    @media (max-width: 1300px) {
        display: none;
    }

    & img {
        height: 100%;
    }
}

.footer_contact {
    border: 1px solid;
    width: 470px;
    display: flex;
    justify-content: center;
    gap: 15px;
    margin: 20px 0 20px 0;
    padding: 10px 0;

    @media (max-width: 600px) {
        width: 100%;
    }
}



.footer_info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;

    @media (max-width: 1300px) {
        align-items: normal;
        text-align: center;
    }

    @media (max-width: 600px) {
        background-color: var(--sub-color);
        color: var(--main-color);
        padding: 40px 15px 40px 15px;
        width: 100%;
        box-sizing: border-box;
    }

    & h3 {
        font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", serif;
        margin: 20px 0;
        font-size: 30px;
    }

    & p {
        font-size: clamp(15px, calc(1vw + 0rem), 18px);
    }
}

/* ************************************************
*  main
* ************************************************ */


#main .box {
    overflow: hidden;

}


.header_block h3 {
    padding: 0;
    border: none;
    text-align: left;
}

.header_block p {
    margin-top: 4px;
    color: #999;
}

#main .header_block {
    margin: 0 0 30px;
    display: flex;
}

#main .header_block .icon {
    padding: 0;
}

/* ************************************************
*  item_box
* ************************************************ */

.item_box {
    width: 100%;
    display: flex;
    flex-direction: column;


    & img {
        width: 100%;
        box-shadow: 4px 6px 10px 0px rgb(190 162 110 / 25%);
        margin-bottom: 20px;
    }
}

/* .item_box .item_image {
    margin: 0px;
} */

.item_box .item_image img.item {
    max-width: 100%;
    border: solid 1px #ddd;
}

.item_box .item_detail {
    margin: 15px 0 0;
    padding-left: 10px;
}

.item_box .item_detail p {
    overflow: hidden;
    width: 100%;
    text-overflow: ellipsis;
    /* white-space: nowrap; */
    -o-text-overflow: ellipsis;
}

.item_box .item_detail p.item_name {
    margin-bottom: 5px;
    font-size: 15px;
    color: var(--main-color);
}

.item_box .item_detail p.item_description {
    text-overflow: initial;
    overflow: visible;
    white-space: normal;
}

p.item_regular_price,
p.item_price,
p.item_discount {
    margin-bottom: 10px;
    font-family: 'Lucida Grande',
        'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',
        Meiryo, メイリオ, sans-serif;
}

.box_last {
    margin-right: 0;
}

.box_small .item_box {
    display: inline-block;
    margin: 0 33px 45px 0;
    width: 113px;
    vertical-align: top;
    text-align: left;
    zoom: 1;

    @media (max-width: 600px) {
        margin: 0 10px 15px 0;
        width: 45%;
    }
}

.box_small p {
    overflow: hidden;
    width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
    -o-text-overflow: ellipsis;
}

.box_small .item_box .item_detail a {
    margin-bottom: 5px;
    font-size: 13px;
}

.box_small .box_last {
    margin-right: 0;
}

.stock_error {
    display: none;
    padding: 10px 0;
    color: #DA5858;
    font-weight: bold;
}

.svg-net_ring {
    width: 30px;
    height: 30px;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 6.95px;
    stroke: currentColor;
}

/* ************************************************
*  Top_Page
* ************************************************ */

#main #box_info p {
    line-height: 20px;
}

#main #box_free {
    padding: 20px;
    border: #aaa solid 1px;
}

#main #box_free p {
    line-height: 20px;
}

#main #box_news .header_block {
    margin-bottom: 0;
}

#main #box_news ul {
    margin-left: 0;
    list-style: none;
}

#main #box_news ul li {
    border-top: #ddd solid 1px;
}

#main #box_news ul li:first-child {
    border-top: none;
}

#main #box_news ul li div {
    padding: 1.6em 0 1.4em;
}

#main #box_news p.news_date {

    margin-right: 20px;
    width: 70px;
}



/* ************************************************
*  cloud_zoom
* ************************************************ */
/* This is the moving lens square underneath the mouse pointer. */
.cloud-zoom-lens {
    margin: -4px;
    /* Set this to minus the border thickness. */
    border: 4px solid #888;
    background-color: #fff;
    cursor: move;
}

/* This is for the title text. */
.cloud-zoom-title {
    position: absolute !important;
    top: 0px;
    padding: 3px;
    width: 100%;
    background-color: #000;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 10px;
    font-family: Arial, Helvetica, sans-serif;
}

/* This is the zoom window. */
.cloud-zoom-big {
    overflow: hidden;
    border: 4px solid #c86464;
}

/* This is the loading message. */
.cloud-zoom-loading {
    padding: 3px;
    border: 1px solid #000;
    background: #222;
    color: white;
}

/* Feature section in ZoomEngine page */
* html .zoom-section {
    display: inline;

}

.zoom-small-image {
    margin-top: 4px;
}

.zoom-small-image #wrap {
    position: relative;
    top: 0px;
    z-index: 1;
}

.cloud-zoom {
    margin-bottom: 20px;
}

.zoom-small-image .mousetrap {
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 999;
    width: 100%;
}

/* Feature descriptions in ZoomEngine page */
.zoom-desc {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% - 15px);
    gap: 15px;
    align-items: center;
}

a.cloud-zoom-gallery {
    display: block;
    width: 70px;
    cursor: pointer;
}

.zoom-tiny-image {
    padding: 3px;
    width: 100%;
    height: auto;
    border: 1px solid var(--main-color);
    background: #efefef;
}

.zoom-tiny-image.selected {
    border: 1px solid #c86464;
    background: #c86464;
}

.zoom-tiny-image:hover {
    border: 1px solid #c86464;
}

a.gallery_last {
    margin-right: 0;
}

/* ************************************************
*  product_option_window
* ************************************************ */

#product_option {
    margin: 20px;
    padding: 20px;
    background: #fff;
}

#product_option h2 {
    margin-bottom: 20px;
}

table.table_option {
    margin-bottom: 20px;
    border-top: 1px solid var(--main-color);
    border-right: 1px solid var(--main-color);
    background: #fff;
}

table.table_option th {
    padding: 10px;
    border-bottom: 1px solid var(--main-color);
    border-left: 1px solid var(--main-color);
    background: #f5f5f5;
}

table.table_option td {
    padding: 10px;
    border-bottom: 1px solid var(--main-color);
    border-left: 1px solid var(--main-color);
}



/* ************************************************
*  search_page
* ************************************************ */

.search_result {
    margin: 20px 0;
    padding: 10px 0;
    background: #ddd;
    text-align: center;
}

.none {
    margin: 50px 0;
    text-align: center;
}

/* ************************************************
*  policy
* ************************************************ */

#policy {
    line-height: 1.8;
    font-size: 14px;
}

#policy h2 {
    margin-bottom: 30px;
}

.policy_box,
#policy_lead {
    margin-bottom: 30px;
}

.sk_box {
    margin-bottom: 70px;
}

.sk_box h3 {
    margin-bottom: 1em;
    font-size: 16px;
}

.sk_box table {
    width: 100%;
    border-top: 1px solid var(--main-color);
    border-collapse: separate;
    empty-cells: show;
}

.sk_box th {
    padding: 20px 40px 20px 0;
    width: 170px;
    text-align: left;
}

.sk_box th img.poricy_img {
    margin-bottom: 5px;
}

.sk_box td {
    padding: 20px 0;
    zoom: 1;
    content: ' ';
}

.sk_box th,
.sk_box td {
    vertical-align: top;
    line-height: 1.8;
    position: relative;
    border-bottom: solid 1px var(--main-color);
}

#payment_method {
    margin-top: 40px;
}

#payment_method table.table {
    width: 100%;
}

#payment_method table.table th {
    width: 200px;
    text-align: center;
}

#shipping_method {
    margin-top: 40px;
}

#shipping_method table.table {
    width: 100%;
}

#shipping_method table.table th {
    width: 200px;
    text-align: center;
}

/* ************************************************
*  side
* ************************************************ */

#side .box {
    position: relative;
    margin-bottom: 10px;

    &:not(:last-child)::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: repeating-linear-gradient(to right,
                var(--sub-color),
                var(--sub-color) 10px,
                transparent 10px,
                transparent 20px);
    }

    & ul {
        list-style: none;
    }

    & li {
        padding-bottom: 23px;
        font-size: clamp(16px, calc(1vw + 1rem), 22px);
    }

    & a {
        display: flex;
        align-items: center;
        gap: 10px;
    }
}

#qr_code {
    padding: 20px 0;
}


#box_sellers li {
    position: relative;
    display: block;
    width: 100%;
}

#box_sellers .seller_image {

    margin: 0 10px 0 0;
    width: 80px;
    border: solid #ddd 1px;
}

.main_ranking {
    margin-bottom: var(--common-margin);
}

.hot_selling {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 30%));
    justify-items: center;
    justify-content: space-around;
    margin-bottom: 50px;
    row-gap: 5%;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

.rank-1 use {
    --svg-color_child-01: #C0B080;
}

.rank-2 use {
    --svg-color_child-01: #AFAA9E;
}

.rank-3 use {
    --svg-color_child-01: #B79E8A;
}



.seller_rank {
    margin: 0 0 30px;
    text-align: center;
    position: relative;
    font-size: 25px;
    color: #fff;
}

.icon-custom {
    width: 80px;
    height: 60px;
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: -1;
    transform: translate(-50%, -50%);
}

.seller_name {
    font-size: 16px;
}

.seller_teika {

    font-family: 'Lucida Grande', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif;
}

.more_seller {
    display: none;
}

.more_btn {
    padding: 8px 0;
    border-top: solid 1px #999;
    text-align: center;
    cursor: pointer;
}

.updown {
    display: inline-block;
    margin: 0 3px 0 0;
    width: 13px;
    height: 8px;
    background: url(https://img.shop-pro.jp/tmpl_img/67/down_icon.png);
    background-repeat: no-repeat;
}

.more_up {
    background: url(https://img.shop-pro.jp/tmpl_img/67/up_icon.png);
}

/* ************************************************
*  Common Elements
* ************************************************ */
/* @group Common Elements */

table {
    border-spacing: 0;
    border-collapse: collapse;
}

table.table {
    margin-bottom: 20px;
    border-top: 1px solid var(--main-color);
    border-right: 1px solid var(--main-color);
}

table.table th {
    padding: 5px;
    border-bottom: 1px solid var(--main-color);
    border-left: 1px solid var(--main-color);
    background: #f5f5f5;
}

table.table td {
    padding: 5px;
    border-bottom: 1px solid var(--main-color);
    border-left: 1px solid var(--main-color);
}

.footstamp {
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd;
}

.footstamp span {
    margin: 0 5px;
    color: #999;
}

.sort {
    text-align: right;
    margin-bottom: 80px;
    margin-top: 50px;
}

.search_pege--sort {
    /* 検索結果Page */
    margin-top: 80px;
}

.sort strong {
    margin-right: 5px;
}

.sort a {
    background-color: #E2D3BA;
    color: #5b4a36;
    padding: 6px 12px;
    margin-right: 8px;
    border-radius: 6px;
    text-decoration: none;
}

.sort span {
    background-color: #8c6239;
    color: #fff;
    padding: 6px 12px;
    margin-right: 8px;
    border-radius: 6px;
}

.pager {

    margin: 20px 0;
    text-align: center;
}

.pager a {
    margin: 15px;
}

.none {

    margin: 50px 0;
    text-align: center;
}

.sold_out {
    color: #DA5858;
    font-family: 'Lucida Grande',
        'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',
        Meiryo, メイリオ, sans-serif;
}

.to_top {
    position: absolute;
    right: 0;
    text-align: center;
    margin: 0 0 20px;
    padding: 1.3em 1em;
    border: solid 1px #aaa;
    font-size: 14px;
    color: #888;

}

.to_top:hover {
    text-decoration: none;


}

.tbl_calendar {
    margin: 20px 0;
    width: 100%;
    border: none !important;
    border-spacing: 0 !important;
    border-collapse: collapse !important;
}

.tbl_calendar th,
.tbl_calendar td {
    padding: 4px !important;
    border-bottom: 1px solid var(--main-color) !important;
    text-align: center !important;
}

/* @group button */
.btn {
    display: block;
    margin-top: 1em;
    border: none;
    border-radius: 0;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 15px;
    font-family: 'Lucida Grande',
        'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3',
        Meiryo, メイリオ, sans-serif;
    line-height: 1;
    cursor: pointer;
}

.btn:link,
.btn:visited,
.btn:hover,
.btn:active {
    color: #fff;
    text-decoration: none;
}

.btn-primary {
    margin: 1.2em 0 .9em;
    padding: 1.4em 0;
    background-color: #c86464;
}

.btn-contact {
    margin: 0.5em 0.3em;
    padding: 1.3em 0;
    background-color: #a0a0a0;
    font-weight: normal;
    font-size: 13px;
}

.btn-quick {
    margin: 0.9em 0;
    padding: 1.3em 0;
    background-color: #64b4c8;
    font-size: 13px;
}



/* カテゴリボタン装飾 */
.btn-cat {
    background-color: #F6F0E2;
    color: #5b4a36;
    padding: 6px 14px;
    border-radius: 16px;
    font-size: 0.95em;
    text-decoration: none;
    display: inline-block;
}

.btn-cat:hover {
    background-color: #e5dbc3;
}

/* ソートボタン装飾 */
.btn-sort {
    background-color: #fff8f0;
    color: #5b4a36;
    padding: 6px 12px;
    margin-right: 8px;
    border-radius: 6px;
    text-decoration: none;
    border: 1px solid #d4c3a4;
}

.btn-sort.active {
    background-color: #8c6239;
    color: #fff;
}

/* 商品説明内の見出しスタイル */
.product-detail-text strong {
    font-weight: bold;
    font-size: 1.05em;
    display: block;
    margin-top: 1.5em;
    color: #5b4a36;
}

/* ************************************************
*  トップ /top
* ************************************************ */
.news_box {
    margin-bottom: 100px;

    & article {
        display: flex;
        gap: 2%;
        margin-bottom: 10px;

        @media (max-width: 1300px) {
            flex-direction: column;
        }
    }
}

.news_section {
    /* お知らせ一覧フリーPage */
    margin: 100px 0;
}

.news-list_box {

    & article {
        position: relative;
        display: flex;
        gap: 2%;
        margin-bottom: 30px;
        padding-bottom: 10px;
        flex-direction: column;

        &:after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);
        }
    }

    & span {
        color: var(--svg-color_child-01);
    }

    & p {
        font-size: 20px;
        /* word-break: keep-all; */
    }
}

.top-hero-wrapper {
    margin-bottom: 30px;
}

.top-hero-left h2 {
    font-size: 2rem;
    color: #5b4a36;
    line-height: 1.5;
}

.top-hero-right img {
    width: 100%;
}

/* .top-message {
    text-align: center;
    color: var(--main-color);
    margin: 200px 0;

    & h2 {
        font-size: 2.5rem;
        margin-bottom: 10px;
    }

    & h3 {
        font-size: clamp(2rem, 0.818rem + 1.6vw, 3.5rem);
    }

    & h4 {
        font-size: clamp(16px, calc(1vw + 1rem), 25px);
        margin-bottom: 20px;
        word-break: keep-all;
    }

    & p {
        margin-bottom: 20px;
    }
} */

.decorated-top_title {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        justify-items: center;
    }



    & img {
        /* width: 30%;

        @media (max-width: 600px) {
            width: 100%;
        } */

        &:nth-child(2) {
            @media (max-width: 600px) {
                display: none;
            }
        }
    }
}

.top--btn {
    display: flex;
    align-items: center;
    justify-content: center;

    & a {
        border: 1px solid;
        border-radius: 10px;
        padding: 5px 15px;
        color: #C0B080;
        display: flex;
        align-items: center;
        gap: 5px;

    }
}

.top_title {
    display: flex;
    flex-direction: column;
    color: var(--main-color);
    margin-bottom: 60px;

    & h3 {
        font-size: 1.8rem;
        margin-bottom: -10px;

    }
}

.top--categoryes {
    list-style-type: none;
    gap: 15px 4%;
    margin-left: 3%;
    margin-bottom: var(--common-margin);
    font-size: 20px;
    display: flex;

    @media (max-width: 1300px) {
        margin-left: 0;
    }

    @media (max-width: 600px) {
        grid-template-columns: 1fr 1fr;
        margin-left: 0;
        gap: 15px;
    }
}

.category-item {
    border: 1px solid;
    padding: 5px 30px;
    border-radius: 5px;
    color: var(--main-color);
    background-color: var(--sub-color);
    box-shadow: 4px 6px 10px 0px rgb(190 162 110 / 25%);

    @media (max-width: 600px) {
        flex-direction: column;
    }

    & a {
        display: flex;
        align-items: center;
        justify-content: space-between;

        @media (max-width: 600px) {
            flex-direction: column;
        }
    }
}

.category-icon {
    @media (max-width: 600px) {
        display: none;

    }
}

.banner_card-01,
.banner_card-02 {

    & a {
        position: relative;

    }

    & span {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        color: #fff;
        font-size: clamp(16px, calc(1vw + 1rem), 25px);


        &:after {
            content: '';
            position: absolute;
            bottom: -5px;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);
        }
    }

}

.banner_card-01 {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 20px;

    @media (max-width: 1024px) {
        flex-direction: column;
        gap: 15px;
    }
}

.banner_card-02 {
    display: flex;
    justify-content: center;

    & a {
        display: flex;
        justify-content: center;
        width: 50%;

        @media (max-width: 1024px) {
            width: 100%;
        }
    }
}

.banners {
    margin-bottom: var(--common-margin);
}


/* カテゴリ・グループのフリースペース内全体の指定 */
.cg_freespace_01 {
    padding: 0;
    margin: 20px 0 20px 0;
}

.cg_freespace_02 {
    padding: 0;
    margin: 20px 0 20px 0;
}

/* カテゴリ・グループのフリースペース内の<p>タグの余白設定 */
.cg_freespace_01 p,
.cg_freespace_02 p {
    margin: 0 0 10px 0;
}

/* カテゴリ・グループのフリースペース内の<ul>タグの余白設定 */
.cg_freespace_01 ul,
.cg_freespace_02 ul {
    margin: 0 0 10px 20px;
    padding: 0;
}

/* ************************************************
*  商品一覧 /product_list_page
* ************************************************ */
.product_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5%;
    row-gap: 3rem;
    margin-bottom: 100px;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        gap: 15px;

    }
}

.sub_category_area,
.sub_group_area {
    display: flex;
    gap: 15px;
    list-style-type: none;
    flex-wrap: wrap;
}

.sub_category {
    background-color: var(--sub-color);
    border-radius: 5px;

    & a {
        padding: 10px 25px 10px 10px;
        color: var(--main-color);
        display: inline-block;

        @media (max-width: 600px) {
            padding: 5px 9px;

        }
    }

    & span {
        margin-right: -3px;
    }
}

.price {
    font-size: 26px;

    & span {
        font-size: 17px;
        margin-left: 5px;
    }
}


/* ************************************************
*  商品詳細 / product_detail_page
* ************************************************ */

h2.product_name {
    /* margin-bottom: 0.8em;
    padding-bottom: 0.6em; */
    /* background: transparent url("https://img.shop-pro.jp/tmpl_img/67/border_bottom.png") repeat-x left bottom; */
    font-size: clamp(20px, calc(1vw + 1rem), 28px);
}

.product_form {
    margin: 0 0 62px;
}

.product_detail_area {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: center;
    gap: 5%;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

.product_images {
    display: inline-block;



}

.product_images div img {
    max-height: 100%;
}

.product_images div p.detail {
    margin-top: 10px;
    line-height: 20px;
}

.add_cart {
    overflow: hidden;
    width: auto;
}

table.add_cart_table {
    margin-bottom: 10px;
    width: 100%;
    /* border-left: solid 1px var(--main-color); */
    table-layout: fixed;
}

table.add_cart_table {
    & tr {

        display: flex;
        flex-direction: column;
        margin-bottom: 20px;

        &:has(.pur_block) {
            /* 購入数のtr */
            flex-direction: row;
            align-items: center;
            gap: 15px;

            & tr {
                margin-bottom: 0;

            }
        }
    }

    & th,
    & td {
        display: inline-block;
        overflow: hidden;
        text-align: left;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    & th {
        /* padding: 12px 4px 12px 18px; */
        font-size: 18px;
    }

    & td select {
        display: block;
        height: 40px;
        width: 300px;
        padding-left: 20px;
        font-size: 20px;
    }

}


table.add_cart_table td input {
    padding: 0 4px;
    width: 38px;
    height: 26px;
    font-size: 15px;
    line-height: 26px;
    vertical-align: middle;
}



table.add_cart_table td input.text-titles-list__detail-text {
    width: 130px;
}

table#option_tbl {
    margin-bottom: 20px;
    width: 100%;
}

table#option_tbl th,
table#option_tbl td.none {
    background: whiteSmoke;
}

table#option_tbl th,
table#option_tbl td {
    padding: 10px;
    border: 1px solid var(--main-color);
    text-align: center;
}

table#option_tbl th {
    background: whiteSmoke;
}

table#option_tbl td div input {
    margin-bottom: 5px;
}

ul.option_price {
    margin: 0 0 20px 0;
}

ul.option_price li {
    list-style-type: none;
}

.option_box {

    width: 100%;
    overflow: hidden;
}

table td.pur_block {
    margin: 0 5px 0 0;
    width: auto;
    white-space: normal;
}

.button_area input {
    width: 50%;
}

.product_description {

    margin-bottom: 20px;
    word-wrap: break-word;
    font-size: 12px;
    line-height: 22px;
}

.product_image_extra {
    margin-bottom: 20px;
    text-align: center;
}

.product_image_extra img.item {
    margin-bottom: 20px;
}

.product_link_area {
    margin: 20px 0 0;
    padding: 20px 0 0;
    border-top: var(--main-color) solid 1px;
}

.product_link_area div.twitter {

    width: 100px;
}

.product_link_area div.pinterest {

    margin-right: 30px;
}

.product_link_area div.fb-like {

    width: 200px;
}

.product_link_area ul.other_link {

    margin-top: 20px;
    margin-left: 20px;
}

.product_link_area ul.other_link li {
    margin-bottom: 10px;
}

.share {
    margin: 15px 0 0;
    list-style: none;
}

.share li {
    display: inline-block;

    margin: 0 10px 10px 0;
    max-width: 125px;
}

.calamel-link {
    margin-top: 10px;
}

#tb_cap_tb {
    margin-top: 20px;
}

.tb {
    padding-top: 10px;
    padding-bottom: 10px;
    border-top: 1px solid var(--main-color);
}

#tb_stitle {
    margin-bottom: 20px;
}

.tb_date,
.tb_title,
.tb_body,
.tb_state {
    margin-bottom: 5px;
}

/* ------  カラー塊の調整  ------- */

.color-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 5px;
}

.color-swatch {
    width: 90px;
    height: 120px;
    border-radius: 4px;
    border: 2px solid transparent;
    cursor: pointer;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    /* 枠が外に出ないように */
    transition: border 0.2s ease;
}

.color-swatch.selected {
    border: 2px solid #333;
    /* &#9989; ここが「選択中」の枠線 */
}

.color-swatch input[type="radio"] {
    opacity: 0;
    position: absolute;
    width: 100%;
    height: 100%;
    margin: 0;
    cursor: pointer;
}

.product-info-table {
    width: 100%;
    margin-bottom: 2em;
    font-size: 14px;
    border-collapse: collapse;
    margin-top: 30px;

    & tr {
        position: relative;
        display: flex;
        position: relative;
        /* flex-wrap: wrap; */
        padding: 20px 0;

        @media (max-width: 600px) {
            flex-direction: column;
            align-items: flex-start;
            margin-bottom: 30px;
        }

        &:first-child::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);

        }

        &:after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);


        }


    }

    & td {
        padding: 0.5em 1.5em 0.5em 0.5em;
        width: 22%;

        @media (max-width: 600px) {
            width: auto;
        }
    }

    & th {
        text-align: left;
        width: 70%;

        @media (max-width: 600px) {
            width: auto;
        }
    }


}

.label-tag {
    background-color: var(--main-color);
    color: #fff;
    padding: 0.2em 0.8em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    border-radius: 5px;
    width: 70px;
}

.additional_info .label-tag {
    display: inline-block;
}

.product-description {
    line-height: 1.8;
    font-size: 14px;
    margin-bottom: 2em;
}

.product-section-title {
    border-bottom: 1px solid var(--main-color);
    font-size: 25px;
    padding-bottom: 0.3em;
    margin-bottom: 20px;
}

.product-gird-2col {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 10%;
    margin-bottom: 150px;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
    }
}

.product-detail {
    margin-bottom: 70px;

}

.product-detail-content {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 5%;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
    }

}

.product-detail-images img {
    width: 100%;
}

.related-products {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 15px;

}

/* ************************************************
*  フリーページ　/　初めてのお客様  
* ************************************************ */

.for_first_customers {
    margin: 100px 0;
    word-break: keep-all;

    @media (max-width: 960px) {
        word-break: break-word;
    }

    /* 　初めてのお客様ページ、全体共通スタイル */
    & ol {
        margin-left: 20px;
        margin: 20px 0 20px 20px;
        line-height: 2;
    }

    & ul {
        list-style-type: none;
        line-height: 2;
    }

    & h2 {
        color: var(--main-color);
        background-color: var(--sub-color);
        border-radius: 5px;
        padding: 6px 25px;
        display: inline-block;
        margin-bottom: 20px;
    }
}

.for_first_customers--nav_layout {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 15px;
    flex-wrap: wrap;
    padding-top: 15px;

    & a {
        color: var(--sub-color);
        background-color: #684123;
        border-radius: 5px;
        padding: 10px 15px;
        display: block;
        font-weight: bold;
    }
}



.for-beginners,
.returns-exchanges,
.stock-delivery,
.privacy-policy,
.legal-notice,
.shop_info {
    margin-bottom: 70px;
    position: relative;

    &::after {
        content: '';
        position: absolute;
        bottom: -30px;
        left: 0;
        right: 0;
        height: 2px;
        background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);
    }

}

.for-beginners,
.returns-exchanges,
.stock-delivery,
.privacy-policy {
    &>div {
        margin-bottom: 50px;
    }

    & p {
        font-size: 16px;
        line-height: 2;
    }
}

.shop_info,
.legal-notice,
.shop_licenses {
    &>div {
        margin-bottom: 20px;
    }

    & p {
        font-size: 16px;
        /* line-height: 2; */
    }
}

/* ************************************************
*  フリーページ　/　寺田ニットについて
* ************************************************ */
.company {
    & h2 {
        font-size: 30px;
        margin-bottom: 10px;
    }
}

.company-info,
.company-history,
.company-overview {
    margin-bottom: var(--common-margin);

}

.company-info {

    & img {
        width: 100%;
    }

    & strong {
        display: block;
        text-align: center;
        font-size: 25px;
        margin-bottom: 20px;
    }

    & p {
        text-align: center;
        font-size: 20px;
    }
}

.company-history--box {
    display: flex;
    justify-content: space-between;
    gap: 15px;

    @media (max-width: 600px) {
        flex-direction: column;
    }

    & a {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 20px 0;
        padding-bottom: 20px;
        font-size: 20px;

        &:after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);
        }
    }
}

.company-overview--grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 5%;

    @media (max-width: 600px) {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

.info_detail {
    & strong {
        font-size: 30PX;
    }

    & h3 {
        text-align: center;
        color: var(--main_color);
        font-size: 30px;
        font-weight: bold;
    }

    &>div {
        margin-bottom: clamp(12.875rem, 0.148rem + 9.64vw, 23.375rem);
    }

    & table {
        border-top: none;
        width: 100%;
        text-align: left;
    }

    & tr {
        position: relative;

        &:after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);

        }

        @media (max-width: 600px) {
            width: 100%;
            display: flex;
            flex-direction: column;
            border-bottom: none;
        }
    }

    & th {
        color: var(--sub_color);
        font-weight: bold;
        font-size: 20px;
        width: 20%;
        border-bottom: none;
        padding: 40px 15px;


        @media (max-width: 1300px) {
            width: 40%;
        }

        @media (max-width: 600px) {
            width: 100%;
            padding-bottom: 0px;
        }
    }

    & td {
        border-bottom: none;
        padding: 40px 15px;
        font-size: 18px;

        @media (max-width: 600px) {
            width: 100%;
            padding: 15px 0px;
        }
    }
}

.triangle {
    position: relative;
    width: 15px;
    height: 15px;

    &::after {
        content: "";
        position: absolute;
        border: 1px solid;
        width: 100%;
        height: 100%;
        transform: translate(-57%, -50%);
        top: 50%;
        left: 50%;
        padding: 7px;
        border-radius: 50%;
    }

    &::before {
        content: "";
        background-color: #555555;
        clip-path: polygon(0% 0%, 90% 50%, 0% 100%);
        display: block;
        width: 100%;
        height: 100%;
    }
}

.categories_info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 5%;
    padding-top: 20px;
    margin-bottom: 80px;

    @media (max-width: 1300px) {
        grid-template-columns: 1fr;
    }

    & p {
        line-height: 2;
        font-size: clamp(1rem, 0.818rem + 0.5vw, 20px);
    }
}

.categories_info--title {
    position: relative;
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 10px;
    margin-bottom: 10px;
    margin-top: 20px;

    & h2 {
        color: var(--main-color);
        font-size: clamp(20px, 0.818rem + 0.91vw, 25px);
        word-break: keep-all;

    }

    &:after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: repeating-linear-gradient(to right, var(--sub-color), var(--sub-color) 10px, transparent 10px, transparent 20px);
    }
}

.categories_info--image {
    & img {
        border-radius: 30px;
    }
}

.returns-exchanges--list {
    list-style-type: decimal;
}

#sk_link_other {
    font-size: 16px;
}