/* LINE Seed JP フォントの読み込み（Google Fonts） */
@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@400;700&display=swap');

/* pavilionコンテナの上部余白（ヘッダーとの重なりを防ぐ） */
#pavilion,
#sponsor,
#conference {
  padding-top: 100px !important;
}

/* バリデーションエラー時のスクロール位置調整（ヘッダーとの重なりを防ぐ） */
#pavilion input,
#pavilion select,
#pavilion textarea,
#sponsor input,
#sponsor select,
#sponsor textarea,
#conference input,
#conference select,
#conference textarea {
  scroll-margin-top: 150px;
}

/* レスポンシブ：上部余白の調整 */
@media screen and (max-width: 768px) {
  #pavilion,
  #sponsor,
  #conference {
    padding-top: 150px;
  }
}

@media screen and (max-width: 480px) {
  #pavilion,
  #sponsor,
  #conference {
    padding-top: 120px;
  }
}

/* ヘッダー：ロゴ以外を非表示（デスクトップ・レスポンシブ共通） */
#headerarea nav,
#headerarea ul,
#headerarea input,
#headerarea label,
#headerarea button,
#headerarea a:not(.logo a) {
  display: none !important;
}

/* ロゴだけは表示 */
#headerarea h1.logo,
#headerarea h1.logo a,
#headerarea h1.logo img {
  display: block !important;
}

/* レスポンシブ時も同様 */
@media screen and (max-width: 768px) {
  #headerarea nav,
  #headerarea ul,
  #headerarea input,
  #headerarea label,
  #headerarea button,
  #headerarea a:not(.logo a) {
    display: none !important;
  }
  
  #headerarea h1.logo,
  #headerarea h1.logo a,
  #headerarea h1.logo img {
    display: block !important;
  }
}

/* サイドバーを非表示 */
ul.appnav,
ul.appnav.nav_right,
ul#nav_right,
.side_list_social,
.nav_right,
aside.side_list_social {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* フッター：プライバシーポリシーより上の部分を非表示 */
aside.side_list_social,
.footer nav.footer_nav {
  display: none !important;
}

/* フォントを各フォームに適用 */
#pavilion,
#pavilion *,
#conference,
#conference *,
#sponsor,
#sponsor * {
  font-family: 'LINE Seed JP', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif !important;
}

/* その他入力欄の背景色 */
.other-input-bg {
  background-color: #f8fafc !important;
}

/* sold outメニューアイテムのスタイル（sponsorフォーム専用） */
#sponsor fieldset div.soldout label .menu-price-wrap {
  display: none !important;
}

/* sold outアイテムを選択不可にする */
#sponsor fieldset div.soldout {
  position: relative;
  background-color: #313131;
  border-radius: 8px;
}

#sponsor fieldset div.soldout label {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

#sponsor fieldset div.soldout input[type="checkbox"] {
  display: none !important;
}

/* SOLD OUT 中央オーバーレイ表示 */
#sponsor fieldset div.soldout::after {
  content: "Sold out";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-weight: bold;
  color: #dc2626;
  font-size: 1.2rem;
  background: rgba(255, 255, 255, 0.95);
  padding: 8px 16px;
  border-radius: 6px;
  border: 2px solid #dc2626;
  z-index: 1000;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* 条件付きその他入力欄の背景色（チェックされていない時） */
#pavilion .conditional-other-input {
  background-color: #f8fafc !important;
}

/* 条件付きその他入力欄の背景色（チェックされている時） */
#pavilion .conditional-other-input.checkbox-checked {
  background-color: #ffffff !important;
}

/* 必須項目の説明文 */
#conference > form .required-note,
#sponsor > form .required-note,
#pavilion .required-note {
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 0.85rem;
  color: #94a3b8;
}

#conference > form .required-note span[aria-label="必須"],
#sponsor > form .required-note span[aria-label="必須"],
#conference > form h2 span[aria-label="必須"],
#sponsor > form h2 span[aria-label="必須"],
#conference > form .venue-section-title span[aria-label="必須"],
#conference > form .required-note span[aria-label="Required"],
#sponsor > form .required-note span[aria-label="Required"],
#conference > form h2 span[aria-label="Required"],
#sponsor > form h2 span[aria-label="Required"],
#conference > form .venue-section-title span[aria-label="Required"],
p.required-note span {
  color: #dc2626;
}

#conference > form .required-note + h2,
#sponsor > form .required-note + h2 {
  margin-top: 8px !important;
}

#conference > form #application-info .required-note + fieldset,
#sponsor > form #application-info .required-note + fieldset {
  margin-top: 0;
}


/*



div#under-contents {
  min-height: 245px;
}





/****** プルダウン ******/
/* 250124追加 */
select {
  margin-right: 0.5em;
  padding: 7.5px 10px;
  border: 1px solid #cccccc;
  border-radius: 2px;
  box-sizing: border-box;
  appearance: none;
  font-size: 1rem;
  line-height: 1.5;
  background: #fff url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path d="M0 0l5 6 5-6z" fill="%23000000"/></svg>') no-repeat right 10px center;
  background-size: 10px 6px;
  cursor: pointer;
}


/*------------------------------------------------
メディアスクリーン
------------------------------------------------/
/*************************************************
スマホ対応
*************************************************/
@media screen and (max-width: 400px) {
}

/*************************************************
プロモーションメニュー 申込フォーム
*************************************************/

/* フォーム全体のコンテナ */
#sponsor {
  padding: 24px;
}

#sponsor > form {
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  padding: 32px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  font-size: 1rem;
  line-height: 1.5;
}

/* ヘッダー */
#sponsor > form > header {
  margin-bottom: 32px;
  text-align: left;
}

#sponsor > form > header h1 {
  font-size: 1.75rem;
  margin: 0 0 8px 0;
  color: #0f172a;
  font-weight: 700;
}

/* セクション */
#sponsor > form > section {
  margin-bottom: 32px;
}

#sponsor > form > section h2 {
  font-size: 1.25rem;
  margin: 32px 0 16px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #2563eb;
  color: #0f172a;
  font-weight: 700;
}

#sponsor > form > section h3 {
  font-size: 1.1rem;
  margin: 24px 0 12px 0;
  color: #334155;
  font-weight: 700;
}

/* フィールドセット */
#sponsor > form fieldset {
  margin: 24px 0;
  padding: 0;
  border: none;
  background-color: transparent;
}

#sponsor > form fieldset legend {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  padding: 0;
  margin-bottom: 6px;
  text-align: left;
}

#sponsor > form fieldset legend::before {
  content: "■";
  color: #334155;
  margin-right: 5px;
}

/* 期間情報 */
#sponsor > form fieldset p {
  background: #f1f5f9;
  padding: 12px 16px;
  border-radius: 6px;
  margin-bottom: 8px;
  font-size: 0.9rem;
  color: #475569;
  text-align: left;
}

#sponsor > form fieldset p time {
  font-weight: 700;
}

/* 説明文（該当するものすべてをチェック等） */
#sponsor > form fieldset p.instruction {
  margin-bottom: 8px;
  color: #64748b;
  background: transparent;
  padding: 0;
  font-size: 0.85rem;
}

/* プロモーションメニューグリッドレイアウト（屋外広告メニュー用 - 4列） */
#sponsor > form #menu-selection fieldset:has([data-number]) {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

#sponsor > form #menu-selection fieldset:has([data-number]) legend,
#sponsor > form #menu-selection fieldset:has([data-number]) > p,
#sponsor > form #menu-selection fieldset:has([data-number]) > figure {
  grid-column: 1 / -1;
}

#sponsor > form #menu-selection fieldset:has([data-number]) > figure {
  margin: 0 0 16px 0;
}

#sponsor > form #menu-selection fieldset:has([data-number]) > figure > img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

/* 屋外広告メニューアイテムスタイル */
#sponsor > form #menu-selection fieldset:has([data-number]) > div {
  margin: 0;
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  transition: all 0.1s ease-out;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  height: 100%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label:hover {
  border-color: #2563eb;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label:has(input[type="checkbox"]:checked) {
  border-color: #2563eb;
  border-width: 2px;
  background: #f0f9ff;
  box-shadow: none;
}

/* メニュー見出し画像 */
#sponsor > form #menu-selection fieldset > img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 16px;
  border-radius: 6px;
}

