#top{
text-align:center;
padding:40px 20px;
}

.myojin_logo img{
max-width:320px;
width:90%;
height:auto;
}


/*====================明神砦紹介====================*/
.myojin-intro{
max-width:900px;
margin:auto;
padding:20px;
text-align:center;
}

.myojin-title{
font-size:30px;
margin-bottom:10px;
}

.myojin-sub{
color:#6fbcc7;
margin-bottom:30px;
}

.myojin-text{
line-height:1.8;
margin-bottom:50px;
}

.myojin-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.myojin-box{
background:#f7f7f7;
padding:25px;
border-radius:10px;
}

.myojin-box h3{
margin-bottom:10px;
color:#4cb4bf;
}

.myojin-note{
margin-top:40px;
font-size:14px;
color:#777;
}


@media (max-width:786px){
	.myojin-title{
		font-size: 22px;
	}	

	.myojin-grid{
		grid-template-columns:1fr;
	}
	.myojin-title{
		font-size:26px;
	}

}



/*====================フロアマップ====================*/
.floor-map{
max-width:1000px;
margin:100px auto;
text-align:center;
}

.floor-title{
font-size:32px;
margin-bottom:40px;
letter-spacing:2px;
}

.floor-tabs{
margin-bottom:30px;
}

.floor-tabs button{
padding:10px 30px;
margin:0 10px;
border:none;
background:#333;
color:#fff;
font-size:16px;
cursor:pointer;
border-radius:30px;
}

.floor-tabs button:hover{
background:#777;
}

.floor-content{
display:none;
}

.floor-content.active{
display:block;
}

.floor-content img{
width:100%;
max-width:900px;
border:3px solid #ddd;
border-radius:10px;
}

.floor-text{
margin-top:20px;
font-size:16px;
color:#555;
}



/*====================各部屋紹介====================*/
.facility2 {
	 padding: 80px 20px;
     background:#f7f7f7;
}
.facility2 h1{
	text-align: center;
	position: relative;
	padding-bottom:1rem; /*見出し下の余白調整 */
}

.facility2 h1::before{
  content: '';
  position: absolute;
  width: 50px;
  height: 10px;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background:
    radial-gradient(circle, #72CAD3 2px, transparent 3px) repeat-x;
  background-size: 10px 10px;
}

.list2{
  max-width: 1000px;
  margin: 0 auto 80px;
  padding: 40px;
  display: flex;
  gap: 50px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.08);
  position: relative;
  overflow: hidden;
}


/* 上部アクセントライン */
.list2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(to right, #72cad3, #4fb3bd);
}

/* 部屋タイトル */
.list2 h2 {
  border-left: none;
  font-size: 22px;
  font-weight: 600;
  color: #2f6f75;
  margin-bottom: 24px;
}

.list2 img{
	max-width: 500px;
	width: 100%;
	height: auto;
	margin-left: 2%;
}
.list2 h2::before {
  content: "";
  width: 6px;
  height: 24px;
  background: #72cad3;
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
}

.layout-label {
  font-size: 0.85rem;
  color: #888;
  margin: 5% 0 0;
}

.badge {
  display: inline-block;
  background: #f4fbfc;
  color: #2f6f75;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 14px;
  border: 1px solid #cdeff3;
}



.layout img {
  width: 100%;
  max-width: 500px;
  border-radius: 16px;
  padding: 16px;
  background: #f8fbfc;
  box-shadow: inset 0 0 0 2px #e0f3f6;
}


.container {
	position: relative;  /* ← これがないと崩れる */
	width: 100%;
	max-width: 600px;
	margin: auto;
	overflow: hidden;
}

.carousel {
	display: flex;
	width: 100%;              /* ← 追加 */
	padding: 0;
	margin: 0;
	list-style: none;
	transition: transform 0.4s ease;
}

.item {
	width: 100%;              /* ← min-width ではなく width */
	flex-shrink: 0;           /* ← 縮まないように */
}

.item img {
	width: 100%;
	display: block;
	
}

.prev,
.next {
	position: absolute;          /* ← 重要 */
	top: 50%;                    /* ← 縦中央 */
	transform: translateY(-50%);
	z-index: 10;
	background: rgba(0,0,0,0.4);
	border-radius: 50%;
	width: 40px;
	height: 40px;
	color: #fff;
	border: none;
	font-size: 18px;
	padding: 8px 12px;
	cursor: pointer;
}

