/* ===============================
SSG 変数
=============================== */
form {
  --fm_color_parts: oklch(0% 0 0);
  --fm_color_border: oklch(67.312% 0.00008 271.152);
  --fm_focus_border: oklch(67.312% 0.00008 271.152);
  --fm_color_ui_button: oklch(0% 0 0);
  --fm_color_error: oklch(50% 0.2 32);
  --fm_placeholder: oklch(50% 0 70);
  --fm_column_space: -1px;
  --fm_border_radius: 0;
  --fm_font_size: calc(16 / 16 * 1rem);
  --fm_padding_block: 0.5em;
  --fm_padding_inline: 1em;
  --fm_ine_height: 1.6;
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  form {
    --fm_column_space: 0;
    --fm_padding_block: 0.45em;
    --fm_padding_inline: 0.8em;
  }
}

/* ===============================
SSG placeholder
=============================== */
:placeholder-shown {
  color: var(--fm_placeholder);
}
:focus::placeholder {
  color: transparent;
}

/* ===============================
SSG Settings
=============================== */
.fm_control_wrap {
  display: block;
  font-size: var(--fm_font_size);
  line-height: var(--fm_line_height);
}
.fm_input,
.fm_select,
.fm_textarea,
.fm_file_button,
.fm_file_pick_button {
  width: 100%;
  margin: 0;
  padding-block: var(--fm_padding_block);
  padding-inline: var(--fm_padding_inline);
  background: #fff;
  border: 1px solid var(--fm_color_border);
  color: var(--color_base);
  box-sizing: border-box;
}
.fm_input,
.fm_textarea {
  border-radius: var(--fm_border_radius);
  outline-offset: -1px;
  transition: box-shadow 0.1s;
}
.fm_select {
  width: auto;
}
.fm_textarea {
  display: block;
  min-height: calc(220 / 16 * 1rem);
  resize: vertical;
}
form :is(.fm_input, .fm_select, .fm_textarea):focus-visible {
  outline: calc(2 / 16 * 1rem) solid var(--fm_focus_border);
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  .fm_textarea {
    min-height: calc(170 / 16 * 1rem);
  }
}

/* ===============================
focusカラー 個別設定
=============================== */

/* セレクトボックス */
.fm_select_wrap:has(:focus-visible):focus-within {
  border-color: var(--fm_focus_border);
}
.fm_select_wrap:focus-within {
  outline: calc(2 / 16 * 1rem) solid var(--fm_focus_border);
  outline-offset: -1px;
}

/* radio・checkbox共通 */
.fm_control_item:has(:focus-visible) .fm_control_item_label::before {
  box-shadow: 0 0 0 calc(2 / 16 * 1rem)
  color-mix(in oklch, var(--fm_focus_border) 100%, transparent);
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .fm_control_item:hover .fm_control_item_label::before {
    box-shadow: 0 0 0 calc(2 / 16 * 1rem)
    color-mix(in oklch, var(--fm_focus_border) 80%, transparent);
  }
}

