/* カスタマイズ用CSS */

/* iOS Safari対策 */
html {
  height: -webkit-fill-available;
}

body {
    margin: 0;
}

header {
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 999;
}

footer {
    /*position: sticky;*/
    border-top: 1px solid #eaeaea;
    width: 100%;
    /*height: 30px;
    z-index: 999;*/
    background-color: #E7F2F9;
}

aside {
    overflow-y: auto;
    overflow-x: hidden;
}

main {
    min-height: calc(100vh - 141px);
}

.ec-headerNavSP {
    padding: 6px;
    width: 23px;
    height: 23px;
    font-size: 22px;
    right: 10px;
    left: unset;
    top: 14px;
}
.ec-drawerRole {
    transform: translateX(260px);
    left: unset;
    right: 0;
}
.have_curtain .ec-overlayRole {
    display: block;
    opacity: 1;
    background: rgba(0, 0, 0, 0.5);
    visibility: visible;
    backdrop-filter: blur(12px);
    z-index: 1000;
}

.ec-layoutRole__header {
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 999;
}
.ec-layoutRole__contents {
    /*margin-bottom: 530px;*/
}
    .ec-layoutRole .ec-layoutRole__contents {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: 0 4% 60px;
        width: 100%;
        max-width: unset;
    }
    .ec-layoutRole__header .ec-headerNaviRole {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        background-color: #fff;
        -webkit-box-shadow: 0 2px 6px rgba(178, 178, 178, .9);
        box-shadow: 0 2px 6px rgba(178, 178, 178, .9);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding: 2px 0px 0px 0px;
        position: relative;
        z-index: 999;
        max-width: none;
        min-height: 6vh;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__left{
        height: 30px;
        min-width: 50%;
        padding-left: 5px;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__left img {
        width: 100%;
        height: 100%;
        max-width: 591px;
        max-height: 55px;
        object-fit: contain;
        object-position: left;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__center{
        display: unset;
    }
    .ec-headerNaviRole .ec-headerNaviRole__search {
        display: none;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__right{
        display: none;
    }
    
    .ec-headerSearch .ec-headerSearch__category .ec-select.ec-select_search {
        background: #053a70;
    }

    .ec-sliderRole {
        display: none;
    }

    .ec-headerNav {
        display: inline-flex;
        gap: 5px;
        justify-content: center;
        flex-wrap: nowrap;
        align-items: center;
        flex-direction: row;
    }
    
    .ec-headerNav .ec-headerNav__itemIcon {
        color: #053a70;
    }

    .ec-headerNav .ec-headerNav__itemLink {
        display: none;
    }

    .ec-headerNaviRole *, .ec-headerNaviRole *::before, .ec-headerNaviRole *::after {
        align-self: center;
    }
    .ec-headerNaviRole .ec-headerNaviRole__nav a {
        color: inherit;
        text-decoration: none;
        text-align: center;
        display: grid;
        justify-items: center;
    }

    .side-nav {
        display: none;
    }
    
    .side-nav ul {
        margin-top: 0;
        margin-bottom: 1rem;
        padding-left: 2rem;
        list-style: none;
    }

    .side-nav-title {
        border-bottom: 2px solid #e5e5e5;
        border-top: 2px solid #e5e5e5;
        font-weight: 600;
        padding: 20px 0;
        text-align: center;
        letter-spacing: 1px;
        color: #053a70;
    }
    
    .side-nav-category > li {
        border-bottom: 1px dashed #e5e5e5;
        padding: 34px 0;
    }
    .side-nav-category > li:last-child {
        border-bottom: none;
    }
    .side-nav-category a {
        background: url(./../../../../html/template/default/assets/img/common/icon-arrow-right.png) no-repeat right 4% center/7px 12px;
        display: block;
        padding-right: 20px;
        color: #333;
    }
    .side-nav-category > li > a {
        font-size: 12px;
        font-weight: 600;
    }
    .side-nav-category > li > a,
    .side-nav-sub-category li {
        margin-bottom: 28px;
    }
    .side-nav-category > li > a:last-child,
    .side-nav-sub-category li:last-child {
        margin-bottom: 0;
    }
    .side-nav-sub-category a {
        font-size: 12px;
        color: #333;
    }
    .side-nav-category .side-nav-sub-category {
        padding-left: 0;
    }

    .ec-cartNavi .ec-cartNavi__label {
        display: none;
    }

    .ec-cartNavi .ec-cartNavi__label {
        padding: 0px;
        margin-top: -13px;
    }
    .ec-cartNavi .ec-cartNavi__icon {
        font-size: 20px;
        color: #053a70;
    }
    .ec-cartNavi .ec-cartNavi__badge {
        left: -10px;
        top: -7px;
        font-size: 9px;
        min-width:14px;
        height: 14px;
        padding: 4px;
    }
    .ec-cartNaviIsset.is-active {
        display: initial;
        box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.25);
        background: #F0F0F0;
    }
    .ec-cartNaviIsset {
        margin-top: 10px;
        min-width: 375px;
        max-width: 375px;
    }
    .ec-cartNaviIsset .ec-cartNaviIsset__cartContentTitle {
        font-size: 1.2rem;
    }

.ec-footerRole {
    background: #E7F2F9;
    color: rgb(51,51,51);
    border-top: 1px solid #eaeaea;
    padding-top:0px;
    margin-top:0px;
}
.ec-footerNavi {
    color: rgb(51,51,51);
    padding-right: 40px;
    list-style: none;
    text-align: center;
    display: grid;
    align-content: space-between;
    justify-content: end;
    justify-items: end;
}

    .ec-drawerRoleClose.is_active {
        left: 10px;
    }

/* フッター領域 */
#footer {
    /*position: sticky;
    border-top: 1px solid #eaeaea;
    width: 100%;
    height: 30px;
    z-index: 100;
    bottom: 0;
    background-color: #E7F2F9;*/
}
.ec-footerTitle__container {
  /* position: absolute; */
  /*bottom: 30px; コピーライト(30px)のすぐ上に配置 */
  left: 0;
  width: 100%;
  height: 500px;
  background-color: #E7F2F9;
  /*overflow-y: auto;*/
  transition: transform 0.4s ease-out, opacity 0.3s;
  /* 初期状態：自分の高さ分（470px）だけ下に下げて隠す */
  /*transform: translateY(500px);*/
  /*opacity: 0;*/
  /*pointer-events: none; 隠れている時はクリック不可 */
}
.ec-footer__calendar {
    display: flex;
    flex-flow: column;
}
.ec-footerTitle__copyright {
    position: sticky;
    z-index: 1000;
    bottom: 0;
    height: 30px;
    background: #053a70;
    color: #fff;
    font-size: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
}
.ec-blockTopBtn {
    bottom: 34px;
}

/* mypage の場合商品カテゴリーツリーを非表示に */
body.mypage .ec-layoutRole__contents aside.ec-layoutRole__left {
    display: none;
}
body.mypage .ec-layoutRole__contents main.ec-layoutRole__mainWithColumn {
    width: 100%;
}

/* 最下部到達時にクラス付与 */
#footer.is-expanded .ec-footerTitle__container {
  /* 1と2の高さ分だけ上にスライドさせる */
  /* JSで中身の高さを取得して動的に変えるのが理想ですが、固定なら-200px等 */
  /*transform: translateY(0); 
  opacity: 1;
  pointer-events: auto;*/
}

.ec-calendar .ec-calendar__holiday {
    color: #FFF !important;
    background: #DE5D50 !important;
}

@media screen and (min-width: 1280px) {
    #page_mypage_login main .ec-role {
        max-width: 65vw;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__center {
        display: unset;
        min-width: 400px;
        width: 400px;
    }
    .ec-headerNav .ec-headerNav__itemLink {
        display: block;
    }
    .ec-cartNavi .ec-cartNavi__label {
        display: block;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__center{
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__left {
        height: 40px;
        min-width: 33.33333333%;
        max-width: 33.33333333%;
    }
    .ec-headerNaviRole .ec-headerNaviRole__search {
        display: block;
    }
}

@media screen and (min-width: 1000px) {
    body {
        margin-bottom:60px;
    }
    
    header {
        height: 95px;
        line-height: 95px;
    }
    
    footer {
        border-top: 1px solid #eaeaea;
    }

    .ec-cartNavi .ec-cartNavi__icon {
        font-size: 30px;
    }
    .ec-cartNavi .ec-cartNavi__badge {
        left: -20px;
        top: -6px;
        font-size: 10px;
        padding: 5px;
        height: 17px;
        min-width: 17px;
    }
    .ec-layoutRole__header .ec-headerNaviRole {
        padding: 20px 30px;
    }

    .ec-layoutRole__contents aside {
        /*min-height: calc(100vh - (96px + 60px));*/
        padding: 0 20px 0 20px;
    }
    
    .ec-layoutRole__contents main {
        width: calc(100vw - 256px);
    }

    .ec-searchnavRole,.ec-searchnavRole .ec-searchnavRole__infos,.ec-shelfRole {
        max-width: unset;
    }

    .ec-shelfGrid .ec-shelfGrid__item {
        max-width: 256px;
    }

    .ec-layoutRole__contents {
        display: inline-flex;
        padding-top: 16px;
        width: 100%;
    }

    .ec-headerNav .ec-headerNav__itemIcon {
        margin-left: 0;
        margin-right: 0;
        font-size: 32px;
    }

    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__left{
        height: 40px;
        width: 50%;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__left img {
        width:100%;
        max-width: 591px;
        object-fit: scale-down;
    }

    .ec-sliderRole {
        display: block;
    }
    .ec-layoutRole .ec-layoutRole__contents {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: 0 10px 80px 30px;
        width: 100%;
        max-width: unset;
    }
    .side-nav {
        display: block;
        width: 200px;
    }
    
    #page_mypage_login main {
        grid-row: 2;
        grid-column: 1 / 4;
    }

    
    .ec-footerTitleWrap {
        display: grid;
        grid-template-columns: 1fr 1fr;
        padding: 10px 0px;
    }
    .ec-footerTitleWrap .ec-footerTitle__logo {
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
    }
    .ec-footerTitleWrap .ec-footerTitle__info {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
    .ec-footerRole__inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        padding: 10px 0px;
    }
}

@media only screen and (min-width: 768px) {
    .ec-cartNaviIsset::before {
        display: inline-block;
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0 8.5px 10px 8.5px;
        border-color: transparent transparent #f8f8f8 transparent;
        position: absolute;
        top: -9px;
        right: 30px;
        
    }
    .ec-headerNaviRole__center .ec-headerRole__navSP {
        display: none;
    }
    .ec-layoutRole__header .ec-headerNaviRole .ec-headerNaviRole__right{
        width: 100%;
        padding-right: 20px;
        display: flex;
    }
    .ec-topicpath {
        padding: 20px 0 20px;
        border: 0;
        font-size: 1.0rem;
    }
    .ec-cartNavi {
        display: grid;
        margin: 0;
        padding: 0;
        justify-items: center;
        min-width: unset;
        background: transparent;
    }
    .ec-footerRole .ec-footerRole__inner {
        margin: 0 auto;
        padding: 10px 0px;
        box-sizing: border-box;
        font-size: 16px;
        line-height: 1.4;
        color: #525263;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}

@media only screen and (max-width: 768px) {
    .ec-footerTitle__logo img {
        width: 100%;
        padding: 5px;
    }
    .ec-calendar {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        column-gap: 30px;
        margin: auto;
    }
    .ec-calendar__month {
        margin-top:0;
    }
    .ec-footerTitle__info {
        display: flex;
        flex-direction: column;
        float: inline-end;
        margin-top: 16px;
    }
}

/* SP用 */
@media only screen and (max-width: 430px) {
    .ec-footerTitle__copyright {
        font-size: 0.8rem;
    }
    .ec-footerTitle__info {
        display: flex;
        flex-direction: column;
        gap: 5px;
        margin-top: 16px;
        float:unset;
    }
}