@charset "utf-8";
/* CSS Document */
.fl {display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; margin-top:20px; }
.fl li {
	-ms-flex-preferred-size: 33.3333%;
               flex-basis: 33.3333%;
			   max-width:33.3333%;
	 }
.fl li img { width:100%; height:auto; }


.parts_wrap_03 > figure.main { max-width:100% !important }
.red { color:red!important; }


.spec li { box-sizing:border-box; padding:.4em .7em; padding-bottom: calc( 32767px + .4em ); line-height:1.5;
   margin-bottom: -32767px;}
.spec li:nth-child(1) { width:9em; float:left; color:#fff; font-weight:bold;background-color:rgba(0,0,0,.6); }
.spec li:nth-child(2) { margin-left:9em; }

.clm li {
    text-align: center;
    line-height: 0;
}
.clm li img {
    width: 100%;
    height: auto;
}

a.kiyaku { display: block; height: 44px; background-color: red; color: #000; border-radius: .3em; line-height: 44px; text-decoration: none; text-align: center; margin-top: 1.5em; font-weight: bold; max-width: 80%; margin-left: auto; margin-right: auto; font-size: 1rem; }

/* ----------------------------------------
  フォーム：エラー表示
  使い方：
  - 各項目のラッパーに `.form-field` を付ける
  - エラー時はラッパーに `.error` を付与する（例：`<div class="form-field error">`）
---------------------------------------- */
.form-field .error-message {
  display: none;
  margin-top: 0.5rem;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #ff6b6b;
}

.form-field.error .error-message {
  display: block;
}

.form-field.error input,
.form-field.error select,
.form-field.error textarea {
  border-color: #ff6b6b !important;
  background-color: rgb(255, 237, 237);
  box-shadow: 0 0 0 2px rgba(255, 107, 107, 0.25);
}

.form-field.error input:focus,
.form-field.error select:focus,
.form-field.error textarea:focus {
  border-color: #ff6b6b !important;
}

.form-field.error label,
.form-field.error .text-gray-700,
.form-field.error .text-gray-600 {
  color: #ffb3b3;
}

@media screen and (min-width: 737px) {
.smallBlock {
    max-width: 500px;
    margin: 0 auto;
}
.smallImg {
    max-width: 500px;
    display: inline-block;
}

}

.spec { background-color:rgba(0,0,0,.4); border:0px solid #00F600; overflow:hidden; margin-top:-1px; color:#FFF;}

.hide { display:none; }
    
    .parts_wrap_03 > .c3 {
    max-width: 720px !important;
}
    
    .parts_wrap_03 > .c2 {
    max-width: 480px !important;
}
    
    .parts_wrap_03 > .c1 {
    max-width: 240px !important;
}
	
	.flex { display: flex;justify-content: space-between;align-items: center;}
	.flex li { width:48%; }
	.flex li:nth-child(1),.flex li:nth-child(3) { width:48%;}
	.flex li figure {
		aspect-ratio: 190 / 297;
		width: 100%;
		margin: 0;
	}
	.flex li figure img { width: 100%; height: 100%; object-fit: contain;}
	.flex li p {
		text-align: center;
		margin-top: 0.7em;
	}

	.prize_img_list,
	.prize_text_list {
		list-style: none;
		margin: 0;
		padding: 0;
	}
	.prize_img_list {
		margin-bottom: 1em;
	}
	.prize_text_list {
		margin-bottom: 2.5em;
		padding-bottom: 2.5em;
		border-bottom: 1px solid rgba(255, 255, 255, .2);
	}
	.prize_text_list:last-of-type {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: none;
	}
	.prize_img_list li figure {
		max-width: 600px;
		width: 100%;
		margin: 0 auto;
	}
	#section3 .parts_inner_01 > h3:first-child + ul.prize_img_list li figure {
		padding: 1em;
		box-sizing: border-box;
		background-color: rgba(255, 255, 255, 0.15);
		border-radius: .3em;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	}
	.prize_img_list li figure img {
		width: 100%;
		height: auto;
		object-fit: contain;
		display: block;
	}
	.prize_text_list li p {
		text-align: center;
		margin-top: 0;
	}
	
	@media screen and (max-width:700px) {
	
		.flex {/*flex-direction: column;*/ }
		.flex li { }
		.flex li:nth-child(2) img { /*transform: rotate(90deg);*/}
		.flex li { margin-bottom: 2em;}

}
	
	p.last { font-size: 180%!important; font-weight: bold!important; text-align: center!important; color: #FFCD00!important;}
    .step {  box-sizing: border-box; margin-bottom: 5px; width: 30%; text-align: center;}
    .parts_ttl_03 {}
    #step { display: flex;justify-content: space-between;}
    .step figure { width: 80%;aspect-ratio: 1 / 1; margin-left: auto; margin-right: auto; max-width: 100px;}
    .step figure img { width: 100%; height: 100%; object-fit: contain; margin-bottom: 1em;}
    .step p { text-align: center;}
    .step h3 { border: none; padding-left: 0;}



.space-y-6 { text-align: left; color: #FFF;}
.mx-auto {
  margin-left: auto;
  margin-right: auto
}

.mb-2 {
  margin-bottom: 0.5rem
}

.mb-6 {
  margin-bottom: 1.5rem
}

.mr-2 {
  margin-right: 0.5rem
}

.mt-1 {
  margin-top: 0.25rem
}

.mt-2 {
  margin-top: 0.5rem
}

.block {
  display: block
}

.flex2 {
  display: flex
}

.min-h-screen {
  min-height: 100vh
}

.w-20 {
  width: 5rem
}

.w-full {
  width: 100%
}

.min-w-\[120px\] {
  min-width: 120px
}

.min-w-\[150px\] {
  min-width: 150px
}

.max-w-2xl {
  max-width: 42rem
}

.flex-1 {
  flex: 1 1 0%
}

.cursor-pointer {
  cursor: pointer
}

.flex-wrap {
  flex-wrap: wrap
}

.items-start {
  align-items: flex-start
}

.items-center {
  align-items: center
}

.gap-3 {
  gap: 0.75rem
}

.gap-6 {
  gap: 1.5rem
}

/* 直接の子要素に間隔を付与（confirm.html / complete.html 等） */
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

/* form でラップされている場合（test.html 等）— hidden は間隔対象外 */
.space-y-6 form > :not([type="hidden"]):not([hidden]) ~ :not([type="hidden"]):not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.rounded-lg {
  border-radius: 0.5rem
}

.rounded-md {
  border-radius: 0.375rem;
}

.border {
  border-width: 1px
}

.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
}

.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgba(255,255,255,.1); padding: 16px; margin-bottom: 20px;
}

.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: #FFCD00; color: #000!important;
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

.p-8 {
  padding: 2rem
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem
}
label.text-sm { font-size: 1rem!important;}

.font-bold {
  font-weight: 700
}

.font-medium {
  font-weight: 500; font-size: 1.5rem!important;
}
h3.font-medium { font-size: 1.2rem!important;}

.text-blue-600 {
  --tw-text-opacity: 1;
  color:#fff;
}

.text-gray-600 {
  --tw-text-opacity: 1;
  color:#fff;
}

.text-gray-700 {
  --tw-text-opacity: 1;
  color:#fff;
}

.text-gray-800 {
  --tw-text-opacity: 1;
  color:#fff;
}

.text-red-500 {
  --tw-text-opacity: 1;
  color:#fff;
}

.text-white {
  --tw-text-opacity: 1;
  color:#fff;
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

.transition-colors {
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms
}

.hover\:bg-blue-700:hover {
  --tw-bg-opacity: 1;
  /*background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1))*/
}

.hover\:underline:hover {
  -webkit-text-decoration-line: underline;
  text-decoration-line: underline
}

.focus\:border-transparent:focus {
  border-color: transparent
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)
}

.focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))
}

