@charset "utf-8";

.p-main.page .c-inner {
  max-width: 96.4rem;
}

section.l-head .l-head_title {
  font-family: var(--serif);
  font-size: 2.4rem;
  line-height: 1.4;
  letter-spacing: 0.004em;
  text-align: center;
  color: #fff;
  padding: 0.7rem 0;
  background: #33281e;
}

.l-head_head {
  font-weight: 600;
  font-size: 2.4rem;
  line-height: 1.8;
  text-align: center;
  letter-spacing: 0.04em;
  margin-top: 2.4rem;
}

@media (max-width: 720px) {
  .l-head_head {
    font-size: 1.8rem;
  }
}

.l-head_images {
  display: flex;
  gap: 0.4rem;
  margin-top: 2.7rem;
}

.l-head_images--image {
  flex: 1;
}

section.l-head .l-head_text {
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: center;
  margin-top: 2.4rem;
}

section.l-head .l-head_toform {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.4rem;
  line-height: calc(20 / 14);
  letter-spacing: 0.004em;
  text-align: center;
  max-width: 26.4rem;
  margin: 3.2rem auto 0;
  padding: 1.4rem 2.4rem;
  border: solid 0.1rem #000;
  border-radius: 100em;
}

section.l-head .l-head_toform:hover {
  opacity: 1;
  color: #fff;
  background: #000;
}

section.l-head .l-head_toform svg {
  flex-basis: 1rem;
}

section.l-head .l-head_toform svg path {
  fill: currentColor;
}

section.l-head .l-head_note {
  font-size: 1.2rem;
  line-height: 1.8;
  letter-spacing: 0.004em;
  color: #4d4d4d;
  margin-top: 3.2rem;
}

/*----- 開催概要 -----*/
.p-main.page section.l-overview {
  margin-top: 4rem;
}

.l-overview_body {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  margin-top: 2.4rem;
}

.l-overview_body--section {
  display: flex;
  justify-content: flex-start;
}

.l-overview_body--section dl {
  font-size: 1.6rem;
  line-height: 1.8;
}

.l-overview_body--section dt {
  white-space: nowrap;
}

.l-overview_body--section dd a {
  text-decoration: underline;
  color: #1A73E8;
}

.l-overview_body--section .notes {
  font-size: 1.4rem;
  line-height: 1.8;
  margin-top: 0.4rem;
}

/* ボタン */
.l-overview_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 4.8rem;
}

.l-overview_btn--item {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  font-size: 1.6rem;
  line-height: 1;
  color: #33281E;
  width: 100%;
  max-width: 36.5rem;
  padding: 1.4rem 0 1.5rem;
  border: solid 0.2rem #33281E;
  border-radius: 1rem;
}

.l-overview_btn--item_text {
  font-weight: 600;
  font-size: 1.6rem;
  line-height: calc(27.8 / 16);
}

.l-overview_btn--item_icon {
  width: 1.6rem;
}

.l-overview_btn--item_icon path {
  fill: currentColor;
}

/* ボタン：ホバー時 */
.l-overview_btn--item:hover {
  opacity: 1;
  background: #33281E;
  color: #fff;
}

/*====================
  フォーム
====================*/
.p-main.page section.l-form {
  margin-top: 6rem;
  padding: 5.6rem 0;
  background: #faf8f5;
}

section.l-form .l-form_inner {
  max-width: 86.6rem;
  margin: 0 auto;
}

section.l-form .l-form_head {
  color: #fff;
  max-width: 66.5rem;
  margin: 0 auto;
  padding: 1.6rem 0;
  border-radius: 1rem;
  background: #FA6E00;
}

section.l-form .l-form_head--title {
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.4;
  text-align: center;
}

section.l-form .l-form_head--text {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.4;
  text-align: center;
  margin-top: 1rem;
}

section.l-form .smf-item__description {}

section.l-form .l-form_input {
  margin-top: 4.8rem;
  padding: 4.8rem 1.6rem;
  background: #fff;
  border-radius: 1rem;
}

section.l-form .l-form_input--inner {
  max-width: 58.8rem;
  margin: 0 auto;
}

section.l-form .smf-item:not(:first-child) {
  margin-top: 3.2rem;
}

section.l-form .smf-item__label {
  display: flex;
}

section.l-form .smf-item__label__text {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: calc(23 / 15);
}

section.l-form .smf-item__label__text code {
  font-weight: 400;
}

