@charset "UTF-8";
/* CSS Document */

/* PC
---------------------------------------------------------------------- */

@media (min-width: 1001px) {
/* mv
---------------------------------------------------------------------- */
#mainvisual {
    width: 100%;
    height: 900px;
    position: relative;
}
#mainvisual .mvslide {
    width: 100%;
    height: 900px;
}
#mainvisual .mvslide .slick-slide {
    width: 100%;
    height: 900px;
    position: relative;
    z-index: 0;
    background-color: transparent;
}
#mainvisual .mvslide .slick-slide picture {
    width: 100%;
    height: 900px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}   
#mainvisual .mvslide .slick-slide picture img {
    min-width: 100%;
    height: 900px;
    object-fit: cover;
    object-position: center top;
}
.slick-dots li {
    width: 6px!important;
    height: 6px!important;
    background: #cccccc;
    margin: 0 10px!important;
    border-radius: 50%;
}
.slick-dots li.slick-active {
    width: 10px!important;
    height: 10px!important;
    background: #546ca4;
    position: relative;
    top: -2px;
}
.slick-dots li button:before{
	content: ''!important;
	height:100%!important;
　width: 100%!important;
}
#mainvisual .mvslide .catch {
    width: 100%;
    height: 753px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
#mainvisual .slick-dots {
    bottom: 35px !important;
}
#mainvisual .scroll {
    width: 11px;
    position: absolute;
    left: 90px;
    bottom: 0;
    z-index: 10;
}

/* イベントバナー */
#mainvisual .bn_event{
    position: absolute;
    /* top: 110px; */
    bottom: 25px;
    right: 25px;
    z-index: 1;
}
#mainvisual .bn_event a:hover{
    opacity: 1;
}
#mainvisual .bn_event img{
    max-width: 320px;
    display: block;
}


  /* inner
  ---------------------------------------------------------------------- */ 
    #contents {
    }
    
    .index .news {
        margin-top: 140px;
        margin-bottom: 140px;
    }
    .index .news .inner {
        display: flex;
    flex-wrap: wrap;
        padding: 25px 0;
    }
    .index .news .inner h2 {
        width: 190px;
        font-size: calc(20em / 16);
        font-weight: 700;
        letter-spacing: 0.25em;
    }
    .index .news .inner h2 span { 
        display: block;
        font-size: calc(16em / 20);
        margin-top: 10px;
    }
    .index .news .inner ul {
        width: calc(100% - 190px);
        padding-bottom: 25px;
    }
    .index .news .inner:nth-of-type(1) ul {
        border-bottom: 1px solid #000;
    }
    .index .news .inner ul li {
        display: flex;
    flex-wrap: wrap;
        margin-bottom: 15px;
    } 
    .index .news .inner ul li span {
        width: 95px;
        font-weight: 700; 
    }
    .index .news .inner ul li a {
        width: calc(100% - 95px);
        color: #313131;
    }
    .index .news .link {
        display: block;
       font-size: calc(14em / 16);
        font-weight: 700;
        padding-right: 60px;
        background-image: url(../images/icn_arrow_s.svg);
        background-repeat: no-repeat;
        -webkit-background-size: 42px auto;
        background-size: 42px auto;
        background-position: right 5px center;
        transition: all 0.3s ease;
        text-align: right;
    }
    .index .news .link:hover {
        background-position: right center;
        opacity: 1.0;
    }
    
    .index .lead {
        position: relative;
        min-height: 100%;
        background-size: cover;
        background-attachment: fixed;
        background-repeat: no-repeat;
        background-position: center center;
        z-index: 2;
        background-image: url("../images/index/top_concept.jpg");
        padding: 130px 0 170px 0;
        margin-bottom: 150px;
    }
    @media screen and (-webkit-min-device-pixel-ratio:2), (min-resolution: 2dppx) {
        .index .lead {
            background-image: url("../images/index/top_concept@2x.jpg");
        }
    }
    .index .lead * {
        color: #fff;
    }
    .index .lead h2 {
        font-size: calc(28em / 16);
        letter-spacing: 0.25em;
        line-height: 2.0;
        margin-bottom: 50px;
        font-weight: 300;
    }
    .index .lead p {
        letter-spacing: 0.1em;
        line-height: 2.8;
    }
    
    .index .lounge {
        margin-bottom: 100px;
display: flex;
    flex-wrap: wrap;
        align-items: center;
        position: relative;
        z-index: 0;
    }