/* ===============================
ボタン設定
=============================== */
.fm_button {
  background-color: var(--fm_color_ui_button);
  border-color: var(--fm_color_ui_button);
  border-radius: var(--fm_border_radius);
  transition: background-color 0.1s, border-color 0.1s;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .fm_button:hover {
    background-color: color-mix(in srgb, var(--fm_color_ui_button) 70%, #fff);
    border-color: color-mix(in srgb, var(--fm_color_ui_button) 70%, #fff);
  }
}

/* ===============================
fm_control_item
radio / checkbox のフレーム設定
=============================== */
.fm_control_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1em;
  margin-top: var(--fm_column_space);
}
.fm_control_item {
  display: block;
  white-space: nowrap;
  margin: 0;
}
.fm_control_item label {
  display: block;
  position: relative;
  cursor: pointer;
  padding-block: 0.7em;
  border-radius: var(--fm_border_radius);
  line-height: 1.4;
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  .fm_control_wrap {
    gap: 0.2em 1em;
  }
}

/* ===============================
radio
=============================== */
.fm_radio {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  overflow: hidden;
}
.fm_radio + .fm_control_item_label {
  display: block;
  position: relative;
  padding-inline: calc(34 / 16 * 1rem) calc(18 / 16 * 1rem);
}
.fm_radio + .fm_control_item_label::before,
.fm_radio + .fm_control_item_label::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(2 / 16 * 1rem);
  left: calc(9 / 16 * 1rem);
  width: calc(18 / 16 * 1rem);
  height: calc(18 / 16 * 1rem);
  background-color: #fff;
  border: 1px solid var(--fm_color_parts);
  border-radius: calc(9999 / 16 * 1rem);
  box-sizing: border-box;
  transition: opacity 0.1s, background-color 0.1s, box-shadow 0.1s;
}
.fm_radio + .fm_control_item_label::after {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8' fill='black'/%3E%3C/svg%3E")
  no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8' fill='black'/%3E%3C/svg%3E")
  no-repeat center / contain;
  background-color: var(--fm_color_parts);
  border: 1px solid transparent;
  opacity: 0;
}
.fm_radio:checked + .fm_control_item_label::after {
  opacity: 1;
}

/* ===============================
checkbox
=============================== */
.fm_checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  overflow: hidden;
}
.fm_checkbox + .fm_control_item_label {
  display: block;
  position: relative;
  padding-inline: calc(37 / 16 * 1rem) calc(18 / 16 * 1rem);
}
.fm_checkbox + .fm_control_item_label::before,
.fm_checkbox + .fm_control_item_label::after {
  content: "";
  display: block;
  position: absolute;
  top: 1px;
  left: calc(9 / 16 * 1rem);
  width: calc(18 / 16 * 1rem);
  height: calc(18 / 16 * 1rem);
  border: 1px solid var(--fm_color_parts);
  background-color: #fff;
  transition: opacity 0.1s, background-color 0.1s, box-shadow 0.1s;
  will-change: auto;
}
.fm_checkbox + .fm_control_item_label::after {
  -webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='1 1 18 18'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")
  no-repeat center / contain;
  mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='1 1 18 18'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")
  no-repeat center / contain;
  background-color: #fff;
  border: 1px solid transparent;
  opacity: 0;
}
.fm_checkbox:checked + .fm_control_item_label::before {
  background-color: var(--fm_color_parts);
}
.fm_checkbox:checked + .fm_control_item_label::after {
  opacity: 1;
}

