@charset "utf-8";
html {
  scroll-behavior: auto;
  -webkit-overflow-scrolling: touch;
}
* {
  -webkit-overflow-scrolling: auto;
}
section {
  margin-top: 70px;
}
.hvr-op:hover {
  opacity: 0.7;
}
@media screen and (max-width: 768px) {
  section {
    margin-top: 35px;
  }
}
/* TOPに戻るボタン */
.scroll-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 60px;
  height: 60px;
  background: #90afc5;
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 1000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.scroll-to-top:hover {
  background: #7a9bb8;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.scroll-to-top::before {
  content: '';
  width: 16px;
  height: 16px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: rotate(-45deg);
  margin-bottom: 4px;
  position: absolute;
  top: 40%;
}
.scroll-to-top.show {
  display: flex;
}
/* MV */
.important-news {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.important {
  padding: 0 7px;
  display: flex;
  height: fit-content;
}
.mv {
  display: flex;
  align-items: center;
  overflow: hidden;
}
.mv-left {
  position: relative;
  left: 5%;
}
.weather-card-box {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 30px;
}
.weather-today {
  padding-right: 15px;
  border-right: 1px solid #3a3a3a;
}
.weather-line {
  height: 80%;
  border-left: 1px solid #3a3a3a;
}
.temp .high::after {
  content: '/';
  color: #3a3a3a;
}
.today-kamakura {
  font-family: 'Crimson Text', serif;
  font-weight: 600;
  font-style: normal;
  font-size: 2em;
}
/* mvslider */
.dots-mv {
  display: flex;
  justify-content: center;
}
.dots-mv li {
  width: 10px;
  height: 10px;
  margin: 25px 5px 0 5px;
  background: #fafafa;
  border: 1px solid #90afc5;
  border-radius: 50%;
  cursor: pointer;
}
.dots-mv li:hover,
.dots-mv li.slick-active {
  background: #90afc5;
}
.dots-mv li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}

.mv-right {
  width: 80%;
  position: relative;
  left: 12%;
}
.mv-slider-box {
  position: relative;
  margin-right: 50px;
}
.mv-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.mv-text {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40%;
  padding: 12px;
  background: rgba(0, 0, 0, 0.3);
}

.top-in {
  max-width: 1400px;
  margin: 0 auto;
  padding: 50px 70px;
}

.top-congestion-btn {
  margin-top: 30px;
}
.top-congestion {
  display: block;
  width: 280px;
  text-align: center;
  padding: 7px 0;
  border: 1px solid #336b87;
  border-radius: 30px;
  margin-top: 15px;
  text-decoration: none;
  color: #336b87;
  font-size: 1.8rem;
}

@media screen and (max-width: 1440px) {
  .mv {
    align-items: flex-start;
  }
  .weather-card-box {
    margin-top: 15px;
  }
  .today-main-box {
    margin-top: 7px;
  }
  .today-main-box p {
    line-height: 1.4;
  }
}
@media screen and (max-width: 768px) {
  .mv {
    flex-direction: column-reverse;
    align-items: center;
  }
  .mv-left {
    left: 0;
  }
  .mv-right {
    width: 100%;
    left: 0;
  }
  .mv-slider-box {
    margin-right: 0;
  }
  .top-in {
    padding: 50px 12px;
  }
  .today-main-box {
    margin-top: 12px;
  }
}

.top-sec-text {
  text-align: center;
  margin: 12px 0 24px 0;
}
@media screen and (max-width: 425px) {
  .top-sec-text {
    text-align: left;
  }
}
/* コンテンツタイトルデザイン */
.top-title-center {
  display: flex;
  justify-content: center;
}
.top-title {
  position: relative;
  width: fit-content;
}
.top-title::before {
  position: absolute;
  top: 0;
  left: -0.5em;
  transform: rotate(55deg);
  height: 11px;
  width: 12px;
  background: #336d87;
  content: '';
}
.top-title::after {
  position: absolute;
  transform: rotate(15deg);
  top: 0.6em;
  left: -0.7em;
  height: 8px;
  width: 8px;
  background: #336d87;
  content: '';
}
@media (max-width: 768px) {
  .top-title {
    margin: 0 auto;
  }
}

/* イベント */
.event-btn {
  width: 80%;
  padding: 15px 0;
  background: #90afc5;
  color: #fafafa;
  border-radius: 7px;
}

.event-btn:hover {
  opacity: 0.7;
}