.disabled\:bg-gray-100:disabled {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.text-lg { font-size: 1rem!important;}

.border-b.pb-3 { border-bottom: 1px solid #444; padding-bottom: 1.5rem!important;}
.border-b.pb-3 .text-sm.text-gray-600 { color: #FFCD00;}
.space-y-4.bg-gray-50.p-4.rounded-md  .text-sm.text-gray-600 { color: #FFCD00; }
.space-y-4.bg-gray-50.p-4.rounded-md .text-gray-800 { font-size: 1rem;}
button.text-gray-700,button.py-3 { color: #000; font-size: 1rem!important;}

.center { text-align: center!important;}

.parts_btn_center {
  text-align: center!important;
}

.store_info_block {
  background-color: rgba(255, 255, 255, .1);
  border-radius: .3em;
  margin-bottom: 1em;
  padding: 1em;
  border: 1px solid #000;
}

#section3 {
  background: url(../img/bg001.jpg) no-repeat center center;
  background-size: cover;
}

.lower p.text_x2 {
  font-size: 26px;
}

.lower p.text_half {
  font-size: 13px;
}

.prize_text_list li p.prize_emphasis {
  font-size: 200%;
  font-weight: bold;
}

.lower p.store_name {
  margin-bottom: 0.4em;
  font-weight: bold;
  font-size: 2em;
}

.store_address {
  margin-bottom: 0.5em;
}

.store_capacity {
  margin-bottom: 0;
}

@media (min-width: 640px) {
  .sm\:flex-nowrap {
    flex-wrap: nowrap
  }
}

/* ----------------------------------------
  iOS Safari / モバイル：フォーム表示の修正
  - 文字縮小・自動ズーム防止（16px以上）
  - flex はみ出し防止
  - セレクトのネイティブ見た目を統一
---------------------------------------- */
.space-y-6,
.space-y-6 form {
  max-width: 100%;
  box-sizing: border-box;
}

.space-y-6 form input,
.space-y-6 form select,
.space-y-6 form textarea,
.space-y-6 form button[type="submit"] {
  -webkit-text-size-adjust: 100%;
  font-size: 16px;
  line-height: 1.5;
  box-sizing: border-box;
  max-width: 100%;
  color: #111;
}

.space-y-6 form select {
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23333333' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px 8px;
  padding-right: 2.5rem;
}

.space-y-6 form select:disabled {
  opacity: 1;
  color: #6b7280;
  background-color: rgb(243 244 246);
}

.space-y-6 form .flex-1 {
  flex: 1 1 0%;
  min-width: 0;
}

.space-y-6 form .flex2 {
  max-width: 100%;
}

/* 開催日時：ラッパー幅を親に収める */
.event-datetime {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* 開催日時：タブレット・横向き iPhone まで縦並び（sm:flex-nowrap のはみ出しを防ぐ） */
@media screen and (max-width: 1023px) {
  .event-datetime .flex2 {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: wrap !important;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .event-datetime .flex2 .w-20,
  .event-datetime .flex2 > span,
  .event-datetime .flex2 > input:not([type="date"]):not([type="time"]) {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    margin-top: 0;
  }

  .event-datetime .flex2 > input[type="date"],
  .event-datetime .flex2 > input[type="time"] {
    flex: none;
    margin-top: 0;
  }

  .event-datetime .flex2 .min-w-\[120px\],
  .event-datetime .flex2 .min-w-\[150px\],
  .event-datetime .flex2 .flex-1 {
    min-width: 0;
    flex: none;
  }

  .event-datetime .flex2 > span:first-child {
    margin-top: 2em;
    margin-bottom: 0.25rem;
    font-weight: 500;
  }

  .event-datetime .flex2 .text-gray-500 {
    margin-top: 0.5rem;
    margin-bottom: 0.25rem;
  }
}

/* iOS Safari（iPhone）：date/time 入力を固定幅に */
@supports (-webkit-touch-callout: none) {
  .event-datetime input[type="date"],
  .event-datetime input[type="time"] {
    display: block;
    width: 90% !important;
    max-width: 90% !important;
    min-width: 0 !important;
    -webkit-min-logical-width: 0;
    flex: none;
    box-sizing: border-box;
  }
}

/* モバイル：確認画面などの注意文で改行を非表示 */
@media screen and (max-width: 736px) {
  p.text-gray-800.leading-relaxed br {
    display: none;
  }
}