@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');

body {
    font-weight: 400;
    font-style: normal;
    background-color: #FFF;
    font-size: 16px;
    line-height: 1.6;
    color: #333333;
    font-family: 'Noto Sans JP', sans-serif;
}

img {
    width: 100%;
    display: block;
}

video {
    width: 100%;
    height: auto;
    display: block;
}

.btn {
    transition: all .7s;
    display: block;
}

.btn:hover {
    opacity: .8;
}

.wrapper {
    max-width: 640px;
    margin: 0 auto;
    margin-bottom: 150px;
}

#one {
    background: #000;
}

#one img:nth-child(2),
#one img:nth-child(3) {
    margin-bottom: 10px;
}

#two {
    margin-top: -10px;
    margin-bottom: 60px;
}

#two .btn {
    margin-bottom: 80px;
}

.sswp img {
    width: calc(100% - 20px);
    margin: 0 auto;
}

.swp img {
    width: calc(100% - 30px);
    margin: 0 auto;
}

.wp-txt {
    width: calc(100% - 60px);
    margin: 0 auto;
}

.wp img {
    width: calc(100% - 40px);
    margin: 0 auto;
}

.wwp img {
    width: calc(100% - 60px);
    margin: 0 auto;
}

.wwwp img {
    width: calc(100% - 80px);
    margin: 0 auto;
}

.wwwwp img {
    width: calc(100% - 100px);
    margin: 0 auto;
}

.ptb40 img {
    padding: 40px 0px;
}

.mt40 img {
    margin-top: 40px;
}

#three {
    background: #f1eeec;
}

#three img {
    margin-bottom: 60px;
}

.mtm60 img {
    margin-top: -60px;
    z-index: 1;
    position: relative;
}

.mtm20 img {
    margin-top: -20px;
}

.mtm40 img {
    margin-top: -40px;
    z-index: 1;
    position: relative;
}

.mtm140 img {
    margin-top: -140px;
    z-index: 1;
    position: relative;
}

.mtm80 img {
    margin-top: -80px;
}

.mtm100 img {
    margin-top: -100px;
    z-index: 1;
    position: relative;
}

.mtm200 img {
    margin-top: -200px;
}

.mb100 img {
    margin-bottom: 100px;
}

.mb80 img {
    margin-bottom: 80px;
}

.mb60 img {
    margin-bottom: 60px;
}

.mb40 img {
    margin-bottom: 40px;
}

.mb30 img {
    margin-bottom: 30px;
}

.mb20 img {
    margin-bottom: 20px;
}

.mb10 img {
    margin-bottom: 10px;
}

#five {
    padding-top: 30px;
    background: #f2f4fa;
}

#six .btn {
    margin: 40px auto 60px;
}

/* =========================
   CTA：PC時 640px センター配置（置換）
========================= */

/* 背景は全幅のまま */
.cta-bg {
  background-image: none;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center bottom;
  padding: 20px 0 60px;
}

/* PC時：中身を640pxでセンターにする“箱”をaで作る */
@media (min-width: 769px){
  .cta-bg a{
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}

/* SP含め：aは中央配置（既存の -40px を維持） */
.cta-bg a{
  margin: -40px auto 0;
  display: block;
}

/* 画像はaの幅にフィットさせる */
.cta-arrow img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.eleven-arrow img {
  display: block;
  width: 65%;
  height: auto;
  margin: 0 auto;
  z-index: 5;
  position: relative;
}

.z-5 {
    z-index: 5;
    position: relative;
}

.z-4 {
    z-index: 4;
    position: relative;
}

.z-3 {
    z-index: 3;
    position: relative;
}

.z-2 {
    z-index: 2;
    position: relative;
}

.z-1 {
    z-index: 1;
    position: relative;
}

.z-5 img {
    z-index: 5;
    position: relative;
}

.z-4 img {
    z-index: 4;
    position: relative;
}

.z-3 img {
    z-index: 3;
    position: relative;
}

.z-2 img {
    z-index: 2;
    position: relative;
}

.z-1 img {
    z-index: 1;
    position: relative;
}

#eight {
    background: #ccad38;
    padding-bottom: 40px;
}

#eleven {
    margin-bottom: 50px;
}

.step-bg {
    background: #BED9EB;
    padding-bottom: 120px;
    position: relative;
    z-index: 4;
}

#twelve {
    margin-top: -5px;
}

