/* Generated from css/content/contact.css and css/content/lead-form.css. */
.contact {
  background-color: #e5f4f5;
  padding-block: 60px 52px;
}
.contact__box {
  position: relative;
  background-color: #fff;
  padding-block: 32px 60px;
  padding-inline: 20px;
  z-index: 10;
}
.contact__box::after {
  content: "";
  position: absolute;
  width: 90%;
  height: 8%;
  background: url("../images/PC/contact_pc_shadow.svg") center / 100% 100% no-repeat;

  bottom: -54px;
  left: 50%;
  transform: translateX(-50%);
}
.contact__title {
  font-size: clamp(26px, 8vw, 32px);
}
.contact__text {
  margin-top: 18px;
  line-height: 1.5;
  letter-spacing: 5%;
  text-wrap: balance;
}
.contact__form {
  margin-top: 38px;
}
.contact__group {
  display: flex;
  flex-direction: column;
  margin-top: 16px;
  gap: 8px;
}
.contact__label {
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 5%;
}
.contact__required {
  font-size: 10px;
  background-color: #fb8b18;
  color: #fff;
  border-radius: 5px;
  padding: 2px 4px;
  margin-left: 2px;
  line-height: 1.2;
  letter-spacing: 5%;
}
.contact__input {
  border: 1px solid #c5c5c5;
  border-radius: 5px;
  height: 49px;
}
.contact__input::placeholder {
  color: #c5c5c5;
  font-size: 14px;
  padding-left: 16px;
  line-height: 1.2;
}
.contact__select {
  padding-inline: 16px;
  background-color: #fff;
}
.contact__textarea {
  border: 1px solid #c5c5c5;
  border-radius: 5px;
  height: 200px;
}
.contact__textarea::placeholder {
  color: #c5c5c5;
  font-size: 14px;
  padding: 16px;
  line-height: 1.4;
}
.contact__note {
  margin-top: 40px;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 5%;
}
.contact__privacy {
  text-decoration: underline;
  color: blue;
  transition: opacity 0.2s ease;
}
.contact__privacy:hover,.contact__privacy:focus-visible  {
  opacity: 0.8;
}
.contact__under {
  text-align: center;
}
.contact__under button {
  margin-top: 16px;
  font-size: clamp(16px, 5vw, 20px);
  width: min(315px, 100%);
  margin-left: 0;
}
.contact__under .cta__button-orange::after{
    top: 27px;
  right: 33px;
  width: 17px;
  height: 20px;
}
@media (max-width: 359px) {
  .contact__under button {
    font-size: 15px;
    padding-inline: 8px 28px;
  }
  .contact__under .cta__button-orange::after {
    right: 10px;
  }
}
/* 大きめスマホ */
@media (min-width: 767px) and (max-width: 1039px) {
  .contact__box{
    width: 80%;
    margin-inline: auto;
  }
}




/* PC */
@media (min-width: 1040px) {
  .contact {
    padding-block: 57px 60px;
  }
  .contact__box {
    margin-inline: auto;
    padding-top: 53px;
    padding-inline: 40px;
    width: 800px;
    transform: translateX(9px);
    z-index: 10;
  }
  .contact__box::after {
    content: "";
    position: absolute;
    width: 800px;
    height: 40px;
    background: url("../images/PC/contact_pc_shadow.svg") center / 100% 100%
      no-repeat;
    bottom: -34px;
    z-index: -1;
  }
  .contact__title {
    font-size: 36px;
  }
  .contact__text,
  .contact__label {
    font-size: 20px;
  }
  .contact__group{
      gap: 10px;
  }
  .contact__note {
    font-size: 14px;
    margin-top: 37px;
  }
  .contact__input::placeholder {
    font-size: 16px;
  }
  .contact__textarea::placeholder {
    font-size: 16px;
  }
  .contact .cta__button {
    width: 380px;
    font-size: 20px;
    margin-left: 4px;
  }
  
.contact__under .cta__button-orange::after{
    top: 23px;
  right: 60px;
  width: 23px;
  height: 25px;
}
.contact__box::after {
    width: 770px;
    height: 50px;
    bottom: -40px;
}
}

