@charset "utf-8";
/* CSS Document */
.sp-only {
  display: none; /* 初期状態（PC用）は非表示 */
}
@media screen and (max-width: 767px) {
  .sp-only {
    display: block; /* スマホのときだけ表示する */
  }
}
.toc-001 {
  margin-bottom: 30px;
  padding: 1em 1em 1em 2em;
  border: 1px solid #999;
  background-color: #f7f7f7;
  color: #333333;
}
.toc-001 div {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 5px 0;
}
.toc-001 ol {
  list-style-type: decimal;
  margin: 0;
  padding: 0 1.2em;
  overflow: hidden;
}
.toc-001 ol ol {
  margin-top: 5px;
}
.toc-001 li {
  padding: 5px 0;
}
.toc-001 a {
  color: #166c9d;
}
table.tbl-r02 {
  width: 90%;
  margin: 20px auto;
  border-collapse: collapse;
  /*border: solid 1px #ccc;*/
  font-weight: 600;
}
.tbl-r02 th {
  background: #f3f4f6;
  border: solid 1px #ccc;
  padding: 10px;
  text-align: center;
  width: 30%;
}
.tbl-r02 td {
  padding: 10px;
  border: solid 1px #ccc;
}
@media screen and (max-width: 960px) {
  table.tbl-r02 .last td:last-child {
    border-bottom: solid 1px #ccc;
    width: 100%;
  }
  table.tbl-r02 {
    width: 100%;
    margin-bottom: 10%;
  }
  table.tbl-r02 th, table.tbl-r02 td {
    border-bottom: none;
    display: block;
    width: 100%;
    font-size: .85em;
  }
}
/*******************************/
table.hikaku {
  border-collapse: collapse;
  margin: 0 auto;
  padding: 0;
  width: 100%;
  /*table-layout: fixed;*/
}
table.hikaku tr {
  background-color: #e6f2f5;
  padding: .35em;
  border-bottom: 2px solid #fff;
}
table.hikaku th, table.hikaku td {
  padding: 1em 10px 1em 1em;
  border-right: 2px solid #fff;
}
table.hikaku th {
  font-size: .85em;
}
table.hikaku thead tr {
  background-color: #167F92;
  color: #fff;
  text-align: center;
}
table.hikaku thead tr span {
  color: #FFE500
}
table.hikaku tbody th {
  background: #78bbc7;
  color: #fff;
  font-weight: bold;
  width: 20%;
}
table.hikaku tbody td {
  text-align: left;
  font-size: .85em;
  font-weight: bold;
}
.txt {
  text-align: left;
  font-size: .85em;
}
.price {
  text-align: right;
  color: #167F92;
  font-weight: bold;
}
.non {
  background: #fff
}
@media screen and (max-width: 960px) {
  table.hikaku {
    border: 0;
    width: 100%
  }
  table.hikaku th {
    background-color: #167F92;
    display: block;
    border-right: none;
  }
  table.hikaku thead {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  table.hikaku tbody th {
    width: 100%;
  }
  table.hikaku tr {
    display: block;
    margin-bottom: .625em;
  }
  table.hikaku td {
    border-bottom: 1px solid #bbb;
    display: block;
    font-size: .8em;
    text-align: right;
    position: relative;
    padding: .625em .625em .625em 8em;
    border-right: none;
  }
  table.hikaku td::before {
    content: attr(data-label);
    font-weight: bold;
    position: absolute;
    left: 5px;
    color: #167F92;
  }
  table.hikaku td:last-child {
    border-bottom: 0;
  }
  table.hikaku tbody th {
    color: #fff;
  }
}
/************************/
.block-red {
  width: 90%;
  margin: 24px auto;
  padding: 1rem;
  border: 2px solid #ff6658;
  border-radius: 4px;
  background: #fff6f6;
  font-size: 0.9375rem;
  text-align: center;
}
.block-red-inner p {
  margin-bottom: 0;
}
.block-red-inner p strong {
  font-weight: bold;
  font-size: 1.2em;
}

.block-orange {
  width: 100%;
  margin: 24px auto;
  padding: 1rem;
/*  border: 2px solid #ff6658;*/
  border-radius: 4px;
  background: #fff9f4;
  font-size: 0.9375rem;
  text-align: left;
}
.block-orange-inner p {
  margin-bottom: 0;
}
.block-orange-inner p.b_line {
  font-weight: bold;	
	border-bottom: dotted 1px #8B8B8B;
	padding-bottom: 0.5em;
	margin-bottom: 1em
}
.block-orange-inner p strong {
  font-weight: bold;
  font-size: 1.2em;
}


/* ギャラリー全体のスタイル */
.gallery-section {
  padding: 50px 20px;
  background-color: #fff; /* 背景色はサイトに合わせて調整してください */
}
.gallery-container {
  max-width: 960px;
  margin: 0 auto;
}
.gallery-title {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 30px;
  position: relative;
  padding-bottom: 10px;
}
.gallery-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 2px;
  background-color: #bf0000;
}
/* グリッドレイアウト（PCは4列、スマホは2列） */
.gallery-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}
.gallery-item {
  width: calc(25% - 11.25px); /* (100% - gap*3)/4 */
  display: block;
  overflow: hidden;
  border-radius: 4px;
  transition: opacity 0.3s;
}
.gallery-item:hover {
  opacity: 0.8;
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}
/* --- Lightbox CSS --- */
.lightbox {
  display: none; /* 通常時は非表示 */
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  align-items: center;
  justify-content: center;
}
/* :target を使って表示を切り替え */
.lightbox:target {
  display: flex;
}
.lightbox-content {
  position: relative;
  max-width: 90%;
  max-height: 90%;
}
.lightbox-content img {
  max-width: 100%;
  max-height: 90vh;
  border: 3px solid #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}
/* 背景クリックで閉じるための透明なリンク */
.lightbox-close {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: default;
}
/* 右上の×ボタン */
.close-btn {
  position: absolute;
  top: -40px;
  right: 0;
  color: #fff;
  font-size: 30px;
  text-decoration: none;
  font-weight: bold;
}
/* ナビゲーションボタンの基本スタイル */
.nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  font-size: 40px;
  text-decoration: none;
  background: rgba(0, 0, 0, 0.3);
  padding: 20px 10px;
  transition: background 0.3s;
  z-index: 10001; /* 画像より前面に */
  user-select: none;
}
.nav-btn:hover {
  background: rgba(0, 0, 0, 0.8);
}
/* 左矢印 */
.nav-btn.prev {
  left: -60px;
}
/* 右矢印 */
.nav-btn.next {
  right: -60px;
}
/* スマホでは画像に重なるように調整 */
@media screen and (max-width: 960px) {
  .nav-btn {
    padding: 15px 5px;
    font-size: 30px;
  }
  .nav-btn.prev {
    left: 0;
  }
  .nav-btn.next {
    right: 0;
  }
}
/* レスポンシブ対応 */
@media screen and (max-width: 960px) {
  .gallery-section {
    padding: 0 0 20px 0;
    background-color: #fff; /* 背景色はサイトに合わせて調整してください */
  }
  .gallery-item {
    width: calc(50% - 7.5px); /* (100% - gap*1)/2 */
  }
}


