/*

  全体レイアウト

================================================================
*/
#wrapper {
  position: relative;
  max-width: 2000px;
  min-width: 1300px;
  margin: 0 auto;}
.inner {
  position: relative;
  width: 1200px;
  height: 100%;
  margin: 0 auto;}
#container {
  position: relative;}
.pcn {
  display: none;}
.spn {
  display: inline-block;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#wrapper {
  max-width: 100%;
  min-width: 100%;}
.inner {
  width: 100%;}
.pcn {
  display: inline-block;}
.spn {
  display: none;}}

/*

  ヘッダー構成

================================================================
*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: max(3%, 30px);
  z-index: 10;
  transition: .2s;}
#header a.logo img {
  width: max(8%, 120px);
  height: auto;}
#header .right {
  display: none;}
/* fixed */
#header.fixed {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: max(1300px, 100vw);
  height: 80px;
  background: #fff;
  padding: 0 max(3%, 30px);}
#header.fixed a.logo {
  display: block;
  width: 270px;
  height: 30px;
  background: url(../img/common/bg_hlogo.svg) no-repeat center / cover;}
#header.fixed a.logo img {
  display: none;}
#header.fixed .right {
  display: flex;
  align-items: center;}
#header.fixed .right .tnav {
  display: flex;}
#header.fixed .right .tnav > li + li {
  margin-left: 25px;}
#header.fixed .right .tnav > li > a {
  display: block;
  padding: 15px 0;
  color: #241000;
  transition: .2s;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
#header.fixed .right .tnav > li > a:hover {
  color: #BDB7B2;}
/* 開閉 */
#header.fixed .right .tnav > li.over {
  position: relative;}
#header.fixed .right .tnav > li.over > a {
  display: block;
  padding: 15px 15px 15px 0;
  background: url(../img/common/icon_arrow_bottom_black.svg) no-repeat right center / 8px auto;
  color: #241000;
  transition: .2s;}
#header.fixed .right .tnav > li.over:hover > a {
  background-image: url(../img/common/icon_arrow_bottom_gray.svg);
  color: #BDB7B2;}
#header.fixed .right .tnav > li.over .box {
  visibility: hidden;
  opacity: 0;
  position: fixed;
  top: 0;
  left: 0;
  width: max(1300px, 100%);
  padding-top: 70px;
  transition: .2s;
  z-index: -1;}
#header.fixed .right .tnav > li.over:hover .box {
  visibility: visible;
  opacity: 1.0;}
#header.fixed .right .tnav > li.over .box .box-inner {
  display: flex;
  width: max(1200px, 75vw);
  margin: 0 auto;
  height: 100%;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, .1);}
#header.fixed .right .tnav > li.over .box .box-inner > div {
  width: calc(100%/3);
  padding: min(4%, 40px);}
#header.fixed .right .tnav > li.over .box .box-inner > div + div {
  border-left: 1px solid #E9E6E1;}
#header.fixed .right .tnav > li.over .box .box-inner > div .title {
  position: relative;
  margin-bottom: 25px;
  padding-left: 18px;
  font-weight: 500;
  color: #C7BFB4;}
#header.fixed .right .tnav > li.over .box .box-inner > div .title:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-radius: 100%;
  background: #C7BFB4;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li {
  width: 48%;
  margin-top: 12px;
  line-height: 1.6;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li:nth-child(-n+2) {
  margin-top: 0;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li a {
  position: relative;
  display: inline-block;
  padding-left: 14px;
  color: #241000;
  transition: .2s;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li a:hover {
  color: #C7BFB4;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li a:before {
  content: '';
  position: absolute;
  top: 10px;
  left: 0;
  width: 5px;
  height: 1px;
  background: #241000;
  transition: .2s;}
#header.fixed .right .tnav > li.over .box .box-inner > div ul li a:hover:before {
  background: #C7BFB4;}
#header.fixed .right .tnav > li.over .box .box-inner > div:nth-child(2) ul li:nth-child(odd) {
  width: 54%;}
#header.fixed .right .tnav > li.over .box .box-inner > div:nth-child(2) ul li:nth-child(even) {
  width: 44%;}
