@charset "utf-8";

/*背景画像*/
.sale-page.sale-pointup .point-campaign-key-visual {
  background-size: cover !important; 
  position: relative;
}
@media screen and (min-width: 768px) {
  .sale-page.sale-pointup .point-campaign-key-visual {
    height: 490px; 
  }   
}
@media screen and (max-width: 767px) {
  .sale-page.sale-pointup .point-campaign-key-visual {
    height: 430px; 
  }
}

#recommendedHotelBeforeMargin.mg-24{
  margin-top: 24px;
}
@media screen and (min-width: 768px) {
  #recommendedHotelBeforeMargin.mg-pc-80{
    margin-top: 80px;
  }
}
@media screen and (max-width: 767px) {
  #recommendedHotelBeforeMargin.mg-sp-40{
    margin-top: 40px;
  }
}

#searchBeforeMargin.mg-24{
  margin-top: 24px;
}
@media screen and (min-width: 768px) {
  #searchBeforeMargin.mg-pc-80{
    margin-top: 80px;
  }
}
@media screen and (max-width: 767px) {
  #searchBeforeMargin.mg-sp-40{
    margin-top: 40px;
  }
}

/*ポイントキャンペーン見出し*/
.point-campaign-title{
  text-align: center; 
  position: relative;
}
@media screen and (min-width: 768px) {
  .point-campaign-title{
    padding-bottom: 16px;
    padding-top: 24px;
    margin-bottom: 24px;
  }
}
@media screen and (max-width: 767px) {
  .point-campaign-title{
    padding-top: 24px;
    margin-bottom: 16px;
    padding-bottom: 8px;
  } 
}

/*説明文*/
@media screen and (min-width: 768px) {
  .point-campaign-explanation{
    font-size: 16px;
    text-align: center;
    margin-top: 24px;
    margin-bottom: 24px;
    max-width: 1120px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .point-campaign-recommnded-hotel-explanation {
    font-size: 16px;
    text-align: center;
    margin-top: 24px;
    max-width: 1120px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (max-width: 767px) {
  .point-campaign-explanation{
    font-size: 14px;
    text-align: left;
    margin-top: 16px;
    margin-bottom: 16px;
    margin-left: 16px;
    margin-right: 16px;
  } 
  .point-campaign-recommnded-hotel-explanation {
    font-size: 14px;
    text-align: left;
    margin-left: 16px;
    margin-right: 16px;
  }
}

/*おすすめ施設見出し*/
.recommended-title{
  text-align: center; 
  position: relative;
  /*line-height: 36px;*/
}
@media screen and (min-width: 768px) {
  .recommended-title{
    padding-bottom: 16px;
    margin-bottom: 24px;
  }
}
@media screen and (max-width: 767px) {
  .recommended-title{
    margin-bottom: 16px;
    padding-bottom: 8px;
  } 
}

/*padding切り分け*/
@media screen and (min-width: 768px) {
  .pointup-campaign-reccomend-padding{
    padding-bottom: 56px;
  }
  .pointup-campaign-reccomend-padding-small{
    padding-bottom: 24px;
  }
}
@media screen and (max-width: 767px) {
  .pointup-campaign-reccomend-padding{
    padding-bottom: 24px;
  }
  .pointup-campaign-reccomend-padding-small{
    padding-bottom: 24px;
  }
}

/*検索タイトル*/
.search-title{
  text-align: center; 
  position: relative;
  /*line-height: 36px;*/
}
@media screen and (min-width: 768px) {
  .search-title{
    padding-bottom: 16px;
    margin-bottom: 24px;
  }
}
@media screen and (max-width: 767px) {
  .search-title{
    margin-bottom: 16px;
    padding-bottom: 8px;
  } 
}

/*オレンジのアンダーライン*/
.underline {
  display: block;
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%); 
  width: 40px;
  height: 1px;
  background-color: #FF503E;
}

.explanation-img {
  display: block;
  margin-left: auto ;
  margin-right: auto;
  margin-top: 24px;
  max-width: 1120px;
  height: auto;
  width: auto;
}
@media screen and (max-width: 767px) {
  .explanation-img {
    width: calc(100% - 32px);
  }
}

@media screen and (min-width: 768px) {

  html body .key-visual .inner .title-campaign img.overlay-img,
  html body .key-visual img.overlay-img,
  .overlay-img {
    display: block;
    position: absolute;
    left: 50%;
    right: auto;
    transform: translateX(-50%); 
    margin: 0;
    padding: 0;    
    bottom: 40px;
    top: auto;
    width: 100%;
    max-width: 1120px;  
    height: 193px;
    max-height: 193px;
    object-fit: contain;
    z-index: 15;
  }
}
@media screen and (max-width: 767px) {
  html body .key-visual .inner .title-campaign img.overlay-img, 
  html body .key-visual img.overlay-img, 
  .overlay-img {
    display: block;
    position: absolute;
    left: 50% ;
    right: auto;
    transform: translateX(-50%);
    margin: 0;
    padding: 0;
    bottom: 10px;
    top: auto;
    width: calc(100% - 32px);
    height: 185px;
    max-height: 185px;
    object-fit: contain;
    z-index: 10;
  }
  img.explanation-img.sp-only,
  .explanation-img {
    display: block;
    position: relative;
    /*width: 343px;
    max-width: 343px;
    /*height: 635px;
    max-height: 635px;*/
    margin-left: auto;
    margin-right: auto;
    margin-top: 16px;
    margin-bottom: 0px;
    top: auto;
    bottom: auto;
    transform: none;
    object-fit: fill;
  }
}

@media screen and (min-width: 768px) {
  section.recommend,
  html body main section.recommend,
  .pointup-campaign-reccomend-margin,
  main > section:nth-of-type(1) {
    background-color: #fff;
  }

  #searchForm {
    position: relative !important;
    margin-top: 148px;
    margin-bottom: -40px;
  }
  #searchForm:not([class*="float"]) .searchBoxArea,
  div.searchBoxArea.search-box-col2 {
    width: 100%;
    max-width: 736px;
    min-width: 0px;
    margin-left: auto;  
    margin-right: auto; 
    padding: 0;
    display: block;
    box-sizing: border-box;
  }
}

/*おすすめ施設*/
@media screen and (min-width: 768px) {
  #recommended-hotel-list.root-sub-list {
    padding-top: 0px;
    padding-bottom: 0px;
    background-color: #fff;
  }
  #point-campaign-hotel-list:has(.root-sub-list) {
    padding-bottom: 0px;
  }
}
@media screen and (max-width: 767px) {
  section.recommend {
    padding: 0px;
    padding-bottom: 16px;
  }
  section.root-sub-list {
    padding: 0px;
    padding-top: 0px;
    padding-bottom: 24px;
  }
}

