@charset "utf-8";
/* Common */
.txt--large {font-size: 1.1em;}
.txt--small {font-size: 0.9em;}
.txt--r {text-align: right !important;}
.txt--c {text-align: center !important;}
.txt--ul {text-decoration: underline !important;}
.txt--red {color: #ff2222;}
.is--pc {display: block !important;}
.is--sp {display: none !important;}
.invisible {visibility: hidden;}
.m0 {margin: 0 auto !important;}
.p0 {padding: 0 !important;}
.disc li {list-style-type: disc;}
.decimal li {list-style-type: decimal;}
*[animation]{visibility: hidden;}
/* Links */
a.icn[href^="http"][target="_blank"]:after {
   content: "";
   display: inline-block;
   width: 14px;
   height: 14px;
   line-height: 20px;
   margin: 0 10px 2px 6px;
   background: url("../img/common/icn_link.png") center no-repeat;
   background-size: contain;
   vertical-align: middle;
}
a.icn[href^="/"][target="_blank"]:after {
   content: "";
   display: inline-block;
   margin: 0 10px 0 8px;
   padding: 0 5px;
   font-size: 1.2rem;
   line-height: 20px;
   color: #ff7f7f;
   border: 1px solid #ff7f7f;
   font-weight: bold;
}
a.icn[href^="/"][href$=".pdf"]:after {
   content: "PDF";
   background-color: #fff;
}
a.icn[href^="/"][href$=".xls"]:after {
   content: "XLS";
   background-color: #fff;
}
a.icn[href^="/"][href$=".xlsx"]:after {
   content: "XLSX";
   background-color: #fff;
}
a.icn[href^="/"][href$=".xlsm"]:after {
   content: "XLSM";
   background-color: #fff;
}
a.icn[href^="/"][href$=".doc"]:after {
   content: "DOC";
   background-color: #fff;
}
a.icn[href^="/"][href$=".docx"]:after {
   content: "DOCX";
   background-color: #fff;
}
a.icn[href^="/"][href$=".zip"]:after {
   content: "ZIP";
   background-color: #fff;
}
a.icn_up:after {
   content: "UP";
   display: inline-block;
   margin: 0 10px 0 8px;
   padding: 0 5px;
   font-size: 1.1rem;
   color: #fff;
   font-weight: bold;
   background-color: #ef3200;
}
.link--html {
   display: inline-block !important;
   margin: 0 4px !important;
   padding: 0 5px !important;
   background-color: #335c80 !important;
   font-size: 1.1rem !important;
   color: #fff !important;
   font-weight: bold !important;
   text-decoration: none !important;
}
.link--pdf {
   display: inline-block !important;
   margin: 0 4px !important;
   padding: 0 5px !important;
   background-color: #b11010 !important;
   font-size: 1.1rem !important;
   color: #fff !important;
   font-weight: bold !important;
   text-decoration: none !important;
}
.icn__new {
   font-size: 1.1rem;
   line-height: 20px;
   padding: 0 5px;
   border: 1px solid #ff7f7f;
   color: #ff7f7f;
}
.p40{
   padding: 40px 0;
}

/* ec default class edit */
.ec-layoutRole{
   background: transparent !important;
}
.ec-layoutRole__contents{
   max-width: inherit !important;
   padding-bottom: 80px !important;
}
.ec-searchnavRole{
   margin: 0 auto !important;
   padding: 0 !important;
   max-width: 1200px !important;
}
.ec-searchnavRole__infos{
   margin: 0 !important;
   max-width: inherit !important;
}
.bg-load-overlay{
   opacity: 0 !important;
   pointer-events: none;
}
.pagetop{
   position: fixed;
   bottom: 0;
   right: 50px;
   display: block;
   width: 45px;
   height: 45px;
   line-height: 45px;
   color: #fff;
   background-color: #57748e;
   font-size: 8px;
   text-align: center;
   text-decoration: none;
   transition: opacity 0.3s , transform 0.3s;
   transform: translateY(100%);
   opacity: 1;
   text-indent: 100%;
   white-space: nowrap;
   overflow: hidden;
}
.pagetop:after {
   content: "";
   position: absolute;
   top: 20px;
   left: 50%;
   margin: auto;
   display: block;
   border-top: 6px solid #fff;
   border-right: 6px solid #fff;
   border-bottom: 6px solid transparent;
   border-left: 6px solid transparent;
   transform: translateX(-50%) rotate(-45deg);
}

.pagetop.pagetop--show{
   transform: translateY(0);
}
.ec-orderMail__close{
   width: 100% !important;
   text-align: right !important;
}
.ec-orderMail__body{
   padding: 10px;
   margin-top: 10px;
   border-top: 1px dashed #ccc;
}
.ec-reportDescription{
   background-color: #fff;
   padding: 20px 10px;
}
.ec-cartNaviNull__message{
   padding-top: 100px;
}

/* All */
html{
   min-height: 100vh;
}
body {
   position: relative;
   font-family: "Noto Sans JP",'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, arial, helvetica, sans-serif;
   font-size: 16px;
   color: #333;
   background-color: #fff;
   min-height: 100vh;
}
body.is--loading{
   opacity: 0.3;
}
body.is--loading:before {
   content: "";
   position: fixed;
   left: 0;
   top: 0;
   width: 100vw;
   height: 100vh;
   background-color: #ffffff88;
}
body.is--loading:after {
   content: "";
   position: fixed;
   left: calc(50% - 24px);
   top: calc(50% - 24px);
   width: 48px;
   height: 48px;
   border: 5px solid #000;
   border-bottom-color: transparent;
   border-radius: 50%;
   display: inline-block;
   box-sizing: border-box;
   animation: rotation 1s linear infinite;
}

@keyframes rotation {
0% {
      transform: rotate(0deg);
}
100% {
      transform: rotate(360deg);
}
} 
main{
   position: relative;
   padding-bottom: 60px;
}
input[type=text]:focus {
   outline: 1px solid #008ffb;
}
select:focus {
   outline: 1px solid #008ffb;
}
select::-ms-expand {
   display: none;
}
.navi{
   height: 50px;
   background-color: #606060;
}
.navi ul{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
}
.navi ul li{
   text-align: center;
}
.navi ul li a{
   position: relative;
   display: block;
   /* width: 150px; */
   line-height: 20px;
   padding: 5px 0 5px 34px;
   text-align: center;
   text-decoration: none;
   color: #fff;
}
.navi ul li a:before{
   content: "";
   position: absolute;
   top: 50%;
   left: 0;
   display: block;
   width: 28px;
   height: 28px;
   transform: translateY(-50%);
   background-image: url(../img/common/icn_home.png);
   background-position: center;
   background-repeat: no-repeat;
   background-size: contain;
}

.navi ul li a.navi_icn--home:before{
   background-image: url(../img/common/icn_home.png);
}
.navi ul li a.navi_icn--heart:before{
   background-image: url(../img/common/icn_heart.png);
}
.navi ul li a.navi_icn--star:before{
   background-image: url(../img/common/icn_mylist.png);
}
.navi ul li a.navi_icn--cart:before{
   background-image: url(../img/common/icn_cart.png);
}
.navi ul li a.navi_icn--paper:before{
   background-image: url(../img/common/icn_paper.png);
}
.navi ul li a.navi_icn--member:before{
   background-image: url(../img/common/icn_member.png);
}
.navi ul li a.navi_icn--help:before{
   background-image: url(../img/common/icn_help.png);
}
.navi ul li a.navi_icn--logout:before{
   background-image: url(../img/common/icn_logout.png);
}
.page--toppage .navi ul li a.navi_icn--home:before{
   background-image: url(../img/common/icn_home_active.png);
}
.page--favorite .navi ul li a.navi_icn--heart:before{
   background-image: url(../img/common/icn_heart_active.png);
}
.page--mylist .navi ul li a.navi_icn--star:before{
   background-image: url(../img/common/icn_mylist_active.png);
}
.page--cart .navi ul li a.navi_icn--cart:before{
   background-image: url(../img/common/icn_cart_active.png);
}
.page--history .navi ul li a.navi_icn--paper:before{
   background-image: url(../img/common/icn_paper_active.png);
}
.page--member .navi ul li a.navi_icn--member:before{
   background-image: url(../img/common/icn_member_active.png);
}
.page--help .navi ul li a.navi_icn--help:before{
   background-image: url(../img/common/icn_help_active.png);
}
.navi ul li a:after{
   content: "";
   position: absolute;
   top: 50%;
   left: calc(50% + 12.5px);
   transform: translateX(-50%)translateY(21px);
   display: block;
   width: 0;
   height: 4px;
   transition: width 0.3s;
}
.page--toppage .navi ul li a.navi_icn--home:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--favorite .navi ul li a.navi_icn--heart:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--mylist_detail .navi ul li a.navi_icn--star:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--cart .navi ul li a.navi_icn--cart:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--history .navi ul li a.navi_icn--paper:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--member .navi ul li a.navi_icn--member:after{
   width: 60px;
   background-color: #1abc9c;
}
.page--help .navi ul li a.navi_icn--help:after{
   width: 60px;
   background-color: #1abc9c;
}
.navi2{
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   width: 35%;
   min-width: 400px;
   height: 50px;
   background-color: #57748e;
   align-self: flex-end;
   margin-bottom: 10px;
}
.navi2:before{
   content: "";
   position: absolute;
   right: 100%;
   top: 0;
   border-width: 25px 15px;
   border-color: transparent #57748e #57748e transparent;
   border-style: solid;
}
.navi2:after{
   content: "";
   position: absolute;
   left: 100%;
   top: 0;
   width: calc((100vw - 100%)/2);
   height: 100%;
   background-color: #57748e;
}
.navi2>p{
   padding: 0 1em;
   flex: 0 0 auto;
   font-size: 14px;
   color: #fff;
}
.navi2 ul{
   display: flex;
   justify-content: space-evenly;
   align-items: center;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
}
.navi2 ul li{
   position: relative;
   text-align: center;
   color: #fff;
}
.navi2 ul li a{
   position: relative;
   display: block;
   width: 115px;
   line-height: 20px;
   padding: 5px 0 5px 20px;
   text-align: center;
   font-size: 20px;
   text-decoration: none;
   color: #fff;
   cursor: pointer;
}
.navi2 ul li p{
   position: relative;
   width: 115px;
   line-height: 20px;
   padding: 5px 0 5px 20px;
   text-align: center;
   font-size: 20px;
   color: #fff;
   cursor: default;
}
.navi2 ul li:before{
   content: "";
   position: absolute;
   top: 50%;
   left: 0;
   display: block;
   width: 28px;
   height: 28px;
   transform: translateY(-50%);
   background-image: url(../img/common/icn_textbook.png);
   background-position: center;
   background-repeat: no-repeat;
   background-size: contain;
   opacity: 0.8;
}

.navi2 ul li.navi2_icn--textbook:before{
   background-image: url(../img/common/icn_textbook.png);
}
.navi2 ul li.navi2_icn--test:before{
   background-image: url(../img/common/icn_test.png);
}
.navi2 ul li.navi2_icn--textbook.is--active:before{
   background-image: url(../img/common/icn_textbook_active.png);
}
.navi2 ul li.navi2_icn--test.is--active:before{
   background-image: url(../img/common/icn_test_active.png);
}
.navi2 ul li:after{
   content: "";
   position: absolute;
   top: 50%;
   left: calc(50% + 10px);
   transform: translateX(-50%)translateY(21px);
   display: block;
   width: 0;
   height: 4px;
   transition: width 0.3s;
}
.navi2 ul li.navi2_icn--textbook.is--active:after{
   width: 60px;
   background-color: #1abc9c;
}
.navi2 ul li.navi2_icn--test.is--active:after{
   width: 60px;
   background-color: #1abc9c;
}
.button-toggle{
   display: none;
}
.contents_wrap{
   transition: padding 0.3s;
   padding: 40px 0 120px;
}
.contents_wrap.cart_fix.fixed{
   padding-right: 380px;
}

.contents_ttl{
   position: relative;
   padding-bottom: 30px;
   margin-bottom: 30px;
   text-align: center;
}
.contents_ttl:after{
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0;
   margin: auto;
   width: 24px;
   height: 20px;
   background: url(../img/common/dot_01.png) center no-repeat;
   background-size: contain;
}
.contents_ttl--red:after{
   background: url(../img/common/dot_02.png) center no-repeat;
   background-size: contain;
}
.contents_ttl h2{
   font-weight: bold;
   font-size: 24px;
   display: inline;
}
.contents_ttl--marker h2{
   background:linear-gradient(transparent 50%, #fff8b3 50%);
}
.btn_wrap{
   display: flex;
   justify-content: center;
   align-items: center;
   max-width: 100%;
   padding: 20px 10px;
}
.btn_wrap .btn{
   margin: 5px 15px;
}
.btn{
   display: block;
   min-width: 120px;
   height: 40px;
   padding: 0 30px;
   line-height: 40px;
   margin-bottom: 15px;
   border-radius: 20px;
   border: none;
   text-align: center;
   text-decoration: none;
   color: #fff !important;
   cursor: pointer;
   transition: all 0.3s;
   box-shadow:  3px 3px 10px rgba(0, 0, 0, 0.3), -4px -4px 4px rgba(255, 255, 255, 1),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
}

.bg_blue{
   background-image: linear-gradient(to right,#008ffb,#005bea);
}
.bg_gray{
   background-color: #57748e;
}
.bg_pink{
   background-color: #ff6663;
}
.bg_cyan{
   background-color: #99d9ea;
}

.bg_cancel{
   background-color: #999999;
}
.bg_back{
   color: #333 !important;
   line-height: 36px;
   background-color: #ffffff;
   border: 1px solid #333;
}
.bg_ro{
   line-height: 36px;
   background-color: #ffffff;
   border: 2px solid #0472bc;
   color: #0472bc !important;
}
.btn.no-shadow{
   box-shadow: none;
}
.btn_small{
   height: 26px;
   margin: 0;
   line-height: 26px;
   border-radius: 13px;
   font-size: 14px;
}
.btn_edit{
   min-width: 60px;
   height: 26px;
   margin: 0;
   padding: 0 5px;
   line-height: 26px;
   font-size: 12px;
   box-shadow: none;
   background-color: #eee;
   color: #000 !important;
   border-radius: 0;
}
.btn_save{
   min-width: 60px;
   height: 26px;
   margin: 0;
   padding: 0 5px;
   line-height: 26px;
   font-size: 12px;
   box-shadow: none;
   background-color: #ffee68;
   color: #000 !important;
   border-radius: 0;
}
/* header */
.header{
   position: relative;
   width: 100%;
   overflow-x: hidden;
}
body.page--login .header{
   position: absolute;
   max-width: inherit;
}
body.page--login .footer{
   background-color: transparent;
}
body.page--login .footer a{
   color: #777;
}
body.page--login .footer p{
   color: #777;
}
.header_inner{
   position: relative;
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 1240px;
   margin: 0 auto;
   height: 100px;
   padding: 0 20px;
}
.header .ttl{
   width: 513px;
   max-width: 52%;
}
.header .logo{
   width: 240px;
}
/* footer */
.footer{
   position: absolute;
   bottom: 0;
   display: block;
   text-align: center;
   width: 100%;
   height: 80px;
   padding: 12px 5px;
   background-color: #666;
}
.footer_menu{
   display: flex;
   justify-content: center;
   align-items: center;
}
.footer_menu a{
   margin: 0 auto;
   color: #fff;
   font-weight: normal;
   text-align: center;
   text-decoration: underline;
   font-size: 13px;
   margin: 0 8px 8px;
}
.footer p{
   text-align: center;
   font-size: 14px;
   color: #ccc;
}
/* login */
body.page--login{
   background-color: #e6e9ed;
}
body.page--login:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-image: url(../img/common/bg2.svg);
   z-index: -1;
}
body.page--login main{
   height: calc(100vh - 100px - 60px);
}
.login_wrap{
   /* position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0; */
   min-height: calc(100vh - 80px);
   padding-top: 100px;
   padding-bottom: 50px;
   margin: auto;
   display: flex;
   justify-content: center;
   align-items: center;
   flex-direction: column;
}
.login_input{
   display: flex;
   justify-content: center;
   align-items: center;
   flex-direction: column;
   margin-bottom: 20px;
}
.login_input input{
   width: 320px;
   height: 40px;
   margin-bottom: 15px;
   border-radius: 20px;
   border: none;
   text-align: center;
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 15%), inset -3px -3px 4px rgb(255 255 255 / 15%);
}
.auto_login{
   margin-bottom: 30px;
}
.auto_login input{
   width: 20px;
   height: 20px;
   margin-right: 8px;
   border: 1px solid #8e8e8e;
   vertical-align: middle;
}
.auto_login label{
   line-height: 20px;
   font-size: 16px;
   vertical-align: middle;
}
.toppage_notice{
   padding: 10px;
   margin: 25px 5px 10px;
   background-color: #3a75a524;
   width: 100%;
   max-width: 680px;
}
.toppage_notice h4{
   text-align: center;
   line-height: 20px;
   font-size: 14px;
   font-weight: bold;
   margin-bottom: 5px;
}
.toppage_notice ul{
   padding-left: 20px;
}
.toppage_notice ul li{
   margin-bottom: 5px;
   line-height: 20px;
   list-style-type: disc;
   font-size: 13px;
   color: #555;
}
.toppage_notice ul li a{
   text-decoration: underline;
}
.toppage_notice p{
   padding: 4px;
   background-color: #ffffff66;
   line-height: 20px;
   text-align: center;
   font-size: 14px;
}
/* news modal */
.news_modal__wrap{
   display: none;
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: 99999;
}
.news_modal{
   display: flex;
   justify-content: center;
   align-items: center;
   width: 100%;
   height: 100%;
   background-color: #00000033;
}
.news_modal__block{
   max-width: 100%;
   max-height: 100vh;
   padding: 30px;
   background-color: #fff;
}
.news_modal__txt{
   margin-bottom: 20px;
}
.news_modal__txt h2{
   font-size: 24px;
   border-bottom: 2px dotted #999999;
   padding-bottom: 18px;
   margin-bottom: 15px;
}
.news_modal__txt p{
   line-height: 28px;
   margin-bottom: 15px;
}
.news_modal__btn{
   display: flex;
   justify-content: center;
   align-items: center;
}
.news_modal__btn button{
   display: block;
   padding: 10px 40px;
   line-height: 24px;
   color: #fff;
   box-shadow: 3px 3px 10px rgb(0 0 0 / 30%), -4px -4px 4px rgb(255 255 255), inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
   background-image: linear-gradient(to right,#008ffb,#005bea);
   border-radius: 22px;
}
.news_modal__btn button.hover{
   transform: translateX(1px)translateY(1px);
   box-shadow: 3px 3px 10px transparent, -4px -4px 4px transparent,inset 3px 3px 4px rgba(0, 0, 0, 0.3), inset -3px -3px 4px rgba(255, 255, 255, 0.1);
}
/* mosi */
.mosi_intro{
   width: 100%;
   max-width: 1200px;
   margin: 0 auto 30px;
}
.mosi_intro__notice{
   position: relative;
   line-height: 26px;
   padding: 12px 14px 12px 60px;
   margin-bottom: 20px;
   border-radius: 25px;
   background-color: #fff9b3;
   font-weight: bold;
}
.mosi_intro__notice:after{
   content: "";
   position: absolute;
   top: 50%;
   left: 20px;
   transform: translateY(-50%);
   display: block;
   width: 26px;
   height: 26px;
   background: url(../img/common/icn_info.png) center no-repeat;
   background-size: contain;
}
.mosi_intro ul{
   padding-left: 30px;
}
.mosi_intro ul li{
   list-style-type: disc;
   font-size: 15px;
   line-height: 24px;
}
.mosi_intro ul li.is--red{
   color: #f00;
}
.mosi_intro ul li.is--red::marker{
   color: #f00;
}
.mosi_intro ul li:nth-child(n + 2){
   margin-top: 10px;
}

/* topics */
.topics_wrap{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto 20px;
   padding: 20px;
   background-color: #fff6b3;
}
.topics_wrap .contents_ttl{
   width: 38%;
   margin-bottom: 0;
}
.topics__list{
   width: 62%;
   background-color: #fff;
   padding: 20px;
   
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 15%);
}
.topics__item{
   margin-bottom: 5px;
}
.topics__list .topics__item:last-of-type{
   margin-bottom: 0;
}
.topics__item__head{
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   cursor: pointer;
   margin: 0;
   padding-bottom: 5px;
   border-bottom: 1px solid #eeeeee;
}
.topics__item__head dt{
   width: 100px;
   padding-right: 10px;
   font-weight: normal;
}
.topics__item__head dd{
   position: relative;
   width: calc(100% - 100px);
   font-weight: normal;
}
.topics__item__head dd:after{
   content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 6px 10px 6px;
    border-color: transparent transparent #aaaaaa transparent;
    transform: translateY(-40%)rotate(180deg);
    transition: all 0.3s;
    pointer-events: none;
}
.topics__item__head.is-open dd:after{
    transform: translateY(-40%)rotate(0deg);
}
.topics__item__body{
   display: none;
   margin: 15px;
   padding: 15px;
   background-color: #f4f4f4;
   font-size: 14px;
}
/* search */
.search_wrap{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   max-width: 1200px;
   margin: 20px auto;
   padding: 20px;
   background-color: #e6e9ed;
}
.search_wrap .contents_ttl{
   width: 38%;
   margin-bottom: 0;
}
.search__function{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 62%;
}
.search__input{
   width: calc(100% - 160px);
}
.search__input_select{
   position: relative;
   display: inline-block;
   width: calc(50% - 5px);
   margin-bottom: 10px;
   border-radius: 20px;
}
.search__input_select:before{
   content: "";
   position: absolute;
   top: 0;
   right: 0;
   display: block;
   width: 40px;
   height: 40px;
   background-color: #57748e;
   border-radius: 0 20px 20px 0;
   pointer-events: none;
}
.search__input_select:after{
   content: "";
   position: absolute;
   top: 50%;
   right: 15px;
   display: block;
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 0 6px 10px 6px;
   border-color: transparent transparent #ffffff transparent;
   transform: translateY(-40%)rotate(180deg);
   pointer-events: none;
}
.search__input select{
   width: 100%;
   height: 40px;
   padding: 0 40px 0 20px;
   border: none;
   border-radius: 20px;
   text-align: center;
   color: #444;
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
   cursor: pointer;
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 15%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.search__input select option:first-child{
   color: #aaa;
}
.search__input input{
   width: calc(100% - 10px);
   height: 40px;
   border-radius: 20px;
   border: none;
   text-align: center;
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 15%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.search__input input::placeholder{
   color: #aaa;
}
.cat_select{
   position: relative;
   display: flex;
   justify-content: flex-start;
   align-items: flex-start;
   flex-wrap: wrap;
   width: 100%;
   max-width: 1200px;
   margin: 20px auto;
   padding: 10px;
   background-color: #eaeaea;
   transition: all 0.5s;
}
.cat_select--expand{
   flex-wrap: wrap;
   padding: 5px 10px 5px 180px;
}
.cat_select h3{
   position: relative;
   font-size: 16px;
   line-height: 23px;
   padding: 0 80px 0 20px;
   color: #57748e;
}
.cat_select h3:after{
   content: "";
   position: absolute;
   right: 20px;
   top: 50%;
   width: 40px;
   height: 0;
   border-bottom: 1px dashed #57748e;
}
.cat_select--expand h3{
   position: absolute;
   top: 50%;
   left: 0;
   transform: translateY(-50%);
}
.cat_select>input{
   margin: 0 5px;
   padding: 3px 15px;
   background-color: #57748e;
   color: #fff;
   border: none;
   border-radius: 13px;
}
.cat_select--expand>input{
   margin: 5px;
}
.product_list{
   width: 100%;
   max-width: 1200px;
   margin: 20px auto;
}
.product_list>ul{
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 22px;
   padding: 0;
}
.product_list>ul:before{
   content: "";
   display: block;
   width: calc(25% - 10px);
   height: 1px;
   order: 1;
}
.product_list>ul:after{
   content: "";
   display: block;
   width: calc(25% - 10px);
   height: 0;
   order: 1;
}
.product_box{
   position: relative;
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 12px;
   place-content: center;
   padding: 20px;
   border: 1px solid #e1e1e1;
}
.product_box:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.product_box>a{
   text-decoration: none;
   color: #333;
}
.product__img{
   position: relative;
   grid-column: 1 / 3;
   margin: 0 auto;
}
.product__img img{
   width: 100%;
   max-width: 110px;
   border: 1px solid rgba(0, 0, 0, 0.3);
   box-shadow: 5px 5px 12px rgba(0, 0, 0, 0.3);
}
.product__img--new1:before{
   content: "";
   position: absolute;
   top: -10px;
   left: -15px;
   display: block;
   width: 65px;
   height: 40px;
   background-color: #ff007b;
   box-shadow: 3px 3px 3px #00000055;
}
.product__img--new1:after{
   content: "新版";
   position: absolute;
   top: -10px;
   left: -15px;
   display: block;
   width: 65px;
   height: 40px;
   line-height: 40px;
   color: #fff;
   font-size: 23px;
   text-align: center;
}
.product__img--new2:before{
   content: "";
   position: absolute;
   top: -5px;
   left: -5px;
   display: block;
   width: 40px;
   height: 24px;
   background-color: #ff007b;
   box-shadow: 3px 3px 3px #00000055;
}
.product__img--new2:after{
   content: "新刊";
   position: absolute;
   top: -5px;
   left: -5px;
   display: block;
   width: 40px;
   height: 24px;
   line-height: 24px;
   color: #fff;
   font-size: 14px;
   text-align: center;
}
.product__img--new3:before{
   content: "";
   position: absolute;
   top: -5px;
   left: -5px;
   display: block;
   width: 40px;
   height: 24px;
   background-color: #13008d;
   box-shadow: 3px 3px 3px #00000055;
}
.product__img--new3:after{
   content: "改訂";
   position: absolute;
   top: -5px;
   left: -5px;
   display: block;
   width: 40px;
   height: 24px;
   line-height: 24px;
   color: #fff;
   font-size: 14px;
   text-align: center;
}
.product__ttl{
   grid-column: 1 / 3;
   width: 100%;
   min-height: 50px;
   margin: 10px 0 0;
   font-size: 16px;
   font-weight: bold;
}
.product__price{
   grid-column: 1 / 3;
   width: 100%;
   margin: 0 0 10px;
   text-align: right;
   font-size: 22px;
   font-weight: bold;
}
.product_box_infowrap{
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   flex-wrap: wrap;
}
.product__amount_wrap{
   grid-column: 1 / 2;
}
.product__amount{
   width: 100%;
}
.product__amount span{
   font-size: 12px;
}
.product__amount input{
   width: 100%;
   height: 40px;
   padding-left: 15px;
   border-radius: 20px;
   border:1px solid #ddd;
   text-align: center;
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 10%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.btn_cart{
   grid-column: 2 / 3;
   height: 40px;
   padding: 0 5px;
   line-height: 40px;
   border-radius: 20px;
   border: none;
   text-align: center;
   text-decoration: none;
   font-size: 15px;
   color: #fff;
   transition: all 0.3s;
   box-shadow:  3px 3px 10px rgba(0, 0, 0, 0.3), -4px -4px 4px rgba(255, 255, 255, 1),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
   background-image: linear-gradient(to right,#008ffb,#005bea);
}
.btn_cart--out{
   font-size: 12px;
   line-height: 15px;
   background: #838383;
}
.btn_favorite{
   grid-column: 1 / 3;
   position: relative;
   margin: 0 0 0 auto;
   padding: 0 40px 0 0;
   font-size: 14px;
   line-height: 30px;
   text-align: center;
   text-decoration: none;
   cursor: pointer;
   color: #ff6663;
}
.btn_favorite:before{
   content: "";
   position: absolute;
   top: 0;
   right: 0;
   width: 30px;
   height: 30px;
   border-radius: 15px;
   background-color: #ff6663;
   box-shadow: 3px 3px 10px rgb(0 0 0 / 30%), -3px -3px 10px rgb(255 255 255),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
   transition: all 0.3s;
}
.btn_favorite:after{
   content: "";
   position: absolute;
   top: 0;
   right: 0;
   width: 30px;
   height: 30px;
   background-image: url(../img/common/icn_heart_w.png);
   background-position: center;
   background-repeat: no-repeat;
   background-size: 15px 15px;
}
.btn_about__wrap{
   grid-column: 1 / 3;
   width: 100%;
   display: flex;
   justify-content: flex-end;
   align-items: center;
}
.btn_about{
   position: relative;
   margin-right: 10px;
   display: block;
   margin-left: auto;
   background-color: #dfdfdf;
   color: #000;
   padding: 6px 5px 6px 10px;
   font-size: 14px;
   line-height: 14px;
}
.btn_about:after{
   content: "";
   position: absolute;
   right: -18px;
   top: 0;
   display: block;
   border-width: 13px 9px;
   border-style: solid;
   border-color: transparent transparent transparent #dfdfdf;
}
.side_cart{
   position: fixed;
   top: 190px;
   right: 0;
   width: auto;
   z-index: 1;
   transition: top 0.3s;
   pointer-events: none;
}
.side_cart.position--fix{
   top: 10px;
}
.side_cart.is-open{
   pointer-events: auto;
}
.side_cart__button{
   position: absolute;
   top: 0;
   right: 0;
   width: 60px;
   height: 60px;
   margin-left: auto;
   cursor: pointer;
   box-shadow: 3px 3px 8px rgb(0 0 0 / 30%);
   z-index: 10;
   pointer-events: auto;
}
.side_cart__button:before{
   content: "";
   position: absolute;
   top: 20px;
   left: 50%;
   width: 30px;
   height: 30px;
   transform: translateX(-55%);
   background: url(../img/common/icn_cart_w.png) center no-repeat;
   background-size: contain;
   pointer-events: none;
}
.side_cart__button:after{
   content: "";
   position: absolute;
   bottom: 1px;
   left: 50%;
   display: block;
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 0 5px 9px 5px;
   border-color: transparent transparent #ffffff transparent;
   transform: translateX(-50%)rotate(180deg);
   pointer-events: none;
}
.side_cart.is-open .side_cart__button{
   box-shadow: none;
}
.side_cart.is-open .side_cart__button:after{
   transform: translateX(-50%);
   bottom: 3px;
}
.side_cart__amount{
   position: absolute;
   top: 0;
   right: 0;
   width: 60px;
   text-align: center;
   color: #fff;
   line-height: 22px;
   text-align: center;
   font-size: 18px;
   pointer-events: none;
   z-index: 11;
}
.side_cart__list__wrap{
   transform: translateX(100%);
   transition: all 0.3s;
   overflow: hidden;
}
.side_cart.is-open .side_cart__list__wrap{
   transform: translateX(0);
   overflow: visible;
}
.side_cart__list{
   display: flex;
   justify-content: flex-start;
   align-items: center;
   flex-direction: column;
   width: 360px;
   padding: 15px 15px 30px;
   background-color: #e5e5e5;
   border:1px solid #aaaaaa;
   box-shadow: -3px 0px 8px rgb(0 0 0 / 10%);
}
.side_cart.position--def .side_cart__list{
   height: calc(100vh - 200px);
}
.side_cart.position--fix .side_cart__list{
   height: calc(100vh - 70px);
}
.side_cart__header{
   position: relative;
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   margin-bottom: 40px;
   padding-left: 50px;
   padding-right: 60px;
   z-index: 1;
}
.side_cart__header:before{
   content: "";
   position: absolute;
   top: 60%;
   left: -10px;
   display: block;
   width: 50px;
   height: 50px;
   background: url(../img/common/icn_cart.png) center no-repeat;
   background-size: contain;
   transform: translateY(-50%);
   z-index: -1;
}
.side_cart__header p{
   font-weight: bold;
}
.side_cart__header .side_cart__total{
   font-size: 20px;
   font-weight: bold;
   color: #f00;
}
.side_cart__product_wrap{
   width: 100%;
   margin-bottom: 30px;
   overflow-y: scroll;
}
.side_cart__product{
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
   padding: 10px;
   background-color: #fff;
}
.side_cart__product__img{
   width: 100px;
   margin-right: 10px;
}
.side_cart__product__img img{
   border: 1px solid rgba(0, 0, 0, 0.3);
}
.side_cart__product__contents{
   text-align: right;
   width: calc(100% - 100px);
}
.side_cart__action{
   width: 100%;
   text-align: center;
}
.side_cart__action a.btn{
   width: 100%;
}
.side_cart__action input.btn{
   margin: 0 auto;
}
.side_cart__close{
   position: absolute;
   bottom: 10px;
   right: 0;
   transform: translateX(200%);
   display: grid;
   width: 45px;
   height: 45px;
   place-content: end center;
   transition: right 0.3s;
}
.side_cart.is-open .side_cart__close{
   right: 50%;
   transform: translateX(50%);
}
   .side_cart__close:before{
      content: "×";
      position: absolute;
      left: 50%;
      top: 0;
      display: block;
      width: 25px;
      height: 25px;
      border: none;
      font-size: 24px;
      line-height: 24px;
      font-weight: bold;
      text-align: center;
      transform: translateX(-50%);
      color: #57748e;
   }
   .side_cart__close:after{
      content: "閉じる";
      position: absolute;
      bottom: 7px;
      left: 50%;
      transform: translateX(-50%);
      display: block;
      width: 100%;
      text-align: center;
      font-size: 11px;
      line-height: 11px;
      color: #57748e;
   }
.side_cart__product__contents div:nth-child(1){
   font-size: 15px;
   line-height: 20px;
   text-align-last: left;
}
.side_cart__product__contents div:nth-child(2){
   margin: 10px 0;
   font-size: 18px;
   font-weight: bold;
}
/* cart */
.cart_progress{
   position: relative;
   width: 350px;
   margin: 20px auto 40px;
}
.cart_progress:before{
   content: "";
   position: absolute;
   top: 27.5px;
   left: 50%;
   width: calc(100% - 20px);
   height: 5px;
   transform: translateX(-50%);
   background-color: #999;
}
.cart_progress ul{
   position: relative;
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 0;
}
.cart_progress li{
   position: relative;
   margin: 0;
   text-align: center;
}
.cart_progress li div:nth-child(1){
   width: 60px;
   height: 60px;
   margin: 0 auto 25px;
   line-height: 60px;
   border-radius: 30px;
   background-color: #999;
   color: #fff;
   font-size: 22px;
}
.cart_progress li div:nth-child(2){
   position: absolute;
   bottom: 0;
   left: 50%;
   font-size: 14px;
   font-weight: bold;
   white-space: nowrap;
   color: #999;
   transform: translateX(-50%);
}
.cart_progress li.is-active div:nth-child(1){
   background-color: #1abc9c;
}
.cart_progress li.is-active div:nth-child(2){
   color: #1abc9c;
}
.cart_list{
   position: relative;
   width: 100%;
   max-width: 1000px;
   margin: 20px auto;
   padding: 30px 40px;
}
.cart_list:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.cart_list__totaltext{
   margin: 0 0 30px;
   text-align: center;
}
.cart_list__totaltext p strong{
   font-size: 22px;
   font-weight: normal;
}
.history__list_wrap{
   position: relative;
   margin-bottom: 35px;
   border-style: solid;
   border-width: 0 3px 3px;
   border-color: #57748e;
}
.history__list_wrap .cart_list__table__body:last-of-type{
   margin-bottom: 0;
}
.history__list_wrap .cart_list__info .cart_list__ttl{
   width: 100%;
}
.history__list_number{
   position: relative;
   font-size: 17px;
   color: #ffffff;
   background-color: #57748e;
   padding: 15px 0 15px 20px;
}
.history__list_number:after{
   position: absolute;
   top: 50%;
   left: 20px;
   display: block;
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 0 5px 9px 5px;
   border-color: transparent transparent #ffffff transparent;
   transform: translateY(-50%)rotate(60deg);
   transition: all 0.3s;
   pointer-events: none;
}
.history__list_wrap .cart_list__table__header{
   background-color: #e6e9ed;
   color: #57748e;
   font-weight: bold;
}
.cart_list__table{
   width: 100%;
   min-width: 270px;
}
.cart_list__table h3{
   margin: 20px 0 10px;
   padding: 0 10px;
   font-size: 18px;
   font-weight: bold;
   color: #000;
}
.cart_list__table h3.history__list_number{
   background-color: #57748e;
   color: #fff;
   margin-bottom: 0;
   padding: 8px 15px;
   line-height: 26px;
   font-weight: normal;
}
.cart_list__table .history__list_transport{
   color: #000000;
   border-bottom: 2px solid #57748e;
   background-color: #fff;
   margin-bottom: 0;
   font-size: 16px;
   padding: 8px 15px;
   line-height: 26px;
   font-weight: normal;
}
.cart_list__table__header{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 100%;
   padding: 20px 15px;
   margin: 2px 0;
   background-color: #57748e;
   color: #fff;
   text-align: center;
}
.cart_list__table__header li:nth-child(1){
   width: 55%;
}
.cart_list__table__header li:nth-child(2){
   width: 15%;
}
.cart_list__table__header li:nth-child(3){
   width: 15%;
}
.cart_list__table__header li:nth-child(4){
   width: 15%;
}
.cart_list__table__header li:nth-child(5){
   width: 15%;
}
.cart_list__table__body{
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 10px 15px;
   margin: 2px 0;
   width: 100%;
   background-color: #fff;
}
.cart_list__info{
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 55%;
}
.cart_list__price{
   width: 15%;
   text-align: center;
}
.cart_list__price .sphead{
   display: none;
}
.cart_list__img{
   width: 60px;
   margin-right: 15px;
}
.cart_list__img img{
   border: 1px solid #ccc;
}
.cart_list__ttl{
   width: calc(55% - 65px);
   text-align-last: left;
}
.cart_list__ttl a{
   text-decoration: none;
   color: #333;
}
.cart_list__amount{
   position: relative;
   width: 15%;
}
.cart_list__amount .sphead{
   display: none;
}
.cart_list__amount>div:nth-of-type(1){
   width: 80px;
   line-height: 18px;
   padding: 0 25px;
   margin: 0 auto;
   text-align: center;
}
.cart_list__amount_control{
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   justify-content: space-between;
   align-items: center;
   width: 80px;
   height: 18px;
}
.cart_list__amount_control img{
   vertical-align: baseline;

}
.cart_list__amount_control>div{
   width: 18.5px;
   height: 18px;
   cursor: pointer;
}
.cart_list__amount_control>div.disabled{
   opacity: 0.4 !important;
   cursor: initial !important;
}
.cart_list__amount_control>a{
   width: 18.5px;
   height: 18px;
}
.cart_list__amount_control>a.disabled{
   opacity: 0.4 !important;
   cursor: initial !important;
}
.cart_list__amount_control>a span{
   height: 18px;
}
.cart_list__subtotal{
   width: 15%;
   font-weight: bold;
   text-align: center;
}
.cart_list__subtotal .sphead{
   display: none;
}
.cart_list__delete{
   width: 15%;
}
.cart_list__delete a{
   display: block;
   width: 26px;
   margin: 0 auto;
}
.cart_list__delete a img{
   width: 100%;
   vertical-align: middle;
}
.cart_list__total{
   display: flex;
   justify-content: flex-end;
   align-items: center;
   width: 100%;
   padding: 10px 15px;
   font-size: 18px;
   background-color: #fff;
   text-align: center;
   font-weight: bold;
}
.cart_list__total:after{
   content: "";
   display: block;
   width: 10%;
   height: 0;
}
.cart_list__total>div{
   width: 15%;
}
.cart_list__total>span{
   width: 15%;
   color: #f00;
}
.cart_list__action .btn{
   width: 220px;
}

/* cart confirm */
.confirm_wrap{
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
}
.confirm_wrap_2{
   width: 100%;
   max-width: 1200px;
   margin: 40px auto;
   background-color: #fff;
}
.confirm_wrap_2 .ec-rectHeading{
   padding: 20px;
   margin-bottom: 0;
   background-color: transparent;
}
.confirm_wrap_2 .ec-rectHeading h2{
   background-color: transparent;
   border-left: none;
   border-bottom: 1px solid #000;
   padding: 0 0 10px;
   font-weight: bold;
}
.confirm_wrap_2 .dl_table{
   padding: 0 20px 20px;
}
.confirm__info{
   width: calc(100% - 400px);
   padding: 30px;
   background-color: #e6e9ed;
}
.confirm_delivery{
   display: block;
   padding: 20px;
   margin-bottom: 30px;
   background-color: #fff;
}
.confirm_delivery__side{
   margin-top: 20px;
}
.confirm_delivery__to h5{
   display: inline-block;
   margin-bottom: 10px;
   font-size: 20px;
   font-weight: normal;
   background:linear-gradient(transparent 50%, #eee 50%);
}
.confirm_delivery__to p{
   line-height: 26px;
}
.confirm_delivery__method{
   padding: 5px;
   border-top: 1px dashed #ccc;
   border-bottom: 1px dashed #ccc;
   font-weight: bold;
   color: #1e7817;
}
.confirm_delivery__method label{
   min-width: 120px;
   color: #333;
}
.confirm_delivery__date{
   padding: 5px;
   border-bottom: 1px dashed #ccc;
   color: #1e7817;
   font-weight: bold;
}
.confirm_delivery__date label{
   min-width: 120px;
   color: #333;
}
.confirm_delivery__time{
   padding: 5px;
   border-bottom: 1px dashed #ccc;
   color: #1e7817;
   font-weight: bold;
}
.confirm_delivery__time label{
   min-width: 120px;
   color: #333;
}
.cart_list__table--confirm{
   margin-bottom: 40px;
}
.cart_list__table--confirm .cart_list__table__header{
   padding: 5px 15px;
   font-size: 14px;
}
.cart_list__table--confirm .cart_list__table__body{
   font-size: 15px;
}
.confirm_action{
   width: 360px;
   margin-top: 0 !important;
}
.confirm_action__user{
   position: relative;
   width: 100%;
   margin-bottom: 20px;
   padding: 20px;
   text-align: center;
}
.confirm_action__user:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.confirm_action__detail{
   padding: 20px;
   border: 2px solid #333;
}
.confirm_action__detail h3{
   padding: 10px;
   font-size: 18px;
   font-weight: bold;
   text-align: center;
   color: #000;
}
.confirm_action__detail dl{
   display: flex;
   justify-content: center;
   align-items: flex-start;
   flex-wrap: wrap;
   margin: 0;
   padding: 10px 0;
}
.confirm_action__detail dl dt{
   width: calc(50% - 30px);
   margin: 2px 0;
   padding: 2px 0;
   text-align: left;
}
.confirm_action__detail dl dd{
   width: calc(50% - 30px);
   margin: 2px 0;
   padding: 2px 0;
   text-align: right;
}
dl.confirm_action__detail--01{
   border-bottom: 1px solid #aaa;
}
dl.confirm_action__detail--03{
   line-height: 20px;
   background-color: #eee;
   font-size: 20px;
   font-weight: bold;
   color: #f00;
}
dl.confirm_action__detail--04{
   font-weight: bold;
}
dl.confirm_action__detail--04 dd{
   color: #1e7817;
}
.confirm_action__progress{
   flex-wrap: wrap;
}
.confirm_action__progress .btn{
   width: 260px;
   max-width: 100%;
   margin: 10px 0;
}
/* complete */
.complete_wrap{
   width: 100%;
   max-width: 1000px;
   margin: 0 auto;
   text-align: center;
}
.complete_wrap h1{
   font-size: 20px;
   margin-bottom: 40px;
   font-weight: bold;
}
.complete_wrap h1 span{
   background:linear-gradient(transparent 65%, #ffdcdc 65%);
}
.complete_wrap p{
   line-height: 28px;
   margin-bottom: 40px;
   font-size: 15px;
}
.complete__info{
   width: 700px;
   margin: 0 auto 18px;
   padding: 20px 0;
   font-size: 18px;
   background-color: #e6e9ed;
   font-weight: bold;
}
.complete__info span{
   font-weight: normal;
}
.complete__notice{
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-top: 25px;
   padding: 15px;
   border: 2px solid #333333;
}
.complete__notice dt{
   width: 280px;
   font-size: 18px;
   font-weight: bold;
}
.complete__notice dd{
   position: relative;
   width: calc(100% - 280px);
   line-height: 26px;
   font-size: 14px;
   text-align: left;
}
.complete__notice dd:before{
   content: "";
   position: absolute;
   top: 50%;
   left: -20px;
   display: block;
   height: 40px;
   width: 2px;
   transform: translateY(-50%);
   background-color: #333333;
}
.complete__notice dd a{
   color: #0472bc;
}
/* favorite */
.cat_select.is-open{
   margin-bottom: 160px;
}
.cat_select:after{
   content: "";
   position: absolute;
   bottom: -3px;
   left: 10px;
   display: block;
   width: 0;
   height: 3px;
   background-color: #0472bc;
   transition: width 0.3s;
}
.cat_select.is-open:after{
   width: calc(100% - 20px);
}
.cat_select__search{
   transition: all 0.3s;
}
.cat_select__search__btn{
   position: relative;
   display: block;
   line-height: 18px;
   margin: 0 5px;
   padding: 3px 15px 3px 30px;
   background-color: #0472bc;
   color: #fff;
   border: none;
   border-radius: 13px;
   cursor: pointer;
   z-index: 1;
}
.cat_select__search__btn:before{
   content: "";
   position: absolute;
   top: 50%;
   left: 10px;
   width: 16px;
   height: 16px;
   transform: translateY(-50%);
   background: url(../img/common/icn_search.png) center no-repeat;
   background-size: contain;
}
.cat_select__search__btn:after{
   content: "";
   position: absolute;
   top: 15px;
   left: 0;
   display: block;
   width: 100%;
   height: 0;
   background-color: #0472bc;
   transition: height 0.3s;
   z-index: -1;
}
.cat_select__search__btn.is-open:after{
   height: 20px;
}
.cat_select__body{
   display: none;
   position: absolute;
   top: 44px;
   left: 10px;
   width: calc(100% - 20px);
   height: 130px;
   transition: border 0.3s;
}

.cat_select__body .search_wrap{
   margin: 0;
}
.product_box--favorite:after{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   display: block;
   width: 40px;
   height: 40px;
   background: url(../img/common/favorite.png) center no-repeat;
   background-size: contain;

}
.btn_favorite.btn_favorite--active:before{
   box-shadow: 3px 3px 10px transparent, -3px -3px 10px transparent,inset 3px 3px 4px rgb(0 0 0 / 30%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.btn_favorite.btn_favorite--active:after{
   background-image: url(../img/common/icn_heart_y.png);
}
.favorite__icon{
   position: absolute;
   top: 0;
   left: 0;
   display: block;
   width: 40px;
   height: 40px;
   background: url(../img/common/favorite.png) center no-repeat;
   background-size: contain;
}
/* mylist_detail */
.cat_select.is-open{
   margin-bottom: 160px;
}
.cat_select:after{
   content: "";
   position: absolute;
   bottom: -3px;
   left: 10px;
   display: block;
   width: 0;
   height: 3px;
   background-color: #0472bc;
   transition: width 0.3s;
}
.cat_select.is-open:after{
   width: calc(100% - 20px);
}
.cat_select__search{
   transition: all 0.3s;
}
.cat_select__search__btn{
   position: relative;
   display: block;
   line-height: 18px;
   margin: 0 5px;
   padding: 3px 15px 3px 30px;
   background-color: #0472bc;
   color: #fff;
   border: none;
   border-radius: 13px;
   cursor: pointer;
   z-index: 1;
}
.cat_select__search__btn:before{
   content: "";
   position: absolute;
   top: 50%;
   left: 10px;
   width: 16px;
   height: 16px;
   transform: translateY(-50%);
   background: url(../img/common/icn_search.png) center no-repeat;
   background-size: contain;
}
.cat_select__search__btn:after{
   content: "";
   position: absolute;
   top: 15px;
   left: 0;
   display: block;
   width: 100%;
   height: 0;
   background-color: #0472bc;
   transition: height 0.3s;
   z-index: -1;
}
.cat_select__search__btn.is-open:after{
   height: 20px;
}
.cat_select__body{
   display: none;
   position: absolute;
   top: 44px;
   left: 10px;
   width: calc(100% - 20px);
   height: 130px;
   transition: border 0.3s;
}

.cat_select__body .search_wrap{
   margin: 0;
}
.product_box--mylist_detail:after{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   display: block;
   width: 40px;
   height: 40px;
   background: url(../img/common/mylist_detail.png) center no-repeat;
   background-size: contain;

}
/* history */

.history_list{
   position: relative;
   width: 100%;
   max-width: 1000px;
   margin: 20px auto;
   padding: 30px 40px;
   text-align: center;
}
.history_list:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.history_list__table{
   margin: 30px 0;
}
.history_list__table table{
   width: 100%;
}
.history_list__table th{
   padding: 20px 15px;
   background-color: #57748e;
   color: #fff;
   text-align: center;
}
.history_list__table td{
   padding: 15px;
   background-color: #fff;
   color: #333;
   text-align: center;
}
.history_info__wrap{
   width: calc(100% - 400px);
}
.history_info{
   position: relative;
   width: 100%;
   max-width: 1000px;
   margin: 0 auto 20px;
   padding: 30px 40px;
   text-align: center;
}
.history_info:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.history_info dl{
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   width: 300px;
   margin: 0 auto;
}
.history_info dt{
   width: 50%;
   line-height: 36px;
   margin: 0;
   text-align: left;
}
.history_info dd{
   width: 50%;
   line-height: 36px;
   margin: 0;
   text-align: right;
}
.history_fix{
   width: 100%;
}
.history_mail_list>div{
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   flex-wrap: wrap;
   width: 100%;
   margin: 10px 0;
   padding: 8px 15px;
   background-color: #fff;
   box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.1);
}
.history_mail_list>div p{
   width: 200px;
}
.history_mail_list>div a{
   width: calc(100% - 200px);
   color: #0472bc;
   cursor: pointer;
}
/* member */

.member_list{
   position: relative;
   width: 100%;
   max-width: 1000px;
   margin: 20px auto;
   padding: 30px 40px;
   text-align: center;
}
.member_list:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.member_list>p{
   font-size: 18px;
}
.member_list__table{
    margin: 30px 0;
}
.member_list__table table{
   width: 100%;
   background-color: #fff;
}
.member_list__table th{
   width: 220px;
   padding: 10px 15px;
   background-color: #57748e;
   color: #fff;
   text-align: center;
   font-weight: normal;
   border-bottom: 1px solid #fff;

}
.member_list__table td{
   padding: 10px 15px;
   background-color: #fff;
   color: #333;
   text-align: left;
   border-bottom: 1px solid #ddd;
}
.member_edit{
   display: flex;
   justify-content: space-between;
   align-items: center;
}
.member_edit dl{
   max-width: 60%;
   margin: 10px 0;
}
.member_edit dt{
   width: 100px;
}
.member_edit dt.is-open{
   display: none;
}
.member_edit dd{
   min-width: 280px;
}
.member_edit dd p{
   font-size: 14px;
}
.member_edit dd input{
   width: 100%;
   height: 32px;
   padding: 0 15px;
   margin-bottom: 5px;
   border-radius: 20px;
   border: 1px solid #ddd;
   text-align: left;
}
.member_edit dd input[type="submit"]{
   width: 120px;
   text-align: center;
   margin: 0 0 5px auto;
}
.member_edit dd input::placeholder{
   color: #bbb;
}

/* mylist */

.mylist__wrap{
   position: relative;
   width: 100%;
   max-width: 1000px;
   margin: 20px auto;
   padding: 30px 40px;
   text-align: center;
}
.mylist__wrap:before{
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: #f4f4f4;
   background-image: url(../img/common/bg.svg);
   z-index: -1;
}
.mylist__table{
   margin: 30px 0;
}
.mylist__table table{
   width: 100%;
}
.mylist__table th{
   padding: 20px 15px;
   background-color: #57748e;
   color: #fff;
   text-align: center;
}
.mylist__table th:nth-child(1){
   width: 90px;
   text-align: left;
}
.mylist__table th:nth-child(2){
   width: calc(45% - 90px);
   text-align: left;
}
.mylist__table th:nth-child(3){
   width: 15%;
}
.mylist__table th:nth-child(4){
   width: 30%;
}
.mylist__table td{
   padding: 15px;
   background-color: #fff;
   color: #333;
   text-align: center;
}
.mylist__table td .mylist_btnwrap{
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 10px;
}
.name-display{
   text-align: left;
}

/* help */
.help_list{
   width: 100%;
   max-width: 1000px;
   margin: 20px auto;
   padding: 30px 40px;
   background-color: #e6e9ed;
}
.help_list>div{
   margin-bottom: 20px;
}
.help_list>div:last-child{
   margin-bottom: 0;
}
.help_list h3{
   position: relative;
   padding: 15px 10px;
   font-size: 17px;
   font-weight: normal;
   background-color: #57748e;
   color: #fff;
   cursor: pointer;
}
.help_list h3:after {
   content: "";
   position: absolute;
   top: 50%;
   right: 10px;
   display: block;
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 0 5px 9px 5px;
   border-color: transparent transparent #ffffff transparent;
   transform: translateY(-50%)rotate(180deg);
   pointer-events: none;
}
.help_list h3.is-open:after {
   transform: translateY(-50%);
}
.help_list div > div{
   padding: 20px 20px 5px;
   background-color: #fff;
}
.help_list table{
   margin-bottom: 15px;
}
.help_list table td{
   padding: 10px;
   border: 1px solid #aaa;
}
.help_list table tr td:first-child{
   background-color: #f3f3f3;
}
.help_list h4{
   margin-top: 5px;
   margin-bottom: 10px;
   padding-bottom: 7px;
   border-bottom: 1px solid;
   font-weight: bold;
   font-size: 17px;
}
.help_list h5{
   font-size: 16px;
   font-weight: bold;
   margin: 10px 0 3px;
}
.help_list p{
   margin-bottom: 15px;
}
.help_list p a{
   text-decoration: underline;
}
.help_list ul{
   padding-left: 24px;
   margin-bottom: 15px;
}
.help_list ul li{
   list-style-type: square;
}
.help_list ul li ul li{
   list-style-type: disc;
}
.ec-rectHeading{
   margin-bottom: 22px;
}
.ec-rectHeading h2{
   background: #e0e5e9;
   border-left: 3px solid #173769;
   font-weight: normal;
   font-size: 22px;
   line-height: 32px;
   color: #000;
}
.ec-rectHeading h2 input#shopping_order_payment_type_0{
   display: none;
}
.ec-rectHeading h2 label{
   font-weight: normal;
   margin: 0;
}
.ec-rectBody{
   padding: 0 0 0 30px;
}
.ec-orderAccount{
   margin-bottom: 30px;
}
.ec-orderAccount p{
   line-height: 26px;
}
.ec-orderAccount p.orderAccount__tantou{
   margin-bottom: 14px;
}
.ec-orderAccount .orderAccount__tantou input{
   height: 35px;
   margin-left: 10px;
}
.orderAccount__info{
   padding: 12px;
   background-color: #f1f1f1;
}
.ec-orderPayment{
   margin-bottom: 30px;
}
.ec-orderDelivery{
   margin-bottom: 20px;
}
.delivery_shipping{
   margin-right: 15px;
   margin-left: 4px;
   padding: 2px 15px;
   border-radius: 6px;
   background-color: #5075d3;
   color: #fff;
}
.ec-selects{
   border-bottom: none;
}
.ec-orderCoupon{
   margin-bottom: 30px;
}

#customer_detail_box p{
   margin-top: 15px;
}
.kslogin-register{
   text-align: center;
   max-width: 400px;
   margin: 20px auto 0;
}
.kslogin-register :disabled{
   opacity: 0.5;
}
#id_kiyaku--label{
   opacity: 0.5;
}
#id_kiyaku--label.abled{
   opacity: 1;
}
.kslogin-register p{
   margin-bottom: 10px;
}
.kslogin-register--01{
   background-color: #f1f1f1;
   padding: 15px 0 2px;
   margin-bottom: 28px;
   border: 1px solid #000;
}
.konbini__info{
   display: none;
}
.konbini__info.konbini__info--visible{
   display: block;
   max-width: 100%;
   margin: 20px auto 0;
   padding: 15px;
   font-size: 17px;
   line-height: 30px;
   text-align-last: left;
   background-color: #fff;
}
.konbini__info h3{
   display: inline-block;
   padding-bottom: 5px;
   margin-bottom: 9px;
   font-weight: bold;
   font-size: 20px;
   border-bottom: 2px solid #badcff;
}
.konbini__info--visible .konbini__info p{
   display: block;
}
.order_notice_txt{
   font-size: 13px;
   color: #888888;
   margin: 10px;
   line-height: 19px !important;
}

/* hover */
@media (hover: hover) and (pointer: fine) {
   .pagetop:hover{
      opacity: 0.8;
   }
   .navi ul li a:hover:after{
   width: 60px;
   background-color: #1abc9c;
}
.btn:hover{
   transform: translateX(1px)translateY(1px);
   box-shadow:    3px 3px 10px transparent, -4px -4px 4px transparent,inset 3px 3px 4px rgba(0, 0, 0, 0.3), inset -3px -3px 4px rgba(255, 255, 255, 0.1);
}
.btn.no-shadow:hover{
   box-shadow:  inset 3px 3px 4px rgba(0, 0, 0, 0.3), inset -3px -3px 4px rgba(255, 255, 255, 0.1);
}
.topics__item__head:hover{
   color: #0472bc;
}
.search__input_select:hover:before{
   opacity: 0.9;
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 15%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.cat_select>input:hover{
   background-color: #7d92a5;
}
.btn_cart:hover{
   transform: translateX(1px)translateY(1px);
   box-shadow:    3px 3px 10px transparent, -4px -4px 4px transparent,inset 3px 3px 4px rgba(0, 0, 0, 0.3), inset -3px -3px 4px rgba(255, 255, 255, 0.1);
}
.btn_favorite:hover{
   color: rgb(255, 174, 0);
}
.btn_favorite:hover:before{
   box-shadow: 3px 3px 10px transparent, -3px -3px 10px transparent,inset 3px 3px 4px rgb(0 0 0 / 30%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.btn_favorite:hover:after{
   background-image: url(../img/common/icn_heart_y.png);
}
.btn_about:hover{
   text-decoration: none;
   color: #000;
   background-color: #b8d8ff;
}
.btn_about:hover:after{
   border-color: transparent transparent transparent #b8d8ff;
}
.side_cart__button:hover{
   box-shadow: inset 3px 3px 4px rgb(0 0 0 / 30%), inset -3px -3px 4px rgb(255 255 255 / 10%);
}
.side_cart__close:hover{
   opacity: 0.6;
}
.cart_list__amount_control>div:hover{
   opacity: 0.7;
}
.btn_favorite.btn_favorite--active:hover:before{
   box-shadow: 3px 3px 10px rgb(0 0 0 / 30%), -3px -3px 10px rgb(255 255 255),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
}

}


@media screen and (max-width: 1100px) {
   .product_list>ul{
      grid-template-columns: repeat(3,1fr);
   }
}

@media screen and (max-width: 960px) {

   /* All */
   .is--pc {display: none !important;}
   .is--sp {display: block !important;}
   .ec-input select, .ec-halfInput select, .ec-numberInput select, .ec-zipInput select, .ec-telInput select, .ec-select select, .ec-birth select{
      height: auto;
      padding: 6px 12px;
      font-size: 15px;
   }
   body.menu-open {
      overflow-y: hidden;
   }
   .btn_wrap {
      flex-wrap: wrap;
      padding: 10px;
   }
   .btn{
      min-width: 100px;
      padding: 0 16px;
      box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3), -3px -3px 6px rgba(255, 255, 255, 1),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
   }
   .btn_small{
      height: 36px;
      line-height: 36px;
      border-radius: 18px;
      font-size: 14px;
   }
   .btn_edit{
      min-width: 60px;
      height: 26px;
      margin: 0;
      padding: 0 5px;
      line-height: 26px;
      font-size: 12px;
      box-shadow: none;
      background-color: #eee;
      color: #000 !important;
      border-radius: 0;
   }
   .btn_save{
      min-width: 60px;
      height: 26px;
      margin: 0;
      padding: 0 5px;
      line-height: 26px;
      font-size: 12px;
      box-shadow: none;
      background-color: #ffee68;
      color: #000 !important;
      border-radius: 0;
   }
   .btn_wrap .btn{
      margin: 10px;
   }
   .btn_cart{
      box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.3), -3px -3px 6px rgba(255, 255, 255, 1),inset 3px 3px 4px transparent, inset -3px -3px 4px transparent;
   }
   .bg_ro{
      border-width: 1px;
   }
   .cart_list__action .btn{
      width: 180px;
   }
   .pagetop{
      right: 0;
      background-color: #666;
   }
   .pagetop:hover{
      opacity: 1;
   }
   .pagetop.pagetop--fixed{
      position: absolute;
   }
   .contents_wrap{
      padding: 20px 0 80px;
   }
   .contents_wrap.cart_fix{
      padding-top: 70px;
   }
   .contents_wrap.cart_fix.fixed{
      padding: 70px 0 120px;
   }
   
   
   /* header navi */
   .button-toggle {
      position: relative;
      display: block;
      width: 36px;
      height: 40px;
      cursor: pointer;
   }
   .button-toggle:before {
      content: "";
      position: absolute;
      top: 10px;
      left: 0;
      display: block;
      width: 100%;
      height: 2px;
      background-color: #57748e;
      transition: all 0.3s;
   }
   .button-toggle:after {
      content: "";
      position: absolute;
      top: 34px;
      left: 0;
      display: block;
      width: 100%;
      height: 2px;
      background-color: #57748e;
      transition: all 0.3s;
   }
   .toggle_parts {
      position: absolute;
      top: 22px;
      left: 0;
      display: block;
      width: 100%;
      height: 2px;
      background-color: #57748e;
      transition: all 0.3s;
   }
   .button-toggle span {
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: 100%;
      text-align: center;
      font-size: 1.2rem;
      color: #57748e;
   }
   .button-toggle.is-open:before {
      top: 20px;
      transform: rotate(45deg);
   }
   .button-toggle.is-open:after {
      top: 20px;
      transform: rotate(-45deg);
   }
   .button-toggle.is-open .toggle_parts {
      opacity: 0;
   }
   .header {
   }
   .header_inner{
      height: 140px;
      padding-bottom: 56px;
   }
   .header .ttl{
      width: 320px;
      max-width: 70%;
   }
   .navi {
      visibility: hidden;
      pointer-events: none;
      position: absolute;
      top: 130px;
      left: 0;
      width: 100%;
      height: 0;
      background-color: #fff;
      z-index: 9999;
      overflow: hidden;
   }
   .ec-layoutRole__header.is-open .navi {
      animation: showMenu 0.3s ease-in both;
   }
   @keyframes showMenu {
      0% { 
         visibility: hidden;
         pointer-events: none;
         height: 0;
      }
      100% {
         visibility: visible;
         pointer-events: inherit;
         height: calc(100vh - 90px);
      }
   }
   .ec-layoutRole__header.is-close .navi {
      animation: closeMenu 0.3s ease-in both;
   }
   @keyframes closeMenu {
      0% { 
         visibility: visible;
         pointer-events: inherit;
         height: calc(100vh - 90px);
      }
      100% {
         visibility: hidden;
         pointer-events: none;
         height: 0;
      }
   }
   .navi ul {
      padding: 0;
      flex-direction: column;
      justify-content: flex-start;
      align-items: flex-start;
      height: 100%;
   }
   .navi ul li {
      width: 100%;
      color: #000;
      border-bottom: 1px solid #dedede;
   }
   .navi ul li a {
      display: grid;
      place-content: center left;
      width: 100%;
      height: 56px;
      padding: 0 0 0 72px;
      text-align: left;
      color: #000;
   }
   .navi ul li a:before {
      left: 25px;
      width: 24px;
      height: 244px;
   }
   .navi ul li a:after {
      top: 0;
      left: 0;
      transform: inherit;
      width: 3px !important;
      height: 100%;
   }
   .navi2 {
      position: absolute;
      left: 0;
      top: 85px;
      width: 100%;
      min-width: auto;
      height: 45px;
      padding: 0px 15px;
      margin-bottom: 0;
   }
   .navi2:after{
      display: none;
   }
   .navi2>p{
      font-size: 14px;
   }
   .navi2 ul{
      width: auto;
      max-width: 100%;
      margin: 0;
   }
   .navi2 ul li{
      margin: 0 20px;
   }
   .navi2 ul li p{
      width: 85px;
      font-size: 17px;
   }
   .navi2 ul li a{
      width: 85px;
      font-size: 16px;
   }
   .navi2 ul li:before{
      width: 24px;
      height: 24px;
   }
   .navi2 ul li:after{
      transform: translateX(-50%)translateY(18px);
   }
   .navi2 ul li.navi2_icn--textbook.is--active:after{
      width: 45px;
   }
   .navi2 ul li.navi2_icn--test.is--active:after{
      width: 45px;
   }

   /* login */
   .login_wrap {
      min-height: calc(100vh - 80px);
      padding-top: 135px;
   }
      .contents_ttl:after {
      width: 22px;
      height: 18px;
   }
   .contents_ttl h2 {
      font-size: 22px;
   }
   .login_input {
      margin-bottom: 10px;
   }
   .login_input input {
      margin-bottom: 10px;
   }
   .toppage_notice {
      width: calc(100% - 20px);
      margin: 40px 0 0;
   }
   .toppage_notice p {
      text-align: left;
      font-size: 13px;
   }
   /* footer */
   .footer p {
      font-size: 11px;
   }
   /* cart button */
   .side_cart{
      top: 144px;
   }
   .side_cart.is-open{
      width: 100%;
   }
   .side_cart__button{
      width: 50px;
      height: 50px;
      transition: width 0.3s;
      box-shadow: 2px 2px 4px rgb(0 0 0 / 30%);
   }
   .side_cart__button:before{
   width: 22px;
   height: 22px;
   top: 23px;
   }
   .side_cart__button:after{
      display: none;
   }
   .side_cart__button:hover{
      box-shadow: 2px 2px 4px rgb(0 0 0 / 30%);
   }
   .side_cart__amount {
      width: 50px;
      line-height: 28px;
      font-size: 16px;
      transition: width 0.3s;
   }
   .side_cart.position--fix .side_cart__button{
      width: 42px;
   }
   .side_cart.position--fix .side_cart__amount {
      width: 42px;
   }
   .side_cart.is-open .side_cart__button{
      width: 50px;
   }
   .side_cart.is-open .side_cart__amount {
      width: 50px;
   }
   .side_cart.is-open{
      top: 0;
   }
   .side_cart__list{
      width: 100%;
      border: none;
      padding: 40px 15px 65px;
   }
   .side_cart.position--def .side_cart__list{
      height: 100vh;
   }
   .side_cart.position--fix .side_cart__list{
      height: 100vh;
   }
   .side_cart__header{
      margin-bottom: 24px;
   }
   .side_cart__action a.btn{
      max-width: 256px;
      margin-left: auto;
      margin-right: auto;
   }
   .side_cart__close{
      padding-top: 8px;
      place-content: start center;
   }

   

   /* toppage */
   .topics_wrap{
      flex-direction: column;
      width: calc(100% - 30px);
      padding: 20px 15px 15px;
      margin-bottom: 15px;
   }
   .topics_wrap .contents_ttl{
      width: 100%;
      margin-bottom: 15px;
   }
   .topics__list{
      width: 100%;
      padding: 15px;
   }
   .topics__item__head dt{
      width: 95px;
      font-size: 15px;
   }
   .topics__item__head dd{
      width: calc(100% - 95px);
      padding-right: 15px;
      font-size: 15px;
   }
   .topics__item__head dd:after{
      right: 5px;
      border-width: 0 4px 7px 4px;
   }
   .topics__item__body{
      margin: 15px 3px 30px;
      padding: 10px;
   }
   .search_wrap{
      flex-direction: column;
      width: calc(100% - 30px);
      padding: 20px 15px 15px;
      margin: 15px auto 8px;
   }
   .search__function{
      flex-direction: column;
      width: 100%;
   }
   .search__input{
      width: 100%;
   }
   .search__input_select{
      display: block;
      width: 100%;
      max-width: 480px;
      margin: 0 auto 10px;
   }
   .search__input select{
      font-size: 14px;
   }
   .search__input input{
      display: block;
      max-width: 480px;
      margin: 0 auto 10px;
      font-size: 14px;
   }
   .search_wrap .contents_ttl{
      width: 100%;
      margin-bottom: 15px;
   }
   .cat_select{
      flex-wrap: wrap;
      width: calc(100% - 30px);
      margin: 8px auto 30px;
      padding: 15px;
   }
   .cat_select h3{
      display: block;
      width: 100%;
      padding: 0 0 7px 0;
   }
   .cat_select--expand h3{
      position: relative;
      transform: inherit;
   }
   .cat_select h3:after{
      display: none;
   }
   .cat_select>input{
      margin: 7px 3px;
      padding: 10px 15px;
      line-height: 16px;
      font-size: 14px;
      border-radius: 20px;
   }
   .ec-searchnavRole{
      border-top: 1px solid #ccc;
      width: calc(100% - 8px);
      padding: 15px 0 5px !important;
   }
   .ec-searchnavRole .ec-searchnavRole__infos{
      flex-direction: row;
      align-items: center;
      padding: 0 11px;
      border-top: none;
   }
   .ec-searchnavRole .ec-searchnavRole__counter{
      width: calc(100% - 100px);
      margin: 0;
      font-size: 14px;
   }
   .ec-searchnavRole .ec-searchnavRole__actions{
      width: 100px;
   }
   .ec-searchnavRole .ec-searchnavRole__actions .ec-select{
      margin-bottom: 0;
   }
   .ec-searchnavRole .ec-searchnavRole__actions .ec-select select{
      padding: 3px 12px;
      font-size: 14px;
   }

   /* mosi */
   .mosi_intro{
      width: calc(100% - 30px);
      padding: 0 0 15px;
      margin-bottom: 15px;
   }
   .mosi_intro__notice{
      padding: 12px 14px 12px 52px;
   }
   .mosi_intro__notice:after{
      left: 17px;
      width: 20px;
      height: 20px;
   }
   .mosi_intro ul li:nth-child(n + 2){
      margin-top: 15px;
   }

   /* product */
   .product_list{
      width: calc(100% - 30px);
   }
   .product_list>ul{
      grid-template-columns: repeat(2,1fr);
      gap: 15px;
   }
   .product_list>ul:before{
      display: none;
   }
   .product_list>ul:after{
      display: none;
   }
   .product_box{
      display: grid;
      grid-template-columns: 25% 25% 20% 30%;
      gap: 14px 0;
      width: 100%;
      max-width: 480px;
      min-width: 275px;
      padding: 22px 15px 15px;
      margin: 0 auto;
      /* border: 0; */
   }
   .product__img{
      grid-column: 4 / 5;
      grid-row: 1 / 4;
      width: 100%;
   }
   .product__img img{
      border: 1px solid rgba(0, 0, 0, 0.2);
      box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.2);
   }
   .product__ttl{
      grid-column: 1 / 4;
      grid-row: 1 / 2;
      min-height: inherit;
      margin: 0;
      padding-right: 10px;
   }
   .product__price{
      grid-column: 1 / 4;
      grid-row: 2 / 3;
      text-align: left;
      margin: 0;
   }
   .product__amount_wrap{
      grid-column: 1 / 2;
      grid-row: 3 / 4;
   }
   .product__amount input{
      box-shadow: inset 2px 2px 3px rgb(0 0 0 / 10%), inset -2px -2px 3px rgb(255 255 255 / 10%);
   }
   .btn_cart{
      grid-column: 2 / 4;
      grid-row: 3 / 4;
      margin: 0 20px;
   }
   .favorite__icon{
      width: 28px;
      height: 28px;
   }
   .btn_favorite{
      grid-column: 1 / 5;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: row-reverse;
      width: 100%;
      height: 38px;
      line-height: 16px;
      padding: 0;
      margin: 10px 10px 0 0;
      text-align: center;
      background-color: #ff6663;
      color: #fff;
      font-size: 13px;
   }
   .btn_favorite:before{
      display: none;
   }
   .btn_favorite:after{
      position: static;
      width: 15px;
      height: 100%;
      margin-right: 3px;
   }
   .btn_favorite.btn_favorite--active{
      padding: 0;
      text-align: center;
      color: #ffeea8;
   }
   .btn_favorite.btn_favorite--active:after{
      display: none;
   }
   .btn_about__wrap{
      grid-column: 1 / 5;
      /* margin-top: 10px; */
      margin-top: 0;
   }
   .btn_about{
      width: 100%;
      line-height: 38px;
      /* margin: 0 0 0 10px; */
      margin: 0;
      padding: 0;
      background-color: #57748e;
      color: #fff;
      text-align: center;
   }
   .btn_about:after{
      display: none;
   }
   .btn_favorite:hover{
      color: #fff;
   }
   .btn_about:hover{
      background-color: #57748e;
      color: #fff;
   }
   /* cart */
      .cart_progress{
         width: calc(100% - 50px);
         max-width: 450px;
         margin: 4px auto 34px;
      }
      .cart_progress:before{
         top: 23px;
      }
      .cart_progress li div:nth-child(1){
         width: 46px;
         height: 46px;
         line-height: 46px;
         font-size: 17px;
      }
      .cart_progress li div:nth-child(2){
         font-size: 12px;
         letter-spacing: -0.5px;
         font-weight: normal;
      }
      .cart_list{
         width: calc(100% - 30px);
         padding: 40px 15px 30px;
      }
      .cart_list__totaltext{
         margin: 0 0 40px;
      }
      .cart_list__table__header{
         display: none;
      }
      .cart_list__table__body{
         display: grid;
         grid-template-columns: 26% 24% 40% 10%;
         grid-template-rows: repeat(3, auto);
         gap: 16px 0;
         max-width: 520px;
         margin-left: auto;
         margin-right: auto;
         padding: 15px 10px;
      }
      .cart_list__img{
      grid-column: 1 / 2;
      grid-row: 1 / 3;
      justify-self: center;
      width: 100%;
      max-width: 130px;
      margin: 0;
      padding: 0 15px 0 0;
      }
      .cart_list__ttl{
      grid-column: 2 / 4;
      grid-row: 1 / 2;
      width: 100%;
      font-size: 18px;
      }
      .cart_list__price{
      grid-column: 2 / 4;
      grid-row: 2 / 3;
      align-self: start;
      width: 100%;
      text-align: left;
      font-size: 25px;
      }
      .cart_list__price .sphead{
         display: inline-block;
         font-size: 14px;
         font-weight: normal;
      }
      .cart_list__price > div{
         display: inline-block;
         padding-left: 10px;
      }
      .cart_list__amount{
      grid-column: 1 / 3;
      grid-row: 3 / 4;
      width: 100%;
      padding-top: 10px;
      text-align: center;
      font-size: 18px;
      }
      .cart_list__amount .sphead{
         display: block;
         font-size: 14px;
         font-weight: normal;
      }
      .cart_list__amount_control{
         top: auto;
         bottom: 0;
      }
      .cart_list__subtotal{
      grid-column: 3 / 5;
      grid-row: 3 / 4;
      padding-top: 10px;
      width: 100%;
      font-size: 18px;
      }
      .cart_list__subtotal .sphead{
         display: block;
         font-size: 14px;
         font-weight: normal;
      }
      .cart_list__subtotal > div{
         line-height: 32px;
      }
      .cart_list__delete{
      grid-column: 4 / 5;
      grid-row: 1 / 2;
      width: 100%;
      padding-left: 10px;
      margin-bottom: auto;
      }
      .cart_list__delete a{
         width: 22px;
      }
      .cart_list__total{
         padding: 30px 0 20px;
         background-color: transparent;
      }
      .cart_list__total>div{
         width: 50%;
         font-size: 15px;
      }
      .cart_list__total>span{
         width: 50%;
      }
      .cart_list__amount_control{
         width: 80%;
         max-width: 150px;
         min-width: 100px;
         height: 32px;
      }
      .cart_list__amount_control>a{
         width: 32px;
         height: 32px;
      }
      .cart_list__amount_control>div{
         width: 32px;
         height: 32px;
      }
      .cart_list__amount>div:nth-of-type(1){
         max-width: 150px;
         line-height: 32px;
         font-size: 18px;
         font-weight: bold;
      }
      /* order */
      .ec-orderRole{
         flex-direction: column;
         padding-left: 10px;
         padding-right: 10px;
         font-size: 15px;
      }
      .ec-orderRole .ec-orderRole__detail{
         width: 100%;
      }
      .ec-orderRole .ec-orderRole__summary{
         width: 100%;
         font-size: 15px;
      }
      .ec-rectHeading h2{
         font-size: 18px;
         line-height: 25px;
      }
      .ec-rectBody{
         line-height: 1.6em;
         padding: 0 0 0 8px;
      }
      .ec-orderAccount p.orderAccount__tantou{
         margin-bottom: 20px;
      }
      .ec-orderAccount .orderAccount__tantou input{
         width: calc(100% - 6em);
         max-width: 380px;
      }
      .orderAccount__info{
         padding: 10px;
      }
      .delivery_shipping{
         display: inline-block;
         padding: 5px 20px;
         margin: 0 15px 15px 0;
      }
      .ec-select label{
         min-width: 90px;
      }
      .cart_list__table h3{
         max-width: 520px;
         background-color: #57748e;
         color: #fff;
         padding: 8px 15px;
         line-height: 26px;
         margin-left: auto;
         margin-right: auto;
         margin-bottom: 0;
         font-weight: normal;
      }
      .cart_list__table--confirm .cart_list__table__body{
         grid-template-columns: 26% 39% 35%;
      }
      .cart_list__table--confirm .cart_list__table__body{
         max-width: 520px;
         margin-top: 0;
         margin-bottom: 0;
         border-bottom: 1px solid #ccc;
      }
      .confirm__info .cart_list__table__body:last-child{
         border-bottom: none;
      }
      .cart_list__table--confirm .cart_list__img{
         grid-row: 1 / 4;
      }
      .cart_list__table--confirm .cart_list__subtotal{
         width: fit-content;
         justify-self: end;
      }
      .cart_list__table--confirm .cart_list__amount{
         grid-column: 1 / 3;
         width: fit-content;
         justify-self: end;
         padding: 10px 5px 0;
      }
      .cart_list__table--confirm .cart_list__amount>div:nth-child(1){
         padding: 0;
         line-height: 24px;
      }
      .cart_list__table--confirm .cart_list__subtotal > div{
         line-height: 24px;
      }
      #customer_detail_box p .btn{
         width: 80%;
         max-width: 400px;
         margin: 0 auto;
      }
      .confirm_action__detail{
         max-width: 460px;
         margin: 0 auto;
      }
      .confirm_action__detail dl dt{
         width: calc(50% - 20px);
      }
      .confirm_action__detail dl dd{
         width: calc(50% - 20px);
      }
      .ec-cartRole .ec-cartRole__error .ec-alert-warning{
         max-width: 90%;
      }
      #gmo_payment_gateway_credit_form{
         line-height: 1.6;
      }
      #gmo_payment_gateway_credit_form .dl_table dl {
         display: block !important;
         height: auto !important;
         margin-bottom: 8px;
      }
      #gmo_payment_gateway_credit_form .dl_table dl dt{
         display: block;
         width: 100%;
         padding: 10px 0;
         font-weight: bold;
      }
      #gmo_payment_gateway_credit_form .dl_table dl dd{
         display: block;
         width: 100%;
      }
      #gmo_payment_gateway_credit_form .dl_table dl dd div{
         display: block;
      }
      #shopping_order_card_name1, #shopping_order_card_name2{
         display: block !important;
      }
      #gmo_payment_gateway_credit_form .dl_table input.form-control{
         display: block;
         width: 100%;
         max-width: 320px;
      }

      /* confirm */
      .confirm_wrap{
         flex-direction: column;
         line-height: 1.6;
      }
      .confirm__info{
         width: 100%;
         margin-bottom: 20px;
      }
      .confirm_action{
         width: calc(100% - 30px);
         margin: 0 auto;
      }
      .confirm__info{
         width: calc(100% - 30px);
         margin: 0 auto 20px;
         padding: 36px 15px 10px;
      }
      .confirm_delivery{
         padding: 15px;
         margin-bottom: 40px;
      }
      .confirm_delivery__to h5{
         font-size: 18px;
      }
      .confirm_delivery__side{
         margin-top: 10px;
      }
      .confirm_delivery__method label{
         min-width: 100px;
      }
      .confirm_delivery__date label{
         min-width: 100px;
      }
      .confirm_delivery__time label{
         min-width: 100px;
      }
      .confirm_action__user{
         margin: 0 auto 20px;
      }
      .confirm_wrap_2 .ec-rectHeading{
         padding: 15px;
      }
      .confirm_wrap_2 .dl_table{
         padding: 0 20px 20px;
      }

      /* complete */

      .complete_wrap{
         width: calc(100% - 30px);
      }
      .complete_wrap h1{
         padding: 20px 0;
      }
      .complete_wrap p{
         text-align: left;
      }
      .complete__info{
         width: 100%;
         max-width: 460px;
         font-size: 15px;
      }
      .complete__notice{
         flex-direction: column;
         padding: 15px 15px 30px;
      }
      .complete__notice dt{
         width: 100%;
         padding: 15px 0 25px;
         margin-bottom: 15px;
         border-bottom: 1px solid #000;
      }
      .complete__notice dd{
         width: 100%;
      }
      .complete__notice dd:before{
         display: none;
      }
      .complete__notice dd a{
         text-decoration: underline;
      }

      /* favorite */

      .cat_select__search{
         order: 999;
      }
      .product_box--favorite:after{
         width: 28px;
         height: 28px;
      }
      .cat_select__search__btn{
         margin: 7px 3px;
         padding: 10px 15px 10px 35px;
         line-height: 16px;
         font-size: 14px;
         border-radius: 20px;
         transition: transform 0.3s ease-out , border-radius 0.3s ease-out;
      }
      .cat_select__search__btn:hover{
         text-decoration: none;
         color: #fff;
      }
      .cat_select__search__btn.is-open{
         transform: translateY(20px);
         border-radius: 20px 20px 0 0;
      }
      .cat_select.is-open{
         margin-bottom: 400px;
      }
      .cat_select:after{
         left: 0;
      }
      .cat_select.is-open:after{
         width: 100%;
      }
      .cat_select__search__btn.is-open:after{
         height: 25px;
      }
      .cat_select__body{
         position: absolute;
         bottom: 0;
         top: auto;
         left: 0;
         transform: translateY(100%);
         width: 100%;
         height: auto;
      }
      .cat_select__body .search_wrap{
         width: 100%;
         padding: 30px 15px 15px;
      }

      /* history list */

      .history_list{
         width: calc(100% - 30px);
         padding: 30px 14px;
      }
      .history_list__table tr{
         position: relative;
      }
      .history_list__table th{
         font-size: 14px;
         padding: 15px 5px;
      }
      .history_list__table tr th:nth-child(1){
         width: 12%;
      }
      .history_list__table tr th:nth-child(2){
         width: 23%;
      }
      .history_list__table tr th:nth-child(3){
         width: 38%;
      }
      .history_list__table tr th:nth-child(4){
         width: 26%;
      }
      .history_list__table tr th:nth-child(5){
         width: 1%;
      }
      .history_list__table td{
         font-size: 16px;
         padding: 16px 5px 60px 5px;
         border-bottom: 1px solid #ccc;
      }
      .history_list__table tr td:nth-child(4){
         font-weight: bold;
      }
      .history_list__table tr td:nth-child(5){
         position: relative;
      }
      .history_list__table tr td:nth-child(5) a{
         position: absolute;
         bottom: 15px;
         right: 5vw;
      }
      .history_list__table tr:last-child td{
         border-bottom: none;
      }

      /* history detail */
      .history_info__wrap{
         width: 100%;
      }
      .history_info{
         width: calc(100% - 30px);
         padding: 30px 20px 20px;
      }
      .history__list_wrap{
         max-width: 520px;
         margin-left: auto;
         margin-right: auto;
         border-width: 0 2px 2px;
      }
      .cart_list__table .history__list_transport{
         color: #57748e;
         padding: 12px 10px;
         border-bottom-width: 1px;
         font-size: 15px;
      }
      .history__list_wrap .cart_list__table__body{
         grid-template-columns: 0% 65% 35%;
      }
      .history_mail_list>div{
         flex-direction: column;
         padding: 8px 10px;
      }
      .history_mail_list>div p{
         width: 100%;
      }
      .history_mail_list>div a{
         width: 100%;
         font-size: 14px;
      }
      .ec-orderMail__body{
         width: 100%;
         padding: 5px;
         word-break: break-all;
         font-size: 13px;
      }

      /* member */
      .member_list{
         width: calc(100% - 30px);
         padding: 30px 15px 10px;
      }
      .member_list__table tr{
         display: block;
      }
      .member_list__table th{
         display: block;
         width: 100%;
         text-align: left;
         font-size: 16px;
      }
      .member_list__table td{
         display: block;
         padding: 12px 15px 15px;
      }
      .member_list__table td.member_edit p{
         margin-bottom: 15px;
      }
      .member_edit dl{
         max-width: 100%;
      }
      .member_edit dd{
         min-width: inherit;
      }
      .member_edit dd input{
         height: 40px;
         margin-bottom: 14px;
         font-size: 14px;
      }
      .member_edit dd input[type="submit"]{
         margin: 0 auto 5px 0;
      }

      
      /* mylist */

      .mylist__wrap{
         width: calc(100% - 30px);
         padding: 30px 14px;
      }
      .mylist__table tr{
         position: relative;
         display: grid;
         grid-template-columns: 25% 25% 20% 30%;
         border-bottom: 1px solid #ccc;
         background-color: #fff;
      }
      .mylist__table th{
         width: 100%;
         font-size: 14px;
         padding: 15px 10px;
      }
      .mylist__table th:nth-child(1){
         display: none;
      }
      .mylist__table th:nth-child(2){
         width: 100%;
         grid-column: 1 / 4;
         grid-row: 1 / 2;
      }
      .mylist__table th:nth-child(3){
         width: 100%;
         grid-column: 4 / 5;
         grid-row: 1 / 2;
      }
      .mylist__table th:nth-child(4){
         display: none;
      }
      .mylist__table td{
         width: 100%;
         font-size: 15px;
         padding: 16px 10px;
         border-bottom:none;
      }
      .mylist__table td:nth-child(1){
         width: 100%;
         padding-bottom: 10px;
         grid-column: 1 / 2;
         grid-row: 2 / 3;
      }
      .mylist__table td:nth-child(2){
         width: 100%;
         padding-bottom: 10px;
         grid-column: 1 / 4;
         grid-row: 1 / 2;
      }
      .mylist__table td:nth-child(3){
         width: 100%;
         padding-bottom: 0;
         grid-column: 4 / 5;
         grid-row: 1 / 2;
      }
      .mylist__table td:nth-child(4){
         width: 100%;
         padding-top: 10px;
         grid-column: 2 / 5;
         grid-row: 2 / 3;
      }
      .mylist__table td .mylist_btnwrap{
         max-width: 400px;
         margin-left: auto;
      }

      /* help */

      .help_list{
         width: 100%;
         padding: 15px;
      }
      .help_list h3{
         padding: 15px 30px 15px 15px;
         font-size: 17px;
      }
      .help_list div > div{
         padding: 15px 15px 3px;
      }
      .help_list p{
         font-size: 15px;
         margin-bottom: 15px;
      }
      .help_list h4{
         font-size: 17px;
         line-height: 22px;
         margin-top: 5px;
      }
      .help_list h5{
         margin: 14px 0 5px;
         font-size: 16px;
      }
      .help_list table{
         margin-bottom: 15px;
      }
      .help_list table td{
         padding: 5px;
         font-size: 15px;
      }
      .help_list table tr td:first-child{
         width: 25%;
         min-width: 70px;
      }

}

