@charset 'utf-8';

html {
    scroll-behavior: smooth;
}

.mt0 {margin-top: 0px !important;}
.mb0 {margin-bottom: 0px !important;}
.mb5 {margin-bottom: 5px !important;}
.mb10 {margin-bottom: 10px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}

.ml1em {margin-left: 1em;}

/*================================================*/

.pc-hide {display: none !important;}
.mobile-on {display: none !important;}

@media screen and (max-width:1200px) {
    .mobile-on {display: block !important;}
}

@media screen and (max-width:660px) {
    .mobile-display-block {display: block !important;}
    .mobile-display-inline {display: inline !important;}
    .mobile-hide {display: none !important;}
    .mobile-text-left {text-align: left !important;}
    .mobile-off {display: none !important;}
}

p.i {
    padding-left: 1em;
    text-indent: -1em;
}

dl.hidden {
    background-color: #fff;
    margin-bottom: 0px;
    width: 100%;
}

dl.hidden dd {
    font-size: 14px;
    line-height: 20px;
    text-align: left;
}

h2 {
    color: #00175a;
}

.deep-blue h2 {
    color: #ffffff;
}

/*================================================*/

header.black {
    width: 100%;
    background-color: #000000;
    border-bottom: 1px solid #444;
}

header.black a {
    display: block;
}

header.black h1 {
    width: 303px;
    height: auto;
}

header.black h1 img {
    display: block;
    width: 100%;
    padding: 25px;
}

@media screen and (max-width:660px) {
    header.black h1 {
        width: 200px;
        margin: 0 auto;
    }
    header.black h1 img {
        padding: 20px 0;
    }
}

/*================================================*/


.hero4 {
	width: 100%;
	max-width: 100%;
    background-color: #000000;
}

.hero4 img {
	max-width: 1375px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: block;
}

@media screen and (max-width:660px) {
    .hero4 img {
	    max-width: 500px;
    }
}

/*================================================*/

.container {
    width: 100%;
    margin: 30px auto;
    max-width: 100%;
}

.container.grey {
    background-color: #ecedee;
    padding-top: 20px;
    padding-bottom: 20px;
}

.container.deep-blue {
    padding-top: 20px;
    padding-bottom: 20px;
    background-color: #00175a;
    color: #fff;
}

div.block {
	margin: 45px auto 50px;
	width: 100%;
    max-width: 1200px;
}

div.block.grey {
    background-color: #ecedee;
}

div.block.deep-blue {
    background-color: #00175a;
}

div.block .inner {
    padding: 20px 30px;
}

div.block p {
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width:1200px) {
    div.block {
        width: calc(100% - 30px);
	    margin: 20px auto;
    }
}

@media screen and (max-width:660px) {
    div.block {
        width: calc(100% - 20px);
	    margin: 20px auto;
    }
}

/*================================================*/

div.link-group {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto 60px;
}

div.links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 20px 10px;
}

div.links.border {
    border-bottom: 2px solid #a7a8aa
}

div.links a.parts {
    width: 100%;
    color: #00175a;
    text-decoration: none;
    border-right: 2px solid #a7a8aa;
    transition: opacity 0.3s 0s ease;

    width: 25%;
    display: flex;
    flex-wrap: wrap;
    font-size: 15px;
    line-height: 24px;
    padding: 5px;
}

div.links a:hover {
    opacity: 0.4;
}

div.links a.parts:last-of-type {
    border-right: 0px;
}

div.links a.parts div:nth-of-type(1) {
    width: 100%;
    text-align: center;
}

div.links a.parts div:nth-of-type(1) img {
    width: 60px;
    height: auto;
    display: block;
    margin: 0 auto 2px;
}

div.links a.parts div:nth-of-type(2) {
    width: 100%;
    text-align: center;
}

div.links a.parts div:nth-of-type(3) {
    width: 100%;
    text-align: center;
}

@media screen and (max-width:1200px) {
    div.links a.parts {
       font-size: 13px;
        line-height: 20px;
    }
}

