@charset "UTF-8";
/* CSS Document */
/* ===== Reset / Base ===== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
body {
  font-family: sans-serif;
  margin: 0;
  padding: 10px;
}
/* ===== Layout ===== */
.search-container {
  width: 100%;
  background: #fff;
  padding: 0 15px;
  border-radius: 8px;
  box-sizing: border-box;
}
.search-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 15px;
}
.search-header {
  background: #594533;
  color: #fff;
  font-size: 1.2rem;
  margin: 0 0 15px;
  padding: 10px 30px;
}
/* ===== Inputs ===== */
input[type="text"], select {
  width: 100%;
  padding: 10px;
  border-radius: 4px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-size: 16px;
}
/* ===== Checkboxes ===== */
input[type="checkbox"] {
  width: 16px;
  height: 16px;
  transform: scale(1.3);
  transform-origin: left center;
  margin: 0;
  flex-shrink: 0;
}
/* ===== Labels / Buttons ===== */
label {
  display: block;
  margin-bottom: 6px;
  font-weight: bold;
}
.form-group {
  margin-bottom: 20px;
}
.search-btn, .toggle-btn, .clear-btn {
  width: 100%;
  padding: 10px;
  font-size: 17px;
  border-radius: 4px;
  border: none;
  margin-bottom: 15px;
  box-sizing: border-box;
  cursor: pointer;
}
.search-btn {
  background: #ff8600;
  color: #fff;
}
/* ===== Features / RoomTypes 共通（自動生成先） ===== */
.checkbox-group2 {
  display: flex;
  flex-wrap: wrap;
  column-gap: 40px;
  row-gap: 10px;
  margin-bottom: 10px;
}
.checkbox-group2 label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 16px;
  font-weight: normal;
  white-space: normal;
  line-height: 1.4;
  padding-left: 2px;
  margin: 0;
}
#roomTypeContainer {
  margin-bottom: 0;
  padding-bottom: 0;
}
.checkbox-group2 label > input[type="checkbox"] {
  margin-top: 0.19em;
}
/* ===== 「日程未定」行 ===== */
.no-date-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
  font-size: 16px;
}
.no-date-wrapper label {
  display: flex !important;
  align-items: center !important;
  gap: 8px;
  font-weight: normal;
  margin-bottom: 0;
}
/* ===== Disabled look ===== */
.disabled, input.disabled-text {
  background: #e0e0e0 !important;
  color: #888 !important;
  pointer-events: none;
  cursor: not-allowed;
}
/* ===== Modal (共通) ===== */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 10000;
}
.modal-content {
  position: absolute;
  top: 100px;
  background: #fff;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, .3);
  width: 90vw;
  max-width: 355px;
  max-height: 90vh;
  overflow-y: auto;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Calendar modal offset topからのカレンダー、モーダルの位置*/
#calendarOverlay .modal-content {
  top: 60px;
}
/* Guest modal offset */
#guestOverlay .modal-content {
  top: 60px;
}
/* ゲストモーダル内のセレクト基本幅維持 */
#guestOverlay select {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  display: block;
}
/* =========================================================
   Flatpickr（スマホ・モーダル）— カレンダー装飾は #calendarOverlay にスコープ
   ========================================================= */
#calendarOverlay .flatpickr-calendar {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}
#calendarOverlay .flatpickr-days {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0 !important;
  border-spacing: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
#calendarOverlay .flatpickr-day {
  flex: 1 0 14.28%;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  width: 100% !important;
  height: 42px !important;
  line-height: 42px !important;
  font-size: 16px !important;
  background: transparent !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box !important;
}
/* 中間帯 */
#calendarOverlay .flatpickr-day.inRange {
  background: #fbe5d4 !important;
  color: #000 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
/* ── 隣月マス用"範囲ヒント"（当月に見えている next/prevMonthDay を塗る） ── */
#calendarOverlay .flatpickr-day.range-hint {
  background: #fbe5d4 !important;
  color: #000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* 始点/終点（通常＝オレンジ） */