/* 鎌倉でなにをしよう */
.top-contents-area {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.top-contents-link,
.useful-link {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.top-contents-icon {
  border-radius: 12px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 220px;
  transition: transform 0.6s ease;
}
.top-contents-icon:hover {
  transform: scale(1.1);
}
.top-contents-icon-box {
  overflow: hidden;
  border-radius: 12px;
}
.active .top-contents-icon {
  border: 5px solid #90afc5;
  box-sizing: border-box;
}
.active .top-contents-title {
  color: #336b87;
}
.top-contents-title {
  font-size: 1.4em;
  line-height: 1.2;
  margin-top: 10px;
}
.slider-caption {
  font-size: 1em;
  line-height: 1.2;
  margin-top: 4px;
}
.helitage-logo-box {
  width: 20%;
  margin: 0 auto 45px;
}
@media (max-width: 768px) {
  .top-contents-title {
    font-size: 1em;
  }
  #top-contents h2,
  #useful h2 {
    text-align: center;
  }
  .helitage-logo-box {
    width: 35%;
  }
  .helitage-logo-box {
    margin: 0 auto 25px;
  }
}

/* お役立ち情報 */
.useful-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.useful-icon {
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.useful-icon img {
  width: 100px;
}
.useful-icon img.manor-icon {
  width: 115px;
}
.useful-icon-small {
  width: 85px;
}
@media (max-width: 768px) {
  .top-contents-area,
  .useful-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 425px) {
  .useful-icon {
    height: 110px;
  }
  .useful-icon img {
    width: 85px;
  }
  .useful-icon img.manor-icon {
    width: 100px;
  }
  .useful-icon-small {
    width: 60px;
  }
}

/* かまくら日和 */
.bg-half {
  background: linear-gradient(to bottom, #90afc5 70%, transparent 70%);
}
.top-facility-slider {
  width: 80%;
  margin: 0 auto;
}
.top-facility-mainimg {
  width: 1200px;
  aspect-ratio: 2 / 1;
  object-fit: cover;
}
.top-facility-sab {
  gap: 12px;
}
.top-facility-img {
  width: 230px;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  margin: 0 4px;
}
.facility-slider-box {
  position: relative;
}
.facility-slider-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 330px;
  height: 100px;
  background: rgb(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  padding: 12px;
}

@media (min-width: 769px) {
  .top-facility-sab {
    display: flex;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .bg-half {
    background: linear-gradient(to bottom, #90afc5 85%, transparent 85%);
  }
  .top-facility-slider {
    width: 100%;
  }
  .top-facility-sab {
    display: flex;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 12px;
    padding: 0;
  }
  .top-facility-img {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    margin: 0;
  }
  .facility-slider-text {
    height: 100%;
    width: 30%;
    font-size: 0.7em;
  }
}

/* とっておきの鎌倉タビ */
.facility-2-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.facility-2-box {
  position: relative;
}
.facility-2-img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}
.facility-2-text {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background-color: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2em;
  padding: 12px;
}
.facility-2-box {
  cursor: pointer;
  max-width: 500px;
  overflow: hidden;
  width: 100%;
}
.facility-2-box .facility-2-img {
  height: auto;
  transition: transform 0.6s ease; /* ゆっくり変化させる */
  width: 100%;
}
.facility-2-box:hover .facility-2-img {
  transform: scale(1.1); /* 拡大 */
}
@media screen and (max-width: 768px) {
  .facility-2-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
  }
}
@media screen and (max-width: 560px) {
  .facility-2-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* 快適かまくら旅 */
.overtourism-card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.overtourism-card-container .slick-prev,
.overtourism-card-container .slick-next {
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 70px;
  height: 70px;
  background: #fff;
  border: 1px solid #90afc5;
  border-radius: 50%;
  transition: all 0.3s ease;
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
.overtourism-card-container .slick-prev:before,
.overtourism-card-container .slick-next:before {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  border-right: 2px solid #90afc5;
  border-top: 2px solid #90afc5;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

.overtourism-card-container .slick-prev {
  left: -35px;
}
.overtourism-card-container .slick-prev:before {
  transform: rotate(225deg);
}

.overtourism-card-container .slick-next {
  right: -35px;
}
.overtourism-card-container .slick-next:before {
  transform: rotate(45deg);
}

@media screen and (max-width: 768px) {
  .overtourism-card-container .slick-prev {
    left: -15px;
  }
  .overtourism-card-container .slick-next {
    right: -15px;
  }
}

.overtourism-card-container .slick-track {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.overtourism-card {
  width: 200px;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
}
.overtourism-card-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 2 / 3;
}
.overtourism-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media screen and (max-width: 1024px) {
  .overtourism-card-container {
    gap: 7px;
  }
  .overtourism-card-container .slick-track {
    gap: 7px;
  }
}

@media screen and (max-width: 768px) {
  .overtourism-card {
    width: calc(33.333% - 8px);
    min-width: 150px;
  }
}

@media screen and (max-width: 425px) {
  .overtourism-card {
    width: calc(50% - 6px);
    min-width: 120px;
  }
}

/* グラデーション*/
.overtourism-card-image::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 52%;
  background: -webkit-linear-gradient(top, rgba(0, 180, 255, 0.8) 0%, rgba(0, 180, 255, 0.4) 50%, rgba(0, 0, 0, 0) 100%);
  background: linear-gradient(to bottom, rgba(0, 180, 255, 0.8) 0%, rgba(0, 180, 255, 0.4) 50%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}
.overtourism-card-text {
  position: absolute;
  top: 5%;
  right: 5%;
  writing-mode: vertical-rl;
}
.overtourism-title {
  margin: 0 0 10px 0;
}
.overtourism-btn {
  background: #3a3a3a;
  text-align: center;
  padding: 12px 0;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.3s;
}
.overtourism-btn:hover {
  background: #555;
}

/* 鎌倉Selection */
.selection-slider {
  width: 85%;
  margin: 15px auto;
}
.selection-slider-card {
  display: inline-block;
  max-width: 280px;
  height: 350px;
  border-radius: 5px;
  text-decoration: none;
}
.selection-slider-img {
  width: 100%;
  border-radius: 5px 5px 0 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.selection-slider-title {
  font-size: 1.1em;
  line-height: 1.2;
  padding: 12px 3px 0 3px;
  text-align: center;
}
.selection-slider-text {
  font-size: 1em;
  line-height: 1.2;
  padding: 7px;
}
@media screen and (max-width: 1440px) {
  .selection-slider-card {
    height: 380px;
  }
  .selection-slider-title {
    font-size: 0.95em;
  }
  .selection-slider-text {
    font-size: 0.9em;
  }
}
@media screen and (max-width: 1024px) {
  .selection-slider-card {
    height: 330px;
  }
}
@media screen and (max-width: 768px) {
  .selection-slider-card {
    height: 390px;
  }
}
@media screen and (max-width: 425px) {
  .selection-slider-card {
    height: 340px;
  }
}
/* 矢印のベース */
.splide__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 70px;
  height: 70px;
  background: #fafafa;
  border-radius: 50%;
  transition: all 0.3s ease;
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
.splide__pagination {
  display: none !important;
}
/* 矢印の中のアイコンを消す */
.splide__arrow svg {
  display: none;
}
/* 矢印*/
.splide__arrow::before {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  border-right: 2px solid #274875;
  border-top: 2px solid #274875;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
/* 前の矢印 */
.splide__arrow--prev {
  left: -9%;
}
.splide__arrow--prev::before {
  transform: rotate(225deg);
}
/* 次の矢印 */
.splide__arrow--next {
  right: -9%;
}
.splide__arrow--next::before {
  transform: rotate(45deg);
}

/* 会員だより */
.member-news-bnr {
  max-width: 750px;
  margin: 0 auto;
}
.news-list-time {
  font-size: 80%;
}
#member-news-detail h4.heading-c {
  font-size: 1.4em;
}
@media (max-width: 768px) {
  #member-news-detail h4.heading-c {
    font-size: 1.2em;
  }
}

/* Special Contents */
.special-contents-title {
  font-size: 1.4em;
  letter-spacing: 0.1em;
  padding-top: 5px;
}
.special-contents-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.special-contents-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.special-contents-icon {
  border-radius: 12px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 260px;
  transition: transform 0.6s ease;
}
.special-contents-icon:hover {
  transform: scale(1.1);
}
.special-contents-icon-box {
  overflow: hidden;
  border-radius: 12px;
}

@media (max-width: 768px) {
  .special-contents-title {
    font-size: 1em;
  }
}
@media (max-width: 425px) {
  .special-contents-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* お知らせ */
.news-area {
  display: flex;
  justify-content: center;
}
.news-flex {
  display: flex;
  align-items: end;
  gap: 25px;
}
.news-box {
  width: 70%;
  margin: 0 auto;
}
.news-list {
  display: flex;
  gap: 12px;
  padding: 16px 0;
  border-bottom: 1px solid;
}
.news-category-box {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.news-important {
  padding: 0 10px;
  width: max-content;
  height: fit-content;
  background-color: #b1221a;
  color: #fafafa;
  font-size: 0.8em;
}
.news-category {
  border: 1px solid #5a5a5a;
  padding: 0 10px;
  width: max-content;
  height: fit-content;
  font-size: 0.8em;
}
@media (max-width: 768px) {
  .news-box {
    width: 95%;
  }
  .news-list {
    display: block;
  }
  .news-flex {
    flex-wrap: wrap;
    gap: 7px;
  }
}

/* SNS */
.sns {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  max-width: 450px;
  margin-top: 50px;
}
.sns-logo {
  height: 45px;
}
@media (max-width: 768px) {
  .sns {
    margin-top: 0;
  }
}

/* バナー */
.bnr-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.bnr-img {
  aspect-ratio: 19 / 7;
  object-fit: contain;
}
@media (max-width: 768px) {
  .bnr-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
  }
}
@media (max-width: 425px) {
  .bnr-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* パンくずリスト */
.breadcrumbs {
  background: #90afc5;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}
.breadcrumbs-list {
  display: flex;
  white-space: nowrap;
}
.breadcrumbs-list li {
  line-height: 1;
  padding: 0.5em 0;
  color: #fafafa;
  font-size: 1.4rem;
  flex-shrink: 0;
}
.breadcrumbs-list li a,
.breadcrumbs-list li:not(:last-of-type) {
  color: #336b87;
  padding-right: 0.1em;
  text-decoration: none;
  white-space: nowrap;
}
.breadcrumbs-list li:not(:last-of-type):after {
  content: '>';
}

/* 768px以下でのパンくずリスト対応 */
@media screen and (max-width: 768px) {
  .breadcrumbs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  }
  .breadcrumbs::-webkit-scrollbar {
    height: 4px;
  }
  .breadcrumbs::-webkit-scrollbar-track {
    background: transparent;
  }
  .breadcrumbs::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
  }
  .breadcrumbs-list {
    flex-wrap: nowrap;
    min-width: max-content;
  }
  .breadcrumbs-list li {
    /* font-size: 1.2rem; */
    padding: 0.4em 0;
  }
}

/* 下層ページMV */
.sub-small {
  font-size: 70%;
}

@media screen and (max-width: 425px) {
}

/* ボタン */
.btn a {
  text-decoration: none;
}
.btn-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}
.btn-box {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center;
  margin: 30px 0 20px;
}
.btn-box a:hover,
.btn a:hover,
.btn-more:hover,
.download-btn:hover,
.nav-list a:hover,
.footer-nav a:hover {
  opacity: 0.7;
}
.btn-a {
  border: 1px solid #a1b6ab;
  border-radius: 30px;
  padding: 7px 15px;
  text-decoration: none;
  width: 280px;
}
.btn-b,
.btn-c {
  border-radius: 5px;
  text-decoration: none;
  width: 300px;
  height: 55px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1.2em;
}
.btn-b {
  background: #336b87;
  color: #fafafa;
}
.btn-b a,
.btn-b a:visited {
  color: inherit;
}
.btn-c {
  background: #fafafa;
  color: #336b87;
}
.btn-more {
  display: inline-block;
  position: relative;
  border-bottom: 1px solid #fe4a02;
  text-decoration: none;
  padding: 0 20px 0 10px;
  color: #fe4a02;
}
.btn-more:after {
  content: '';
  display: block;
  width: 1px;
  height: 10px;
  background: #fe4a02;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: absolute;
  right: 0;
  bottom: 0;
}

/* 見出し */
.sub-h2 {
  margin-top: 70px;
}
.heading-a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  border-top: solid 1px black;
  border-bottom: solid 1px black;
  padding: 22px 0;
  margin-bottom: 50px;
}
.heading-a::before {
  content: '';
  position: absolute;
  top: -15px;
  left: 12px;
  width: 50px;
  height: 70px;
  background-color: #90afc5;
  z-index: -1;
}
.helitage-logo {
  width: 65px;
}
/* 小見出し */
.heading-b {
  position: relative;
  padding: 8px 16px;
  outline: 1px solid #422b1f;
  color: #422b1f;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 30px;
}
h2.heading-a {
  font-size: 1.6em;
  line-height: 1.6;
}
h3.heading-b {
  font-size: 1.2em;
}
.heading-b::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 1%;
  width: 98%;
  height: 82%;
  background: #e4d8ce;
  z-index: -999;
}
.heading-c {
  margin: 20px 0;
  padding: 0.5em 20px 0.5em 40px;
  border-bottom: 1px solid #9c9084;
  text-align: center;
}
h4.heading-c {
  font-size: 1.1em;
}
.heading-d {
  position: relative;
  display: inline-block;
  padding: 0 115px;
  text-align: center;
}
.heading-d:before,
.heading-d:after {
  position: absolute;
  top: calc(50% - -5px);
  width: 100px;
  height: 10px;
  content: '';
  border-top: solid 3px #2f5597;
}
.heading-d:before {
  left: 0;
}
.heading-d:after {
  right: 0;
}
@media screen and (max-width: 768px) {
  h2.heading-a {
    font-size: 1.2em;
    line-height: 1.4;
  }
  h3.heading-b {
    font-size: 1.2em;
    line-height: 1.4;
  }
}

/* 施設詳細テーブル */
.table-title {
  font-size: 1.17em;
  margin-top: 30px;
  margin-bottom: 7px;
}
.detail-table {
  border-collapse: collapse;
  width: 100%;
}
.detail-table th,
.detail-table td {
  border: 1px solid #d3d3d3;
  background-color: #fff;
  padding: 1em;
}
.detail-table th {
  background-color: #90afc5;
  color: #fff;
  font-weight: bold;
  /* text-align: center; */
  width: 20%;
  min-width: 4em;
}

/* テーブル横スクロール用ラッパー */
.table-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 4px;
}

@media screen and (max-width: 768px) {
  .table-scroll-wrapper {
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    margin: 0 0 45px 0;
    /* padding: 0 10px; */
  }

  .detail-table {
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
  }

  .detail-table th,
  .detail-table td {
    padding: 0.4em;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .detail-table th {
    min-width: 50px;
  }

  .sub-h2 {
    margin-top: 30px;
  }
}

/* パンフレットページ */
.map-box,
.tourist-map-box,
.guide-map-box,
.barrier-free-box,
.magazine-box,
.foreigners-box,
.roadmap-box {
  display: flex;
  flex-direction: column;
}

.map-box {
  width: 296px;
}
.tourist-map-box {
  width: 400px;
}
.guide-map-box {
  width: 600px;
}
.barrier-free-box {
  width: 450px;
}
.magazine-box {
  width: 300px;
}

.map-boxarea {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  gap: 15px;
}

.usefullist-box {
  width: 300px;
  height: 100px;
  background: #f6f5f3;
}

.adobepdf {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
  justify-content: center;
}

/* 資料請求フォーム */
.step-list {
  display: flex;
  gap: 4px;
}
.step-list__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  padding: 0 28px;
  flex: 1;
  list-style: none;
  background-color: #e0e0e0;
  text-align: center;
  clip-path: polygon(0% 0%, calc(100% - 28px) 0%, 100% 50%, calc(100% - 28px) 100%, 0% 100%, 28px 50%);
  margin: 0 -14px;
}
.step-list__item:first-child {
  clip-path: polygon(0% 0%, calc(100% - 28px) 0%, 100% 50%, calc(100% - 28px) 100%, 0% 100%);
  margin-left: 0;
  padding-left: 0;
}
.step-list__item:last-child {
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%, 28px 50%);
  margin-right: 0;
  padding-right: 0;
}
.step-list__item--current {
  background-color: #90afc5;
  color: #fff;
}
.step-text {
  display: block;
  font-size: 12px;
}
.step-text2 {
  display: block;
  font-size: 14px;
  font-weight: bold;
}
.contact-form {
  margin: 30px 0;
}
.contact-form input[type='text'],
.contact-form input[type='number'],
.contact-form input[type='email'],
.contact-form input[type='tel'],
.contact-form input[type='file'],
.contact-form input[type='date'],
.contact-form input[type='password'],
.contact-form textarea {
  width: calc(100% - 24px);
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.9em;
  background-color: #f9f9f9;
  margin-bottom: 4px;
}
.contact-form select {
  width: calc(100% - 24px);
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.9em;
  background-color: #f9f9f9;
  margin-bottom: 4px;
}

.contact-form input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.contact-form input[type='number']::-webkit-outer-spin-button,
.contact-form input[type='number']::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.form-group {
  margin: 25px 0;
}
.contact-form hr {
  color: #90afc5;
}
.hissu {
  background-color: #b1221a;
  color: #fff;
  font-size: 0.8em;
  padding: 1px 6px;
  border-radius: 4px;
  margin-left: 5px;
  vertical-align: baseline;
}
.form-group input[type='submit'] {
  border: none;
}

/* 確認画面 */
.confirm-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}
.confirm-table th,
.confirm-table td {
  border: 1px solid #ddd;
  padding: 12px;
  text-align: left;
}
.confirm-table th {
  background-color: #f5f5f5;
  font-weight: bold;
  width: 200px;
}
.confirm-table td {
  background-color: #fff;
}
.btn-group {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin: 30px 0;
}
.btn-back {
  background-color: #666;
  color: white;
  padding: 12px 30px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}
.btn-back:hover {
  background-color: #555;
}
.btn-submit {
  background-color: #e74c3c;
  color: white;
  padding: 12px 30px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.btn-submit:hover {
  background-color: #c0392b;
}

/* 完了画面 */
.complete-message {
  text-align: center;
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
  border-radius: 8px;
  padding: 30px;
  margin: 30px 0;
}

/* 観光名所ページ */
/* 検索ボックス */
.search-wrapper {
  border: 1px solid #063851;
  padding: 16px;
  position: relative;
  margin: 20px 0;
}
.search-title {
  position: absolute;
  top: -25px;
  left: 20px;
  background: #fafafa;
  padding: 0 8px;
  font-weight: bold;
}
.search-box {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}
.mb30 {
  margin-bottom: 30px !important;
}
.fa-select-boxarea {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}
.fa-select-box {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.fa-select-box::after {
  position: absolute;
  right: 15px;
  width: 10px;
  height: 7px;
  background-color: #3a3a3a;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: '';
  pointer-events: none;
}
.fa-select {
  appearance: none;
  min-width: 230px;
  height: 2.8em;
  padding: 0.4em calc(0.8em + 30px) 0.4em 0.8em;
  border: 1px solid #d0d0d0;
  border-radius: 3px;
  background-color: #fff;
  color: #333333;
  font-size: 1em;
  cursor: pointer;
}
.fa-search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 160px;
  height: 2.8em;
  padding: 0 1.2em;
  border-radius: 4px;
  font-size: 1em;
  font-weight: 600;
  color: #063851;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  cursor: pointer;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.fa-search-btn:hover {
  background-color: #f0f4f6;
}

.fa-search-btn:focus-visible {
  outline: 2px solid #336b87;
  outline-offset: 2px;
}

.fa-search-btn--primary {
  background-color: #90afc5;
  border-color: #90afc5;
  color: #ffffff;
}

.fa-search-btn--primary:hover {
  background-color: #0a4e72;
  border-color: #0a4e72;
}

.fa-search-btn--clear {
  background-color: #ffffff;
  border-color: #063851;
  color: #063851;
}

.fa-search-btn--clear:hover {
  background-color: rgba(6, 56, 81, 0.08);
  color: #042536;
}

.fa-search-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 8px;
}

.area-tag {
  color: #90afc5;
}

.area-link {
  text-decoration: none;
}
.area-link:hover {
  opacity: 0.7;
}

@media screen and (max-width: 768px) {
  .search-box {
    flex-direction: column;
    align-items: stretch;
  }

  .fa-select-boxarea {
    justify-content: center;
  }
  .fa-select {
    width: 290px;
  }
  .fa-search-actions {
    justify-content: center;
  }

  .fa-search-btn {
    width: 100%;
    min-width: 0;
  }
}

/* 一覧ページのグリッド */
.fa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 25px;
  margin-top: 30px;
}
.fa-card {
  position: relative;
  background: #fefefe;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
  overflow: hidden;
}
.fa-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}
.fa-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.fa-img {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  position: relative;
}