/* 画像プレースホルダーエリア */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label::before {
  content: "";
  display: block;
  width: 100%;
  height: 120px;
  background: #f1f5f9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

/* 各メニューの画像 */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="1"]::before {
  background-image: url('/ja/application/application-form/images/spo_num1.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="2"]::before {
  background-image: url('/ja/application/application-form/images/spo_num2.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="3"]::before {
  background-image: url('/ja/application/application-form/images/spo_num3.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="4"]::before {
  background-image: url('/ja/application/application-form/images/spo_num4.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="5"]::before {
  background-image: url('/ja/application/application-form/images/spo_num5.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="6"]::before {
  background-image: url('/ja/application/application-form/images/spo_num6.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="7"]::before {
  background-image: url('/ja/application/application-form/images/spo_num7.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="8"]::before {
  background-image: url('/ja/application/application-form/images/spo_num8.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="9"]::before {
  background-image: url('/ja/application/application-form/images/spo_num9.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="10"]::before {
  background-image: url('/ja/application/application-form/images/spo_num10.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="11"]::before {
  background-image: url('/ja/application/application-form/images/spo_num11.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="12"]::before {
  background-image: url('/ja/application/application-form/images/spo_num12.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="13"]::before {
  background-image: url('/ja/application/application-form/images/spo_num13.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="14"]::before {
  background-image: url('/ja/application/application-form/images/spo_num14.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="15"]::before {
  background-image: url('/ja/application/application-form/images/spo_num15.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="16"]::before,
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="17"]::before,
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="18"]::before,
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="19"]::before {
  background-image: url('/ja/application/application-form/images/spo_num16.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="20"]::before {
  background-image: url('/ja/application/application-form/images/spo_num20.webp');
}

#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number="21"]::before {
  background-image: url('/ja/application/application-form/images/spo_num21.webp');
}

/* 番号の円（左上、data-number属性から取得） */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label[data-number]::after {
  content: attr(data-number);
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(37, 99, 235, 0.95);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  z-index: 10;
  border: 2px solid #fff;
  line-height: 1;
}

/* チェックボックス */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label > input[type="checkbox"] {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  z-index: 11;
  margin: 0;
  cursor: pointer;
}

/* メニュー名 */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label .menu-name {
  display: block;
  padding: 12px 12px 4px;
  color: #0f172a;
  font-size: 0.85rem;
  line-height: 1.4;
}

/* 価格ラッパー */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label .menu-price-wrap {
  display: block;
  padding: 0 12px 12px;
}

/* 価格 */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label .menu-price {
  font-weight: 600;
  color: #2563eb;
  font-size: 0.9rem;
}

/* 消費税込 */
#sponsor > form #menu-selection fieldset:has([data-number]) > div > label .menu-tax {
  font-size: 0.8rem;
  color: #64748b;
  margin-left: 4px;
}

/* メールマガジン広告グリッドレイアウト（4列） */
#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) legend,
#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > p {
  grid-column: 1 / -1;
}

/* メールマガジン広告アイテムスタイル */
#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > div {
  margin: 0;
}

#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > div > label {
  display: flex;
  align-items: center;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  transition: all 0.1s ease-out;
  cursor: pointer;
  margin: 0;
  font-size: 0.9rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > div > label:hover {
  background: #f8fafc;
  border-color: #2563eb;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}

#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > div > label:has(input:checked) {
  border-color: #2563eb;
  border-width: 2px;
  background: #f0f9ff;
  box-shadow: none;
}

#sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) > div > label input[type="checkbox"] {
  margin-right: 8px;
  width: 24px;
  height: 24px;
  cursor: pointer;
  flex-shrink: 0;
}

/* 通常のチェックボックスグループ（ご案内状紙面広告など） */
#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])):not(.with-image) > div {
  margin: 8px 0;
}

/* 画像付きfieldset（WEBサイトバナー広告など） */
#sponsor > form #menu-selection fieldset.with-image .content-with-image {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list {
  flex: 0.4;
  gap: 12px;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div {
  margin: 8px 0;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label {
  display: flex;
  align-items: center;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  transition: all 0.1s ease-out;
  cursor: pointer;
  margin: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label:hover {
  background: #f8fafc;
  border-color: #2563eb;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label:has(input:checked) {
  border-color: #2563eb;
  border-width: 2px;
  background: #f0f9ff;
  box-shadow: none;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label input[type="checkbox"] {
  margin-right: 10px;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  cursor: pointer;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label .menu-name {
  flex: 1;
  color: #0f172a;
  font-size: 0.9rem;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label .menu-price-wrap {
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label .menu-price {
  font-weight: 600;
  color: #2563eb;
}

#sponsor > form #menu-selection fieldset.with-image .checkbox-list > div > label .menu-tax {
  font-size: 0.8rem;
  color: #64748b;
  margin-left: 4px;
}

#sponsor > form #menu-selection fieldset.with-image .side-image {
  flex: 1;
  margin: 0 auto;
  width: 60%;
  max-width: 500px;
}

#sponsor > form #menu-selection fieldset.with-image .side-image img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  cursor: zoom-in;
}

#sponsor > form #menu-selection fieldset.with-image .side-image .image-hint {
  font-size: 0.8rem;
  color: #64748b;
  text-align: center;
  margin-top: 8px;
}

/* 通常のチェックボックスアイテム */
#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  transition: all 0.1s ease-out;
  cursor: pointer;
  margin: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-name {
  flex: 1;
  min-width: 150px;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-price-wrap {
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-price {
  font-weight: 600;
  color: #2563eb;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label:hover {
  background: #f8fafc;
  border-color: #2563eb;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label:has(input:checked) {
  border-color: #2563eb;
  border-width: 2px;
  background: #f0f9ff;
  box-shadow: none;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label input[type="checkbox"] {
  margin-right: 10px;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  cursor: pointer;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-name {
  color: #0f172a;
  font-size: 0.9rem;
  line-height: 1.4;
  margin-right: 8px;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-price {
  font-weight: 600;
  color: #2563eb;
  font-size: 0.95rem;
}

#sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-tax {
  font-size: 0.8rem;
  color: #64748b;
  margin-left: 4px;
}


/* 合計金額フィールドセット */
#sponsor > form fieldset:has(#total_amount) {
  background: #f1f5f9;
  padding: 20px;
  border-radius: 8px;
  margin: 24px 0;
  text-align: right;
}

#sponsor > form fieldset:has(#total_amount) legend {
  display: inline-block;
  margin: 0 12px 0 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  padding: 0;
}

#sponsor > form fieldset:has(#total_amount) legend::before {
  content: "■";
  color: #334155;
  margin-right: 5px;
}

#sponsor > form fieldset:has(#total_amount) #total_amount {
  display: inline-block;
  width: auto;
  min-width: 200px;
  text-align: right;
  font-size: 1.2rem;
  font-weight: 700;
  color: #2563eb;
  background: #fff;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  padding: 10px;
  margin: 0;
}

/* 備考欄 */
#sponsor > form fieldset.remarks-fieldset {
  background-color: transparent;
  border: none;
  padding: 0;
  margin: 24px 0;
}

#sponsor > form fieldset.remarks-fieldset legend {
  margin-bottom: 12px;
}

#sponsor > form fieldset.remarks-fieldset legend::before {
  content: "■";
  color: #334155;
  margin-right: 5px;
}

#sponsor > form fieldset.remarks-fieldset textarea {
  width: 100%;
  margin: 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 12px;
}

/* 合計金額セクション */
#sponsor > form .total-amount-section {
  background: #f1f5f9;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
  z-index: 100;
  padding: 16px 24px;
}

#sponsor > form .total-amount-section .total-inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 16px;
  max-width: 1200px;
  margin: 0 auto;
}

#sponsor > form .total-amount-section .total-label {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
}

#sponsor > form .total-amount-section #total_amount {
  width: auto;
  min-width: 180px;
  text-align: right;
  font-size: 1.3rem;
  font-weight: 700;
  color: #2563eb;
  background: #fff;
  border: 2px solid #2563eb;
  border-radius: 6px;
  padding: 12px 16px;
  margin: 0;
}

/* 入力フォームセクション */
#sponsor > form #application-info {
  margin-top: 32px;
}



#sponsor > form #application-info fieldset {
  margin: 24px 0;
  padding: 0;
  border: none;
}

#sponsor > form #application-info fieldset legend {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  margin-bottom: 12px;
}

#sponsor > form #application-info fieldset legend::before {
  content: "■";
  color: #334155;
  margin-right: 5px;
}

/* 入力フィールドのレイアウト */
#sponsor > form #application-info fieldset > div {
  margin: 16px 0;
  display: flex;
  flex-direction: column;
}

/* 2列レイアウト（担当者情報など） */
#sponsor > form #application-info .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

#sponsor > form #application-info fieldset > div > label,
#sponsor > form #exhibitor-info fieldset > div > label {
  display: block;
  font-weight: 600;
  color: #334155;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

#sponsor > form #application-info fieldset > div > label > input,
#sponsor > form #exhibitor-info fieldset > div > label > input {
  display: block;
  margin-top: 6px;
}

#sponsor > form #application-info fieldset > div > label.required::after,
#sponsor > form #exhibitor-info fieldset > div > label.required::after {
  content: ' *';
  color: #dc2626;
}

#sponsor > form #application-info fieldset > div > label > span[aria-label="必須"],
#sponsor > form #exhibitor-info fieldset > div > label > span[aria-label="必須"],
#sponsor > form span[aria-label="必須"],
#sponsor > form #application-info fieldset > div > label > span[aria-label="Required"],
#sponsor > form #exhibitor-info fieldset > div > label > span[aria-label="Required"],
#sponsor > form span[aria-label="Required"],
#conference > form #application-info fieldset > div > label > span[aria-label="Required"],
#conference > form span[aria-label="Required"] {
  color: #dc2626;
  margin-left: 4px;
}

/* 入力フィールド */
#sponsor > form input[type="text"],
#sponsor > form input[type="email"],
#sponsor > form input[type="tel"],
#sponsor > form input[type="number"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
}

#sponsor > form input:focus,
#sponsor > form textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

#sponsor > form input[type="number"] {
  text-align: right;
}

#sponsor > form input[readonly] {
  background-color: #f5f5f5;
  cursor: not-allowed;
}

/* テキストエリア */
#sponsor > form textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  min-height: 80px;
  resize: vertical;
  box-sizing: border-box;
  background-color: #fff;
}

/* 請求先情報セクション */
#sponsor > form #application-info fieldset:last-of-type {
  background-color: #fff;
  padding-top: 24px;
  margin-top: 24px;
}

/* 申込責任者セクション */
#sponsor > form #representative-info fieldset {
  margin: 24px 0;
  padding: 0;
  border: none;
}

#sponsor > form #representative-info fieldset > div {
  margin: 16px 0;
}

#sponsor > form #representative-info fieldset > div > label {
  display: block;
  font-weight: 600;
  color: #334155;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

#sponsor > form #representative-info fieldset > div > label > input[type="text"] {
  display: block;
  margin-top: 6px;
}

#sponsor > form #representative-info fieldset > div > label > span[aria-label="必須"],
#sponsor > form #representative-info fieldset > div > label > span[aria-label="Required"] {
  color: #dc2626;
  margin-left: 4px;
}

/* 補足情報 */
#sponsor > form aside {
  margin: 16px 0;
  padding: 16px;
  background-color: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.9rem;
  color: #475569;
}

/* 変更取消についてセクション */
#sponsor > form #cancellation-policy {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  padding: 16px;
  border-radius: 6px;
  margin: 16px 0;
}

#sponsor > form #cancellation-policy h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #78350f;
  margin: 0 0 12px 0;
}

#sponsor > form #cancellation-policy h3::before {
  content: "■";
  color: #78350f;
  margin-right: 5px;
}

#sponsor > form #cancellation-policy p {
  margin: 0 0 12px 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: #78350f;
}

#sponsor > form #cancellation-policy time {
  font-weight: 700;
  color: #78350f;
}

#sponsor > form #cancellation-policy label {
  display: flex;
  align-items: flex-start;
  margin: 0;
  cursor: pointer;
  font-weight: normal;
}

#sponsor > form #cancellation-policy input[type="checkbox"] {
  margin: 4px 8px 0 0;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}

