@charset "UTF-8";
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 !important;
}

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

label.msg {
  color: #ff0000;
}

label {
  padding: 0.3rem;
}

label.no-clickable:hover {
  /* 何もスタイルを当てない */
}

label.clickable:hover {
  cursor: pointer;
  color: #007bff;
  background-color: #f0f8ff;
  border-radius: 4pt;
  padding: 0.3rem;
}

.strike-through {
  text-decoration: line-through;
}

input[type="radio"], input[type="checkbox"] {
  margin-right: 0.3rem;
}

iframe {
  height: 100%;
  overflow: hidden !important;
}

/* 左カラムメニュー(left.html)は scrolling="no" でスクロールできないため、
   本文が短いページでもメニュー全長(実測約1263px)が見切れない高さを常に確保する */
#leftmenu {
  min-height: 1360px;
}

label.mouse-over:hover {
  background-color: #6cb3ff;
  border-radius: 2pt;
}

.text-white-override:hover {
  color: white !important;
  background-color: #d62434;
}

.text-white-when-mouseover:hover {
  color: white !important;
}

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

#Survey-Header {
  color: #000;
  background-color: #FFF;
  padding-bottom: 0.8rem;
  border-left: 0;
  border-bottom: 2px solid #000;
}

#survey-sub-header {
  border-left: 0;
}


/* ============================================================
   レスポンシブ対応 (追記)
   ・PC表示は変更なし
   ・820px 以下で左メニューをオフキャンバス化＋ハンバーガー表示
   ============================================================ */

/** Claude Codeからの指示 */
#rwd-backdrop {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 9999;
}

#rwd-hamburger {
  display: none;
  position: fixed;
  top: 10px;
  right: 14px;
  z-index: 10001;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #7d2b29;
  border-radius: 6px;
  background-color: #BC0011;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

#rwd-hamburger span,
#rwd-hamburger span::before,
#rwd-hamburger span::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 22px;
  height: 2px;
  background-color: #ffffff;
  transform: translateX(-50%);
  transition: transform .25s ease, background-color .2s ease;
}

#rwd-hamburger span {
  top: 50%;
  margin-top: -1px;
}

#rwd-hamburger span::before {
  top: -7px;
}

#rwd-hamburger span::after {
  top: 7px;
}


@media screen and (max-width: 760px) {
  body {
    overflow-x: hidden;
  }

  /* ヘッダー画像は横幅いっぱい(100vw)・高さ自動(アスペクト比 760:140)なので、
     画像の下端 = 100vw * 140/760。ハンバーガーボタンをそこから10px下に置き、
     画像に被らないようにする。 */
  #rwd-hamburger {
    display: block;
    margin: 0;
    top: calc(100vw * 140 / 760 + 10px);
  }

  body.rwd-nav-open {
    overflow: hidden;
  }

  /* リサイズ中はスライドアニメを止めて「一瞬出て消える」現象を防ぐ */
  body.rwd-resizing div.leftnav {
    transition: none !important;
  }

  body.rwd-nav-open #rwd-backdrop {
    display: block;
  }

  /* 本文を全幅に */
  div.main {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 1ex 12px 0 12px;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  /* ハンバーガーボタンがヘッダー画像のすぐ下に来るため、
     ページタイトル(h1)がその下に隠れないよう余白を空ける。 */
  div.main h1 {
    margin-top: 50px;
  }

  div.main_program {
    float: none;
    width: auto;
    max-width: 100%;
    margin-left: 0;
  }

  /* 左メニューをオフキャンバス化するのは「親ページの .leftnav」だけ。
     .side は left.html(iframe)内の要素で iframe幅(約152px)でも
     このメディアクエリが発火してしまうため、ここでは対象にしない。 */
  div.leftnav {
    position: fixed;
    top: 0;
    left: 0;
    width: 288px;
    max-width: 86vw;
    height: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: #ffffff;
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    z-index: 10000;
    float: none;
    transform: translateX(-100%);
    transition: transform .28s ease;
  }

  body.rwd-nav-open div.leftnav {
    transform: translateX(0);
  }

  div.leftnav iframe#leftmenu {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
  }

  /* iframe内の .side は通常表示のまま(消さない)。パネル幅に合わせて全幅化 */
  div.side {
    float: none;
    width: 100%;
    box-sizing: border-box;
  }

  div.side table.menu {
    width: 100%;
  }

  /* ヘッダー画像を縮小 */
  div.header {
    text-align: center;
  }

  div.header img {
    max-width: 100%;
    height: auto;
  }

  /* 右カラム(スポンサー)を本文下へ */
  div.rightdiv,
  .banners {
    display: block;
    float: none;
    width: 100%;
    max-width: 100%;
    margin: 20px 0;
    box-sizing: border-box;
  }

  iframe#sponsors {
    width: 100% !important;
    max-width: 320px;
  }

  /* 固定幅の表・ブロックを画面幅に収める */
  .bus-table,
  .bus-time,
  .timetable-wrap,
  .date-links,
  .content section,
  .timetable {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  .timetable-wrap {
    overflow-x: auto;
  }

  table.program,
  table.cell,
  table.fee,
  table.member,
  table.access_timetable,
  .price-table,
  .price-table2 {
    max-width: 100%;
  }

  /* 参加費テーブル：5列あるため、狭い画面では詰めた上で表だけを横スクロール */
  .price-table {
    width: max-content;
    min-width: 100%;
    font-size: 11px;
  }

  .price-table th,
  .price-table td {
    padding: 8px 8px;
    white-space: nowrap;
  }

  main img {
    max-width: 100%;
    height: auto;
  }

  main iframe {
    max-width: 100%;
  }
}
