
* {
	box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 400;
}


/* ============================================================
   レイアウト
   ============================================================ */

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
}
@media screen and (max-width: 1052px) {
  .container { grid-template-columns: 1fr; }
  .result-wrapper { margin-top: 50px; position: static !important; }
}
@media screen and (max-width: 680px) {
	.container {
	    padding: 0 20px 30px;
	    display: block;
	}
}

.container main {
    padding: 0;
    margin: 0;
    color: #222;
    position: relative;
    width: 100%;
    display: block;
}

/* ============================================================
   カード
   ============================================================ */

.card {
  padding: 0 0 0;
  margin-bottom: 3rem;
  position: relative;
  padding: 30px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
  background: #fff;
}

@media screen and (max-width: 680px) {
	.card {
		padding: 20px;
		box-sizing: border-box;
        width: 100%;
	}
}

.card h2 {
    text-decoration: none;
    display: block;
    position: relative;
    color: #fff;
    margin: 0 auto 1rem;
    padding:4px 15px;
    background: #AD814F;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-size: 24px;
    font-weight: 400;
    text-align:center;
}

@media screen and (max-width: 680px) {
	.card h2 {
		font-size: 22px;
	}
}


/* ============================================================
   フォーム
   ============================================================ */

.form-row {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 12px;
}
.form-group {
	flex: 1;
	min-width: 180px;
}

@media screen and (max-width: 680px) {
	.form-group + .form-group,
	.form-row + .form-row{
		margin-top: 20px;
	}
}
.form-group > label {
	display:block;
	width:100%;
    border-left: 5px solid #8BC547;
    padding: 0 0 0 13px;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-size: 18px;
    font-weight: 500;
    transform:rotate(0.03deg);
}

.radio-group {
	margin: 10px auto;
	padding: 0;
	font-size: 16px;
    transform:rotate(0.03deg);
}

.radio-group input[type=radio] {
	position: absolute;
	white-space: nowrap;
	width: 1px;
	height: 1px;
	overflow: hidden;
	border: 0;
	padding: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%); 
	margin: -1px;
}

.radio-group label {
	background: #f3f3f3;
	position: relative;
	cursor: pointer;
	padding-left: 28px;
	padding-right: 1rem;
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);
    font-size: 18px;
    display: inline-block;
    padding: 8px 20px 8px 35px;
    border-radius: 3px;
    margin: 0 3px 5px 0;
}

.radio-group label::before,
.radio-group label::after {
	content: "";
	display: block; 
	border-radius: 50%;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}

.radio-group label::before {
	background-color: #fff;
	border: 2px solid #8BC547;
	border-radius: 50%;
	width: 18px;
	height: 18px;
	left: 10px;
}

.radio-group label::after {
	background-color: #8BC547;
	border-radius: 50%;
	opacity: 0;
	width: 10px;
	height: 10px;
	left: 14px;
}

.radio-group label:has(input:checked)::after {
	opacity: 1;
}

.form-group select{
    box-sizing: border-box;
    width: 100%;
    cursor: pointer;
    margin:14px 0 0;
    padding: 6px 35px 6px 15px;
    outline: 0;
    border-radius: 0;
    background: #fff;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-size: 18px;
    border: 2px solid #ccc;
	position:relative;
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);

    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
}

.form-group select,
::picker(select) {
	appearance: base-select;
}

.form-group select::picker-icon {
	position: absolute;
    top: 50%;
    right: 10px;
    display: block;
    width: 6px;
    height: 6px;
    border-right: 1px solid #222;
    border-bottom: 1px solid #222;
    content: "";
    z-index: 20;
    -webkit-transform: rotate(45deg) translate3d(-50%, -50%, 0);
    transform: rotate(45deg) translate3d(-50%, -50%, 0);
}

.form-group option{
	padding: 2px 0;
}

input[type="number"] {
	width: 72px;
	text-align: right;
	border: 2px solid #ccc;
	margin:14px 0px 0;
	font-size:18px;
	padding: 6px;
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);
}

select#entryFee {
}

.form-group.room-add-form__action > label{
	display:block;
	width:100%;
    border-left:0;
    padding: 0 0 0 16px;
    font-size: 20px;
    font-weight: 400;
    font-family: "M PLUS Rounded 1c", sans-serif;

}



/* ============================================================
   ホール設定 / 中小スタジオ一覧
   ============================================================ */

select#hall {
}