#calendarOverlay .flatpickr-day.range-hint.start-hint {
  background: #ff8600 !important;
  color: #fff !important;
  border-radius: 21px 0 0 21px !important;
}
#calendarOverlay .flatpickr-day.range-hint.end-hint {
  background: #ff8600 !important;
  color: #fff !important;
  border-radius: 0 21px 21px 0 !important;
}
/* 祝日の端ヒントは赤で */
#calendarOverlay .flatpickr-day.holiday.range-hint.start-hint {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 21px 0 0 21px !important;
}
#calendarOverlay .flatpickr-day.holiday.range-hint.end-hint {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 0 21px 21px 0 !important;
}
/* 週末端ヒントの白文字補強 */
#calendarOverlay .flatpickr-day.saturday.range-hint.start-hint, #calendarOverlay .flatpickr-day.saturday.range-hint.end-hint, #calendarOverlay .flatpickr-day.sunday.range-hint.start-hint, #calendarOverlay .flatpickr-day.sunday.range-hint.end-hint {
  color: #fff !important;
}
/* 始点・終点（基本オレンジ） */
#calendarOverlay .flatpickr-day.startRange, #calendarOverlay .flatpickr-day.endRange {
  background: #ff8600 !important;
  color: #fff !important;
  box-shadow: none !important;
}
#calendarOverlay .flatpickr-day.startRange {
  border-top-left-radius: 21px !important;
  border-bottom-left-radius: 21px !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
#calendarOverlay .flatpickr-day.endRange {
  border-top-right-radius: 21px !important;
  border-bottom-right-radius: 21px !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}
