/* MTS Simple Booking：予約ページだけに適用。送信処理・空き状況はプラグインが管理。 */
.myousenzi-booking .content-form .booking-postcode-search {
 display: inline-block;
 min-height: 44px;
 padding: 8px 14px;
 border: 1px solid var(--booking-border);
 border-radius: 8px;
 background: var(--booking-pink);
 color: var(--color-text);
 font: inherit;
 cursor: pointer;
}
.myousenzi-booking .booking-postcode-status { margin-top: 8px; font-size: var(--font-size-14); line-height: 1.7; }
.myousenzi-booking {
 --booking-border: #e5d7c7;
 --booking-pink: var(--color-accent-pink-soft);
 --booking-accent: var(--color-accent-pink-dark);
}



.myousenzi-booking .standard-page__body {
 max-width: 960px;
 padding-top: 10px;
 padding-bottom: 48px;
}
.myousenzi-booking .standard-page__content {
 word-break: normal;
 line-height: 1.9;
}
.myousenzi-booking :is(.booking-calendar-page, .booking-thanks-page) {
 box-sizing: border-box;
 margin-bottom: clamp(56px, 7vw, 110px);
 padding: clamp(24px, 3vw, 42px);
 border: 1px solid rgb(216 183 123 / 75%);
 border-radius: clamp(18px, 2vw, 28px);
 background: rgb(255 255 255 / 92%);
 box-shadow: 0 14px 36px rgb(133 91 0 / 8%);
}
.myousenzi-booking .standard-page__content > p { margin-bottom: 20px; }
.myousenzi-booking .h3_title {
 position: relative;
 margin: 34px 0 18px;
 padding-bottom: 14px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-30);
 font-weight: var(--font-weight-bold);
 line-height: 1.5;
}
.myousenzi-booking :is(.booking-calendar-page, .booking-thanks-page) > .h3_title:first-child {
 margin-top: 0;
}
.myousenzi-booking .h3_title::after {
 content: '';
 position: absolute;
 left: 0;
 bottom: 0;
 width: 72px;
 height: 3px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}
.myousenzi-booking .tel_box {
 padding: 16px;
 border: 1px solid var(--booking-border);
 border-radius: 16px;
 background: var(--color-accent-pink-surface);
 text-align: center;
}
.myousenzi-booking .tel_box a {
 display: block;
 padding: 6px;
 color: var(--color-brand-gold);
 font-size: var(--font-size-24);
 font-weight: 600;
}
.myousenzi-booking .text_center { text-align: center; font-size: var(--font-size-14); }
.myousenzi-booking .monthly-calendar,
.myousenzi-booking .content-form {
 margin: 28px 0;
 padding: 24px;
 border: 1px solid var(--booking-border);
 border-radius: 20px;
 background: #fff;
 box-shadow: 0 8px 28px rgb(109 73 43 / 5%);
 font-family: var(--font-family-base);
}

