.form_part {
  --labelColor:var(--formLabelColor);
  --borderColor:var(--formBorderColor);
  --bgColor:var(--formBgColor);
  --borderWidth:var(--formBorder);
  --partsRadius:var(--formRadius);
  --h:var(--formPartHeight);
  --topPadding:var(--formPartPaddingRow);
  --bottomPadding:var(--formPartPaddingRow);
  --leftPadding:var(--formPartPaddingColumn);
  --rightPadding:var(--formPartPaddingColumn);
  --formPartTextColor:var(--formTextColor);
  display: flex;
  flex-direction: column;
  grid-gap: var(--space1);
  margin-bottom: var(--space2);
  width: 100%; }
  .form_part .label {
    color: var(--labelColor);
    font-size: var(--fontSize_s);
    font-family: "Century Gothic", "Inter", "Noto Sans JP", sans-serif;
    font-weight: 800; }
    .form_part .label .require::before {
      content: "*";
      color: #C53027; }

.input_wrap,
.select_wrap,
.textarea_wrap {
  position: relative; }

input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]),
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  display: block;
  border: var(--borderWidth) solid var(--borderColor);
  background: var(--bgColor);
  border-radius: var(--partsRadius);
  padding: var(--topPadding) var(--rightPadding) var(--bottomPadding) var(--leftPadding);
  height: var(--h);
  width: 100%;
  box-sizing: border-box;
  font-size: var(--fontSize);
  color: var(--formPartTextColor); }

.select_wrap {
  --rightPadding:calc( var(--formPartPaddingColumn) + var(--space2) ); }
  .select_wrap::after {
    width: 8px;
    height: 6px;
    background: var(--primaryColor);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: calc( var(--formPartPaddingColumn) + ( var(--space2) - 8px ) / 2 );
    margin: auto;
    pointer-events: none; }

textarea {
  font-family: "Century Gothic", "Inter", "Noto Sans JP", sans-serif;
  font-weight: 400;
  height: auto; }

label {
  position: relative;
  cursor: pointer;
  --crHeight:calc( var(--h) * 2 / 5 ); }
  label input[type=checkbox], label input[type=radio] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    filter: Alpha(opacity=0); }
    label input[type=checkbox] + .txt,
    label input[type=checkbox] + .wpcf7-list-item-label, label input[type=radio] + .txt,
    label input[type=radio] + .wpcf7-list-item-label {
      position: relative;
      display: flex;
      width: fit-content;
      grid-gap: var(--space1);
      align-items: center;
      flex-wrap: wrap; }
      label input[type=checkbox] + .txt::before,
      label input[type=checkbox] + .wpcf7-list-item-label::before, label input[type=radio] + .txt::before,
      label input[type=radio] + .wpcf7-list-item-label::before {
        width: var(--crHeight);
        height: var(--crHeight);
        content: "";
        border: var(--borderWidth) solid var(--borderColor);
        background: var(--bgColor); }
      label input[type=checkbox] + .txt::after,
      label input[type=checkbox] + .wpcf7-list-item-label::after, label input[type=radio] + .txt::after,
      label input[type=radio] + .wpcf7-list-item-label::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        transition: var(-animationDuration) opacity; }
    label input[type=checkbox]:not(:checked) + .txt::after,
    label input[type=checkbox]:not(:checked) + .wpcf7-list-item-label::after, label input[type=radio]:not(:checked) + .txt::after,
    label input[type=radio]:not(:checked) + .wpcf7-list-item-label::after {
      opacity: 0;
      filter: Alpha(opacity=0); }
  label input[type=checkbox] + .txt::after,
  label input[type=checkbox] + .wpcf7-list-item-label::after {
    width: 10px;
    height: 7px;
    border-width: 3px;
    border-style: solid;
    border-color: transparent transparent var(--primaryColor) var(--primaryColor);
    transform: translateY(-3px) rotate(-45deg);
    left: 3px; }
  label input[type=radio] + .txt::before,
  label input[type=radio] + .wpcf7-list-item-label::before {
    border-radius: 50%; }
  label input[type=radio] + .txt::after,
  label input[type=radio] + .wpcf7-list-item-label::after {
    width: calc( var(--crHeight) - 3px * 2 );
    height: calc( var(--crHeight) - 3px * 2 );
    border-radius: 50%;
    box-sizing: border-box;
    left: 4px;
    background: var(--primaryColor); }

.mw_wpform_confirm .form_part,
.form_wrap_confirm .form_part {
  --borderColor:transparent;
  --borderWidth:0px;
  --bgColor:none;
  --topPadding:0px;
  --bottomPadding:0px;
  --leftPadding:0px;
  --rightPadding:0px; }
  .mw_wpform_confirm .form_part:not(.for_agree) .cont,
  .form_wrap_confirm .form_part:not(.for_agree) .cont {
    border-bottom: 1px solid var(--baseBorderColor);
    padding-bottom: var(--space1); }
  .mw_wpform_confirm .form_part.for_agree,
  .form_wrap_confirm .form_part.for_agree {
    display: none; }

.search_wrap {
  position: relative; }
  .search_wrap > input {
    padding-right: calc( var(--formPartHeight) / 2 + var(--rightPadding) ) !important; }
  .search_wrap > button {
    left: auto;
    width: calc( var(--formPartHeight) / 2 );
    height: calc( var(--formPartHeight) / 2 );
    right: 10px;
    border: 0;
    background: none; }
    .search_wrap > button .icon {
      display: block;
      background-image: url("../images/icon/search.svg");
      background-size: contain;
      width: 100%;
      height: 100%; }

.wpcf7-form-control-wrap {
  width: 100%; }

.form_part.for_agree .wpcf7-form-control-wrap {
  width: auto; }
  .form_part.for_agree .wpcf7-form-control-wrap .wpcf7-list-item {
    margin-left: 0;
    margin-right: 0; }

.form_wrap .to_link {
  flex-direction: column; }