/* advertisement/?type=3 のみ正方形にする（他ページに影響させない） */
.advertisement-type-3 .fa-img {
  aspect-ratio: 1 / 1;
}
.fa-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.fa-card:hover .fa-image img {
  transform: scale(1.03);
}
.no-img {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f8f6f0 0%, #f0ede5 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b8b0a0;
  font-family: serif;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.no-img::after {
  content: '画像なし';
}
.fa-info {
  padding: 20px;
  background: #fff;
}
.fa-cility-title,
.news-list-title {
  line-height: 1.5;
  font-size: 1.1em;
  font-weight: bold;
  margin: 0.5em 0;
}
.furigana {
  display: block;
  color: #888;
}
.fa-content,
.news-list-text {
  margin: 0;
  font-size: 1em;
  line-height: 1.5;
}
.no-data {
  text-align: center;
  padding: 60px 20px;
  color: #888;
  font-size: 16px;
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {
  .fa-grid--topics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .fa-grid--topics > .fa-card:nth-child(n + 3) {
    display: none;
  }

  .fa-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 25px;
  }

  .fa-image {
    height: 200px;
  }

  .fa-info {
    padding: 15px;
  }
}

@media (max-width: 480px) {
  .subsite-detail-columns .fa-grid--topics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fa-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .fa-image {
    height: 180px;
  }
}

.slider-detail img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

#place .heading-a,
#stay-gurume .heading-a {
  margin-bottom: 7px;
}
#place .area-tag-box,
#stay-gurume .area-tag-box {
  margin-bottom: 70px;
}

