.heading1 {
    font-size: 28px;
}

.heading1 + .wide {
    text-align: center;
    margin-top: 37px;
}

.heading2 {
    text-align: center;
    margin-bottom: 42px;
    font-weight: 700;
}

.heading2_type2 {
    text-align: center;
    margin-bottom: 22px;
    font-weight: 700!important;
}

.heading2_type2 + .box {
    max-width: 672px;
    margin: 0 auto;
    box-sizing: border-box;
}

.heading2 + .wide {
    text-align: center;
}

#te-t-20230220065717760 {
    margin-top: 24px;
}

#te-t-20230407011249969 {
    margin-top: 38px;
}

.mt30 {
    margin-top: 30px;
}

.map {
    margin-top: 60px;
}

.link-db {
    display: block;
}

@media screen and (max-width: 767px) {
    #main .container-instance {
        margin-bottom: 36px;
    }

    .heading1 + .wide {
        margin-top: 29px;
        margin-bottom: 0;
    }

    .heading2 {
        margin-bottom: 38px;
    }

    .heading2_type2 {
        font-size: 28px;
    }

    #main #carousel-slider-20230220074233085 {
        margin-bottom: 53px;
    }

    .mt30 {
        margin-top: 40px;
    }

    .map {
        margin-top: 40px;
    }
}


/*予約 ---------------------*/
.reservation-section {
  padding: 2em 0;
	margin: 0;
	width: 100%;
}

.reservation-box {
  background-color: #001e62;
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: 2em 1em;
  text-align: center;
  font-family: sans-serif;
}

.reservation-title {
  max-width: 100%;
  margin: 0 auto 2em;
}

.reservation-title img {
  width: 100%;
  height: auto;
  display: block;
}

/* PC/SP タイトル切替 */
.reservation-title img.pc {
  display: none;
}
.reservation-title img.sp {
  display: block;
}

.reservation-info {
  margin-top: 2em;
  font-size: 0.95em;
  line-height: 1.7;
}

.reservation-info p:first-child {
  font-weight: bold;
  margin-bottom: 0.5em;
}

.reservation-divider {
  border: none;
  border-top: 1px solid #fff;
  margin: 2em auto 1.5em;
  width: 90%;
}

.store-name.large {
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 1.5em;
  text-transform: uppercase;
}

.button-group.column {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.button-group.column a {
  background-color: #fff;
  color: #001e62;
  font-weight: bold;
  border-radius: 9999px;
  padding: 0.75em 2em;
  text-decoration: none;
  transition: background-color 0.3s;
  width: 200px;
  margin: 0 auto 1em;
}

.button-group.column a:hover {
  background-color: #e6e6e6;
}

/* PC表示切替 */
@media screen and (min-width: 768px) {
  .reservation-box {
  }

  .reservation-title img.sp {
    display: none;
  }

  .reservation-title img.pc {
    display: block;
    width: 100%;
    height: auto;
    max-width: 1200px;
    margin: 0 auto;
  }

  .button-group.column {
    flex-direction: row;
  }

  .button-group.column a {
    width: auto;
    margin: 0 0.5em;
  }
}
/*状況別利用シーン ---------------------*/
/* 基本構造 */
.situation-section {
  padding: 2em 1em;
  max-width: 780px; /* PC時最大幅 */
  width: 90%;        /* SP時は90%幅 */
  margin: 0 auto;
  text-align: center;
}

.situation-title {
  font-size: 1.5em;
  font-weight: bold;
  margin-bottom: 2em;
  color: #001d66; /* 共通カラーに */
}

.situation-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8em;
}

.situation-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* デバイス切り替え */
img.pc {
  display: none;
}
img.sp {
  display: block;
}

/* PCレイアウト */
@media screen and (min-width: 768px) {
  .situation-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  img.pc {
    display: block;
  }

  img.sp {
    display: none;
  }
}

/*ポップアップ ---------------------*/
/* タイトル（共通化） */
.popup-title {
  text-align: center;
  font-size: 1.6em;
  font-weight: bold;
  color: #001d66;
  max-width: 1000px;
  padding: 0 20px;
}

/* タイトルPC時の調整 */
@media screen and (min-width: 768px) {
	.popup-title {
		margin: 2em auto 2em;
	}
}
/* タイトルSP時の調整 */
@media screen and (max-width: 767px) {
  .popup-title {
    font-size: 1.5em;
    width: 90%;
	margin: 0.5em auto;
  }
}


.popup-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin: 0 auto 40px;
  max-width: 1000px;
  padding: 0 20px;
}

@media screen and (max-width: 767px) {
  .popup-group {
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    width: 90%;
	padding:20px;
  }
.popup_sp .popup-open img {
    width: 100%;
    height: auto;
    max-width: 100%;
	padding:  -20px 20px;
	}
	.popup_sp {
    width: 100%; 
  }
}

.popup_sp {
  display: block;
}
.popup_pc {
  display: none;
}

@media screen and (min-width: 768px) {
  .popup_sp {
    display: none;
  }
  .popup_pc {
	display: flex;
    align-items: center; 
    gap: 12px;
  }
}


.arrow {
  width: 15px;
  height: auto;
}
@media screen and (min-width: 768px){
.arrow {
	margin-right: -10px;
	}	
}
@media screen and (max-width: 767px) {
  .service-section {
    flex-direction: column;
  }

  .arrow {
	  display: block;
	  margin: 0 auto -10px;
	  width: 15px;
	  transform: rotate(90deg);
	  transition: transform 0.3s ease;
	}
}


