
body, h1, h2, h3, h4, h5, h6, p, span, div, pre, table, thead, tbody, tr, td, th, form, button, input, select, textarea, 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;
}

/* ==========================================================================
   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;
}

.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;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left !important;
  text-indent: 0;
}