#place .img-box img,
#stay-gurume .img-box img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
}

#place .img-box,
#stay-gurume .img-box {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-top: 70px;
}

#place .img-box > div,
#stay-gurume .img-box > div {
  max-width: 50%;
  width: 100%;
}

@media screen and (max-width: 768px) {
  #place .area-tag-box,
  #stay-gurume .area-tag-box {
    margin-bottom: 35px;
  }
  #place .img-box,
  #stay-gurume .img-box {
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 45px;
  }
  #place .img-box > div,
  #stay-gurume .img-box > div {
    max-width: 100%;
  }
  #place .img-box img,
  #stay-gurume .img-box img {
    aspect-ratio: auto;
  }
}

.recommend-box {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
}

.recommend-box .re-link {
  width: 280px;
  margin: 0 auto;
}

.re-link .re-img {
  width: 280px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.recommend a {
  text-decoration: none;
}

.recommend-text {
  background: #fff;
  padding: 7px;
}
/* 広告ページ */
/* レイアウト2 */
.layout-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ad-img-1200 {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}

.media-mvimg {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.ad-mv {
  height: 400px;
  width: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.ad-media-mvimg {
  height: 100%;
  width: auto;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .ad-mv {
    height: auto;
  }
  .layout-2 {
    grid-template-columns: 1fr;
  }
}

.ad-movie {
  width: 80%;
  height: auto;
  display: block;
  margin: 20px auto 0 auto;
  aspect-ratio: 16 / 9;
}

.movie-in {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

/* index */
.ad-index-box {
  position: relative;
  padding: 1.5em 1em 1em 2.5em;
  border: 2px solid #734e30;
}

.ad-index-box > h2 {
  position: absolute;
  top: -0.75em;
  left: 1em;
  padding: 0 0.5em;
  background-color: #fafafa;
  color: #734e30;
  font-weight: 600;
}

.index-list {
  list-style-type: disc;
}

.index-list .index-title {
  width: 150px;
  display: inline-block;
}

.ad-index-box a:hover {
  opacity: 0.7;
}

/* 子 */
.ad-section {
  margin-top: 100px;
}
/* chapter見出し */
.chapter-h2 {
  position: relative;
  font-size: 0.65em;
}

.chapter-title {
  padding-top: 1.5em;
  padding-bottom: 12px;
  display: block;
  font-size: 0.75em;
}

.chapter-h2::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -15%;
  background: #333;
  width: 20px;
  height: 1px;
  display: inline-block;
}

/* special story 見出し*/
.ad-special-title {
  display: block;
}

@media screen and (max-width: 1024px) {
  .ad-index-list {
    display: flex;
    flex-direction: column;
  }
}
@media screen and (max-width: 425px) {
  .index-link {
    display: block;
  }
  .heading-d:before,
  .heading-d:after {
    width: 60px;
  }
  .heading-d {
    padding: 0 75px;
  }
}

/* センター */
.media-center {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}
.media-center-img {
  /* aspect-ratio: 16 / 9; */
  object-fit: cover;
  display: block;
  margin: 0 auto;
}
.media-w-100 {
  width: 100%;
}
.media-w-75 {
  width: 75%;
}
.media-w-50 {
  width: 50%;
}
.media-w-25 {
  width: 25%;
}

/* 画像キャプション */
.media-caption {
  font-size: 13px;
  color: #666;
  text-align: center;
  margin: 8px 0 16px 0;
  padding: 0;
  line-height: 1.4;
  font-style: italic;
}

/* デフォルト */
.media-flex {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.media-flex-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.media-flex-spacer {
  visibility: hidden;
}
/* タイトルと横並びのときは中央寄せ */
.media-flex-title {
  align-items: center;
}
.media-flex-img {
  width: 100%;
  object-fit: cover;
}
/* 画像左 （中はデフォルトの1：1）*/
.media-flex-img-l-small,
.media-flex.media-flex-img-l-small {
  grid-template-columns: 1fr 3fr;
}
.media-flex-img-l-large,
.media-flex.media-flex-img-l-large {
  grid-template-columns: 3fr 2fr;
}
/* 画像右 */
.media-flex-img-r-small,
.media-flex.media-flex-img-r-small {
  grid-template-columns: 3fr 1fr;
}
.media-flex-img-r-large,
.media-flex.media-flex-img-r-large {
  grid-template-columns: 2fr 3fr;
}

@media screen and (max-width: 768px) {
  .media-w-75,
  .media-w-50,
  .media-w-25 {
    width: 100%;
  }

  .media-flex,
  .media-flex-img-l-small,
  .media-flex.media-flex-img-l-small,
  .media-flex-img-l-large,
  .media-flex.media-flex-img-l-large,
  .media-flex-img-r-small,
  .media-flex.media-flex-img-r-small,
  .media-flex-img-r-large,
  .media-flex.media-flex-img-r-large {
    grid-template-columns: 1fr; /* 一列表示 */
  }
  .media-flex-3 {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* ページネーション */
.pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 3px 8px;
  list-style-type: none;
  padding: 0;
}
.pagination a {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2em;
  height: 2em;
  border-radius: 1px;
  background-color: #f2f2f2;
  color: #90afc5;
}
.pagination a {
  text-decoration: none;
}
.pagination a:hover {
  color: #063851;
}
.pagination .current a {
  background-color: #90afc5;
  color: #fff;
  pointer-events: none;
}

/* 仮 */
.member-news-box {
  display: flex;
  gap: 12px;
  width: 100%;
  padding: 15px 0;
  border-bottom: 1px solid #90afc5;
  text-decoration: none;
}
.member-news-box:hover {
  opacity: 0.7;
}
.member-news-box:nth-child(even) {
  flex-flow: row-reverse;
}
.member-news-box:last-child {
  border-bottom: none;
}
.member-news-imgbox {
  width: 35%;
}
.member-news-img {
  object-fit: cover;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .member-news-imgbox {
    width: 47%;
    height: 100%;
  }
  .member-news-img {
    aspect-ratio: 1 / 1;
    height: auto;
  }
  .member-news-text p {
    font-size: 0.8em;
  }
}

/* リンク集 */
.media-link-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.media-link-list a {
  text-decoration: none;
}
.media-link-title {
  font-size: 1.4em;
}
.media-link-text {
  line-height: 1.2;
  font-size: 1em;
}
@media screen and (max-width: 768px) {
  .media-link-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 425px) {
  .media-link-list {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* QA */
.qa-title {
  padding: 0 0.7em;
  background-color: #90afc5;
}
.qa-title a {
  color: #fafafa;
  text-decoration: none;
}
.qa-list-wrap {
  margin-bottom: 30px;
}
.qa-list {
  border-bottom: 1px solid #d3d3d3;
  padding: 7px 0;
  list-style-type: disclosure-closed;
  margin-left: 3%;
}
.qa-link {
  display: grid;
  text-decoration: none;
}
.qa-link-title {
  font-size: 1.2em;
}
.qa-link:hover {
  color: #90afc5;
}

.qa-box {
  margin-bottom: 5px;
  border-bottom: 2px solid #d6dde3;
}

.qa-box summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 1em 2em 1em 3em;
  color: #333333;
  font-weight: 600;
  cursor: pointer;
}

.qa-box summary::before,
.qa-box p::before {
  position: absolute;
  left: 1em;
  font-size: 1.3em;
}

.qa-box summary::before {
  color: #90afc5;
  content: 'Q';
}

.qa-box summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid #333;
  border-right: 3px solid #333;
  content: '';
  transition: transform 0.5s;
}

.qa-box[open] summary::after {
  transform: rotate(225deg);
}

.answer-box p {
  padding: 0.3em 3em 1.5em;
}

.answer {
  position: relative;
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  transition:
    transform 0.5s,
    opacity 0.5s;
}

.answer {
  transform: none;
  opacity: 1;
}

.answer::before {
  color: #ff8d8d;
  line-height: 1.2;
  content: 'A';
}
.float-r {
  float: right;
}
.answer-box .float-r {
  width: 360px;
}

/* お役立ち下層 */
.helpful-link {
  border-top: 1px solid #3a3a3a;
  border-bottom: 1px solid #3a3a3a;
}
.helpful-link li {
  padding: 12px 0;
}
.helpful-link-list dt {
  margin-top: 12px;
}
.helpful-box-line {
  border: 1px solid #5a5a5a;
  padding: 12px;
}
.member-news-files {
  background-color: #f8f8f8;
  border-radius: 6px;
  padding: 16px;
}
.member-news-files__label {
  font-weight: 600;
  margin: 0 0 12px;
}
.member-news-files__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.member-news-files__item {
  margin-bottom: 8px;
}
.member-news-files__item:last-child {
  margin-bottom: 0;
}
.member-news-files__item a {
  color: #005bac;
  text-decoration: underline;
}

/* サブサイト */
.subsite-in {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 12px;
}
.subsite-bnr-grid {
  display: grid;
  /* grid-template-columns: repeat(2, 1fr); */
  gap: 12px;
}

#subsite .subsite-banners--mobile,
#kaiteki-kamakura .subsite-banners--mobile {
  display: none;
}

#subsite .subsite-banners--desktop,
#kaiteki-kamakura .subsite-banners--desktop {
  display: block;
}

#subsite .fa-img,
#kaiteki-kamakura .fa-img {
  height: auto;
  aspect-ratio: 16 / 9;
}

@supports not (aspect-ratio: 16 / 9) {
  #subsite .fa-img,
  #kaiteki-kamakura .fa-img {
    position: relative;
  }
  #subsite .fa-img::before,
  #kaiteki-kamakura .fa-img::before {
    content: '';
    display: block;
    padding-top: 56.25%;
  }
  #subsite .fa-img > img,
  #kaiteki-kamakura .fa-img > img {
    position: absolute;
    inset: 0;
  }
}

