.hidden {
  display: none;
}
.word-break {
  word-break: break-all;
}
/* ========================== */
/* utility */
.mb10 {
    margin-bottom: 10px;
}

.mb15 {
    margin-bottom: 15px;
}

.text-center {
    text-align: center;
}

@media (min-width: 576px) {
    .text-sm-center {
        text-align: center;
    }
}

.font16 {
    font-size: 16px;
}

.font20 {
    font-size: 20px;
}

.font-notosans700 {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
}

@media screen and (max-width: 768px) {
    .font14-sp {
        font-size: 14px;
    }
}
/* ========================== */

/* ========================== */
/*========================
CONTACT
=========================*/
.contact-wrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 40px 0 150px;
}

.contact-wrap fieldset {
  margin-block: 30px;
  padding: 15px;
  border-radius: 3px;
  background-color: #F5F5F5;
}
@media (min-width: 768px) {
  .contact-wrap fieldset {
    padding: 20px;
  }
}
.contact-wrap label:has(input[type=radio]), .contact-wrap label:has(input[type=checkbox]) {
  display: block flex;
  gap: 8px;
  align-items: center;
  outline: solid 1px #bdb287;
  border-radius: 3px;
  padding: 12px;
  background-color: white;
}
@media (min-width: 576px) {
  .contact-wrap label:has(input[type=radio]), .contact-wrap label:has(input[type=checkbox]) {
    padding: 16px;
  }
}
.contact-wrap label:has(input[type=radio]):hover, .contact-wrap label:has(input[type=checkbox]):hover {
  outline: solid 2px #bdb287;
}
.contact-wrap label:has(input[type=radio]:checked), .contact-wrap label:has(input[type=checkbox]:checked) {
  background-color: #ff5d96;
  color: #fff;
}
.contact-wrap fieldset#fieldset-top {
  background-color: #daecf8;
}
.contact-wrap fieldset#fieldset-top label:has(input[type=radio]), .contact-wrap fieldset#fieldset-top label:has(input[type=checkbox]) {
  outline: solid 1px #6d95ae;
}
.contact-wrap fieldset#fieldset-top h2 {
  color: #104B84;
  margin-bottom: 10px;
}
.contact-wrap fieldset#fieldset-top h2.h2-confirm {
  margin-bottom: 10px;
}
@media (min-width: 576px) {
  .contact-wrap fieldset#fieldset-top h2.h2-confirm {
    margin-bottom: 0;
  }
}
.contact-wrap .label-input-text {
  display: inline-block;
  color: #2B2610;
}
.contact-wrap .choice_wrap {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
  gap: 8px;
}
@media (min-width: 576px) {
  .contact-wrap .choice_wrap {
    gap: 16px;
  }
}
.contact-wrap .choice_wrap label {
  color: #2B2610;
}
.contact-wrap .required::before {
  content: "必須";
  color: white;
  font-size: 11px;
  display: inline-block;
  white-space: nowrap;
  height: 16px;
  line-height: 16px;
  padding-inline: 0.3rem;
  background-color: rgb(201, 85, 85);
  -webkit-margin-end: 0.3rem;
          margin-inline-end: 0.3rem;
}
.contact-wrap .choice-inst {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  display: flex;
}
.contact-wrap input[type=text], .contact-wrap input[type=email], .contact-wrap input[type=tel], .contact-wrap textarea {
  outline: solid 1px #C0CDDC;
  border-radius: 3px;
  padding: 10px;
  background-color: white;
  display: block;
}
.contact-wrap textarea {
  width: 100%;
}
.contact-wrap :is(input[type=text], input[type=email], input[type=tel], textarea):focus {
  outline: solid 3px #ff5d96;
}
.contact-wrap .input-text-wrap {
  display: grid;
  gap: 8px;
  align-items: center;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
@media (min-width: 768px) {
  .contact-wrap .input-text-wrap {
    grid-template-columns: 15rem 1fr;
    grid-template-rows: auto;
  }
}
.contact-wrap .input-text-wrap input.w100 {
  width: 100%;
}
.contact-wrap .input-text-wrap input.postal {
  size: 6;
}
.contact-wrap .input-flex {
  display: flex;
  align-items: center;
  gap: 5px;
}
.contact-wrap .error {
  color: rgb(206, 72, 72);
  font-size: 12px;
  margin-block: 10px 5px;
}
.contact-wrap .error::before {
  content: "\f057";
  content: "\f06a";
  font-family: "FontAwesome";
  -webkit-margin-end: 0.3rem;
          margin-inline-end: 0.3rem;
}
.contact-wrap .error:empty {
  display: none;
}
.contact-wrap fieldset:has(.error:not(:empty)),
.contact-wrap fieldset#fieldset-top:has(.error:not(:empty)) {
  background-color: rgb(255, 229, 223);
}
.contact-wrap .btn-wrap {
  display: flex;
  flex-direction: row;
  justify-content: stretch;
  gap: 15px;
}
@media (min-width: 576px) {
  .contact-wrap .btn-wrap {
    gap: 30px;
    flex-direction: row;
    justify-content: stretch;
  }
}
.contact-wrap input[type=submit], .contact-wrap input[type=reset], .contact-wrap button {
  width: 100%;
  outline: solid 1px #bdb287;
  padding: 30px 8px;
  text-align: center;
  border-radius: 3px;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-size: clamp(1rem, 0.139rem + 1.79vw, 1.25rem);
}
@media (min-width: 576px) {
  .contact-wrap input[type=submit], .contact-wrap input[type=reset], .contact-wrap button {
    padding-inline: 24px;
  }
}
.contact-wrap input[type=submit], .contact-wrap button.submit {
  background-color: #ff5d96;
  color: #fff;
}
@media (min-width: 768px) {
  .contact-wrap input[type=submit]::after, .contact-wrap button.submit::after {
    content: "\f054";
    font-family: "FontAwesome";
    float: right;
  }
}
.contact-wrap input[type=reset], .contact-wrap button.reset {
  background-color: #dedede;
  outline: solid 1px #999;
  clear: both;
}
@media (min-width: 768px) {
  .contact-wrap input[type=reset]::after, .contact-wrap button.reset::after {
    content: "\f00d";
    font-family: "FontAwesome";
    float: right;
    color: #999;
  }
}
.contact-wrap ul.inquiry-type-list li {
  display: flex;
  gap: 8px;
  justify-content: flex-start;
  margin-block: 5px;
}
.contact-wrap ul.inquiry-type-list li::before {
  content: "- ";
}
.contact-wrap .process {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin-bottom: 30px;
}
.contact-wrap .process i {
  color: #999;
}
.contact-wrap .step {
  width: 100px;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #e6e6e6;
  color: #999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.contact-wrap .step.active {
  background-color: #ff5d96;
  color: #2B2610;
}
.contact-wrap .step-num {
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 24px;
  margin-bottom: 5px;
}
.contact-wrap .step-desc {
  font-size: 13px;
}
.contact-wrap .contact-note {
  margin-bottom: 15px;
}
.contact-wrap .contact-note li {
  font-size: 12px;
  color: #666;
  margin-block: 8px;
}
.contact-wrap .contact-thanks {
  color: #e95b8d;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-size: clamp(1rem, 0.139rem + 1.79vw, 1.25rem);
  line-height: 1.3;
}

.download a {
  display: block;
  padding: 16px;
  color: #2B2610;
  background-color: #f6f4ea;
  margin-bottom: 1px;
  transition: 0.5s;
}
@media (any-hover: hover) {
  .download a:hover {
    background-color: #ff5d96;
  }
}