#voice {
    margin-bottom: 60px;
}

.doctor-01 {
    padding-bottom: 80px;
}

.doctor-01 .doctor-img img {
    width: 70%;
    margin-right: auto;
    margin-bottom: 40px;
}

.doctor-02 {
    padding: 60px 0 80px;
    background: #e8e1d1;
    margin-bottom: 80px;
}

.doctor-02 .doctor-img img {
    width: 95%;
    margin-right: auto;
    margin-bottom: 40px;
}

.doctor-02-title img {
    width: calc(100% - 80px);
    margin: 0 auto 80px;
}

.wp-txt p {
    font-size: 24px;
    color: #6c504e;
    font-weight: 500;
    padding-bottom: 40px;
}

.wp-txt p:last-child {
    padding-bottom: 0px;
}

#table {
    background: #eae9e9;
    padding: 60px 0 80px;
}

#table table {
    width: calc(100% - 40px);
    max-width: 640px;
    margin: 0 auto 80px;
}

#table table:last-child {
    margin-bottom: 0;
}

#table table th,
#table table td {
    font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
    font-size: 20px;
    color: #000000;
    font-weight: 500;
    padding: 15px 0;
    letter-spacing: 0;
}

#table p {
    font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
    font-size: 20px;
    color: #000000;
    font-weight: 700;
    letter-spacing: 0;
    padding-left: 30px;
    position: relative;
}

#table p::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    width: 6px;
    height: 14px;
    background: #000;
}

footer {
    background: #000000;
    padding: 30px 0;
}

footer img {
    width: 60%;
    margin: 0 auto;
}

.fifty-three img {
    margin: 30px auto 45px;
}

#nine .wwp img {
    width: calc(100% - 80px);
    margin: 0 15px 0 auto;
}

.sixty.wwwp img {
    width: 100%;
}

.acc {
    cursor: pointer;
    transition: all .7s;
}

.acc:hover {
    opacity: .8;
}

.acc-item {
    display: none;
}

@media screen and (max-width: 750px) {
    .wp-txt p {
        font-size: 3.4vw;
        padding-bottom: 5.35vw;
    }

    #table table th,
    #table table td {
        font-size: 3.4vw;
        padding: 2vw 0;
    }

    #table p {
        font-size: 3.4vw;
    }

    #one img:nth-child(2),
    #one img:nth-child(3) {
        margin-bottom: 5px;
    }

    #two picture:nth-child(1) img {
        margin-bottom: 7.5px;
    }

    #two .btn {
        margin-bottom: 60px;
    }

    .mt40 img {
        margin-top: 30px;
    }

    .ptb40 img {
        padding: 30px 0px;
    }

    #three img {
        margin-bottom: 40px;
    }

    #three picture:last-child img {
        margin-bottom: 10px;
    }

    .mtm60 img {
        margin-top: -10vw;
    }

    .mtm20 img {
        margin-top: -3vw;
    }

    .mtm40 img {
        margin-top: -5vw;
    }

    .mb20 img {
        margin-bottom: 10px;
    }

    #five {
        padding-top: 40px;
    }

    .mb60 img {
        margin-bottom: 40px;
    }

    #six .btn {
        margin: 30px auto 40px;
    }

    .cta-bg a {
        margin: -3vw auto 0;
    }

    .mtm100 img {
        margin-top: -12.5vw;
    }

    .mtm140 img {
        margin-top: -15.5vw;
    }

    .mtm80 img {
        margin-top: -10vw;
    }

    .mtm200 img {
        margin-top: -25vw;
    }

    #eight .wwwp img {
        width: calc(100% - 60px);
    }

    .mb10 img {
        margin-bottom: 5px;
    }

    .swp img {
        width: calc(100% - 35px);
        margin: 0 auto;
    }

    .fifty-three img {
        margin: 25px auto 32.5px;
    }

    #eight {
        padding-bottom: 30px;
    }

    #nine .wwp img {
        width: calc(100% - 50px);
        margin: 0 10px 0 auto;
    }

    .mb40 img {
        margin-bottom: 30px;
    }

    .sixty.wwwp img {
        width: 100%;
    }

    #ten .wwwp img {
        width: calc(100% - 40px);
    }

    #ten .wwwwp img {
        width: calc(100% - 80px);
    }

    .mb80 img {
        margin-bottom: 15vw;
    }

    .mb100 img {
        margin-bottom: 17.5vw;
    }

    #eleven {
        margin-bottom: 30px;
    }

    #eleven .mtm60 img {
        margin-top: -7.5vw;
    }

    #eleven .wwwp img {
        width: calc(100% - 50px);
    }

    .step-bg {
        padding-bottom: 20vw;
    }

    #voice {
        margin-bottom: 40px;
    }

    .wp-txt {
        width: calc(100% - 40px);
    }

    .doctor-02-title img {
        width: calc(100% - 50px);
        margin: 0 auto 50px;
    }

    .doctor-02 {
        padding: 60px 0;
        margin-bottom: 40px;
    }

    #table table {
        width: calc(100% - 30px);
        margin: 0 auto 50px;
    }

    #table {
        padding: 40px 0;
    }

    footer {
        padding: 25px 0;

    }
}