/* 送信ボタン */
#sponsor > form > div:last-of-type {
  text-align: center;
  margin: 32px 0 0;
  padding-top: 0;
  padding-bottom: 80px; /* 固定の合計金額バーの分のスペース */
}


/* エラー状態 */
#sponsor > form div.error input,
#sponsor > form div.error textarea,
#sponsor > form div.error select {
  background-color: #ffe1e0;
  border: 1px solid #c58584;
}

#sponsor > form span.err_txt {
  display: block;
  font-size: 0.9em;
  color: #c31311;
  margin-top: 5px;
}

/* レスポンシブ対応 */
@media screen and (max-width: 1024px) {
  #sponsor > form #menu-selection fieldset:has([data-number]),
  #sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media screen and (max-width: 768px) {
  #sponsor {
    padding: 1.5rem;
  }

  #sponsor > form {
    padding: 2rem 1.5rem;
  }

  #sponsor > form #menu-selection fieldset:has([data-number]),
  #sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) {
    grid-template-columns: repeat(2, 1fr);
  }

  #sponsor > form #application-info .form-row {
    grid-template-columns: 1fr;
  }

  /* 画像付きfieldset - 768px以下で縦並び */
  #sponsor > form #menu-selection fieldset.with-image .content-with-image {
    flex-direction: column;
    gap: 5px;
  }

  #sponsor > form #menu-selection fieldset.with-image .checkbox-list {
    max-width: 100%;
    width: 100%;
  }

  #sponsor > form #menu-selection fieldset.with-image .side-image {
    order: -1;
    max-width: 160px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 英語ページ専用：960px以下で縦並び */
@media screen and (max-width: 960px) {
  .en-page#sponsor > form #menu-selection fieldset.with-image .content-with-image {
    flex-direction: column;
    gap: 5px;
  }

  .en-page#sponsor > form #menu-selection fieldset.with-image .checkbox-list {
    max-width: 100%;
    width: 100%;
  }

  .en-page#sponsor > form #menu-selection fieldset.with-image .side-image {
    order: -1;
    max-width: 160px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media screen and (max-width: 480px) {
  #sponsor > form #menu-selection fieldset:has([data-number]),
  #sponsor > form #menu-selection fieldset:has([name="email_magazine[]"]) {
    grid-template-columns: 1fr;
  }

  /* 価格を縦並びに */
  #sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label {
    flex-direction: column;
    align-items: flex-start;
  }

  #sponsor > form #menu-selection fieldset:not(:has([data-number])):not(:has([name="email_magazine[]"])) > div > label .menu-price-wrap {
    margin-left: 0;
    margin-top: 4px;
  }

  /* 合計金額バー */
  #sponsor > form .total-amount-section {
    padding: 12px 16px;
  }

  #sponsor > form .total-amount-section .total-inner {
    flex-direction: column;
    gap: 8px;
  }

  #sponsor > form .total-amount-section #total_amount {
    min-width: 150px;
    font-size: 1.1rem;
  }
}

/* ご案内状紙面広告などの単体画像のレスポンシブ対応 */
#sponsor > form #menu-selection fieldset > figure.zoomable {
  margin: 0 0 16px 0;
  text-align: center;
  margin: 0 auto;
}

#sponsor > form #menu-selection fieldset > figure.zoomable img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  cursor: zoom-in;
  max-width: 800px;
}

@media screen and (max-width: 768px) {
  #sponsor > form #menu-selection fieldset > figure.zoomable img {
    max-width: 80%;
  }
}

@media screen and (max-width: 480px) {
  #sponsor > form #menu-selection fieldset > figure.zoomable img {
    max-width: 100%;
  }
}

/*************************************************
CEATEC 2026 コンファレンス登壇申込書
*************************************************/

/* フォーム全体のコンテナ */
#conference {
  padding: 24px;
}

#conference > form {
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  padding: 32px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  font-size: 1rem;
  line-height: 1.5;
}

/* ヘッダー */
#conference > form > header {
  margin-bottom: 32px;
  text-align: left;
}

#conference > form > header h1 {
  font-size: 1.75rem;
  margin: 0 0 8px 0;
  color: #0f172a;
  font-weight: 700;
}

#conference > form > header p {
  margin: 0;
  font-size: 0.9rem;
  color: #475569;
}

#conference > form > header a,
#conference > form fieldset .legend-note a,
#conference > form fieldset p a,
#conference > form .agreement-section a {
  color: #2563eb;
  text-decoration: none;
}

#conference > form > header a:hover,
#conference > form fieldset .legend-note a:hover,
#conference > form fieldset p a:hover,
#conference > form .agreement-section a:hover {
  text-decoration: underline;
}

/* セクション */
#conference > form > section {
  margin-bottom: 32px;
}



/* フィールドセット */
#conference > form fieldset {
  margin: 24px 0;
  padding: 0;
  border: none;
  background-color: transparent;
}

#conference > form fieldset legend {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  padding: 0;
  margin-bottom: 5px;
  text-align: left;
}

#conference > form fieldset legend.legend-with-icon::before {
  content: "■";
  color: #334155;
  margin-right: 5px;
}

#conference > form fieldset .legend-note {
  display: block;
  font-weight: normal;
  margin-top: 2px;
  margin-bottom: 12px;
  color: #475569;
  font-size: 0.9rem;
}

/* 注意事項（aside.notice） */
#conference > form aside.notice {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  padding: 16px 20px;
  border-radius: 6px;
  margin: 16px 0;
}

#conference > form aside.notice h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #78350f;
  margin: 0 0 12px 0;
}

#conference > form aside.notice ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#conference > form aside.notice li {
  font-size: 0.9rem;
  color: #78350f;
  line-height: 1.6;
  margin-bottom: 4px;
  padding-left: 1em;
  text-indent: -1em;
}

/* 期間情報 */
#conference > form > section > p,
#conference > form fieldset p {
  background: #f1f5f9;
  padding: 12px 16px;
  border-radius: 6px;
  margin-bottom: 16px;
  font-size: 0.9rem;
  color: #475569;
  text-align: left;
}

#conference > form > section > p time,
#conference > form fieldset p time {
  font-weight: 700;
}

/* 出展者確認セクションの説明文 */
#conference > form #exhibitor-check > p {
  background: transparent;
  padding: 0;
  margin-bottom: 12px;
  color: #334155;
}

/* ラジオボタン・チェックボックスの基本スタイル */
#conference > form #exhibitor-check fieldset > div {
  margin: 8px 0;
}

#conference > form #exhibitor-check fieldset > div > label {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: all 0.2s;
  margin: 0;
  font-size: 0.95rem;
}

#conference > form #exhibitor-check fieldset > div > label:hover {
  background: #f8fafc;
  border-color: #2563eb;
}

#conference > form #exhibitor-check fieldset > div > label input[type="radio"],
#conference > form #exhibitor-check fieldset > div > label input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  margin-right: 10px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
  border: 2px solid #d1d5db;
  border-radius: 50%;
  background-color: #fff;
  position: relative;
  transition: all 0.2s;
}

#conference > form #exhibitor-check fieldset > div > label input[type="radio"]:checked,
#conference > form #exhibitor-check fieldset > div > label input[type="checkbox"]:checked {
  border-color: #2563eb;
  background-color: #2563eb;
  box-shadow: inset 0 0 0 3px #fff;
}


/* 入力フィールド */
#conference > form input[type="text"],
#conference > form input[type="email"],
#conference > form input[type="tel"],
#conference > form input[type="number"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
}

#conference > form input,
#conference > form textarea,
#conference > form select {
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#conference > form input:focus,
#conference > form textarea:focus,
#conference > form select:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* 申込情報セクションの入力フィールド */
#conference > form #application-info fieldset {
  margin: 24px 0;
}

#conference > form #application-info fieldset > div {
  margin: 16px 0;
}

#conference > form #application-info fieldset > div > label {
  display: block;
  font-weight: 600;
  color: #334155;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

#conference > form #application-info fieldset > div > label > span[aria-label="必須"],
#conference > form #representative-info .input-group > div > label > span[aria-label="必須"],
#conference > form .agreement-section span[aria-label="必須"],
#conference > form #representative-info .input-group > div > label > span[aria-label="Required"],
#conference > form .agreement-section span[aria-label="Required"] {
  color: #dc2626;
  margin-left: 4px;
}

#conference > form #application-info fieldset > div > label > input {
  display: block;
  margin-top: 6px;
}

/* 登壇申込責任者セクション */
#conference > form #representative-info .input-group {
  margin: 24px 0;
}

#conference > form #representative-info .input-group > div {
  margin: 16px 0;
}

#conference > form #representative-info .input-group > div > label {
  display: block;
  font-weight: 600;
  color: #334155;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

#conference > form #representative-info .input-group > div > label > input[type="text"] {
  display: block;
  margin-top: 6px;
}

/* キャンセルポリシー */
#conference > form #cancellation-policy {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  padding: 16px;
  border-radius: 6px;
  margin: 16px 0;
}

#conference > form #cancellation-policy h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #78350f;
  margin: 0 0 12px 0;
}

#conference > form #cancellation-policy p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: #78350f;
  background: transparent;
  padding: 0;
}

#conference > form #cancellation-policy time {
  font-weight: 700;
  color: #78350f;
}


/* 送信ボタン */
#conference > form > div:last-of-type {
  text-align: center;
  margin: 32px 0 0;
  padding-top: 0;
}


/* エラー状態 */
#conference > form div.error input,
#conference > form div.error textarea,
#conference > form div.error select {
  background-color: #ffe1e0;
  border: 1px solid #c58584;
}

#conference > form span.err_txt {
  display: block;
  font-size: 0.9em;
  color: #c31311;
  margin-top: 5px;
}

/* レスポンシブ対応 */

