noscriptt@charset "utf-8";

body {
  /***	フォント関連設定	***/
  font-family: "游ゴシック", "Yu Gothic", "游ゴシック体", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;

  font-size: 100%;
  line-height: 1.7;
  /***	背景＆文字色設定	***/
  background: #f5f5f5;
  color: #222;
  font-feature-settings: "palt";
  text-align: justify;
}

/***	ヘッダー画像	***/

h2 {
  margin: 0 auto;
  text-align: center;
  padding: 2.5em 0em;
}

h3 {
  margin: 0 auto;
  text-align: center;
  padding: 0.5em 0;
  font-size: 1.2em;
}

a {
  cursor: pointer;
}

img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

strong {
  font-weight: bold;
}

/* --------------------------------------------------
背景設定
----------------------------------------------------- */

.bg {
  background-image: url("../images/bg.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.bg_white {
  background: #FFFFFF;
}

/*---	背景ここまで---*/

/* フッター設定 */
footer {
  margin: 0 auto;
  padding: 0.165em 0;
  background: #90564a;
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 75%;
}

footer a {
  color: #ffffff;
  text-decoration: underline;
}

footer a:hover {
  color: #ffffff;
}

address {
  font-style: normal;
  margin: 0;
}


/* --------------------------------------------------
テキスト装飾
----------------------------------------------------- */
.bold {
  font-weight: bold;
}

.large {
  font-size: 120%;
}

.xlarge {
  font-size: 125%;
}

.xxlarge {
  font-size: 150%;
}

.small {
  font-size: 82.5%;
}

.xsmall {
  font-size: 62.5%;
}

.xxsmall {
  font-size: 56.25%;
}

.u {
  text-decoration: underline;
}

.red {
  color: red;
}

.pink {
  color: #e72444;
}

.white {
  color: #FFFFFF;
}

.underline {
  background: linear-gradient(transparent 70%, yellow 70%);
}

.highlight_blue {
  background-color: #000436;
  padding: 0.1em;
}

.highlight_white {
  background-color: #fff;
  padding: 0.1em;
}

.highlight {
  background-color: #fff266;
}

.redhigh {
  color: red;
  background-color: #fff266;
}

/***	テキスト装飾設定ここまで	***/

/* PC版のみ表示（SP専用テンプレのため常に非表示） */
.pc-only {
  display: none;
}

/* SP版のみ表示（常に表示） */
.sp-only {
  display: block;
}

.center {
  text-align: center;
}

/* --------------------------------------------------
案件ごとのコンテンツ内容
----------------------------------------------------- */



/*
 *		class-name　案件ごとのコンテンツ内容　ここまで
 */

.deco {
  display: block;
  margin: 30px auto 0;
  margin-bottom: 20px;
  padding: 10px 6px 4px;
  width: 840px;
  max-width: 96%;
  height: 108px;
  border: 4px solid #cbcbcb;
  background: #fff;
  color: #333;
  font-size: 1.5em;
  font-weight: bold;
  text-align: center;
}

.deco::placeholder {
  color: #AAA;
}

.btn {
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation-name: pulse;
  animation-iteration-count: infinite;
  animation-duration: 2s; 
}

.btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

.optin {
  font-size: 0.9em;
  padding: 1.3em;
  text-align: center;
  color: #fff;
}

/***	form設定ここまで	***/


@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.06);
  }

  100% {
    transform: scale(1);
  }
}


/*
 *		特商法
 */
.page_laws #wrapper {
  margin: 0 auto 2em;
  padding: 3em;
  width: 800px;
  background: #fff;
  max-width: 100%;
  font-size: 75%;
}

.page_laws #wrapper h2 {
  margin: 0 auto;
  font-size: 2em;
  text-align: center;
}

.page_laws #wrapper h3 {
  margin-top: 2em;
  font-size: 1.25em;
}

.page_laws #wrapper h4 {
  margin-top: 2em;
}

.page_laws table {
  margin: 1.5em auto;
  border-collapse: separate;
  border-spacing: 1px;
  background: #ccc;
}

.page_laws th {
  padding: 0.5em;
  width: 28%;
  border-top: 1px solid #fff;
  background-color: #EBEBEB;
}

.page_laws td {
  padding: 0.5em;
  font-size: 0.8em;
  background-color: #FFFFFF;
}

/* Googleマップ：LP範囲内に収める */
#wrapper {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
  overflow-x: hidden;
}
main {
  padding-left: 0;
  padding-right: 0;
}

/* LP 画像のみのセクション：行間によるすき間を出さない */
main > section.lp-section {
  margin: 0;
  padding: 0;
  line-height: 0;
}

/* 3つ目 form-line-2 直後など、明示的に前後を密着させる */
.lp-section.lp-section--flush-next {
  margin-bottom: 0;
}
.form-line-2.form-line-2--flush-prev {
  margin-top: 0;
}

.form-apply-2.form-apply-2--flush-prev {
  margin-top: 0;
}
.map-section {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  line-height: 0;
}
.map-section iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: 600px;
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: bottom;
}

/* lp-section の margin:0 より詳細度を上げて中央寄せを維持 */
main > section.lp-section.map-section {
  margin: 0 auto;
}

@media screen and (max-width: 1024px) {
  .map-section iframe {
    height: 50vw;
    min-height: 240px;
    max-height: 480px;
  }
}