@media screen and (max-width: 499px) {
    .wp-txt p {
        font-size: 3vw;
        padding-bottom: 6vw;
    }

    #table table th,
    #table table td {
        font-size: 3.2vw;
        padding: 2.25vw 0;
    }

    #table p {
        font-size: 3.2vw;
    }

    #table p {
        font-size: 3.2vw;
        padding-left: 22.5px;
    }

    #table p::before {
        left: 15px;
        width: 5px;
        height: 12px;
    }
}


.fix-footer{
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  z-index: 99999;
  width: 100%;
  max-width: 640px;                 /* ← PCは640px */
  text-align: center;
  padding: 15px;
  background: rgba(255, 255, 255, 0.6);
}

/* HTMLは a > picture > img なので figure指定は不要（保険で両方） */
.fix-footer img{
  width: 100%;
  height: auto;
  display: block;
}

/* SP時：幅はほぼ全幅、ボタンは93% */
@media screen and (max-width: 768px){
  .fix-footer{
    max-width: none;                /* ← SPは全幅 */
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  .fix-footer a{
    width: 93%;
    margin: 0 auto;
    display: block;
  }
}



@keyframes shiny {
    0% {
        transform: scale(0) rotate(25deg);
        opacity: 0;
    }

    50% {
        transform: scale(1) rotate(25deg);
        opacity: 1;
    }

    100% {
        transform: scale(50) rotate(25deg);
        opacity: 0;
    }
}

.shiny-btn {
    position: relative;
    display: block;
    width: 100%;
    /* height: 40px; */
    /* line-height: 40px; */
    text-align: center;
    text-decoration: none;
    color: #ffffff;
    /* background-color: #384878; */
    overflow: hidden;
    border-radius: 8px;
}

.shiny-btn::after {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 50px;
    height: 50px;
    background-image: linear-gradient(100deg,  rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 1) 100%, rgba(255, 255, 255, 0) 0%);
    
    /* ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ */
    animation-name: shiny;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}