/* 申し込み数テーブルを1020px以下でカード形式に */
@media screen and (max-width: 1020px) {
  #conference > form .venue-table {
    display: block;
    margin-top: 0;
  }

  #conference > form .venue-table thead {
    display: none;
  }

  #conference > form .venue-table tbody {
    display: block;
  }

  #conference > form .venue-table td {
    display: block;
    padding: 10px 0;
    border: none;
  }

  #conference > form .venue-table td:first-child {
    padding-top: 0;
  }

  #conference > form .venue-table td:last-child {
    padding-bottom: 0;
  }

  /* ラベルを表示 */
  #conference > form .venue-table td[data-label]::before {
    content: attr(data-label);
    font-weight: 600;
    color: #334155;
    display: block;
    margin-bottom: 6px;
    font-size: 0.85rem;
  }

  #conference > form .venue-table select,
  #conference > form .venue-table input[type="text"] {
    width: 100%;
    font-size: 0.9rem;
    padding: 10px;
  }

  /* 日付・時間セレクト */
  #conference > form .venue-table select[name^="venue_date_"],
  #conference > form .venue-table select[name^="venue_time_"] {
    font-size: 0.9rem;
    min-width: auto;
  }
}

@media screen and (max-width: 768px) {
  #conference {
    padding: 16px;
  }

  #conference > form {
    padding: 24px 16px;
  }

  #conference > form input,
  #conference > form textarea,
  #conference > form select {
    transition: none;
  }
}

/* ポリシーセクション */
#conference > form #policy-section {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 24px;
  margin: 24px 0;
}

#conference > form #policy-section h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #2563eb;
}

#conference > form #policy-section iframe {
  width: 100%;
  height: 300px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin-top: 16px;
  display: block;
}

@media screen and (max-width: 768px) {
  #conference > form #policy-section iframe {
    height: 250px;
  }
}

@media screen and (max-width: 600px) {
  #conference > form #policy-section iframe {
    height: 225px;
  }
}

/* 備考欄 */
#conference > form .remarks-fieldset {
  margin: 24px 0;
  padding: 0;
  border: none;
}

#conference > form .remarks-fieldset legend {
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
  margin-bottom: 8px;
}

#conference > form .remarks-fieldset textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 1rem;
  font-family: inherit;
  resize: vertical;
  min-height: 100px;
  box-sizing: border-box;
}

#conference > form .remarks-fieldset textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* 申し込み数カード */
#conference > form .venue-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 16px 20px;
  margin: 16px 0;
}

/* 申し込み数セクションタイトル */
#conference > form .venue-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
  margin: 0 0 12px 0;
  padding: 0;
  background: transparent;
}

/* ラジオボタンテーブル */
#conference > form .venue-radio-table td.radio-cell {
  vertical-align: top;
  padding: 12px;
  border-left: 1px solid #e2e8f0;
}

#conference > form .venue-radio-table td.radio-cell:first-child {
  border-left: none;
}

/* テーブルレイアウト固定で列幅を揃える */
#conference > form .venue-radio-table {
  table-layout: fixed;
}

#conference > form .venue-radio-table th:nth-child(1) {
  width: 30%;
}

#conference > form .venue-radio-table th:nth-child(2) {
  width: 18%;
}

#conference > form .venue-radio-table th:nth-child(3) {
  width: 10%;
}

#conference > form .venue-radio-table th:nth-child(4) {
  width: 15%;
}

#conference > form .venue-radio-table th:nth-child(5) {
  width: 27%;
}

/* 英語版のみ：Preferred Time列を広げ、Total Amount列を狭める */
#conference.en-page > form .venue-radio-table th:nth-child(3) {
  width: 15%;
}

#conference.en-page > form .venue-radio-table th:nth-child(5) {
  width: 22%;
}

#conference > form .venue-radio-table td.radio-cell label {
  display: flex;
  align-items: center;
  font-size: 0.85rem;
  color: #334155;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 4px;
  transition: background 0.2s;
  margin: 0 0 4px 0;
}

#conference > form .venue-radio-table td.radio-cell label:last-child {
  margin-bottom: 0;
}

#conference > form .venue-radio-table td.radio-cell label:hover {
  background: #f1f5f9;
}

#conference > form .venue-radio-table td.radio-cell input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  margin-right: 8px;
  width: 18px;
  height: 18px;
  cursor: pointer;
  flex-shrink: 0;
  border: 2px solid #d1d5db;
  border-radius: 50%;
  background-color: #fff;
  position: relative;
  transition: all 0.2s;
}

#conference > form .venue-radio-table td.radio-cell input[type="radio"]:checked {
  border-color: #2563eb;
  background-color: #2563eb;
  box-shadow: inset 0 0 0 3px #fff;
}

#conference > form .venue-radio-table td.amount-cell {
  vertical-align: top;
  padding: 150px 12px 12px 12px;
  border-left: 1px solid #e2e8f0;
}

#conference > form .venue-radio-table td.amount-cell input {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 0.9rem;
  text-align: right;
}

/* オンライン/オフライン切り替え用 */
#conference > form .venue-radio-table td.radio-cell label.online-only {
  display: none !important;
}
#conference > form .venue-radio-table td.radio-cell label.offline-only {
  display: flex;
}
#conference > form .venue-radio-table td.radio-cell.online-mode label.online-only {
  display: flex !important;
  font-size: 1rem;
  color: #64748b;
  cursor: default;
  pointer-events: none;
}
#conference > form .venue-radio-table td.radio-cell.online-mode label.online-only:hover {
  background: transparent;
}
#conference > form .venue-radio-table td.radio-cell.online-mode label.online-only input[type="radio"] {
  display: none;
}
#conference > form .venue-radio-table td.radio-cell.online-mode label.offline-only {
  display: none !important;
}

/* 終日オプション（展示会場内ステージのみ表示） */
#conference > form .venue-radio-table td.radio-cell label.stage-only {
  display: none;
}

/* ラジオボタンテーブル - レスポンシブ */
@media screen and (max-width: 1020px) {
  #conference > form .venue-radio-table {
    display: block;
  }
  #conference > form .venue-radio-table thead {
    display: none;
  }
  #conference > form .venue-radio-table tbody,
  #conference > form .venue-radio-table tr {
    display: block;
  }
  #conference > form .venue-radio-table td {
    display: block;
    padding: 12px;
    border: none;
    border-bottom: 1px solid #e2e8f0;
  }
  #conference > form .venue-radio-table td:before {
    content: attr(data-label);
    display: block;
    font-weight: 600;
    font-size: 0.85rem;
    color: #475569;
    margin-bottom: 8px;
  }
  #conference > form .venue-radio-table td.radio-cell:first-child:before {
    content: "会場";
  }
  #conference.en-page > form .venue-radio-table td.radio-cell:first-child:before {
    content: "Venue";
  }
  #conference > form .venue-radio-table td[data-date-group]:before {
    content: "日付";
  }
  #conference.en-page > form .venue-radio-table td[data-date-group]:before {
    content: "Date";
  }
  #conference > form .venue-radio-table td[data-time-group]:before {
    content: "希望時間帯";
  }
  #conference.en-page > form .venue-radio-table td[data-time-group]:before {
    content: "Preferred Time";
  }
  #conference > form .venue-radio-table td[data-slot-group]:before {
    content: "ご利用枠";
  }
  #conference.en-page > form .venue-radio-table td[data-slot-group]:before {
    content: "Sessions";
  }
  #conference > form .venue-radio-table td.amount-cell:before {
    content: "合計金額（税込）";
  }
  #conference.en-page > form .venue-radio-table td.amount-cell:before {
    content: "Total Amount (Tax incl.)";
  }
  #conference > form .venue-radio-table td.amount-cell {
    padding: 12px;
  }
  #conference > form .venue-card {
    padding: 14px 18px;
    margin: 12px 0;
  }
  #conference > form .venue-section-title {
    font-size: 0.95rem;
    margin: 0 0 12px 0;
  }
}

/* 会場選択テーブル */
#conference > form .venue-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0;
}

#conference > form .venue-card .venue-table {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}


#conference > form .venue-table thead {
  background-color: #4a5568;
  color: #ffffff;
}

#conference > form .venue-table th {
  padding: 10px 12px;
  text-align: left;
  font-weight: normal;
  font-size: 0.9rem;
  line-height: 1.3;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  vertical-align: top;
}

#conference > form .venue-table th:first-child {
  border-left: none;
}

#conference > form .venue-radio-table th:last-child {
  vertical-align: bottom;
  text-align: right;
}

#conference > form .venue-table tbody tr {
  background-color: #ffffff;
  border-bottom: 1px solid #e2e8f0;
}

#conference > form .venue-table td {
  padding: 12px;
  vertical-align: middle;
}


/* 日付・時間セレクトのフォントサイズを小さく */
#conference > form .venue-table select[name^="venue_date_"],
#conference > form .venue-table select[name^="venue_time_"] {
  font-size: 0.85rem;
  min-width: 145px;
}


/* 同意事項セクション */
#conference > form .agreement-section {
  margin: 24px 0;
}

#conference > form .agreement-section > div {
  margin: 12px 0;
}

#conference > form .agreement-section label {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
}

#conference > form .agreement-section label p {
  margin: 0;
  display: inline;
}

#conference > form .agreement-section input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  margin-right: 10px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
  border: 2px solid #d1d5db;
  border-radius: 4px;
  background-color: #fff;
  position: relative;
  transition: all 0.2s;
}

#conference > form .agreement-section input[type="checkbox"]:checked {
  border-color: #2563eb;
  background-color: #2563eb;
}

#conference > form .agreement-section input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
  #conference > form .agreement-section label {
    font-size: 0.9rem;
    line-height: 1.7;
  }

  #conference > form .agreement-section a {
    word-break: break-all;
  }
}


.input-hint {
  padding-left: 5px;
}

/* 価格表（price-table）スタイル */
#conference > form .price-table-heading {
  font-size: 1rem;
  font-weight: 700;
  color: #334155;
  margin: 24px 0 12px 0;
  padding: 0;
  background: transparent;
}

#conference > form .price-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: 24px;
  overflow: hidden;
  border-radius: 6px;
}

#conference > form .price-table thead {
  background: #e67523;
  color: #ffffff;
}

#conference > form .price-table thead th {
  padding: 14px 12px;
  text-align: center;
  font-weight: normal;
  font-size: 0.9rem;
  border-top: 1px solid #e67523;
  border-bottom: 1px solid #e67523;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  border-right: none;
  vertical-align: middle;
}

#conference > form .price-table thead th:first-child {
  text-align: left;
  border-left: 1px solid #e67523;
}

#conference > form .price-table thead th:last-child {
  border-right: 1px solid #e67523;
}

#conference > form .price-table thead tr:first-child th:nth-child(2) {
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}