@media screen and (max-width: 767px) {
  .popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #00000070;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .popup-window {
    width: 80vw;
    position: relative !important;
/*    background-color: #fff;*/
    padding: 0;
  }

  .popup-text img {
    width: 100%;
    height: auto;
    display: block;
  }

  .popup-close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    cursor: pointer;
  }

  .popup-close svg {
    width: 40px;
    height: 40px;
  }
}

/* PC用とSP用でIDを分ける */
.popup_pc input[type="checkbox"],
.popup_sp input[type="checkbox"] {
  display: none;
}
.popup-open {
          cursor: pointer; /* マウスオーバーでカーソルの形状を変えることで、クリックできる要素だとわかりやすいように */
        }
        .popup-overlay {
          display: none; /* input にチェックが入るまでは非表示に */
        }

input[type="checkbox"]:checked ~ .popup-overlay {
  display: block;
  z-index: 99999;
  background-color: #00000070;
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
}
        

.popup-window {
/*  width: 90vw;*/
/*  max-width: 560px;*/
  padding: 20px;
/*  background-color: #ffffff;*/
/*  border-radius: 6px;*/
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.popup-text {
  margin: 0;
}

.popup-text:not(:last-of-type) {
  margin-bottom: 1em
}

.popup-close {
  cursor: pointer;
  position: absolute;
  top: -26px;
  right: 0;
}


@media screen and (min-width: 768px) {
  .popup-window {
    width: 80vw;
    max-width: 960px; 
  }

  .popup-text img {
    width: 100%;
    height: auto;
  }
}


/* 料金 ---------------------*/
/* タイトル共通 */
.price-title {
  text-align: center;
  font-size: 1.8em;
  font-weight: bold;
  color: #001d66;
  margin-bottom: 2em;
}
.price-grid-wrapper h3 {
  font-size: 18px;
  font-weight: bold;
  color: #001e62;
  margin: 0 auto 20px;
  text-align: center;
	
}

/* セクション全体 */
.price-grid-wrapper {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}

/* 画像グリッド */
.price-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

/* 各アイテム共通 */
.price-item {
  width: calc((100% - 40px) / 3); /* PC: 3列 */
}

/* 画像共通 */
.price-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* モバイル時：縦積み */
@media screen and (max-width: 767px) {
  .price-grid-wrapper {
	max-width: 60%;
    width: 90%;
    padding: 0;
  }

  .price-grid {
    flex-direction: column;
    gap: 16px;
  }

  .price-item {
    width: 100%;
  }

  .price-title {
    font-size: 1.5em;
  }
}

/* スタッフ紹介 ---------------------*/
.staff-section {
  text-align: center;
  padding: 20px 20px;
}

.staff-title {
  font-size: 26px;
  font-weight: bold;
  color: #001e62;
  margin-bottom: 40px;
}
.staff-section h3 {
  font-size: 15px;
  font-weight: bold;
  color: #001e62;
  margin: 0 auto 10px;
  text-align: center;	
}


.staff-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  max-width: 1000px;
  margin: 0 auto;
}

.staff-item {
  width: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  color: #001e62;

}

.staff-item img {
  width: 100%;
  height: auto;
}

.staff-info {
  margin-top: 16px;
}

.staff-name {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
}

.staff-text {
  font-size: 14px;
  line-height: 1.6;
  text-align: justify;
}

/* --- SP レスポンシブ（横並び → 縦） --- */
@media screen and (max-width: 768px) {
  .staff-list {
    flex-direction: column;
    align-items: center;
  }
.staff-section h3 {
  font-size: 15px;
  font-weight: bold;
  margin: 0 auto 10px;
  text-align: left;	
}


  .staff-item {
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    width: 90%;
    max-width: 600px;
    gap: 20px;
    text-align: left;
	color: #001e62;
  }

  .staff-item img {
    width: 40%;
    max-width: 200px;
    height: auto;
  }

  .staff-info {
    margin-top: 0;
    width: 60%;
  }

  .staff-name {
    font-size: 16px;
  }

  .staff-text {
    font-size: 13px;
  }
}


/*注意事項*/

.caution-item {
  width: 85%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
  color: #001e62;

}

.caution-info {
  margin-top: 16px;
}

.caution-name {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
}

.caution-text {
  font-size: 12px;
  line-height: 1.4;
}
.caution-item li{
	margin: 0.8em 0;
	padding-left: 5px;
	list-style-type: disc;
}


/*お問い合わせ*/

.contact-box {
  background-color: #e5e8ef;
  max-width: 780px;
  margin: 40px auto;
  padding: 40px 20px;
  border-radius: 12px;
  text-align: center;
  color: #001d66;
}

.contact-title {
  font-size: 2em;
  font-weight: bold;
  color: #001d66;
  margin-bottom: 1.5em;
}

.contact-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5em;
  font-size: 1.1em;
  color: #000;
}

.contact-list li {
  margin-bottom: 0.5em;
}

.contact-text {
  font-size: 1em;
  margin-bottom: 0.5em;
}

.contact-phone {
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 1em;
}

.contact-note {
  font-size: 1em;
  line-height: 1.8;
  color: #001d66;
  white-space: pre-line;
}

/* モバイル対応 */
@media screen and (max-width: 767px) {
  .contact-box {
    width: 90%;
    padding: 30px 16px;
  }

  .contact-title {
    font-size: 1.5em;
  }

  .contact-phone {
    font-size: 1.2em;
  }
}




