/* =================================================================
   テーマ開発用カラーパレット
   この変数は、将来的にテーマ設定機能でカスタマイズされることを想定しています。
================================================================= */
:root {
    --pr-color-main-theme: rgba(113, 210, 201, 1);
    --pr-color-header-text: #ffffff;
    --pr-color-regular-holiday-bg: #fdecec;
    --pr-color-regular-holiday-text: #c92a2a;
    --pr-color-regular-holiday-border: #f5c6cb;
    --pr-color-temporary-holiday-bg: #fff4e6;
    --pr-color-temporary-holiday-text: #f76707;
    --pr-color-temporary-holiday-border: #ffd8a8;
    --pr-color-special-business-day-bg: #e6fcf5;
    --pr-color-special-business-day-border: #96f2d7;
    --pr-color-weekday-bg: #fff8ed;
    --pr-color-weekday-sunday-bg: #fff8ed;
    --pr-color-weekday-saturday-bg: #fff8ed;
    --pr-color-weekday-sunday-text: #d32f2f;
    --pr-color-weekday-saturday-text: #1976d2;
}

/* pr-form-settings-v2.css - Synced to frontend */

[x-cloak] {
    display: none !important;
}
[x-show="selectedDate"] {
    background-color: var(--pr-selected-date-bg-color);
    color: var(--pr-selected-date-font-color);
    text-align: center;
    font-size: 16px;
    padding: 0.5rem 1rem;
    border-radius: 4px;
}
/* プレビューエリアの基本スタイル */
.pr-preview-wrapper {
    --pr-spacing-base: 8px; /* default medium */
    --pr-spacing-xs: calc(var(--pr-spacing-base) * 0.5);   /* 4px */
    --pr-spacing-sm: var(--pr-spacing-base);              /* 8px */
    --pr-spacing-md: calc(var(--pr-spacing-base) * 1.5);  /* 12px */
    --pr-spacing-lg: calc(var(--pr-spacing-base) * 2);    /* 16px */
    --pr-spacing-xl: calc(var(--pr-spacing-base) * 3);    /* 24px */
    --pr-spacing-xxl: calc(var(--pr-spacing-base) * 4);   /* 32px */

    color: var(--pr-text-color);
    transition: all 0.3s ease;
}

