
body, h1, h2, h3, h4, h5, h6, p, span, div, pre, table, thead, tbody, tr, td, th, form, button, input, select, option, label, a, small, strong, ul, li, ol, input[type=password] {
    font-family: "Hiragino Sans W3", "Zen Kaku Gothic New", "Sawarabi Gothic", "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "メイリオ",
    Meiryo,
    "ＭＳ Ｐゴシック",
    "MS PGothic",
    sans-serif !important;
    font-weight: normal;
    font-optical-sizing: auto;
    overflow-wrap: anywhere;
    letter-spacing: 0.03rem;
}

.text-danger-option:before {
    content: "▶";
}

.error-message {
    color: red;
    text-decoration: underline;
}

.form-control.failed-validation {
    background-color: #ffa8ce;
    font-size: 13pt;
}

label.failed-validation {
    margin-top: 0.5rem;
    text-decoration: underline;
    font-size: 13pt;
    padding: 0.5rem;
    background-color: #EFEFEF;
    border: 1pt solid #EEEEEE;
    border-radius: 3pt;
}

label.failed-validation::before {
    content: "▶";
}

.form-control.succeeded-validation {
    background-color: #b8eef3;
}

label.msg, p.msg {
    color: red;
    text-decoration: underline;
}

.alert-info-light {
    background-color: #e8f7ff;
    color: #1b1e21;
    font-size: 13pt;
}

/** Microsoftブラウザ使用時の目玉マークを非表示に */
::-ms-reveal {
    display: none;
}

.required-item {
    color: red;
}

.attendee_names_unit {
    background-color: #F8F8F8;
    border: 1px solid #F5F5F5;
    border-radius: 0.5rem;
    padding: 20pt;
}

.bg-success-subtle {
    background-color: #edf2f7;
}

.button-to-vote {
    font-size: 20pt;
}

/** Microsoftブラウザ使用時の目玉マークを非表示に */
::-ms-reveal {
    display: none;
}

input[type=password] {
    letter-spacing: 0.5rem;
}

/*input[type="date"]{*/
/*    width: 200px;*/
/*    !*忘れずに書きましょう。*!*/
/*    position: relative;*/
/*}*/
/*input[type=date]::-webkit-calendar-picker-indicator {*/
/*    position: absolute;*/
/*    width: 100%;*/
/*    height: 100%;*/
/*}*/

.my-border-color {
    background-color: #366E92;
}

.my-header-color {
    background-color: #366E92;
}

.my-space-color {
    background-color: #DFEEF8;
}

.my-body-background {
    background-color: #7FAECD;
}

.my-text-color {
    color: #366E92;
}

#locked_bill-to-name {
    pointer-events: none;
    background-color: #F0F0F0;
}

#locked_bill-to-name:focus {
    outline: none;
}

.readonly {
    background-color: #F0F0F0 !important;
}


.bg-pine {
    background-color: #34675C !important;
}

.bg-blud-sky {
    background-color: #4CB5F5 !important;
}

.bg-granite {
    background-color: #B7B8B6 !important;
}

.bg-fields {
    background-color: #B3C100 !important;
}

.bg-mist {
    background-color: #7DA3A1 !important;
}

.bg-blue-pine {
    background-color: #324851 !important;
}

.bg-wave {
    background-color: #66A5AD !important;
}

.bg-rain {
    background-color: #2C7873 !important;
}

.bg-hot-pink {
    background-color: #F52549 !important;
}

.bg-slate {
    background-color: #626D71 !important;
}

.bg-tomato {
    background-color: #CF3721 !important;
}

.bg-seaform {
    background-color: #C4DFE6 !important;
}

.bg-cadet-blue {
    background-color: #004445 !important;
}

.bg-reflection {
    background-color: #34675C !important;
}

.bg-glacier {
    background-color: #1995AD !important;
}

.bg-warm-grey {
    background-color: #BCBABE !important;
}

.bg-lavender-gray {
    background-color: #9A9EAB !important;
}

.bg-sky {
    background-color: #75B1A9 !important;
}

.bg-indigo {
    background-color: #2D4262 !important;
}

.bg-blue-gray {
    background-color: #607D8B !important;
}

.bg-blue-gray-light {
    background-color: #CFD8DC !important;
}

.bg-plants {
    background-color: #5C821A !important;
}

.bg-pieacock-blue {
    background-color: #1E656D !important;
}

