:root {
  --_base-font-family: inherit;
  --_c-base-font-size: clamp(10px, calc(16 / 1440 * 100vw), 16px);
  --_c-m1: var(--_c-base-font-size);
}

@media (max-width: 599px) {
  :root {
    --_c-base-font-size: clamp(10px, calc(16 / 375 * 100vw), 16px);
  }
}

/* Snow Monkey Forms */

.snow-monkey-form {
  font-size: var(--_c-base-font-size);
}
.snow-monkey-form .smf-action {
  margin: var(--_c-m1) 0;
  text-align: center;
}
.snow-monkey-form .smf-item {
  margin-bottom: 0;
  margin-top: var(--_c-m1);
}
.snow-monkey-form .smf-item__col--label {
  padding: var(--_c-m1) 0;
  border-top: 1px solid var(--_lighter-color-gray);
}
@media (max-width: 599px) {
  .snow-monkey-form .smf-item__col--label {
    font-size: calc(var(--_c-base-font-size) * 0.875);
  }
}
.snow-monkey-form .smf-item__controls p {
  font-size: calc(var(--_c-base-font-size) * 0.875);
  margin-bottom: 0.25em;
}
.snow-monkey-form .smf-item:has([data-validations*="required"]) strong {
  color: var(--_color-red);
}
.snow-monkey-form .smf-item a {
  color: #00945F;
  text-decoration: underline;
}
.snow-monkey-form .smf-text-control__control {
  max-width: 100%;
}
.snow-monkey-form .smf-radio-buttons-control__control {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1.25em;
}
.snow-monkey-form .smf-radio-buttons-control__control br,
.snow-monkey-form .smf-radio-button-control__control {
  display: none;
}
.snow-monkey-form .smf-radio-button-control__control ~ .smf-radio-button-control__label {
  display: flex;
  align-items: center;
}
.snow-monkey-form .smf-radio-button-control__control ~ .smf-radio-button-control__label::before {
  content: "";
  display: inline-block;
  width: 1.25em;
  height: 1.25em;
  margin-right: .5em;
  border: 1px solid var(--_color-gray);
  border-radius: 50%;
}
.snow-monkey-form .smf-radio-button-control__control:checked ~ .smf-radio-button-control__label::before {
  background: radial-gradient(circle at center, #00945F 50%, transparent 50%);
}

.snow-monkey-form .smf-checkboxes-control__control br,
.snow-monkey-form .smf-checkbox-control__control {
  display: none;
}
.snow-monkey-form .smf-checkbox-control__control ~ .smf-checkbox-control__label {
  display: flex;
  align-items: center;
}
.snow-monkey-form .smf-checkbox-control__control ~ .smf-checkbox-control__label::before {
  content: "";
  display: inline-block;
  width: 1.25em;
  height: 1.25em;
  margin-right: 1em;
  border: 1px solid var(--_color-gray);
  border-radius: 2px;
}
.snow-monkey-form .smf-checkbox-control__control:checked ~ .smf-checkbox-control__label::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2300945F' stroke-width='2' d='M2 8l4.5 4L14 4'/%3E%3C/svg%3E");
}

.snow-monkey-form .smf-button-control__control {
  display: inline-block;
  padding: 1em 2em;
  background-image: none;
  background-color: #00945F;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  border: none;
  font-size: calc(var(--_c-base-font-size) * 1.25);
}

.snow-monkey-form .smf-error-messages {
  font-size: calc(var(--_c-base-font-size) * 0.875);
}

.snow-monkey-form :is(.smf-text-control__control, .smf-textarea-control__control) {
  font-size: var(--_c-base-font-size);
}
@media (max-width: 599px) {
  .snow-monkey-form :is(.smf-text-control__control, .smf-textarea-control__control) {
    font-size: 16px;
  }
}

.smf-complete-content {
  margin-top: var(--_c-m1);
}

/* Utilities */

.snow-monkey-form .smf-text-control__control,
.snow-monkey-form .input-sm {
  width: min(calc(var(--_c-base-font-size) * 12), 100%);
}
.snow-monkey-form .input-xs {
  width: min(calc(var(--_c-base-font-size) * 6), 100%);
}
.snow-monkey-form .input-md {
  width: min(calc(var(--_c-base-font-size) * 24), 100%);
}
.snow-monkey-form .input-lg {
  width: min(calc(var(--_c-base-font-size) * 36), 100%);
}
.snow-monkey-form .input-full {
  width: 100%;
}

/* Customize patch */

.snow-monkey-form .smf-text-control:has(input[name="age"])::after {
  content: "歳";
  margin-left: 0.25em;
}