.hall-config {
  background: #f3f3f3;
  padding: 16px 18px;
  margin-top: 25px;
}

@media screen and (max-width: 680px) {
	.hall-config {
	  padding: 16px 10px;
	}
}

.hall-config.hidden { display: none; }

.hall-config h3{
	text-align:center;
	font-size:22px;
    transform:rotate(0.03deg);
    font-weight: 500;
}
@media screen and (max-width: 680px) {
	font-size:20px;
}

.range-list li:nth-child(1) .range-item__title{
	border-bottom:5px solid #d57877;
}
.range-list li:nth-child(2) .range-item__title{
	border-bottom:5px solid #cd894f;
}
.range-list li:nth-child(3) .range-item__title{
	border-bottom:5px solid #4c849b;
}
.range-list li:nth-child(4) .range-item__title{
	border-bottom:5px solid #8d9955;
}

.extra-hours-block {
  background: #ffffff;
  border: 1px solid var(--select-border);
  b order-radius: 8px;
  padding: 14px 16px;
  margin-top: 8px;
}
.extra-hours-block.group-error {
  border-color: #c04040;
  box-shadow: 0 0 0 3px rgba(192, 64, 64, 0.12);
}
.extra-hours-lead {
  margin: 0 0 12px;
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.6;
}
.extra-hours-group {
	margin-bottom: 10px;
	display:flex;
	gap: 8px;
}
.extra-hours-group label{
width:33%;
	background: #fafafa;
	border: 3px solid #f0f0f0;
	padding: 10px 12px;
	font-family: "M PLUS Rounded 1c", sans-serif;
	border-radius: 8px;
}

.extra-hours-group label:has(input:checked) {
	border-color: #c4a35a;
	background: #eee5d1;
	font-weight: 500;
}

.extra-hours-group input {
	accent-color: #5a4b29;
}

.extra-hours-summary {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--select-active);
}

.extra-hours-group label.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.extra-hours-group label.is-auto {
  background: #eef4e6;
  outline: 1px solid #c5d6a8;
}

.section-lead {
  margin: 0 0 5px;
  font-size: 1rem;
  color: var(--muted);
  line-height: 1.6;
}

/* --- 施設追加フォーム --- */
.room-add-form {
  background: var(--select-bg);
  border: 1px solid var(--select-border);
  border-radius: 8px;
  padding: 16px 0;
  margin-bottom: 16px;
}
.room-add-form__row {
  margin-bottom: 0;
  align-items: start;
}
.room-add-form__select {flex: 0 0 50%;min-width:320px}

@media screen and (max-width: 680px) {
	.room-add-form__select {min-width:100%}
}

.room-add-form__hours {flex: 0 0 140px;min-width:140px}
.room-add-form__action {flex: 1;min-width:100px;text-align:right;padding:0 10px 0;}

@media screen and (max-width: 680px) {
	.room-add-form__action {padding:0; margin-top: 10px !important;}
}

.room-hours-input {
  display: flex;
  align-items: center;
  gap: 8px;
}

.room-hours-input__unit {
  font-size: 0.88rem;
  color: var(--muted);
  white-space: nowrap;
  margin-top: 10px;
}

.btn-add-room {
  flex: none;
  width: auto;
  padding: 12px 20px 12px ;
  font-size: 0.92rem;
  background: #484848;
  color: #fff;
  border: none;
  cursor: pointer;
  font-weight: 400;
  white-space: nowrap;
  transition: background 0.15s;
}
.btn-add-room:hover { background: #727272; }

.room-picker-hint {
  margin: 10px 0 0;
  font-size: 0.82rem;
  color: var(--select-active);
  font-weight: 500;
}

.field-error {
  margin: 10px 0 0;
  padding: 8px 12px;
  font-size: 0.82rem;
  color: #b03030;
  background: #fff5f5;
  border: 1px solid #e8b0b0;
  border-radius: 6px;
  line-height: 1.5;
}
.field-error[hidden] { display: none; }

.input-error {
  border-color: #c04040 !important;
  box-shadow: 0 0 0 3px rgba(192, 64, 64, 0.15) !important;
}

/* --- 追加済み施設リスト --- */
.selected-rooms {
  margin-bottom: 4px;
}
.selected-rooms__empty {
  margin: 0;
  padding: 20px 16px;
  text-align: center;
  font-size: 0.88rem;
  color: var(--muted);
  background: #f7f7f7;
  border: 1px dashed var(--select-border);
  border-radius: 8px;
  border: 1px dashed #999;
}
.selected-rooms__empty[hidden] { display: none; }

.selected-rooms__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.selected-room-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: #f3f3f3;
}
.selected-room-item__info {
  flex: 1;
  min-width: 0;
}
.selected-room-item__name {
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: var(--text);
}


