@charset "Shift_JIS";
/* CSS Document */
/*==============================================
共通 ここから
================================================*/

/* 検索窓削除 */
/* .header-search {
   display: none;
} */

/* パンくず削除 */
#pankuzu {
   display: none;
}
.header-info-red {
   display: none !important;
}
a {
   display: block;
}

/* br用クラス */
.pc-none {
   display: none;
}

/* フッター余白削除 */
footer {
   margin-top: 0 !important;
}
footer .bottom {
   margin-top: 0 !important;
}

.sleep-collection .smp_none {
   display: none;
}

/*==============================================
共通 ここまで
================================================*/

#sleep-collection .contents {
   max-width: 100%;
   margin: 0 auto;
   background-image: linear-gradient(180deg, rgba(253, 243, 234, 1) 50%, rgba(254, 191, 129, 1));
   overflow: hidden;
   font-weight: bold;
}

#sleep-collection *,
#sleep-collection *::before,
#sleep-collection *::after {
   box-sizing: border-box;
}

#sleep-collection img {
   width: 100%;
   height: auto;
   display: block;
}

#sleep-collection .banner {
   margin: 10px;
}

/* おすすめ寝具 */
#sleep-collection .recommend {
   position: relative;
   padding: 0px 10px 120px;
   overflow: hidden;
   --bg-grad: linear-gradient(180deg, rgba(175, 199, 241, 1), rgba(241, 232, 236, 1) 83%);
   background-color: var(--bg-grad);
}

#sleep-collection .recommend::after {
   content: '';
   position: absolute;
   bottom: 0%;
   left: 50%;
   transform: translateX(-50%);
   width: 200%;
   height: 130%;
   border-radius: 50%;
   background: var(--bg-grad);
   z-index: 0;
   pointer-events: none;
}

#sleep-collection .recommend .inner {
   position: relative;
   z-index: 1;
}

#sleep-collection .midashi-head {
   display: grid;
   grid-template-columns: 1fr auto 1fr;
   align-items: center;
   column-gap: 10px;
   text-align: center;
   letter-spacing: 0.1em;
   margin: 40px 0 10px;
}

#sleep-collection .midashi-head .line {
   height: 1px;
   background: #222;
}

#sleep-collection .midashi-head .title-text {
   white-space: nowrap;
   font-size: 17px;
}

#sleep-collection .midashi-head .title-text span {
   color: #b10e1b;
   font-weight: bold;
   font-size: 23px;
}

/* 商品 */
#sleep-collection .product {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   gap: 5px;
}

#sleep-collection .product-card {
   border: 1.5px solid #222;
   background: #fff;
}

#sleep-collection .thumbnail img {
   display: block;
   width: 100%;
}

#sleep-collection .product-body {
   padding: 5px;
}

#sleep-collection .product-size {
   display: flex;
   justify-content: center;
   gap: 4px;
   margin: 3px 0;
}

#sleep-collection .product-size .one-size {
   justify-content: center;
}

#sleep-collection .size-btn, .size-label {
   display: inline-block;
   min-width: 32px;
   text-align: center;
   font-size: 12px;
   font-weight: bold;
   border: 1px solid #333;
   border-radius: 3px;
   background: #fff;
   color: #222;
   cursor: default;
   user-select: none;
}

#sleep-collection .size-label {
   width: 100%;
}

#sleep-collection .size-btn.is-active,
.size-label.is-active {
   background: #333;
   color: #fff;
}

#sleep-collection .product-name {
   text-align: center;
   font-weight: bold;
   margin: 5px 0 5px;
}

#sleep-collection .product-price {
   text-align: center;
   color: #ea0012;
   font-weight: bold;
   margin: 8px 0;
   font-size: 20px;
}

#sleep-collection .product-zaiko .clear {
   text-align: center;
   width: 100%;
   background: #d1d1d1;
   border: 1px solid #222;
   padding: 6px;
   font-weight: bold;
   border-radius: 3px;
   font-family: inherit;
   font-size: 13px;
   letter-spacing: .06em;
   line-height: 1.385em;
   margin: 0;
}

#sleep-collection .cartin {
   text-align: center;
   width: 100%;
   background: #fff78a;
   border: 1px solid #222;
   padding: 6px;
   font-weight: bold;
   border-radius: 3px;
}

/* ステップ説明 */
#sleep-collection .step-list {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 12px;
}

#sleep-collection .step-item {
   overflow: hidden;
   background: #222;
}

#sleep-collection .step-head {
   position: relative;
   height: 35px;
   background: #222;
   display: flex;
   align-items: center;
   padding-left: 72px;
   z-index: 1;
}

#sleep-collection .step-head::before {
   content: "";
   position: absolute;
   left: -8px;
   bottom: -16px;
   width: 64px;
   height: 64px;
   background: #222;
   border-radius: 50%;
   z-index: -1;
}

#sleep-collection .step-inner {
   position: absolute;
   left: 10px;
   bottom: -5px;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   pointer-events: none;
}

#sleep-collection .step-label {
   font-size: 10px;
   letter-spacing: 0.08em;
   color: #fff;
}

#sleep-collection .step-num {
   font-size: 20px;
   font-weight: bold;
   line-height: 1;
   color: #fff;
}

#sleep-collection .step-name {
   margin: -17px;
   font-size: 13px;
   font-weight: bold;
   color: #fff;
   white-space: nowrap;
}

/* スクロールダウン */
#sleep-collection .scroll_down {
   position: absolute;
   left: 50%;
   bottom: -110px;
   transform: translateX(-50%);
   z-index: 2;
   width: 28px;
   height: 90px;
   pointer-events: none;
}