/* ---- 土日祝の色付け（通常表示） ---- */
#calendarOverlay .flatpickr-day.saturday {
  color: #1e88e5 !important;
} /* 土：青 */
#calendarOverlay .flatpickr-day.sunday {
  color: #e53935 !important;
} /* 日：赤 */
/* 祝日（通常表示）：淡ピンク＋赤字＋丸 */
#calendarOverlay .flatpickr-day.holiday {
  background: #fde8ef !important;
  color: #d60045 !important;
  font-weight: 700;
  border-radius: 50% !important;
  box-shadow: none !important;
}
/* レンジ内の祝日：背景が乗るため字色だけ補強 */
#calendarOverlay .flatpickr-day.inRange.holiday {
  color: #c2185b !important;
}
/* ---- 祝日が始点/終点＝半角丸、同一日＝全丸（selected併存にも勝つ） ---- */
#calendarOverlay .flatpickr-day.holiday.startRange:not(.endRange), #calendarOverlay .flatpickr-day.holiday.startRange.selected:not(.endRange) {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 21px 0 0 21px !important;
  box-shadow: none !important;
}
#calendarOverlay .flatpickr-day.holiday.endRange:not(.startRange), #calendarOverlay .flatpickr-day.holiday.endRange.selected:not(.startRange) {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 0 21px 21px 0 !important;
  box-shadow: none !important;
}
#calendarOverlay .flatpickr-day.holiday.startRange.endRange, #calendarOverlay .flatpickr-day.holiday.startRange.endRange.selected {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 21px !important;
}
/* ---- 土日が始点/終点/単独選択のときは白文字（週末基本色を上書き） ---- */
#calendarOverlay .flatpickr-day.saturday.startRange:not(.endRange), #calendarOverlay .flatpickr-day.saturday.endRange:not(.startRange), #calendarOverlay .flatpickr-day.saturday.startRange.endRange, #calendarOverlay .flatpickr-day.saturday.selected, #calendarOverlay .flatpickr-day.sunday.startRange:not(.endRange), #calendarOverlay .flatpickr-day.sunday.endRange:not(.startRange), #calendarOverlay .flatpickr-day.sunday.startRange.endRange, #calendarOverlay .flatpickr-day.sunday.selected {
  color: #fff !important;
}
/* 無効日（前月/次月/不可） */
#calendarOverlay .flatpickr-day.flatpickr-disabled, #calendarOverlay .flatpickr-day.notAllowed, #calendarOverlay .flatpickr-day.prevMonthDay, #calendarOverlay .flatpickr-day.nextMonthDay {
  background: none !important;
  color: #ccc !important;
  font-weight: normal !important;
  opacity: .5 !important;
  cursor: default !important;
}
#calendarOverlay .flatpickr-day.flatpickr-disabled.saturday, #calendarOverlay .flatpickr-day.flatpickr-disabled.sunday, #calendarOverlay .flatpickr-day.flatpickr-disabled.holiday, #calendarOverlay .flatpickr-day.notAllowed.saturday, #calendarOverlay .flatpickr-day.notAllowed.sunday, #calendarOverlay .flatpickr-day.notAllowed.holiday {
  background: none !important;
  color: #ccc !important;
  font-weight: normal !important;
  opacity: .5 !important;
}
/* ★ 隣月ヒントの最終上書き（無効日スタイルを無効化） */
#calendarOverlay .flatpickr-day.prevMonthDay.range-hint, #calendarOverlay .flatpickr-day.nextMonthDay.range-hint {
  background: #fbe5d4 !important;
  color: #000 !important;
  opacity: 1 !important;
  border-radius: 0 !important;
}
#calendarOverlay .flatpickr-day.prevMonthDay.start-hint, #calendarOverlay .flatpickr-day.nextMonthDay.start-hint {
  background: #ff8600 !important;
  color: #fff !important;
  opacity: 1 !important;
  border-radius: 21px 0 0 21px !important;
}
#calendarOverlay .flatpickr-day.prevMonthDay.end-hint, #calendarOverlay .flatpickr-day.nextMonthDay.end-hint {
  background: #ff8600 !important;
  color: #fff !important;
  opacity: 1 !important;
  border-radius: 0 21px 21px 0 !important;
}
/* 祝日の端ヒント（隣月） */
#calendarOverlay .flatpickr-day.prevMonthDay.holiday.start-hint, #calendarOverlay .flatpickr-day.nextMonthDay.holiday.start-hint {
  background: #d60045 !important;
  color: #fff !important;
  opacity: 1 !important;
  border-radius: 21px 0 0 21px !important;
}
#calendarOverlay .flatpickr-day.prevMonthDay.holiday.end-hint, #calendarOverlay .flatpickr-day.nextMonthDay.holiday.end-hint {
  background: #d60045 !important;
  color: #fff !important;
  opacity: 1 !important;
  border-radius: 0 21px 21px 0 !important;
}
/* 隣月端ヒントの週末白文字補強 */
#calendarOverlay .flatpickr-day.prevMonthDay.saturday.start-hint, #calendarOverlay .flatpickr-day.prevMonthDay.saturday.end-hint, #calendarOverlay .flatpickr-day.nextMonthDay.saturday.start-hint, #calendarOverlay .flatpickr-day.nextMonthDay.saturday.end-hint, #calendarOverlay .flatpickr-day.prevMonthDay.sunday.start-hint, #calendarOverlay .flatpickr-day.prevMonthDay.sunday.end-hint, #calendarOverlay .flatpickr-day.nextMonthDay.sunday.start-hint, #calendarOverlay .flatpickr-day.nextMonthDay.sunday.end-hint {
  color: #fff !important;
}
/* ── 単独選択（1クリック目のみ）＝全丸 ── */
#calendarOverlay .flatpickr-day.selected:not(.startRange):not(.endRange) {
  background: #ff8600 !important;
  color: #fff !important;
  box-shadow: none !important;
  border-radius: 21px !important;
}
/* 祝日の単独選択（全丸） */
#calendarOverlay .flatpickr-day.holiday.selected:not(.startRange):not(.endRange) {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 21px !important;
}
/* 週末の単独選択は白文字 */
#calendarOverlay .flatpickr-day.saturday.selected:not(.startRange):not(.endRange), #calendarOverlay .flatpickr-day.sunday.selected:not(.startRange):not(.endRange) {
  color: #fff !important;
}
/* ── 隣月の1クリック仮色（single-hint：全丸・不透明） ── */
#calendarOverlay .flatpickr-day.single-hint {
  background: #ff8600 !important;
  color: #fff !important;
  border-radius: 21px !important;
  opacity: 1 !important;
}
#calendarOverlay .flatpickr-day.holiday.single-hint {
  background: #d60045 !important;
  color: #fff !important;
  border-radius: 21px !important;
  opacity: 1 !important;
}
#calendarOverlay .flatpickr-day.saturday.single-hint, #calendarOverlay .flatpickr-day.sunday.single-hint {
  color: #fff !important;
}
#calendarOverlay .flatpickr-day.prevMonthDay.single-hint, #calendarOverlay .flatpickr-day.nextMonthDay.single-hint {
  opacity: 1 !important;
}
/* selected が併存しても半角を維持（保険） */
#calendarOverlay .flatpickr-day.startRange.selected:not(.endRange) {
  border-radius: 21px 0 0 21px !important;
}
#calendarOverlay .flatpickr-day.endRange.selected:not(.startRange) {
  border-radius: 0 21px 21px 0 !important;
}
/* ===== Collapse (部屋タイプ開閉) ===== */
.collapse-header {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
  padding: 8px 0;
}
.collapse-title {
  font-weight: bold;
  line-height: 1.2;
}
.collapse-icon {
  font-size: 18px;
  line-height: 1;
}
.collapse-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 240ms ease;
}
.collapse-body.is-open {
  max-height: 1000px;
}
/* ===== Bottom Links / 画像・サブボタン ===== */
.yoyaku-menu {
  padding: 0;
}
.yoyaku-menu .d-reserve-link {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
}
.yoyaku-menu .d-reserve-link:first-of-type li {
  flex: 0 0 50%;
  text-align: center;
}
.yoyaku-menu .d-reserve-link:nth-of-type(2) {
  justify-content: space-around;
  margin-top: 8px;
}
.yoyaku-menu .d-reserve-link:nth-of-type(2) li {
  flex: 0 0 40%;
  text-align: center;
}
.yoyaku-menu .d-reserve-link li.divider {
  display: none;
}
.yoyaku-menu .d-reserve-link li a {
  text-decoration: none;
  color: #000;
  display: block;
  padding: 8px 4px;
}
.bestrate-sp, .fv-img {
  width: 100%;
  margin-bottom: 10px;
}
.bestrate-sp img, .fv-img img {
  width: 100%;
  height: auto;
}
.check-btn {
  width: 100%;
  font-size: 18px;
  padding: 10px;
  background: #fff;
  color: #1da3e7;
  border: 1px solid #1da3e7;
  border-radius: 4px;
  margin-bottom: 15px;
}
.check-btn:hover {
  background: #e2f7ff;
  color: #1997c5;
}
.margin-b-10 {
  margin-bottom: 10px;
}
/* === 人数モーダル：子ども内訳（#guestOverlay に限定） === */
#guestOverlay .section-subtitle {
  margin: 16px 0 6px;
  font-weight: 600;
  font-size: 1.05rem;
  border-top: 1px solid #e1e1e1;
  padding-top: 12px;
}
#guestOverlay #kidsDetails {
  border-bottom: 1px solid transparent;
}
#guestOverlay #kidsDetails summary {
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e1e1e1;
  padding: 10px 0;
  margin: 4px 0 8px;
  font-weight: 600;
}
#guestOverlay #kidsDetails[open] summary {
  border-bottom: none;
}
#guestOverlay #kidsDetails[open] {
  border-bottom-color: #e1e1e1;
  padding-bottom: 8px;
  margin-bottom: 8px;
}
#guestOverlay #kidsWrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
#guestOverlay #kidsWrap .field {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
}
#guestOverlay select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 12px center / 16px 16px;
  border-radius: 12px;
  padding-right: 2.4em;
  text-align: center;
  text-align-last: center;
  -moz-text-align-last: center;
}
#guestOverlay select option {
  text-align: center;
}
#guestOverlay .modal-content {
  overscroll-behavior: contain;
  scroll-behavior: smooth;
}
#guestOverlay #kidsDetails {
  scroll-margin-top: 12px;
}