.selected-room-item__name::before{
	content:"●";
	color:#8BC547;
	padding-right:4px;
}
.selected-room-item__meta {
  display: block;
  margin-top: 2px;
  font-size: 0.78rem;
  color: var(--muted);
}
.selected-room-item__hours {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.selected-room-item__hours input[type="number"] {
  width: 64px;
  padding: 2px 4px;
  text-align: right;
  font-size: 16px;
  margin: 0;
}
.selected-room-item__hours span {
  font-size: 0.82rem;
  color: var(--muted);
}
.selected-room-item__remove {
  flex: none;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--select-border);
  border-radius: 50%;
  background: #fff;
  color: var(--muted);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s;
}
.selected-room-item__remove:hover {
  background: #fff0f0;
  border-color: #e0a0a0;
  color: #c04040;
}

#extraHoursGroup{line-height: 2;}

@media screen and (max-width: 640px) {
  .room-add-form__row { flex-direction: column; align-items: stretch; }
  #entryFee,#roomPicker,#exhibitionRoom{margin-bottom:16px;}
  .room-add-form__hours,
  .room-add-form__action { flex: 1; }
  .btn-add-room { width: 100%; }
  .selected-room-item { flex-wrap: wrap; }
  .selected-room-item__hours { margin-left: auto; }
}


@media screen and (max-width: 600px) {
	.form-row,
	.extra-hours-group{display:block;}
	
	.extra-hours-group label{display:block;width:100%;margin-bottom:8px;}
}

@media screen and (max-width: 460px) {
	.range-item__options {display:block!important;}
	.range-item__options label{display:block!important;width:100%;margin-bottom:8px;}
}

@media screen and (max-width: 400px) {
	.card h2{font-size: 20px;}
}





/* ============================================================
   注意書き
   ============================================================ */

ul.note {
  padding: 5px 0px;
  font-size: 0.82rem;
  color: var(--muted);
  margin: 10px 0 0;
  line-height: 1.5;
  font-family: "M PLUS Rounded 1c", sans-serif;
  transform:rotate(0.03deg);
  list-style: none;
}
ul.note li{
    text-indent: -1em;
    padding-left: 1em;
    margin: 0 0 3px;
    font-size: 13px;
}
ul.note li::before {
    content: normal;
}
/* ============================================================
   ボタン
   ============================================================ */

.actions {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}
button {
  flex: 1;
  padding: 12px 16px;
  font-size: 1rem;
  font-family: inherit;
  border: none;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.15s;
  background:#484848;
}
.btn-primary {
  background:#484848;
  color: #fff;
  font-weight: 400;
}
.btn-secondary {
  background: #aaa;
  color: #fff;
  font-weight: 400;
}
.btn-primary:hover,
.btn-secondary:hover {
  background: #727272;
}

/* ============================================================
   結果表示
   ============================================================ */

.result-wrapper {
  position: sticky;
  top: 76px;
  align-self: start;
}
.result-card {
  background: #fff;
  border: 1px solid var(--border);
  border-top: 3px solid var(--select-active);
  overflow: hidden;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
.result-card {
  background: linear-gradient(135deg, var(--select-active), var(--footer-bg-dark));
  color: white;
  font-size: 1rem;
  letter-spacing: 0.02em;
}


.result-header {
    background: #AD814F;
    color: #fff;
    font-size: 22px;
    font-weight: 400;
    padding:6px 0 6px;
    text-align:center;
    position:relative;
    font-family: "M PLUS Rounded 1c", sans-serif;
}

.result-header::before {
    position: absolute;
    bottom:0;
    left: 50%;
    display: block;
    width: 0;
    height: 0;
    margin: 0;
    border-left: 10px solid transparent;
    border-top: 6px solid #AD814F;
    border-bottom: none;
    border-right: 10px solid transparent;
    content: "";
    -webkit-transform: translate(-50%, 10px);
    transform: translate(-50%, 10px);
}

.result-body { 
	padding: 18px;
	background: #fff;
	color:#222;
 }
 
.result-section { margin-bottom: 20px; }
.result-section h4 {
  margin: 0 0 8px;
  padding-left: 8px;
  font-size: 18px;
  color: var(--select-active);
  text-transform: uppercase;
  letter-spacing: 0.06em;
    border-left: 5px solid #8BC547;
    padding: 0 0 0 13px;
    font-weight: 500;
    font-family: "M PLUS Rounded 1c", sans-serif;
}
.result-line {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
  font-size: 0.88rem;
  border-bottom: 1px dashed #aaa;
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);
    
}
.result-line:last-child { border-bottom: none; }
.result-line .label { color: var(--muted); }
.result-line .value { font-weight: 500; color: var(--text);text-align:right; white-space: nowrap; }
.result-line--indent {
  padding-left: 12px;
  border-left: 2px solid var(--select-border);
  margin-left: 4px;
}
.result-line--indent .label {
  font-size: 0.84rem;
}
.result-line--muted .label,
.result-line--muted .value {
  color: var(--muted);
  font-weight: 400;
}