@layer legacy {
  #point-campaign-hotel-list div.sub-box-detail.text-center {
    padding: 22px 16px 16px !important;
  }
}

div.sub-box-detail.align-place > div:first-child {
  margin-top: 0px;
  margin-bottom: 16px;
}
.line-clamp-two {
  display: -webkit-box;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.8;
}

.recommendation div.btn-detail {
  width: 100%;
  margin: 0 0 auto;
  padding-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  font-size: 16px;     
  box-sizing: border-box;
  margin: 0 auto;      
}

@media screen and (min-width: 768px) {
  .ro-box.frame-sub-list {
    flex-wrap: wrap;    
  }
}

section.region_tab,
html body main section.region_tab,
.region_tab.mt-24 {
  margin-top: 24px;
  margin-bottom: 0px; 
  padding-bottom: 0px;
  background-color: #FFFFFF; 
  background: #FFFFFF;
  position: relative;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .region_tab-content,
  html body main .region_tab-content,
  #searchForm + section + .root-sub-list .region_tab-content {
      padding-top: 8px;  
  }
}
 @media screen and (min-width: 768px) and (max-width: 1023px) {
    html body main section.pointup-campaign-reccomend-margin .ro-box.frame-sub-list,
    .pointup-campaign-reccomend-margin .ro-box.frame-sub-list,
    html body main .root-sub-list .ro-box.frame-sub-list,
    div.root-sub-list .ro-box.frame-sub-list,
    div.wrap.ro-box.frame-sub-list.frame-flex-base-pc.box-wrap,
    .ro-box.frame-sub-list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
@media screen and (min-width: 1024px) and (max-width: 1119px) {
  html body main section.pointup-campaign-reccomend-margin .ro-box.frame-sub-list,
  .pointup-campaign-reccomend-margin .ro-box.frame-sub-list,
  html body main .root-sub-list .ro-box.frame-sub-list,
  div.root-sub-list .ro-box.frame-sub-list,
  div.wrap.ro-box.frame-sub-list.frame-flex-base-pc.box-wrap,
  .ro-box.frame-sub-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (min-width: 768px) {
  html body main #searchForm[class*="fixed"] .searchBoxArea .searchBox .peopleroom .box-inner,
  html body main #searchForm[class*="fixed"] .peopleroom .box-inner,
  #searchForm[class*="fixed"] .searchBox .box.peopleroom .box-inner,
  .searchBox .box.peopleroom .box-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;    
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 100%;
    padding-top: 5px;
    padding-bottom: 0px;
    padding-left: 24px;
    padding-right: 24px;
    margin: 0;    
    position: static !important;
    transform: none !important;
    box-sizing: border-box;
  }
}
@media screen and (min-width: 768px) {
  section.recommend, html body main section.recommend {
    background-color: #FFFFFF;
    margin-bottom: 24px;
  }
  #searchForm .searchBoxArea {
    width: 800px; 
    max-width: 800px; 
    min-width: 800px;
    margin-left: auto;  
    margin-right: auto;
    margin-top: 0px;
    margin-bottom: 0px;
    padding: 0;
    display: block;
    box-sizing: border-box;
  }
  #searchForm .searchBoxWrap, 
  #searchForm #searchBox {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
    height: auto;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
  }

  .sub-box.flex-align.no-date,
  .sub-box.flex-align.recommendation{
    margin-bottom: 0px;
  }

  #point-campaign-hotel-list .sub-box.flex-align {
    margin-bottom: 16px;
  }

  .recommendation div.sub-box-detail {
    justify-content: space-between;
    padding: 8px 16px 16px;
  }

  .recommendation .sub-box-detail p {
    margin-top: 0px;
  }

  .recommendation div.btn-detail {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding-top: 0px;
    padding-bottom: 8px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  div.btn-relux {
    width: 100%;       
    max-width: 100%;
    min-width: 0;
    height: 40px;       
    margin: 0 auto;     
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* 検索ボックス */
  html body main #searchForm,
  #searchForm {
    z-index: 15 !important;
  }
  #searchForm:not([class*="float"]) .searchBoxArea {
    width: 736px; 
    max-width: 736px; 
    min-width: 736px;
    margin-left: auto; 
    margin-right: auto;
    margin-top: 0px;
    margin-bottom: 0px;
    padding: 0;
    display: block;
    box-sizing: border-box;
  }
  #searchForm .searchBoxWrap, 
  #searchForm #searchBox {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
    height: auto;
    box-sizing: border-box;
  }
  html body main #searchForm .search-box-col2.float,
  html body main #searchForm .searchBoxArea[class*="float"],
  html body main #searchForm[class*="fixed"] .searchBoxArea, 
  html body main #searchForm[class*="sticky"] .searchBoxArea, 
  html body main #searchForm[class*="active"] .searchBoxArea,
  [class*="fixed"] #searchForm .searchBoxArea, 
  [class*="sticky"] #searchForm .searchBoxArea, 
  [class*="active"] #searchForm .searchBoxArea {
    position: fixed !important; 
    top: 0px !important; 
    left: 0px !important;
    transform: none !important;
    margin-left: 0px;            
    margin-right: 0px;
    margin-top: 0px; 
    margin-bottom: 0px; 
    z-index: 9999 !important; 
    width: 100%;
    max-width: none;
    height: 76px;
    max-height: 76px;
    min-height: 76px;
    box-sizing: border-box;
    background-color: #FFFFFF; 
    border: none;
    outline: none;
  }
  #searchForm[class*="fixed"] .searchBoxWrap,
  #searchForm[class*="sticky"] .searchBoxWrap,
  #searchForm[class*="active"] .searchBoxWrap,
  html body main #searchForm .search-box-col2.float .searchBoxWrap,
  [class*="fixed"] #searchForm .searchBoxWrap,
  [class*="sticky"] #searchForm .searchBoxWrap,
  [class*="active"] #searchForm .searchBoxWrap {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0px;
    margin: 0 auto;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    box-sizing: border-box;
  }
  #searchForm[class*="fixed"] #searchBox,
  #searchForm[class*="sticky"] #searchBox,
  #searchForm[class*="active"] #searchBox,
  html body main #searchForm .search-box-col2.float #searchBox {
    width: 736px; 
    max-width: 736px; 
    min-width: 736px;
    height: 100%;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    border-top-right-radius: 0px;
    border-bottom-right-radius: 0px;
  }
  html body main #searchForm .search-box-col2.float .peopleroom,
  [class*="fixed"] #searchForm .peopleroom,
  [class*="sticky"] #searchForm .peopleroom,
  [class*="active"] #searchForm .peopleroom {
    position: static !important; 
    top: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 0;
  }
  #searchForm[class*="fixed"] .searchBtn,
  #searchForm[class*="sticky"] .searchBtn,
  #searchForm[class*="active"] .searchBtn,
  html body main #searchForm .search-box-col2.float .searchBtn {
    position: static !important;            
    top: auto !important;
    left: auto !important;
    right: auto !important;      
    transform: none !important;
    display: block;
    width: 60px;
    height: 60px;    
    margin-left: 0px;           
    margin-top: 0px;             
    margin-right: 0px;
    margin-bottom: 0px;
    padding: 0;
    box-sizing: border-box;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
    overflow: hidden;
    flex:0 0 60px;
  }
  #searchForm .searchBtn > button{
    width:100%;
    /*height:100%;*/
  }
}
@media screen and (min-width: 1024px) {
  #searchForm:not([class*="float"]) .searchBoxArea {
    width: 800px;
    max-width: 800px;
    min-width: 800px;
  }
  #searchForm[class*="fixed"] #searchBox,
  #searchForm[class*="sticky"] #searchBox,
  #searchForm[class*="active"] #searchBox,
  html body main #searchForm .search-box-col2.float #searchBox {
    width: 800px;
    max-width: 800px;
    min-width: 800px;
  }
}

