@media (min-width: 650px) {
    body  {
      background-image: url("img/back.jpg");
      background-size: cover;
      background-position: center;
      background-attachment: fixed;
    }
}
@media (max-width: 649px) {
  html,
  body {
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background: none;
  }
}

html {
  scroll-behavior: smooth;
}

blockquote {
  margin:0; 
} 
    
.container {
  width: 100%; 
  max-width: 650px;
  margin:0 auto;
  display: block;
	position: relative;
}

.container img {
  max-width:100%;
  display: block;   /* インライン要素の余白を消す */
  width: 100%;      /* 画面幅に合わせる（レスポンシブ対応） */
  height: auto;     /* 縦横比は自動維持 */
  margin: 0;        /* 念のため余白リセット */
  padding: 0;
}

.cta-wrapper {
  position:relative;
    transform:translateY(-40px);
}

.fv-wrapper {
  transform: translateY(0);
}
    
.cta-btn-fv {
  width: 90%;
	position:absolute;
  bottom:0;
  left:5%;
  right:5%;
  transform:translateY(-40px);
}

.cta-btn-def {
  width: 90%;
	position:absolute;
  bottom:0;
  left:5%;
  right:5%;
  transform:translateY(-64%);
}

.cta-btn-form {
  width: 90%;
	position:absolute;
  bottom:0;
  left:5%;
  right:5%;
  transform:translateY(-270%);
}

.cta-btn {
  width: 90%;
	position:absolute;
  bottom:0;
  left:5%;
  right:5%;
  transform:translateY(-162%);
}

.cta-btn-tel {
  width: 90%;
	position:absolute;
  bottom:0;
  left:5%;
  right:5%;
  transform:translateY(-40%);
}


.anim-box.dokundokun {
    width: 95%;
    margin: 0 auto;
    display:block;
    animation: dokundokun 1800ms ease infinite;
    opacity: 1;
}  

@keyframes dokundokun {
  0%  { transform: scale(1); }
  15% { transform: scale(1.1); }
  30% { transform: scale(1); }
  45% { transform: scale(1.1); }
  70% { transform: scale(1); }
}

/* 固定CTA */
.fixed-cta {
  position: fixed;
  left: 0;
  bottom: 0;

  width: 100%;

  display: flex;
  gap: 8px;

  padding: 8px;

  box-sizing: border-box;

  z-index: 9999;

  background: rgba(255,255,255,0.95);
}

/* ボタン画像 */
.fixed-cta a {
  flex: 1;
}

.fixed-cta img {
  width: 100%;
  display: block;
}

/* CTA分余白 */
body {
  padding-bottom: 90px;
}

/* PC非表示 */
@media screen and (min-width: 769px) {

  .fixed-cta {
    display: none;
  }

  body {
    padding-bottom: 0;
  }

}

.footer {
  background: #f4f4f4;
  padding: 72px 20px 36px;
  text-align: center;
  color: #1d271d;
  font-family: "Noto Sans JP", sans-serif;
}

.footer__inner {
  width: 100%;
}

.footer__logo {
  width: min(520px, 80vw);
  height: auto;
  display: block;
  margin:  0 24px 110px 24px;
}

.footer__nav {
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 48px 0 80px 0;
}

.footer__nav a {
  color: #1d271d;
  text-decoration: none;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.04em;
}

.footer__nav a:hover {
  opacity: 0.7;
}

.footer__copy {
  margin: 0;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0.01em;
  color: #1d271d;
}

/* SP */
@media (max-width: 600px) {
  .footer {
    padding: 48px 16px 80px;
  }

  .footer__logo {
    width: 78vw;
    margin-bottom: 80px;
  }

  .footer__nav {
    gap: 36px;
    margin-bottom: 68px;
  }

  .footer__nav a {
    font-size: 16px;
  }

  .footer__copy {
    font-size: 12px;
    line-height: 1.6;
  }
}

.container .footer__logo,
.container .footer_logo {
  width: 300px;
  max-width: 75%;
  height: auto;
  display: block;
  margin: 0 auto 50px;
  padding: 0;
}

@media (max-width: 600px) {
  .container .footer__logo,
  .container .footer_logo {
    width: 78vw;
    max-width: 75%;
    margin: 0 auto 80px;
  }
}

/* ==============================
   Forminator / Contact
============================== */
.contact-form {
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
  padding: 64px 28px 72px;
  box-sizing: border-box;
  background: #fff;
  font-family: "Noto Sans JP", sans-serif;
}

.contact-form__inner {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}

.contact-form__title {
  margin: 0 0 16px;
  color: #1d271d;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.contact-form__lead {
  margin: 0 0 36px;
  color: #444;
  font-size: 16px;
  line-height: 1.8;
  text-align: center;
}

.contact-form .forminator-ui {
  margin: 0 !important;
}

.contact-form .forminator-row {
  margin-bottom: 24px !important;
}

.contact-form .forminator-label {
  display: block !important;
  color: #1d271d !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
}

.contact-form .forminator-required {
  color: #c62828 !important;
}

.contact-form .forminator-input,
.contact-form .forminator-textarea,
.contact-form .forminator-select {
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 4px !important;
  background: #fff !important;
  padding: 14px 16px !important;
  color: #222 !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
}

.contact-form .forminator-textarea {
  min-height: 150px !important;
  resize: vertical;
}

.contact-form .forminator-input:focus,
.contact-form .forminator-textarea:focus,
.contact-form .forminator-select:focus {
  border-color: #1d271d !important;
  box-shadow: 0 0 0 1px #1d271d !important;
  outline: none !important;
}

.contact-form .forminator-input::placeholder,
.contact-form .forminator-textarea::placeholder {
  color: #999 !important;
  opacity: 1;
}

.contact-form .forminator-description {
  margin-top: 7px !important;
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.7 !important;
}

.contact-form .forminator-file-upload {
  box-sizing: border-box;
  border: 1px dashed #aaa;
  border-radius: 4px;
  background: #f7f7f7;
  padding: 18px;
}

.contact-form .forminator-checkbox-label {
  color: #333 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}

.contact-form .forminator-button-submit {
  display: block !important;
  width: min(100%, 420px) !important;
  min-height: 58px !important;
  margin: 36px auto 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #eb004d !important;
  padding: 14px 24px !important;
  color: #fff !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  cursor: pointer;
}

.contact-form .forminator-button-submit:hover {
  opacity: 0.85;
}

.contact-form .forminator-error-message,
.contact-form .forminator-response-message.forminator-error {
  color: #c62828 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

@media (max-width: 600px) {
  .contact-form {
    padding: 48px 20px 56px;
  }

  .contact-form__title {
    font-size: 24px;
  }

  .contact-form__lead {
    margin-bottom: 28px;
    font-size: 16px;
  }

  .contact-form .forminator-label {
    font-size: 15px !important;
  }

  .contact-form .forminator-input,
  .contact-form .forminator-textarea,
  .contact-form .forminator-select {
    font-size: 16px !important;
  }
}