.block-box {
  width: 98%;
  position: relative;
  margin: 2em auto;
  /*padding: 0.5em 1em;*/
  padding: 1rem;
  border: solid 3px #ff7d6e;
  border-radius: 8px;
}
.block-box .box-title {
  position: absolute;
  display: inline-block;
  top: -13px;
  left: 10px;
  padding: 0 9px;
  line-height: 1;
  /* font-size: 16px;*/
  background: #FFF;
  color: #ff7d6e;
  font-weight: bold;
}
.block-box p {
  margin: 0;
  padding: 0;
}
.block-box p.b_line {
 font-weight: bold;	
	border-bottom: dotted 1px #8B8B8B;
	padding-bottom: 0.5em;
	margin-bottom: 1em
}


/* レスポンシブ対応 */
@media screen and (max-width: 960px) {
  .block-box {
    width: 100%;
  }
  .block-box .box-title {
    /*font-size: 0.9375rem;*/
    line-height: 1.5
  }
}
/**********タイトル背景赤ボックス**********/
.block-box-red {
  width: 90%;
  margin: 2em auto;
  border: 2px solid #ff7d6e;
  border-radius: 5px;
  padding: 0.5rem;
}
.block-box-red h3 {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .5em;
  /*background-color: #ff7d6e;*/
  /*border-bottom: 2px solid #ff7d6e;*/
  color: #ff7d6e;
  font-weight: 600;
}
.block-box-red p {
  margin: 0;
  padding: 1em 1.5em;
  color: #333;
}
.block-box-red p strong {
  font-weight: bold;
}
@media screen and (max-width: 960px) {
  .block-box-red {
    width: 100%;
  }
  .block-box-red h3 {
	  text-align: center;
	}
}
/*******タイトル背景赤ボックス********/
.box {
  padding: 1rem;
  /*background-color: #efefef;*/
  border: solid 3px #ff7d6e;
}
.box::before {
  display: block;
  padding: 0.5rem 0;
  margin-bottom: 1rem;
  background-color: #ff7d6e;
  color: #fff;
  text-align: center;
  content: attr(data-title);
}
.box p {
  /*margin: 1r 0em;*/
  color: #333;
  line-height: 1.5;
}
.box-005 {
  width: 100%;
  margin: 2em auto;
  border: 2px solid #f06060;
  border-radius: 5px;
  color: #333333;
}
.box-005 h3 {
  display: inline-flex;
  align-items: center;
  column-gap: 4px;
  position: relative;
  top: -13px;
  left: 10px;
  margin: 0 7px;
  padding: 0 8px;
  background: #fff;
  color: #f06060;
  font-weight: 600;
  vertical-align: top;
}
.box-005 h3::before {
  width: 22px;
  height: 22px;
  content: '';
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.8659 3.00017L22.3922 19.5002C22.6684 19.9785 22.5045 20.5901 22.0262 20.8662C21.8742 20.954 21.7017 21.0002 21.5262 21.0002H2.47363C1.92135 21.0002 1.47363 20.5525 1.47363 20.0002C1.47363 19.8246 1.51984 19.6522 1.60761 19.5002L11.1339 3.00017C11.41 2.52187 12.0216 2.358 12.4999 2.63414C12.6519 2.72191 12.7782 2.84815 12.8659 3.00017ZM10.9999 16.0002V18.0002H12.9999V16.0002H10.9999ZM10.9999 9.00017V14.0002H12.9999V9.00017H10.9999Z' fill='%23f06060'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
}
.box-005 p {
  margin: 0;
  padding: 0 1.5em 1em;
}
/*****************************/
ul.feature-cards {
  list-style: none;
  padding: 0;
  width: 90%;
  margin: 0 auto;
}
.feature-cards {
  display: flex;
  /*display: -webkit-flex;
  flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  align-items: center;
  -webkit-align-items: center;
  justify-content: center;
  -webkit-justify-content: center;*/
}
.ditailcard {
  flex: 0 0 50%;
  text-align: center;
  border: 1px solid #eee;
  padding-bottom: 1rem;
  box-sizing: border-box;
  margin: 0 auto 3em;
	background-image: url("../img/2route/sun.png") ;
	background-repeat:no-repeat;
	background-size:100px auto;
	background-position:bottom right;
}
.ditailcard .ditailcard-title {
  background: #ffa500;
  color: #fff;
  padding: 10px;
  margin: 0;
}
.ditailcard.free {
  border: 3px solid #ffa500;
  padding-bottom: 3rem
}
.ditailcard.premium {
  border: 3px solid #00bfff;
  padding-bottom: 3rem;
	background-image: url("../img/2route/rain.png") ;
	background-repeat:no-repeat;
	background-size:100px auto;
	background-position:bottom right;
}
.ditailcard.premium .ditailcard-title {
  background: #00bfff;
  color: #fff;
  padding: 10px;
  margin: 0;
}
.ditailcard .ditailcard-place {
  min-height: 85px;
  margin: 0 auto;
  padding: 1rem 0 0;
  font-weight: bold;
}
/*  .pricecard.premium .ditailcard-place {
            padding: 20px;
        }*/
.ditailcard .ditailcard-txt {
  margin: 0;
  padding: 1rem;
  text-align: left;
}
@media screen and (max-width: 960px) {
	ul.feature-cards {
		width: 100%;
		margin:  2em 0;
	}
  .ditailcard {
    margin-bottom: 0.2rem;	
	background-size:70px auto;
	background-position:bottom right;
  }
	.ditailcard.premium {
		background-size:70px auto;
	background-position:bottom right;
	}
  .ditailcard.free, .ditailcard.premium {
    padding-bottom: 2rem
  }
  .feature-cards {
    flex-direction: column;
    -webkit-flex-direction: column;
  }
  .ditailcard, .card_photo {
    flex: 0 0 auto;
    -webkit-flex: 0 0 auto;
  }
  .ditailcard.premium {
    order: 1;
    -webkit-order: 1;
  }
}