/* ========== Scoped to .tt-tax-table ========== */
.tt-tax-table {
    max-width: 640px;
    color: #222;
    margin: 2rem 0;
}
.tt-tax-table__wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
/* Table base */
.tt-tax-table__table {
    width: 100%;
    table-layout: fixed;                 /* 文字が長くてもカラム幅を詰めやすく */
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #bbb;              /* 外枠（濃いめ） */
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    font-size: 14px;                     /* 横長に見せる用に小さめ */
    line-height: 1.4;
}
/* Header */
.tt-tax-table__head-top {
    background: #ddd;
}  /* 一番上の行だけ薄グレー */
.tt-tax-table__head-sub th {
    background: #fafafa;
    font-weight: normal;
}
/* Cells */
.tt-tax-table__th, .tt-tax-table__td {
    padding: 10px 12px;
    border-bottom: 1px solid #ccc;       /* 内側ボーダー（濃いめ） */
    vertical-align: middle;
}
/* 縦の区切り線 */
.tt-tax-table__th + .tt-tax-table__th, .tt-tax-table__td + .tt-tax-table__td {
    border-left: 1px solid #ccc;
}
/* 左カラム：PCは折り返さず狭めに見せる */
.tt-tax-table__th--price {
    text-align: left;
    width: 30%;
    white-space: nowrap;
}
.tt-tax-table__th--tax {
    text-align: center;
}
.tt-tax-table__th {
    text-align: center;
}
.tt-tax-table__td--price {
    text-align: left;
    white-space: nowrap;
}
/* --- 仕上げ：最後の行の下線は外枠で代替（任意） --- */
.tt-tax-table__table tbody tr:last-child .tt-tax-table__td {
    border-bottom: 0;
}