/* サブナビ */
#header.fixed .right .subnav {
  display: flex;
  align-items: center;
  margin-left: 30px;
  padding-left: 30px;
  border-left: 1px solid #C7BFB4;}
#header.fixed .right .subnav li + li {
  margin-left: 20px;}
#header.fixed .right .subnav li.price img {
  width: auto;
  height: 18px;}
#header.fixed .right .subnav li.access img {
  width: auto;
  height: 20px;}
#header.fixed .right .subnav li.reserve {
  position: relative;
  margin-left: 30px;}
#header.fixed .right .subnav li.reserve::before {
  content: "";
  background: url(../img/common/icon_reserve.svg) no-repeat center / contain;
  position: absolute;
  top: 50%;
  left: 35px;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;}
#header.fixed .right .subnav li.reserve a {
  overflow: hidden;
  display: block;
  width: 140px;
  height: 38px;
  padding: 1px;
  border-radius: 100px;
  border: 1px solid #365A47;
  color: #365A47;
  transition: .2s;}
#header.fixed .right .subnav li.reserve a span {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding-left: 25px;
  background-color: #365A47;
  border-radius: 100px;
  color: #fff;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
#header.fixed .right .subnav li.reserve a:hover {
  background: #365A47;}
/* 施術ページH1カスタム */
#header.fixed:has(.h1-box) {
  height: 110px;}
#header.fixed:has(.h1-box) a.logo {
  background: url(../img/common/bg_hlogo.svg) no-repeat center / contain;}
#header.fixed:has(.h1-box) .right {
position: relative;
margin-top: 45px;}
#header.fixed .h1-box {
  position: absolute;
  top: 8px;
  right: max(3%, 30px);
  width: calc(100% - max(6%, 60px) - 300px);
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);
  font-weight: initial;
  border-bottom: 1px solid #C7BFB4;
  padding: 10px 0;
  display: flex;
  justify-content: space-between;
  height: 40px;
  align-items: center;}
#header.fixed .h1-box h1.seo {
  font-size: 12px;
  font-weight: initial;}
#header.fixed .h1-box ul {
  border-left: 1px solid #C7BFB4;
  border-right: 1px solid #C7BFB4;
  display: flex;}
#header.fixed .h1-box ul li + li {
  border-left: 1px solid #C7BFB4;}
#header.fixed .h1-box ul li a {
  color: #241000;
  padding: 0 40px;
  transition: .2s;}
#header.fixed .h1-box ul li a:hover {
  color: #BDB7B2;}
#header.fixed:has(.h1-box) .right .subnav {
  padding-left: 0;
  margin-left: 0;
  border-left: initial;}
#header.fixed:has(.h1-box) .right .tnav > li.over .box {
  padding-top: 110px;}
#header.fixed:has(.h1-box) .h1-n {
  display: none;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#header {
  padding: 5vw 0 5vw 6vw;
  transition: .2s;}
#header a.logo {
  width: 20vw;
  display: block;}
#header .right {
  display: none;}
/* fixed */
#header.fixed {
  width: 100%;
  height: 15vw;
  padding: 0 0 0 6vw;}
#header.fixed a.logo {
  width: 50vw;
  height: 10vw;
  background: url(../img/common/bg_hlogo.svg) no-repeat center / cover;
  background-size: 100% auto;}
#header.fixed .right {
  overflow: auto;
  display: none;
  position: absolute;
  top: 15vw;
  left: 0;
  width: 100%;
  padding: 5vw 7vw 10vw;
  background: #fff;
  box-shadow: 0 5vw 3.5vw rgba(0, 0, 0, .05);}
#header.fixed .right .tnav {
  flex-wrap: wrap;}
#header.fixed .right .tnav > li {
  width: 32%;
  border-bottom: 1px solid #C7BFB4;}
#header.fixed .right .tnav > li + li {
  margin-left: 2%;}
#header.fixed .right .tnav > li:nth-child(3n+1) {
  margin-left: 0;}
#header.fixed .right .tnav > li > a {
  padding: 4vw 0;
  text-align: center;
  font-size: 3.5vw;
  transition: 0;}