.myousenzi-booking .booking-thanks-page .button_warapper {
 display: flex;
 justify-content: center;
 margin-top: clamp(28px, 3vw, 42px);
}
.myousenzi-booking .booking-thanks-page .button a {
 display: inline-flex;
 min-height: 52px;
 align-items: center;
 justify-content: center;
 padding: 10px 28px;
 border: 2px solid var(--color-accent-pink-border);
 border-radius: 999px;
 background: var(--color-white);
 color: var(--color-accent-pink-dark);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
 transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.myousenzi-booking .booking-thanks-page .button a:hover {
 border-color: var(--color-accent-pink);
 background: var(--color-accent-pink);
 color: var(--color-white);
}
.myousenzi-booking .booking-thanks-page .button a:focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 4px;
}
.myousenzi-booking .booking-payment-confirmation {
 display: block;
 margin-top: 2em;
 padding: clamp(18px, 3vw, 28px);
 border: 1px solid rgb(216 183 123 / 65%);
 border-radius: 16px;
 background: var(--color-surface-cream);
}
.myousenzi-booking .booking-payment-confirmation > span {
 display: block;
}
.myousenzi-booking .booking-payment-confirmation > span + span {
 margin-top: 1em;
}
.myousenzi-booking .booking-payment-confirmation__offering {
 color: #c3203f;
 font-size: 110%;
 font-weight: var(--font-weight-bold);
}
.myousenzi-booking .booking-payment-error-card {
 box-sizing: border-box;
 width: 100%;
 margin: 0 0 clamp(56px, 7vw, 110px);
 padding: clamp(24px, 3vw, 42px);
 border: 1px solid rgb(216 183 123 / 75%);
 border-radius: clamp(18px, 2vw, 28px);
 background: rgb(255 255 255 / 92%);
 box-shadow: 0 14px 36px rgb(133 91 0 / 8%);
 text-align: left;
}
.myousenzi-booking .booking-payment-error-card__title {
 position: relative;
 margin: 0 0 24px;
 padding-bottom: 14px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-30);
 font-weight: var(--font-weight-bold);
 line-height: 1.45;
}
.myousenzi-booking .booking-payment-error-card__title::after {
 content: '';
 position: absolute;
 left: 0;
 bottom: 0;
 width: 72px;
 height: 3px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}