.surcharge-breakdown {
  margin: 8px 0 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.surcharge-note {
  margin: 6px 0 0;
  padding: 6px 10px;
  font-size: 0.75rem;
  color: var(--muted);
  background: var(--select-bg);
  border-radius: 4px;
  line-height: 1.5;
}

.subtotal {
	display: flex;
	justify-content: space-between;
	background: #f3f3f3;
	border-radius: 6px;
	margin: 8px 0 0;
	font-size: 16px;
	color: #222;
	padding:4px 12px;
	font-weight: 500;
}
.subtotal .value { font-weight: 700; color: var(--select-active); }

.total-box {
	margin-top: 20px;
	padding: 20px 18px;
	background: #8BC547;
	color: white;
	border-radius: 8px;
	text-align: center;
	box-shadow: 0 4px 12px var(--select-active-glow);
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);
}
.total-box .label {
  font-size: 0.85rem;
  opacity: 0.95;
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}
.total-box .amount {
  font-size: 2.1rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.total-box .multiplier {
  margin-top: 8px;
  font-size: 0.78rem;
  opacity: 0.9;
}

.disclaimer {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  line-height: 1.5;
    font-family: "M PLUS Rounded 1c", sans-serif;
    transform:rotate(0.03deg);
}

.empty-state {
  text-align: center;
  padding: 30px 20px;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 400;
	font-size: 16px;
    transform:rotate(0.03deg);
}

.validation-errors {
  padding: 16px;
  background: #fff5f5;
  border: 1px solid #e8b0b0;
  border-radius: 8px;
}
.validation-errors__title {
  margin: 0 0 10px;
  font-size: 0.92rem;
  font-weight: 700;
  color: #b03030;
}
.validation-errors__list {
  margin: 0;
  padding-left: 1.2em;
  font-size: 0.85rem;
  color: #8a3030;
  line-height: 1.6;
}
.validation-errors__list li + li {
  margin-top: 6px;
}

.text-gozen{display:inline-block;background:#d57877;color:#fff;padding-left:4px;margin-right:4px;}
.text-gogo{display:inline-block;background:#cd894f;color:#fff;padding-left:4px;margin-right:4px;}
.text-yakan{display:inline-block;background:#4c849b;color:#fff;padding-left:4px;margin-right:4px;}
.text-zennichi{display:inline-block;background:#8d9955;color:#fff;padding-left:4px;margin-right:4px;}

.text-rehearsal{color:#AD814F;}
.text-main{color:#597E2D;margin-right:4px;}
.text-50off{display:inline-block;background: #fff;border: 1px solid #DB2400;color: #DB2400;margin-top:2px;padding: 0 4px;}



.text-gozen,
.text-gogo,
.text-yakan,
.text-zennichi,
.text-rehearsal,
.text-main,
.text-50off {
	font-size: 12.5px;
}


/* ============================================================
   ボタン
   
   ============================================================ */
.btns.sp{
    margin: 55px 0 -20px;
}
.btns.pc{
    margin: 20px 0;
}
@media screen and (min-width: 1051px) {
  .btns.sp{
      display: none;
  }
}
@media screen and (max-width: 1052px) {
  .btns.pc{
      display: none;
  }
}
@media (max-width: 680px) {
    .btns.sp{
        margin: 5% 0 0 0;
    }
}

/* ============================================================
   お問い合わせ
   ============================================================ */

.container.contact {
    display: block;
}