.main {
  padding: 0; }

.progress_wrap {
  width: calc(100% - 8rem);
  margin: 0 auto;
  padding: 0; }

/* Element
===============================*/
/* Common */
.spot_wrap {
  width: 100%;
  padding: 0 4rem;
  margin-bottom: 4rem; }

.spot_header__item {
  width: 100%;
  margin-bottom: 2rem; }

.spot_header__lead {
  margin-bottom: 2rem; }

.txt-pink {
  color: #e84091; }

/* In Page Anchor */
.spot_anchor {
  width: 100%;
  text-align: right; }

.spot_anchor a {
  text-decoration: none; }

.spot_anchor a:before {
  content: "\f138";
  margin-right: 1rem; }

/* Spot List Archive
==================================*/
.spot_list {
  width: 100%; }

.spot_list__link {
  text-decoration: none;
  border-bottom: dashed 1px #ddd;
  padding: 2rem 0; }

.spot_list__thumbnail {
  width: 18rem; }

.spot_list__figure {
  position: relative;
  width: 100%;
  height: auto;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-color: #fafafa; }

.spot_list__figure:before {
  display: block;
  content: "";
  padding-top: 100%; }

.spot_list__figure span {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.spot_list__inner {
  width: calc(100% - 18rem);
  padding-left: 2rem; }

.spot_list__item {
  font-size: 2.2rem;
  line-height: 1.2;
  display: block;
  margin-bottom: 2rem; }

/* How to */
.spot_howto {
  width: 100%; }

.spot_howto__item {
  display: block;
  width: 100%;
  padding: 0 4.2rem; }

.spot_howto__header {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 2rem;
  text-align: center; }

.spot_howto__header::before,
.spot_howto__header::after {
  display: inline-block;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-size: contain;
  width: 2em;
  height: 2em;
  vertical-align: middle;
  content: ""; }

.spot_howto__inner {
  width: 100%;
  background: #f8f6e7;
  padding: 4rem 4rem 6rem;
  margin-bottom: -6rem; }

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

.spot_howto__lead {
  margin: 4rem 0 2rem; }

.spot_howto__lead + p {
  text-align: center; }

.spot_howto__btn--passport {
  display: inline-block;
  border-radius: 0.6rem;
  background-color: #e84091;
  padding: 1rem 2rem;
  color: #fff; }

/* Spot Details
============================================*/
.spot_item {
  font-size: 2.6rem;
  font-weight: normal;
  line-height: 1.2;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem; }

/* Header */
.spot_header {
  width: 100%;
  padding: 0 4rem;
  margin-bottom: 2rem; }

.spot_header__flag {
  color: #fff;
  padding: 0.5rem 1rem;
  font-size: 1.4rem; }

.spot_header__facilities {
  display: block;
  margin-top: 1.5rem;
  font-size: 2.4rem;
  font-weight: normal; }

/* Gallery */
.gallery {
  width: 100%;
  padding: 0 4rem;
  margin: 0 auto 3rem; }

.gallery_wrap,
.gallery_figure,
.gallery_thumb__figure {
  position: relative;
  width: 100%;
  height: auto; }

.gallery_figure,
.gallery_thumb__figure {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }

.gallery_wrap:before,
.gallery_figure:before,
.gallery_thumb__figure:before {
  display: block;
  content: "";
  padding-top: 66.609%; }

.gallery_inner,
.gallery_figure span,
.gallery_thumb__figure span {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%; }

.gallery_inner {
  display: none; }

.gallery_inner.initialized {
  display: block; }

.gallery_slider {
  width: 100%; }

.gallery_thumb {
  width: 100%;
  display: none;
  margin-top: 1rem; }

.gallery_thumb.initialized {
  display: block; }

.gallery_thumb__slider {
  width: 100%;
  display: block !important; }

.gallery_thumb__slider .slick-list {
  padding: 0; }

.gallery_thumb__inner {
  width: 100%;
  padding: 0 0.5rem; }

.gallery_thumb__figure {
  display: block;
  width: 100%;
  border: solid 2px #fff;
  opacity: 0.7;
  cursor: pointer; }

.slick-current .gallery_thumb__figure {
  opacity: 1; }

/* Spot overview */
.spot_overview {
  width: 100%;
  margin-bottom: 3rem; }

.spot_overview__catch {
  font-size: 2rem;
  font-weight: normal;
  color: #c3ab50;
  margin-bottom: 2rem; }

/* Spot facility */
.spot_facility {
  width: 100%;
  margin-bottom: 3rem; }

.spot_facility__data {
  width: 100%; }

.spot_facility__field {
  padding: 1.5rem; }

.spot_facility__disc {
  width: 100%; }

.spot_facility__disc dt {
  width: 10rem;
  text-align: center;
  align-self: flex-start; }

.spot_facility__disc dd {
  width: calc(100% - 10rem);
  padding-left: 1.5rem; }

.spot_facility__disc dd a {
  word-wrap: break-word; }

/* Map */
.spot_map {
  width: 100%;
  margin-bottom: 3rem; }

.spot_map__inner {
  position: relative;
  width: 100%;
  height: auto; }

.spot_map__inner:before {
  display: block;
  content: "";
  padding-top: 65%; }

.spot_map__inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* Report */
/* Responsive
====================*/
/*[ MIN ]---------------------------*/
@media (min-width: 64.0625em) {
  /*1025*/
  /* Details */
  .gallery_thumb__figure:hover {
    opacity: 0.85; } }

@media (min-width: 40.0625em) {
  /*641*/ }

@media (min-width: 30.0625em) {
  /*481*/
  .spot_facility__field:nth-child(odd) {
    background: #f4f2eb; }
  .spot_facility__disc dt {
    border-right: solid 1px #ccc; } }

/*[ MAX ]---------------------------*/
@media (max-width: 40em) {
  /*640*/ }

@media (max-width: 30em) {
  /*480*/
  /* CommonADD */
  .progress_wrap {
    width: calc(100% - 4rem); }
  /* List */
  .spot_wrap,
  .spot_header {
    padding: 0 2rem; }
  .spot_list__thumbnail {
    width: 9rem; }
  .spot_list__inner {
    width: calc(100% - 9rem);
    padding-left: 1.5rem; }
  .spot_list__item {
    font-size: 2rem;
    margin-bottom: 1.5rem; }
  .spot_howto__inner {
    margin-bottom: -4rem;
    padding: 4rem 2rem; }
  .spot_howto__item {
    padding: 0 2rem; }
  .spot_howto__lead {
    margin: 2rem 0; }
  /* Details */
  .gallery {
    padding: 0 2rem; }
  .spot_facility__field {
    padding: 0; }
  .spot_facility__disc dt {
    width: 100%;
    text-align: left;
    background: #f4f2eb;
    padding: 1rem; }
  .spot_facility__disc dd {
    width: 100%;
    padding: 1rem; } }

@media (max-width: 23.75em) {
  /*380*/
  /* List */
  .spot_header__lead {
    margin-bottom: 1rem; }
  .spot_wrap {
    margin-bottom: 2rem; }
  /* Details */
  .spot_header__facilities,
  .spot_item {
    font-size: 2.2rem; }
  .spot_benefits__exp {
    padding: 1.5rem; }
  .spot_benefits,
  .spot_overview,
  .spot_map {
    margin-bottom: 2rem; }
  .premium_passport__header {
    font-size: 2.4rem; } }

@media (max-width: 22.5em) {
  /*360*/
  /* List */
  .spot_list__item {
    font-size: 1.8rem;
    line-height: 1.4; }
  /* Details */
  .spot_overview__catch {
    font-size: 1.8rem;
    margin-bottom: 1.5rem; }
  .spot_header__flag {
    font-size: 1.2rem; }
  .spot_header__facilities {
    font-size: 2rem; } }

@media (max-width: 21.25em) {
  /*340*/
  /* CommonADD */
  .progress_wrap {
    width: calc(100% - 3rem); }
  /* List */
  .spot_wrap,
  .spot_header {
    padding: 0 1.5rem; }
  /* Details */
  .gallery {
    padding: 0 1.5rem; } }

/* Element
===============================*/
/* Lunch Color */
.lunch-style .spot_list__item,
.lunch-style .spot_header__facilities {
  color: #e96b46; }

.lunch-style .spot_header__flag {
  background: #e96b46; }

.lunch-style .spot_item {
  border-bottom: solid 1px #e96b46;
  color: #e96b46; }

.lunch-style .slick-current .gallery_thumb__figure {
  border-color: #e96b46; }

.lunch-style .spot_lunch__item {
  color: #e96b46; }

.lunch-style .spot_lunch__txt {
  color: #e84091; }

.separate-border {
  border-bottom: dashed 1px #ddd;
  padding: 1rem 0; }

.title-note {
  color: #af9c54;
  text-align: center; }

.bnr_link {
  display: block;
  margin: 0 auto 2rem;
  width: 96%; }

/* Temporary
==================================*/
/* campaign2021 */
.cp2021 {
  position: relative;
  margin-bottom: 6rem;
  padding: 4rem 0 1px;
  z-index: 0; }
  .cp2021::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    opacity: 0.8;
    background: url("/res/img/campaign2021/bg_hotellunch.jpg") no-repeat center/cover; }
  .cp2021__header {
    margin-bottom: 2rem;
    font-size: 20px;
    text-align: center;
    text-shadow: 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff; }

/* Spot List
==================================*/
.spot_guide {
  padding: 4rem; }
  .spot_guide--bg {
    background: #ffed89 url(/res/img/hotellunch/bg_ticket.svg) no-repeat top 10% right -2%/20% auto; }
  .spot_guide--bg10 {
    background: #d2ffea url(/res/img/hotellunch/bg_building.svg) no-repeat top 5% left 0/20% auto; }
  .spot_guide--bg11 {
    background: #fff5f6 url(/res/img/hotellunch/bg_hearttree.svg) no-repeat bottom 0 right 5%/25% auto; }
  .spot_guide__pagetop {
    padding-top: 0; }
  .spot_guide__header {
    margin-bottom: 2rem;
    font-size: 2rem;
    font-weight: normal;
    text-align: center; }
    .spot_guide__header--speech {
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 0.8em; }
      .spot_guide__header--speech::before, .spot_guide__header--speech::after {
        content: "";
        background-color: #333;
        width: 1px;
        height: 2em; }
      .spot_guide__header--speech::before {
        margin-right: 2rem;
        transform: rotate(-30deg); }
      .spot_guide__header--speech::after {
        margin-left: 2rem;
        transform: rotate(30deg); }
    .spot_guide__header--bold {
      font-weight: bold; }
  .spot_guide__txt {
    margin-bottom: 2rem; }
    .spot_guide__txt:last-child {
      margin-bottom: 0; }

.balloon-underline {
  position: relative;
  border-bottom: 2px solid #333;
  background-color: #fff5f6;
  margin: 0 auto 4rem;
  width: 300px;
  padding: 10px;
  text-align: center;
  font-size: 15px;
  font-weight: bold; }
  .balloon-underline::after, .balloon-underline::before {
    border: solid transparent;
    content: "";
    height: 0;
    width: 0;
    pointer-events: none;
    position: absolute;
    top: 100%;
    left: 50%; }
  .balloon-underline::after {
    border-color: rgba(255, 255, 255, 0);
    border-top-width: 20px;
    border-bottom-width: 20px;
    border-left-width: 20px;
    border-right-width: 20px;
    margin-left: -20px;
    border-top-color: #fff5f6; }
  .balloon-underline::before {
    border-color: rgba(51, 51, 51, 0);
    border-top-width: 22px;
    border-bottom-width: 22px;
    border-left-width: 22px;
    border-right-width: 22px;
    margin-left: -22px;
    margin-top: 2px;
    border-top-color: #333333; }

.form-box {
  display: flex; }
  .form-box__form {
    margin: 0 1rem; }
  .form-box h4 {
    margin-bottom: 1rem; }

.spot_list__field {
  border-bottom: dashed 1px #ddd;
  padding: 2rem 0 1rem; }

.spot_list__link {
  margin-bottom: 2rem;
  border-bottom: none;
  padding: 0; }

.spot_list__intro {
  margin-bottom: 2rem; }

.spot_list__btn {
  margin: 0 auto 2rem; }
  .spot_list__btn--line {
    margin-top: 3rem;
    width: 96%;
    max-width: 450px; }
  .spot_list__btn--mail {
    max-width: 244px; }
  .spot_list__btn--howto {
    margin: 2rem auto 2.5rem;
    width: 140px; }
    .spot_list__btn--howto img {
      height: auto; }

.spot_list__btnlink {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 6px;
  padding: 0 calc((100% - 21.2em) / 2);
  text-decoration: none; }
  .spot_list__btnlink--line {
    height: 50px;
    background-color: #00b900;
    color: #fff; }
    .spot_list__btnlink--line:link, .spot_list__btnlink--line:focus, .spot_list__btnlink--line:visited, .spot_list__btnlink--line:disabled {
      color: #fff; }
    .spot_list__btnlink--line:hover {
      color: #fff !important; }
    .spot_list__btnlink--line::before {
      display: inline-block;
      background-image: url(/res/img/hotellunch/icon_line.png);
      background-repeat: no-repeat;
      background-size: contain;
      margin-right: 1.2em;
      width: 3.2em;
      height: 2.8em;
      vertical-align: middle;
      content: ""; }
  .spot_list__btnlink--mail {
    height: 44px;
    border: 1px solid #e96b46;
    background-color: #ffeee9;
    color: #e96b46; }
    .spot_list__btnlink--mail:link, .spot_list__btnlink--mail:focus, .spot_list__btnlink--mail:visited, .spot_list__btnlink--mail:disabled {
      color: #e96b46; }
    .spot_list__btnlink--mail:hover {
      color: #e96b46 !important; }
    .spot_list__btnlink--mail::before {
      margin-right: 1.4em;
      font-family: "FontAwesome";
      font-size: 2.4rem;
      color: #e96b46;
      content: "\f003"; }

.spot_hotel__data--list {
  margin-bottom: 2rem; }

.spot_howto__item {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 2rem;
  text-align: center; }
  .spot_howto__item::before, .spot_howto__item::after {
    display: inline-block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1em;
    height: 1.8em;
    vertical-align: middle;
    content: ""; }
  .spot_howto__item::before {
    background-image: url(/res/img/hotellunch/icon_lunch_left.svg);
    margin-right: 0.6em; }
  .spot_howto__item::after {
    margin-left: 0.6em;
    background-image: url(/res/img/hotellunch/icon_lunch_right.svg); }

.spot_howto__usehead {
  color: #e96b46; }

/* Spot Details
============================================*/
/* Spot coupon */
.spot_coupon {
  position: relative;
  margin: 5rem 0;
  background: #f8f6e6;
  padding: 0 2rem;
  width: 100%; }
  .spot_coupon::before, .spot_coupon:after {
    display: block;
    position: absolute;
    width: 100%;
    height: 0;
    left: 0;
    content: ""; }
  .spot_coupon::before {
    bottom: 100%;
    border-bottom: 2rem solid #f8f6e6;
    border-right: 2rem solid transparent; }
  .spot_coupon::after {
    top: 100%;
    border-top: 2rem solid #f8f6e6;
    border-left: 2rem solid transparent; }
  .spot_coupon__label {
    width: 50%;
    margin: 0 auto 2rem;
    font-size: 1.2rem;
    font-weight: normal;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    text-align: center;
    color: #666; }
    .spot_coupon__label span {
      display: block;
      position: relative;
      margin-bottom: 1rem;
      font-size: 3rem;
      border-bottom: 1px solid #666; }
      .spot_coupon__label span::after {
        position: absolute;
        bottom: -4px;
        left: 0;
        border-bottom: 1px solid #666;
        width: 100%;
        height: 1px;
        content: ""; }
  .spot_coupon__exp {
    margin-bottom: 2rem;
    color: #e96b46;
    text-align: center; }
  .spot_coupon__note {
    margin: 1rem 0;
    color: #e22121; }

/* Spot overview */
.spot_lunch__field {
  margin-bottom: 1.6rem; }

.spot_lunch__item {
  width: 100%;
  margin-bottom: 0.8rem;
  font-size: 1.8rem;
  font-weight: bold; }
  .spot_lunch__item::before {
    margin-right: 1rem; }
  .spot_lunch__item--hotel::before {
    content: "\f0f7"; }
  .spot_lunch__item--fee::before {
    content: "\f157"; }
  .spot_lunch__item--time::before {
    content: "\f017"; }
  .spot_lunch__item--address::before {
    content: "\f041"; }

.spot_lunch__disc--adress {
  margin-bottom: 2rem; }

.spot_map__inner {
  margin-bottom: 1rem; }

.spot_map__linkapp {
  text-align: right; }

/* Spot coupon button */
.spot_cv {
  margin: 3rem 0;
  border-bottom: 1px dashed #ccc; }
  .spot_cv__btn {
    margin: 0 auto 1rem;
    width: 80%; }
  .spot_cv__link {
    display: flex;
    justify-content: center;
    border-radius: 6px;
    padding: 1.2rem 1rem 1.2rem 20%;
    text-decoration: none; }
    .spot_cv__link--line {
      background-color: #00b900;
      background-image: url(/res/img/hotellunch/icon_line.png);
      background-position: 20% center;
      background-repeat: no-repeat;
      background-size: 4rem auto;
      color: #fff; }
      .spot_cv__link--line:link, .spot_cv__link--line:focus, .spot_cv__link--line:visited, .spot_cv__link--line:disabled {
        color: #fff; }
      .spot_cv__link--line:hover {
        color: #fff !important; }
    .spot_cv__link--mail {
      border: 1px solid #e96b46;
      background-color: #ffeee9;
      position: relative;
      color: #e96b46; }
      .spot_cv__link--mail:link, .spot_cv__link--mail:focus, .spot_cv__link--mail:visited, .spot_cv__link--mail:disabled {
        color: #e96b46; }
      .spot_cv__link--mail:hover {
        color: #e96b46 !important; }
      .spot_cv__link--mail::before {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 20%;
        font-family: "FontAwesome";
        font-size: 2.4rem;
        color: #e96b46;
        content: "\f003"; }
  .spot_cv__txt {
    margin-bottom: 3rem; }

.spot_lunch__note {
  margin-bottom: 2rem; }
  .spot_lunch__note p {
    margin-bottom: 1rem; }

/* Spot hotel */
.spot_hotel {
  width: 100%;
  margin-bottom: 3rem; }

.spot_hotel__data {
  width: 100%; }

.spot_hotel__field {
  padding: 1.5rem; }
  .spot_hotel__field:nth-child(odd) {
    background: #f4f2eb; }

.spot_hotel__disc {
  width: 100%; }
  .spot_hotel__disc dt {
    border-right: solid 1px #ccc;
    padding-right: 1.5rem;
    width: 13rem;
    text-align: center; }
  .spot_hotel__disc dd {
    width: calc(100% - 13rem);
    padding-left: 1.5rem; }
  .spot_hotel__disc dd a {
    word-wrap: break-word; }

/* Responsive
====================*/
/*[ MIN ]---------------------------*/
@media (min-width: 64.0625em) {
  /*1025*/
  .lunch-style .prev_btn__link:hover {
    background: #e96b46 !important;
    color: #fff !important; } }

@media (min-width: 40.0625em) {
  /*641*/
  .spot_cv__link br {
    display: none; } }

@media (min-width: 30.0625em) {
  /*481*/ }

/*[ MAX ]---------------------------*/
@media (max-width: 40em) {
  /*640*/ }

@media (max-width: 30em) {
  /*480*/
  .spot_guide {
    padding: 3rem 2rem; }
    .spot_guide--bg {
      background-size: 40% auto; }
    .spot_guide__pagetop {
      padding-top: 0; }
  .spot_list__btnlink {
    padding: 0 10px; }
    .spot_list__btnlink::before {
      margin-right: 1.2em; }
  .spot_cv__link {
    padding: 1rem 1rem 1rem 10%; }
    .spot_cv__link--line {
      background-position: 10% center; }
    .spot_cv__link--mail::before {
      left: 10%; }
  .spot_hotel__data {
    width: 100%; }
  .spot_hotel__field {
    padding: 0; }
    .spot_hotel__field:nth-child(odd) {
      background: none; }
  .spot_hotel__disc dt {
    border-right: none;
    background: #f4f2eb;
    padding: 1rem;
    width: 100%;
    text-align: left; }
  .spot_hotel__disc dd {
    width: 100%;
    padding: 1rem; } }

@media (max-width: 23.75em) {
  /*380*/
  .spot_list__btnlink--line {
    line-height: 1.2; } }

@media (max-width: 22.5em) {
  /*360*/
  .spot_list__btn--mail {
    max-width: 196px; } }

@media (max-width: 21.25em) {
  /*340*/
  .spot_guide {
    padding-right: 1.5rem;
    padding-left: 1.5rem; }
    .spot_guide__pagetop {
      padding-top: 0; }
  .spot_cv__link--line {
    background-position: 4% center; }
  .spot_cv__link--mail::before {
    left: 6%; } }