/* 必須項目 */
section.l-form .smf-item.-require .smf-item__label__text::before {
  content: "必須";
  font-size: 1.2rem;
  line-height: calc(18 / 12);
  color: #fff;
  margin-top: 0.2rem;
  padding: 0.1rem 0.5rem;
  background: #f14848;
  border-radius: 0.3rem;
}


/*------ エラー ------*/
section.l-form .smf-item__col--controls .smf-text-control__control[data-invalid],
section.l-form .smf-item__col--controls .smf-textarea-control__control[data-invalid] {
  border-color: #cc3033;
}

section.l-form .smf-error-messages {
  all: unset;
  font-size: 0;
  width: 100%;
  margin: 0;
}

section.l-form .smf-error-messages::before {
  display: block;
  content: "入力してください";
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #cc3033;
  margin-top: 0.5em;
}

/* フォームの説明 */
section.l-form .smf-control-description {
  font-size: 1.4rem;
  line-height: 1.4;
  color: #333;
  margin-top: 1.6rem;
}

section.l-form .smf-item__col--controls {
  margin-top: 1rem;
}

section.l-form .smf-item .smf-item__controls {
  display: flex;
  flex-direction: column;
  gap: 1rem 0.9rem;
}

section.l-form .smf-item.-name .smf-item__controls {
  flex-direction: row;
}

section.l-form .smf-item__col--controls .smf-placeholder {
  flex: 1;
  max-width: 100%;
}

section.l-form .smf-item__col--controls .smf-text-control__control,
section.l-form .smf-item__col--controls .smf-textarea-control__control {
  font-size: 16px;
  line-height: calc(23 / 16);
  width: 100%;
  padding: 1.2rem 1.3rem;
  border: solid 0.1rem #cdcdcd;
  border-radius: 0.5rem;
}

section.l-form .smf-item__col--controls .smf-textarea-control__control {
  resize: vertical;
  height: calc((1em / 16 * 23 * 5) + 2.4rem);
  min-height: calc((1em / 16 * 23 * 5) + 2.4rem);
}

section.l-form .smf-action {
  display: flex;
  justify-content: center;
  gap: 1.6rem;
}

.smf-action .smf-button-control+.smf-button-control {
  margin: 0;
}

section.l-form .smf-button-control__control {
  position: relative;
  transition: 0.3s;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.3rem;
  line-height: calc(20 / 13);
  color: #fff;
  width: 18.075rem;
  margin: 3.4rem auto 0;
  padding: 1.2rem 2.075rem 1.2rem 1.8rem;
  border: solid 0.2rem #33281e;
  background: #33281e;
  border-radius: 100em;
}

section.l-form .smf-button-control__control:after {
  position: absolute;
  top: 50%;
  right: 2rem;
  transform: translateY(-50%);
  display: block;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.39rem 0 0.39rem 0.68rem;
  border-color: transparent transparent transparent currentColor;
}

section.l-form .smf-button-control__control:hover,
section.l-form .smf-button-control__control[data-action="back"] {
  color: #33281e;
  background: #fff;
}

section.l-form .smf-button-control__control[data-action="back"] {
  padding-left: 2.075rem;
  padding-right: 1.8rem;
}

section.l-form .smf-button-control__control[data-action="back"]::after {
  left: 2rem;
  right: unset;
  transform: translateY(-50%) rotate(180deg);
}

/*----- ラジオボタン -----*/
.smf-radio-buttons-control__control {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.8rem;
}

.smf-radio-buttons-control__control .smf-label label {
  display: block;
}

.smf-radio-buttons-control__control .smf-label input {
  display: none !important;
}

.smf-radio-buttons-control__control .smf-radio-button-control__label {
  display: flex;
  gap: 1rem;
  font-size: 1.4rem;
  line-height: 1.4;
  color: #4D4D4D;
  padding: 0.9rem 0.7rem;
  background: #E7EAE9;
}

.smf-radio-buttons-control__control .smf-radio-button-control__label::before {
  display: block;
  content: "";
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #fff;
  border: solid 0.4rem #fff;
}

/* チェック時 */
.smf-radio-buttons-control__control input:checked+.smf-radio-button-control__label {
  background: #FFF039;
}

.smf-radio-buttons-control__control input:checked+.smf-radio-button-control__label::before {
  background: #333;
}

/* エラー文 */
section.l-form .smf-radio-buttons-control~.smf-error-messages::before {
  content: "選択してください";
}