#subsite .subsite-detail-columns,
#kaiteki-kamakura .subsite-detail-columns {
  display: flex;
  flex-direction: row-reverse;
  gap: 60px;
  align-items: flex-start;
}

#subsite .subsite-detail-main,
#kaiteki-kamakura .subsite-detail-main {
  flex: 1;
  min-width: 0;
}

#subsite .subsite-detail-sidebar,
#kaiteki-kamakura .subsite-detail-sidebar {
  flex: 0 0 280px;
  min-width: 0;
  margin-top: 50px;
}

#subsite .table-scroll-wrapper {
  overflow-x: hidden;
}

#subsite .detail-table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
}

#subsite .detail-table th {
  min-width: 50px;
}

#subsite .detail-table th,
#subsite .detail-table td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* SP aside accordion */
.aside-list {
  margin: 0 10px 0px 20px;
}
.sub-topics-link {
  margin-bottom: 1em;
  margin-top: 1em;
  line-height: 1.4;
}
.sub-topics-link a {
  font-size: 1.4rem;
}
#subsite .subsite-sidebar-accordion,
#kaiteki-kamakura .subsite-sidebar-accordion {
  width: 100%;
}

#subsite .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b,
#kaiteki-kamakura .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b {
  display: block;
  list-style: none;
}

