@charset "utf-8";
/* CSS Document */

/* FV用背景&CTAボタンの固定配置 -- ここから -- */
#header {
 position: relative;
 margin-top: 0px; /* 必要であればheader上部の余白を調整 */
}

.cta {
  position: relative;
}

.btn {
    position: absolute;
    left: 0%;
    right: 0%;
    cursor: pointer;
    width: 92%;
    margin: 0 auto;
    transition: 0.5s;
}

.section01, .btn01 {
  top: 77%;
}

.section01, .btn02 {
  bottom: 5.5%;
}

.cta .btn01 {
  top: 25%;
}

.cta .btn02 {
  bottom: 16%;
}

.btn:hover {
    opacity: 0.7;
    transform: scale(0.9, 0.9);
}

@media screen and (max-width:720px) {
    .btn {
        width: 90%;
    }
}

*{
	box-sizing: border-box;
	font-size: 16px;
}

/* FV用背景&CTAボタンの固定配置 -- ここまで -- */

/*大きさの計算*/
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

/*iOSフォーム要素の初期化*/
input, button, textarea, select {
	-webkit-appearance: none;
	appearance: none;
}

body {
    margin: 0;
    padding: 0;
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%; /*スマホ横向き時のフォントサイズ*/
	text-size-adjust: 100%; /*スマホ横向き時のフォントサイズ*/
	-webkit-font-feature-settings: 'palt';/*文字詰め*/
	font-feature-settings: 'palt';/*文字詰め*/
    background-size: cover;       /* 画像をコンテナに対してカバーさせる */
    background-position: center;  /* 中央に配置 */
    background-repeat: no-repeat;
    background-attachment: fixed; /* 固定スクロール */
}

body *{
  box-sizing: inherit; /* box-sizingの値は継承されないので明示的に設定 */
}

/*画像の調整*/
img {
    max-width: 100%;
    height: auto;
	vertical-align: bottom;
	width: 100%;
}

a:hover {
    opacity: 0.8;
}

/*****LPコーディングここから*****/
.lp-content{
	max-width: 720px;
	margin: 0 auto;
	background: white;
    box-shadow: 0px 0px 30px rgb(226, 226, 226);
}

/*****Google map埋め込み*****/
.section13 {
    position: relative;
}

.map {
    position: absolute;
    bottom: 0%;
    left: 0;
    right: 0;
    width: 100%;
    height: auto;
    margin: 0;
    text-align: center;
    padding: 0;
}

iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 14/9; /*アスペクト比（縦横比）を指定*/
  }
/*****Google map埋め込み 終わり*****/

/*****追従ボタン（SP：2ボタン横並び）*****/
.body-in {
    position: relative;
}

.float-button__wrap {
    display: flex; /* 常にflexだが、JS制御のopacity/visibilityで表示・非表示を切り替える */
    width: 100%;
    margin: 0 auto;
    height: auto;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.float-button__wrap.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.float-button__wrap .float-button__item {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50%;
    height: auto;
    transition: 0.5s;
    line-height: 0;
}

.float-button__wrap .float-button__item img {
    width: 100%;
    height: auto;
    display: block;
}

.float-button__wrap a:hover {
    opacity: 0.9;
}

/*footerまでスクロールしたら消す（common.jsがクラスを付け外し）*/
.float-button__wrap.is-hidden {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

/* 720px以下のみ追従ボタンを使用。1201px以上ではpc-sideに役割を譲るため強制非表示 */
@media screen and (min-width:1201px) {
  .float-button__wrap {
    display: none !important;
  }
}

@media screen and (max-width:720px) {
  .float-button__wrap {
    width: 100%;
    bottom: 0;
  }
}
/*****追従ボタン 終わり*****/

/*****PC用 サイド固定エリア（ロゴ＋予約ボタン）*****/
.pc-side {
  display: none; /* 1200px以下では非表示 */
}

@media screen and (min-width:1201px) {

  .pc-side {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 99;
    align-items: center;
    gap: 16px;
  }

  /* 左側：ロゴ */
  .pc-side--left {
    right: calc(50% + 390px); /* .lp-content は max-width:720px なので半分=360px + 余白40px */
    width: 20%;
  }

  .pc-side--left .pc-side__logo {
    display: block;
    width: 100%;
    line-height: 0;
  }

  .pc-side--left .pc-side__logo img {
    width: 100%;
    height: auto;
  }

  /* 右側：予約・LINEボタン */
  .pc-side--right {
    left: calc(50% + 390px);
    width: 20%;
  }

  .pc-side--right .pc-side__btn {
    display: block;
    width: 100%;
    line-height: 0;
    transition: 0.3s;
  }

  .pc-side--right .pc-side__btn img {
    width: 100%;
    height: auto;
  }

  .pc-side--right .pc-side__btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
  }
}
/*****PC用 サイド固定エリア 終わり*****/

/*****ビデオエリア*****/
.section004 {
  position: relative;
}

.video {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 6.5%;
  width: 100%;
  margin: 0 auto;
}

/* video要素自体のスタイル */
.video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9; /* 動画のアスペクト比に合わせて調整 */
  object-fit: cover;
}

/*****ビデオエリア 終わり*****/

/***フッター***/
.footer-section {
    background: #f0721f;
    padding: 3rem;
    width: 100%;
    text-align: center;
}

.footer-section .logo {
  width: 35%;
}

@media screen and (max-width:720px) {
　.footer-section .logo {
  width: 60%;
}
}
/*****予約院選択ポップアップ*****/
.reserve-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

.reserve-modal.is-open {
  display: flex;
}

/* オーバーレイ */
.reserve-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  cursor: pointer;
}

/* モーダルボックス */
.reserve-modal__box {
  position: relative;
  background: #fff;
  border-radius: 12px;
  width: 88%;
  max-width: 400px;
  padding: 40px 32px 36px;
  z-index: 1;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);
}

/* 閉じるボタン */
.reserve-modal__close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 24px;
  color: #999;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  transition: color 0.2s;
}
.reserve-modal__close:hover {
  color: #333;
}

/* タイトル */
.reserve-modal__title {
  font-size: 24px;
  font-weight: 700;
  color: #ED6C1A;
  text-align: center;
  margin: 0 0 4px;
  letter-spacing: 0.05em;
}

/* サブタイトル */
.reserve-modal__sub {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  text-align: center;
  margin: 0 0 28px;
}
.reserve-modal__sub span {
  display: block;
  font-size: 14px;
  font-weight: 400;
  color: #888;
  margin-top: 2px;
}

/* 区切り線 */
.reserve-modal__divider {
  border: none;
  border-top: 1px solid #e8e8e8;
  margin: 20px 0;
}

/* 各クリニックブロック */
.reserve-modal__item {
  text-align: center;
}

.reserve-modal__clinic {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin: 0 0 12px;
}
.reserve-modal__clinic span {
  font-size: 14px;
  font-weight: 400;
  color: #888;
  margin-left: 6px;
}

/* 予約ボタン */
.reserve-modal__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #f1701f;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 50px;
  padding: 14px 28px;
  width: 100%;
  max-width: 260px;
  transition: background 0.2s, transform 0.2s;
}
.reserve-modal__btn span {
  font-size: 14px;
  font-weight: 400;
  opacity: 0.85;
}
.reserve-modal__btn svg {
  flex-shrink: 0;
}
.reserve-modal__btn:hover {
  background: #e65f0b;
  transform: translateY(-1px);
  opacity: 1;
}
/*****予約院選択ポップアップ 終わり*****/