@charset "utf-8";
/*=========================================================
common
==========================================================*/
html {
  font-size: 62.5%
}

body {
  font-family: "Zen Maru Gothic", sans-serif;
  font-style: normal;
  color: #695B47;
  background-color: #FAF2E8;
  line-height: 1.5;
  margin: 0;
  padding: 0;
}

html, body {
  overflow-x: hidden;
  max-width: 100%;
}

img {
  max-width: 100%;
  height: auto;
}

div{
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

a {
  color: inherit;  
  text-decoration: none;
}

/*=========================================================
ローディング
==========================================================*/
.loading{
  position:fixed;
  inset:0;
  z-index:9999;
  background:#FAF2E8;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  visibility:visible;
  transition:opacity 1s ease, visibility 1s ease;
}
.loading img{
  width:260px;
  max-width:70%;
  opacity:0;
  transform:translateY(10px);
  animation:logoFade 1s ease forwards;
}
.loading.is-hidden{
  opacity:0;
  visibility:hidden;
}
@keyframes logoFade{
  0%{
    opacity:0;
    transform:translateY(10px);
  }
  100%{
    opacity:1;
    transform:translateY(0);
  }
}




/*=========================================================
header
==========================================================*/

.hamburger {
  display: none;
}

.header {
  width: 100%;
  padding: 20px 0 0;
  position: relative;
  z-index: 10;
}

.header_inner {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2.6vw;
  gap: 30px;
}


/*=========================================================
ロゴ
==========================================================*/

.logo {
    width: 25vw;
    max-width: 577px;
    min-width: 117px;
    flex: 0 1 auto;
}

.logo img {
    width: 100%;
    height: auto;
    display: block;
}

.logo_pc {
    display: block;
}

.logo_sp {
    display: none;
}

@media screen and (max-width: 768px) {
    .logo {
        width: 40vw;
    }

    .logo_pc {
        display: none;
    }

    .logo_sp {
        display: block;
    }
}

/*=========================================================
ボタン全体
==========================================================*/

.header_btns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(62vw, 900px);
  gap: clamp(8px, 1vw, 20px);
  flex-shrink: 1;
  min-width: 0;
}

/*=========================================================
  ボタン共通
=========================================================*/

.header_btns > .tel_btn,
.header_btns > .contact_box,
.header_btns > .line_box {
  width: 100% !important;
  height: clamp(85px, 6.5vw, 115px) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex: none !important;
  border-radius: 200px;
  padding: clamp(10px, 1vw, 18px) clamp(10px, 1.2vw, 22px);
  white-space: nowrap;
  background-size: cover;
  background-position: center;
  text-decoration: none;
}

/*==== 電話 ====*/

.header_btns > .tel_btn {
  background-image: url(../images/contact_box.png);
}

/*==== メール ====*/
.header_btns > .contact_box {
  background-image: url(../images/tel_btn.png);
}

/*====　LINE ====*/
.header_btns > .line_box {
  background-color: #00CD26;
}


/*====　ラベル ====*/
.tel_label,
.contact_label {
  display: block;
  color: #fff;
  font-size: clamp(0.68rem, 0.75vw, 0.95rem);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin: 0 0 clamp(6px, 0.45vw, 9px);
}


/*====　アイコンと文字 ====*/
.tel_main,
.contact_main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 0.4vw, 8px);
  width: 100%;
  min-width: 0;
  line-height: 1;
}


/*====　アイコン ====*/
.tel_icon {
  width: clamp(14px, 1.15vw, 22px);
  height: auto;
  flex-shrink: 0;
}


/*====　電話番号 ====*/
.tel_number {
  color: #fff;
  font-size: clamp(1.05rem, 1.35vw, 1.7rem);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}


/*====　営業時間 ====*/
.tel_time {
  display: block;
  color: #fff;
  font-size: clamp(0.58rem, 0.62vw, 0.8rem);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  margin-top: clamp(6px, 0.45vw, 9px);
}


/*====　無料相談する ====*/
.consultation {
  color: #fff;
  font-size: clamp(0.85rem, 1.05vw, 1.35rem);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}


/*====　矢印 ====*/
.contact_arrow {
  width: clamp(9px, 0.75vw, 14px);
  height: auto;
  flex-shrink: 0;
}

/*====　メール・LINEの中身 ====*/
.header_btns > .contact_box,
.header_btns > .line_box {
  justify-content: center;
}


@media screen and (min-width: 1200px) {

  .header_btns > .tel_btn,
  .header_btns > .contact_box,
  .header_btns > .line_box {
    height: 110px !important;
  }

  .tel_label,
  .contact_label {
    font-size: 0.9rem;
    margin-bottom: 8px;
  }

  .tel_number {
    font-size: 1.55rem;
  }

  .consultation {
    font-size: 1.2rem;
  }

  .tel_time {
    font-size: 0.72rem;
    margin-top: 8px;
  }

  .tel_icon {
    width: 21px;
  }

  .contact_arrow {
    width: 13px;
  }
}

@media screen and (max-width: 1024px) {

  .header_btns {
    width: min(62vw, 700px);
    gap: 8px;
  }

  .header_btns > .tel_btn,
  .header_btns > .contact_box,
  .header_btns > .line_box {
    height: 90px !important;
    padding: 9px 10px;
  }

  .tel_label,
  .contact_label {
    font-size: 0.68rem;
    margin-bottom: 6px;
  }

  .tel_number {
    font-size: 1.05rem;
  }

  .consultation {
    font-size: 0.9rem;
  }

  .tel_time {
    font-size: 0.58rem;
    margin-top: 6px;
  }

  .tel_icon {
    width: 15px;
  }

  .contact_arrow {
    width: 10px;
  }
}

@media screen and (max-width: 1024px) {

  .header_btns {
    width: 68vw;
    gap: 8px;
  }

  /* 3つとも同じ大きさ */
  .header_btns > .tel_btn,
  .header_btns > .contact_box,
  .header_btns > .line_box {
    height: 68px !important;
  }


/*====　ラベル ====*/
  .tel_label,
  .contact_label {
    font-size: 0.9rem;
    line-height: 1.2;
  }


/*====　電話番号 ====*/
  .tel_number {
    font-size: 1.45rem;
  }


/*====　営業時間 ====*/
  .tel_time {
    font-size: 0.7rem;
  }

/*====　無料相談 ====*/
  .consultation {
    font-size: 1.1rem;
  }

  .tel_icon {
    width: 15px;
  }

  .contact_arrow {
    width: 10px;
  }

}

@media screen and (max-width: 900px) {

  .header_btns {
    width: 69vw;
    gap: 6px;
  }

  /* 3つとも同じ高さ */
  .header_btns > .tel_btn,
  .header_btns > .contact_box,
  .header_btns > .line_box {
    height: 64px !important;
  }

/*====　ラベル ====*/
  .tel_label,
  .contact_label {
    font-size: 0.85rem;
  }

/*====　電話番号 ====*/
  .tel_number {
    font-size: 1.35rem;
  }

/*====　営業時間 ====*/
  .tel_time {
    font-size: 0.65rem;
  }

/*====　無料相談 ====*/
  .consultation {
    font-size: 1rem;
  }

  .tel_icon {
    width: 14px;
  }

  .contact_arrow {
    width: 9px;
  }
}

@media screen and (max-width: 768px) {
  .header_btns {
    display: none;
  }
}

/*=========================================================
ファーストビュー
==========================================================*/
.fv {
  width: 100%;
}
.fv_pc {
  display: block;
}
.fv_title .fv_sp {
  display: none;
}
.fv_visual {
  position: relative;
  width: 120%;
  margin-left: -5%;
}
.fv_title {
  position: relative;
  margin-top: -10%;
  margin-bottom: 0;
}
.fv_title img {
  width: 100%;
  display: block;
}
/* ====================
   バッチ
====================== */
.batch_wrap {
  position: absolute;
  right: 15vw;
  bottom: 5%;
  z-index: 10;
}
.batch {
  display: block;
  width: 51vw;
}
.batch_wrap img {
  width: 100%;
  height: auto;
  display: block;
}

/* バッチの出現 */
.batch {
  opacity: 0;
  transform: translateY(80px);
  animation: batchUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 1.2s forwards;
}

@keyframes batchUp {
  from {
    opacity: 0;
    transform: translateY(80px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}





@media screen and (max-width: 768px) {
  .fv_visual {
    width: 124%;
    margin-left: -12%;
  }
  .fv_title {
    width: 100%;
    margin-top: -24%;
  }
  .fv_title .fv_pc {
    display: none;
  }
  .fv_title .fv_sp {
    display: block;
    width: 100%;
  }
.batch_wrap {
  position: relative;
  width: 100vw;
  right: auto;
  bottom: auto;
  margin-left: 12vw;
  margin-top: -19vw;
  display: flex;
  justify-content: center;
  z-index: 10;
}
.batch {
  display: block;
  width: 90vw;
  margin-top: 0;
}
}



/*=========================================================
  nav
==========================================================*/

.nav_wrap {
  position: relative;
  width: 100%;
}

.nav {
  width: min(1000px, 70%);
  /* padding: 1.56vw 8vw; */
      padding: 0 8vw 1vw;
  margin: 0 auto;
  position: relative;
  z-index: 900;
  box-sizing: border-box;
  background: #fff;
  border-radius: 100px;

  transition:
    border-radius 0.4s ease,
    background 0.4s ease,
    box-shadow 0.4s ease;
}


/*====　nav背景 ====*/

.nav::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 100px;
  transform:
    translateX(-50%)
    scaleX(1);
  transform-origin: center center;
  z-index: -1;
  transition:
    width 0.6s ease,
    transform 0.6s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.4s ease,
    background 0.4s ease;
}


.nav_list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(10px, 2vw, 40px);
  position: relative;
  z-index: 2;
}

.nav_item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
}


.nav_item img {
  width: clamp(42px, 4vw, 66px);
  height: auto;
}


.nav_item > a {
  margin-top: clamp(8px, 1vw, 15px);
  text-align: center;
  font-size: clamp(1.2rem, 1vw, 1.4rem);
  font-weight: 700;
}

/*=================
  sub menu
==================*/
.sub_menu {
  position: absolute;
  top: 125%;
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  padding: 30px;
  /* background: #fff; */
  background: rgba(248, 247, 244, 0.94);
  border-radius: 0 0 50px 50px;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;

  z-index: 1000;
}

/* PC hover */
.nav_item:hover .sub_menu {
  opacity: 1;
  visibility: visible;
}

/* JS open */
.sub_menu.open {
  opacity: 1;
  visibility: visible;
}

/* sub menu item */
.sub_menu li {
  margin-top: 30px;
}

.sub_menu li:first-child {
  margin-top: 0;
}

.sub_menu a {
  color: #726159;
  font-size: clamp(1.2rem, 1vw, 1.4rem);
  font-weight: 700;
}


@media screen and (max-width: 1024px) {
  .nav {
    margin-top: 30px;
  }
}

/*===================
  PCスクロール固定
====================*/

@media screen and (min-width: 769px) {

  /*==================
    固定されたnav
  ==================*/

  .nav.is-fixed {
    position: fixed;
    top: 0;
    left: 50%;
    width: min(900px, 65%);
    margin: 0;
    padding: 3px 6vw;
    transform: translateX(-50%);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
  }


  /*==================
    固定時 アイコン
  ==================*/

  .nav.is-fixed .nav_item img {
    width: clamp(28px, 2.2vw, 40px);
  }


  /*==================
    固定時 テキスト
  ==================*/

  .nav.is-fixed .nav_item > a {
    margin-top: 2px;
    font-size: clamp(0.85rem, 0.8vw, 1rem);
    font-size: 14px !important;
    line-height: 1.3;
  }


  /*==================
    固定時 背景
  ==================*/

  .nav.is-fixed::before {
    width: 100vw;
    transform:
      translateX(-50%)
      scaleX(0);
    background: rgba(255, 255, 255, 0.88);
    border-radius: 0;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow:
      0 3px 15px rgba(0, 0, 0, 0.08);
  }

  /*==================
    広がるアニメーション
  ==================*/

  .nav.is-fixed.is-expanding::before {
    transform:
      translateX(-50%)
      scaleX(1);
  }

}

/*=======================
  SP ハンバーガー
=========================*/

.hamburger {
  display: none;
}

@media screen and (max-width: 768px) {

  .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    position: fixed;
    top: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
    padding: 0;
    background: #fff;
    border: none;
    /* border-radius: 50%; */
    cursor: pointer;
    z-index: 9999;
  }

  .hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: #299CD4;
  }

}


@media screen and (max-width: 768px) {
  .nav {
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    width: 100%;
    height: 100vh;
    padding: 30px 20px 50px;
    margin: 0;
    background: #fff;
    border-radius: 0;
    transform: translateX(100%);
    transition:
      transform 0.4s ease;
    overflow-y: auto;
    box-sizing: border-box;
  }

/*====　open ====*/
  .nav.active {
    transform: translateX(0);
  }

  /*--------------------------------
    SPでは固定背景を使用しない
  --------------------------------*/

  .nav::before {
    display: none;
  }

  .nav.is-fixed {
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    width: 100%;
    height: 100vh;
    padding: 30px 20px 50px;
    margin: 0;
    background: #fff;
    border-radius: 0;
    box-shadow: none;
    transform: translateX(100%);
  }

  .nav.is-fixed.active {
    transform: translateX(0);
  }

  .nav_list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .nav_item {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
  }

  .nav_item img {
    width: 42px;
    flex-shrink: 0;
  }

  .nav_item > a {
    flex: 1;
    margin-top: 0;
    margin-left: 16px;
    text-align: left;
    font-size: 1.6rem;
  }

  .plus_btn {
    position: relative;
    width: 24px;
    height: 24px;
    margin-left: auto;
    flex-shrink: 0;
    cursor: pointer;
  }

  /* 横線 */
  .plus_btn::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: #299CD4;
    transform: translateY(-50%);
  }


  /* 縦線 */
  .plus_btn::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    background: #299CD4;
    transform: translateX(-50%);
    transition:
      opacity 0.3s ease;
  }

  /* 開いたらマイナス */
  .plus_btn.active::after {
    opacity: 0;
  }

  .sub_menu {
    position: static;
    transform: none;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    padding: 0 20px;
    margin-top: 0;
    opacity: 1 !important;
    visibility: visible !important;
    background: #F7F7F7;
    border-radius: 20px;
    transition:
      max-height 0.4s ease,
      padding 0.4s ease,
      margin-top 0.4s ease;
  }

  /* 開いた状態 */
  .sub_menu.open {
    max-height: 500px;
    padding: 20px;
    margin-top: 20px;
  }

  .sub_menu li {
    margin-top: 16px;
  }

  .sub_menu li:first-child {
    margin-top: 0;
  }

  .sub_menu a {
    font-size: 1.4rem;
  }

  .nav_close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    position: absolute;
    top: 20px;
    right: 20px;
    background: rgba(255, 255, 255, 0.8);
    border: none;
    cursor: pointer;
    z-index: 10000;
  }

  /*　× */
  .nav_close span {
    position: absolute;
    width: 24px;
    height: 2px;
    background: #299CD4;
  }

  .nav_close span:nth-child(1) {
    transform: rotate(45deg);
  }

  .nav_close span:nth-child(2) {
    transform: rotate(-45deg);
  }
}

/*=========================================================
こんな癖心あたりありませんか？
==========================================================*/
.worries {
  margin-top: 40px;
  width: 100%;
  position: relative;
  z-index: 2;
}

.worries_deco1 {
  position: absolute;
  top: clamp(-60px, -6vw, -111px);
  right: clamp(-40px, -5vw, -108px);
  width: clamp(120px, 18vw, 260px);
  z-index: -1;
}

.worries_deco2 {
  position: absolute;
  top: clamp(180px, 28vw, 401px);
  left: clamp(-30px, -3vw, -52px);
  width: clamp(100px, 15vw, 220px);
  z-index: -1;
}

.worries_deco1 img,
.worries_deco2 img {
  width: 100%;
  display: block;
}