/* スマホ用　*/
@media screen and (max-width: 767px) {

  div.js-pointup-list{
    width: 100%;
  }
  #recommended-hotel-list {
    background-color: #fff
  }

  #point-campaign-hotel-list {
    background-color: #f5f5f5
  }

  .recommendation div.sub-box-detail {
    justify-content: space-between;
    padding: 8px 16px 16px;
  }

  .recommendation .sub-box-detail p {
    margin-top: 0px;
  }

  .ro-box.frame-sub-list,
  .root-sub-list,
  .hotel-list-small {
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: flex-start;
    gap: 8px;         
    float: none;
    margin: 0 auto;
    padding-top: 0px;
    padding-bottom: 1rem;
  }

  .sub-box.flex-align {
    display: flex;
    flex-direction: column;
    width: 100%;                   
    margin: 0 auto;       
    background-color: #fff;
    box-sizing: border-box;
    overflow: hidden;      
    float: none;          
  }

  div.sub-box-detail.align-place {
    padding-top: 8px;
  }
  .sub-box-detail.align-place .font-bold.font-large {
    font-size: 16px;
  }
  .sub-box-detail.align-place .color-gray-2.font-small {
    font-size: 12px;
  }

  検索ボックス
  
  #searchForm {
    position: relative !important;
    margin-top: 0;
    margin-bottom: -56px;
  }
  
  html body main #searchForm,
  #searchForm {
    position: relative !important; 
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100%; 
    max-width: 100%; 
    min-width: 0;
    margin-top: 136px; 
    margin-bottom: -56px; 
    padding-left: 8px;
    padding-right: 8px; 
    padding-bottom: 0px; 
    height: auto; 
    float: none !important;
    clear: both !important; 
    display: block; 
    box-sizing: border-box; 
    z-index: 15 !important;
  }
  
  /*非追従時*/
  #searchForm .searchBoxArea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    box-sizing: border-box;
    padding-left: 12px;
    padding-right: 12px;
  }

  #searchForm .searchBoxWrap, 
  #searchForm #searchBox {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    box-sizing: border-box;
    padding-left: 0; 
    padding-right: 0;
  }

  /*追従時*/
  html body main #searchForm[style*="position: fixed"] .searchBoxArea, 
  html body main #searchForm[style*="position: sticky"] .searchBoxArea,
  html body main #searchForm[class*="fixed"] .searchBoxArea, 
  html body main #searchForm[class*="sticky"] .searchBoxArea, 
  html body main #searchForm[class*="active"] .searchBoxArea,
  [class*="fixed"] #searchForm .searchBoxArea, 
  [class*="sticky"] #searchForm .searchBoxArea, 
  [class*="active"] #searchForm .searchBoxArea {
    position: fixed !important; 
    top: 0px !important;                    
    left: 50% !important;
    transform: translateX(-50%) !important; 
    margin-left: 0;
    margin-right: 0;
    margin-top: 0px;
    margin-bottom: 0px; 
    z-index: 9999 !important;          
    width: 100%; 
    max-width: 100%;
    min-width: 100%;
    padding-left: 12px; 
    padding-right: 12px;
    background-color: #FFFFFF;
    box-sizing: border-box;
  }
}

section.root-main-foot .bread-crumbs  {
  font-size: 12px;
}

 /*Topへのボタン*/
 #footer a.btn-pagetop {
  z-index: 11; 
}