@media screen and (max-width: 720px) {
   body {
      font-size: 15px;
   }
   .btn_small{
      height: 30px;
      line-height: 30px;
      border-radius: 15px;
      font-size: 13px;
   }
   
   .navi2>p{
      font-size: 13px;
   }
   
   .navi2 ul li{
      margin: 0 10px;
   }
      .navi2 ul li p{
      width: 85px;
      font-size: 16px;
   }
   .contents_ttl h2 {
      font-size: 20px;
   }
   .product_list>ul{
      grid-template-columns: 1fr;
   }
   .topics__item__head dt{
      font-size: 14px;
   }
   .topics__item__head dd{
      font-size: 14px;
   }
      .cat_select>input{
      padding: 8px 15px;
      font-size: 13px;
      border-radius: 16px;
   }
   .cat_select__search__btn{
      padding: 8px 15px 8px 35px;
      line-height: 16px;
      font-size: 13px;
      border-radius: 16px;
   }
   .cat_select__search__btn.is-open{
      transform: translateY(16px);
      
         border-radius: 16px 16px 0 0;
   }
   .cart_list__table__body{
      gap: 6px 0;
   }
   .cart_list__ttl{
      font-size: 15px;
   }
   .cart_list__price{
      font-size: 22px;
   }
   .cart_list__price:before{
      font-size: 12px;
   }
   .cart_list__amount{
      font-size: 16px;
   }
   .cart_list__amount:before{
      font-size: 12px;
   }
   .cart_list__subtotal:before{
      font-size: 12px;
   }
   .history_list__table td{
      padding: 15px 5px 50px 5px;
      font-size: 14px;
   }
   .help_list div > div{
      padding: 15px 10px 3px;
   }
   .help_list h3{
      font-size: 16px;
   }
   .help_list h4{
      font-size: 16px;
   }
   .help_list h5{
      font-size: 15px;
   }
   .help_list p{
      font-size: 14px;
   }
   .help_list table td{
      font-size: 14px;
   }
   .member_list__table th{
   font-size: 15px;
}
}
/* ==============================================
// マイリストボタンのスタイル
// =========================================== */
.btn_mylist {
    /* 列を占める */
    grid-column: 1 / 3;
    /* 6行目 (お気に入りの下に配置) に変更 */
    /* grid-row: 6 / 7; */

    /* 高さの調整(例: 38px) */
    /* height: 32px; */
    line-height: 24px; /* テキストを垂直中央寄せ */
    padding: 2px 0;

    /* 幅と配置の調整: 2/3の幅で右寄せ */
    width: 138px;
    margin-left: auto; /* 右寄せにする (grid-column: 1 / 5 の中で右に寄る) */

    /* 【デザイン: 水色 (当初の要望) 】 */
    background-color: #00bcd4; /* 水色 */
    color: #ffffff !important;
    /* border: none; */
    border-radius: 5px;
    font-size: 13px;
    /* font-weight: normal; */
    text-align: center;
    /* cursor: pointer; */
    
    /* 文字列を1行で表示 */
    /* white-space: nowrap; */
}

/* マウスオーバー時 */
.btn_mylist.hover {
    background-color: #00a4b9;
    /* opacity: 1; 不透明度を戻す */
    /* color: #fff; 文字色を白に維持 */
}

@media screen and (max-width: 960px){

   .btn_mylist{
      grid-column: 1 / 5;

      width: 100%;
      margin-top: 0;
      padding: 7px 5px;
      font-size: 14px;
      border-radius: 0;
   }
}