.worries_inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 0;
  text-align: center;
  padding: 3.7vw 4.2vw 3.3vw 8vw;
  padding: 9.7vw 4.2vw;
  background-image: url(../images/note.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.worries_title {
  text-align: center;
  font-weight: 700;
  letter-spacing: 2px;
  font-size: clamp(1.6rem, 4vw, 4.5rem);
  margin-top: 20px;
}

.worries_span02,
.worries_span03,
.worries_span04 {
  font-size: clamp(2.5rem, 5vw, 6rem);
}

/* 豊橋市で子どもの矯正を〜 */
.worries_title_sp {
  display: none;
}

.worries_span01 {
  text-align: center;
  font-weight: 700;
  -webkit-text-stroke: 4px #fff;
  paint-order: stroke fill;
  background: linear-gradient(transparent 65%, #fff36b 65%);
  font-size: clamp(1.3rem, 2.4vw, 4rem);
  display: inline-block;
}

/* お子様 */
.worries_span02 {
  color: #E46987;
  font-weight: 700;
  line-height: 156.2%;
  letter-spacing: 2px;
}

/* 癖 */
.worries_span03 {
  color: #34D0F7;
  font-weight: 700;
  line-height: 156.2%;
  letter-spacing: 2px;
}

/* 歯並び */
.worries_span04 {
  color: #00CD26;
  font-weight: 700;
  line-height: 156.2%;
  letter-spacing: 2px;
}

.worries_list {
  width: 70%;
  margin: 70px auto 0;
  padding: 0;
  text-align: left;
}

.worries_item {
  position: relative;
  width: 100%;
  display: flex;
  gap: 15px;
  margin: 20px 0 0;
  align-items: center;
  padding-bottom: 15px;
}


/* チェックリストの出現 */
/* .worries_item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.worries_list.is-show .worries_item {
  opacity: 1;
  transform: translateY(0);
}

.worries_list.is-show .worries_item:nth-child(1) {
  transition-delay: 0s;
}

.worries_list.is-show .worries_item:nth-child(2) {
  transition-delay: 0.2s;
}

.worries_list.is-show .worries_item:nth-child(3) {
  transition-delay: 0.4s;
}

.worries_list.is-show .worries_item:nth-child(4) {
  transition-delay: 0.6s;
}

.worries_list.is-show .worries_item:nth-child(5) {
  transition-delay: 0.8s;
}

.worries_list.is-show .worries_item:nth-child(6) {
  transition-delay: 1s;
}

.worries_list.is-show .worries_item:nth-child(7) {
  transition-delay: 1.2s;
}

.worries_list.is-show .worries_item:nth-child(8) {
  transition-delay: 1.4s;
} */
/*  */










.worries_item:first-child {
  margin-top: 0;
}

.worries_item::after {
  content: "";
  position: absolute;
  left: -45px;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: repeating-linear-gradient(
    to right,
    #aaa 0,
    #aaa 5px,
    transparent 5px,
    transparent 10px
  );
}

.worries_item p {
  margin: 0;
  font-size: clamp(1.4rem, 2.5vw, 2.5rem);
  font-weight: 500;
}

.worries_item img {
  width: 57px;
  flex-shrink: 0;
}


.worries_txt {
  text-align: center;
  font-weight: 700;
  margin-top: 50px;
  font-size: clamp(1.6rem, 4vw, 4.5rem);
  line-height: 1.5;
}

/* 歯並びを根本から */
.worries_txt_span01 {
  color: #00CD26;
  font-weight: 700;
}

/* 予防矯正 */
.worries_txt_span02 {
  color: #F80;
  font-weight: 700;
  position: relative;
}

.worries_txt_span01,
.worries_txt_span02 {
  font-size: clamp(2.5rem, 5vw, 6rem);
}

/* ●●●● */
.worries_txt_span02::before {
  content: "● ● ● ●";
  position: absolute;
  top: -9px;
  left: 54%;
  transform: translateX(-50%);
  font-size: 1.6rem;
  color: #F80;
  letter-spacing: 19px;
  white-space: nowrap;
}

/* 画像 */
.check_img {
  position: absolute;
  top: 425px;
    right: 25vw;
    width: clamp(75px, 12.5vw, 336px);
}

/* 黄色い恐竜の出現 */
.yellow_dino {
  position: absolute;
  bottom: 14vw;
  right: 0;
  width: clamp(97px, 22vw, 426px);
  opacity: 0;
  transform: translateY(80px);
  transition: opacity 1.5s ease, transform 1.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.yellow_dino.is-show {
  opacity: 1;
  transform: translateY(0);
}


@media screen and (max-width: 1024px) {

  /* ●●●● */
  .worries_txt_span02::before {
    font-size: 1.3rem;
  }

  .worries_inner {
  padding: 13.7vw 7.2vw 11.3vw;
  }

  .yellow_dino {
  right: -3vw;
  }

  .check_img {
    position: absolute;
    top: 495px;
    right: 20vw;
    width: clamp(75px, 16.5vw, 336px);
  }
}

@media screen and (max-width: 768px) {

  .worries_inner {
    padding: 0;
    padding-right: 10px;
  }

  .worries_item img {
    width: 19px;
  }

  .worries_item {
    gap: 8px;
  }

  .worries_span01 {
    margin-left: 20px;
  }

  .worries_note {
    padding: 92px 0 100px;
    background-size: inherit;
  }

  .worries_txt {
    margin-top: 20px;
  }

  .check_img {
    top: 334px;
    right: 120px;
  }

  .yellow_dino {
    right: -3vw;
  }

  /* ●● */
  .worries_txt_span02::before {
    top: -3px;
    left: 50%;
    font-size: 1rem;
    letter-spacing: 9px;
  }

  .worries_title {
    margin-left: 30px;
    margin-top: 10px;
  }

  /* worries list */
  .worries_list {
    width: 50%;
    margin: 40px auto 0;
    display: block;
  }

  .worries_item {
    position: relative;
    width: 100%;
    margin-top: 10px;
    padding-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .worries_item:first-child {
    margin-top: 0;
  }

  /* ノートの線 */
  .worries_item::after {
    content: "";
    position: absolute;
    left: -11px;
    bottom: 0;
    width: 107%;
    border-bottom: 1px dotted #999;
  }

}

@media screen and (max-width: 580px) {

  .worries_item {
    margin-top: 10px;
  }

  .worries_list {
    width: 69%;
    margin: 40px auto 0;
  }

  .worries_note {
    padding: 51px 0 100px;
    margin-top: -56px;
  }

  .check_img {
    top: 215px;
    right: 73px;
  }

  .yellow_dino {
    right: 3px;
    bottom: 198px;
  }

  /* ●● */
  .worries_txt_span02::before {
    font-size: 6px;
    letter-spacing: 8px;
    left: 54%;
  }

}

@media screen and (max-width: 360px) {

  .worries_span01 {
    font-size: 1.2rem;
  }

  .worries_note {
    margin-top: -42px;
  }

  .worries_span02,
  .worries_span03,
  .worries_span04 {
    font-size: 2rem;
  }

  .worries_item p {
    font-size: 1.4rem;
  }

  .check_img {
    right: 29px;
  }

}

/*=========================================================
habit このような癖を放置すると・・・・
==========================================================*/

.background {
  position: relative;
  width: 100%;
  background: url(../images/background.png) no-repeat center / cover;
  margin-top: -230px;
  padding-top: 140px;
  /* V字切り込み */
  clip-path: polygon(
    0 0,
    50% 363px,
    100% 0,
    100% 100%,
    0 100%
  );
}

.habit_inner {
  max-width: 1200px;
  margin: 0 auto;
}

.habit_title {
    width: fit-content;
    text-align: center;
    font-weight: 700;
    letter-spacing: 4px;
    font-size: clamp(1.6rem, 10.6vw, 4rem);
    color: #FFF;
    text-align: center;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    background: #FF7049;
    border-radius: 50px;
    margin: 250px auto 100px;
    padding: 1vw 2.5vw;
    position: relative;
}


.habit_title span {
  font-size: clamp(2rem, 5vw, 6rem);
  color: #34D0F7;
    text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff;
}

/* 左 */
.habit_title::before {
    content: "";
    position: absolute;
    width: clamp(60px, 8vw, 140px);
    height: clamp(60px, 8vw, 140px);
    background: url(../images/habit/kids01.svg)
      no-repeat center / contain;
    right: 100%;
    top: 50%;
    transform:
      translateX(36px)
      translateY(-50%);
}

/* 右 */
.habit_title::after {
    content: "";
    position: absolute;
    width: clamp(60px, 8vw, 140px);
    height: clamp(60px, 8vw, 140px);
    background: url(../images/habit/kids02.svg)
      no-repeat center / contain;
    left: 100%;
    top: 50%;
    transform:
      translateX(-54px)
      translateY(-50%);
}

/* .teeth_sp {
  display: none;
} */

.teeth_pc {
  display: grid;
  grid-template-columns: repeat(3, 247px);
  gap: 90px;
  justify-content: center;
}

.teeth_pc li img {
  width: 100%;
  display: block;
}

/* 歯の画像の動き */
.teeth_pc li {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}

.teeth_pc.is-show li {
  opacity: 1;
  transform: translateY(0);
}

.teeth_pc.is-show li:nth-child(1) {
  transition-delay: 0s;
}

.teeth_pc.is-show li:nth-child(2) {
  transition-delay: 0.25s;
}

.teeth_pc.is-show li:nth-child(3) {
  transition-delay: 0.5s;
}

.teeth_pc.is-show li:nth-child(4) {
  transition-delay: 0.75s;
}

.teeth_pc.is-show li:nth-child(5) {
  transition-delay: 1s;
}

.teeth_pc.is-show li:nth-child(6) {
  transition-delay: 1.25s;
}
/*  */



/* リード文 */
.read_wrap {
  display: flex;
  align-items: flex-end;
  margin-top: 120px;
}


/* 医師がしたから出現 */
.habit_doctor {
  width: clamp(103px, 24vw, 360px);
  transform: translate(clamp(40px, 10vw, 168px), 155px);
  flex-shrink: 0;
}
.habit_doctor {
  opacity: 0;
  transform: translateY(80px);
  transition: opacity 1.2s ease, transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.habit_doctor.is-show {
  opacity: 1;
  transform: translateY(0);
}





.habit_read, .habit_read2 {
  font-size: clamp(1.4rem, 2.5vw, 2.5rem);
  font-weight: 700;
}

.habit_read2 {
  margin-top: 20px;
}

.habit_read_span1 {
  color: #00CD26;
  font-size: clamp(2.5rem, 4.6vw, 5rem);
  font-weight: 700;
}

.habit_read_span2 {
  color: #F80;
  font-size: clamp(2.5rem, 4.6vw, 5rem);
  font-weight: 700;
}

/* 吹き出し */
.read_txt {
  position: relative;
  background: #fff;
  padding: 80px 60px;
  border-radius: 300px;
  transform: translate(105px, -3px);
}

/* しっぽ（三角） */
.read_txt::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 83%;
  transform: translateY(-50%) rotate(-33deg);
  border-width: 25px;
  border-style: solid;
  border-color: transparent #fff transparent transparent;
}

/* 内側の点線 */
.read_txt::after {
  content: "";
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border: 2px dashed #f90;
  border-radius: 300px;
  pointer-events: none;
}



@media screen and (max-width: 1260px) {
  .read_wrap {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    margin-top: 80px;
    gap: 30px;
  }

  .read_txt {
    width: fit-content;
    /* max-width: 90%; */
    margin: 0 auto;
    transform: none;
  }


  .habit_doctor {
    max-width: 220px;
    transform: none;
    margin-top: 10px;
  }

  .read_txt::before {
    content: "";
    position: absolute;
    left: 46%;
    top: 106%;
    transform: translateY(-50%) rotate(-91deg);
    border-width: 25px;
    border-style: solid;
    border-color: transparent #fff transparent transparent;
}

}

@media screen and (max-width: 1024px) {
  .background {
    margin-top: -170px;
  }

  .teeth_pc {
      grid-template-columns: repeat(3, 168px);
      gap: 60px;
  }
}

@media screen and (max-width: 768px) {

  .background {
    margin-top: -38px;
    padding-top: 140px;
    clip-path: polygon(0 0, 50% 116px, 100% 0, 100% 100%, 0 100%);
  }

  .habit_title {
    letter-spacing: 2px;
    font-size: 1.8rem;
    margin: 7px auto 50px;
    padding: 11px 0px;
  }

  .habit_title span {
    font-size: 2.5rem;
    -webkit-text-stroke: 5px #fff;
    paint-order: stroke fill;
    text-shadow: none;
  }

  .habit_title::after {
      transform: translateX(-62px) translateY(-104%);
  }

  .habit_title::before {
      transform: translateX(56px) translateY(-104%);
  }

  .teeth_pc {
    grid-template-columns: repeat(3, 124px);
    gap: 34px;
  }

  .read_txt {
    margin: 0 auto;
    transform: none;
    width: 550px;
  }

}

@media screen and (max-width: 500px) {
  .teeth_pc {
    grid-template-columns: repeat(2, 165px);
    gap: 26px;
  }
}

@media screen and (max-width: 450px) {
  .read_txt {
    padding: 42px 25px;
    border-radius: 50px;
  }

  /* 内側の点線 */
  .read_txt::after {
    top: 6px;
    left: 6px;
    right: 6px;
    bottom: 6px;
    border: 2px dashed #f90;
    border-radius: 50px;
  }

  .habit_title {
    width: 95%;
  }

  .read_txt {
    margin: 0 auto;
    transform: none;
    width: 96%;
  }

}

@media screen and (max-width: 392px) {
  .habit_read_span1_sp {
    display: none;
  }
}

@media screen and (max-width: 360px) {
  .habit_title {
    font-size: 1.5rem;
  }

  .teeth_pc {
    grid-template-columns: repeat(2, 136px);
    gap: 22px;
  }

  .habit_read, .habit_read2 {
    font-size: 1.4rem;
}

  .habit_read_span1 {
      font-size: 2.2rem;
  }

  .habit_read_span2 {
    font-size: 2rem;
  }

  .read_txt {
    padding: 25px 15px;
  }
}


/*=========================================================
なぜ５歳から始めるとこんなに違うのか
==========================================================*/
.explanation {
  margin-top: 310px;
  padding: 0 4.4vw 5.6vw;
  position: relative;
  width: 100%;
}

/* 上の球◯部分 */
.explanation::before {
  position: absolute;
  content: "";
  width: 60%;
  height: 626px;
  background: #FFF;
  border-radius: 50%;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}

.explanation_inner {
  background: #FFF;
  z-index: -2;
  padding-bottom: 25px;
}

.explanation_title {
  color: #726159;
  text-align: center;
  font-size: clamp(2rem, 3vw, 6rem);
  font-weight: 900;
  letter-spacing: 4px;
}

/* 5歳 */
.explanation_title_span {
  color: #34D0F7;
  text-align: center;
  font-size: clamp(3rem, 4.1vw, 8rem);
  font-weight: 900;
  letter-spacing: 4px;
  position: relative;
}

/* ●● */
.explanation_title_span::before {
  content: "● ●";
  position: absolute;
  top: -11px;
  left: 56%;
  transform: translateX(-50%);
  font-size: 1.7rem;
  color: #34D0F7;
  letter-spacing: 25px;
  white-space: nowrap;
}

.explanation_txt {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.6rem, 2vw, 3rem);
  font-weight: 700;
  letter-spacing: 1.7px;
  margin-top: clamp(30px, 4vw, 80px);
}

.explanation_txt_span {
  color: #F08623;
  text-align: center;
  font-size: clamp(1.6rem, 2vw, 3rem);
  font-weight: 700;
  letter-spacing: 1.7px;
}

/* タイトル */
.explanation_sub_title {
  margin: 80px auto;
  width: clamp(300px, 60vw, 1180px);
  position: relative;
}
.explanation_sub_title_sp {
display: none;
}

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


/* ３つのステージ */
.stage_list00 {
  background-image: url(../images/explanation/Blue.png);
}
.stage_list01 {
  background-image: url(../images/explanation/yellow.png);
}
.stage_list02 {
  background-image: url(../images/explanation/pink.png);
}

.stage {
  margin-top: 113px;
  display: flex;
  margin: 100px auto;
  justify-content: center;
  align-items: stretch;
  max-width: 1200px;
}


/* カード共通 */
.stage_00 {
  color: #34D0F7;
}
.stage_01 {
  color: #FFA800;
}
.stage_02 {
  color: #E46987;
}

.stage_list00,
.stage_list01,
.stage_list02 {
  width: min(32%, 370px);
  display: flex;
  flex-direction: column;
  align-items: center;
  background-size: 100% 100%; 
  background-position: center;
  background-repeat: no-repeat;
  padding: 35px 30px;
}

.stage_00, .stage_01, .stage_02 {
  text-align: center;
  font-size: clamp(2.3rem, 2.6vw, 5rem);
  font-weight: 900;
  line-height: 131.4%;
  letter-spacing: 5.5px;
}

.stage_title {
  color: #726159;
  text-align: center;
  font-size: clamp(1.8rem, 1.8vw, 4rem);
  font-weight: 900;
  line-height: 131.4%;
  letter-spacing: 4.4px;
  margin-top: 20px;
}

.stage_txt {
  color: #726159;
  font-size: clamp(1.3rem, 1.3vw, 2rem);
  font-weight: 700;
  line-height: 131.4%;
  letter-spacing: 1px;
  margin-top: 32px;
  flex-grow: 1;
}

.stage_img {
  width: 140px;
  height: 167px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stage_img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.stage_age {
  color: #726159;
  /* font-size: clamp(1.3rem, 1vw, 2rem); */
  font-weight: 900;
  line-height: 131.4%;
  letter-spacing: 2.2px;
  margin-top: 20px;
  font-size: 30px;
}


/* 年齢別リスト */
.age01 {
  color: #F80;
}
.age02 {
  color: #FF9292;
}
.age03 {
  color: #E46987;
}
.age04 {
  color: #C15A74;
}


/* 年齢 */
.age01,
.age02,
.age03,
.age04 {
  font-size: clamp(2rem, 2.4vw, 3rem);
  font-size: clamp(1.8rem, 2.8vw, 4rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
}

.age_list {
  margin-top: clamp(50px, 8vw, 100px);
  padding: 0 clamp(20px, 16.7vw, 322px);
}

.age_item {
  margin-top: 20px;
  padding-bottom: 20px;
  border-bottom: 2px dotted #FFA800;
}

/* 冠 */
.age_item:first-of-type::before {
  content: "";
  display: block;
  width: clamp(40px, 6vw, 70px);
  height: clamp(40px, 6vw, 70px);
  margin-bottom: 10px;
  background: url(../images/explanation/crown.png) center / contain no-repeat;
}

.age_item:last-child {
  border-bottom: none;
}


/* 色 */
.age01 {
  color: #F80;
}
.age02 {
  color: #FF9292;
}
.age03 {
  color: #E46987;
}
.age04 {
  color: #C15A74;
}


/* 本文 */
.age_txt {
  color: #726159;
  font-size: clamp(1.4rem, 1.8vw, 2.5rem);
  font-size: clamp(1.4rem, 2.5vw, 2.5rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

/* 太字 */
.age_list_bold {
  font-size: inherit;
  font-weight: 900;
}

.explanation_note {
  color: #695B47;
  font-size: clamp(1.3rem, 0.9vw, 1.8rem);
  font-weight: 400;
  text-align: left;
  width: 100%;
}

/* スキャモングラフ */
.graph_wrap {
  padding: 0 clamp(20px, 16.7vw, 322px);
  margin-top: 6.6vw;
}

.graph_pc {
  padding: 2vw;
}

.graph_sp {
  display: none;
}



@media screen and (max-width: 1260px) {
  .explanation {
    margin-top: 90px;
  }

  .stage_txt {
    margin-top: 20px;
  }

  .stage_img {
    width: 120px;
    height: 125px;
  }

}

@media screen and (max-width: 1024px) {
  /* ３つのステージ */
  .stage {
    margin: 0 auto;
  }

  .explanation_title_span::before {
    top: -11px;
    font-size: 1.2rem;
    letter-spacing: 12px;
  }

  .stage_img {
    width: 120px;
    height: 105px;
  }

  .stage_00, .stage_01, .stage_02 {
    font-size: clamp(2.3rem, 3.6vw, 5rem);
    line-height: 131.4%;
    letter-spacing: 5.5px;
}

  .stage_title {
    font-size: clamp(1.8rem, 2.8vw, 4rem);
    line-height: 131.4%;
    letter-spacing: 4.4px;
    margin-top: 15px;
  }

.stage_txt {
  font-size: clamp(1.3rem, 1.6vw, 2rem);
  margin-top: 32px;
}

.stage_age {
    font-size: clamp(1.6rem, 1vw, 2rem);
    line-height: 131.4%;
    letter-spacing: 2.2px;
    margin-top: 15px;
}

}



@media screen and (max-width: 768px) {

  .stage_00, .stage_01, .stage_02 {
    font-size: 3rem;
}

.age01,
.age02,
.age03,
.age04 {
font-size: 2.5rem;
margin-bottom: 0px;
}

  .explanation {
    margin-top: 70px;
    padding: 0 4.4vw 7.6vw;
    padding: 0 1.4vw 7.6vw;
    position: relative;
    width: 100%;
  }

  .explanation_inner {
  padding-bottom: 50px;
}

  .explanation_title_span::before {
    top: -11px;
    font-size: 1rem;
    letter-spacing: 10px;
  }

  /* 上の球◯部分 */
  .explanation::before {
    width: 70%;
    height: 300px;
    top: -80px;
  }

  /* サブタイトル */
  .explanation_sub_title {
    display: none;
  
  }

.explanation_sub_title_sp {
  display: block;
    margin: 10px auto;
}

  .stage {
    flex-direction: column;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
  }

  .stage_list00,
  .stage_list01,
  .stage_list02 {
    width: 90%;
    max-width: 300px;
    font-size: clamp(3.5rem, 3.6vw, 5rem);
    font-size: 3.5rem;
        line-height: 131.4%;
        letter-spacing: 5.5px;
        padding: 35px 10px;
  }

      .stage_title {
        font-size: 2.5rem;
        line-height: 131.4%;
        letter-spacing: 4.4px;
        margin-top: 15px;
    }

        .stage_txt {
        font-size: clamp(1.6rem, 1.6vw, 2rem);
        font-size: 1.4rem;
        margin-top: 15px;
        letter-spacing: 0.5;
    }

        .stage_age {
        font-size: 2.5rem;
        line-height: 131.4%;
        letter-spacing: 2.2px;
        margin-top: 15px;
    }

  .age_list {
    padding: 0 5vw;
  }

  .age_item {
    margin-top: 24px;
    padding-bottom: 24px;
  }

  .age_txt {
    line-height: 1.9;
    font-size: 1.6rem;
  }


  .graph_wrap {
    padding: 0 5vw;
  }

      .stage_img {
        width: 112px;
        height: 93px;
        margin-top: 15px;
    }
}

@media screen and (max-width: 600px) {
  .graph_pc {
    display: none;
}
.graph_sp {
   display: block;
}
}


@media screen and (max-width: 500px) {
  .explanation {
    margin-top: 40px;
  }

  .explanation::before {
    width: 75%;
    height: 231px;
    top: -50px;
  }

.explanation_inner {
  padding-bottom: 30px;
}

  /* タイトル */
  .explanation_sub_title {
    width: 100%;
  }

}

/*==============
比較表
================*/

.comparison_wrap {
  width: 100%;
  padding: 0 16.7vw 0.6vw;
}

/* テーブル本体 */
.comparison_table {
  width: 100%;
  margin: 5vw auto 0;
  border-collapse: collapse;
  font-size: clamp(1.4rem, 0.9vw, 1.8rem);
  font-size: clamp(1.4rem, 1.3vw, 2.5rem);
  color: #6B5C52;
  font-weight: 500;
}

/* 共通 */
.comparison_table th,
.comparison_table td {
  border: 1px solid #726159;
  padding: 1.4vw;
  line-height: 1.6;
  vertical-align: middle;
}

/* 上ヘッダー */
.comparison_table thead th {
  text-align: center;
  font-weight: 700;
}

/* 左上 */
.comparison_table thead th:first-child {
  background: #4DB6BA;
  width: 24%;
}

/* 左列 */
.comparison_table tbody th {
  background: #4DB6BA;
  color: #fff;
  width: 24%;
  font-weight: 700;
  text-align: left;
}

/* 5歳 */
.start_5 {
  background: #FEF3DB;
  color: #FFA800;
  position: relative;
  text-align: center;
}

/* 王冠 */
.start_5::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 1.6vw;
  transform: translateY(-50%);
  width: 2.4vw;
  height: 2.4vw;
  min-width: 24px;
  min-height: 24px;
  max-width: 36px;
  max-height: 36px;
  background: url(../images/explanation/crown.png) no-repeat center / contain;
}

/* 12歳 */
.start_12 {
  background: #FAE3E3;
  color: #E46987;
  text-align: center;
}

/* 本文 */
.comparison_table td {
  background: #fff;
}


@media screen and (max-width: 1024px) {
  .comparison_wrap {
    padding: 0 140px 30px;
  }

  .comparison_table th,
  .comparison_table td {
    padding: 12px;
  }

  .start_5::before {
    left: 10px;
    width: 24px;
    height: 24px;
  }
}


@media screen and (max-width: 768px) {
  /* 外側：余白 */
  .comparison_outer {
    padding: 0 20px 70px;
  }

  .comparison_wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0;
  }

  .comparison_table {
    width: 540px; 
    min-width: 540px;
    margin-top: 24px;
    font-size: 1.3rem;
    border-collapse: collapse;
    display: block;
  }

  .comparison_table th,
  .comparison_table td {
    padding: 8px;
  }

  .comparison_table tbody th {
    width: 140px;
    font-size: 1.4rem;
  }

  .start_5,
  .start_12 {
    font-size: 1.3rem;
  }

  .start_5::before {
    left: 6px;
    width: 18px;
    height: 18px;
  }
}


/*===============
よくある誤解
=================*/
/* 全体 */
.explanation_note_02 {
  width: fit-content;
  margin: 7.8vw auto;
  text-align: center;
  /* width: min(90%, 700px); */
  text-align: center;
}

/* タイトル */
.note_title {
  position: relative;
  display: inline-block;
  margin-top: 20px;
  margin-bottom: 40px;
  padding: 14px 24px;
  color: #FF9292;
  font-size: clamp(2rem, 2.3vw, 4rem);
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.note_title::before,
.note_title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 4px;
  background: #FF9292;
  max-width: 700px;
  min-width: 100%;
  width: 36.45vw;
}

.note_title::before {
  top: 10%;
}

.note_title::after {
  bottom: 10%;
}

/* 見出し */
.note_item h4 {
  font-size: clamp(1.4rem, 1.5vw, 2.5rem);
  font-weight: 700;
  line-height: 1.5;
}

/* 本文 */
.note_item p {
  margin-top: 8px;
  font-size: clamp(1.4rem, 1.3vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
}

/* 下テキスト */
.note_txt {
  margin-top: 30px;
  color: #695B47;
  font-size: clamp(1.3rem, 1.2vw, 2rem);
  font-weight: 700;
  line-height: 1.7;
}

/* 赤文字 */
.note_txt span {
  color: #E46987;
  font-size: clamp(1.4rem, 1.4vw, 2.5rem);
  font-weight: 700;
}

/* リスト */
.note_list {
  width: fit-content;
  /* margin: 0 auto; */
  text-align: left;
}

.note_item + .note_item {
  margin-top: 20px;
}

/* 下文章 */
.note_txt {
  width: fit-content;
  margin: 36px auto 0;
  text-align: left;
  color: #695B47;
  font-size: clamp(1.3rem, 1.2vw, 2rem);
  font-weight: 700;
  line-height: 2;
  max-width: 38em;
}

.dino_triceratops {
  width: 20vw;
  margin: 0 auto;
}

/* トリケラトプスが出現 */
.dino_triceratops {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.5s ease, transform 0.8s cubic-bezier(0.22, 1.2, 0.36, 1);
}

.dino_triceratops.is-show {
  opacity: 1;
  transform: translateY(0);
}

@media screen and (max-width: 768px) {
  .note_title {
    margin-top: 10px;
    margin-bottom: 20px;
  }

  .explanation_note_02 {
    padding: 0 4vw;
    margin: 0 auto;
}

  .dino_triceratops {
    width: 130px;
  }
}

/*=========================================================
よしだがたファミリークリニックの特徴
==========================================================*/

/*====　タイトル ====*/
.features {
  background-color: #FFF0CF;
  padding: 4.4vw 4.4vw 27.6vw;
  padding: 19.4vw 4.4vw 27.6vw;
}

.features_inner {
  background-color: #fff;
  position: relative;
  padding: 20vw 13vw 6.8vw;
}

.features_title {
  position: absolute;
  top: -15vw;
  left: 6vw;
  width: clamp(279px, 55.6vw, 1068px);
}

.features_lead {
  width: 100%;
  margin-bottom: 40px;
}

.features_lead p {
  color: #695B47;
  font-size: clamp(1.4rem, 1.3vw, 2rem);
  font-weight: 700;
  text-align: left;
}

@media screen and (max-width: 1550px) {
  .features_inner::before{
top: -9%;
        right: 3%;
        width: 34vw;
}
}



@media screen and (max-width: 1024px) {
       .features_inner::before {
        top: -5%;
        right: 3%;
        width: 31vw;
    }

  .features_inner {
    padding: 20vw 5vw 6.8vw;
  }
}

@media screen and (max-width: 768px) {
  .features {
  padding: 19.4vw 1.4vw 27.6vw;
}

  .features_lead_sp {
    display: none;
  }

  .features_inner {
    padding: 20vw 3vw 6.8vw;
  }

       .features_inner::before {
        top: -8%;
        right: 4%;
        /* width: clamp(250px, 47.6vw, 614px); */
        width: 38vw;
    }
}

@media screen and (max-width: 500px) {
    .features_inner::before {
        top: 4%;
        right: 27%;
        /* width: clamp(250px, 47.6vw, 614px); */
        width: 48vw;
    }
      .features {
        padding: 27.4vw 1.4vw 27.6vw;
    }

        .features_inner {
        padding: 25vw 3vw 6.8vw;
    }

      .features_title {
        top: -31vw;
        left: 2vw;
        width: 93.6vw;
    }
}


/*========================
マウスピース&トレーニング
========================*/

.card_wrap {
  display: flex;
  align-items: stretch;
  gap: 60px;
  margin: 20px auto 90px;
  width: 100%;
}

.card_wrapper {
  width: fit-content;
  margin: 0 auto;
  width: min(100%, 1251px);
}


/*== カード共通 ==*/
.mouthpiece_card,
.training_card {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 583px;
  min-height: 266px;
  padding: 28px 16px;
  border-radius: 50px;
  background: #FFF;
  box-sizing: border-box;
}

/* 青 */
.mouthpiece_card {
  border: 3px solid #34D0F7;
}

/* ピンク */
.training_card {
  border: 3px solid #E46987;
}


/*== テキスト ==*/
.mouthpiece_label,
.training_label {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.6rem, 0.83vw, 1.6rem);
  font-weight: 700;
  line-height: 1.5;
}

.mouthpiece_title {
  color: #65BFDC;
  text-align: center;
  font-size: clamp(2.5em, 1.56vw, 3rem);
  font-weight: 900;
  line-height: 1.3;
}

.training_title {
  color: #E46987;
  text-align: center;
  font-size: 3rem;
  font-size: clamp(2.5rem, 1.56vw, 3rem);
  font-weight: 900;
  line-height: 1.3;
}

/*== リスト ==*/
.mouthpiece_list,
.training_list {
  display: inline-block;
  margin-top: 34px;
  color: #695B47;
  font-size: 1.6rem;
  font-size: clamp(1.4rem, 0.83vw, 1.6rem);
  font-weight: 700;
  line-height: 1.7;
  list-style: disc;
  text-align: left;
}

/*== コンテンツ ==*/
.mouthpiece_content,
.training_content {
  flex: 1;
  text-align: center;
}


/*== コンテンツ ==*/
.mouthpiece_img {
  flex-shrink: 0;
  width: 11.3vw;
  height: 9.4vw;
  position: relative;
  left: -10px;
  transform: scale(1.15);
}

.training_img {
  flex-shrink: 0;
  width: 12.3vw;
  height: 10.5vw;
}

.mouthpiece_img img,
.training_img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media screen and (max-width: 1024px) and (min-width: 768px) {

  .card_wrap {
    gap: 24px;
  }

  .mouthpiece_card,
  .training_card {
    flex-direction: column; 
    justify-content: flex-start;
    align-items: center;
    padding: 32px 20px;
  }

  .mouthpiece_content,
  .training_content {
    text-align: center;
  }

}


@media screen and (max-width: 768px) {

  .card_wrap {
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 0;
    margin: 40px auto 70px;
  }

  .mouthpiece_card,
  .training_card {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 420px;
    padding: 16px 11px;
    border-radius: 32px;
    min-height: 215px;
  }

  .mouthpiece_img {
    width: 19.3vw;
    height: 20.4vw;
  }

  .training_img {
    width: 15.3vw;
    height: 17.5vw;
  }

  .mouthpiece_list,
  .training_list {
    margin-top: 15px;
  }
}


@media screen and (max-width: 500px) {
  .mouthpiece_img {
    width: 29.3vw;
    height: 20.4vw;
  }

  .training_img {
    width: 22.3vw;
    height: 26.5vw;
  }
}

@media screen and (max-width: 360px) {
  .mouthpiece_title {
    font-size: 2.3rem;
}
}

/*  */



/* 生活習慣を改善しながら〜 */
.features_block {
  display: flex;
  align-items: center;
  gap: 40px;
}

.features_block_img,
.features_block > div {
  flex: 1;
}

.features_block_img {
  width: 32.5vw;
  max-width: 625px;
  aspect-ratio: 625 / 405;
}

.features_block_img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.features_block_lead {
  color: #695B47;
  font-size: clamp(1.4rem, 1.5vw, 2.5rem);
  font-weight: 700;
  line-height: 156.2%; 
  text-align:left;
  flex-wrap:wrap;
  justify-content:flex-start;
  line-height:1.8;
  gap:.2em;
}

.features_1 {
  color: #E46987;
  font-size: clamp(2rem, 2.5vw, 4rem);
  font-weight: 900;
  line-height: 156.2%;
  white-space:nowrap;
}

.features_2 {
  color: #65BFDC;
  font-size: clamp(2rem, 2.5vw, 4rem);
  font-weight: 700;
  line-height: 156.2%;
  white-space:nowrap;
}

.features_block_note {
  color: #695B47;
  font-size: clamp(1.2rem, 1.1vw, 1.8rem);
  font-weight: 400;
  line-height: 179.2%;
  margin-top: 25px;
}


@media screen and (max-width: 768px) {
  .features_block {
    flex-direction: column;
    align-items: center;
    gap: 28px;
    text-align: center;
  }

  .features_block_img {
    width: 100%;
    max-width: 562px;
  }

  .features_block_lead{
    max-width: 436px;
    margin: 0 auto;
    text-align: left;

}

  .features_block_note {
    margin-top: 18px;
    font-size: 1.2rem;
    line-height: 1.8;
    text-align: center;
  }

}

@media screen and (max-width: 360px) {
  .features_block_note {
    text-align: left;
  }
}

/* 院長からのメッセージ */
.message {
  margin-top: 100px;
}
 
.message_title {
  color: #FF9292;
  text-align: center;
  font-size: clamp(2rem, 2.8vw, 4.5rem);
  font-style: normal;
  font-weight: 900;
  line-height: 153.2%;
  letter-spacing: 2.25px;
  justify-content: center;
  align-items: center;
  position: relative;
  padding-bottom: 20px;
  gap: 16px;
}

/* イラスト */
.title_illust {
  width: clamp(70px, 8vw, 134px);
  height: auto;
  transform: scaleX(-1)
}


/* ドット線 */
.message_title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(100%, 1060px);
  border-bottom: 2px dotted #FFA800;
}

.message_txt {
  color: #695B47;
  font-size: clamp(1.4rem, 1.5vw, 2.5rem);
  font-style: normal;
  font-weight: 700;
  line-height: 153.2%;
  letter-spacing: 1.25px;
  width: min(100%, 944px);
  margin: 40px auto;
}

.message_name {
    margin-top: 20px;
    text-align: end;
}

@media screen and (max-width: 1024px) {
  .message {
    margin-top: 80px;
  }

  .message_br01 {
    display: none;
  }

}


@media screen and (max-width: 768px) {
  .features_lead_sp {
    display: none;
  }

  .message {
    margin-top: 60px;
  }

  /* タイトル */
  .message_title {
    gap: 10px;
    padding-bottom: 16px;
    font-size: 2rem;
    line-height: 1.4;
  }

  .title_illust {
    width: 64px;
  }

  .message_title::after {
    border-bottom-width: 1px;
  }

  /* 本文 */
  .message_txt {
    margin-top: 28px;
    font-size: 1.4rem;
    line-height: 1.6;
    letter-spacing: 0.03em;
  }
}

@media screen and (max-width:  375px) {
  .features_block_lead {
        width: 90%;
    }
}

@media screen and (max-width: 360px) {
  .title_illust {
      width: 54px;
  }
}


/*=========================================================
選ばれる理由
==========================================================*/
.reasons {
  background: #fff;
  padding: 120px 0;
  position: relative;
}

.reasons_inner {
  max-width: 1200px;
  margin: -300px auto 0;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

.reasons::before {
  content: "";
  position: absolute;
  top: -350px;
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  height: 1000px;
  background: #fff;
  border-radius: 50%;
  z-index: 0;
}

.reason_title {
  width: 795px;
  width: 41vw;
  height: auto;
  margin: 0 auto;
}

/*========= カード ==========*/
.reason_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 40px;
  margin-top: 84px;
}

.reason_card {
  position: relative;
  overflow: hidden;
  flex-direction: column;
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* 左上の三角 */
.reason_card__num {
  position: absolute;
  top: -8px;
  left: -1px;
  width: 70px;
  height: 83px;
  font-size: 3rem;
  color: #fff;
  font-weight: bold;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 10px;
  text-align: center;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}


/* 色バリエーション */
.reason_card--green .reason_card__num { background: #94CB20; }
.reason_card--pink .reason_card__num { background: #5D5DDA; }
.reason_card--purple .reason_card__num { background: #E46987; }
.reason_card--peach .reason_card__num { background: #FFB4B4; }
.reason_card--blue .reason_card__num { background: #34D0F7; }
.reason_card--yellow .reason_card__num { background: #FAE12F; }

.reason_card--green { border: 3px solid #94CB20; }
.reason_card--pink { border: 3px solid #5D5DDA; }
.reason_card--purple { border: 3px solid #E46987; }
.reason_card--peach { border: 3px solid #FFB4B4; }
.reason_card--blue { border: 3px solid #34D0F7; }
.reason_card--yellow { border: 3px solid #FAE12F; }

/* テキスト */
.reason_card__content {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* 画像 */
.reason_card__img img {
  width: 100%;
  height: 100%; 
  object-fit: cover;
  display: block; 
}
.reason_card__img {
  width: 100%;
  height: 180px;
  overflow: hidden;
  line-height: 0;
  margin-top: auto;
}

.reason_card:nth-child(2) .reason_card__img img {
  object-fit: contain;
  background: #fff; 
}

.reason_card__title {
  color: #695B47;
  text-align: center;
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  line-height: 27px;
  min-height: 54px;
  display: flex;
  align-items: flex-end;   
  justify-content: center;
}

.reason_card__desc {
  color: #695B47;
  font-size: 1.6rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  margin-top: 15px;
}

/* カードの出現 */
/* カードの出現 */
.reason_card {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.reason_card.is-show {
  opacity: 1;
  transform: translateY(0);
}

/*=========================================================
  MRC認定歯科医院とは
=========================================================*/

.reasons_note {
    width: min(1200px, 100%);
    margin: 80px auto 0;
    display: flex;
    align-items: center;
    gap: 70px;
}

.reasons_note_img {
    width: 400px;
    flex-shrink: 0;
}

/* 認定クリニックバッチ出現 */
.reasons_note_img {
  opacity: 0;
  transform: translateY(80px);
  transition: opacity 1.2s ease, transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.reasons_note_img.is-show {
  opacity: 1;
  transform: translateY(0);
}



.reasons_note_img img {
    display: block;
    width: 100%;
    height: auto;
}

.reasons_note_content {
    flex: 1;
}

.reasons_note_content h3 {
    display: inline-block;
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
}

.reasons_note_content h3::after {
    content: "";
    display: block;
    width: 100%;
    height: 10px;
    /* margin-top: 8px; */
    background-image: url("../images/dots.png");
    background-repeat: repeat-x;
    background-position: left center;
    background-size: auto 10px;
}

.reasons_note_content p {
    margin: 0;
    font-size: 20px;
    line-height: 1.9;
}

/*=========================================================
  SP
=========================================================*/

@media screen and (max-width: 767px) {
    .reasons_note {
        width: calc(100% - 40px);
        margin: 60px auto;
        display: flex;
        flex-direction: column;
        gap: 8px;
        align-items: center;
    }

    .reasons_note_img {
        width: min(400px, 100%);
    }

    .reasons_note_content {
        width: 100%;
    }

    .reasons_note_content h3 {
        font-size: 24px;
        line-height: 1.5;
        text-align: center;
    }

    .reasons_note_dots {
        width: 220px;
        margin: 8px auto 15px;
    }

    .reasons_note_content p {
        font-size: 16px;
        line-height: 1.8;
    }
}

/*  */


.reasons_note {
  display: flex;
  justify-content: center;
}

.reasons_triangle {
  max-width: 639px;
  width: 33.2vw;
  max-height: 238px;
  height: 12.3vw;
  margin: 9.3vw auto 0;
}

.reasons_triangle img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 1024px) {

  .reasons {
    padding: 100px 20px;
  }

  .reasons_inner {
    margin-top: -180px;
    padding: 0 5vw;
  }

  /* 白背景 */
  .reasons::before {
    top: -220px;
    height: 700px;
    width: 140%;
  }


  /* カード */
  .reason_list {
    gap: 24px;
    margin-top: 60px;
  }

  .reason_card__content {
    padding: 20px;
  }

  .reason_card__title {
    font-size: 1.8rem;
    line-height: 1.5;
    min-height: 60px;
  }

  .reason_card__desc {
    font-size: 1.4rem;
    line-height: 1.7;
  }

  .reason_card__img {
    height: 160px;
  }

}


@media screen and (max-width: 768px) {
  .reasons {
    padding: 80px 20px;
  }

  .reasons_inner {
    margin-top: -120px;
    padding: 0 3vw;
  }

  /* 白背景 */
  .reasons::before {
    top: -140px;
    height: 500px;
    width: 140%;
  }

  /* タイトル */
  .reason_title {
    width: 100%;
    max-width: 360px;
  }

  .reason_title img {
    width: 100%;
    height: auto;
  }

  /* カード縦並び */
  .reason_list {
    gap: 20px;
    justify-items: center;
    margin-top: 40px;
  }

  .reason_card {
    border-width: 2px;
    width: 100%;
    max-width: 340px;
  }

  /* 番号 */
  .reason_card__num {
    width: 56px;
    height: 74px;
    font-size: 2.2rem;
    padding: 8px;
  }

  /* テキスト */
  .reason_card__content {
    padding: 18px;
  }

  .reason_card__title {
    min-height: auto;
    font-size: 1.7rem;
    line-height: 1.6;
  }

  .reason_card__desc {
    margin-top: 10px;
    font-size: 1.3rem;
    line-height: 1.8;
  }

  /* 画像 */
  .reason_card__img {
    height: 180px;
  }

  /* 注釈 */
  .reasons_note {
    margin-top: 40px;
    font-size: 1.2rem;
    line-height: 1.8;
    text-align: left;
  }

}


@media screen and (max-width: 500px) {
  .reasons::before {
    top: -85px;
    height: 500px;
    width: 140%;
  }

  .reasons {
    padding: 130px 20px;
  }
}

@media screen and (max-width: 320px) {
  .reason_list {
    grid-template-columns: repeat(auto-fit, minmax(292px, 1fr));
}

.reasons {
        padding: 130px 3px;
    }

  .reasons_note p {
    font-size: 1.3rem;
}
}


/*=========================================================
トレーニング
==========================================================*/
.training {
  background-color: #FFF0CF;
  clip-path: polygon(0 0, 50% 1300px, 100% 0, 100% 100%, 0 100%);
  margin-top: -980px;
  padding-top: 1380px;
  padding-bottom: 875px;
  overflow: visible;
  margin: -1325px;
}

.training_inner {
  width: 1200px;
  margin: 0 auto;
  position: relative;
}

.training_inner::before {
  position: absolute;
  content: "";
  background-image: url(../images/training/training_dino.png);
  max-width: 382px;
  width: 19.8vw;
  max-height: 258px;
  height: 13.4vw;
  top: -12vw;
  right: -11vw;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 10;
}
.training_inner::before {
  position: absolute;
  content: "";
  background-image: url(../images/training/training_dino.png);
  max-width: 382px;
  width: 19.8vw;
  max-height: 258px;
  height: 13.4vw;
  top: -12vw;
  right: -11vw;
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 10;
  animation: dino_fly 3s ease-in-out infinite;
}

@keyframes dino_fly {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-15px);
  }
}



.training_wrap {
  display: flex;
  justify-content: center;
  gap: 60px;
  align-items: flex-end;
}

/* 子どもの画像 */
.training_kids {
  width: 19.5vw;
  height: 17.2vw;
}

/* 吹き出し画像 */
.training_comment {
  width: 21vw;
  height: 13.2vw;
}

/* ステップ */
.training_step {
  justify-content: space-between;
  gap: 40px;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  padding: 70px;
  border-radius: 70px;
  border: 3px solid #E46987;
}

.training_item {
  display: flex;
  gap: 15px;
  align-items: center;
  position: relative;
  text-align: center;
}
/* アイテムの出現 */
.training_item {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.training_step.is-show .training_item {
  opacity: 1;
  transform: translateY(0);
}
.training_step.is-show .training_item:nth-child(1) { transition-delay: 0s; }
.training_step.is-show .training_item:nth-child(2) { transition-delay: 0.25s; }
.training_step.is-show .training_item:nth-child(3) { transition-delay: 0.5s; }
.training_step.is-show .training_item:nth-child(4) { transition-delay: 0.75s; }
.training_step.is-show .training_item:nth-child(5) { transition-delay: 1s; }
.training_step.is-show .training_item:nth-child(6) { transition-delay: 1.25s; }

/*  */



.training_item p {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.4rem, 1.3vw, 2.5rem);
  font-weight: 900;
  letter-spacing: 2.75px;
}

.training_item img {
  width: 95px;
  height: 95px;
}

/* ▼を作る */
.training_item::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -38px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 26px solid transparent;
  border-right: 26px solid transparent;
  border-top: 22px solid #E46987;
}

.training_item:last-child::after {
  display: none;
}


/* YouTube動画 */
.movie {
  width: 100%;
  width: 70%;
  max-width: 808px;
  aspect-ratio: 125/69;
  height: auto;
  display: block;
  margin: 8.8vw auto;
}

@media screen and (max-width: 1500px) {
  .training_inner::before {
    top: -16vw;
    right: 0;
    width: 26.8vw;
    height: 16.4vw;
  }

  .training {
    padding-bottom: 1000px;
}
}


@media screen and (max-width: 1024px) {

  .training {
    margin: -328px 0 0;
    padding-top: 315px;
    padding-bottom: 128px;
    clip-path: polygon(0 0, 50% 276px, 100% 0, 100% 100%, 0 100%);
  }

  .training_inner {
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .training_wrap {
    gap: 40px;
    align-items: center;
  }

  .training_comment {
    width: 260px;
    height: auto;
  }

  .training_kids {
    width: 240px;
    height: auto;
  }

  .training_comment img,
  .training_kids img {
    width: 100%;
    height: auto;
  }

  .training_step {
    gap: 30px;
  }

  .training_item img {
    width: 72px;
    height: 72px;
  }

  .training_item::after {
    bottom: -28px;

    border-left-width: 18px;
    border-right-width: 18px;
    border-top-width: 18px;
  }

}


@media screen and (max-width: 768px) {
  .training {
    margin: -239px 0 0;
    padding-top: 220px;
    padding-bottom: 120px;
    clip-path: polygon(0 0, 50% 193px, 100% 0, 100% 100%, 0 100%);
  }

  .training_inner {
    padding: 0 20px;
  }

  .training_wrap {
    flex-direction: column;
    align-items: center;
    gap: 0px;
  }

  /* ← 上に来る */
  .training_read_wrap {
    order: -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  /* 吹き出し */
  .training_comment {
    width: 240px;
    height: auto;
  }

  /* 子ども */
  .training_kids {
    width: 175px;
    height: auto;
    transform: translateX(-100px);
    transform: translate(-105px, -28px);
  }

  .training_comment img,
  .training_kids img {
    width: 100%;
    height: auto;
  }

  /* ステップ */
  .training_step {
    width: 330px;
    gap: 26px;
    align-items: center; 
    padding-left: 55px;
  }

  .training_item {
    width: 260px; 
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    margin: 0 auto;
  }

  .training_item img {
    width: 56px;
    height: 56px;
  }

  .training_item p {
    font-size: 1.5rem;
    letter-spacing: 1px;
    text-align: left;
  }

  /* ▼ */
  .training_item::after {
    bottom: -22px;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 14px solid #E46987;
  }

}

@media screen and (max-width: 500px) {
  .training {
    margin: -224px 0 0;
    padding-top: 221px;
    padding-top: 143px;
    padding-bottom: 60px;
    clip-path: polygon(0 0, 50% 128px, 100% 0, 100% 100%, 0 100%);
  }

  .training_kids {
    width: 130px;
    transform: translate(-118px, -88px);
  }

  .training_inner::before {
    top: -29px;
    right: 53px;
    width: 26.8vw;
    height: 16.4vw;
  }

  .training_step {
    width: 330px;
    gap: 26px;
    align-items: center;
    padding-left: 55px;
    margin-top: -70px;
    padding: 40px;
  }

  .movie {
  width: 85%;
  }

  @media screen and (max-width: 320px) {
    .training_step {
        width: 300px;
    }
  }
}

/*=========================================================
きれいな歯並びを育てるためのお約束
==========================================================*/
.promise {
  background: #FFEAED;
  padding: 200px 0 100px;
  position: relative;
  margin-top: 36vw;
  text-align: center;
}


.promise::before {
  content: "";
  position: absolute;
  top: -10vw;
  left: 50%;
  transform: translateX(-50%);
  width: 140vw;   
  height: 60vw;    
  background: #FFEAED;
  border-radius: 50%;
  z-index: 0;
}


.promise_inner {
  max-width: 1200px;
  margin: -300px auto 0;
  position: relative;
  z-index: 1;
}


.promise_title {
  color: #695B47;
  font-size: 6rem;
  font-size: clamp(2rem, 2.2vw, 6rem);
  font-weight: 900;
  letter-spacing: 6.6px;
  position: relative;
  text-align: center;
  display: inline-block;
  margin-top: 5.7vw;
}

.promise_title_sp {
  display: none;
}

.promise_title span {
  color: #E46987;
  font-size: clamp(2rem, 3vw, 6rem);
  font-weight: 900;
  line-height: 131.4%;
  letter-spacing: 7.7px;
}

.promise_title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
  margin-top: 20px;
  width: 100%;
  height: 28px;
  background-image: url(../images/promise/wavyline.png);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}


/* お約束リスト */
.promise_list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-top: 160px;
}

/* 共通 */
.promise_list li {
  width: fit-content;
}

.promise_list li img {
  width: clamp(230px, 27vw, 530px);
  display: block;
}

.promise_list p {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.4rem, 1.56vw, 3rem);
  font-weight: 700;
  line-height: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  margin-top: 10px;
}

.promise_list span {
  font-size: clamp(2.5rem, 3.1vw, 6rem);
  font-weight: 700;
  line-height: 1;
}


/* 位置 */
.promise_item01 {
  transform: translateX(-18vw);
}

.promise_item02 {
  transform: translate(18vw, -12vw);
}

.promise_item03 {
  transform: translate(-12vw, -20vw);
}

/*  */



/* promise項目の出現 */
.promise_item01,
.promise_item02,
.promise_item03 {
  opacity: 0;
  translate: 0 25px;
  transition: opacity 0.8s ease, translate 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.promise_list.is-show .promise_item01,
.promise_list.is-show .promise_item02,
.promise_list.is-show .promise_item03 {
  opacity: 1;
  translate: 0 0;
}

.promise_list.is-show .promise_item01 {
  transition-delay: 0s;
}

.promise_list.is-show .promise_item02 {
  transition-delay: 0.15s;
}

.promise_list.is-show .promise_item03 {
  transition-delay: 0.3s;
}







.promise_note {
  color: #FFF;
  text-align: center;
  font-size: clamp(1.4rem, 2vw, 4rem);
  font-weight: 900;
  line-height: 1.5;
  background-color: #FFA800;
  border-radius: 2.6vw;
  padding:
    clamp(18px, 3vw, 40px)
    clamp(24px, 5vw, 58px);

  position: relative;
  width: fit-content;
  margin: 0 auto;
}


/* 点線 */
.promise_note::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  bottom: 8px;
  border: 2px dashed #FFF;
  border-radius: 2.6vw;
  pointer-events: none;
}


/* ママ */
.promise_note::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../images/promise/promise_mama.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: clamp(93px, 8.1vw, 156px);
  height: clamp(129px, 11.25vw, 216px);
  bottom: 75%;
  margin-bottom: 20px;
}

.triangle_bottom {
  max-width: 639px;
  width: 33.2vw;
  margin: clamp(40px, 9vw, 180px) auto 0;
}

.triangle_bottom img {
  width: 100%;
  height: auto;
  display: block;
}

/* デコレーション画像 */
.promise_deco01,
.promise_deco02 {
  position: absolute;
  z-index: 0;
}

.promise_deco01 img,
.promise_deco02 img {
  width: 100%;
  display: block;
}

.promise_deco01 {
  top: clamp(-420px, -32vw, -180px);
  left: 0;
  width: 16vw;
}

.promise_deco02 {
  bottom: clamp(180px, 30vw, 604px);
  right: 0;
  width: 10vw;
}
/*  */


@media screen and (max-width: 1300px) {
  .promise {
    padding: 270px 0 100px;
    margin-top: 47vw;
  }
}

@media screen and (max-width: 1250px) {
  .promise::before {
    top: -15vw;
  }
}



@media screen and (max-width: 1024px) {
  .promise {
      padding: 270px 0 100px;
      margin-top: 0;
  }

  .promise_title::after {
    margin-top: 0; 
  }

  .promise_list {
    margin-top: 100px;
  }

/* ママ */
  .promise_note::after {
    width: 75px;
    height: 104px;
  }

}


@media screen and (max-width: 768px) {
  .promise {
    padding: 315px 0 100px;
    margin-top: 12px;
  }

  .promise::before {
    height: 85vw;
  }

  .promise_list {
    gap: 24px;
    margin-top: 80px;
  }

  .promise_item01,
  .promise_item02,
  .promise_item03 {
    transform: none;
  }

  .promise_list li img {
    width: 60vw;
  }

  .promise_list li {
    justify-content: center;
    align-items: center;
    display: flex;
    flex-direction: column;
}


/* デコレーション画像 */
  .promise_deco01 {
    display: none;
  }

  .promise_deco02 {
    display: none;
  }

/*  */

  .promise_note {
    margin: 215px auto 0;
    font-weight: 700;
    margin: 215px auto 0;
    margin: 166px auto 0;
    padding: 25px 19px;
  }

}

@media screen and (max-width: 500px) {
  .promise_title_sp {
    display: block;
}

  .promise_list {
    gap: 24px;
    margin-top: 66px;
  }
}

/*=========================================================
安心のサポート
==========================================================*/


.background_02 {
    background: url(../images/background02.png) no-repeat center / cover;
    width: 100%;
    clip-path: polygon(0 0, 50% 26vw, 100% 0, 100% 100%, 0 100%);
    margin-top: -26vw;
    padding-top: 24vw;
}

.support {
  padding: 0 4.4vw;
  background-color: #65BFDC;
    width: 100%;
    clip-path: polygon(0 0, 50% 26vw, 100% 0, 100% 100%, 0 100%);
    margin-top: -26vw;
    padding-top: 24vw;
    padding: 24vw 4.4vw 5vw;
}

.support_wrap {
  background: #fff;
  margin: 2.3rem auto 0;
  padding: 4.8vw 0 6.9vw;
  text-align: center;

  background: url(../images/support/support_bg_pc.png) center top / 100% 100% no-repeat;
}

.support_comment {
  display: flex;
  align-items: end;
  justify-content: center;
}

.support_comment p {
  color: #FFF;
  text-align: center;
  font-size: clamp(1.8rem, 2.6vw, 5rem);
  font-weight: 900;
  line-height: 131.4%; 
  letter-spacing: 6.6px;
}

.support_doctor {
  width: clamp(131px, 21vw, 417vw);
  height: clamp(123px, 16.6vw, 391px);
}

.support_title {
  margin: 0 auto;
  width: 34vw;
}

.support_sub_title {
  color: #695B47;
  text-align: center;
  font-size: 6rem;
  font-size: clamp(1.8rem, 3vw, 6rem);
  font-weight: 900;
  letter-spacing: 3px;
  margin-top: 3.1vw;
  position: relative;
  display: inline-block; 
  text-shadow:
    3px 3px 0 #fff,
    -3px 3px 0 #fff,
    3px -3px 0 #fff,
    -3px -3px 0 #fff,
    0px 3px 0 #fff,
    0px -3px 0 #fff,
    3px 0px 0 #fff,
    -3px 0px 0 #fff;
}

.support_sub_title::before,
.support_sub_title::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 6px;
  background-color: #FCAEAE;
}

/* タイトルの上下の線 */
.support_sub_title::before {
  top: -10px;
}
.support_sub_title::after {
  bottom: -10px;
}



/* ＝＝＝＝＝＝＝＝＝
画像とバッチ 
＝＝＝＝＝＝＝＝＝＝＝*/
.support_feature_inner {
  position: relative;
  height: 1550px;
  width: 1300px;
  margin: 0 auto;

}

.img_top img,
.img_bottom img {
  width: 100%;
  display: block;
}

.img_top, .img_bottom, .circle_pink, .circle_yellow, .circle_blue {
  position: absolute;
}

.circle_content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75%;
  text-align: center;
}

.circle_text {
  color: #695B47;
  font-size: clamp(1.4rem, 1vw, 2rem);
  font-weight: 700;
  letter-spacing: 1.4px;
  margin-top: 15px;
  text-align: left;
}

.doctor { color: #65BFDC; }
.hygienist { color: #E46987; }
.technician { color: #94CB20; }
.nursery { color: #FFA800; }

/* ピンク */
.circle_pink {
  width: 426px;
  aspect-ratio: 1 / 1;
  background-image: url(../images/support/pink.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 62px;
  left: 205px;
}


.circle_title_pink {
  color: #695B47;
  font-size: clamp(1.8rem, 1.56vw, 3rem);
  font-weight: 900;
  letter-spacing: 2.45px;
}

.circle_title_pink span {
  color: #E46987;
  text-align: center;
  font-size: clamp(2rem, 2.3vw, 4.5rem);
  font-weight: 900;
  letter-spacing: 3.5px;
}

/* きいろ */
.circle_yellow {
  width: 513px;
  aspect-ratio: 1 / 1;
  background-image: url(../images/support/yellow.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 603px;
  right: 65px;
}

.circle_title_yellow {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.8rem, 1.56vw, 3rem);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 2.1px;
}

.cicle_text_yellow {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.4rem, 1vw, 2rem);
  font-weight: 700;
  letter-spacing: 1.4px;
  margin-top: 20px;
}

.cicle_text_yellow span {
  font-size: clamp(1.8rem, 1.56vw, 3rem);
}

.circle_text2_yellow {
  color: #695B47;
  font-size: clamp(1.4rem, 1vw, 2rem);
  font-weight: 700;
  letter-spacing: 1.4px;
}

.circle_text2_yellow span {
  color: #E46987;
  font-size: clamp(1.8rem, 1.56vw, 3rem);
  margin-top: 20px;
}

/* あお */
.circle_blue {
  width: 385px;
  aspect-ratio: 1 / 1;
  background-image: url(../images/support/blue.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  bottom: 0;
  left: 149px;
}

.circle_txt_blue {
  color: #695B47;
  text-align: center;
  font-size: clamp(1.4rem, 1vw, 2rem);
  font-weight: 700;
  letter-spacing: 1.4px;
}

.circle_txt_blue span {
  color: #94CB20;
  font-size: clamp(1.8rem, 1.56vw, 3rem);
  font-weight: 900;
}

/* 診察室画像 */
.img_top {
  top: 226px;
  right: 146px;
  width: 730px;
  position: absolute;
}


/* 先生とこども画像 */
.img_bottom {
  position: absolute;
  width: 936px;
  top: 747px;
  left: 64px;
}


/* 順番に出現 */
.support_feature_inner .circle_pink,
.support_feature_inner .img_top,
.support_feature_inner .circle_yellow,
.support_feature_inner .img_bottom,
.support_feature_inner .circle_blue {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.support_feature_inner.is-show .circle_pink {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0s;
}
.support_feature_inner.is-show .img_top {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.3s;
}
.support_feature_inner.is-show .circle_yellow {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.6s;
}
.support_feature_inner.is-show .img_bottom {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.9s;
}
.support_feature_inner.is-show .circle_blue {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1.2s;
}








@media screen and (max-width: 1400px) {
  .support_feature_inner {
    height: 1100px;
    width: 768px;
    margin: 0 auto;
  }

  .circle_pink {
    width: 335px;
    top: 47px;
    left: 57px;
  }

  .img_top {
    top: 188px;
    right: 7px;
    width: 502px;
  }

  .circle_yellow {
    width: 364px;
    top: 423px;
    right: -23px;
  }

  .img_bottom {
    width: 612px;
    top: 544px;
    left: 2px;
  }

  .circle_blue {
    width: 241px;
    bottom: 0;
    left: 86px;
  }

}

@media screen and (max-width: 1024px) {
  .background_02 {
    margin-top: -30vw;
  }

  .support_feature_inner {
    height: 943px;
    width: 768px;
    margin: 0 auto;
  }

  .circle_pink {
    width: 270px;
    top: 47px;
    left: 114px;
  }

  .img_top {
    top: 165px;
    right: 157px;
    width: 350px;
  }

  .circle_yellow {
    width: 305px;
    top: 346px;
    right: 91px;
  }

  .img_bottom {
    width: 491px;
    top: 480px;
    left: 69px;
  }

  .circle_blue {
    width: 222px;
    bottom: 0;
    left: 86px;
  }
}

@media screen and (max-width: 768px) {
  .background_02 {
    margin-top: -32vw;
  }

  .support {
    margin-top: -34vw;
    padding: 24vw 1.4vw 5vw;
  }


.support_wrap {
  background: url(../images/support/support_bg_sp.png) center top / 100% 100% no-repeat;
}





  .support_sub_title {
    margin-top: 23px;
  }

  .support_title {
    width: 240px;
  }

  .support_feature_inner {
    height: 790px;
    width: 340px;
    margin: 0 auto;
  }

  .circle_text {
    font-size: 13px;
    font-weight: 700;
    margin-top: 15px;
  }

  /* ピンク */
  .circle_title_pink {
    font-size: 14px;
  }

  .circle_title_pink span {
    font-size: 20px;
  }

  .circle_pink {
    width: 231px;
    top: 19px;
    left: -25px;
  }


/* きいろ */

  .circle_title_yellow {
    font-size: 14px;
  }

  .cicle_text_yellow {
    font-size: 13px;
    margin-top: -3px;
  }

  .cicle_text_yellow span {
    font-size: 30px;
  }

  .circle_text2_yellow {
    font-size: 13px;
  }

  .circle_text2_yellow span {
    font-size: 18px;
    margin-top: 20px;
  }

  .circle_yellow {
    width: 257px;
    top: 259px;
    right: 43px;
  }

/* あお */
  .circle_txt_blue {
    font-size: 13px;
  }

  .circle_txt_blue span {
    font-size: 18px;
  }

  .circle_blue {
    width: 212px;
    bottom: -5px;
    left: 167px;
  }

  .img_top {
    top: 121px;
    right: -49px;
    width: 254px;
  }

  .img_bottom {
    width: 305px;
    top: 463px;
    left: -24px;
  }
}

@media screen and (max-width: 659px) {
  .background_02 {
    margin-top: -39vw;
}
}

@media screen and (max-width: 500px) {
  .support {
      margin-top: -43vw;
  }
}


@media screen and (max-width: 430px) {
  .background_02 {
    margin-top: -45vw;
  }
}
/*  */



/* リード文 */
.support_lead {
  text-align: center;
  margin: 0 auto;
}

.lead_txt {
  color: #695B47;
  font-size: 3rem;
  font-weight: 700;
  margin-top: 25px;
}

.blue {
  color: #65BFDC;
  text-align: center;
  font-size: 5rem;
  font-weight: 900;
}

.red {
  color: #E46987;
  font-size: 5rem;
  font-weight: 900;
}

.big {
  color: #695B47;
  font-size: 5rem;
  font-weight: 700;
}

.orange {
  color: #F08623;
  font-size: 5rem;
  font-weight: 900;
}

.pink {
  color: #E46987;
  font-size: 5rem;
  font-weight: 700;
}

@media screen and (max-width: 1024px) {
  .lead_txt {
    font-size: 2rem;
    margin-top: 15px;
  }

  .blue, 
  .red,
  .big,
  .orange,
  .pink {
    font-size: 3rem;
  } 

}

@media screen and (max-width: 768px) {
  .lead_txt {
    font-size: 1.4rem;
  }

  .blue, 
  .red,
  .big,
  .orange,
  .pink {
    font-size: 2rem;
  } 

}

@media screen and (max-width: 320px) {
.support_doctor {
    width: clamp(115px, 21vw, 417vw);
    height: clamp(108px, 16.6vw, 391px);
}

.support_comment p {
    font-size: 1.7rem;
}

    .circle_blue {
        width: 212px;
        bottom: -5px;
        left: 114px;
    }

  .support_lead_nonebr {
    display: none;
  }
}


/*=========================================================
医師からのコメント
==========================================================*/
.comment_container {
  position: relative;
  width: min(1200px, 100%);
  margin: 300px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.comment {
  background-color: #FFA3A3;
  padding: 4vw 0 7vw;
}

.comment_wrap {
  width: clamp(520px, 48vw, 923px);
  aspect-ratio: 923 / 706;
  background-image: url(../images/support/comment.png);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  position: relative;
  z-index: 2;
}

.comment_content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
}

.comment_title {
  color: #FF9292;
  text-align: center;
  font-size: clamp(1.8rem, 2.6vw, 5rem);
  font-weight: 900;
  letter-spacing: 3px;
}

.doctor_name {
  color: #695B47;
  font-size: clamp(1.6rem, 1.3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 1.5px;
  margin-top: 20px;
  text-align: center;
}

.comment_txt {
  color: #695B47;
  font-size: clamp(1.4rem, 1vw, 2rem);
  font-weight: 700;
  letter-spacing: 1.25px;
  text-align: left;
  margin-top: 20px;
}

/* 医師 */
.doctor_photo {
  position: absolute;
  width: clamp(250px, 27vw, 572px);
  top: 50%;
  right: 0;
  transform: translate(45%, -123%);
  z-index: 3;
}

/* 恐竜 */
.comment_dino {
  position: absolute;
  width: clamp(200px, 25vw, 474px);
  left: 0;
  top: 0;
  transform: translate(-25%, -55%);
  z-index: 2;
}



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

@media screen and (max-width: 1024px) {
  .comment_container {
    margin: 200px auto 0;
  }

  /* 医師 */
  .doctor_photo {
    transform: translate(39%, -133%);
  }
}




@media screen and (max-width:768px){
  .doctor_name, .comment_txt {
    margin-top: 5px;
  }

  .doctor_photo {
    transform: translate(0%, -166%);
  }

  .comment_wrap {
    min-height: 434px;
    aspect-ratio: auto;
  }

  .comment_dino {
    position: absolute;
    width: clamp(200px, 25vw, 474px);
    left: 0;
    top: 0;
    transform: translate(8%, -58%);
    z-index: 2;
  }

}

@media screen and (max-width:500px) {
  .comment_dino {
    transform: translate(9%, -67%);
    z-index: 4;
    width: 114px;
  }
}

@media screen and (max-width:400px) {
  .comment_wrap {
    background-size: 111% 100%;
}
}

/* ctaボタン */

.cta_btn_title_sp{
display:none;
}

.cta_btn{
width:min(1089px,90%);
margin:110px auto 0;
padding:clamp(40px,5vw,80px) clamp(20px,4vw,40px);
box-sizing:border-box;
background-image:url(../images/support/cta_back.png);
background-size:100% 100%;
background-position:center;
background-repeat:no-repeat;
}

.cta_btn_title{
margin:0 0 45px;
color:#695B47;
font-size:clamp(1.4rem,2vw,3.5rem);
font-weight:900;
line-height:1.5;
text-align:center;
}

.cta_btn_title span{
position:relative;
display:inline-block;
color:#E46987;
font-size:clamp(2rem,3.1vw,6rem);
font-weight:900;
}

.cta_btn_title span::before{
content:"・・・・";
position:absolute;
top:clamp(-43px,-2.2vw,-18px);
left:50%;
transform:translateX(-50%);
font-size:clamp(2rem,2.6vw,5rem);
letter-spacing:clamp(0px,.2vw,4px);
white-space:nowrap;
}


.cta_wrap{
width:100%;
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:clamp(15px,2vw,30px);
margin:30px auto 0;
box-sizing:border-box;
}


/*==================
  ボタン共通
===================*/

.tel_btn,
.contact_box,
.line_box{
width:100%;
min-width:0;
height:126px;
box-sizing:border-box;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
border-radius:200px;
padding:12px 15px;
white-space:nowrap;
text-decoration:none;
background-size:cover;
background-position:center;
}

.tel_btn{
background-image:url(../images/contact_box.png);
}

.contact_box{
background-image:url(../images/tel_btn.png);
}

.line_box{
background-color:#00CD26;
}


/*====　ラベル　====*/

.tel_label,
.contact_label{
display:block;
width:100%;
margin:0 0 7px;
color:#fff;
font-size:clamp(15px,1.3vw,20px);
font-weight:700;
line-height:1.2;
text-align:center;
}


/*====　メイン部分 ====*/

.tel_main,
.contact_main{
width:100%;
min-width:0;
display:flex;
align-items:center;
justify-content:center;
gap:8px;
}


/*====　アイコン ====*/
.tel_icon{
width:clamp(23px,1.8vw,30px);
height:auto;
flex-shrink:0;
object-fit:contain;
}


/*====　電話番号 ====*/
.tel_number{
color:#fff;
font-size:clamp(24px,2.2vw,36px);
font-weight:700;
line-height:1;
white-space:nowrap;
}


/*====　営業時間 ====*/
.tel_time{
display:block;
margin-top:6px;
color:#fff;
font-size:clamp(11px,.9vw,15px);
font-weight:700;
line-height:1.2;
white-space:nowrap;
}


/*====　無料相談 ====*/
.consultation{
color:#fff;
font-size:clamp(20px,1.8vw,29px);
font-weight:700;
line-height:1.2;
white-space:nowrap;
}


/*====　矢印 ====*/
.contact_arrow{
width:clamp(15px,1.2vw,20px);
height:auto;
flex-shrink:0;
}


@media screen and (max-width:1024px){

.cta_btn{
width:90%;
padding:45px 25px 50px;
}

.cta_wrap{
gap:10px;
margin-top:30px;
}

.tel_btn,
.contact_box,
.line_box{
height:95px;
padding:10px 8px;
}

.tel_label,
.contact_label{
font-size:1.15rem;
margin-bottom:7px;
}

.tel_number{
font-size:1.7rem;
}

.tel_time{
font-size:.8rem;
margin-top:5px;
}

.consultation{
font-size:1.4rem;
}

.tel_icon{
width:19px;
}

.contact_arrow{
width:13px;
}

}


@media screen and (max-width:768px){

.cta_btn{
width:90%;
margin:60px auto 0;
padding:40px 20px 45px;
background-image:url(../images/support/cta_back_sp.png);
}

.cta_btn_title_sp{
display:block;
}

.cta_btn_title{
margin-bottom:30px;
font-size:1.6rem;
line-height:1.5;
}

.cta_btn_title span{
font-size:2.5rem;
}

.cta_btn_title span::before{
top:-12px;
font-size:2.1rem;
}

.cta_wrap{
display:flex;
flex-direction:column;
align-items:center;
justify-content:flex-start;
width:100%;
gap:15px;
margin-top:25px;
}

.tel_btn,
.contact_box,
.line_box{
width:min(320px,100%);
max-width:320px;
height:88px;
min-height:88px;
padding:10px 15px;
}

.tel_label,
.contact_label{
font-size:1.4rem;
line-height:1.2;
margin-bottom:8px;
}

.tel_number{
font-size:2rem;
line-height:1;
}

.tel_time{
font-size:1.3rem;
line-height:1.2;
margin-top:5px;
}

.consultation{
font-size:1.4rem;
line-height:1.2;
}

.tel_icon{
width:22px;
}

.contact_arrow{
width:15px;
}

}


@media screen and (max-width:500px){

.cta_btn{
width:92%;
margin:40px auto 0;
padding:35px 15px 40px;
}

.tel_btn,
.contact_box,
.line_box{
width:min(310px,100%);
max-width:310px;
height:86px;
min-height:86px;
padding:10px 12px;
}

.tel_label,
.contact_label{
font-size:1.4rem;
margin-bottom:7px;
}

.tel_number{
font-size:2rem;
}

.tel_time{
font-size:1.3rem;
}

.consultation{
font-size:2rem;
}

.tel_icon{
width:20px;
}

.contact_arrow{
width:14px;
}

}



/*=========================================================
症例
==========================================================*/
.case {
  padding: 11.8vw 5%;
  text-align: center;
  position: relative;
}

.case_deco_1 {
  position: absolute;
  top: 134px;
    left: -38px;
    width: 19vw;
    z-index: -1;
}

.case_deco_2 {
  position: absolute;
  top: 50%;
  right: 0;
  width: 19vw;
  z-index: -1;
}

.case_deco_3 {
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 19vw;
}

.case_inner {
  background-color: #fff;
  margin: 0 auto;
  padding: 0 8.9vw 7vw;
}


.case_title {
  position: relative;
  display: inline-block;
  padding:
    clamp(16px, 1.6vw, 30px)
    clamp(40px, 11vw, 220px);
  color: #fff;
  font-size: clamp(2rem, 2.6vw, 5rem);
  font-weight: 900;
  letter-spacing: clamp(1px, 0.3vw, 5px);
  background: #E46987;
  border-radius: clamp(20px, 2vw, 40px);
  transform: translateY(clamp(-30px, -3vw, -60px));
  white-space: nowrap;
}

/* 内側の白い点線 */
.case_title::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 3px dashed #fff;
  border-radius: 40px;
}

/* 下向き三角 */
.case_title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -13px;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-top: 20px solid #E46987;
}

@media screen and (max-width:1024px) {
  .case_title {
    padding: 23px 145px;
    border-radius: 30px;
  }

  /* 内側の白い点線 */
  .case_title::before {
    border-radius: 30px;
  }
}


@media screen and (max-width:768px) {
  .case_inner {
    padding: 0 2vw 7vw;
  }

  .case_title{
    width: 280px;
    padding: 18px 20px;
    white-space: normal;
    line-height: 1.5;
    border-radius: 24px;
    margin: 0 auto;
  }

  .case_title::before{
    inset: 6px;
    border-width: 2px;
    border-radius: 18px;
  }

  .case_title::after{
    bottom:-10px;
    border-left:10px solid transparent;
    border-right:10px solid transparent;
    border-top:14px solid #E46987;
  }

  .case {
    padding: 16.8vw 2vw;
  }

  .case_item {
    padding: 12px;
  }
}


/*=====================
症例アコーディオン
======================*/
.case_group{
  width:100%;
  margin:100px auto 110px;
}

.case_group:last-child{
  margin-bottom:0;
}


/*====================
  症例グループタイトル
======================*/

.case_group_title{
  position:relative;
  width:min(1000px,100%);
  margin:0 auto 35px;
  padding:0 0 15px;
  color:#695B47;
  font-size:clamp(1.5rem,2.5vw,2.4rem);
  font-weight:900;
  line-height:1.4;
  text-align:left;
  border-bottom:2px solid #D9C99F;
}

/*=====================
  症例カード
======================*/

.case_card{
  width:min(1000px,100%);
  margin:0 auto 55px;
  padding:40px 60px;
  box-sizing:border-box;
  background-color:#F8F5EE;
  border:1px solid #EDE7DD;
  border-radius:24px;
  box-shadow:0 6px 20px rgba(105,91,71,.08);
  overflow:hidden;
}


/*=====================
  写真エリア
======================*/

.case_imgs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:25px;
  width:100%;
  max-width:820px;
  margin:0 auto;
}


/*====================
  写真
======================*/

.case_imgs img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1.35 / 1;
  object-fit:cover;
  border-radius:10px;
}


/*=====================
  詳しく見るボタン
======================*/

.case_detail_btn{
  width:280px;
  height:62px;
  margin:30px auto 0;
  padding:0 12px 0 25px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  border:0;
  border-radius:100px;
  background-color:#E46987;
  color:#fff;
  font-family:inherit;
  font-size:1.6rem;
  font-weight:700;
  cursor:pointer;
  transition:opacity .3s ease;
}

.case_detail_btn:hover{
  opacity:.8;
}


/*=================
  詳細
==================*/

.case_detail{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .4s ease;
}

.case_detail > .case_info{
  min-height:0;
  overflow:hidden;
}


/*===================
  詳細が開いた状態
====================*/

.case_card.is-open .case_detail{
  grid-template-rows:1fr;
}


/*==================
  詳細情報
===================*/

.case_info{
  display:grid;
  grid-template-columns:150px 1fr;
  width:100%;
  max-width:820px;
  margin:0 auto;
  padding:0;
}

.case_card.is-open .case_info{
  padding:30px 0 40px;
}

.case_info dt,
.case_info dd{
  margin:0;
  padding:14px 15px;
  box-sizing:border-box;
  font-size:1.6rem;
  line-height:1.6;
  text-align:left;
}

.case_info dt{
  color:#695B47;
  font-weight:700;
  background-color:#fff;
  border-bottom:1px solid #E5DED2;
}

.case_info dd{
  color:#555;
  font-weight:500;
  background-color:#fff;
  border-bottom:1px solid #E5DED2;
}


/*====================
  矢印の白丸
=====================*/

.case_arrow{
  position:relative;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border-radius:50%;
  background-color:#fff;
  font-size:0;
}


/*====================
  V字の矢印
=====================*/

.case_arrow::before{
  content:"";
  position:absolute;
  width:12px;
  height:12px;
  border-right:3px solid #E46987;
  border-bottom:3px solid #E46987;
  border-radius:0 0 3px 0;
  transform:rotate(45deg);
  top:8px;
}


/*======================
  開いたとき → 上向き
=======================*/

.case_card.is-open .case_arrow::before{
  transform:rotate(225deg);
  top:13px;
}


@media screen and (max-width:1024px){

  .case_group{
    margin-bottom:90px;
  }

  .case_card{
    padding:30px 40px 35px;
    margin-bottom:45px;
  }

  .case_imgs{
    max-width:760px;
    gap:20px;
  }

  .case_detail_btn{
    width:260px;
    height:58px;
    margin-top:25px;
  }

  .case_info{
    max-width:760px;
    grid-template-columns:130px 1fr;
  }

}


@media screen and (max-width:768px){

  .case_group{
    /* margin-bottom:65px; */
    margin: 0 auto 65px;
  }

  .case_group_title{
    width:100%;
    margin-bottom:25px;
    padding-bottom:10px;

    font-size:1.5rem;
  }

  .case_group_title::before{
    width:70px;
    height:3px;
  }

  .case_card{
    width:100%;
    margin-bottom:35px;
    padding:25px 20px 30px;
    border-radius:18px;
  }

  .case_imgs{
    display:flex;
    flex-direction:column;
    width:88%;
    max-width:500px;
    gap:12px;
    margin:0 auto;
  }


  .case_imgs img{
    display:block;
    width:100%;
    height:auto;
    /* 横長にして縦を短く */
    aspect-ratio:1.6 / 1;
    object-fit:cover;
    border-radius:8px;
  }


/*====　詳しく見るボタン ====*/
  .case_detail_btn{
    width:240px;
    height:55px;

    margin:20px auto 0;

    padding:0 10px 0 20px;

    font-size:1.4rem;

    gap:12px;
  }


/*====　矢印 ====*/
  .case_arrow{
    width:30px;
    height:30px;
  }

  .case_arrow::before{
    width:8px;
    height:8px;
    border-width:2px;
    top:8px;
  }

  .case_card.is-open .case_arrow::before{
    top:12px;
  }


/*====　詳細 ====*/
  .case_info{
    width:100%;
    max-width:100%;
    grid-template-columns:100px 1fr;
  }

  .case_card.is-open .case_info{
    padding:20px 0 0;
  }

  .case_info dt,
  .case_info dd{
    padding:10px 8px;
    font-size:1.3rem;
    line-height:1.5;
  }

}

@media screen and (max-width:500px){
  .case_group{
    margin-bottom:55px;
  }

  .case_group_title{
    font-size:1.35rem;
  }

  .case_card{
    padding:20px 15px 25px;

    margin-bottom:30px;

    border-radius:16px;
  }

  .case_imgs{
    width:85%;
    max-width:400px;
    gap:10px;
  }

  .case_imgs img{
    /* さらに横長 */
    aspect-ratio:1.6 / 1;
  }

  .case_detail_btn{
    width:220px;
    height:52px;
    margin-top:17px;
    font-size:1.4rem;
    gap:10px;
  }

  .case_arrow{
    width:28px;
    height:28px;
  }

  .case_arrow::before{
    width:7px;
    height:7px;
    top:8px;
    border-width:2px;
  }

  .case_card.is-open .case_arrow::before{
    top:11px;
  }

  .case_info{
    grid-template-columns:90px 1fr;
  }

  .case_card.is-open .case_info{
    padding:18px 0 0;
  }

  .case_info dt,
  .case_info dd{
    padding:9px 7px;
    font-size:1.3rem;
    line-height:1.5;
  }

}



/*=========================================================
治療の流れ
==========================================================*/
.flow {
  padding: 0.8vw 5%;
}

.flow_title_img {
  width: 34vw;
  margin: 0 auto;
}

.flow_inner {
  background-color: #fff;
  padding: 113px 5.2vw;
}

.flow_list {
  max-width: 1200px;
  margin: 138px auto 0;
  gap: 148px;
  display: flex;
  flex-direction: column;
  position: relative;
}


/*====　縦線 ====*/

.flow_list::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 100%;
  background: #BFBFBF;
  z-index: 0;
}

/*====　各アイテム ====*/

.flow_item {
  position: relative;
  z-index: 1;
  border-radius: 30px;
  padding: 2.7vw;
}


/* ====================
   STEP 01
======================*/

.flow_item--green {
  background-color: #D8F1E4;
}

.flow_item--green::before {
  position: absolute;
  content: "1";
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #ADD6C1;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  text-align: center;
  font-size: 3rem;
  border: 3px solid #fff;
}


/* ==================
   STEP 02
==================== */

.flow_item--pink {
  background-color: #FCEEF0;
}

.flow_item--pink::before {
  position: absolute;
  content: "2";
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #FFB7C1;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  text-align: center;
  font-size: 3rem;
  border: 3px solid #fff;
}


/* ====================
   STEP 03
====================== */

.flow_item--yellow {
  background-color: #FFF8B1;
}

.flow_item--yellow::before {
  position: absolute;
  content: "3";
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #EAD503;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  text-align: center;
  font-size: 3rem;
  border: 3px solid #fff;
}


/* =================
   STEP 04
==================== */

.flow_item--blue {
  background-color: #ECF5F3;
}

.flow_item--blue::before {
  position: absolute;
  content: "4";
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #98FEE7;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  text-align: center;
  font-size: 3rem;
  border: 3px solid #fff;
}


/* ==================
   ①〜③
   文章＋画像
==================== */

.flow_content {
  display: flex;
  align-items: center;
  gap: 60px;
}


/* 左：文章 */

.flow_text {
  flex: 1;
  color: #695B47;
}

.flow_num {
  display: block;
  color: #695B47;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 8px;
}

.flow_title {
  color: #695B47;
  font-size: clamp(2rem, 2vw, 3rem);
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 25px;
}

.flow_text p {
  color: #695B47;
  font-size: clamp(1.4rem, 1.3vw, 1.8rem);
  font-weight: 500;
  line-height: 1.8;
  margin: 0 0 18px;
}

.flow_text p:last-child {
  margin-bottom: 0;
}


/*====　画像 ====*/
.flow_image {
  flex: 1;
}

.flow_image img {
  width: 100%;
  display: block;
  border-radius: 20px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}


/* =================
   ④
   文章＋料金
==================== */

.flow_content--last {
  display: flex;
  align-items: flex-start;
  gap: 60px;
}

.flow_content--last .flow_text {
  flex: 1;
}

.flow_content--last .fee_box {
  flex: 1;
}


/* =================
   料金ボックス
==================== */

.fee_box {
  background-color: #fff;
  border-radius: 30px;
  padding: 35px 32px;
  gap: 30px;
  display: flex;
  flex-direction: column;
  position: relative;
}

.fee_box dl {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  position: relative;
  margin: 0;
}


/* 料金項目の間の線 */

.fee_box dl + dl::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  width: 100%;
  height: 1px;
  background: #726159;
  transform: translateY(-50%);
}


/* 料金タイトル */

.fee_box dt {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  font-size: clamp(1.4rem, 1.04vw, 2rem);
  font-weight: 700;
  line-height: normal;
  border-radius: 20px;
  padding: 10px 35px;
  width: 160px;
}

.box_blue dt {
  background: #7DC4DA;
}

.box_pink dt {
  background: #E46987;
}

.box_green dt {
  background: #94CB20;
}


/* 料金 */

.fee_box dd {
  font-size: clamp(1.7rem, 1.8vw, 3.5rem);
  font-weight: 700;
  white-space: nowrap;
  margin: 0;
}

.box_blue dd {
  color: #65BFDC;
}

.box_pink dd {
  color: #E46987;
}

.box_green dd {
  color: #94CB20;
}


/* =================
   注意書き
=================== */

.fee_note {
  color: #695B47;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  margin: 0;
}


/* ================
   来院間隔
================== */

.fee_subtitle {
  color: #FFA800;
  text-align: center;
  font-size: clamp(1.8rem, 1.56vw, 3rem);
  font-weight: 700;
  border-bottom: 2px dashed #F5A623;
  padding-bottom: 6px;
  margin: 0;
}

.fee_text {
  color: #695B47;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.8;
  margin: 0;
}

@media screen and (max-width: 1024px) {

  .flow {
    padding: 2.8vw 5%;
  }

  .flow_list {
    gap: 70px;
  }


  /* STEP番号 */
  .flow_item--green::before,
  .flow_item--pink::before,
  .flow_item--yellow::before,
  .flow_item--blue::before {
    width: 50px;
    height: 50px;
    font-size: 2rem;
  }

  /* 文章＋画像 */
  .flow_content,
  .flow_content--last {
    gap: 35px;
  }


  /* 料金 */
  .fee_box dl {
    grid-template-columns: 152px 1fr;
  }

  .fee_box dt {
    width: 133px;
  }

}


@media screen and (max-width: 768px) {

  .flow {
    padding: 2.8vw 2vw;
  }

  .flow_title_img {
    width: 240px;
  }

  .flow_inner {
    padding: 35px 2vw;
  }

  .flow_list {
    margin: 60px auto 0;
    gap: 50px;
  }


  /* 各アイテム */

  .flow_item {
    border-radius: 20px;
    padding: 7vw 3.7vw 5vw;
  }


  /* STEP番号 */

  .flow_item--green::before,
  .flow_item--pink::before,
  .flow_item--yellow::before,
  .flow_item--blue::before {
    width: 35px;
    height: 35px;
    font-size: 1.8rem;
  }


  /* =====================
     ①〜③
     SPでは「画像 → 文章」
  ======================== */

  .flow_content {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 25px;
  }


  /* 画像を上にする */

  .flow_content .flow_image {
    order: 1;
    width: 100%;
  }

  .flow_content .flow_text {
    order: 2;
    width: 100%;
  }


  /* =====================
     ④
     SPでは「文章 → 料金」
  ======================= */

  .flow_content--last {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 25px;
  }

  .flow_content--last .flow_text {
    order: 1;
    width: 100%;
  }

  .flow_content--last .fee_box {
    order: 2;
    width: 100%;
  }


/*====　文章 ====*/

  .flow_num {
    font-size: 1.3rem;
  }

  .flow_title {
    font-size: 2rem;
    margin-bottom: 18px;
  }

  .flow_text p {
    font-size: 1.4rem;
    line-height: 1.8;
    margin-bottom: 14px;
  }

/*====　画像 ====*/

  .flow_image {
    width: 100%;
  }

  .flow_image img {
    width: 100%;
    border-radius: 15px;
  }


/*====　料金 ====*/
  .fee_box {
    width: 100%;
    border-radius: 20px;
    padding: 20px 10px;
    gap: 20px;
  }

  .fee_box dl {
    grid-template-columns: 128px 1fr;
  }

  .fee_box dt {
    width: 115px;
    border-radius: 13px;
    padding: 10px 16px;
  }

  .fee_box dd {
    font-size: 1.7rem;
  }

  .fee_note {
    font-size: 1.3rem;
  }

  .fee_subtitle {
    font-size: 1.8rem;
  }

  .fee_text {
    font-size: 1.4rem;
  }

}

@media screen and (max-width: 320px) {

  .fee_box dd {
    font-size: 1.5rem;
  }

  .fee_box dt {
    width: 89px;
    border-radius: 13px;
    padding: 10px 8px;
  }

  .fee_box dl {
    grid-template-columns: 96px 1fr;
  }

  .fee_note {
    font-size: 1.2rem;
  }

}


/*=========================================================
注意事項
==========================================================*/
.flow_note {
  margin: 94px auto;
  background-image: url(../images/note.jpg);
  padding: 6.3vw 11vw;
  position: relative;
}

.flow_note_list {
  color: #695B47;
  font-size: clamp(1.3rem, 0.93vw, 1.8rem);
  font-weight: 500;
  margin-top: 15px;
}

.flow_note_title {
  color: #695B47;
  font-size: clamp(1.6rem, 1.3vw, 2.5rem);
  font-weight: 500;
  margin-top: 15px;
}

.flow_note_list {
  list-style-type: disc;
}

.flow_note::before {
  position: absolute;
  content: "";
  background-image: url(../images/pin.png);
  width: 2vw;
  height: 2vw;
  top: 30px;
  left: 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.flow_note::after {
  position: absolute;
  content: "";
  background-image: url(../images/pin.png);
  width: 2vw;
  height: 2vw;
  top: 30px;
  right: 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

@media screen and (max-width:768px) {
  .flow_note_title {
    font-size: clamp(1.5rem, 1.3vw, 2.5rem);
    margin-top: 20px;
    margin-left: -8px;
  }

  .flow_note {
    margin: 30px auto;
    padding: 6.3vw 7vw;
    padding: 11.3vw 0vw 0 24px;
  }

  .flow_note::after {
    top: 15px;
    right: 16px;
    width: 25px;
    height: 25px;
  }

  .flow_note::before {
    top: 15px;
    left: 16px;
    width: 25px;
    height: 25px;
  }
}

/*=========================================================
FAQ
==========================================================*/
.faq_title {
  position: relative;
  display: inline-block;
  padding:
  clamp(16px, 1.6vw, 30px)
  clamp(40px, 11vw, 220px);
  color: #fff;
  font-size: clamp(2rem, 2.6vw, 5rem);
  font-weight: 900;
  background: #94CB20;
  border-radius: clamp(20px, 2vw, 40px);
  margin-top: 140px;
  white-space: nowrap;
}

.faq {
  background-color: #4DB6BA;
  margin-top: 94px;
  text-align: center;
  position: relative;
  padding-bottom: 300px;
}

.faq_dino {
  position: absolute;
  width: 775px;
  bottom: -51px;
  right: -26px;
}


.faq_title::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 3px dashed #fff;
  border-radius: 40px;
}

.accordion {
  max-width: 840px;
  margin: 100px auto;
}

.faq_item {
  border-bottom: none;
  margin-bottom: 20px;
  border-radius: 20px;
  background: #FFF;
  width: 840px;
}

.faq_question {
  display: flex;
  justify-content: space-between;
  align-items: left;
  cursor: pointer;
  padding: 10px 30px;
  font-weight: bold;
  gap: 10px;
  align-items: center;
}

.faq_text {
  margin: 0;
  font-size: 1.8rem;
  font-size: 18px;
  color: #695B47;
  text-align: left;
  font-weight: 500;
}

.faq_answer {
  display: none;
  margin: 0;
  font-size: 1.8rem;
  font-size: 18px;
  color: #695B47;
  text-align: left;
  font-weight: 500;
  padding: 10px 30px;
}

.faq_icon {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  background: #94CB20;
  border-radius: 50%;
  position: relative;
  transition: transform 0.3s;
}

.faq_icon::before,
.faq_icon::after {
  content: "";
  position: absolute;
  background: #fff;
  transition: 0.3s;
}

.faq_icon::before {
  width: 16px;
  height: 2px;
}

.faq_icon::after {
  width: 2px;
  height: 16px;
}

.faq_item.active .faq_icon::after {
  transform: scaleY(0);
}

.faq_item.active .faq_icon {
  transform: rotate(180deg);
}

.faq_title {
  position: relative;
  display: inline-block;
  padding:
  clamp(16px, 1.6vw, 30px)
  clamp(40px, 11vw, 220px);
  color: #fff;
  font-size: clamp(2rem, 2.6vw, 5rem);
  font-weight: 900;
  background: #94CB20;
  border-radius: clamp(20px, 2vw, 40px);
  margin-top: 140px;
  white-space: nowrap;
}

.faq {
  background-color: #4DB6BA;
  text-align: center;
  position: relative;
  padding-bottom: clamp(120px, 18vw, 300px);
  overflow: hidden;
}

.faq_inner{
  width: min(100%, 1000px);
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* アコーディオン */
.accordion{
  width: min(100%,840px);
  margin: clamp(50px,8vw,100px) auto;
}

/* 各質問 */
.faq_item{
  width:100%;
  background:#FFF;
  border-radius:20px;
  margin-bottom:20px;
}

/* 質問 */
.faq_question{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:
    clamp(16px,2vw,24px)
    clamp(18px,3vw,30px);
  cursor:pointer;
}

.faq_text{
  margin:0;
  color:#695B47;
  text-align:left;
  font-size: clamp(1.4rem,0.9vw,1.8rem);
  line-height:1.8;
  flex:1;
}

/* 回答 */
.faq_answer{
  display: none;
  margin: 0 30px;
  padding: 20px 0 30px;
  color: #695B47;
  text-align: left;
  font-size: clamp(1.4rem,1.2vw,1.6rem);
  font-size: clamp(1.4rem,0.9vw,1.8rem);
  line-height: 1.8;
  border-top: 1px dashed #ccc;
}


/* アイコン */
.faq_icon{
  flex-shrink:0;
  width: clamp(28px,4vw,36px);
  height: clamp(28px,4vw,36px);
  background:#94CB20;
  border-radius:50%;
  position:relative;
}

/* Q */
.faq_text{
  position: relative;
  padding-left: 55px;
}

.faq_text::before{
  content:"Q";
  position:absolute;
  left:0;
  top:-2px;
  font-size:3rem;
  font-weight:900;
  line-height:1;
  color:#E46987;
  text-shadow:
    2px 2px 0 #fff,
   -2px -2px 0 #fff,
    2px -2px 0 #fff,
   -2px 2px 0 #fff;
}


/* A */
.faq_answer p{
  position:relative;
  margin:0;
  padding-left:55px;
}

.faq_answer p::before{
  content:"A";
  position:absolute;
  left:0;
  top:-2px;
  font-size:3rem;
  font-weight:900;
  line-height:1;
  color:#94CB20;
  text-shadow:
    2px 2px 0 #fff,
   -2px -2px 0 #fff,
    2px -2px 0 #fff,
   -2px 2px 0 #fff;
}

/* 恐竜 */
.faq_dino{
  position:absolute;
  width: 40vw;
  bottom: -20px;
}

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

@media screen and (max-width:1024px) {
  .faq_title {
    padding: 23px 145px;
    border-radius: 30px;
  }

  .faq {
    padding-bottom: 200px;
  }

}

@media screen and (max-width:768px) {
  .faq_title {
    width: 280px;
    padding: 18px 20px;
    white-space: normal;
    line-height: 1.5;
    border-radius: 24px;
    margin: 0 auto;
  }

    .faq{
    margin-top:0px;
    padding-bottom: 150px;
  }

  .faq_title{
    width:min(280px,100%);
    padding:18px 20px;
    white-space:normal;
    line-height:1.5;
    border-radius:24px;
    margin-top:80px;
  }

  .faq_title::before{
    inset:6px;
  }

  .faq_question{
    align-items:flex-start;
  }

  .faq_icon{
    margin-top:5px;
  }

.faq_dino {
    position: absolute;
    width: 284px;
    bottom: 42px;
}
}

@media screen and (max-width:375px){
.faq_text {
padding-left: 35px;
}

.faq_question {
    padding: clamp(9px, 2vw, 24px) clamp(8px, 3vw, 30px);
}

}


/*=========================================================
最後のメッセージ
==========================================================*/
.message_bottom_inner {
  display: flex;
  align-items: end;
  max-width: 1200px;
  padding: 50px 0;
  justify-content: center;
  margin: 0 auto;
}

.message_bottom_txt {
  color: #695B47;
  font-size: clamp(1.4rem, 1.3vw, 2.5rem);
  font-weight: 700;
  max-width: 1055px;
  width: 54.9vw;
  width: 46.9vw;
  max-height: 695px;
  height: 36vw;
  height: 26vw;
  background-repeat: no-repeat;
  background-position: center;
  position: relative;
  background-image: url(../images/message_bottom_wrap.png);
  background-size: 100% 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: left;
}


.message_bottom_img {
  max-width: 376px;
  width: 19.5vw;
  max-height: 359px;
  height: 18.6vw;
}

@media screen and (max-width:768px) {
  .message_bottom_inner {
    width: 110%;
  }

  .message_bottom_txt {
    width: 371px;
    height: 300px;
    font-size: 14px;
    padding: 45px;

  }

  .message_bottom_img {
    max-width: 376px;
    width: 19.5vw;
    max-height: 359px;
    height: 18.6vw;
    transform: translate(-100px, 49px);
  }

}

@media screen and (max-width:375px) {
  .message_bottom_inner {
    width: 129%;
  }

  .message_bottom_img {
    width: 29.5vw;
    transform: translate(-115px, 25px);
  }
}

/*=========================================================
footer
==========================================================*/
.footer {
  background-color: #fff;
}

.footer_inner {
  padding: 44px 0 128px;
}

/* .footer_logo {
  margin: 0 auto;
  width: 370px;
  height: 138px;
  width: 20vw;
} */

.footer_logo {
    width: 300px;
    max-width: 100%;
    margin: 0 auto;
}

.footer_logo img {
    display: block;
    width: 100%;
    height: auto;
}

.address {
  color: #695B47;
  font-size: clamp(1.4rem, 1.04vw, 2rem);
  font-weight: 700;
  text-align: center;
  margin-top: 30px;
}

.footer_wrap {
  display: flex;
  align-items: unset;
  justify-content: center;
  margin-top: 40px;
  gap: 80px;
}

.footer_map {
  width: 427px;
  height: 255px;
}

/* ======== 診療日テーブル ========*/
.schedule {
  border-collapse: collapse;
  width: 100%;
  max-width: 427px;
  color: #7A6A56;
  font-family: "Zen Maru Gothic";
  margin-top: 40px;
}

.schedule th,
.schedule td {
  border: 1px solid #7DC4DA;
  text-align: center;
  vertical-align: middle;
}

/* 曜日 */
.schedule thead th {
  width: 40px;
  height: 50px;
  font-size: 1.6rem;
  font-weight: 700;
}

/* 時間 */
.schedule tbody th {
  width: 160px;
  padding: 10px;
  font-size: 2rem;
  font-weight: 500;
  white-space: nowrap;
}

/* ● */
.schedule td {
  width: 40px;
  height: 50px;
  position: relative;
}
.dot {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: #7A6A56;
  border-radius: 50%;
}
.triangle {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 12px solid #7A6A56;
}
.slash {
  display: inline-block;
  width: 16px;
  height: 2px;
  background: #7A6A56;
  transform: rotate(-60deg);
}

/* 17時まで */
.schedule small {
  display: block;
  margin-top: 4px;
  font-size: 1.3rem;
  line-height: 1.3;
  color: #7A6A56;
}

.schedule_note {
  margin-top: 5px;
  font-size: 1.3rem;
}
.triangle_2 {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 10px solid #7A6A56;
}
/* ========  ========*/

/* CTAボタン */
/* .footer_btns {
  display: flex;
  flex-direction: column;
  gap: 40px;
} */

/*=========================================================
  FOOTER CTA BUTTON
=========================================================*/
.footer_btns{
display:flex;
flex-direction:column;
align-items:center;
gap:18px;
width:100%;
}
.footer_tel_btn,
.footer_contact_box,
.footer_line_box{
width:min(750px,100%);
height:115px;
box-sizing:border-box;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
border-radius:200px;
padding:12px 40px;
white-space:nowrap;
text-decoration:none;
background-size:cover;
background-position:center;
flex-shrink:0;
}
.footer_tel_btn{
background-image:url(../images/contact_box.png);
}
.footer_contact_box{
background-image:url(../images/tel_btn.png);
}
.footer_line_box{
background-color:#00CD26;
}
.footer_tel_label,
.footer_contact_label{
color:#fff;
font-size:1.5rem;
font-weight:700;
line-height:1.2;
text-align:center;
margin:0 0 10px;
}
.footer_tel_main,
.footer_contact_main{
display:flex;
align-items:center;
justify-content:center;
gap:10px;
}
.footer_tel_icon{
width:27px;
height:auto;
flex-shrink:0;
}
.footer_tel_number{
color:#fff;
font-size:2.5rem;
font-weight:700;
line-height:1;
white-space:nowrap;
}
.footer_tel_time{
color:#fff;
font-size:1rem;
font-weight:700;
line-height:1.2;
white-space:nowrap;
margin-top:6px;
}
.footer_consultation{
color:#fff;
font-size:2rem;
font-weight:700;
line-height:1.2;
white-space:nowrap;
}
.footer_contact_arrow{
width:20px;
height:auto;
flex-shrink:0;
}
@media screen and (max-width:1200px){
.footer_tel_btn,
.footer_contact_box,
.footer_line_box{
width:min(650px,100%);
height:105px;
}
.footer_tel_label,
.footer_contact_label{
font-size:1.35rem;
}
.footer_tel_number{
font-size:2.2rem;
}
.footer_consultation{
font-size:1.8rem;
}
}
@media screen and (max-width:768px){
.footer_btns{
gap:12px;
}
.footer_tel_btn,
.footer_contact_box,
.footer_line_box{
width:min(320px,100%);
height:82px;
padding:10px 15px;
}
.footer_tel_label,
.footer_contact_label{
font-size:1.4rem;
margin-bottom:6px;
}
.footer_tel_number{
font-size:2rem;
}
.footer_tel_time{
font-size:1.3rem;
}
.footer_consultation{
font-size:2rem;
}
.footer_tel_icon{
width:19px;
}
.footer_contact_arrow{
width:12px;
}
}

/*  */

.sns {
  display: flex;
  margin-top: 40px;
  align-items: center;
  gap: 10px;
}

.footer_sns_title {
  color: #695B47;
  font-size: 2rem;
  font-weight: 700;
}

@media screen and (max-width:1024px) {
  .footer_wrap {
    gap: 40px;
  }
}

@media screen and (max-width:768px) {
  /* .footer_logo {
    margin: 0 auto;
    width: 90%;
    height: auto;
  } */

      .footer_logo {
        width: 220px;
        max-width: 70%;
    }

  .footer_wrap {
    margin-top: 40px;
    gap: 34px;
    flex-direction: column;
    align-items: center;
  }

  .footer_inner {
    padding: 44px 20px 27px;
  }

  .footer_btns {
    /* gap: 10px;
    width: 340px;
    align-items: center; */
    display: none;
  }

  .info {
    width: 340px;
  }

  .footer_map {
    width: 100%;
     height: 200px;
  }
}

.small {
  color: #FFF;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  background: #65BFDC;
  display: flex;
  width: 100%;
  padding: 8px 0;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width:320px) {
  .footer_logo {
        width: 317px;
    }

      .info {
        width: auto;
    }

  .sns {
    margin-top: 40px;
    margin-left: 33px;
}
}


/* オフィシャルサイトバナー */
.official_banner {
    width: 100%;
    max-width: 500px;
    margin: 40px auto 0;
}

.official_banner a {
    display: block;
    transition: opacity 0.3s ease;
}

.official_banner a:hover {
    opacity: 0.75;
}

.official_banner img {
    display: block;
    width: 100%;
    height: auto;
}

/* スマホでは非表示 */
@media screen and (max-width: 767px) {
    .official_banner {
        display: none;
    }
}


/*=========================================================
追従
==========================================================*/
/* TOPボタン */
.page_top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999;
    width: clamp(70px, 8vw, 120px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(80px);
    transition: opacity .5s ease, transform .5s ease, visibility .5s;
}
.page_top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.page_top img {
    display: block;
    width: 100%;
}
@media screen and (max-width:768px) {
    .page_top {
        right: 12px;
        bottom: 84px;
        width: 57px;
    }
}




/*=========================================================
最下部メニュー
==========================================================*/
/* PC非表示 */
/* .sp_cta{
  display:none;
}

@media screen and (max-width:768px){

  body{
    padding-bottom:76px;
  }

  .sp_cta{
    display:flex;
    position:fixed;
    left:0;
    bottom:0;
    width:100%;
    height:80px;
    background:#fff;
    z-index:9999;
    box-shadow:
    0 -2px 10px rgba(0,0,0,.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(100px);
    transition:
    opacity .5s ease,
    transform .5s ease,
    visibility .5s;
  }


  .sp_cta.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .sp_cta a{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:3px;
    text-decoration:none;
  }

  .sp_cta_line{
    width:28%;
  }

.sp_cta_tel {
  background-image: url(../images/tel_btn.png);
  color: #fff;
}

.sp_cta_mail {
  background-image: url(../images/contact_box.png);
}

  .sp_cta_site{
    background:#fff;
    color:#695B47;
    width:30%;
  }

  .sp_cta img{
    width:24px;
    height:auto;
  }

  .sp_cta span {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
  }

  .sp_cta_site img{
    width:85%;
  }

}

@media screen and (max-width:320px) {
      .sp_cta span {
        font-size: 1.4rem;
    }
} */


/* PC非表示 */
.sp_cta {
    display: none;
}

@media screen and (max-width: 768px) {

    body {
        padding-bottom: 80px;
    }

    /* SP固定メニュー */
    .sp_cta {
        display: flex;
        position: fixed;
        left: 0;
        bottom: 0;

        width: 100%;
        height: 80px;

        background: #fff;
        z-index: 9999;

        box-shadow: 0 -2px 10px rgba(0, 0, 0, .08);

        opacity: 0;
        visibility: hidden;
        transform: translateY(100px);

        transition:
            opacity .5s ease,
            transform .5s ease,
            visibility .5s;
    }

    /* 表示 */
    .sp_cta.show {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* 各ボタン */
    .sp_cta a {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column; /* ← 縦方向 */
        align-items: center;
        justify-content: center;
        text-decoration: none;
        padding: 5px 2px;
        box-sizing: border-box;
        gap: 6px;
    }


    /* =====================
       LINE
    ===================== */

    .sp_cta_line {
        background: #06C755;
        color: #fff;
    }

    .sp_cta_line img {
        width: 23px;
        height: 23px;
        object-fit: contain;

        /* filter: brightness(0) invert(1); */
    }

    /* LINEだけ少し幅を広く */
.sp_cta_line {
    flex: 1.15 !important;
}


    /* =====================
       メール
    ===================== */

    .sp_cta_mail {
        background-image: url(../images/tel_btn.png);
        color: #fff;
    }

    .sp_cta_mail img {
        width: 23px;
        height: 23px;
        object-fit: contain;
    }


    /* =====================
       電話
    ===================== */

    .sp_cta_tel {
        background-image: url(../images/contact_box.png);
        color: #fff;
    }

    .sp_cta_tel img {
        width: 23px;
        height: 23px;
        object-fit: contain;
    }


    /* =====================
       公式HP
    ===================== */

    .sp_cta_site {
        background: #fff;
        color: #695b47;
        border: 1px solid #ddd;
    }

    .sp_cta_site img {
        width: 75px;
        height: auto;
        object-fit: contain;
        margin-bottom: 2px;
    }

    

    /* =====================
       文字部分
    ===================== */

    .sp_cta_text {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        line-height: 1.2;
        text-align: center;
    }


    /* 上段の小さい文字 */
    .sp_cta_label {
        display: inline-block;
        padding: 2px 7px;
        margin-bottom: 2px;
        background: rgba(255, 255, 255, .95);
        color: #06ada4;
        border-radius: 20px;
        font-size: 9px;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }


    /* LINE */
    .sp_cta_line .sp_cta_label {
        color: #06C755;
    }


    /* メール */
    .sp_cta_mail .sp_cta_label {
        color: #E46987;
    }


    /* 下段メイン文字 */
    .sp_cta_text > span:last-child {
        font-size: 11px;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }


    /* 電話番号 */
    .sp_cta_tel .sp_cta_label {
        font-size: 9px;
    }

    .sp_cta_tel .sp_cta_text > span:last-child {
        font-size: 10px;
    }


    /* オフィシャルサイトの文字 */
.sp_cta_site .sp_cta_text {
    font-weight: 700;
    color: #695B47;
}


    /* =====================
       320px以下
    ===================== */

    @media screen and (max-width: 320px) {

        .sp_cta {
            height: 76px;
        }

        .sp_cta a {
            padding: 4px 1px;
        }

        .sp_cta_line img,
        .sp_cta_mail img,
        .sp_cta_tel img {
            width: 20px;
            height: 20px;
        }

        .sp_cta_site img {
            width: 62px;
        }

        .sp_cta_label {
            font-size: 8px;
            padding: 2px 5px;
        }

        .sp_cta_text > span:last-child {
            font-size: 10px;
        }

        .sp_cta_tel .sp_cta_text > span:last-child {
            font-size: 9px;
        }
    }
}

/*=========================================================
PC固定 無料相談
==========================================================*/
/* PC固定CTA */
.pc_cta {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%) translateX(100px);
  z-index: 998;
  width: clamp(80px, 7vw, 120px);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity .5s ease,
    transform .5s ease,
    visibility .5s;
}

/* 出現 */
.pc_cta.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}

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

/* SPでは非表示 */
@media screen and (max-width:767px){
  .pc_cta {
    display: none;
  }

}