/* ==========================================================================
   お問い合わせ（contact.php）固有
   ========================================================================== */
.sato-contact {
  padding: clamp(56px, 7vw, 96px) 24px clamp(40px, 5vw, 64px);
}
.sato-contact__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(36px, 4vw, 56px);
}
.sato-contact__intro {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.sato-contact__lead {
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 900;
  line-height: 1.6;
  color: #1F4C5E;
}

/* 電話の帯（1行で均等配置） */
.sato-tel-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 28px;
  margin-top: 8px;
  padding: 22px clamp(20px, 3vw, 36px);
  border-radius: 20px;
  background: #F2FAFD;
}
.sato-tel-band__label {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0E7099;
}
.sato-tel-band__num {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Fugaz One", sans-serif;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.2;
  color: #1F4C5E;
}
.sato-tel-band__num:hover {
  color: #1F4C5E;
}
.sato-tel-band__num i {
  font-size: 24px;
  color: #0E7099;
}
.sato-tel-band__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* フォーム（.form-input 差分） */
.sato-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(24px, 3vw, 44px);
  border-radius: 24px;
  background: #fff;
}
.sato-form__note {
  font-size: 1.4rem;
  text-align: center;
  color: #1F4C5E;
}

/* CMSフォーム（mail-form.css をIDで上書き） */
#cms-contact-1-1-area .form-contents {
  padding: 0;
  background: transparent;
}
#cms-contact-1-1-area .form-contents form dl {
  margin: 0 0 32px;
}
#cms-contact-1-1-area .form-contents form dl dt {
  float: none;
  width: auto;
  margin: 22px 0 8px;
  padding: 0;
}
#cms-contact-1-1-area .form-contents form dl dt:first-of-type {
  margin-top: 0;
}
#cms-contact-1-1-area .form-contents form dl dt span {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F4C5E;
}
#cms-contact-1-1-area .form-contents form dl dt span::before {
  order: 2;
  top: 0;
  margin: 0;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
}
#cms-contact-1-1-area .form-contents form dl dt span.required::before {
  content: "必須";
  background: #0E7099;
  color: #fff;
}
#cms-contact-1-1-area .form-contents form dl dt span.optional::before {
  content: "任意";
  background: #EAF7FA;
  color: #5A7180;
}
#cms-contact-1-1-area .form-contents form dl dd {
  margin: 0;
  padding: 0;
  border: 0;
}
#cms-contact-1-1-area .form-contents dd .textarea {
  width: 100%;
  height: auto;
  padding: 14px 16px;
  border: 1.5px solid #CDEBF5;
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 1.5rem;
  line-height: normal;
  color: #1F4C5E;
  outline: none;
}
#cms-contact-1-1-area .form-contents dd .textarea:focus {
  border-color: #4FC3E8;
  box-shadow: 0 0 0 3px #EAF7FA;
}
#cms-contact-1-1-area .form-contents dd textarea.textarea {
  font-size: 1.6rem;
  line-height: 1.8;
  resize: vertical;
}
#cms-contact-1-1-area .form-contents .submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  margin: 0 auto;
  padding: 17px 48px;
  border: 0;
  border-radius: 999px;
  background: #0E7099;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: normal;
  letter-spacing: normal;
  color: #fff;
  transition: background .2s;
}
#cms-contact-1-1-area .form-contents .submit-btn:hover {
  background: #0B5F82;
}
#cms-contact-1-1-area .form-contents .submit-btn:disabled {
  opacity: .6;
  cursor: default;
}
#cms-contact-1-1-area .form-contents .submit-btn::before {
  content: none;
}
#cms-contact-1-1-area .form-contents .submit-btn::after {
  content: "\e04d";
  font-family: "lucide";
  font-size: 17px;
  font-weight: 400;
}
#cms-contact-1-1-area .form-contents .form-err-msg {
  margin: 0 0 24px;
  padding: 16px 20px;
  border: 1.5px solid #E5484D;
  border-radius: 12px;
  background: #FFF4F4;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #C62F34;
}
#cms-contact-1-1-area .form-contents .form-thanks-msg {
  padding: clamp(24px, 4vw, 40px) 20px;
  border: 0;
  border-radius: 20px;
  background: #F2FAFD;
}
#cms-contact-1-1-area .form-contents .form-thanks-msg p {
  font-size: 1.6rem;
  line-height: 1.9;
  color: #1F4C5E;
}
#cms-contact-1-1-area .form-contents .form-thanks-msg .back-home-btn {
  width: auto;
  margin-top: 28px;
  text-align: center;
}
#cms-contact-1-1-area .form-contents .form-thanks-msg .back-home-btn a {
  display: inline-flex;
  padding: 15px 36px;
  border: 0;
  border-radius: 999px;
  background: #0E7099;
  font-size: 1.5rem;
  letter-spacing: normal;
  color: #fff;
  transition: background .2s;
}
#cms-contact-1-1-area .form-contents .form-thanks-msg .back-home-btn a:hover {
  background: #0B5F82;
}
/* 個人情報保護方針 */
.sato-privacy {
  padding: clamp(24px, 3vw, 40px) 24px 0;
}
.sato-policy {
  box-sizing: content-box;
  max-height: 420px;
  margin-top: 24px;
  padding: clamp(20px, 3vw, 36px);
  overflow-y: auto;
  border-radius: 20px;
  background: #F2FAFD;
}
.sato-policy__item {
  padding: 18px 0;
  border-bottom: 1px solid #CDEBF5;
}
.sato-policy__ttl {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1F4C5E;
}
.sato-policy__num {
  font-family: "Fugaz One", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #1583B4;
}
.sato-policy__text {
  margin-top: 8px;
}