canvas{
    position: absolute;
    bottom: 0;
    left:0;
    width: 100%;
    z-index: -1;
}
canvas#waveCanvas2 {
    bottom: -1vw;
}
canvas#waveCanvas3 ,
canvas#waveCanvas4 {
    bottom: -20vw;
}
canvas#waveCanvas5 {
    bottom: -25vw;
}
    .index .lounge .title ,
    .index .hikarinomori .title {
        width: calc(630 / 1440 * 100%);
        padding: 0 80px;
    }

    .index .lounge .title dl ,
    .index .hikarinomori .title dl {
        margin-top: 40px;
        padding: 0 70px 0 80px;
    }
    .index .lounge .title dl dt ,
    .index .hikarinomori .title dl dt {
        font-size: calc(18em / 16);
        letter-spacing: 0.25em;
        line-height: 2.2;
    }
    @media (min-width: 1441px) {
        .index .lounge .title {
            position: relative;
            left: calc(150 / 1440 * 100%);
        }
        .index .lounge .title dl {
            max-width: 500px;
        }
    }

    .index .lounge .slider1 ,
    .index .hikarinomori .slider2 {
        width: calc(100% - calc(630 / 1440 * 100%));
        padding-bottom: 30px;
    }
   .index .slick-slide img {
    width: 100%;
}
    .index .lounge .slider1 .slick-dots {
        width: auto;
        right: 100px;
        bottom: 0 !important;
    }
    .index .lounge .title dl dd ,
    .index .hikarinomori .title dl dd {
        width: 50px;
        margin: 40px auto 0;
    }
    .arrowlink {
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background-color: #fff;
        border: 1px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
    }
    .arrowlink .hover {
        display: none;
    }
    .arrowlink:hover {
        background-color: #3b4b72 ;
        border: 1px solid #3b4b72;
        opacity: 1;
    }
    .arrowlink:hover .default {
        display: none;
    }
    .arrowlink:hover .hover {
        display: block;
    }
    .arrowlink img {
        width: 22px;
    }
    
    .index .hikarinomori {
        margin-bottom: 100px;
display: flex;
    flex-wrap: wrap;
        align-items: center;
        flex-direction: row-reverse;
    }
    .index .hikarinomori .slider2 {
        padding-right: 80px;
        padding-left: 10px;
    }
    .index .hikarinomori .slider2 .slick-slide {
        padding: 0 8px;
    }
    .index .hikarinomori .slider2 .slick-dots {
        width: auto;
        left: 100px;
        bottom: 0 !important;
    }
    
    .index .shopimg {
        width: 100%;
        margin-bottom: 150px;
    }
    .index .shopimg img ,
    .index .onsenimg img ,
    .index .roomsimg img ,
    .index .facilitiesimg img {
        width: 100%;
    }
    .index .onsenimg {
        width: 100%;
        padding-right: 120px;
        margin-bottom: 45px;
    }
    .index .roomsimg {
        width: 100%;
        padding-left: 120px;
        margin-bottom: 45px;
        position: relative;
        z-index: 0;
    }
    
    .index .pagelinkbox {
display: flex;
    flex-wrap: wrap;
        justify-content: center;
        margin-bottom: 90px;
    }
    .index .pagelinkbox h2 {
        width: 300px;
        font-size: calc(36em / 16);
        letter-spacing: 0.25em;
        text-align: center;
        padding-top: 10px;
    }
    .index .pagelinkbox h2 span { 
        display: block;
        font-size: calc(16em / 36);
        letter-spacing: 0.15em;
        margin-top: 10px;
    }
    .index .pagelinkbox dl {
        width: 420px;
display: flex;
    flex-wrap: wrap;
        align-items: center;
    }
    .index .pagelinkbox dl dt {
        width: calc(100% - 65px);
        font-size: calc(18em / 16);
        letter-spacing: 0.25em;
        line-height: 2.0;
    }
    .index .pagelinkbox dl dd {
        width: 50px;
        margin-left: 15px;
    }
    
    .index .facilitiesimg {
        display: flex;
    flex-wrap: wrap;
        justify-content: space-between;
        padding: 0 120px;
        margin-bottom: 40px;
        position: relative;
        z-index: 0;
    }
    .index .facilitiesimg > div {
        width: calc(790 / 1180 * 100%);
    }
    .index .facilitiesimg > ul {
        width: calc(380 / 1180 * 100%);
    }
    .index .facilitiesimg > ul li {
        line-height: 0;
        margin-bottom: 6px;
    }
    .index .facilitieslogo {
        display: flex;
    flex-wrap: wrap;
        justify-content: center;
        margin-bottom: 25px;
    }
    .index .facilitieslogo img {
        margin: 0 20px;
    }
    
    .index .footer_link {
        display: flex;
    flex-wrap: wrap;
        justify-content: center;
        margin-top: 60px;
        margin-bottom: 150px;
    }
    .index .footer_link li {
        width: 50%;
        padding: 0 25px;
        position: relative;
    }
    .index .footer_link li * {
        color: #fff;
    }
    .index .footer_link li h3 {
        font-size: calc(24em / 16);
        letter-spacing: 0.25em;
        font-weight: 700;
        position: absolute;
        left: 45px;
        bottom: 90px;
    }
    .index .footer_link li p {
        display: inline-block;
        letter-spacing: 0.1em;
        font-weight: 700;
        position: absolute;
        left: 45px;
        bottom: 55px;
    }
    .index .footer_link li p::after {
        content:  '';
        display: inline-block;
        margin-left: 5px;
        width: 41px;
        height: 12px;
        background: url("../images/arrow02.png") no-repeat 0 center;
        -webkit-background-size: 100% auto;
        background-size: 100% auto;
    }
    
    
}