/* ===============================
Select
=============================== */
.fm_select_wrap {
  display: block;
  position: relative;
  background-color: #fff;
  overflow: hidden;
  border: 1px solid var(--fm_color_border);
  border-radius: var(--fm_border_radius);
}
.fm_select_wrap select:not([data-has-value="true"]) {
  color: color-mix(in srgb, var(--color_base) 80%, #fff);
}
.fm_select_wrap .fm_select_icon {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  aspect-ratio: 1 /1;
  background-color: var(--fm_color_parts);
}
.fm_select_wrap .fm_select_icon::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  width: calc(11 / 16 * 1rem);
  height: calc(9 / 16 * 1rem);
  margin: auto;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background-color: #fff;
}
.fm_select_wrap .fm_select {
  position: relative;
  width: 100%;
  padding-right: 3.7em;
  border-color: transparent;
  z-index: 2;
  background-color: transparent;
  cursor: pointer;
  outline: none;
}
.fm_select_wrap.is_visible {
  border-color: color-mix(in srgb, var(--fm_color_error) 70%, #fff);
}
.fm_select_wrap.is_visible .fm_select_icon {
  background-color: var(--fm_color_error);
}

/* ===============================
File / Default
=============================== */
.fm_file_wrap {
  display: flex;
}
.fm_file_wrap .fm_file {
  display: none;
}
.fm_file_button {
  display: block;
  max-width: calc(240 / 16 * 1rem);
  line-height: var(--fm_line_height);
  color: #fff;
  cursor: pointer;
  transition: opacity 0.1s;
}
.fm_file_name_wrap {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin-top: calc(10 / 16 * 1rem);
  padding-right: calc(15 / 16 * 1rem);
}
.fm_file_name {
  display: block;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  line-height: 1.3;
  min-width: calc(250 / 16 * 1rem);
  padding: calc(5 / 16 * 1rem) calc(25 / 16 * 1rem) calc(5 / 16 * 1rem) calc(10 / 16 * 1rem);
  border-radius: var(--fm_border_radius);
  font-size: calc(14 / 16 * 1rem);
}
.fm_file_wrap.is_upload .fm_file_name {
  background-color: color-mix(in srgb, var(--fm_color_parts) 15%, #fff);
}
.fm_file_wrap .fm_file_reset {
  display: none;
  position: absolute;
  top: -1px;
  right: 0;
  width: calc(30 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  background-color: var(--fm_color_parts);
  border-radius: calc(9999 / 16 * 1rem);
  text-indent: 200%;
  white-space: nowrap;
  overflow: hidden;
}
.fm_file_wrap .fm_file_reset::before,
.fm_file_wrap .fm_file_reset::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  width: 50%;
  height: 1px;
  margin: auto;
  background-color: #fff;
  transform: rotate(45deg);
}
.fm_file_wrap .fm_file_reset::after {
  transform: rotate(-45deg);
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  .fm_file_wrap {
    display: block;
  }
  .fm_file_name {
    display: block;
    margin: 0.8em 0 0 0;
    line-height: 1.3;
    font-size: calc(var(--fm_font_size) * 0.9);
  }
}

/* ===============================
File / Drag & Drop
=============================== */
.fm_file_drop_zone {
  display: grid;
  place-content: center;
  position: relative;
  padding: calc(40 / 16 * 1rem) 1em calc(30 / 16 * 1rem);
  border: calc(2 / 16 * 1rem) dashed var(--fm_color_border);
  border-radius: var(--fm_border_radius);
  background: linear-gradient(
  to bottom right,
  #fff 0%,
  color-mix(in srgb, var(--fm_color_parts) 10%, #fff) 100%
  );
  text-align: center;
  transition: border-color 0.2s, background-color 0.2s;
  font-size: calc(14 / 16 * 1rem);
}
.fm_file_drop_zone::before {
  content: "";
  display: block;
  width: calc(70 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  margin: 0 auto calc(20 / 16 * 1rem);
  background-color: color-mix(in srgb, var(--fm_color_parts) 35%, #fff);
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2060%2042%27%3E%3Cpath%20fill%3D%27%23fff%27%20d%3D%27M50.07%2C19.64c.02-.3.04-.61.04-.91%2C0-6.41-5.25-11.6-11.72-11.6-1.99%2C0-3.87.49-5.52%2C1.36C31.1%2C3.54%2C26.33%2C0%2C20.73%2C0%2C13.61%2C0%2C7.84%2C5.71%2C7.84%2C12.75c0%2C1.32.2%2C2.6.58%2C3.8C3.49%2C18.48%2C0%2C23.23%2C0%2C28.8c0%2C7.26%2C5.95%2C13.15%2C13.29%2C13.15h13.87v-7.64c0-.7-.58-1.27-1.29-1.27h-2.4c-.71%2C0-.94-.46-.51-1.02l6.26-8.17c.43-.56%2C1.13-.56%2C1.56%2C0l6.26%2C8.17c.43%2C.56.2%2C1.02-.51%2C1.02h-2.4c-.71%2C0-1.29.57-1.29%2C1.27v7.64h14.74c.35.03.71.05%2C1.08.05%2C6.26%2C0%2C11.34-5.03%2C11.34-11.23%2C0-5.73-4.33-10.45-9.93-11.14Z%27/%3E%3C/svg%3E")
  no-repeat center;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2060%2042%27%3E%3Cpath%20fill%3D%27%23fff%27%20d%3D%27M50.07%2C19.64c.02-.3.04-.61.04-.91%2C0-6.41-5.25-11.6-11.72-11.6-1.99%2C0-3.87.49-5.52%2C1.36C31.1%2C3.54%2C26.33%2C0%2C20.73%2C0%2C13.61%2C0%2C7.84%2C5.71%2C7.84%2C12.75c0%2C1.32.2%2C2.6.58%2C3.8C3.49%2C18.48%2C0%2C23.23%2C0%2C28.8c0%2C7.26%2C5.95%2C13.15%2C13.29%2C13.15h13.87v-7.64c0-.7-.58-1.27-1.29-1.27h-2.4c-.71%2C0-.94-.46-.51-1.02l6.26-8.17c.43-.56%2C1.13-.56%2C1.56%2C0l6.26%2C8.17c.43%2C.56.2%2C1.02-.51%2C1.02h-2.4c-.71%2C0-1.29.57-1.29%2C1.27v7.64h14.74c.35.03.71.05%2C1.08.05%2C6.26%2C0%2C11.34-5.03%2C11.34-11.23%2C0-5.73-4.33-10.45-9.93-11.14Z%27/%3E%3C/svg%3E")
  no-repeat center;
}
.fm_file_drop_zone .fm_file_input {
  display: none;
}
.fm_file_drop_zone.dragover {
  border-color: oklch(27.819% 0.05209 262.036);
  background: oklch(97% 0.006 240.37);
}
.fm_file_drop_zone[data-state="accepted"] {
  border-color: oklch(52% 0.11572 150.671);
  background: oklch(97% 0.01395 156.004);
}
.fm_file_drop_zone[data-state="rejected"] {
  border-color: oklch(52% 0.17831 28.691);
  background: oklch(97% 0.01183 16.849);
}
.fm_file_drop_or {
  color: var(--fm_placeholder);
}
.fm_file_pick_button {
  width: fit-content;
  margin: 0.3em auto 0;
  padding: 0.3em 2em;
  color: #fff;
  transition: opacity 0.1s;
}
.fm_file_note {
  margin-top: 0.8em;
  font-size: calc(13 / 16 * 1rem);
}
.fm_file_info {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin-top: calc(10 / 16 * 1rem);
  padding-right: calc(15 / 16 * 1rem);
}
.fm_file_drop_name {
  display: block;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  line-height: 1.3;
  min-width: calc(250 / 16 * 1rem);
  padding: calc(5 / 16 * 1rem) calc(25 / 16 * 1rem) calc(5 / 16 * 1rem) calc(10 / 16 * 1rem);
  border-radius: var(--fm_border_radius);
  font-size: calc(14 / 16 * 1rem);
}
.fm_file_info.is_upload .fm_file_drop_name {
  background-color: color-mix(in srgb, var(--fm_color_parts) 15%, #fff);
}
.fm_file_info .fm_file_remove {
  position: absolute;
  top: -1px;
  right: 0;
  width: calc(30 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  background-color: var(--fm_color_parts);
  border-radius: calc(9999 / 16 * 1rem);
  text-indent: 200%;
  white-space: nowrap;
  overflow: hidden;
}
.fm_file_info .fm_file_remove::before,
.fm_file_info .fm_file_remove::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  width: 50%;
  height: 1px;
  margin: auto;
  background-color: #fff;
  transform: rotate(45deg);
}
.fm_file_info .fm_file_remove::after {
  transform: rotate(-45deg);
}
.fm_file_status {
  font-size: calc(14 / 16 * 1rem);
}
.fm_file_status.__error {
  position: relative;
  padding-left: calc(25 / 16 * 1rem);
  color: var(--fm_color_error);
}
.fm_file_status.__error::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(2 / 16 * 1rem);
  left: 0;
  width: calc(17 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  background-color: var(--fm_color_error);
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%23fff'%20d='M505.095,407.125L300.77,53.208c-9.206-15.944-26.361-25.849-44.774-25.849c-18.412,0-35.552,9.905-44.751,25.849L6.905,407.109c-9.206,15.944-9.206,35.746,0,51.69c9.206,15.944,26.354,25.842,44.758,25.842h408.674c18.405,0,35.568-9.897,44.759-25.842C514.302,442.855,514.302,423.053,505.095,407.125z%20M256.004,426.437c-17.668,0-32.013-14.33-32.013-32.004c0-17.668,14.345-31.997,32.013-31.997c17.667,0,31.997,14.329,31.997,31.997C288.001,412.108,273.671,426.437,256.004,426.437z%20M275.72,324.011c0,10.89-8.834,19.709-19.716,19.709c-10.898,0-19.717-8.818-19.717-19.709l-12.296-144.724c0-17.676,14.345-32.005,32.013-32.005c17.667,0,31.997,14.33,31.997,32.005L275.72,324.011z'/%3E%3C/svg%3E")
  no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%23fff'%20d='M505.095,407.125L300.77,53.208c-9.206-15.944-26.361-25.849-44.774-25.849c-18.412,0-35.552,9.905-44.751,25.849L6.905,407.109c-9.206,15.944-9.206,35.746,0,51.69c9.206,15.944,26.354,25.842,44.758,25.842h408.674c18.405,0,35.568-9.897,44.759-25.842C514.302,442.855,514.302,423.053,505.095,407.125z%20M256.004,426.437c-17.668,0-32.013-14.33-32.013-32.004c0-17.668,14.345-31.997,32.013-31.997c17.667,0,31.997,14.329,31.997,31.997C288.001,412.108,273.671,426.437,256.004,426.437z%20M275.72,324.011c0,10.89-8.834,19.709-19.716,19.709c-10.898,0-19.717-8.818-19.717-19.709l-12.296-144.724c0-17.676,14.345-32.005,32.013-32.005c17.667,0,31.997,14.33,31.997,32.005L275.72,324.011z'/%3E%3C/svg%3E")
  no-repeat center/contain;
}
.fm_file_status.__complete {
  position: relative;
  margin-top: calc(5 / 16 * 1rem);
  padding-left: calc(25 / 16 * 1rem);
  color: #2d7d46;
}
.fm_file_status.__complete::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(3 / 16 * 1rem);
  left: 0;
  width: calc(17 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  background-color: #2d7d46;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%20200%20200'%3E%3Cpath%20fill='%23fff'%20d='M113.626,263a100,100,0,1,0,100,100,100,100,0,0,0-100-100Zm52.351,46.256a14.621,14.621,0,0,1,11.965,23.865L113,414.961a14.621,14.621,0,0,1-23.328-.562L45,352.159a14.621,14.621,0,1,1,23.753-17.043l33.377,46.5,52.908-66.669a14.621,14.621,0,0,1,10.94-5.69Z'%20transform='translate(-13.626%20-263.001)'/%3E%3C/svg%3E")
  no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%20200%20200'%3E%3Cpath%20fill='%23fff'%20d='M113.626,263a100,100,0,1,0,100,100,100,100,0,0,0-100-100Zm52.351,46.256a14.621,14.621,0,0,1,11.965,23.865L113,414.961a14.621,14.621,0,0,1-23.328-.562L45,352.159a14.621,14.621,0,1,1,23.753-17.043l33.377,46.5,52.908-66.669a14.621,14.621,0,0,1,10.94-5.69Z'%20transform='translate(-13.626%20-263.001)'/%3E%3C/svg%3E")
  no-repeat center/contain;
}

/* タッチ端末向け（PCサイズ） */
@media (pointer: coarse) {
  .fm_file_drop_zone {
    display: contents;
    padding: 0;
    border: 0;
  }
  .fm_file_drop_zone::before,
  .fm_file_drop_zone .fm_file_input,
  .fm_file_drop_message,
  .fm_file_drop_or {
    display: none;
  }
  .fm_file_pick_button {
    display: block;
    width: fit-content;
    min-width: calc(240 / 16 * 1rem);
    margin: 0;
    padding-block: var(--fm_padding_block);
    padding-inline: var(--fm_padding_inline);
    line-height: var(--fm_line_height);
    color: #fff;
    cursor: pointer;
    transition: opacity 0.1s;
    font-size: var(--fm_font_size);
    line-height: inherit;
  }
  .fm_file_note,
  .fm_file_list {
    display: none;
  }
  .fm_file_status {
    margin: 0 0 0 1em;
    color: revert;
    font-size: calc(15 / 16 * 1rem);
  }
}

/* SP タッチ端末向け（SPサイズ）  ------------------ */
@media screen and (max-width: 768.999px) and (pointer: coarse) {
  .fm_file_status {
    display: block;
    margin: 0.8em 0 0 0;
    line-height: 1.3;
    font-size: calc(var(--fm_font_size) * 0.9);
  }
}

/* ===============================
エラー枠、エラーチップの設定
=============================== */

/* 入力枠のカラー変更 */
input[aria-invalid="true"],
textarea[aria-invalid="true"] {
  border-color: color-mix(in srgb, var(--fm_color_error) 60%, #fff);
  border-radius: var(--fm_border_radius);
}
.fm_control_wrap.is_visible {
  outline: 1px solid color-mix(in srgb, var(--fm_color_error) 60%, #fff);
  border-radius: var(--fm_border_radius);
  background-color: color-mix(in srgb, var(--fm_color_error) 5%, #fff);
}

/* エラー表示 */
.fm_error {
  overflow: hidden;
  height: 0;
  opacity: 0;
  width: fit-content;
  margin-top: .25em;
  color: var(--fm_color_error);
  font-size: calc(15 / 16 * 1rem);
  transition: height 200ms ease, opacity 200ms ease;
  will-change: height, opacity;
}
.fm_error.is_visible {
  opacity: 1;
  height: auto;
  overflow: auto;
}

/* ===============================
noscript アラート
=============================== */
.fm_noscript_text {
  margin-bottom: 1em;
  padding: 1.5em 1em;
  text-align: center;
  border: 1px solid var(--fm_color_error);
  background-color: color-mix(in srgb, var(--fm_color_error) 5%, #fff);
  border-radius: calc(3 / 16 * 1rem);
}

/* ===============================
fm_postcode
=============================== */
.fm_postcode {
  position: relative;
  display: flex;
  align-items: center;
}
.fm_postcode_input {
  width: 10em;
}
.fm_postcode_button {
  display: grid;
  place-content: center;
  margin-left: calc(10 / 16 * 1rem);
  padding-block: var(--fm_padding_block);
  padding-inline: 0.6em;
  color: #fff;
  overflow: hidden;
}
.fm_postcode_button span {
  display: block;
  font-size: calc(14 / 16 * 1rem);
}

/* ===============================
fm_submit
=============================== */
.fm_submit {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  background-color: var(--fm_color_ui_button);
  border-color: var(--fm_color_ui_button);
  border-radius: var(--fm_border_radius);
  transition: background-color 0.1s, border-color 0.1s;
}
.fm_submit:is(.is_pending, [aria-disabled="true"]) {
  pointer-events: none;
  cursor: wait;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .fm_submit:is(:hover, .is_pending, [aria-disabled="true"]) {
    background-color: color-mix(in srgb, var(--fm_color_ui_button) 70%, #fff);
    border-color: color-mix(in srgb, var(--fm_color_ui_button) 70%, #fff);
  }
}

/* ===============================
reCAPTCHAバッジの位置調整
=============================== */
.grecaptcha-badge {
  z-index: 99;
}

/* ===============================
送信エラー / 各エラーのデザインの調整
=============================== */
.fm_server_error,
.fm_server_error:empty,
.is_SSG_sending .fm_server_error {
  display: none;
  margin: calc(80 / 16 * 1rem) auto 0;
  padding: 1em;
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.05em;
  border: 1px solid var(--fm_color_error);
  color: var(--fm_color_error);
}
.fm_server_error.is_visible {
  display: block;
}
.fm_server_error.is_visible.is_success {
  border: 1px solid oklch(62% 0.15 153);
  color: oklch(62% 0.15 153);
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  .fm_server_error {
    margin-top: calc(50 / 16 * 1rem);
  }
}

/* ===============================
グローバルエラー
=============================== */
.fm_global_error {
  transition: none;
}
html.is_programmatic_scrolling {
  overflow-anchor: none !important;
}
.fm_global_error {
  display: none;
  margin: calc(50 / 16 * 1rem) auto;
  padding: calc(35 / 16 * 1rem) 1em;
  background-color: color-mix(in srgb, var(--fm_color_error) 10%, #fff);
  border-radius: var(--fm_border_radius);
  border: 1px solid color-mix(in srgb, var(--fm_color_error) 30%, #fff);
  color: var(--fm_color_error);
  line-height: 1.8;
}
.fm_global_error.is_visible {
  display: block;
}
.fm_error_heading {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  padding-left: calc(26 / 16 * 1rem);
  font-size: calc(18 / 16 * 1rem);
  font-weight: bold;
}
.fm_error_heading::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(5 / 16 * 1rem);
  left: 0;
  width: calc(20 / 16 * 1rem);
  aspect-ratio: 1 / 1;
  background-color: var(--fm_color_error);
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%23fff'%20d='M505.095,407.125L300.77,53.208c-9.206-15.944-26.361-25.849-44.774-25.849c-18.412,0-35.552,9.905-44.751,25.849L6.905,407.109c-9.206,15.944-9.206,35.746,0,51.69c9.206,15.944,26.354,25.842,44.758,25.842h408.674c18.405,0,35.568-9.897,44.759-25.842C514.302,442.855,514.302,423.053,505.095,407.125z%20M256.004,426.437c-17.668,0-32.013-14.33-32.013-32.004c0-17.668,14.345-31.997,32.013-31.997c17.667,0,31.997,14.329,31.997,31.997C288.001,412.108,273.671,426.437,256.004,426.437z%20M275.72,324.011c0,10.89-8.834,19.709-19.716,19.709c-10.898,0-19.717-8.818-19.717-19.709l-12.296-144.724c0-17.676,14.345-32.005,32.013-32.005c17.667,0,31.997,14.33,31.997,32.005L275.72,324.011z'/%3E%3C/svg%3E")
  no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20fill='%23fff'%20d='M505.095,407.125L300.77,53.208c-9.206-15.944-26.361-25.849-44.774-25.849c-18.412,0-35.552,9.905-44.751,25.849L6.905,407.109c-9.206,15.944-9.206,35.746,0,51.69c9.206,15.944,26.354,25.842,44.758,25.842h408.674c18.405,0,35.568-9.897,44.759-25.842C514.302,442.855,514.302,423.053,505.095,407.125z%20M256.004,426.437c-17.668,0-32.013-14.33-32.013-32.004c0-17.668,14.345-31.997,32.013-31.997c17.667,0,31.997,14.329,31.997,31.997C288.001,412.108,273.671,426.437,256.004,426.437z%20M275.72,324.011c0,10.89-8.834,19.709-19.716,19.709c-10.898,0-19.717-8.818-19.717-19.709l-12.296-144.724c0-17.676,14.345-32.005,32.013-32.005c17.667,0,31.997,14.33,31.997,32.005L275.72,324.011z'/%3E%3C/svg%3E")
  no-repeat center/contain;
}
.fm_global_error_list {
  width: fit-content;
  margin: 1em auto 0;
}
.fm_global_error_list li {
  position: relative;
  padding-left: 1em;
}
.fm_global_error_list li::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 0.4em;
  height: 0.4em;
  background-color: var(--fm_color_error);
  border-radius: calc(9999 / 16 * 1rem);
}
.file_status.__error {
  position: relative;
  padding-left: calc(25 / 16 * 1rem);
  color: var(--fm_color_error);
}

/* SP調整 ------------------ */
@media screen and (max-width: 768.999px) {
  .fm_global_error_list {
    font-size: calc(14 / 16 * 1rem);
  }
}