#conference > form .price-table thead tr:first-child th:nth-child(3),
#conference > form .price-table thead tr:first-child th:nth-child(4) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

#conference > form .price-table thead tr:first-child th:nth-child(3) {
  border-left: none;
}

#conference > form .price-table thead tr:nth-child(2) th {
  border-left: none;
}

#conference > form .price-table thead tr:nth-child(2) th:nth-child(2) {
  border-left: 1px solid rgba(255, 255, 255, 0.3);
}

#conference > form .price-table thead th small {
  display: block;
  font-weight: normal;
  font-size: 0.75rem;
  color: #cbd5e1;
  margin-top: 4px;
}

#conference > form .price-table tbody tr {
  background-color: #ffffff;
}

#conference > form .price-table tbody td {
  padding: 14px 12px;
  border-top: none;
  border-bottom: 1px solid #e2e8f0;
  border-left: 1px solid #e2e8f0;
  border-right: none;
  vertical-align: middle;
  font-size: 0.9rem;
}

#conference > form .price-table tbody td:first-child {
  text-align: left;
  background-color: #fce4d6;
  font-weight: 500;
  border-left: 1px solid #e2e8f0;
}

#conference > form .price-table tbody td:last-child {
  border-right: 1px solid #e2e8f0;
}

#conference > form .price-table tbody td:nth-child(2) {
  text-align: center;
  color: #333;
  background-color: #fff;
  border-right: 1px solid #e2e8f0;
}

#conference > form .price-table tbody td.price {
  text-align: right;
  font-weight: normal;
  color: #333;
  font-size: 1rem;
  background-color: #fff;
}

#conference > form .price-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 6px;
}

#conference > form .price-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 6px;
}

#conference > form .price-table tbody td.price .discount {
  display: block;
  font-weight: normal;
  font-size: 0.85rem;
  color: #c00;
  margin-top: 4px;
}

#conference > form .price-table tbody td.price .discount-price {
  display: block;
  color: #c00;
  font-weight: 700;
  font-size: 1rem;
  margin-top: 2px;
}

/* タブレット向けレスポンシブ対応 */
@media screen and (max-width: 1024px) {
  #conference > form .price-table-heading {
    font-size: 0.95rem;
  }

  #conference > form .price-table {
    font-size: 0.85rem;
  }

  #conference > form .price-table thead th {
    padding: 10px 6px;
    font-size: 0.75rem;
  }

  #conference > form .price-table thead th small {
    font-size: 0.65rem;
  }

  #conference > form .price-table tbody td {
    padding: 10px 6px;
    font-size: 0.8rem;
  }

  #conference > form .price-table tbody td.price {
    font-size: 0.85rem;
  }

  #conference > form .price-table tbody td.price .discount {
    font-size: 0.75rem;
  }

  #conference > form .price-table tbody td.price .discount-price {
    font-size: 0.85rem;
  }

  /* 申し込み数カード - タブレット */
  #conference > form .venue-card {
    padding: 12px 16px;
    margin: 12px 0;
  }

  #conference > form .venue-section-title {
    font-size: 0.9rem;
    margin: 0 0 10px 0;
  }

  /* 申し込み数テーブル - タブレット */
  #conference > form .venue-table th {
    padding: 8px 6px;
    font-size: 0.8rem;
  }

  #conference > form .venue-table td {
    padding: 8px 6px;
  }

  #conference > form .venue-table select {
    font-size: 0.7rem;
    padding: 8px 10px;
  }

  #conference > form .venue-table select[name^="venue_"] {
    font-size: 0.65rem;
  }

  #conference > form .venue-table select[name^="venue_date_"],
  #conference > form .venue-table select[name^="venue_time_"] {
    font-size: 0.65rem;
    min-width: 110px;
  }

  #conference > form .venue-table input[type="text"] {
    font-size: 0.8rem;
    padding: 5px 6px;
  }
}

/* スマホ向けレスポンシブ対応 */
@media screen and (max-width: 768px) {
  #conference > form .price-table-heading {
    font-size: 1rem;
    padding: 8px 0;
  }

  #conference > form .price-table {
    font-size: 0.85rem;
  }

  #conference > form .price-table thead th {
    padding: 10px 8px;
    font-size: 0.8rem;
  }

  #conference > form .price-table thead th small {
    font-size: 0.7rem;
  }

  #conference > form .price-table tbody td {
    padding: 10px 8px;
    font-size: 0.85rem;
  }

  #conference > form .price-table tbody td.price {
    font-size: 0.9rem;
  }
}

/* 価格表をスマホでカード形式に */
@media screen and (max-width: 600px) {
  #conference > form .price-table {
    display: block;
  }

  #conference > form .price-table thead {
    display: none;
  }

  #conference > form .price-table tbody {
    display: block;
  }

  #conference > form .price-table tbody tr {
    display: block;
    margin-bottom: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
  }

  #conference > form .price-table tbody td {
    display: block;
    padding: 12px 16px;
    text-align: left !important;
    border-bottom: 1px solid #e2e8f0;
  }

  #conference > form .price-table tbody td:last-child {
    border-bottom: none;
  }

  #conference > form .price-table tbody td:first-child {
    background-color: #e67523;
    color: #fff;
    font-weight: 700;
  }

  #conference > form .price-table tbody td:first-child strong {
    color: #fff;
  }

  #conference > form .price-table tbody td:nth-child(2) {
    background-color: #f8fafc;
  }

  #conference > form .price-table tbody td:nth-child(2)::before {
    content: "席数: ";
    font-weight: 600;
    color: #64748b;
  }

  #conference > form .price-table tbody td.price {
    text-align: left !important;
    background-color: #fff;
  }

  #conference > form .price-table tbody td:nth-child(3)::before {
    content: "出展者価格: ";
    font-weight: 600;
    color: #64748b;
    display: block;
    margin-bottom: 4px;
  }

  #conference > form .price-table tbody td:nth-child(4)::before {
    content: "出展者以外価格: ";
    font-weight: 600;
    color: #64748b;
    display: block;
    margin-bottom: 4px;
  }

  #conference > form .price-table tbody td.price .discount {
    margin-top: 2px;
  }
}

/*************************************************
パビリオンフォーム用クラス
*************************************************/

/* フォーム全体のコンテナ（全フォーム共通） */
#pavilion,
#sponsor,
#conference {
  padding: 24px;
}

#pavilion * {
  box-sizing: border-box;
}

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

#pavilion form {
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  padding: 32px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  font-size: 1rem;
  line-height: 1.5;
}

/* プログレスバー - ステップ1 */
#pavilion .color-step-1 {
  color: #2f7edb;
}

#pavilion .bg-step-1 {
  background-color: #2f7edb;
}

#pavilion .gradient-step-1 {
  background: linear-gradient(to right, #2f7edb, #9dc5f5);
}

/* プログレスバー - ステップ2 */
#pavilion .color-step-2 {
  color: #64c2ff;
}

#pavilion .bg-step-2 {
  background-color: #64c2ff;
}

#pavilion .gradient-step-2 {
  background: linear-gradient(to right, #64c2ff, #b8e3ff);
}

/* プログレスバー - ステップ3 */
#pavilion .color-step-3 {
  color: #36b37e;
}

#pavilion .bg-step-3 {
  background-color: #36b37e;
}

#pavilion .gradient-step-3 {
  background: linear-gradient(to right, #36b37e, #a4dfc3);
}

/* プログレスバー - ステップ4 */
#pavilion .color-step-4 {
  color: #d48ba0;
}

#pavilion .bg-step-4 {
  background-color: #d48ba0;
}

#pavilion .gradient-step-4 {
  background: linear-gradient(to right, #d48ba0, #f0c8d3);
}

/* プログレスバー - ステップ5 */
#pavilion .color-step-5 {
  color: #f5a75b;
}

#pavilion .bg-step-5 {
  background-color: #f5a75b;
}

/* プログレスバー共通 */
#pavilion .progress-bar-min-width {
  min-width: 32px;
}

/* セクション背景 */
#pavilion .section-bg-green {
  border-color: #81d2ae;
  background: linear-gradient(to right, #e4f6ee, #f3fbf6);
}

#pavilion .section-bg-pink {
  background: linear-gradient(to right, #fce4ec, #fdf2f5);
}

#pavilion .section-bg-blue {
  background: linear-gradient(to right, #e3f2fd, #f1f8ff);
}

#pavilion .section-bg-teal {
  background: linear-gradient(to right, #e0f2f1, #f1f8f7);
}

/* プログレスバーナビゲーション */
#pavilion .progress-bar-nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2.5rem;
}

/* プログレスバーステップ */
#pavilion .progress-step {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* プログレスバーステップ番号 */
#pavilion .progress-step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #ffffff;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

#pavilion .progress-step-number-1 {
  background-color: #2f7edb;
}

#pavilion .progress-step-number-2 {
  background-color: #64c2ff;
}

#pavilion .progress-step-number-3 {
  background-color: #36b37e;
}

#pavilion .progress-step-number-4 {
  background-color: #d48ba0;
}

#pavilion .progress-step-number-5 {
  background-color: #f5a75b;
}

/* プログレスバーラベル */
#pavilion .progress-step-label {
  font-weight: 600;
}

@media (max-width: 639px) {
  #pavilion .progress-step-label {
    display: none;
  }
}

@media (min-width: 640px) {
  #pavilion .progress-step-label {
    display: inline;
  }
}

/* プログレスバーライン */
#pavilion .progress-bar-line {
  height: 0.25rem;
  overflow: hidden;
  flex: 1 1 0%;
  min-width: 32px;
  background-color: transparent;
  border-radius: 9999px;
}

/* プログレスバーフィル */
#pavilion .progress-bar-fill {
  width: 100%;
  height: 100%;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 500ms;
  text-align: center;
  text-decoration: none;
}

#pavilion .progress-bar-fill-1 {
  background: linear-gradient(to right, #2f7edb, #9dc5f5);
}

#pavilion .progress-bar-fill-2 {
  background: linear-gradient(to right, #64c2ff, #b8e3ff);
}

#pavilion .progress-bar-fill-3 {
  background: linear-gradient(to right, #36b37e, #a4dfc3);
}

#pavilion .progress-bar-fill-4 {
  background: linear-gradient(to right, #d48ba0, #f0c8d3);
}