/* SP
---------------------------------------------------------------------- */
@media screen and (max-width:1000px){
/* mv
---------------------------------------------------------------------- */
#mainvisual {
    width: 100%;
    height: 100vh;
    position: relative;
    overflow: hidden;
    z-index: 0;
}
#mainvisual .mvslide {
    width: 100%;
    height: 100vh;
}
#mainvisual .mvslide .slick-slide {
    width: 100%;
    height: 100vh;
    position: relative;
    z-index: 0;
}
#mainvisual .mvslide .slick-slide picture {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
        z-index: -1;
}   
#mainvisual .mvslide .slick-slide picture img {
    min-width: 100%;
    height: 100vh;
    object-fit: cover;
}
.slick-dots li {
    width: 6px!important;
    height: 6px!important;
    background: #cccccc;
    margin: 0 10px!important;
    border-radius: 50%;
}
.slick-dots li.slick-active {
    width: 10px!important;
    height: 10px!important;
    background: #546ca4;
    position: relative;
    top: -2px;
}
.slick-dots li button:before{
	content: ''!important;
	height:100%!important;
　width: 100%!important;
}
#mainvisual .slick-dots {
    display: flex;
    justify-content: center;
    bottom: calc(30 / 375 * 100vw)!important;
}
#mainvisual h2 {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  color: #fff;
  font-size: 18px;
  transform: translate(-50%, -75%);
  letter-spacing: .15em;
  text-align: center;
  line-height: 2;
  text-shadow: black 1px 1px 20px, black -1px 1px 20px, black 1px -1px 20px, black -1px -1px 20px;
}

  /* inner
  ---------------------------------------------------------------------- */ 
    .index .news {
        margin-top: calc(45 / 375 * 100vw);
        margin-bottom: calc(45 / 375 * 100vw);
    }
    .index .news .inner h2 {
        font-size: calc(18em / 16);
        font-weight: 700;
        letter-spacing: 0.25em;
        text-align: center;
        margin-bottom: calc(20 / 375 * 100vw);
    }
    .index .news .inner h2 span { 
        display: block;
        font-size: calc(14em / 18);
        margin-top: calc(5 / 375 * 100vw);
    }
    .index .news .inner ul {
        margin-bottom: calc(25 / 375 * 100vw);
    }
    .index .news .inner:nth-of-type(1) ul {
        border-bottom: 1px solid #000;
    }
    .index .news .inner ul li {
        margin-bottom: calc(15 / 375 * 100vw);
    } 
    .index .news .inner ul li span {
        font-weight: 700; 
    }
    .index .news .inner ul li a {
        display: block;
        color: #313131;
        padding-left: 1em;
    }
    .index .news .link {
        display: block;
       font-size: calc(14em / 16);
        font-weight: 700;
        margin-right: calc(15 / 375 * 100vw);
        padding-right: calc(50 / 375 * 100vw);
        background-image: url(../images/icn_arrow_s.svg);
        -webkit-background-size: calc(40 / 375 * 100vw) auto;
        background-size: calc(40 / 375 * 100vw) auto;
        background-repeat: no-repeat;
        background-position: right center;
        transition: all 0.3s ease;
        text-align: right;
    }

    canvas {
        display: none;
    }
    .index .lounge ,
    .index .hikarinomori {
        margin-bottom: calc(40 / 375 * 100vw);
display: flex;
    flex-wrap: wrap;
     flex-direction: column-reverse;
    }
    .index .lounge .title * ,
    .index .hikarinomori .title * {
        text-align: center;
    }
    .index .lounge .title h2 {
        width: calc(244 / 375 * 100vw);
        margin-left: calc(35 / 375 * 100vw);
    }
    .index .lounge .title dl ,
    .index .hikarinomori .title dl {
        margin-top:  calc(25 / 375 * 100vw);
    }
    .index .lounge .title dl dt ,
    .index .hikarinomori .title dl dt {
        font-size: calc(18em / 16);
        letter-spacing: 0.25em;
        line-height: 1.8;
    }
    .index .lounge .slider1 ,
    .index .hikarinomori .slider2 {
        width: 100%;
    }
    .index .lounge .slider1 .slick-dots ,
    .index .hikarinomori .slider2 .slick-dots {
        display: none !important;
    }
    .index .lounge .title dl dd ,
    .index .hikarinomori .title dl dd {
        width: calc(50 / 375 * 100vw);
        margin: calc(30 / 375 * 100vw) auto 0;
    }
    .arrowlink {
        width: calc(50 / 375 * 100vw);
        height: calc(50 / 375 * 100vw);
        border-radius: 50%;
        background-color: #fff;
        border: 2px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
    }
    .arrowlink .hover {
        display: none;
    }
    .arrowlink:hover {
        background-color: #3b4b72 ;
        border: 2px solid #3b4b72;
        opacity: 1;
    }
    .arrowlink:hover .default {
        display: none;
    }
    .arrowlink:hover .hover {
        display: block;
    }
    .arrowlink img {
        width: calc(22 / 375 * 100vw);
    }

    .index .hikarinomori .slider2 .slick-slide {
        padding: 0 calc(5 / 375 * 100vw);
    }
    .index .hikarinomori .title h2 {
        width: calc(246 / 375 * 100vw);
        margin-left: calc(35 / 375 * 100vw);
    }
    
    .index .shopimg {
        margin-bottom: calc(50 / 375 * 100vw);
    }
    .index .shopimg img ,
    .index .onsenimg img ,
    .index .roomsimg img ,
    .index .facilitiesimg img {
        width: 100%;
    }
    .index .onsenimg ,
    .index .roomsimg ,
     .index .facilitiesimg {
        width: 100%;
        margin-bottom: calc(20 / 375 * 100vw);
    }
    .index .roomsimg {
        width: 100%;
    }
    
    .index .pagelinkbox {
display: flex;
    flex-wrap: wrap;
        flex-direction: column;
        align-items: center;
        margin-bottom: calc(50 / 375 * 100vw);
    }
    .index .pagelinkbox h2 {
        font-size: calc(32em / 16);
        letter-spacing: 0.25em;
        text-align: center;
        margin-bottom: calc(10 / 375 * 100vw);
    }
    .index .pagelinkbox h2 span { 
        display: block;
        font-size: calc(14em / 32);
        letter-spacing: 0.15em;
    }
    .index .pagelinkbox dl {
    }
    .index .pagelinkbox dl dt {
        font-size: calc(18em / 16);
        letter-spacing: 0.25em;
        line-height: 2.0;
        text-align: center;
        margin-bottom: calc(20 / 375 * 100vw);
    }
    .index .pagelinkbox dl dd {
        width: calc(50 / 375 * 100vw);
        margin: auto;
    }
    .index .facilitiesimg > ul {
        display: flex;
    flex-wrap: wrap;
        justify-content: space-between;
        margin-top: calc(10 / 375 * 100vw);
    }
    .index .facilitiesimg > ul li {
        width: calc(50% - calc(5 / 375 * 100vw));
    }
    .index .facilitieslogo {
        display: flex;
    flex-wrap: wrap;
        justify-content: center;
        margin-bottom: 25px;
    }
    .index .facilitieslogo img {
        margin: 0 calc(10 / 375 * 100vw);
    }
    .index .facilitieslogo img:nth-of-type(1) {
        width: calc(133 / 375 * 100vw);
    }
    .index .facilitieslogo img:nth-of-type(2) {
        width: calc(163 / 375 * 100vw);
    }
    .index .footer_link {
        margin-top: calc(20 / 375 * 100vw);
        margin-bottom: calc(50 / 375 * 100vw);
    }
    .index .footer_link li {
        position: relative;
        margin-bottom: calc(20 / 375 * 100vw);
    }
    .index .footer_link li * {
        color: #fff;
    }
    .index .footer_link li h3 {
        font-size: calc(20em / 16);
        letter-spacing: 0.25em;
        font-weight: 700;
        position: absolute;
        left: calc(15 / 375 * 100vw);
        bottom: calc(60 / 375 * 100vw);
    }
    .index .footer_link li p {
        display: inline-block;
        font-size: calc(13em / 16);
        letter-spacing: 0.1em;
        font-weight: 700;
        position: absolute;
        left: calc(15 / 375 * 100vw);
        bottom: calc(40 / 375 * 100vw);
    }
    .index .footer_link li p::after {
        content:  '';
        display: inline-block;
        margin-left: 5px;
        width: 41px;
        height: 12px;
        background: url("../images/arrow02.png") no-repeat 0 center;
        -webkit-background-size: 100% auto;
        background-size: 100% auto;
    }
    .index .footer_link li img {
        width: 100%;
    }
    
}