@media screen and (max-width:660px) {
    div.link-group {
        display: flex;
        flex-wrap: nowrap;
    }

    div.links {
        display: flex;
        width: 100%;
        padding: 5px 5px;
        justify-content: flex-start;
        position: relative;
    }

    div.links::before {
        content: '';
        position: absolute;
        width: 2px;
        background-color: #a7a8aa;
        top: 0;
        bottom: 0;
        left: calc(50% - 1px);
    }

    div.links.border {
        border-right: 2px solid #a7a8aa;
        border-bottom: 0px;
    }

    div.links a.parts {
        border-right: 0px;
        border-bottom: 2px solid #a7a8aa;

        width: 46%;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-around;
        font-size: 11px;
        line-height: 17px;
        padding: 10px 0;
        align-items: center;
        min-height: 76px;

        margin-right: 2%;
        margin-left: 2%;
    }

    div.links.border a.parts:last-of-type {
        border-bottom: 0px;
    }

    div.links a.parts div:nth-of-type(1) {
        text-align: center;
        width: 36px;
    }

    div.links a.parts div:nth-of-type(1) img {
        width: 100%;
        height: auto;
        display: block;
        margin: 0 auto;
    }

    div.links a.parts div:nth-of-type(2) {
        text-align: left;
        width: calc(100% - 60px);
    }

    div.links a.parts div:nth-of-type(3) {
        text-align: center;
        width: 12px;
        font-size: 10px;
    }
}

/*================================================*/
.container h2 {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;;
    font-size: 29px;
    line-height: 40px;
    margin-bottom: 0;
}

.container h2 img {
    width: 60px;
    height: auto;
    margin-right: 20px;
}

div.vline {
    width: 100%;
}

div.vline img {
    width: 5px;
    height: 32px;
    display: block;
    margin: 0 auto;
}

div.vline + p {
    margin-top: 10px;
    font-size: 20px;
    line-height: 32px;
    margin-bottom: 20px;
}

@media screen and (max-width:1200px) {
    .container h2 {
        flex-direction: column;
        justify-content: center;
        align-items: center;;
        font-size: 22px;
        line-height: 30px;
        margin-bottom: 10px;
    }

    .container h2 img {
        margin-right: 0px;
    }

    div.vline + p {
       margin-bottom: 20px;
    }
}

/*================================================*/

div.col2 {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin-bottom: 40px;
}

div.col2 .col-img {
    width: 400px;
}

div.col2 .col-img img {
    display: block;
    width: 400px;
    height: auto;
}

div.col2 .col-text {
    width: calc(100% - 440px);    
}

div.col2.grey {
    background-color: #f7f8f9;
    padding: 30px;
    justify-content: space-around;
}

div.col2.grey .col-img {
    width: 250px;
}

div.col2.grey .col-img img {
    display: block;
    width: 250px;
    height: auto;
}

div.col2.grey .col-text {
    width: calc(100% - 300px);    
    align-self: center;
}


div.col2.reverse {
    flex-direction: row-reverse;
}

a.btn.deep-blue {
    background-color: #00175a;
}