/* セクションコンテナ */
#pavilion .section-content {
  padding: 1.5rem;
}

#pavilion .section-content > * + * {
  margin-top: 1.5rem;
}

/* フォームグループ間隔 */
#pavilion .form-group-spacing > * + * {
  margin-top: 1rem;
}

/* フォームヘッダー */
#pavilion form header {
  margin-bottom: 2rem;
  text-align: left;
}

#pavilion form header h1 {
  font-size: 2rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 1.5rem;
  line-height: 1.3;
}

#pavilion form header p {
  font-size: 1rem;
  color: #475569;
  margin-top: 1rem;
}

/* レスポンシブ：フォームヘッダー */
@media screen and (max-width: 768px) {
  #pavilion form header h1 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
  
  #pavilion form header p {
    font-size: 0.9rem;
  }
}

@media screen and (max-width: 480px) {
  #pavilion form header h1 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
  }
  
  #pavilion form header p {
    font-size: 0.85rem;
  }
}

/* 特定セクションのハイライト表示 */
#pavilion .form-section-highlighted {
  padding: 1.5rem;
  background-color: #f8fafc;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  margin-bottom: 1.5rem;
}

/* .form-section-highlighted内のh3はmargin-topを0にする */
#pavilion .form-section-highlighted h3 {
  margin-top: 0;
}

/* カテゴリーブロック間隔 */
#pavilion .form-category-block {
  margin-bottom: 2rem;
}

#pavilion .form-category-block:last-child {
  margin-bottom: 0;
}

/* フィールドセットヘッダー */
#pavilion .fieldset-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

/* フォームリスト */
#pavilion .form-list {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0;
  list-style: none;
  padding-left: 0;
  margin: 0;
}

#pavilion .form-list li {
  list-style: none;
  list-style-type: none;
  margin-bottom: 8px;
}

#pavilion .form-list li::before {
  content: none !important;
}

#pavilion .form-list li::marker {
  content: none !important;
}

/* カード型ラジオボタン/チェックボックス用のliスタイル */
#pavilion .form-list li:has(input[type="radio"]),
#pavilion .form-list li:has(input[type="checkbox"]) {
  background-color: #fff;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  padding: 10px;
  margin-bottom: 8px;
}

/* フォームラベル（インタラクティブ） */
#pavilion .form-label-interactive {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  margin: 0;
  position: relative;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  transition: background-color 0.15s ease;
  line-height: 1.6;
}

#pavilion .form-label-interactive:hover {
  background-color: #f1f5f9;
}

/* プライバシーポリシー承認セクション内のラベルはホバー効果を無効化 */
#pavilion .privacy-agreement-section .form-label-interactive:hover {
  background-color: transparent;
}

/* 出展予定製品/サービスセクションのチェックボックスラベルを小さく */
#pavilion #products-services .form-label-interactive {
  font-size: 0.85rem;
  padding: 0.35rem 0.5rem;
  gap: 0.4rem;
}

/* 出展予定製品/サービスセクションのチェックボックスサイズ調整 */
#pavilion #products-services .form-label-interactive input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-right: 6px;
}

/* 出展予定製品/サービスセクションのグリッド間隔を詰める */
#pavilion #products-services .form-grid-2col-small {
  gap: 0.4rem;
}

/* 出展予定製品/サービスセクションのカテゴリー間隔を詰める */
#pavilion #products-services .form-category-block {
  margin-bottom: 1.25rem;
}

/* ラジオボタンのカスタムスタイル */
#pavilion .form-label-interactive input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 20px;
  height: 20px;
  margin-right: 8px;
  cursor: pointer;
  flex-shrink: 0;
  border: 2px solid #d1d5db;
  border-radius: 50%;
  background-color: #fff;
  position: relative;
  transition: all 0.2s;
  /* sr-onlyを上書き */
  clip: unset !important;
  overflow: visible !important;
  white-space: normal !important;
  margin: 0 !important;
  margin-right: 8px !important;
  padding: 0 !important;
}

#pavilion .form-label-interactive input[type="radio"]:checked {
  border-color: #2563eb;
  background-color: #2563eb;
  box-shadow: inset 0 0 0 3px #fff;
}

/* チェックボックスのスタイル（ブラウザデフォルト） */
#pavilion .form-label-interactive input[type="checkbox"] {
  width: 24px;
  height: 24px;
  margin-right: 10px;
  cursor: pointer;
  flex-shrink: 0;
  /* sr-onlyを上書き */
  position: relative !important;
  clip: unset !important;
  overflow: visible !important;
  white-space: normal !important;
  margin: 0 !important;
  margin-right: 10px !important;
  padding: 0 !important;
  width: 24px !important;
  height: 24px !important;
}

/* フォームラベルテキスト */
#pavilion .form-label-text {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  color: #334155;
}

/* フォームフィールドタイトル */
#pavilion .form-field-title {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: #334155;
}

/* セクションカード */
#pavilion .section-card-container {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

#pavilion .section-card {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 1rem;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#pavilion .section-card:hover {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

/* セクションヘッダー */
#pavilion .section-header {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}

#pavilion .section-header-green {
  border-color: #81d2ae;
  background: linear-gradient(to right, #e4f6ee, #f3fbf6);
}

#pavilion .section-header-pink {
  border-color: #f9a8d4;
  background: linear-gradient(to right, #fce4ec, #fdf2f5);
}

#pavilion .section-header-blue {
  border-color: #93c5fd;
  background: linear-gradient(to right, #e3f2fd, #f1f8ff);
}

#pavilion .section-header-teal {
  border-color: #2dd4bf;
  background: linear-gradient(to right, #e0f2f1, #f1f8f7);
}

#pavilion .section-header-content {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

#pavilion .section-header-icon {
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.5rem;
  width: 2.5rem;
}

#pavilion .section-header-icon-step3 {
  background-color: #36b37e;
}

/* フォーム入力フィールド */
#pavilion .form-input,
#pavilion input[type="text"],
#pavilion input[type="email"],
#pavilion input[type="tel"],
#pavilion input[type="number"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#pavilion .form-input:focus,
#pavilion input[type="text"]:focus,
#pavilion input[type="email"]:focus,
#pavilion input[type="tel"]:focus,
#pavilion input[type="number"]:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

#pavilion .form-input:hover {
  border-color: #2563eb;
}

#pavilion .form-input-center {
  text-align: left;
  text-decoration: none;
}

/* フォームラベル（ブロック） */
#pavilion .form-label-block {
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.5rem;
}

#pavilion .form-label-small {
  display: block;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #475569;
  margin-bottom: 0.25rem;
}

/* フォームサブタイトル */
#pavilion .form-subtitle {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  color: #334155;
  margin-bottom: 0.5rem;
}

#pavilion .form-subtitle-semibold {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.5rem;
}

#pavilion .form-subtitle-small {
  font-size: 0.9rem;
  line-height: 1.3rem;
  color: #475569;
  font-weight: 600;
  margin-bottom: 0.5rem;
}


#pavilion .form-container-spacing > * + * {
  margin-top: 1.25rem;
}

/* 画像プレースホルダー */
#pavilion .form-image-placeholder {
  background-color: rgba(255, 255, 255, 0.8);
  border-width: 2px;
  border-style: solid;
  border-color: #e2e8f0;
  border-radius: 0.75rem;
  height: 14rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #64748b;
}

/* 必須マーク */
#pavilion .form-required-mark {
  color: #f87171;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
}

#pavilion .form-optional-mark {
  color: #94a3b8;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
}

/* セクション見出し（form-section-highlighted内のh3） */
#pavilion .form-heading-sm {
  font-size: 1.125rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.5;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* 規程リンクボックス */
#pavilion .regulation-link-box {
  display: inline-block;
  padding: 0.75rem 1rem;
  background-color: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  margin: 0.5rem 0 1rem 0;
}

#pavilion .regulation-link-box a {
  color: #2563eb;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

#pavilion .regulation-link-box a:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

#pavilion .regulation-link-box svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* グリッドレイアウト */
#pavilion .form-grid-2col {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: flex-start;
}

@media (min-width: 640px) {
  #pavilion .form-grid-2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

#pavilion .form-grid-2col-small {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.5rem;
}

@media (min-width: 640px) {
  #pavilion .form-grid-2col-small {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* フレックスレイアウト */
#pavilion .form-flex-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
}

#pavilion .form-flex-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* 幅・高さ */
#pavilion .form-full-width {
  width: 100%;
}

/* セクションヘッダーアイコン（色別） */
#pavilion .section-header-icon-pink {
  background-color: #db2777;
}

#pavilion .section-header-icon-blue {
  background-color: #2563eb;
}

#pavilion .section-header-icon-teal {
  background-color: #0d9488;
}

/* スペーシング */
#pavilion .form-vertical-spacing-small > * + * {
  margin-top: 0.75rem;
}

#pavilion .form-margin-top-small {
  margin-top: 0.5rem;
}

#pavilion .form-margin-top-xs {
  margin-top: 0.25rem;
}

#pavilion .form-margin-bottom-small {
  margin-bottom: 0.5rem;
}

/* テキストスタイル */
#pavilion .form-text-secondary {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}

#pavilion .form-text-hint {
  font-size: 0.75rem;
  line-height: 1rem;
  color: #64748b;
}

#pavilion .form-text-primary {
  color: #334155;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

/* 見出しスタイル */
#pavilion .form-heading-lg {
  font-size: 1.5rem;
  line-height: 1.85rem;
  font-weight: 700;
}

#pavilion .form-heading-step3 {
  color: #36b37e;
}

#pavilion .form-heading-pink {
  color: #db2777;
}

#pavilion .form-heading-blue {
  color: #2563eb;
}

#pavilion .form-heading-teal {
  color: #0d9488;
}


#pavilion .form-icon-text {
  color: #ffffff;
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1.9rem;
}

/* セレクトボックス */
#pavilion .form-select,
#pavilion select {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#pavilion .form-select:focus,
#pavilion select:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* テキストエリア */
#pavilion .form-textarea,
#pavilion textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
  resize: none;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

#pavilion .form-textarea:focus,
#pavilion textarea:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* スペーシング（追加） */
#pavilion .form-vertical-spacing-xs > * + * {
  margin-top: 0.5rem;
}