#Bt_Fixd {
    background: rgba(255, 255, 255, 0.6);
    position: fixed;
    bottom: 0;
    max-width: 768px;
    width: 100%;
    padding: 5px 10px 10px;
    box-sizing: border-box;
    z-index: 101
  }
  #Bt_Fixd .txt img {
    width: 92%;
    margin: 0% 4%;
  }
  #Bt_Fixd ul {
    display: flex;
    justify-content: space-around;
  }
  #Bt_Fixd ul li {
    width: 48%;
  }
  #Bt_Fixd p {
    text-align: center;
    color: #fff;
    font-size: 11px;
    margin-top: 10px;
  }
  #Bt_Fixd a {
    display: block;
  }
  #Bt {
    background: rgba(255, 255, 255, 0.6);
    position: relative;
    bottom: 0;
    max-width: 768px;
    width: 100%;
    padding: 15px 10px 25px;
    box-sizing: border-box;
    z-index: 101
  }
  #Bt .txt img {
    width: 92%;
    margin: 0% 4%;
  }
  #Bt ul {
    display: flex;
    justify-content: space-around;
  }
  #Bt ul li {
    width: 48%;
  }
  #Bt p {
    text-align: center;
    color: #fff;
    font-size: 11px;
    margin-top: 5px;
  }
  #Bt a {
    display: block;
  }
  /*******ボタン*********/
  .btn-cv1 {
    overflow: hidden;
    position: relative;
    /*background: url(../img/pc/btn_bg_1?) repeat-x;
      background-size: 2.8%;*/
  }
  .btn-cv1 a {
    display: block;
  }
  .btn-cv2 {
    overflow: hidden;
    position: relative;
    /*background: url(../img/pc/btn_bg_1?) repeat-x;
      background-size: 2.8%;*/
  }
  .btn-cv2 a {
    display: block;
  }
  .btn-cv1:hover {}
  .btn-cv a {
    border-radius: 18px;
    border: solid #fff 3px;
    display: block;
    padding: 16px 40px;
    position: relative;
    text-align: center;
    text-decoration: none;
    -webkit-transition: .2s ease-in-out;
    transition: .2s ease-in-out;
    vertical-align: middle;
  }
  .btn-cv1 a img {
    vertical-align: middle;
  }
  .btn-cv1 a:after {
    content: ' ' !important;
  }
  .cv_btn {
    top: 0;
    margin: auto;
    left: 0;
  }
  .btn-cv1 .pc {
    display: block;
  }
  .btn-cv1 .sp {
    display: none;
  }
  /* ボタンの光沢 */
  .is-reflection a {
    overflow: hidden;
  }
  .is-reflection a:after {
    -moz-animation: is-reflection 2s ease-in-out infinite;
    -moz-transform: rotate(45deg);
    -ms-animation: is-reflection 2s ease-in-out infinite;
    -ms-transform: rotate(45deg);
    -o-animation: is-reflection 2s ease-in-out infinite;
    -o-transform: rotate(45deg);
    -webkit-animation: is-reflection 2s ease-in-out infinite;
    -webkit-transform: rotate(45deg);
    animation: is-reflection 4s ease-in-out infinite;
    background-color: #fff;
    content: " ";
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: -180px;
    transform: rotate(45deg);
    width: 30px;
  }
  /* アニメーションを遅延させる */
  .is-reflection + .is-reflection a:after {
    -webkit-animation-delay: .1s;
    animation-delay: .1s;
  }
  @keyframes is-reflection {
    0% {
      -webkit-transform: scale(0) rotate(45deg);
      transform: scale(0) rotate(45deg);
      opacity: 0;
    }
    80% {
      -webkit-transform: scale(0) rotate(45deg);
      transform: scale(0) rotate(45deg);
      opacity: 0.5;
    }
    81% {
      -webkit-transform: scale(4) rotate(45deg);
      transform: scale(4) rotate(45deg);
      opacity: 1;
    }
    100% {
      -webkit-transform: scale(50) rotate(45deg);
      transform: scale(50) rotate(45deg);
      opacity: 0;
    }
  }
  @-webkit-keyframes is-reflection {
    0% {
      -webkit-transform: scale(0) rotate(45deg);
      opacity: 0;
    }
    80% {
      -webkit-transform: scale(0) rotate(45deg);
      opacity: 0.5;
    }
    81% {
      -webkit-transform: scale(4) rotate(45deg);
      opacity: 1;
    }
    100% {
      -webkit-transform: scale(50) rotate(45deg);
      opacity: 0;
    }
  }
  @-webkit-keyframes is-trembling {
    0% {
      -webkit-transform: translate(-3px, 0);
    }
    100% {
      -webkit-transform: translate(0, 0);
    }
  }
  /* 点滅 */
  .blinking {
    -webkit-animation: blink 0.8s ease-in-out infinite alternate;
    -moz-animation: blink 0.8s ease-in-out infinite alternate;
    animation: blink 0.8s ease-in-out infinite alternate;
  }
  @-webkit-keyframes blink {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @-moz-keyframes blink {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes blink {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }

/* =========================
   LP統一（要望対応）
   - PC幅640pxに統一
   - 縦に隙間なし／重なりなし
   - 背景を白に
   - PNG背景を使わない
========================= */

/* 背景を白（f2f4fa 等を上書き） */
html, body{
  background:#fff !important;
}

/* wrapper / container を 640px に統一 */
.wrapper{
  max-width:640px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* LP本体の並び：縦にピタッと（隙間・重なりを消す） */
.container,
.container > div,
.container picture,
.container img,
.container video,
.container iframe{
  display:block;
  width:100%;
  margin:0 !important;
  padding:0 !important;
  border:0;
  box-sizing:border-box;
}

/* 画像・動画の下の“謎の隙間”対策 */
.container > div{ line-height:0; }

/* 既存の余白・重なりユーティリティを無効化 */
#one img:nth-child(2),
#one img:nth-child(3),
#two,
#two .btn,
#three img,
#five,
#six .btn,
.mb100 img,.mb80 img,.mb60 img,.mb40 img,.mb30 img,.mb20 img,.mb10 img,
.mt40 img,
.mtm20 img,.mtm40 img,.mtm60 img,.mtm80 img,.mtm100 img,.mtm140 img,.mtm200 img,
.ptb40 img{
  margin:0 !important;
  padding:0 !important;
}

/* f2f4fa セクションを白へ */
#five{ background:#fff !important; }

/* PNG背景を使わない（必要なら webp に差し替えてください） */
.cta-bg{ background-image:none !important; }
.btn-cv1, .btn-cv2{ background-image:none !important; }

/* fixed CTA：切れ防止（行間/余白をゼロ、safe-area対応） */
.fix-footer{
  padding:0 !important;
  box-sizing:border-box;
  line-height:0;
  background: rgba(255,255,255,.6);
  padding-bottom: env(safe-area-inset-bottom);
}
.fix-footer a{ display:block; }
.fix-footer picture, .fix-footer img{ display:block; width:100%; height:auto; }


/* =========================
   Accordion (30.webp → 31-33.webp)
========================= */
.acc-item.is-open{display:block;}

/* 矢印が他画像に被らない保険（スライダー内だけ） */
.zx-slider{position:relative; isolation:isolate;}

/* =========================
   追加調整（2026-02-16）
   1) Accordion内：31/32の下だけ30px
   2) .wp-txt テキスト行間/余白の崩れ補正
========================= */

/* 1) 31.webp / 32.webp の下に 30px（アコーディオン内だけ） */
#acc30Panel picture:nth-of-type(1) img,
#acc30Panel picture:nth-of-type(2) img{
  margin-bottom: 30px !important;
}

/* 2) wp-txt：段落の行間・余白を安定化 */
.wp-txt{
  box-sizing: border-box;
}
.wp-txt p{
  line-height: 1.75;
  letter-spacing: 0;
  margin: 0 0 18px;
  padding-bottom: 0; /* 既存の padding-bottom:40px を打ち消す */
  overflow-wrap: anywhere;
}
.wp-txt p:last-child{
  margin-bottom: 0;
}

/* =========================
   追加調整（2026-02-16）
   3) 施設情報テーブル崩れ修正
   4) footer copy の巨大化/文字崩れ修正
   ※在庫/レビュー/今日だけ/注文状況/スライダー/アコーディオンは触らない
========================= */

/* 3) #table：テーブルを“表”として安定表示 */
#table table{
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}
#table table th,
#table table td{
  vertical-align: top;
  padding: 14px 10px !important;   /* 0だけだと詰まり過ぎるので左右に余白を付与 */
  line-height: 1.6;
  word-break: break-word;
  overflow-wrap: anywhere;
}
#table table th{
  width: 32%;
  white-space: normal;
  text-align: left;
}
#table table td{
  width: 68%;
}