/* フォームモックの基本スタイル */
.pr-booking-form-mock {
    --pr-background-image: none;
    background: var(--pr-overall-bg-color) var(--pr-background-image);
    border: 1px solid var(--pr-overall-bg-color);
    padding: var(--pr-form-padding, 24px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.pr-booking-form-mock.has-shadow {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* フォームインナーの基本スタイル */
.pr-booking-form-inner {
    background-color: var(--pr-card-bg-color);
    padding: var(--pr-inner-padding, 24px);
    border-radius: 2px;
    transition: background-color 0.3s ease;
}

.pr-form-title {
    font-size: var(--pr-title-font-size, 1.5em);
    margin-top: 0 !important;
    margin-bottom: var(--pr-field-margin, 1rem);
    line-height: var(--pr-title-line-height, 1.5);
    border-bottom: var(--pr-title-underline-width, 1px) solid var(--pr-title-underline-color, var(--pr-main-color));
    padding-bottom: 0.5rem;
    color: var(--pr-title-font-color, var(--pr-main-color));
    text-align: var(--pr-title-text-align, left);
    background-color: var(--pr-title-background-color, transparent);
}

.pr-form-description {
    font-size: var(--pr-description-font-size, 0.9em);
    color: var(--pr-description-font-color, var(--pr-text-color));
    text-align: var(--pr-description-text-align, left);
    font-weight: var(--pr-description-font-weight, normal);
    margin-bottom: 1.5rem;
}

.pr-preview-field {
    margin-bottom: var(--pr-field-margin, 16px);
}

.pr-preview-field label {
    font-weight: var(--pr-label-font-weight, bold);
    margin-bottom: 0;
    color: var(--pr-label-font-color, var(--pr-text-color));
    font-size: var(--pr-label-font-size, 1em);
}

.pr-label-wrapper {
    display: flex;
    align-items: center;
    margin-bottom: 0.5rem;
}

.pr-preview-field input[type="text"],
.pr-preview-field input[type="tel"],
.pr-preview-field input[type="email"],
.pr-preview-field textarea {
    width: 100%;
    padding: var(--pr-input-padding, 0.5rem);
    border: 1px solid var(--pr-input-border-color); /* 枠線色をカスタムプロパティで制御 */
    outline: none; /* outlineはフォーカス時にのみ使用 */
    border-radius: var(--pr-input-border-radius, 4px); /* 角丸をカスタムプロパティで制御 */
    box-sizing: border-box;
    background-color: var(--pr-input-background-color); /* 背景色をカスタムプロパティで制御 */
    color: var(--pr-input-text-color); /* テキスト色をカスタムプロパティで制御 */
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.pr-preview-field select {
    width: 100%;
    padding: var(--pr-input-padding, 0.5rem);
    border: 1px solid var(--pr-input-border-color); /* 枠線色をカスタムプロパティで制御 */
    outline: none; /* outlineはフォーカス時にのみ使用 */
    border-radius: var(--pr-input-border-radius, 4px); /* 角丸をカスタムプロパティで制御 */
    box-sizing: border-box;
    background-color: var(--pr-input-background-color); /* 背景色をカスタムプロパティで制御 */
    color: var(--pr-input-text-color); /* テキスト色をカスタムプロパティで制御 */
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.pr-preview-field select.pr-placeholder-selected {
    color: var(--pr-input-placeholder-color);
}

.pr-preview-field select option[value=""] {
    color: var(--pr-input-placeholder-color);
}

.pr-preview-field select option:not([value=""]) {
    color: var(--pr-input-text-color);
}

.pr-preview-field input[type="text"]::placeholder,
.pr-preview-field input[type="tel"]::placeholder,
.pr-preview-field input[type="email"]::placeholder,
.pr-preview-field textarea::placeholder {
    color: var(--pr-input-placeholder-color);
    opacity: 1; /* Firefoxではデフォルトで透明度が適用されるため上書き */
}

/* フォーカス時のスタイル */
.pr-preview-field input[type="text"]:focus,
.pr-preview-field input[type="tel"]:focus,
.pr-preview-field input[type="email"]:focus,
.pr-preview-field select:focus,
.pr-preview-field textarea:focus {
    outline: 2px solid var(--pr-main-color);
    box-shadow: 0 0 0 2px var(--pr-main-color, #3498db)33; /* メインカラーに透明度33%を追加したリング */
}
.pr-preview-field select:hover,
.pr-preview-field select:focus {
    color: inherit;
}

.pr-preview-field textarea {
    min-height: 80px;
    resize: vertical;
}

.pr-submit-button {
    display: block;
    width: var(--pr-submit-button-width, 100%);
    padding: 0.75rem;
    background-color: var(--pr-submit-button-bg-color, var(--pr-main-color));
    color: var(--pr-submit-button-text-color, #fff);
    border: 1px solid var(--pr-submit-button-border-color, transparent);
    border-radius: var(--pr-submit-button-border-radius, 4px);
    font-size: var(--pr-submit-button-font-size, 1.1em);
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    text-align: center;
}

.pr-submit-button:hover {
    background-color: var(--pr-submit-button-hover-bg-color);
    color: var(--pr-submit-button-hover-text-color);
    border-color: var(--pr-submit-button-hover-border-color);
}

.pr-submit-button-wrapper {
    display: flex;
    justify-content: var(--pr-submit-button-justify-content, center);
}

/* テーマ別スタイル（色以外のスタイル） */
.pr-preview-wrapper.theme-simple .pr-booking-form-inner {
    /* padding: 0; */
}

.pr-preview-wrapper.theme-modern .pr-booking-form-mock {
    border-radius: 8px;
}
.pr-preview-wrapper.theme-modern .pr-form-title {
    font-weight: 600;
}

.pr-preview-wrapper.theme-modern .pr-submit-button {
    font-weight: bold;
}

.pr-preview-wrapper.theme-japanese {
    /* 和風テーマのデフォルトメインカラー（藍色） */
    --pr-main-color: #225a8b; 
    --pr-text-color: #333333;
}

.pr-preview-wrapper.theme-japanese .pr-booking-form-mock {
    font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
    /* うっすらと和紙のテクスチャを追加 (Base64 encoded SVG) */
    --pr-background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgo8ZmlsdGVyIGlkPSJub2lzZSI+CjxmZVR1cmJ1bGVuY2UgdHlwZT0iZnJhY3RhbE5vaXNlIiBiYXNlRnJlcXVlbmN5PSIwLjciIG51bU9jdGF2ZXM9IjEwIiBzdGl0Y2hUaWxlcz0ic3RpdGNoIiAvPgo8ZmVDb21wb25lbnRUcmFuc2ZlciBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGdW5jUiB0eXBlPSJsaW5lYXIiIHNsb3BlPSIwLjEiIC8+CjwvZmVDb21wb25lbnRUcmFuc2ZlciA+CjwvZmlsdGVyPgo8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWx0ZXI9InVybCgjbnoaXNlKSIgb3BhY2l0eT0iMC4wNSIgLz4KPC9zdmc+');
}

.pr-preview-wrapper.theme-japanese .pr-form-title {
    font-weight: bold;
    border-bottom-color: var(--pr-main-color);
}

.pr-preview-wrapper.theme-japanese .pr-submit-button {
    font-weight: normal;
    background-color: var(--pr-main-color);
    /* 和風テーマでは、ホバー時の色を少し明るくする */
    --pr-submit-button-hover-bg-color: #3a7ab5; 
}

.pr-preview-wrapper.theme-japanese .pr-preview-field input[type="text"],
.pr-preview-wrapper.theme-japanese .pr-preview-field input[type="tel"],
.pr-preview-wrapper.theme-japanese .pr-preview-field input[type="email"],
.pr-preview-wrapper.theme-japanese .pr-preview-field textarea,
.pr-preview-wrapper.theme-japanese .pr-preview-field select {
    background-color: #ffffff;
    border-color: #cccccc;
}

/* フォントサイズ */
.pr-preview-wrapper {
    --pr-base-font-size: 16px; /* 基本のフォントサイズ */
    --pr-base-line-height: 1.6;
    font-size: var(--pr-base-font-size);
    line-height: var(--pr-base-line-height);
}

.pr-preview-wrapper.font-size-large {
    --pr-base-font-size: 18px;
    --pr-base-line-height: 1.7;
}

.pr-required {
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.5em;
    font-size: 0.7em;
    padding: 0.1em 0.4em;
    border-radius: 3px;
    color: var(--pr-required-mark-color, #D9534F);
    background-color: var(--pr-required-mark-bg-color, #FADADD);
    border: 1px solid transparent;
}

/* Confirmation & Completion Screen */
.pr-confirmation-list {
    margin: 2rem 0;
    border-top: 1px solid var(--pr-input-border-color, #ddd);
}

.pr-confirmation-item {
    display: flex;
    padding: 1rem 0;
    border-bottom: 1px solid var(--pr-input-border-color, #ddd);
}

.pr-confirmation-label {
    width: 30%;
    font-weight: bold;
    padding-right: 1rem;
    color: var(--pr-label-font-color, var(--pr-text-color));
}

.pr-confirmation-value {
    width: 70%;
}

.pr-confirmation-buttons {
    display: flex;
    flex-direction: row; /* column から row に変更 */
    gap: 0.75rem;
    margin-top: 2rem;
}

.pr-button-secondary {
    width: 100%;
    padding: 0.75rem;
    background-color: var(--pr-confirmation-back-button-bg-color);
    border: 1px solid var(--pr-confirmation-back-button-border-color, #ddd);
    color: var(--pr-confirmation-back-button-text-color);
    font-size: var(--pr-submit-button-font-size, 1.1em);
    border-radius: var(--pr-submit-button-border-radius, 4px);
    cursor: pointer;
    text-align: center;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.pr-button-secondary:hover {
    background-color: var(--pr-confirmation-back-button-hover-bg-color);
    color: var(--pr-confirmation-back-button-hover-text-color);
    border-color: var(--pr-confirmation-back-button-hover-border-color);
}

/* Privacy Policy Text Preview */
.pr-privacy-policy-text-preview {
    height: var(--pr-privacy-body-height, 100px);
    overflow-y: auto;
    border: 1px solid var(--pr-privacy-body-border-color, var(--pr-input-border-color, #ddd));
    padding: var(--pr-privacy-body-padding, 0.5rem);
    margin-top: 0.5rem;
    font-size: 0.9em;
    line-height: 1.5;
    background-color: var(--pr-privacy-body-background-color, var(--pr-input-background-color));
    color: var(--pr-privacy-body-font-color, var(--pr-input-text-color));
    border-radius: var(--pr-privacy-body-border-radius, var(--pr-input-border-radius, 4px));
}

.pr-privacy-policy-consent-wrapper {
    margin-top: 0.5rem;
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
    display: flex;
    align-items: center;
    gap: .5em;
}

.pr-privacy-policy-link-wrapper {
    font-size: var(--pr-privacy-link-font-size, 0.9em);
    text-align: var(--pr-privacy-link-text-align, left);
    margin-bottom: var(--pr-privacy-link-margin-bottom, 0.5rem);
}

.pr-privacy-header {
    font-size: var(--pr-privacy-header-font-size, 1em);
    color: var(--pr-privacy-header-font-color, inherit);
    text-align: var(--pr-privacy-header-text-align, left);
    margin-bottom: var(--pr-privacy-header-margin-bottom, 0.5rem);
}

.pr-privacy-consent-label {
    font-size: var(--pr-privacy-consent-label-font-size, 0.9em);
    color: var(--pr-privacy-consent-label-font-color, inherit);
}

.pr-privacy-link {
    color: var(--pr-privacy-link-font-color, var(--pr-main-color));
    text-decoration: none; /* デフォルトは下線なし */
}

.pr-privacy-link.underline {
    text-decoration: underline;
}

.pr-privacy-link.hover-underline:hover {
    text-decoration: underline;
}

.pr-privacy-link:hover {
    color: var(--pr-privacy-link-hover-font-color);
}

/* Modal Styles (from original frontend css) */
.pr-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    padding: 20px;
    box-sizing: border-box;
    overflow-y: auto;
}

.pr-modal-content {
    width: 100%;
    max-width: 550px;
    max-height: 95vh;
    overflow-y: auto;
    background: transparent; /* Let the wrapper handle the background */
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    position: relative; /* 追加 */
}

/* Loading Overlay for Modal */
.pr-loading-overlay-modal {
    position: absolute; /* 親要素の pr-modal-content に対して絶対配置 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.8); /* 半透明の白 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10; /* モーダルコンテンツの上に表示 */
    border-radius: 8px; /* モーダルの角丸に合わせる */
}

.pr-loading-overlay-modal .pr-spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-top: 4px solid var(--pr-main-color, #3498db); /* メインカラーのスピナー */
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: pr-spin 0.8s linear infinite;
}

.pr-loading-overlay-modal .pr-loading-text {
    margin-top: 10px;
    color: #555;
    font-size: 1.1em;
}

@keyframes pr-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Confirmation Modal for closing */
.pr-confirm-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7); /* Slightly darker overlay */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10001; /* Higher than the main modal */
}

.pr-confirm-modal-content {
    background-color: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    text-align: center;
    max-width: 400px;
    width: 90%;
}

.pr-confirm-modal-message {
    margin: 0 0 1.5rem;
    font-size: 1.1rem;
    color: #333;
}

.pr-confirm-modal-buttons {
    display: flex;
    justify-content: center;
    gap: 1rem;
}

.pr-confirm-modal-buttons button {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.2s;
    font-weight: bold;
}

.pr-confirm-button-yes {
    background-color: #c0392b; /* Darker red */
    color: white;
}

.pr-confirm-button-yes:hover {
    background-color: #e74c3c; /* Lighter red on hover */
}

.pr-confirm-button-no {
    background-color: #bdc3c7; /* Gray */
    color: #34495e;
}

.pr-confirm-button-no:hover {
    background-color: #ecf0f1; /* Lighter gray on hover */
}

/* Error Message Style */
.pr-error-message {
    color: #D9534F; /* Bootstrap's text-danger color, same as required mark */
    font-size: 0.85em;
    margin-top: 0.25rem;
    display: block;
}

/* =================================================================
   カレンダー関連 (jQuery UI Datepicker のスタイル上書き)
   WordPress標準のDatepickerの見た目をカスタマイズします。
================================================================= */

/* =================================================================
   カレンダー関連 (jQuery UI Datepicker のスタイル上書き)
================================================================= */

/* 1. 全体コンテナ (#pr-calendar-v2 .ui-datepicker)
----------------------------------------------------------------- */
/* カレンダー全体のボーダー、シャドウ、背景などを定義 */
#pr-calendar-v2 .ui-datepicker {
    width: 100%;
    padding: 0;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    border: none;
    border-radius: 8px;
    overflow: hidden;
    background-color: #ffffff;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}


/* 2. ヘッダー（年月ナビゲーション）(#pr-calendar-v2 .ui-datepicker-header)
----------------------------------------------------------------- */
/* 「<」「>」ボタンや「2025年 11月」表示部分のスタイルを定義 */
#pr-calendar-v2 .ui-datepicker-header {
    background-color: var(--pr-color-main-theme); /* changed */
    padding: 1em 0; /* 上下のパディングを調整 */
    position: relative;
    text-align: center;
    font-weight: bold;
    border: none;
    border-radius: 0px;
}

#pr-calendar-v2 .ui-datepicker-prev,
#pr-calendar-v2 .ui-datepicker-next {
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    background-color: transparent;
    border: none;
    width: 2em;
    height: 2em;
    font-size: 1em;
    color: #555555;
    transition: background-color 0.2s;
    border-radius: 4px;
}

#pr-calendar-v2 .ui-datepicker-prev:hover,
#pr-calendar-v2 .ui-datepicker-next:hover {
    background-color: #e0e0e0;
}

#pr-calendar-v2 .ui-datepicker-prev::after,
#pr-calendar-v2 .ui-datepicker-next::after {
    border-color: transparent transparent transparent #555555; /* 矢印の色を調整 */
}
#pr-calendar-v2 .ui-datepicker-prev::after {
    border-color: transparent #555555 transparent transparent;
}
#pr-calendar-v2 .ui-datepicker-next {
    right: 0.5em; /* 位置調整 */
}
#pr-calendar-v2 .ui-datepicker-prev {
    left: 0.5em; /* 位置調整 */
}

#pr-calendar-v2 .ui-datepicker-title {
    margin: 0;
    line-height: 2em; /* 中央揃えのため */
    color: var(--pr-color-header-text); /* changed */
}
#pr-calendar-v2 .ui-datepicker-title select {
    font-size: 1em;
    margin: 0 0.2em;
}

#pr-calendar-v2 .ui-datepicker-calendar {
    margin: 2em;
    width: calc(100% - 4em);
    border: none;
}

/* 3. 曜日ヘッダー (#pr-calendar-v2 .ui-datepicker-calendar th)
----------------------------------------------------------------- */
#pr-calendar-v2 .ui-datepicker-calendar tr {
    border-left: none;
}

/* 「日, 月, 火...」のヘッダーの共通スタイルと、土日の個別スタイルを定義 */
#pr-calendar-v2 .ui-datepicker-calendar th {
    background-color: var(--pr-color-weekday-bg); /* ヘッダーと同じ背景色 */
    color: #666666; /* 濃いグレー */
    padding: 0.7em 0; /* パディング調整 */
    font-weight: normal; /* 太字を解除し、シンプルに */
    border: none; /* ボーダーを削除 */
}