.prev {
	left: 10px;                  /* ← 左側 */
}

.next {
	right: 10px;                 /* ← 右側 */
}

.dots {
	position: absolute;
	bottom: 10px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	z-index: 10;
}

.dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255,255,255,0.6);
	cursor: pointer;
}

.dot .active {
	background: #72CAD3
}

@media (max-width: 786px) {
	.list2 {
		flex-direction: column;
	}
}



/*====================料金表====================*/
.price-header {
  max-width: 1100px;
  padding-top: 3%;
}

.price-header h1 {
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 12px;
  position: relative;
  display: inline-block;
}

/* 海色ライン */
.price-header h1::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  margin-top: 8px;
  background: linear-gradient(to right, #72cad3, #4fb3bd);
  border-radius: 2px;
}

/* 利用可能客室 */
.room-info {
  margin-top: 12px;
  padding: 10px 16px;
  background: #f4fbfc;
  border-left: 4px solid #72cad3;
  font-size: 15px;
  color: #444;
}
.room-info .red{
	color: #C52B2E;
}

.price-area {
  padding: 5% 10%;
}

.price-area h2{
	margin-top: 3%;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
  font-size: 15px;
  background: #fff;
  padding: 0 5%;
}

.price-table th {
  background: linear-gradient(to bottom, #72cad3, #4fb3bd);
  color: #fff;
  padding: 18px;
  font-weight: 600;
  letter-spacing: 1px;
  border-bottom: 2px solid rgba(0,0,0,0.15);
　box-shadow: inset 0 -3px 0 #2f6f75;
}

.price-table th,
.price-table td {
  border-bottom: 1px solid #eee;
  border-right: 1px solid #d8eef2;
}

.price-table td {
  padding: 18px 14px;
  text-align: center;
  vertical-align: middle;
  color: #333;
}

/* 行ホバー */
.price-table tbody tr:hover {
  background: #f8fbfc;
  transition: 0.2s;
}

/* A-1など左ライン強調 */
.plan-code {
  font-weight: 700;
  font-size: 18px;
  color: #2f6f75;
  border-left: 4px solid #72cad3;
}

.section-start td {
  box-shadow: inset 0 1.5px 0 #72cad3;
}

/* 合計 */
.total  {
  font-size: 26px;
  font-weight: 700;
  color: #d14b4b;
}

/* サブ説明 */
.sub {
  font-size: 13px;
  color: #777;
}

.table-wrap::after {
  content: "← 横にスクロールできます →";
  display: block;
  font-size: 12px;
  color: #888;
  margin-top: 6px;
}

@media screen and (min-width: 787px) {
  .table-wrap::after {
    display: none;
  }
}

/*====================
  786px以下
====================*/
@media screen and (max-width: 786px) {

  .price-area {
    padding: 8% 4%;
  }

  .price-header h1 {
    font-size: 20px;
  }

  .room-info {
    font-size: 13px;
    padding: 8px 12px;
  }

  .price-area h2 {
    font-size: 16px;
  }

  /* 横スクロール */
  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .price-table {
    font-size: 13px;
    min-width: 750px;
    border-radius: 8px;
    overflow: hidden;
  }

  .price-table th,
  .price-table td {
    padding: 12px 8px;
  }

  .total {
    font-size: 18px;
  }
}




/*==================== ご利用条件 ====================*/
.joken {
  margin: 8% auto;
  padding: 5%;
  background: #72cad3;
}

.joken h1 {
  margin-bottom: 10px;
  text-align: center;
  color: #FFFFFF;
}

.joken-inner {
  padding: 2% 27%;
  border-radius: 8px;
}

.joken-inner ul {
  padding: 0;
  margin: 0;
}

.joken-inner li {
  padding: 10px 0;
  color:#FFFFFF;
  position: relative;
  padding-left: 10px;
  line-height: 1.7;
  font-size: 20px;
}

.joken-inner li:last-child {
  border-bottom: none;
}


@media screen and (max-width: 786px) {
	.joken h1{
		font-size: 22px;
	}
	.joken-inner{
		padding: 2% 10%;
	}
	.joken-inner li{
		line-height: 1.5;
		font-size: 14px;
	}
}