/*----- チェックボックス -----*/
.smf-checkboxes-control {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.6rem;
}

/* エラー文 */
section.l-form .smf-checkboxes-control~.smf-error-messages::before {
  content: "チェック✓を入れてください";
}

/*----- ファイルアップロード -----*/
.smf-file-control:not(.smf-file-control--set):not(.smf-file-control--uploaded) label {
  position: relative;
  width: 100%;
  height: 23.6rem;
}

.smf-file-control:not(.smf-file-control--set) label>* {
  display: none !important;
}

.smf-file-control:not(.smf-file-control--set) label::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background: url("../../img/entry-store/file_upload.svg") no-repeat, #F9F9F9;
  background-size: contain;
  background-position: center;
  border: solid 0.1rem #CDCDCD;
  border-radius: 0.5rem;
}

/*----- 出店の種類 -----*/
.smf-placeholder[data-name='shop-category_other'] {
  display: none;
}

/*------ 許可等 ------*/
section.l-form .smf-item.-permission_head .smf-item__label__text {
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.4;
  color: #fff;
  padding: 0.3rem 0.7rem;
  background: #33281E;
}

section.l-form .smf-item.-permission_head .smf-item__description {
  font-size: 1.4rem;
  line-height: 1.4;
  color: #121212;
  margin-top: 1.2rem;
}

section.l-form .smf-item.-permission_head .smf-item__col--controls {
  font-weight: 600;
}

section.l-form .snow-monkey-form[data-screen="confirm"] .smf-item.-permission_head {
  display: none;
}

/*----- 確認チェック -----*/
.smf-placeholder[data-name='confirm'] {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 4rem;
}

.smf-placeholder[data-name='confirm'] .smf-checkbox-control__label {
  display: none;
}

.smf-placeholder[data-name='confirm'] .smf-control-description {
  font: inherit;
  margin: 0;
}

.smf-placeholder[data-name='confirm'] .smf-control-description a {
  text-decoration: underline;
  color: #1A73E8;
}

.smf-placeholder[data-name='confirm'] .smf-error-messages {
  text-align: center;
}

.snow-monkey-form[data-screen="confirm"] .smf-placeholder[data-name='confirm'] {
  display: none;
}

/*----- 確認画面 -----*/
section.l-form .snow-monkey-form[data-screen="confirm"] .smf-item__col--controls .smf-placeholder {
  flex: none;
}

@media (max-width: 720px) {
  section.l-head .l-head_title {
    font-size: 2.1rem;
    padding: 1rem 1.6rem;
  }

  section.l-head .l-head_text {
    margin-top: 2rem;
  }

  section.l-head .l-head_toform {
    margin-top: 2.4rem;
  }

  section.l-overview .l-overview_text {
    margin-top: 2rem;
  }

  section.l-overview .l-overview_text+.l-overview_text {
    margin-top: 3.2rem;
  }

  section.l-overview .l-overview_text a {
    text-decoration: underline;
    color: #1a73e8;
  }

  section.l-overview .l-overview_list {
    margin-top: 4.8rem;
  }

  section.l-overview .l-overview_list--item:not(:first-child) {
    margin-top: 4.8rem;
  }

  section.l-overview .l-overview_list--item_body {
    margin-top: 1.2rem;
  }

  section.l-overview .l-overview_list--item_body--code {
    margin-top: 1.2rem;
    padding: 0.8rem 1.6rem;
  }

  section.l-overview .l-overview_list--item_body--code code {
    font-size: 1.4rem;
    line-height: 1.5;
  }

  section.l-overview .l-overview_list--item_body--copy {
    margin-top: 1.6rem;
  }

  section.l-overview .l-overview_list--item_body--copy_btn .text {
    font-size: 1.4rem;
  }

  /*====================
    フォーム
  ====================*/
  section.l-form {
    padding: 5.6rem 0;
  }

  section.l-form .l-form_head {
    margin: 0 1.6rem;
    padding: 1.6rem;
    border-radius: 1rem;
  }

  section.l-form .l-form_head--title {
    font-size: 2rem;
  }

  section.l-form .l-form_head--text {
    font-size: 1.4rem;
    margin-top: 1rem;
  }

  section.l-form .l-form_input {
    margin-top: 2.4rem;
    border-radius: 0;
  }

  section.l-form .smf-action {
    gap: 1rem;
  }

  section.l-form .smf-button-control__control {
    width: 15rem;
  }
}