#pr-calendar-v2 .ui-datepicker-calendar th:first-child { /* 日曜日 */
    color: var(--pr-color-weekday-sunday-text); /* 赤色 */
    background-color: var(--pr-color-weekday-sunday-bg); /* 背景色を統一 */
}

#pr-calendar-v2 .ui-datepicker-calendar th:last-child { /* 土曜日 */
    color: var(--pr-color-weekday-saturday-text); /* 青色 */
    background-color: var(--pr-color-weekday-saturday-bg); /* 背景色を統一 */
}


/* 4. 日付セル (共通スタイル) (#pr-calendar-v2 .ui-datepicker-calendar td)
----------------------------------------------------------------- */
/* すべての日付セルの基本となる大きさ、枠線、文字のスタイルなどを定義 */
#pr-calendar-v2 .ui-datepicker-calendar td {
    padding: 2px; /* セル間の余白 */
    box-sizing: border-box;
    border: none;
    position: relative; /* add */
}

#pr-calendar-v2 .ui-datepicker-calendar td:before {
    content: '';
    display: block;
    padding-top: 100%;
}

#pr-calendar-v2 .ui-datepicker-calendar td .ui-state-default {
    position: absolute;
    top: 2px; /* padding-top と合わせる */
    left: 2px; /* padding-left と合わせる */
    width: calc(100% - 4px); /* padding-top/left/right/bottom の合計 */
    height: calc(100% - 4px); /* padding-top/left/right/bottom の合計 */
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid #eeeeee; /* 薄いグレーのボーダー */
    border-radius: 4px; /* 角を少し丸く */
    background-color: #ffffff; /* デフォルトの背景色 */
    text-decoration: none;
    color: #333333; /* デフォルトの文字色 */
    font-size: 0.9em;
    font-weight: normal;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
    cursor: pointer;
}