#subsite .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b::-webkit-details-marker,
#kaiteki-kamakura .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b::-webkit-details-marker {
  display: none;
}

@media (min-width: 769px) {
  #subsite .subsite-detail-main .fa-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #subsite .subsite-topics-main {
    margin-top: 50px;
  }

  #kaiteki-kamakura .subsite-detail-main .fa-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #kaiteki-kamakura .subsite-topics-main {
    margin-top: 50px;
  }

  /* PCでは常に展開してアコーディオン無効化 */
  #subsite .subsite-detail-sidebar details.subsite-sidebar-accordion > .subsite-sidebar-accordion__content,
  #kaiteki-kamakura .subsite-detail-sidebar details.subsite-sidebar-accordion > .subsite-sidebar-accordion__content {
    display: block;
  }

  #subsite .subsite-detail-sidebar details.subsite-sidebar-accordion > summary.heading-b,
  #kaiteki-kamakura .subsite-detail-sidebar details.subsite-sidebar-accordion > summary.heading-b {
    cursor: default;
    pointer-events: none;
  }
}

/* 快適かまくら旅 */
#kaiteki-kamakura .kaiteki-kamakura-detail-columns {
  display: flex;
  flex-direction: row-reverse;
  gap: 24px;
  align-items: flex-start;
}

