/* 基本設定 */
.content-wrapper {
	padding: 20px 0;
}

.section-wrap h3 {
  color: #453022;
  font-size: 20px;
  margin-bottom: 20px;
  padding-bottom: 8px;
  border-bottom: 2px solid #ddd;
  position: relative;
  font-weight: bold;
  background-image: none;
}

h3::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100px;
  height: 2px;
  background-color: #453022;
}

/* 2カラムレイアウト */
.two-column-layout {
  display: flex;
  margin-bottom: 30px;
  gap: 30px;
  font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
}

.info-column {
  flex: 0 0 60%;
}

.map-column {
  flex: 0 0 37%;
}

.access ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.access ul li {
  margin-bottom: 8px;
  border-bottom: 1px dotted #ddd;
  padding-bottom: 8px;
}

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

.clearfix::after {
  content: "";
  display: table;
  clear: both;
}

/* 英語テキスト */
.en-text {
  color: #666;
  font-size: 0.9em;
  margin-top: 0px;
  display: inline-block; 
  line-height: 1.3;
}

.access dl {
  display: flex;
  flex-wrap: wrap;
}

.access dt {
  width: 120px;
  font-weight: bold;
  padding: 5px 0;
  line-height: 1.3;
}

.access dt .en-text {
	margin: 0;
	font-weight: normal;
}

.access dd {
  width: calc(100% - 120px);
  padding: 5px 0;
  line-height: 1.4;
}

.access dd p{
	margin-bottom: 5px;
}


/* 予約リンクを目立たせる（ウォームブラウン） */
.access dd a {
    color: #a0522d;
    font-weight: bold;
    text-decoration: underline;
    transition: color 0.3s ease;
}

.access dd a:hover {
    color: #cd853f; /* ホバー時は少し明るく */
}

/* 営業時間テーブル（改善版） */
.hourtable {
    text-align: left;
    width: 100%;
    border-collapse: collapse;
    margin-top: -8px;
}

.hourtable th,
.hourtable td {
    padding: 8px 12px 8px 0;
    vertical-align: top;
    line-height: 1.4;
}

.hourtable th {
    font-weight: bold;
    color: #453022;
    white-space: nowrap;
}

.hourtable td {
    color: #333;
}

/* 曜日の列 */
.hourtable th.day-col {
    width: 80px;
    padding-right: 12px;
}

/* 時間帯の列 */
.hourtable th.time-col {
    width: 70px;
    font-size: 14px;
}

/* 時間の列 */
.hourtable td.time-detail {
    font-family: sans-serif;
}

.hourtable .small {
    font-size: 12px;
    color: #666;
}

/* 境界線 */
.hourtable tr {
    border-bottom: 1px dotted #ddd;
}

.hourtable tr:last-child {
    border-bottom: none;
}

.fs12 {
  font-size: 12px;
  color: #666;
}

/* お知らせボックス */
.notice-box {
  background-color: #f9f5f0;
  border: 1px solid #eee;
  padding: 15px 20px;
  margin: 20px 0 30px;
  border-radius: 5px;
}

.notice-title {
  font-weight: bold;
  margin-bottom: 10px;
  color: #6d2e46;
  font-size: 14px;
}

/* 地図コンテナ */
.map-container {
  padding: 0;
  height: 100%;
}

.map-title {
  font-weight: bold;
  margin-bottom: 15px;
  color: #333;
  text-align: center;
}

.map-links {
  text-align: left;
  margin-top: 10px;
}

.print a {
  color: #6d2e46;
  text-decoration: none;
}

.print a:hover {
  text-decoration: underline;
}

/* ★キャンセルポリシーのflex解除 */
dl.canpoli {
	font-size: 12px;
	text-align: left;
	margin-top: 20px;
	padding: 20px 0;
	border-top: 1px dashed #ccc;
	
	display: block; /* flexを解除してブロック表示に */
}

dl.canpoli dt{
	font-weight: bold;
	width: 100%; /* flexが解除されたので幅を100%に設定 */
	margin-bottom: 8px;
	padding: 0;
}

dl.canpoli dd{
	width: 100%; /* flexが解除されたので幅を100%に設定 */
	margin-bottom: 5px;
	line-height: 1.3;
	padding: 0; /* 不要なpaddingを削除 */
}

dl.canpoli dd table th,
dl.canpoli dd table td{
	vertical-align: top;
}
.canpoli th {
    font-weight: bold;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
    width: 130px;
    letter-spacing: 0.5px;
}
.canpoli td strong {
    color: #453022;
    font-weight: bold;
}
dl.canpoli dd table td {
	padding-bottom: 5px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .two-column-layout {
    display: block;
    width: 100%;
    flex-direction: column;
  }
  
  .info-column, .map-column {
    flex: 0 0 100%;
  }
  
  .access dt {
    width: 100%;
    border-bottom: none;
    padding-bottom: 5px;
    margin-bottom: 5px;
  }
  
  .access dd {
    width: 100%;
    padding-top: 0;
    margin-bottom: 15px;
  }
  
  .map-container {
    margin-bottom: 20px;
  }
  
  /* モバイル用テーブル調整 */
  .hourtable {
    font-size: 14px;
  }
  
  .hourtable th,
  .hourtable td {
    padding: 6px 8px 6px 0;
  }
  
  .hourtable th.day-col {
    width: 60px;
    font-size: 13px;
  }
  
  .hourtable th.time-col {
    width: 60px;
    font-size: 12px;
  }
  
  .hourtable td.time-detail {
    font-size: 13px;
  }
  
  .hourtable .small {
    font-size: 11px;
  }
}