/* 5. 日付の状態別スタイル
----------------------------------------------------------------- */
#pr-calendar-v2 .ui-datepicker-calendar td.ui-state-disabled {
    opacity: 1;
}
/* 5-1. 予約可能な日（通常営業日・臨時営業日） */
/* 既存の `ui-state-default` が予約可能な日の基本スタイルになるため、ここでは追加のスタイルは不要 */
#pr-calendar-v2 .ui-datepicker-calendar td a.ui-state-default:hover {
    /* background-color: #f0f0f0; */
    background-color: color-mix(in srgb, var(--pr-color-main-theme), white 80%);
    border-color: var(--pr-color-main-theme);
}

/* 5-2. 予約不可能な日（定休日・臨時休業日） */
/* ui-state-disabled は既に選択不可能な日付に適用されるクラス */
#pr-calendar-v2 .ui-datepicker-calendar td.ui-state-disabled .ui-state-default {
    background-color: #f5f5f5 !important; /* 薄いグレーの背景 */
    color: #555555 !important; /* 薄いグレーの文字色 */
    border-color: #eeeeee !important; /* 薄いグレーのボーダー */
    cursor: not-allowed;
}

/* 臨時休業日と定休日も予約不可能な日として統一 */
#pr-calendar-v2 .ui-datepicker-calendar td.pr-regular-holiday .ui-state-default,
#pr-calendar-v2 .ui-datepicker-calendar td.pr-temporary-holiday .ui-state-default {
    background-color: #f5f5f5 !important;
    color: #aaaaaa !important;
    border-color: #eeeeee !important;
}