/* フォントウェイト */
#pavilion .form-font-semibold {
  font-weight: 600;
}


/* h2のスタイル（全フォーム共通） */
#pavilion section h2,
#sponsor > form > section h2,
#sponsor > form #application-info h2,
#conference > form > section h2 {
  font-size: 1.25rem;
  margin: 32px 0 16px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #2563eb;
  color: #0f172a;
  font-weight: 700;
}

/* h3のスタイル（全フォーム共通） */
#pavilion h3,
#sponsor > form > section h3,
#sponsor > form #application-info h3,
#conference > form > section h3 {
  font-size: 1.1rem;
  margin: 24px 0 12px 0;
  color: #334155;
  font-weight: 700;
}

/* fieldsetの枠線を削除 */
#pavilion fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

/* 展示エリア・規模セクション内のfieldset間隔 */
#pavilion #exhibition-area fieldset + fieldset {
  margin-top: 1.5rem;
}

#pavilion fieldset legend,
#pavilion .form-legend-style {
  padding: 0;
  margin-bottom: 8px;
  font-weight: 600;
  color: #0f172a;
  font-size: 1rem;
}

/* form-subtitle と form-legend-style が両方ついている場合は legend スタイルを優先 */
#pavilion .form-subtitle.form-legend-style {
  font-size: 0.9rem;
  font-weight: 600;
  color: #0f172a;
  margin-bottom: 8px;
}

/* 必須項目の「*」を赤字にする */
#pavilion span[aria-label="必須"],
#pavilion .required-note span[aria-label="必須"],
#pavilion h2 span[aria-label="必須"],
#pavilion h3 span[aria-label="必須"],
#pavilion legend span[aria-label="必須"],
#pavilion .form-legend-style span[aria-label="必須"],
#pavilion .form-heading-sm span[aria-label="必須"],
#pavilion .form-label-small span[aria-label="必須"],
#pavilion label span[aria-label="必須"] {
  color: #dc2626;
  margin-left: 4px;
}

/* label系のフォントサイズ・間隔をconference.phpと同じにする */
#pavilion label {
  font-size: 1rem;
  line-height: 1.5;
  display: block;
  margin-bottom: 4px;
}

/* h3のフォントサイズをlabelより大きくする */
#pavilion h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 10px 0 8px 0;
  color: #1f2933;
}

/* プライバシーポリシー承認セクション */
#pavilion .privacy-agreement-section {
  margin-bottom: 16px;
  padding: 16px;
  background-color: #fef2f2;
  border: 2px solid #fca5a5;
  border-radius: 8px;
}

#pavilion .privacy-agreement-title {
  font-size: 1rem;
  font-weight: 600;
  color: #dc2626;
  margin: 0 0 12px 0;
}

#pavilion .privacy-checkbox-wrapper {
  margin: 0;
}

#pavilion .privacy-policy-link {
  margin-bottom: 32px;
}

#pavilion .link-button {
  display: inline-block;
  background-color: #eff6ff;
  color: #2563eb;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid #bfdbfe;
  font-weight: 600;
  text-decoration: none;
  transition: all 200ms ease;
}

#pavilion .link-button:hover {
  background-color: #bfdbfe;
  text-decoration: none;
}

/* PDFアイコン付きリンクボタン */
#pavilion .link-button.pdf-icon::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 3px;
  background-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='%232563eb' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z'%3E%3C/path%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}

#pavilion label input[type="text"],
#pavilion label input[type="email"],
#pavilion label input[type="tel"],
#pavilion label select,
#pavilion label textarea {
  display: block;
  width: 100%;
  margin-top: 4px;
}

/* form-label-smallなどのlabelクラスも同じスタイルに */
#pavilion .form-label-small,
#pavilion .form-label-block {
  display: block;
  font-weight: 600;
  color: #334155;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

#pavilion .form-label-small + input,
#pavilion .form-label-small + select,
#pavilion .form-label-small + textarea,
#pavilion .form-label-block + input,
#pavilion .form-label-block + select,
#pavilion .form-label-block + textarea {
  margin-top: 4px;
}

/* 個人情報承諾セクション */
#pavilion .agreement-section {
  margin: 24px 0;
}

#pavilion .agreement-section > div {
  margin: 12px 0;
}

#pavilion .agreement-section label {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
}

#pavilion .agreement-section label p {
  margin: 0;
  display: inline;
}

#pavilion .agreement-section input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  margin-right: 10px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  flex-shrink: 0;
  border: 2px solid #d1d5db;
  border-radius: 4px;
  background-color: #fff;
  position: relative;
  transition: all 0.2s;
}

#pavilion .agreement-section input[type="checkbox"]:checked {
  border-color: #2563eb;
  background-color: #2563eb;
}

#pavilion .agreement-section input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* 合計金額表示エリア */
#pavilion .total-amount-container {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background-color: #f1f5f9;
  border-radius: 8px;
  margin: 24px 0;
}

#pavilion .total-amount-label {
  font-size: 1.1rem;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}

#pavilion .total-amount-box {
  min-width: 0;
}

#pavilion .total-amount-box input {
  width: auto;
  min-width: 180px;
  padding: 12px 16px;
  border: 2px solid #2563eb;
  border-radius: 6px;
  background-color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  color: #2563eb;
  text-align: right;
  box-sizing: border-box;
  cursor: not-allowed;
}

#pavilion .total-amount-box input:focus {
  outline: none;
}

/* 追加スペースセクション */
#pavilion .additional-space-box {
  display: none;
  margin-top: 16px;
  padding: 16px;
  background: #fef2f2;
  border-left: 4px solid #e91e63;
  border-radius: 4px;
}

#pavilion .additional-space-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 12px 0;
}

#pavilion .additional-space-input-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

#pavilion .additional-space-input {
  max-width: 200px;
}

#pavilion .additional-space-unit {
  font-size: 1rem;
  font-weight: 500;
}

#pavilion .additional-space-hint {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
}

/* 送信ボタンのスタイル（全フォーム共通） */
#pavilion > form button[type="submit"],
#sponsor > form button[type="submit"],
#conference > form button[type="submit"] {
  width: 100%;
  margin-top: 32px;
  padding: 14px 24px;
  border: 0;
  border-radius: 6px;
  background: #2563eb;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

#pavilion > form button[type="submit"]:hover:not(:disabled),
#sponsor > form button[type="submit"]:hover:not(:disabled),
#conference > form button[type="submit"]:hover:not(:disabled) {
  background: #1d4ed8;
}

#pavilion > form button[type="submit"]:disabled,
#sponsor > form button[type="submit"]:disabled,
#conference > form button[type="submit"]:disabled {
  background: #94a3b8;
  cursor: not-allowed;
}

/* Screen Reader Only - アクセシビリティ用 */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ==================== 確認モーダル（pavilion.php） ==================== */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.modal-content {
  width: min(640px, 92vw);
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

.modal-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.modal-body-wrapper {
  max-height: 50vh;
  overflow: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  flex: 1;
}

.modal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.modal-th {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
  width: 35%;
  font-weight: 600;
}

.modal-td {
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
}

.modal-buttons {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 16px;
}

.modal-btn-cancel {
  padding: 8px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2933;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  transition: background 0.2s;
}

.modal-btn-cancel:hover {
  background: #f8fafc;
}

.modal-btn-ok {
  padding: 8px 14px;
  border: 0;
  border-radius: 8px;
  background: #2563eb;
  color: #ffffff;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  transition: background 0.2s;
}

.modal-btn-ok:hover {
  background: #1d4ed8;
}

/* ==================== レスポンシブデザイン（pavilion.php） ==================== */

/* タブレット以下 */
@media screen and (max-width: 768px) {
  #pavilion {
    padding: 1rem;
  }

  #pavilion form {
    padding: 20px;
    max-width: 100%;
  }

  /* メイン見出し */
  #pavilion h1 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }

  /* セクション見出し */
  #pavilion h2 {
    font-size: 1.25rem;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
  }

  #pavilion h3 {
    font-size: 1rem;
  }

  /* セクション全体のスペーシング */
  #pavilion section {
    margin-bottom: 1.5rem;
  }

  #pavilion section + section {
    margin-top: 1.5rem;
  }

  #pavilion .form-heading-sm {
    font-size: 1rem;
  }

  /* オプショナルマーク */
  #pavilion .form-optional-mark {
    font-size: 0.85rem;
  }

  /* フォームグループのスペーシング */
  #pavilion .form-group-spacing {
    margin-bottom: 1.5rem;
  }

  /* ラベルとヒントテキスト */
  #pavilion .form-label-small,
  #pavilion .form-label-block {
    font-size: 0.95rem;
  }

  #pavilion .form-text-hint {
    font-size: 0.85rem;
  }

  #pavilion .required-note {
    font-size: 0.85rem;
    padding: 0.5rem 0;
  }

  /* 背景付きセクションのパディング調整 */
  #pavilion .form-section-highlighted {
    padding: 1rem;
  }

  /* 入力フィールドとセレクトボックス */
  #pavilion .form-input,
  #pavilion .form-select,
  #pavilion input[type="text"],
  #pavilion input[type="email"],
  #pavilion input[type="tel"],
  #pavilion select,
  #pavilion textarea {
    font-size: 16px; /* iOSのズーム防止 */
  }

  /* ラベルのパディング調整 */
  #pavilion .form-label-interactive {
    padding: 0.4rem 0.5rem;
  }

  /* 合計金額の表示 */
  #pavilion .total-amount-container {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px;
  }

  #pavilion .total-amount-label {
    font-size: 1rem;
  }

  #pavilion .total-amount-box {
    width: 100%;
  }

  #pavilion .total-amount-box input {
    width: 100%;
    min-width: auto;
    font-size: 1.1rem;
    text-align: right;
  }

  /* フォーム入力欄 */
  #pavilion .form-input {
    font-size: 16px; /* iOSのズーム防止 */
  }

  /* 追加スペース入力欄 */
  #pavilion .additional-space-box {
    padding: 12px;
  }

  #pavilion .additional-space-title {
    font-size: 0.9rem;
    margin-bottom: 10px;
  }

  #pavilion .additional-space-input {
    max-width: 150px;
  }

  #pavilion .additional-space-unit {
    font-size: 0.95rem;
  }

  #pavilion .additional-space-hint {
    font-size: 0.8rem;
  }

  /* プライバシーポリシーのiframe */
  #pavilion #policy-section iframe {
    height: 250px;
  }

  #pavilion #policy-section h3 {
    font-size: 1rem;
  }

  /* カテゴリーブロック */
  #pavilion .form-category-block {
    margin-bottom: 1.5rem;
  }

  /* チェックボックス・ラジオボタンのラベル */
  #pavilion .form-label-interactive {
    font-size: 0.95rem;
  }

  /* 出展予定製品/サービスセクションのチェックボックスラベル */
  #pavilion #products-services .form-label-interactive {
    font-size: 0.8rem;
    padding: 0.3rem 0.4rem;
    gap: 0.35rem;
  }

  /* 出展予定製品/サービスセクションのチェックボックスサイズ調整 */
  #pavilion #products-services .form-label-interactive input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-right: 5px;
  }

  /* 出展予定製品/サービスセクションのグリッド間隔を詰める */
  #pavilion #products-services .form-grid-2col-small {
    gap: 0.35rem;
  }

  /* 出展予定製品/サービスセクションのカテゴリー間隔を詰める */
  #pavilion #products-services .form-category-block {
    margin-bottom: 1rem;
  }

  /* fieldset間隔の調整 */
  #pavilion #exhibition-area fieldset + fieldset {
    margin-top: 1.25rem;
  }

  /* テキストエリア */
  #pavilion textarea {
    min-height: 100px;
  }

  /* 送信ボタン */
  #pavilion > form button[type="submit"] {
    padding: 12px 20px;
    font-size: 1rem;
  }

  /* 確認モーダル */
  .modal-content {
    width: min(600px, 90vw);
    padding: 16px;
  }

  .modal-title {
    font-size: 1rem;
    margin-bottom: 10px;
  }

  .modal-table {
    font-size: 13px;
  }

  .modal-th {
    padding: 7px 9px;
    font-size: 12px;
  }

  .modal-td {
    padding: 7px 9px;
    font-size: 13px;
  }

  .modal-buttons {
    margin-top: 14px;
  }

  .modal-btn-cancel,
  .modal-btn-ok {
    padding: 8px 12px;
    font-size: 0.95rem;
  }
}