#kaiteki-kamakura .kaiteki-kamakura-detail-main {
  flex: 1;
  min-width: 0;
}

#kaiteki-kamakura .kaiteki-kamakura-detail-sidebar {
  flex: 0 0 320px;
  min-width: 0;
}

.sub-bnr {
  display: block;
  width: 260px;
  height: auto;
  object-fit: cover;
}

.thumbnail {
  width: 100%;
  aspect-ratio: 16/ 3;
}

.thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  /* NOTE: 機能追加後にSPでもサムネイルを表示する場合は、このdisplay:noneを削除してください */
  /* #subsite .thumbnail {
    display: none;
  } */

  #subsite,
  #kaiteki-kamakura {
    overflow-x: hidden;
  }

  #subsite .subsite-detail-columns,
  #kaiteki-kamakura .subsite-detail-columns {
    flex-direction: column;
    gap: 20px;
  }
  #subsite .subsite-detail-main,
  #kaiteki-kamakura .subsite-detail-main {
    order: 2;
  }
  #subsite .subsite-detail-sidebar,
  #kaiteki-kamakura .subsite-detail-sidebar {
    order: 1;
    flex-basis: auto;
    width: 100%;
    margin-top: 20px;
  }

  #subsite .subsite-banners--desktop,
  #kaiteki-kamakura .subsite-banners--desktop {
    display: none;
  }

  #subsite .subsite-banners--mobile,
  #kaiteki-kamakura .subsite-banners--mobile {
    display: block;
  }

  #subsite .subsite-featured-topics,
  #kaiteki-kamakura .subsite-featured-topics {
    display: none;
  }

  #subsite .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b,
  #kaiteki-kamakura .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b {
    display: block;
    width: 100%;
    margin-top: 10px;
    margin-bottom: 0;
    cursor: pointer;
    pointer-events: auto;
  }

  #subsite .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b::after,
  #kaiteki-kamakura .subsite-detail-sidebar .subsite-sidebar-accordion > summary.heading-b::after {
    content: '＋';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
  }

  #subsite .subsite-detail-sidebar .subsite-sidebar-accordion[open] > summary.heading-b::after,
  #kaiteki-kamakura .subsite-detail-sidebar .subsite-sidebar-accordion[open] > summary.heading-b::after {
    content: '−';
  }

  #subsite .subsite-sidebar-accordion__content {
    max-width: 100%;
  }

  #subsite .subsite-detail-sidebar a,
  #kaiteki-kamakura .subsite-detail-sidebar a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  #subsite .subsite-detail-sidebar img,
  #kaiteki-kamakura .subsite-detail-sidebar img {
    max-width: 100%;
    height: auto;
  }

  /* main側の横はみ出し対策（トピックス以降） */
  #subsite .subsite-detail-main,
  #kaiteki-kamakura .kaiteki-kamakura-detail-main {
    max-width: 100%;
  }

  #subsite .subsite-detail-main a,
  #kaiteki-kamakura .kaiteki-kamakura-detail-main a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  #subsite .subsite-detail-main img,
  #kaiteki-kamakura .kaiteki-kamakura-detail-main img {
    max-width: 100%;
    height: auto;
  }

  #subsite .ad-movie iframe,
  #kaiteki-kamakura .ad-movie iframe {
    width: 100%;
    height: 100%;
    display: block;
  }

  #subsite .table-scroll-wrapper,
  #kaiteki-kamakura .table-scroll-wrapper {
    margin-left: 0;
    margin-right: 0;
  }

  #kaiteki-kamakura .kaiteki-kamakura-detail-columns {
    flex-direction: column;
    gap: 20px;
  }
  #kaiteki-kamakura .kaiteki-kamakura-detail-sidebar {
    flex-basis: auto;
  }
  .subsite-bnr-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
    margin-top: 50px;
  }
  .sub-topics-link {
    padding: 4px 0;
    border-bottom: 1px solid #ccc;
  }
  .sub-topics-link a {
    text-decoration: none;
  }
}