/* ========== Responsive (～480px) ========== */
@media (max-width: 480px) {
/* 文字が詰まり過ぎないよう微調整 */
.tt-tax-table__table {
    font-size: 13px;
}
.tt-tax-table__th, .tt-tax-table__td {
    padding: 8px 10px;
}
/* スマホでは左カラムを折り返し可に（右端切れ対策） */
.tt-tax-table__th--price, .tt-tax-table__td--price {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    width: auto;                        /* PCの30%指定を解除 */
}
}


.an_title {
    color: #000000;
    font-weight: normal;
    font-size: 120%;
    display: block;
    padding: 10px 0;
    background-color: #FFDA9C;
    text-align: center;
    line-height: 1.5em;
    margin-bottom: 10px;
}
.announcement {
    display: block;
    padding: 0 10px;
	max-width: 1110px;
	margin: 0 auto;
}
.announcement p{
    text-align: center;
    font-size: 16px;
}
.br01 {
    display: none;		
	}
.br02 {
    display: inherit;		
	}
@media screen and (max-width: 767px) {
	.br01 {
    display: inherit;		
	}
	.br02 {
    display: none;		
	}
	.announcement p{
    text-align: left;	
}
}
.pc_top_announce{
	width: calc(100% - 20px - 4px) !important;
	margin: 20px auto 0px!important;
	padding: 20px 20px 0;
	background: #fff;
	border:1px solid #ccc;
}

.pc_top_announce h2{
	margin-top: 0;
}


.tax-table {
  width: min(640px, 100%); /* 上限を付けつつレスポンシブ */
  margin: 0 auto 1rem; /* ★中央寄せのキモ */
  border-collapse: collapse;
  font-size: clamp(14px, 1.6vw, 16px);
}
.tax-table th,
.tax-table td {
  border: 1px solid #e5e7eb;
  padding: 0.75em 1em;
}
.tax-table thead th {
  background: #f8fafc;
}
.tax-table tbody th {
  background: #fcfdff;
  white-space: nowrap;
}
.tax-table tbody td {
  text-align: left;
}
@media (max-width: 480px) {
  .tax-table tbody td {
    text-align: left;
  }
}

.bold {
font-weight: bold;
}