.bg-ceramic {
    background-color: #CDCDC0 !important;
}

.bg-indigo-ink {
    background-color: #283655 !important;
}

.bg-midnight-blue {
    background-color: #1E1F26 !important;
}

.bg-blueberry {
    background-color: #4D648D !important;
}
.bg-yale-blue {
    background-color: #0D3B66 !important;
}
.text-yale-blue {
    color: #0D3B66 !important;
}
.bg-lemon-chiffon {
    background-color: #FAF0CA !important;
}
.text-lemon-chiffon {
    color: #FAF0CA !important;
}

.bg-cyprus {
    background-color: #004643 !important;
}
.text-cyprus {
    color: #004643 !important;
}
.bg-sand-dune {
    background-color: #F0EDE5 !important;
}
.text-sand-dune {
    color: #F0EDE5 !important;
}

.bg-reservable {
    background-color: #9CA3AF !important;
}
.bg-authorized {
    background-color: #DBEAFE !important;
}
.bg-before-authorization {
    background-color: #94A3B8 !important;
}
.text-before-authorization {
    color: #1D4ED8 !important;
}
.bg-captured {
    background-color: #2CA66A !important;
}


/* ==========================================================================
   Reservation Search Form (scoped via form action attribute)
   ---
   業務アプリ調: ニュートラルグレー基調 + アクセント深青を1トーンのみ
   Palette:
     text:      #111827 / #4B5563 / #6B7280 / #9CA3AF
     border:    #E5E7EB / #D1D5DB
     surface:   #FFFFFF / #F9FAFB / #F3F4F6
     accent:    #1E40AF (primary) / #1E3A8A (hover) / #60A5FA (focus)
     radius:    0.375rem
   ========================================================================== */

form[action*="reservation/search"] .form-control,
form[action*="reservation/search"] .form-select {
    border: 1px solid #D1D5DB;
    border-radius: 0.375rem;
    color: #111827;
    background-color: #FFFFFF;
    box-shadow: none;
}

form[action*="reservation/search"] .form-control:hover,
form[action*="reservation/search"] .form-select:hover {
    border-color: #9CA3AF;
}

form[action*="reservation/search"] .form-control:focus,
form[action*="reservation/search"] .form-select:focus {
    border-color: #1E40AF;
    background-color: #FFFFFF;
    box-shadow: none;
    outline: none;
}

form[action*="reservation/search"] .form-control:focus-visible,
form[action*="reservation/search"] .form-select:focus-visible {
    outline: 2px solid #60A5FA;
    outline-offset: 1px;
}

form[action*="reservation/search"] .btn.btn-outline-dark[data-counter] {
    color: #4B5563;
    background-color: #FFFFFF;
    border-color: #D1D5DB;
    border-radius: 0.375rem;
    box-shadow: none;
}

form[action*="reservation/search"] .btn.btn-outline-dark[data-counter]:hover {
    color: #111827;
    background-color: #F3F4F6;
    border-color: #9CA3AF;
}

form[action*="reservation/search"] .btn.btn-outline-dark[data-counter]:focus {
    color: #111827;
    background-color: #F3F4F6;
    border-color: #9CA3AF;
    box-shadow: none;
}

form[action*="reservation/search"] .btn.btn-outline-dark[data-counter]:focus-visible {
    outline: 2px solid #60A5FA;
    outline-offset: 2px;
}

form[action*="reservation/search"] .btn.btn-outline-dark[data-counter]:active {
    color: #111827;
    background-color: #E5E7EB;
    border-color: #9CA3AF;
}

form[action*="reservation/search"] .form-check-input {
    border-color: #D1D5DB;
    box-shadow: none;
}

form[action*="reservation/search"] .form-check-input:focus {
    box-shadow: none;
    border-color: #1E40AF;
}

form[action*="reservation/search"] .form-check-input:focus-visible {
    outline: 2px solid #60A5FA;
    outline-offset: 2px;
}

form[action*="reservation/search"] .form-check-input:checked {
    background-color: #1E40AF;
    border-color: #1E40AF;
}

form[action*="reservation/search"] .btn.btn-primary {
    color: #FFFFFF;
    background-color: #1E40AF;
    border-color: #1E40AF;
    border-radius: 0.375rem;
    box-shadow: none;
}

form[action*="reservation/search"] .btn.btn-primary:hover,
form[action*="reservation/search"] .btn.btn-primary:focus {
    color: #FFFFFF;
    background-color: #1E3A8A;
    border-color: #1E3A8A;
    box-shadow: none;
}