#header.fixed .right .tnav > li > a:hover {
  color: #241000;}
/* 開閉 */
#header.fixed .right .tnav > li.over {
  position: relative;}
#header.fixed .right .tnav > li.over > a {
  padding: 4vw 0;
  background: none;
  font-size: 3.5vw;
  transition: 0;}
#header.fixed .right .tnav > li.over:hover > a {
  background: none;
  color: #241000;}
#header .right > * {
  display: none;}
#header.fixed .right .tnav > li.over .box {
  display: none;}
/* サブナビ */
#header.fixed .right .subnav {
  justify-content: center;
  margin-left: 0;
  margin-top: 7vw;
  padding-left: 0;
  border-left: none;}
#header.fixed .right .subnav li + li {
  margin-left: 3vw;}
#header.fixed .right .subnav li.price img {
  height: 4vw;}
#header.fixed .right .subnav li.access img {
  height: 4.2vw;}
#header.fixed .right .subnav li.reserve {
  margin-left: 5vw;}
#header.fixed .right .subnav li.reserve a {
  width: 50vw;
  height: 10vw;
  transition: 0;
  font-size: 3.5vw;}
#header.fixed .right .subnav li.reserve a:hover {
  background: transparent;
  color: #365A47;}
#header.fixed .right .subnav .sns img {
  width: 10vw;
  height: auto;}
/* 施術ページH1カスタム */
#header.fixed:has(.h1-box) {
  height: 15vw;}
#header.fixed .h1-box{
 display: none;}
#header.fixed:has(.h1-box) .right {
  position: inherit;
  top: 15vw;
  margin-top: 0;}
}

/*

  バーガーメニューの動き

================================================================
*/
#header .burger,
#header.fixed .burger {
  display: none;}
#header .burger {
  display: none;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#header.fixed .burger {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 17vw;
  height: 10vw;
  border-radius: 100px 0 0 100px;
  background: #365A47;
  cursor: pointer;
  color: #fff;}
.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .2s;}
.menu-trigger {
  position: relative;
  width: 6vw;
  height: 2vw;}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;}
.menu-trigger span:nth-of-type(1) {
  top: 0;}
.menu-trigger span:nth-of-type(2) {
  bottom: 0;}
.menu-trigger.active span:nth-of-type(1) {
  top: 50%;}
.menu-trigger.active span:nth-of-type(2) {
  bottom: 50%;}
}


/*

  モーダル

================================================================
*/
.modal-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  background: rgba(0,0,0,45%);
  padding: 40px 20px;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: .2s;
  box-sizing: border-box;
  z-index: 20;}
.modal-container:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;}
.modal-container.active {
  opacity: 1;
  visibility: visible;}
.modal-body {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  max-width: 920px;
  width: 90%;}
.modal-close {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 20px;
  left: 20px;
  width: 40px;
  height: 40px;
  font-size: 20px;
  color: #fff;
  cursor: pointer;
  color: #241000;}
.modal-content {
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  border-radius: 20px;
  background: #fff;
  text-align: left;}
.modal-content .box {
  display: flex;
  justify-content: center;
  flex-direction: column;
  width: 570px;
  padding: 0 30px 0 50px;}
.modal-content .box .title {
  text-align: center;
  margin-bottom: 20px;
  font-size: clamp(22px, calc(1.375rem + ((1vw - 12px) * 0.25)), 24px);}
.modal-content .box .catch {
  text-align: center;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);
  line-height: 1.8;}
.modal-content .box .catch a {
  color: #365A47;
  text-decoration: underline;}