.kanal-lf {
  --klf-accent: #fb8b18;
  --klf-accent-hover: #e27912;
  --klf-text: #333;
  --klf-border: #c5c5c5;
  max-width: 560px;
  margin: 0 auto;
  font-family: inherit;
  color: var(--klf-text);
  line-height: 1.7;
  text-align: left;
}
.kanal-lf * { box-sizing: border-box; }
.kanal-lf .klf-title { text-align: center; font-size: 1.25rem; font-weight: 700; margin: 0 0 4px; }
.kanal-lf .klf-lead { text-align: center; font-size: .9rem; margin: 0 0 16px; white-space: pre-line; }
.kanal-lf .klf-label { display: block; margin: 14px 0 4px; font-size: .92rem; font-weight: 700; }
.kanal-lf .klf-req { display: inline-block; margin-left: 8px; padding: 1px 9px; border-radius: 4px;
  background: var(--klf-accent); color: #fff; font-size: .7rem; font-weight: 700; vertical-align: 1px; }
.kanal-lf .klf-opt { display: inline-block; margin-left: 8px; padding: 1px 9px; border-radius: 4px;
  background: #e5e5e5; color: #555; font-size: .7rem; font-weight: 700; vertical-align: 1px; }
.kanal-lf .klf-input, .kanal-lf .klf-textarea {
  width: 100%; font: inherit; padding: 11px 12px;
  border: 1px solid var(--klf-border); border-radius: 8px; background: #fff; color: inherit; }
.kanal-lf select.klf-input { height: auto; }
.kanal-lf .klf-textarea { min-height: 90px; resize: vertical; }
.kanal-lf .klf-consent { font-size: .85rem; margin: 16px 0 12px; text-align: center; }
.kanal-lf .klf-consent input { margin-right: 6px; }
.kanal-lf .klf-btn { display: block; width: 100%; font: inherit; font-size: 1.05rem; font-weight: 700;
  color: #fff; background: var(--klf-accent); border: none; border-radius: 10px; padding: 15px; cursor: pointer; }
.kanal-lf .klf-btn:hover { background: var(--klf-accent-hover); }
.kanal-lf .klf-btn:disabled { opacity: .55; cursor: default; }
.kanal-lf .klf-err { color: #dc2626; font-weight: 700; margin-top: 12px; text-align: center; }
.kanal-lf .klf-done { text-align: center; padding: 24px 8px; }
.kanal-lf .klf-done-title { font-size: 1.1rem; font-weight: 700; margin: 0 0 10px; }
.kanal-lf .klf-hp { position: absolute; left: -9999px; top: -9999px; }
.kanal-lf .klf-loading {
  color: #666;
  text-align: center;
  padding-block: 24px;
}

.contact .kanal-lf .klf-label {
  font-size: 16px;
  margin-top: 18px;
}
.contact .kanal-lf .klf-input,
.contact .kanal-lf .klf-textarea {
  min-height: 49px;
  border-radius: 5px;
}
.contact .kanal-lf .klf-input::placeholder,
.contact .kanal-lf .klf-textarea::placeholder {
  color: #999;
}
.contact .kanal-lf .klf-consent {
  margin-top: 32px;
}
.contact .kanal-lf .klf-consent a {
  color: blue;
  text-decoration: underline;
}
.contact .kanal-lf .klf-btn {
  width: min(100%, 380px);
  min-height: 64px;
  margin-inline: auto;
  box-shadow: 0 3px 3px rgb(0 0 0 / 15%);
}

@media (min-width: 1040px) {
  .contact .kanal-lf .klf-label {
    font-size: 20px;
  }
}


/* The detail pages use the same contact section as the home page. */
.contact {
  color: #333;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  scroll-margin-top: 80px;
}
.contact .inner {
  width: 100%;
  max-width: 1080px;
  margin-inline: auto;
  padding-inline: 20px;
}
.contact .font-ZenMaru {
  font-family: "Hiragino Maru Gothic ProN", Meiryo, "Noto Sans JP", "Hiragino Sans", sans-serif;
}
.contact .contact__heading { text-align: center; }
.contact .contact__title {
  color: #333;
  line-height: 1.5;
  letter-spacing: normal;
  font-feature-settings: normal;
}
.contact select.klf-input { appearance: none; }