.myousenzi-booking .booking-payment-error-card p {
 margin: 0;
 font-size: var(--font-size-16);
 line-height: 1.9;
}
.myousenzi-booking .booking-payment-error-card__button {
 display: flex;
 width: fit-content;
 min-height: 54px;
 align-items: center;
 justify-content: center;
 margin: 32px auto 0;
 padding: 12px 30px;
 border: 2px solid var(--color-accent-pink-dark);
 border-radius: 999px;
 background: var(--color-accent-pink-dark);
 color: var(--color-white);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
 transition: background-color .25s ease, color .25s ease;
}
.myousenzi-booking .booking-payment-error-card__button:hover {
 background: var(--color-white);
 color: var(--color-accent-pink-dark);
}
.myousenzi-booking .booking-payment-error-card__button:focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 4px;
}
.myousenzi-booking .monthly-calendar table {
 width: 100%;
 table-layout: fixed;
 border-collapse: separate;
 border-spacing: 4px;
}
.myousenzi-booking .monthly-calendar .calendar-title,
.myousenzi-booking .mtssb-timetable-name {
 margin: 0 0 12px;
 padding: 0 0 10px;
 font-size: var(--font-size-21);
 color: var(--color-brand-gold);
 border-bottom: 1px solid var(--booking-border);
}
.myousenzi-booking .calendar-caption,
.myousenzi-booking .mtssb-timetable-date {
 padding: 12px;
 margin-bottom: 10px;
 border-radius: 12px;
 background: var(--booking-pink);
 color: var(--color-text);
 font-size: var(--font-size-21);
 font-weight: 600;
}
.myousenzi-booking .monthly-calendar th { font-size: var(--font-size-16); }
.myousenzi-booking .monthly-calendar .day-box {
 position: relative;
 padding: 6px 0;
 border: 1px solid var(--booking-border);
 border-radius: 10px;
 vertical-align: middle;
 background: #fff;
 transition: background-color .25s ease;
}
.myousenzi-booking .day-number { font-size: var(--font-size-16); line-height: 1.5; }
.myousenzi-booking .monthly-calendar .calendar-mark { font-size: var(--font-size-24); line-height: 1.5; }
.myousenzi-booking .calendar-daylink {
 display: block;
 min-height: 32px;
 color: var(--booking-accent);
 text-decoration: none;
 font-weight: 600;
}
/* 日付も含めてセル全体をリンクのタップ領域にする。 */
.myousenzi-booking .calendar-daylink::after { content: ''; position: absolute; inset: 0; border-radius: 10px; }
.myousenzi-booking .day-box:has(.calendar-daylink):hover { background: var(--booking-pink); }
.myousenzi-booking .monthly-calendar .day-box.disable,
.myousenzi-booking .monthly-calendar .day-box.no-day { background: #f5f3ef; color: #777; }
.myousenzi-booking .monthly-calendar .day-box.today { border: 2px solid var(--color-brand-gold); }
.myousenzi-booking .monthly-prev-next { display: flex; justify-content: space-between; gap: 12px; width: 100%; margin-top: 14px; }
.myousenzi-booking .monthly-prev-next > br { display: none; }
.myousenzi-booking .monthly-prev,
.myousenzi-booking .monthly-next { float: none; margin: 0; padding: 0; background: transparent; }
.myousenzi-booking .monthly-prev{  padding-top: 10px!important;  }
.myousenzi-booking .monthly-prev-next a,
.myousenzi-booking .mtssb-daily-action button {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 44px;
 padding: 8px 16px;
 border: 1px solid var(--booking-border);
 border-radius: 12px;
 background: #fff;
 color: var(--color-text);
 font: inherit;
 text-decoration: none;
 cursor: pointer;
}
.myousenzi-booking .day-calendar th,
.myousenzi-booking .day-calendar td { width: 50%; padding: 8px; border: 1px solid var(--booking-border); border-radius: 10px; }
.myousenzi-booking .day-calendar th { background: var(--booking-pink); }
.myousenzi-booking .booking-timelink { display: grid; place-items: center; min-height: 44px; color: var(--booking-accent); text-decoration: none; }
.myousenzi-booking .content-form fieldset { min-width: 0; margin: 0 0 28px; }
.myousenzi-booking .content-form legend { margin: 0 0 16px; padding: 8px 0; font-size: var(--font-size-21); font-weight: 600; color: var(--color-brand-gold); border-bottom: 1px solid var(--booking-border); }
.myousenzi-booking .content-form table { width: 100%; border-collapse: collapse; border-spacing: 0; table-layout: fixed; }
.myousenzi-booking .content-form th,
.myousenzi-booking .content-form td { padding: 16px 12px; border: 0; border-bottom: 1px solid var(--booking-border); border-radius: 0; text-align: left; vertical-align: top; font-size: var(--font-size-16); }
.myousenzi-booking .content-form th { width: 28%; background: #fff8f2; font-weight: 600; }
.myousenzi-booking .content-form input:not([type='hidden']):not([type='radio']):not([type='checkbox']):not([type='submit']),
.myousenzi-booking .content-form textarea,
.myousenzi-booking .content-form select {
 box-sizing: border-box;
 max-width: 100%;
 min-height: 48px;
 margin: 4px 0;
 padding: 10px;
 border: 1px solid #cbbbaf;
 border-radius: 8px;
 background: #fff;
 color: var(--color-text);
 font-family: var(--font-family-base);
 font-size: var(--font-size-16);
 line-height: 1.5;
}
.myousenzi-booking .content-form .fat { width: 100%; }
.myousenzi-booking .content-form .booking-seimei { width: 3em; }
.myousenzi-booking .content-form .small-medium { width: calc(100% - 4em); }
.myousenzi-booking .content-form textarea { resize: vertical; min-height: 140px; }
.myousenzi-booking .content-form label.field-item,
.myousenzi-booking .content-form label.radio { display: flex; align-items: baseline; gap: 8px; min-height: 44px; padding: 8px 0; margin: 0; }
.myousenzi-booking .content-form input[type='radio'],
.myousenzi-booking .content-form input[type='checkbox'] { flex-shrink: 0; width: 20px; height: 20px; accent-color: var(--booking-accent); }
.myousenzi-booking .check-kuyou_service .option-radio-price {
 display: inline;
 margin-left: 2px;
}
.myousenzi-booking .check-kuyou_service .option-radio-price::before { content: '（'; }
.myousenzi-booking .check-kuyou_service .option-radio-price::after { content: '）'; }
.myousenzi-booking .unit-price.kuyou_service { display: none; }
.myousenzi-booking #confirmation-kuyou_service { display: none; }
.myousenzi-booking #booking-confirm-bill .bill-details .bill-number,
.myousenzi-booking #booking-confirm-bill .bill-details .bill-unit { display: none; }
.myousenzi-booking .content-form .required,
.myousenzi-booking .content-form .error-message { color: #a82242; }
.myousenzi-booking .content-form .form-message { width: 100%; padding: 16px; border-radius: 10px; }
.myousenzi-booking #action-button button,
.myousenzi-booking #action-button input[type='submit'] {
 min-height: 52px;
 max-width: 100%;
 padding: 12px 36px;
 border: 0;
 border-radius: 28px;
 background: linear-gradient(135deg, var(--color-accent-pink), var(--color-accent-pink-dark));
 color: #fff;
 font-family: var(--font-family-base);
 font-size: var(--font-size-16);
 font-weight: 600;
 cursor: pointer;
}
.myousenzi-booking #action-button.booking-actions {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 12px;
}
.myousenzi-booking #action-button .booking-back-button {
 border: 1px solid var(--booking-border);
 background: #fff;
 color: var(--color-text);
}
.myousenzi-booking :is(.monthly-calendar, .content-form) :is(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
@media (max-width: 767px) {
 
 
 
 .myousenzi-booking .standard-page__body { padding: 12px 12px 32px; }
 .myousenzi-booking :is(.booking-calendar-page, .booking-thanks-page) {
  padding: 22px 18px;
  border-radius: 18px;
 }
 .myousenzi-booking .booking-thanks-page .button,
 .myousenzi-booking .booking-thanks-page .button a {
  box-sizing: border-box;
  width: 100%;
 }
 .myousenzi-booking .h3_title { font-size: var(--font-size-24); }
 .myousenzi-booking .monthly-calendar,
 .myousenzi-booking .content-form { padding: 12px 8px; border-radius: 14px; }
 .myousenzi-booking .monthly-calendar table { border-spacing: 2px; }
 .myousenzi-booking .monthly-calendar th { font-size: var(--font-size-14); }
 .myousenzi-booking .monthly-calendar .day-box { border-radius: 6px; }
 .myousenzi-booking .monthly-prev-next a { padding-inline: 10px; font-size: var(--font-size-14); }
 .myousenzi-booking .content-form fieldset > table,
 .myousenzi-booking .content-form fieldset > table > tbody,
 .myousenzi-booking .content-form fieldset > table > tbody > tr { display: block; width: 100%; }
 .myousenzi-booking .content-form fieldset > table > tbody > tr > th,
 .myousenzi-booking .content-form fieldset > table > tbody > tr > td { display: block; box-sizing: border-box; width: 100%; }
 .myousenzi-booking .content-form fieldset > table > tbody > tr > th { padding: 10px; border: 0; line-height: 1.6; }
 .myousenzi-booking .content-form fieldset > table > tbody > tr > td { padding: 10px 4px 18px; border: 0;}
 .myousenzi-booking .content-form select.booking-date { padding-inline: 4px; }
 .myousenzi-booking .content-form .medium { width: 100%; }
 .myousenzi-booking .content-form label.check-kuyou_service { flex-wrap: wrap; }
 .myousenzi-booking .check-kuyou_service .option-radio-price {
  flex-basis: calc(100% - 28px);
  margin-left: 28px;
 }
 .myousenzi-booking #action-button button { width: 100%; }
}

/* カレンダーの予約見出し。文節内での不自然な折り返しを防ぐ。 */
.myousenzi-booking .monthly-calendar .calendar-title {
 text-align: center;
}
.booking-calendar-heading > span {
 display: inline-block;
 white-space: nowrap;
}
@media (max-width: 399px) {
 .booking-calendar-heading > span { display: block; }
}