.modal-content .box .cta-box {
  margin-top: 30px;
  padding: 30px;
  border-radius: 20px;
  background-color: #F5F4F3;}
.modal-content .box .cta-box .tel {
  display: flex;
  align-items: flex-end;
  justify-content: center;}
.modal-content .box .cta-box .tel a {
  pointer-events: none;
  position: relative;
  top: 3px;
  margin-left: 5px;
  font-size: clamp(30px, calc(1.875rem + ((1vw - 12px) * 0.25)), 32px);
  color: #241000;}
.modal-content .box .cta-box .txt {
  margin-top: 15px;
  text-align: center;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
.modal-content .box .cta-box ul {
  display: flex;
  justify-content: space-between;
  margin-top: 30px;}
.modal-content .box .cta-box ul li {
  width: 48%;
  height: 52px;}
.modal-content .box .cta-box ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
  height: 100%;
  padding-left: 10px;
  background-repeat: no-repeat;
  background-position: left 25px center;
  background-size: 20px auto;
  background-color: #365A47;
  font-size: clamp(14px, calc(0.875rem + ((1vw - 12px) * 0.125)), 15px);
  color: #fff;}
.modal-content .box .cta-box ul li.web a {
  background-size: 24px auto;
  background-image: url(../img/common/icon_web.svg);}
.modal-content .box .cta-box ul li.line a {
  background-image: url(../img/common/icon_line.svg);}
.modal-content figure {
  width: 350px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.modal-body {
  max-width: 100%;
  width: 95%;}
.modal-close {
  top: 0;
  left: initial;
  right: 0;
  width: 15vw;
  height: 15vw;
  font-size: 5vw;
  z-index: 1;}
.modal-content {
  position: relative;
  padding-bottom: 32vw;
  flex-direction: column;
  border-radius: 3vw;}
.modal-content .box {
  width: 100%;
  padding: 15vw 5vw 0;}
.modal-content .box .title {
  margin-bottom: 5vw;
  font-size: 5vw;}
.modal-content .box .catch {
  text-align: left;
  padding: 0 3vw;
  font-size: 3.2vw;
  line-height: 1.9;}
.modal-content .box .cta-box {
  margin-top: 5vw;
  padding: 5vw;
  border-radius: 3vw;}
.modal-content .box .cta-box .tel {
  font-size: 3.5vw;}
.modal-content .box .cta-box .tel a {
  pointer-events: auto;
  top: 1vw;
  margin-left: 1vw;
  font-size: 7vw;}
.modal-content .box .cta-box .txt {
  margin-top: 3.5vw;
  font-size: 3vw;}
.modal-content .box .cta-box ul {
  flex-direction: column;
  margin-top: 5vw;}
.modal-content .box .cta-box ul li {
  width: 100%;
  height: 12vw;}
.modal-content .box .cta-box ul li + li {
  margin-top: 2vw;}
.modal-content .box .cta-box ul li a {
  padding-left: 3vw;
  background-position: left 5vw center;
  background-size: 5vw auto;
  font-size: 3.2vw;}
.modal-content .box .cta-box ul li.web a {
  background-size: 5.5vw auto;}
.modal-content figure {
  pointer-events: none;
  position: absolute;
  bottom: 0;
  right: 5vw;
  width: 100%;
  text-align: right;}
.modal-content figure img {
  object-fit: cover;
  object-position: top;
  width: 70%;
  height: 45vw;}
}

/*

  フッター構成

================================================================
*/
#footer {
  position: relative;
  padding: 5% 0;
  background: #C7BFB4;
  color: #fff;
  z-index: 3;}
#footer .flex {
  display: flex;
  justify-content: space-between;}
#footer .flex .left {
  display: flex;
  align-items: flex-start;}
#footer .flex .left a {
  display: inline-block;}
#footer .flex .left a img {
  width: 114px;
  height: auto;}
#footer .flex .left .box {
  margin-left: 60px;}
#footer .flex .left .box table {
  line-height: 1.8;}
#footer .flex .left .box table th {
  vertical-align: top;
  text-align: left;
  font-weight: 400;
  color: #fff;}
#footer .flex .left .box table td {
  padding-left: 30px;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
#footer .flex .left .box table tr + tr th,
#footer .flex .left .box table tr + tr td {
  padding-top: 20px;}
#footer .flex .right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;}
#footer .flex .right a {
  color: #fff;}
#footer .flex .right .fnav-top {
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);
  display: flex;
  flex-wrap: wrap;
  width: 390px;}
#footer .flex .right .fnav-top li {
  width: 130px;
  margin-top: 15px;}
#footer .flex .right .fnav-top li:nth-child(-n+3) {
  margin-top: 0;}