form[action*="reservation/search"] .btn.btn-primary:focus-visible {
    outline: 2px solid #60A5FA;
    outline-offset: 2px;
}

form[action*="reservation/search"] .btn.btn-primary:active {
    color: #FFFFFF;
    background-color: #172554;
    border-color: #172554;
    box-shadow: none;
}

form[action*="reservation/search"] .border-bottom {
    border-bottom-color: #E5E7EB !important;
}

/* ==========================================================================
   Reservation Search Results
   ---
   業務アプリ調の継続: テーブル/カードはほぼ無彩色、アクセントは CTA のみ
   ========================================================================== */

.reservation-search h5 {
    color: #111827;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
}

/* --- Stay Conditions Table --- */

.reservation-search .table.table-bordered {
    --bs-table-striped-bg: #F9FAFB;
    --bs-table-striped-color: #374151;
    --bs-table-border-color: #E5E7EB;
    --bs-table-color: #374151;
    --bs-table-bg: #FFFFFF;
    border: 1px solid #D1D5DB;
    font-size: 0.88rem;
}

.reservation-search .table.table-bordered thead th {
    background-color: #F3F4F6;
    color: #374151;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-color: #D1D5DB;
    vertical-align: middle;
    white-space: nowrap;
}

.reservation-search .table.table-bordered tbody td {
    color: #374151;
    border-color: #E5E7EB;
    vertical-align: middle;
}

/* --- Room Card --- */

.reservation-search .card.mb-3 {
    border: 1px solid #D1D5DB;
    border-radius: 0.375rem;
    overflow: hidden;
    box-shadow: none;
}

.reservation-search .card-title {
    color: #111827;
    font-weight: 600;
    font-size: 1.05rem;
    letter-spacing: 0.01em;
}

.reservation-search .card .bg-sky,
.reservation-search .card .bg-dark-subtle {
    background-color: #F3F4F6 !important;
    color: #374151 !important;
    font-weight: 500;
    font-size: 0.88rem;
}

.reservation-search .card .bg-light-subtle {
    background-color: #FFFFFF !important;
    color: #111827 !important;
    font-size: 0.88rem;
}

.reservation-search .card .row.mb-0 > [class*="col-"] {
    border-bottom-color: #E5E7EB !important;
}

.reservation-search .card .border-white {
    border-color: #FFFFFF !important;
}

/* CTA button (scoped override for btn-outline-success) */

.reservation-search .btn.btn-outline-success {
    color: #1E40AF;
    background-color: #FFFFFF;
    border-color: #1E40AF;
    border-radius: 0.375rem;
    font-size: 0.88rem;
    font-weight: 500;
    box-shadow: none;
}

.reservation-search .btn.btn-outline-success:hover,
.reservation-search .btn.btn-outline-success:focus {
    color: #FFFFFF;
    background-color: #1E40AF;
    border-color: #1E40AF;
    box-shadow: none;
}

.reservation-search .btn.btn-outline-success:focus-visible {
    outline: 2px solid #60A5FA;
    outline-offset: 2px;
}

.reservation-search .btn.btn-outline-success:active {
    color: #FFFFFF;
    background-color: #172554;
    border-color: #172554;
    box-shadow: none;
}

/* --- Description blocks (neutralized, no color accent) --- */

.reservation-search .card-text.bg-lemon-chiffon,
.reservation-search .card-text.bg-sand-dune {
    border-radius: 0.375rem;
    color: #374151;
    font-size: 0.88rem;
}

.reservation-search .card-text.bg-lemon-chiffon {
    background-color: #F9FAFB !important;
    border: 1px solid #E5E7EB;
}

.reservation-search .card-text.bg-sand-dune {
    background-color: #F3F4F6 !important;
    border: 1px solid #D1D5DB;
}

/* --- Meta text --- */

.reservation-search .card-text small.text-body-secondary {
    color: #9CA3AF !important;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.bg-super-light {
    background-color: #FCFDFE !important;
}
.border-super-light {
    border-color: #F5F6F7 !important;
}


#terms-agreement-label:hover {
    display: block;
    font-weight: bold;
    text-decoration: underline;
}

#cancel-policy-agreement-label:hover {
    display: block;
    font-weight: bold;
    text-decoration: underline;
}

input {
    letter-spacing: 0.15rem;
}