@media screen and (max-width:660px) {
    div.col2 {
        display: block;
        margin-bottom: 20px;
    }

    div.col2 .col-img {
        width: 100%;
    }

    div.col2 .col-img img {
        display: block;
        width: 100%;
        height: auto;
        max-width: 400px;
        margin: 0 auto 20px;
    }

    div.col2 .col-text {
        width: 100%;
    }

    div.col2.grey {
        padding: 20px;
    }

    div.col2.grey .col-img {
        width: 100%;
    }

    div.col2.grey .col-img img {
        display: block;
        width: 100%;
        height: auto;
        max-width: 250px;
        margin: 0 auto 20px;
    }

    div.col2.grey .col-text {
        width: 100%;
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/*================================================*/

div.stores {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

div.stores div.store {
    width: 369px;
    margin-right: 46.5px;
    margin-bottom: 40px;
    display:flex;
    flex-direction:column;
    position: relative;
}

div.stores div.store a {
    display: block;
    color: inherit;
}

div.stores div.store:nth-of-type(3n) {
    margin-right: 0px;
}

div.stores div.store div.description {
    padding: 20px 20px 10px;
    border: 1px solid #c8c9c7;
    background-color: #fff;
    flex-grow: 1;
    cursor: pointer;
}

div.stores div.store div.description div.genre {
    background-color: #00175a;
    padding: 0px 4px;
    color: #fff;
    display: inline-block;
    min-width: 100px;
    text-align: center;
    font-size: 14px;
    font-weight: bold;
    border-radius: 3px;
    margin-bottom: 0.2rem;
}

div.stores div.store div.description div.name {
    font-size: 17px;
    font-weight: bold;
    color: #00175a;
    margin-bottom: 0px;
    line-height: 1.5em;
    margin-top: 0.3rem;
}

div.stores div.store div.description div.sub {
	min-height: 24px;
	background-size: 24px 24px;
	background-position: left top;
	background-repeat: no-repeat;
	padding-left: 30px;
    font-size: 15px;
	line-height: 22px;
    margin-top: 0.3rem;
}

div.stores div.store div.description div.location {
    margin-top: 0.4rem;
	background-image:url('https://www.aexp-static.com/akamai/one/statics/@americanexpress/dls-icons/1.3.1/package/dist/svg/location.outline.svg');
}

div.stores div.store div.description div.price {
	background-image:url('https://www.aexp-static.com/akamai/one/statics/@americanexpress/dls-icons/1.3.1/package/dist/svg/yen.outline.svg');
	background-size: 20px 20px;
	background-position: left 2px top 2px;
}

div.stores div.store div.description div.rating {
	background-image:url('https://www.aexp-static.com/akamai/one/statics/@americanexpress/dls-icons/1.3.1/package/dist/svg/favorite.outline.svg');
	background-size: 20px 20px;
	background-position: left 2px top 2px;
}

div.stores div.store div.description div.tags {
    margin-top: .3rem;
    margin-bottom: 30px;
}

div.stores div.store div.description div.tags span {
    background-color: #00175a;
    padding: 4px 8px;
    color: #fff;
    display: inline-block;
    text-align: left;
    font-size: 12px;
	line-height: 14px;
    border-radius: 3px;
    margin-bottom: 0.1rem;

}

div.stores div.store div.description div.memo {
    font-size: 14px;
    line-height: 22px;
    margin-bottom: 1.5rem;
}

div.stores div.store div.description div.catch {
    color: #000;
    font-weight: bold;
    font-size: 15px;
	line-height: 22px;
    margin-bottom: 0.4rem;
}

div.stores div.store div.description div.link {
    position: absolute;
    right: 10px;
    bottom: 10px;
}

.slick-dotted.slick-slider {
	margin-bottom: 0 !important;
}

.slick-next {
	right: 10px !important;
	z-index: 100 !important;
}

.slick-prev {
	left: 10px !important;
	z-index: 100 !important;
}

.slick-dots {
	bottom: 10px !important;
	z-index: 100 !important;
}

.slick-dots li {
    margin-right: 1px !important;
    margin-left: 1px !important;
}

.slick-dots li button::before {
    color: #ffffff !important;
}

.pictures {
  display: none;
}

.pictures.slick-initialized{
  display: block;
}

@media screen and (max-width:1200px) {
    div.stores {
        width: 784.5px;
        margin-right: auto;
        margin-left: auto;
    }

    div.stores div.store:nth-of-type(2n) {
        margin-right: 0;
    }

    div.stores div.store:nth-of-type(3n) {
        margin-right: inherit;
    }
}

@media screen and (max-width:783px) {
    div.stores {
        width: 100%;
        max-width: 369px;
        margin-right: auto;
        margin-left: auto;
    }

    div.stores div.store {
        width: 100%;
        max-width: 369px;
        margin-right: auto;
        margin-left: auto;
    }

    div.stores div.store:nth-of-type(2n) {
        margin-right: auto;
    }

    div.stores div.store:nth-of-type(3n) {
        margin-right: auto;
    }
}

/*================================================*/


.card-title {
    font-size: 20px;
    color: #00175a;
}

.cards {
    width: 100%;
	display: flex;
	justify-content: space-around;
	flex-wrap: nowrap;
    margin-top: 10px;
}

.cards.col-1 {
    width: 100%;
}

.cards.col-1 .card-col {
    width: 100%;
    position: relative;
    margin-bottom: 40px;
}

.cards .card-col-inner {
    background-color: #ecedee;
    padding: 40px 50px;
}

.card-flex {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 20px;
}

.cards .card-col .card-flex .card-face {
    width: 300px;
    margin: 0;
}

.cards .card-col .card-flex .card-face img {
    width: 100%;
    display: block;
}

.cards .card-col .card-flex .card-description {
    width: calc(100% - 335px);
}

.cards .card-col .card-name {
    text-align: left;
    color: #00175a;
    font-size: 20px;
    line-height: 28px;
    font-weight: bold;
}

.cards .card-col .benefit {
    background-color: #00175a;
    color: #fff;
    text-align: center;
    margin-bottom: 0.5rem;
    width: 100%;
}

.cards .card-col .body {
}

.cards .card-col .body p {
    font-size: 17px;
    line-height: 28px;
    margin-bottom: 0.1rem;
}

.cards .card-col .body .cashback {
    font-size: 21px;
    line-height: 30px;
    color: #00175a;
    font-weight: bold;
    margin-bottom: 0.4rem;
}

.cards .card-col .body .help {
    font-size: 14px;
    line-height: 20px;
    margin-bottom: 0;
}

.cards .card-col dl.hidden {
    background-color: #fff;
    width: 100%;
    margin-bottom: 10px;
}

.cards .card-col dl.hidden dt {
    font-size: 15px;
}

.cards .card-col dl.hidden dd {
    font-size: 14px;
    line-height: 20px;
}

.cards .card-col dl.hidden dd p {
    text-align: left;
    margin-bottom: 0;
}

.cards .card-col a.btn {
    width: 40%;
    font-size: 20px;
    color: #00175a;
    border: 2px solid #00175a;
    background-color: #fff;
    display: block;
    min-width: initial;
    margin: 0 auto 5px;
}

.cards .card-col p.help-block {
    font-size: 14px;
    line-height: 20px;
    text-align: center;
}

@media screen and (max-width:783px) {
    .card-title {
        font-size: 17px;
        line-height: 26px;
    }

    .cards {
        width: 100%;
    	display: block;
    }

    .cards .card-col {
        width: 100%;
        margin-top: 60px;
        display:flex;
        flex-direction:column;
    }

    .cards .card-col-inner {
        background-color: #ecedee;
        padding: 0 20px 10px;
    }

    .card-flex {
        display: block;
        width: 100%;
        margin-bottom: 20px;
    }

    .cards .card-col .card-flex .card-face {
        width: 50%;
        margin: -45px auto 10px;
    }

    .cards .card-col .card-flex .card-face img {
        width: 100%;
        display: block;
    }
    
    .cards .card-col .card-flex .card-description {
        width: 100%;
    }

    .cards .card-col .card-name {
        text-align: center;
        font-size: 18px;
        line-height: 26px;
        min-height: 52px;
    }

    .cards .card-col .benefit {
        background-color: #53565a;
        color: #fff;
        text-align: center;
        margin-bottom: 0.5rem;
        width: 100%;
    }

    .cards .card-col .body {
    }

    .cards .card-col .body p {
        font-size: 16px;
        line-height: 26px;
        margin-bottom: 0.1rem;
    }

    .cards .card-col .body .cashback {
        font-size: 18px;
        line-height: 30px;
        color: #00175a;
        font-weight: bold;
        margin-bottom: 0.4rem;
    }

    .cards .card-col .body .help {
        font-size: 14px;
        line-height: 20px;
        margin-bottom: 0;
    }

    .cards .card-col dl.hidden {
        background-color: #fff;
        width: 100%;
        margin-bottom: 10px;
    }

    .cards .card-col dl.hidden dt {
        font-size: 15px;
    }

    .cards .card-col dl.hidden dd {
        font-size: 14px;
        line-height: 20px;
    }

    .cards .card-col dl.hidden dd p {
        text-align: left;
        margin-bottom: 0;
    }

    .cards .card-col a.btn {
        width: 100%;
        font-size: 20px;
        color: #00175a;
        border: 2px solid #00175a;
        background-color: #fff;
        margin-bottom: 5px;
        display: block;
        min-width: initial;
    }

    .cards .card-col p.help-block {
        font-size: 14px;
        line-height: 20px;
        text-align: center;
    }
}

/*================================================*/

div.new {
    border-bottom: 2px solid #00175a;
    text-align: center;
    font-size: 20px;
    position: relative;
    margin-bottom: 20px;
}

div.new span {
    position: absolute;
    padding: 2px 10px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-color: #ecedee;
}

div.inner-box {
    background-color: #fff;
    padding: 20px 30px;
}

div.inner-box img.icon {
    display: block;
    margin: 0 auto 20px;
    width: 80px;
    height: auto;
}

div.inner-box .inner-box-title {
    font-size: 23px;
    color: #00175a;
    font-weight: bold;
}

div.inner-box .dummy {
    width: 100%;
    height: 200px;
    background-color: #a7a8aa;
}

@media screen and (max-width:783px) {
    div.inner-box img.icon {
        width: 70px;
    }

    div.inner-box .inner-box-title {
        font-size: 20px;
    }
}

/*================================================*/

.points {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
    margin: 30px auto 40px;
}

.points .point {
    width: 28%;
    text-align: center;
}

.points .point img.icon {
    width: 80px;
    display: block;
    margin: 0 auto 20px;
}

.points .point h3 {
    color: #00175a;
    font-size: 23px;
    margin-bottom: 20px;
    font-weight: bold;
}

.points .point p {
    font-size: 18px;
    margin-bottom: 0;
}

.points .point p.note {
    font-size: 13px;
    line-height: 20px;
}

p.dining-service {
    text-align: center;
    color: #00175a;
    font-weight: bold;    
    font-size: 20px;
    line-height: 30px;
    margin-bottom: 30px;
}

.inner-box .points .point img.icon {
    margin-bottom: 10px;
}

.inner-box .points .point h3 {
    margin-bottom: 5px;
}

.inner-box .points .point p.step {
    font-weight: bold;
}

div.col-half {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin-bottom: 40px;
}

div.col-half.single {
    justify-content: center;
}

div.col-half > div {
    width: 50%;
}

div.col-half > div a.btn {
    width: 90%;
    font-size: 20px;
    color: #00175a;
    border: 2px solid #00175a;
    background-color: #fff;
    margin: 0 auto 10px;
    display: block;
    min-width: initial;
    line-height: 28px;
}

div.col-half > div div.card-face img {
    display: block;
    margin: 0 auto 20px;
}

.container.deep-blue a.goto {
    color: #fff;
}

@media screen and (max-width:770px) {
    .points .point {
        width: 95%;
        margin-bottom: 40px;
    }

    .points .point:last-of-type {
        margin-bottom: 0px;
    }
    
    .points .point img.icon {
        width: 60px;
    }
    
    .points .point h3 {
        font-size: 20px;
        margin-bottom: 10px;
    }
    
    .points .point p {
        font-size: 16px;
    }

    .points .point p.note {
        font-size: 12px;
    }

    div.col-half {
        display: block;
        margin-bottom: 40px;
    }

    div.col-half > div {
        width: 100%;
        margin-bottom: 40px;
    }

    div.col-half > div:last-of-type {
        margin-bottom: 0px;
    }

    div.col-half > div a.btn {
        width: 90%;
        font-size: 16px;
        margin: 0 auto 20px;
        line-height: 26px;
    }
}

/*================================================*/

footer.footer {
    background-color: #000;
    color: #fff;
}

footer.footer .footer-inner {
    max-width: 1170px;
    width: 100%;
}

.footer-nav {
    border-top-color: #fff;
}

/*================================================*/