/* 5-3. 過去の日付 */
#pr-calendar-v2 .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-state-disabled:not(.pr-regular-holiday):not(.pr-temporary-holiday) .ui-state-default {
    background-color: #f5f5f5 !important; /* 背景は白 */
    color: #aaaaaa !important; /* 文字は薄いグレー */
    border-color: #eeeeee !important;
    cursor: not-allowed;
}

/* 5-4. 空白のセル */
/* 月の範囲外のセル (例: 5月1日の前の4月28日など) */
#pr-calendar-v2 .ui-datepicker-calendar td.ui-datepicker-other-month {
    visibility: hidden; /* セル全体を非表示 */
    line-height: 0;
}

/* 週末の表現 (既存の文字色ルールを上書き) */
#pr-calendar-v2 .ui-datepicker-calendar td.pr-sunday .ui-state-default {
    color: #d32f2f !important; /* 日曜日は赤 */
}
#pr-calendar-v2 .ui-datepicker-calendar td.pr-saturday .ui-state-default {
    color: #1976d2 !important; /* 土曜日は青 */
}

/* 現在選択されている日付のスタイル */
#pr-calendar-v2 .ui-datepicker-calendar .ui-state-active.ui-state-default,
#pr-calendar-v2 .ui-datepicker-calendar .ui-state-active a.ui-state-default {
    background-color: var(--pr-color-main-theme) !important; /* メインテーマカラーを適用 */
    color: #ffffff !important;
    border-color: var(--pr-color-main-theme) !important; /* メインテーマカラーを適用 */
}

