@charset "utf-8";
/*===========================
〜479px        ：SP縦
  480px〜599px ：SP横
  600px〜959px ：タブレット
  960px〜1279px：小型PC
 1280px〜      ：大型PC
===========================*/
/*----------------------------------------
	共通
----------------------------------------*/
.tab_section {
  position: relative;
}
.tab_section:after {
  position: absolute;
  content: "";
  width: 100%;
  bottom: 0px;
  left: 0;
  border-bottom: 1px solid #aaa;
  z-index: -1;
}
.tab_list {
  text-align: center;
  list-style: none;
  padding: 0;
  position: relative;
  display: grid;
  width: 85%;
  max-width: 750px;
  grid-template-columns: 1fr 1fr;
  justify-content: center;
  margin: auto;
  gap: 8px;
}
.tab_item {
  border: 1px solid #aaa;
  background: #ececec;
  display: inline-block;
}
.tab_item--selected {
  background: #fff;
  color: #000;
  border-bottom: #fff solid 1px;
}
.tab_item_link {
  padding: 8px;
}
@media (any-hover: hover) {
  .tab_item:hover {
    background: #fff;
  }
  .tab_item--selected:hover {
    border-bottom: 1px solid #aaa;
  }
}

.area_main_header {
  position: relative;
  padding: var(--space-md) 5% 0;
}
.area_main_header:before {
  content: "";
  display: block;
  position: absolute;
  width: 90%;
  height: 95%;
  background-color: rgba(var(--primary-color-rgb), 0.2);
  top: 0;
  left: 0;
  z-index: -1;
}
.area_main_body {
  padding: 0 5%;
}
.area_spot_list {
  display: grid;
  gap: var(--space-lg) var(--space-sm);
}
@media screen and (min-width: 768px) {
  .area_spot_list {
    grid-template-columns: repeat(2, 1fr);
    width: 90%;
  }
  .area_main_header {
    display: contents;
  }
  .area_main {
    display: grid;
    grid-template: "title image" auto "body image" auto / min(35%, 380px) 1fr;
    gap: 0 var(--space-md);
    padding: var(--space-md) 0 var(--space-md) min(5%, 48px);
    margin: auto;
    position: relative;
    max-width: 1200px;
  }
  .area_main_header::before {
    width: 50%;
    height: calc(100% - 1 * var(--space-md) - 40px);
  }
  .area_main_heading {
    grid-area: title;
    align-self: end;
  }
  .area_main_image {
    grid-area: image;
  }
  .area_main_body {
    grid-area: body;
    padding: 0;
    margin-bottom: calc(var(--space-md) + 40px);
  }
}

.area_spot_item {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.contents_details {
  flex-grow: 1;
}
@media screen and (min-width: 768px) {
  .contents_details {
    width: 100%;
    padding: 0 4px;
  }
}