#footer .flex .right .fnav-top li a {
  display: inline-block;
  padding: 5px 0;}
.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-top: 70px;}
.footer-bottom .pclist {
  display: flex;
  margin-bottom: 30px;}
.footer-bottom .pclist li + li {
  margin-left: 20px;}
.footer-bottom .pclist li a {
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);
  font-weight: 400;
  color: #fff;
  text-decoration: underline;}
.footer-bottom > div {
  display: flex;
  align-items: center;}
.footer-bottom > div ul {
  display: flex;}
.footer-bottom > div ul li + li {
  margin-left: 15px;}
.footer-bottom > div ul li img {
  width: 26px;
  height: auto;}
#footer small {
  margin-left: 50px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#footer {
  padding: 10vw 10vw 34vw;}
#footer .flex {
  flex-direction: column;}
#footer .flex .left a {
  margin-top: 5vw;}
#footer .flex .left a img {
  width: 23vw;}
#footer .flex .left .box {
  flex: 1;
  margin-left: 10vw;}
#footer .flex .left .box table,
#footer .flex .left .box table tbody,
#footer .flex .left .box table tr,
#footer .flex .left .box table th,
#footer .flex .left .box table td {
  display: block;}
#footer .flex .left .box table {
  font-size: 3.5vw;
  line-height: 1.8;}
#footer .flex .left .box table th {
  line-height: 1.0;}
#footer .flex .left .box table td {
  margin-top: 2vw;
  padding-left: 0;
  font-size: 3.2vw;}
#footer .flex .left .box table tr + tr th,
#footer .flex .left .box table tr + tr td {
  padding-top: 5vw;}
#footer .flex .left .box table tr + tr td {
  padding-top: 0;}
#footer .flex .right {
  margin-top: 10vw;
  font-size: 3.5vw;}
#footer .flex .right .fnav-top {
  width: 100%;}
#footer .flex .right .fnav-top li {
  width: calc(100%/3);
  margin-top: 1vw;}
#footer .flex .right .fnav-top li a {
  padding: 2vw 0;}
.footer-bottom {
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 10vw;}
.footer-bottom .pclist {
  margin-bottom: 0;}
.footer-bottom .pclist li + li {
  margin-left: 5vw;}
.footer-bottom .pclist li a {
  font-size: 3vw;}
.footer-bottom > div {
  width: 100%;
  margin-top: 10vw;
  justify-content: space-between;}
.footer-bottom > div ul {
  display: flex;}
.footer-bottom > div ul li + li {
  margin-left: 3vw;}
.footer-bottom > div ul li img {
  width: 10vw;}
#footer small {
  display: block;
  width: 100%;
  text-align: right;
  margin-left: 0;}
}

/*

  フッター追加：20240807

================================================================
*/
.footer-menu {
  display: flex;
  justify-content: space-between;
  margin-top: 60px;}
.footer-menu > div {
  width: 32%;}
.footer-menu > div .title {
  position: relative;
  margin-bottom: 27px;
  padding-left: 20px;
  font-size: clamp(15px, calc(0.9375rem + ((1vw - 12px) * 0.125)), 16px);}
.footer-menu > div .title:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 10px;
  margin-top: -5px;
  border-radius: 3px;
  background-color: #fff;}
.footer-menu > div .title:after {
  content: '';
  position: absolute;
  bottom: -12px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;}
.footer-menu > div ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;}
.footer-menu > div ul li {
  width: 49%;
  margin-top: 10px;
  line-height: 1.4;
  font-size: clamp(12px, calc(0.75rem + ((1vw - 12px) * 0.25)), 14px);}
.footer-menu > div ul li:nth-child(-n+2) {
  margin-top: 0;}
.footer-menu > div ul li a {
  color: #fff;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.footer-menu {
  flex-direction: column;
  margin-top: 10vw;}
.footer-menu > div {
  width: 100%;}
.footer-menu > div + div {
  margin-top: 10vw;}
.footer-menu > div .title {
  margin-bottom: 7vw;
  padding-left: 4.5vw;
  font-size: 3.4vw;}
.footer-menu > div .title:before {
  width: 2vw;
  height: 2vw;
  margin-top: -1vw;
  border-radius: .5vw;}