/* スマートフォン */
@media screen and (max-width: 480px) {
  #pavilion {
    padding: 0.5rem;
  }

  #pavilion form {
    padding: 16px;
    max-width: 100%;
    border-radius: 6px;
  }

  /* メイン見出し */
  #pavilion h1 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
  }

  /* セクション見出し */
  #pavilion h2 {
    font-size: 1.1rem;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
  }

  #pavilion h3 {
    font-size: 0.95rem;
  }

  /* セクション全体のスペーシング */
  #pavilion section {
    margin-bottom: 1.25rem;
  }

  #pavilion section + section {
    margin-top: 1.25rem;
  }

  #pavilion .form-heading-sm {
    font-size: 0.95rem;
  }

  /* オプショナルマーク */
  #pavilion .form-optional-mark {
    font-size: 0.75rem;
  }

  /* headerのパディング */
  #pavilion header {
    margin-bottom: 1.5rem;
  }

  /* フォームグループのスペーシング */
  #pavilion .form-group-spacing {
    margin-bottom: 1.25rem;
  }

  /* ラベルとヒントテキスト */
  #pavilion .form-label-small,
  #pavilion .form-label-block {
    font-size: 0.9rem;
  }

  #pavilion .form-text-hint {
    font-size: 0.8rem;
  }

  #pavilion .required-note {
    font-size: 0.8rem;
    padding: 0.4rem 0;
  }

  /* 背景付きセクションのパディング調整 */
  #pavilion .form-section-highlighted {
    padding: 0.75rem;
    border-radius: 6px;
  }

  /* 入力フィールドとセレクトボックス */
  #pavilion .form-input,
  #pavilion .form-select,
  #pavilion input[type="text"],
  #pavilion input[type="email"],
  #pavilion input[type="tel"],
  #pavilion select,
  #pavilion textarea {
    font-size: 16px; /* iOSのズーム防止 */
    padding: 10px 12px;
  }

  /* ラベルのパディング調整 */
  #pavilion .form-label-interactive {
    padding: 0.35rem 0.4rem;
    font-size: 0.95rem;
  }

  /* 必須・任意マーク */
  #pavilion .form-required-mark,
  #pavilion .form-optional-mark {
    font-size: 0.7rem;
  }

  /* 合計金額の表示 */
  #pavilion .total-amount-container {
    padding: 12px;
  }

  #pavilion .total-amount-label {
    font-size: 0.95rem;
  }

  #pavilion .total-amount-box input {
    font-size: 1rem;
    padding: 10px 12px;
    text-align: right;
  }

  /* プランのラジオボタン */
  #pavilion .form-list li {
    margin-bottom: 6px;
  }

  /* カテゴリーブロック */
  #pavilion .form-category-block {
    margin-bottom: 1.5rem;
  }

  /* サブタイトル */
  #pavilion .form-subtitle {
    font-size: 0.95rem;
  }

  #pavilion .form-subtitle.form-legend-style {
    font-size: 0.85rem;
  }

  #pavilion .form-subtitle-small {
    font-size: 0.85rem;
  }

  /* プライバシーポリシーのiframe */
  #pavilion #policy-section iframe {
    height: 225px;
  }

  #pavilion #policy-section h3 {
    font-size: 0.95rem;
  }

  /* カテゴリーブロック */
  #pavilion .form-category-block {
    margin-bottom: 1.25rem;
  }

  /* チェックボックス・ラジオボタンのラベル */
  #pavilion .form-label-interactive {
    font-size: 0.9rem;
  }

  /* 出展予定製品/サービスセクションのチェックボックスラベル */
  #pavilion #products-services .form-label-interactive {
    font-size: 0.75rem;
    padding: 0.25rem 0.35rem;
    gap: 0.3rem;
  }

  /* 出展予定製品/サービスセクションのチェックボックスサイズ調整 */
  #pavilion #products-services .form-label-interactive input[type="checkbox"] {
    width: 14px;
    height: 14px;
    margin-right: 4px;
  }

  /* 出展予定製品/サービスセクションのグリッド間隔を詰める */
  #pavilion #products-services .form-grid-2col-small {
    gap: 0.3rem;
  }

  /* 出展予定製品/サービスセクションのカテゴリー間隔を詰める */
  #pavilion #products-services .form-category-block {
    margin-bottom: 0.85rem;
  }

  /* ラジオボタン・チェックボックスのサイズ調整 */
  #pavilion .form-label-interactive input[type="radio"] {
    width: 18px;
    height: 18px;
    margin-right: 6px;
  }

  #pavilion .form-label-interactive input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-right: 8px;
  }

  #pavilion .agreement-section input[type="checkbox"] {
    width: 20px;
    height: 20px;
  }

  /* fieldset間隔の調整 */
  #pavilion #exhibition-area fieldset + fieldset {
    margin-top: 1rem;
  }

  /* テキストエリア */
  #pavilion textarea {
    min-height: 80px;
  }

  /* 追加スペース入力欄 */
  #pavilion .additional-space-box {
    padding: 10px;
  }

  #pavilion .additional-space-title {
    font-size: 0.85rem;
    margin-bottom: 8px;
  }

  #pavilion .additional-space-input-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  #pavilion .additional-space-input {
    max-width: 100%;
    width: 100%;
  }

  #pavilion .additional-space-unit {
    font-size: 0.9rem;
  }

  #pavilion .additional-space-hint {
    font-size: 0.75rem;
  }

  /* 送信ボタン */
  #pavilion > form button[type="submit"] {
    padding: 10px 16px;
    font-size: 0.95rem;
  }

  /* グリッドの余白調整 */
  #pavilion .form-grid-2col-small {
    gap: 0.5rem;
  }

  /* 確認モーダル */
  .modal-content {
    width: min(95vw, 400px);
    padding: 14px;
    border-radius: 8px;
  }

  .modal-title {
    font-size: 0.95rem;
    margin-bottom: 8px;
  }

  .modal-body-wrapper {
    max-height: 60vh;
  }

  .modal-table {
    font-size: 12px;
  }

  .modal-th {
    padding: 6px 8px;
    font-size: 11px;
    width: 40%;
  }

  .modal-td {
    padding: 6px 8px;
    font-size: 12px;
    word-break: break-word;
  }

  .modal-buttons {
    margin-top: 12px;
    flex-direction: column;
    gap: 6px;
  }

  .modal-btn-cancel,
  .modal-btn-ok {
    padding: 10px 14px;
    font-size: 0.9rem;
    width: 100%;
  }
}

/* ==================== パビリオンイメージ画像 ==================== */
#pavilion .pavilion-images {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin: 2rem 0;
  width: 100%;
}

#pavilion .pavilion-image-item {
  flex: 1 1 calc(33.333% - 1rem);
  max-width: calc(33.333% - 1rem);
  text-align: center;
}

#pavilion .pavilion-image-item a {
  display: block;
  text-decoration: none;
  cursor: pointer;
}

#pavilion .pavilion-image-item img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#pavilion .pavilion-image-item a:hover img {
  transform: translateY(-4px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* 1000px以下（縦並び） */
@media screen and (max-width: 1000px) {
  #pavilion .pavilion-images {
    flex-direction: column;
    gap: 1rem;
    margin: 1.5rem 0;
  }

  #pavilion .pavilion-image-item {
    flex: 1 1 100%;
    max-width: 100%;
  }

  #pavilion .pavilion-image-item img {
    width: 80%;
  }
}

/* ==================== iOS Safari用カスタムバリデーションエラー ==================== */
.ios-validation-error {
  color: #d32f2f;
  font-size: 0.85rem;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.ios-validation-error::before {
  content: "⚠";
}

.ios-error-field {
  border-color: #d32f2f !important;
  box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.2) !important;
}

/* ラジオボタン・チェックボックスのエラー時の親要素スタイル */
.ios-error-group {
  border: 2px solid #d32f2f;
  border-radius: 8px;
  padding: 0.5rem;
  background-color: rgba(211, 47, 47, 0.05);
}

/* プライバシーポリシーリンクに下線を追加 */
a[href="/ja/application/privacy.html"] {
  text-decoration: underline;
}