/* 6. レスポンシブ対応 (@media)
----------------------------------------------------------------- */
/* 6-1. タブレットサイズ (max-width: 782px) */
@media (max-width: 782px) {
    #pr-calendar-v2.ui-datepicker {
        font-size: 0.95em; /* 全体的に少し小さく */
    }
    #pr-calendar-v2 .ui-datepicker-header {
        padding: 0.8em 0;
    }
    #pr-calendar-v2 .ui-datepicker-calendar th {
        padding: 0.6em 0;
    }
    #pr-calendar-v2 .ui-datepicker-calendar td {
        padding: 1px; /* セル間の余白をさらに小さく */
    }
    #pr-calendar-v2 .ui-datepicker-calendar td .ui-state-default {
        font-size: 0.85em; /* 日付のフォントサイズを調整 */
        top: 1px;
        left: 1px;
        width: calc(100% - 2px);
        height: calc(100% - 2px);
    }
    #pr-calendar-v2 .pr-legend {
        font-size: 0.85em;
        padding: 0.8em 0;
        gap: 0.8em;
    }
    #pr-calendar-v2 .pr-legend li {
        margin-left: 0.8em;
    }
}

/* 6-2. スマートフォンサイズ (max-width: 560px) */
@media (max-width: 560px) {
    #pr-calendar-v2.ui-datepicker {
        font-size: 0.9em; /* さらに小さく */
        max-width: 100%; /* 画面幅いっぱいに */
        box-shadow: none; /* シャドウを削除してシンプルに */
        border: none; /* ボーダーを削除 */
    }
    #pr-calendar-v2 .ui-datepicker-calendar {
        width: 100%;
        margin: 0;
    }
    #pr-calendar-v2 .ui-datepicker-header {
        padding: 0.6em 0;
        font-size: 14px;
    }
    #pr-calendar-v2 .ui-datepicker-prev,
    #pr-calendar-v2 .ui-datepicker-next {
        width: 1.5em;
        height: 1.5em;
    }
    #pr-calendar-v2 .ui-datepicker-prev::after,
    #pr-calendar-v2 .ui-datepicker-next::after {
        border-width: 4px 6px 4px 0; /* 矢印を小さく */
    }
    #pr-calendar-v2 .ui-datepicker-next::after {
        border-width: 4px 0 4px 6px;
    }
    #pr-calendar-v2 .ui-datepicker-calendar th {
        padding: 0.5em 0;
        font-size: 0.8em; /* 曜日ヘッダーのフォントサイズを調整 */
    }
    #pr-calendar-v2 .ui-datepicker-calendar td .ui-state-default {
        font-size: 0.75em; /* 日付のフォントサイズをさらに小さく */
        border-radius: 2px; /* 角丸を小さく */
    }
    #pr-calendar-v2 .pr-legend {
        font-size: 0.75em;
        padding: 0.6em 0;
        border-radius: 0; /* 角丸を削除 */
    }
    #pr-calendar-v2 .pr-legend li {
        margin-left: 0.6em;
    }
    .pr-preview-wrapper {
        font-size: .8rem;
    }
    .pr-preview-wrapper.theme-modern .pr-form-title {
        font-size: 20px;
    }
    [x-show="selectedDate"] {
        font-size: 13px;
    }
}