.footer-menu > div .title:after {
  bottom: -3vw;}
.footer-menu > div ul li {
  margin-top: 2.5vw;
  line-height: 1.4;
  font-size: 3.2vw;}
}

/*

  PC-CTA

================================================================
*/
#pc-cta {
  position: fixed;
  bottom: 50px;
  right: 50px;
  z-index: 2;}
#pc-cta .box {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 200px;
  height: 277px;
  background: url(../img/common/bg_pc-cta.png) no-repeat center / cover;}
#pc-cta .box > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 200px;
  height: 200px;
  cursor: pointer;
  border-radius: 100%;}
#pc-cta .box > div .t01 {
  font-weight: 500;
  font-size: 14px;
  color: #C7BFB4;}
#pc-cta .box > div .t02 {
  position: relative;
  margin-top: 10px;
  font-weight: 500;
  font-size: 14px;
  color: #C7BFB4;}
#pc-cta .box > div .t02:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -2px;
  left: -15px;
  width: 1px;
  height: 18px;
  background: #C7BFB4;
  transform: rotate(-30deg);
  transform-origin: 50% 50%;}
#pc-cta .box > div .t02:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -2px;
  right: -13px;
  width: 1px;
  height: 18px;
  background: #C7BFB4;
  transform: rotate(30deg);
  transform-origin: 50% 50%;}
#pc-cta .box > div .t03 {
  margin-top: 15px;
  font-size: 17px;
  font-weight: 500;
  color: #fff;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#pc-cta {
  display: none;}
}

/*

  SP-CTA

================================================================
*/
#sp-cta {
  display: none;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
#sp-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  padding: 4vw 7vw 5vw;
  background-color: rgba(255, 255, 255, .7);
  z-index: 100;}
#sp-cta .t01 {
  position: relative;
  margin-bottom: 3vw;
  text-align: center;
  font-weight: 500;
  color: #365A47;}
#sp-cta .t01 span {
  display: inline-block;
  position: relative;}
#sp-cta .t01 span:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -2px;
  left: -15px;
  width: 1px;
  height: 18px;
  background: #365A47;
  transform: rotate(-30deg);
  transform-origin: 50% 50%;}
#sp-cta .t01 span:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -2px;
  right: -13px;
  width: 1px;
  height: 18px;
  background: #365A47;
  transform: rotate(30deg);
  transform-origin: 50% 50%;}
#sp-cta a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 13vw;
  border-radius: 100px;
  background-repeat: no-repeat;
  background-position: left 20vw center;
  background-size: 6vw auto;
  background-image: url(../img/common/icon_web.png);
  background-color: #365A47;
  color: #fff;
  cursor: pointer;
  font-weight: 500;
  font-size: 3.5vw;}
#sp-cta a:after {
  pointer-events: none;
  content: '';
  position: absolute;
  right: 2vw;
  bottom: 0;
  width: 20vw;
  height: 15.5vw;
  background: url(../img/common/bg_sp-cta.png) no-repeat top left / 100% auto;}
}