/* 4) footer：copy画像が100%に引っ張られる/alt文字が巨大化するのを防止 */
footer{ text-align: center; }
footer .copy{
  margin: 0;
  font-size: 0;    /* 画像以外の余計な文字サイズ影響を抑止 */
  line-height: 0;
}
footer .copy img{
  width: 60% !important;    /* index.css元指定を強制（container imgの100%上書き対策） */
  max-width: 360px;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* =========================
   追加調整（2026-02-16）
   5) footer copy を確実にセンタリング
   ※既存の在庫/レビュー/今日だけ/注文状況/スライダー/アコーディオンは触らない
========================= */

footer{
  text-align: center;   /* 念のため */
}

footer .copy{
  width: 100%;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

footer .copy img{
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* =========================
   LP動画（w.mp4） 1080×850 レスポンシブ
========================= */
.lpVideoWrap{
  width: 100%;
  margin: 0;
  padding: 0;
}
.lpVideo{
  width: 100%;
  height: auto;                 /* Safari対策：まず自然比率 */
  aspect-ratio: 1080 / 850;     /* 1080×850 を維持 */
  display: block;
  background: #000;             /* 余白が出た時の背景 */
  object-fit: contain;          /* 切らずに全体表示 */
}
.site-footer {
  background: #000;
  color: #fff;
  text-align: center;
  font-size: 14px;
  padding: 100px 10px;
  line-height: 1.6;
}