/* モデルコース */
.course-flex {
  display: flex;
  gap: 7px;
}
.course-main,
.course-flow {
  width: 100%;
}
.course-flow-item {
  padding: 20px 30px;
  border: 2px solid #90afc5;
  border-radius: 10px;
  position: relative;
}
.course-flow-item:not(:first-child)::before {
  content: '';
  height: 40px;
  display: block;
  border-left: 4px dotted #90afc5;
  position: absolute;
  top: -40px;
  left: calc(10% + 30px - 2px);
  z-index: 1;
}
.course-flow-item:not(:last-child) {
  margin-bottom: 40px;
}
.course-flow-item--start,
.course-flow-item--goal {
  background: #90afc5;
  color: #fafafa;
}

.course-detail-item {
  position: relative;
}
.course-detail-item:not(:first-child)::before {
  content: '';
  height: 40px;
  display: block;
  border-left: 4px dotted #90afc5;
  position: absolute;
  top: -40px;
  left: 50%;
  z-index: 1;
}
.course-detail-item:not(:last-child) {
  margin-bottom: 40px;
}
.course-detail-start,
.course-detail-goal {
  border: 1px solid #90afc5;
  padding: 15px 7px;
  max-width: 350px;
  border-radius: 10px;
}
.course-detail-start span,
.course-detail-goal span {
  padding-right: 7px;
  color: #063851;
}
.time-required {
  padding: 15px 7px;
  background: #90afc5;
  color: #fafafa;
  max-width: 300px;
  border-radius: 10px;
}
.course-detail-box {
  background: #f3f0e7;
  padding: 20px 0;
}
.course-facility {
  border-bottom: 1px dotted #90afc5;
  padding-bottom: 4px;
  width: 75%;
}
.course-detail-img {
  width: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .course-flex {
    flex-wrap: wrap;
  }
}

.ol-number {
  list-style-type: decimal;
}
.ol-number li {
  margin-left: 20px;
  margin: 12px 0;
}

.sitemap-link {
  display: inline-block;
  margin-right: 15px;
  padding-right: 15px;
  border-right: 1px solid #999;
  line-height: 1.2em;
}

/* 会員一覧 */
.member-link {
  display: flex;
  gap: 20px;
  align-items: center;
  width: 90%;
  height: 120px;
  background: #f3f0e7;
  padding: 7px 20px;
  margin: 0 auto;
  text-decoration: none;
  box-shadow: 5px 5px 7px #c5c5c5;
  transition: all 0.1s ease-in-out;
}

.member-link:hover {
  box-shadow: 2px 2px 4px #aaa;
  transform: translateY(3px);
  background: #e0ddd2;
}

.member-list {
  border-collapse: collapse;
  width: 100%;
}
.member-list th,
.member-list td {
  border: 1px solid #d3d3d3;
  padding: 1em;
}
.member-list th {
  background-color: #90afc5;
  color: #fff;
  font-weight: bold;
  text-align: center;
  width: 20%;
  min-width: 4em;
}
.member-list tr:nth-child(2n) {
  background: #f3f0e7;
}

/* 花 */
.flower-link-area {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  height: 300px;
  text-decoration: none;
  margin-bottom: 15px;
  margin-top: 30px;
  box-shadow: 6px 5px 7px #bdbdbd;
  transition: all 0.15s ease;
}
.flower-link-area:last-child {
  margin-bottom: 4em;
}
.flower-link-area:hover {
  box-shadow: 2px 2px 4px #9e9e9e inset;
  transform: translateY(2px);
}
.flower-link-img {
  height: 300px;
}
.flower-link-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.flower-link-text {
  text-align: center;
  padding: 30px;
}
.flower-ajisai,
.flower-others {
  background: rgba(207, 212, 241, 0.8);
}
.flower-koyou {
  background: #d8c28a;
}
.flower-sakura,
.flower-ume {
  background: rgb(255, 193, 194, 0.8);
}
.flower-text-title {
  position: relative;
  padding: 15px;
}
.flower-text-title::after {
  position: absolute;
  content: '';
  width: 36px;
  height: 36px;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
@media (max-width: 768px) {
  .flower-link-area {
    grid-template-columns: repeat(1, 1fr);
    height: auto;
  }

  /* SPでは2個目/4個目だけ画像→テキストの順にする（HTMLはテキスト→画像のため反転） */
  .flower-link-area:nth-of-type(2),
  .flower-link-area:nth-of-type(4) {
    display: flex;
    flex-direction: column-reverse;
  }
}