/* ============================================================
   ★ フォーム：form-line / form-apply / form-tel ★
   ============================================================ */

/* form-line：LINE登録 */
.form-line {
  position: relative;
  display: block;
  background-color: #2A2A2A;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  max-width: 750px;
}
.form-line__title {
  padding: 0;
}
.form-line__title img {
  display: block;
  width: 100%;
  height: auto;
}
.form-line__btns {
  position: absolute;
  bottom: 40%;
  left: 0;
  right: 0;
  padding: 0 0 1em;
  text-align: center;
}
.form-line__btns a {
  display: block;
  text-align: center;
}
.form-line__btn {
  max-width: 76.8%;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation: pulse 2s infinite;
}
.form-line__btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

/* form-line-2：LINE登録（header_01+form1）※bottom位置を調整 */
.form-line-2 {
  position: relative;
  display: block;
  background-color: #2A2A2A;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  max-width: 750px;
}
.form-line-2__title {
  padding: 0;
}
.form-line-2__title img {
  display: block;
  width: 100%;
  height: auto;
}
.form-line-2__btns {
  position: absolute;
  bottom: 5%;
  left: 0;
  right: 0;
  padding: 0 0 1em;
  text-align: center;
  transform: translateY(10px);
}
.form-line-2__btns a {
  display: block;
  text-align: center;
}
.form-line-2__btn {
  max-width: 76.8%;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation: pulse 2s infinite;
}
.form-line-2__btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

/* form-apply：お申し込み・お問い合わせ（BTHP/BTTEL） */
.form-apply {
  position: relative;
  display: block;
  background-color: #2A2A2A;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  max-width: 750px;
}
.form-apply__title {
  padding: 0;
}
.form-apply__title img {
  display: block;
  width: 100%;
  height: auto;
}
.form-apply__btns {
  position: absolute;
  bottom: 15%;
  left: 0;
  right: 0;
  padding: 0 0 1em;
  text-align: center;
}
.form-apply__btns a {
  display: block;
  text-align: center;
}
.form-apply__btns a + a {
  margin-top: 0.5em;
}
.form-apply__btns a:first-child {
  transform: translateY(10px);
}
.form-apply__btns a:last-child {
  transform: translateY(15px);
}
.form-apply__btn {
  max-width: 76.8%;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation: pulse 2s infinite;
}
.form-apply__btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

/* form-apply-2：お申し込み（form2のみ）※bottom位置を調整 */
.form-apply-2 {
  position: relative;
  display: block;
  background-color: #2A2A2A;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  max-width: 750px;
}
.form-apply-2__title {
  padding: 0;
}
.form-apply-2__title img {
  display: block;
  width: 100%;
  height: auto;
}
.form-apply-2__btns {
  position: absolute;
  bottom: 15%;
  left: 0;
  right: 0;
  padding: 0 0 1em;
  text-align: center;
  transform: translateY(10px);
}
.form-apply-2__btns a {
  display: block;
  text-align: center;
}
.form-apply-2__btns a + a {
  margin-top: 1em;
}
.form-apply-2__btn {
  max-width: 76.8%;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation: pulse 2s infinite;
}
.form-apply-2__btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

/* form-tel：電話 */
.form-tel {
  display: block;
  background-color: #2A2A2A;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  max-width: 750px;
}
.form-tel__title {
  padding: 0;
}
.form-tel__title img {
  display: block;
  width: 100%;
  height: auto;
}
.form-tel__btns {
  padding: 0 0 1em;
  text-align: center;
}
.form-tel__btns a {
  display: block;
  text-align: center;
}
.form-tel__btn {
  max-width: 76.8%;
  margin: 0 auto;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.5));
  animation: pulse 2s infinite;
}
.form-tel__btn:hover {
  animation-duration: 0.8s;
  opacity: 0.8;
}

/* 画面最上部右側のLINE/HP/TELボタン（img_sp01 153px×3 と同寸で重ねる） */
.header-section {
  position: relative;
  line-height: 0;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
}
.header-section h1 {
  margin: 0;
}
.header-section h1 img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}
.top-action-btns {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: flex;
  gap: 0;
  width: calc(100% * 153 * 3 / 1001);
  height: 100%;
}
.top-line-btn,
.top-hp-btn,
.top-tel-btn {
  display: block;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
}
.top-line-btn img,
.top-hp-btn img,
.top-tel-btn img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: fill;
}

/***	追従ボタン：PC版（右下に固定）	***/
.flbtn {
  position: fixed;
  z-index: 9999;
  bottom: 0;
  right: 0;
  width: 300px;
  background-color: transparent;
  padding: 0.8%;
  border-radius: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.flbtn.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.flbtn figure {
  margin-bottom: 0.5em;
}

.flbtn figure:last-of-type {
  margin-bottom: 0;
}

.btline-float {
  max-width: 84.48%;
}

.flbtn_title {
  padding: 1em 1em 0em;
}

/***	追従ボタン：SP版（画面下端・全幅）	***/
@media screen and (max-width: 1024px) {
  .flbtn {
    left: 0;
    right: 0;
    width: 100%;
    border-radius: 0;
    padding: 0 0.5em 0.5em;
  }

  .flbtn figure {
    width: 100%;
  }
  .flbtn_title {
    width: 100%;
    padding: 1em 1em 0em;
  }

  footer {
    padding-bottom: 3.75em;
  }
}