/*

  Instagram

================================================================
*/
.instagram{
  padding: 4% 7vw 4% 7vw;
  background-color: #F7F5F5;
}
.instagram + .instagram{
  padding: 0 7vw 5% 7vw;
}
.instagram #sb_instagram #sbi_images{
  padding:0 0 0 0;
  gap:0 10px;
}
.instagram .titleArea{
  position: relative;
  z-index: 0;
  text-align: center;
  margin:0 0 30px 0;
}
.instagram .titleArea .title{
  display:inline-block;
  position: relative;
  z-index: 0;
  color: #C7BFB4;
  margin:0 auto;
}
.instagram .titleArea .title:after {
  content: '';
  display: block;
  margin:10px auto 0 auto;
  width: 20px;
  height: 1px;
  background-color: #C7BFB4;
}
.instagram .titleArea .link{
  font-size:14px;
  position: absolute;
  z-index: 1;
  top:50%;
  right:0;
  transform: translateY(-50%);
  color:#241000;
  margin:0 0 0 0;
  display: flex;
  align-items: center;
  gap:0 10px;
}
.instagram .titleArea .link::before{
  content:"";
  display: block;
  width:20px;
  height:20px;
  background:url(../img/common/icon_instagram.svg) no-repeat center / cover;
}
.instagram .titleArea .link::after{
  content:"";
  display: block;
  width:12px;
  height:6px;
  background:url(../img/common/icon_arrow_right_black.svg) no-repeat right center / cover;
  transition:.2s ease-in-out;
  margin:0 0 0 0;
}
.doctor .instagram{
  padding:0 7vw 5% 7vw;
}
@media (hover: hover) {
  .instagram .titleArea .link:hover::after{
    margin:0 -5px 0 5px;
  }
}
@media (max-width: 767px) {
  .instagram{
    padding: 4% 5vw 4% 5vw;
  }
  .instagram + .instagram{
    padding: 5% 5vw 15vw 5vw;
  }
  .instagram #sb_instagram #sbi_images{
    gap:10px 10px;
  }
  .instagram .titleArea{
    margin:0 0 15px 0;
    text-align: left;
  }
  .instagram .titleArea .title{
    margin:0 auto 0 0;
  }
  .instagram .titleArea .title:after {
    margin:10px auto 0 0;
  }
  .instagram .titleArea .link{
    gap:0 10px;
  }
  .doctor .instagram{
    padding:0 5vw 15vw 5vw;
  }
}
/*

  スマホドロワーメニュー改修：20241118

================================================================
*/
@media (max-width: 767px) {
  #header .right ul.sp-reserve {
    display: flex;
    justify-content: space-between;
    margin-top: 5vw;}
  #header .right ul.sp-reserve li {
    width: 48%;
    height: 3.2em;}
  #header .right ul.sp-reserve li a {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100px;
    height: 100%;
    padding-left: 22px;
    background-repeat: no-repeat;
    background-position: left 25px center;
    background-size: 20px auto;
    background-color: #365A47;
    font-size: 3.5vw;
    color: #fff;}
  #header .right ul.sp-reserve li.web a {
    background-size: 24px auto;
    background-image: url(../img/common/icon_web.svg);}
  #header .right ul.sp-reserve li.line a {
    background-image: url(../img/common/icon_line.svg);}
  #header.fixed .right .subnav {
    justify-content: initial;
    margin-left: 0;
    margin-top: 5vw;
    padding-left: 0;
    border-left: none;}
  #header.fixed .right .subnav{
    gap: 2vw;;
    }	
  #header.fixed .right .subnav li + li {
    margin-left: 0;
    }
}
/*

  モーダル改修2412

================================================================
*/
.modal-content.ver2412 .box .cta-box {
    margin-top: 20px;
    padding: 15px 30px 20px 30px;}
.modal-content.ver2412 .box .cta-box ul {
    position: relative;}
.modal-content.ver2412 .box .cta-box ul li.line {
    position: relative;}
.modal-content.ver2412 .box .inbox {
    background: #FFF;
    padding: 1.2em;
    border-radius: 20px;
    margin-top: 13px;}
.modal-content.ver2412 span.fukidashi {
    position: absolute;
    width: 100%;
    display: block;
    text-align: center;
    top: -24px;
    color: #365A47;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: .07em;}
.modal-content.ver2412 span.pbox:before {
    content: "";
    display: inline-block;
    margin-left: 0.2em;
    margin-right: 0.2em;
    margin-bottom: 0.5em;
    background-repeat: no-repeat;
    background-image: url(https://nagoya-memoto.jp/wp-content/themes/nmc/img/common/icon_pbox.svg);
    background-size: contain;
    width: 20px;
    height: 20px;
    vertical-align: middle;}

/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
    .modal-content.ver2412 .box .cta-box {
        padding: 4vw 5vw 5vw 5vw;}
    .modal-content.ver2412 .box .cta-box ul {
        flex-direction: column-reverse;}
    .modal-content.ver2412 .box .cta-box ul li.line {
        margin-bottom: 2vw;}
    .modal-content.ver2412 span.fukidashi {
        top: -2em;
        font-size: 3.2vw;}
}