#sleep-collection .scroll_down .text {
   position: absolute;
   bottom: 5px;
   left: 50%;
   transform: translateX(-50%);
   font-size: 14px;
   letter-spacing: 2px;
   color: #222;
   white-space: nowrap;
}

#sleep-collection .arrow {
   position: absolute;
   width: 28px;
   height: 5px;
   opacity: 0;
   transform: scale3d(0.5, 0.5, 0.5);
   animation: move 3s ease-out infinite;
}

#sleep-collection .arrow:first-child {
   animation-delay: 1s;
}

#sleep-collection .arrow:nth-child(2) {
   animation-delay: 2s;
}

#sleep-collection .arrow:before,
.arrow:after {
   content: ' ';
   position: absolute;
   top: 0;
   height: 100%;
   width: 51%;
   background: #000;
}

#sleep-collection .arrow:before {
   left: 0;
   transform: skew(0deg, 30deg);
}

#sleep-collection .arrow:after {
   right: 0;
   width: 50%;
   transform: skew(0deg, -30deg);
}

@keyframes move {
   25% { opacity: 1; }
   33% { opacity: 1; transform: translateY(30px); }
   67% { opacity: 1; transform: translateY(40px); }
   100% { opacity: 0; transform: translateY(55px) scale3d(0.5, 0.5, 0.5); }
}

/* ステップ1-4 */
#sleep-collection .step-title {
   position: relative;
   text-align: center;
   margin: 50px 0 20px;
}

#sleep-collection .step-title h3 {
   margin: 10px 0;
   font-size: 14px;
}

#sleep-collection .midashi-foot {
   position: relative;
   display: inline-block;
   padding-bottom: 10px;
   font-size: 18px;
   letter-spacing: 0.15em;
   margin: 0;
}

#sleep-collection .midashi-foot::after {
   content: '';
   position: absolute;
   left: 50%;
   bottom: 5px;
   transform: translateX(-50%);
   width: 90%;
   height: 1px;
   background: linear-gradient(to right, #222 0%, #222 47%, transparent 46%, transparent 53%, #222 46%, #222 100%)
}

#sleep-collection .midashi-foot::before {
   content: '';
   position: absolute;
   bottom: 1px;
   left: 50%;
   transform: translateX(-50%) rotate(45deg);
   width: 8px;
   height: 8px;
   background: transparent;
   border-right: 1px solid #222;
   border-bottom: 1px solid #222;
   z-index: 1;
}

#sleep-collection .midashi-foot span {
   font-size: 28px;
}

/* 見出しの星 */
#sleep-collection .stars {
   position: absolute;
   top: 0px;
   left: -21px;
}

#sleep-collection .star {
   display: block;
   color: #222;
}

#sleep-collection .star.big {
   font-size: 16px;
   transform: rotate(60deg);
}

#sleep-collection .star.small {
   font-size: 10px;
   margin-right: 10px;
   margin-top: -8px;
   transform: rotate(55deg);
}

#sleep-collection .tab-container {
   max-width: 600px;
   padding: 10px 10px 90px;
}

/* タブボタン */
#sleep-collection .tab-list {
   display: flex;
   gap: 10px;
   padding: 0;
   margin: 0;
   list-style: none;
}

#sleep-collection .tab-list li {
   width: 33.333%;
}

#sleep-collection .tab-btn {
   width: 100%;
   background: #fff;
   border: 2px solid #222;
   border-radius: 16px;
   padding: 13px 13px;
   text-align: center;
   cursor: pointer;
   transition: all 0.2s ease;
}

/* タブボタン-選択中 */
#sleep-collection .tab-btn.active {
   border-color: #222;
   box-shadow: inset 0 0 0 2px #222;
}

#sleep-collection .tab-btn img {
   width: 90%;
   max-width: 90px;
   height: auto;
   display: block;
   margin: 0 auto;
}

#sleep-collection .tab-title {
   font-size: 14px;
   font-weight: bold;
   margin-bottom: -3px;
}

#sleep-collection .tab-text {
   font-size: 12px;
   margin-top: -5px;
}

#sleep-collection .tab-panel {
   display: none;

}

#sleep-collection .tab-panel.active {
   display: block;
}

#sleep-collection .fade-panel {
   animation: fade 0.5s ease;
}

@keyframes fade {
   from {
      opacity: 0;
   }
   to {
      opacity: 1;
   }
}

/* 合計金額 */
.total_area {
   position: sticky;
   bottom: 44px;
   width: 100%;
   background: #ea0012;
   color: #fff;
   z-index: 10;
}

.total_inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 3px 16px;
}

.total_text {
   display: flex;
   flex-direction: column;
}

.total_text .label {
   font-size: 14px;
   letter-spacing: 0.05em;
}

.total_text .price {
   font-size: 30px;
   font-weight: 700;
   line-height: 1;
}

.auto-cart-in {
   background: #fff;
   color: #ea0012;
   border: none;
   padding: 10px 18px;
   font-size: 16px;
   font-weight: bold;
   border-radius: 6px;
   cursor: pointer;
}

#total-price {
   font-size: 30px;
}

/* fase内で選択済みがあるとき、未選択商品を薄くする */
.fase.has-selected .product-item {
   opacity: 0.4;
   transition: opacity 0.1s ease;
}

/* 選択中の商品だけはくっきり */
.fase.has-selected .product-item .cartin.is-selected {
   opacity: 1;
}

.fase.has-selected .product-item:has(.cartin.is-selected) {
   opacity: 1;
}