/* 7. 凡例 (.pr-legend)
----------------------------------------------------------------- */
/* カレンダー下部に表示する凡例のスタイルを定義 */
#pr-calendar-v2 .pr-legend {
    list-style: none;
    padding: 1em 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap; /* 折り返しを許可 */
    justify-content: flex-start; /* 左寄せ */
    gap: 1em; /* 間隔を調整 */
    font-size: 0.9em;
    color: #555555;
    border-top: 1px solid #eeeeee; /* 上部に区切り線 */
    border-radius: 0 0 8px 8px; /* 下部をカレンダー全体と合わせて丸く */
    background-color: #f8f8f8; /* ヘッダーと同じ背景色 */
}
#pr-calendar-v2 .pr-legend li {
    display: flex;
    align-items: center;
    margin-left: 1em; /* 左寄せ時のインデント */
}
#pr-calendar-v2 .pr-legend .color-box {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.5em;
    border: 1px solid #e0e0e0;
    background-color: #f5f5f5; /* 予約不可能な日の背景色に統一 */
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.05); /* わずかな内側の影で立体感 */
}

/* Generic Loading Overlay */
.pr-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.7);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 5;
    border-radius: 8px;
    transition: opacity 0.3s ease;
}
.pr-loading-overlay .pr-spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-top: 4px solid var(--pr-main-color, #3498db);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: pr-spin 0.8s linear infinite;
}
.pr-loading-overlay .pr-loading-text {
    margin-top: 10px;
    color: #555;
    font-size: 1.1em;
}

/* Same Day Booking Note */
.pr-same-day-note {
    background-color: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 4px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    color: #8a6d3b;
    font-size: 0.9em;
    text-align: left;
}
