@font-face {
  font-family: "Optima";
  src: url("font/Optima.woff2") format("woff2"), url("font/Optima.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.fw-exl {
  font-weight: 200;
}

.fw-l {
  font-weight: 300;
}

.fw-r {
  font-weight: 400;
}

.fw-m {
  font-weight: 500;
}

.fw-sm {
  font-weight: 600;
}

.fw-b {
  font-weight: 700;
}

.fw-exb {
  font-weight: 800;
}

.fw-bl {
  font-weight: 900;
}

.fs-italic {
  font-style: italic;
}

.fnt-shippori {
  font-family: "Shippori Mincho", serif;
}

.fnt-zen {
  font-family: "Zen Maru Gothic", sans-serif;
}

.fnt-optima {
  font-family: "Optima";
}

.fnt-notosan {
  font-family: "Noto Sans JP", sans-serif;
}

.fnt-serif {
  font-family: "Noto Serif JP", serif;
}

.fnt-hira {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;
}

.fnt-cormorant {
  font-family: "Cormorant Garamond", serif;
  font-weight: 400;
}

@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
}
.img-ob {
  position: relative;
}

.img-ob img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  -o-object-fit: cover;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .img-ob-pc {
    position: relative;
  }
  .img-ob-pc img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    -o-object-fit: cover;
    object-fit: cover;
  }
}
body {
  font-family: "Shippori Mincho", serif;
  color: #3D3631;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 350px) {
  body {
    letter-spacing: 0;
  }
}

#wrapper {
  padding-top: 80px;
}
@media screen and (max-width: 767px) {
  #wrapper {
    padding-top: 0;
  }
}

#header {
  background: #fff;
  position: fixed;
  top: 0 !important;
  left: 0;
  width: 100%;
}
@media screen and (min-width: 768px) {
  #header .header__main-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    height: 80px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1150px) {
  #header .header__main-container {
    padding: 0 15px;
  }
}
#header .header__main-container .header__sub-container {
  gap: 24px;
}
#header .header__main-container .header__sub-container .header__logo {
  width: 200px;
}
#header .header__main-container .header__sub-container .header__logo a {
  display: block;
  line-height: 0;
}
#header .header__main-container .header__sub-container .header__btn span, #header .header__main-container .header__sub-container .header__btn a {
  display: block;
  text-decoration: none;
  font-size: 12px;
  color: #3CB49A;
  border: 1px solid;
  padding: 3px 7px;
  font-weight: 500;
}
@media screen and (min-width: 768px) and (max-width: 1000px) {
  #header .header__main-container .header__sub-container {
    gap: 15px;
  }
  #header .header__main-container .header__sub-container .header__logo {
    width: 150px;
  }
  #header .header__main-container .header__sub-container .header__btn span, #header .header__main-container .header__sub-container .header__btn a {
    font-size: 10px;
  }
}
@media screen and (min-width: 768px) and (max-width: 870px) {
  #header .header__main-container .header__sub-container .header__logo {
    width: 120px;
  }
  #header .header__main-container .header__sub-container .header__btn span, #header .header__main-container .header__sub-container .header__btn a {
    font-size: 8px;
  }
}
#header .header__main-container .header__nav #g_nav {
  display: flex;
  gap: 24px;
  align-items: center;
}
#header .header__main-container .header__nav #g_nav > li .up-menu {
  white-space: normal;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
#header .header__main-container .header__nav #g_nav > li .menu-text {
  color: inherit;
}
@media (hover: hover) {
  #header .header__main-container .header__nav #g_nav > li .menu-text:hover {
    color: #3CB49A;
  }
}
#header .header__main-container .header__nav #g_nav > li .menu-text.active {
  color: #3CB49A;
}
@media screen and (min-width: 768px) and (max-width: 1150px) {
  #header .header__main-container .header__nav #g_nav {
    gap: 15px;
  }
  #header .header__main-container .header__nav #g_nav > li .up-menu {
    letter-spacing: 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 1000px) {
  #header .header__main-container .header__nav #g_nav > li .up-menu {
    font-size: 14px;
  }
}
@media screen and (min-width: 768px) and (max-width: 870px) {
  #header .header__main-container .header__nav #g_nav > li .up-menu {
    font-size: 12px;
  }
}
@media screen and (max-width: 767px) {
  #header .header__main-container {
    height: 64px;
    padding: 0;
    justify-content: flex-start;
    align-items: center;
  }
  #header .header__main-container .header__sub-container {
    gap: 0;
    margin: 0;
    max-width: 100%;
    width: 100%;
    padding: 0 0 0 16px;
    box-sizing: border-box;
  }
  #header .header__main-container .header__sub-container .header__logo {
    width: 160px;
    max-width: calc(100% - 199px);
  }
  #header .header__main-container .header__sub-container .header__btn {
    margin: 0 0 0 8px;
  }
  #header .header__main-container .header__sub-container .header__btn span, #header .header__main-container .header__sub-container .header__btn a {
    font-size: 10px;
  }
  #header .header__main-container .toggle-menu {
    margin: 0 0 0 auto;
    width: 64px;
    height: 64px;
    background: #3CB49A;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #header .header__main-container .toggle-menu .toggle-menu__trigger {
    width: 32px;
    height: 22px;
  }
  #header .header__main-container .toggle-menu .toggle-menu__trigger span {
    background: #fff;
    height: 2px;
  }
  #header .header__main-container .header__nav nav #g_nav {
    display: none;
    background: #fff;
    padding: 40px 0 0;
  }
  #header .header__main-container .header__nav nav #g_nav > li:not(.sp) {
    margin: 0 30px;
    text-align: left;
    width: auto;
  }
  #header .header__main-container .header__nav nav #g_nav > li:not(.sp) + li:not(.sp) {
    margin-top: 24px;
  }
  #header .header__main-container .header__nav nav #g_nav > li:not(.sp) .up-menu {
    text-align: left;
    font-size: 20px;
  }
  #header .header__main-container .header__nav nav #g_nav > li.sp {
    margin-top: 40px;
  }
  #header .header__main-container .header__nav nav #g_nav .btn-tel2 {
    background: #B77A00;
    text-align: center;
    color: #fff;
    padding: 16px 0 100px;
    font-size: 24px;
    line-height: 1.28;
  }
  #header .header__main-container .header__nav nav #g_nav .btn-tel2 small {
    display: block;
    font-size: 12px;
  }
  #header .header__main-container .header__nav nav #g_nav .btn-tel2 a {
    color: inherit;
  }
}

.title-common {
  font-size: 64px;
  line-height: 1.6;
}
.title-common span {
  text-align: center;
  display: inline-block;
}
.title-common span::first-letter {
  color: #3CB49A;
}
.title-common span small {
  display: block;
  font-size: 20px;
}
.title-common.cl-white {
  color: #fff;
}
.title-common.cl-white span::first-letter {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .title-common {
    font-size: 40px;
  }
  .title-common span {
    display: block;
  }
  .title-common span small {
    font-size: 14px;
  }
}

.box-contact {
  background: url("../img/contact_bg.jpg") no-repeat center/cover;
  box-sizing: border-box;
  padding: 52px 0 64px;
}
@media screen and (min-width: 768px) {
  .box-contact {
    width: 1084px;
    margin: 0 auto;
    max-width: calc(100% - 60px);
  }
  .box-contact .inner {
    width: 956px;
    margin: 0 auto;
    max-width: calc(100% - 60px);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 30px;
  }
}
@media screen and (min-width: 768px) and (max-width: 990px) {
  .box-contact .inner {
    justify-content: center;
  }
}
@media screen and (min-width: 768px) {
  .box-contact .group-btn {
    width: 488px;
  }
}
.box-contact .left .title-common {
  margin: 0;
}
.box-contact .left .title-common span {
  text-align: left;
}
.box-contact .left .text {
  margin: 40px 0 0;
  font-size: 15px;
  color: #fff;
}
.box-contact .group-btn {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.box-contact .group-btn .btn-tel {
  width: 100%;
}
.box-contact .group-btn .btn-tel a {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 0;
  gap: 16px;
}
.box-contact .group-btn .btn-tel a::before {
  content: "";
  background: url("../img/icon_tel2.svg") no-repeat center/100% auto;
  width: 52px;
  height: 52px;
}
.box-contact .group-btn .btn-tel a .btn-inner {
  display: flex;
  align-items: center;
  gap: 16px;
}
.box-contact .group-btn .btn-tel a .btn-inner .text {
  font-size: 44px;
  line-height: 70px;
  color: #E9B44C;
  display: flex;
  margin: 0;
}
.box-contact .group-btn .btn-tel a .btn-inner .text span {
  color: #6A5C50;
  font-size: 25px;
}
.box-contact .group-btn .btn-tel a .btn-inner .note {
  font-size: 13px;
  line-height: 17px;
}
.box-contact .group-btn .btn-tel a .btn-inner .note span {
  display: block;
  color: #E9B44C;
}
.box-contact .group-btn .btn-web, .box-contact .group-btn .btn-line {
  width: calc(50% - 4px);
}
.box-contact .group-btn .btn-web a {
  background: #fff;
  text-decoration: none;
  color: #E9B44C;
  padding: 16px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.box-contact .group-btn .btn-web a::before {
  content: "";
  background: url("../img/ico_web.svg") no-repeat center/100% auto;
  width: 52px;
  height: 52px;
}
.box-contact .group-btn .btn-web a:after {
  content: "";
  background: url("../img/btnweb_arrow.svg") no-repeat center/100% auto;
  width: 18px;
  height: 18px;
}
.box-contact .group-btn .btn-web a .btn-inner {
  margin: 0 21px 0 18px;
  font-size: 32px;
  line-height: 35px;
  text-align: center;
}
.box-contact .group-btn .btn-web a .btn-inner small {
  display: block;
  font-size: 28px;
}
@media (hover: hover) {
  .box-contact .group-btn .btn-web a:hover {
    opacity: 0.8;
  }
}
.box-contact .group-btn .btn-line a {
  background: #fff;
  text-decoration: none;
  color: #22BA4F;
  padding: 16px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.box-contact .group-btn .btn-line a::before {
  content: "";
  background: url("../img/ico_line.svg") no-repeat center/100% auto;
  width: 52px;
  height: 52px;
}
.box-contact .group-btn .btn-line a:after {
  content: "";
  background: url("../img/btnline_arrow.svg") no-repeat center/100% auto;
  width: 18px;
  height: 18px;
}
.box-contact .group-btn .btn-line a .btn-inner {
  margin: 0 16px;
  font-size: 32px;
  line-height: 35px;
  text-align: center;
}
.box-contact .group-btn .btn-line a .btn-inner small {
  display: block;
  font-size: 16px;
}
@media (hover: hover) {
  .box-contact .group-btn .btn-line a:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 767px) {
  .box-contact {
    padding: 40px 30px 48px;
    background-image: url("../img/contact_bg_sp.jpg");
  }
  .box-contact .left {
    text-align: center;
    margin: 0 0 24px;
  }
  .box-contact .left .title-common span {
    text-align: center;
  }
  .box-contact .left .text {
    margin: 24px 0 0;
  }
  .box-contact .group-btn .btn-tel a {
    padding: 0;
    gap: 7px;
  }
  .box-contact .group-btn .btn-tel a .btn-inner {
    display: block;
    text-align: center;
    padding: 18px 0 17px;
  }
  .box-contact .group-btn .btn-tel a .btn-inner .note {
    font-size: 12px;
    line-height: 17px;
    margin: 0 0 4px;
    letter-spacing: 0;
  }
  .box-contact .group-btn .btn-tel a .btn-inner .note span {
    display: inline;
  }
  .box-contact .group-btn .btn-tel a .btn-inner .text {
    justify-content: center;
    font-size: 32px;
    line-height: 1.125;
  }
  .box-contact .group-btn .btn-tel a .btn-inner .text span {
    font-size: 25px;
  }
  .box-contact .group-btn .btn-web a {
    padding: 0;
  }
  .box-contact .group-btn .btn-web a::before {
    width: 40px;
    height: 40px;
  }
  .box-contact .group-btn .btn-web a:after {
    background-image: url("../img/btnweb_arrow_sp.svg");
    width: 8px;
    height: 8px;
  }
  .box-contact .group-btn .btn-web a .btn-inner {
    margin: 0 5px;
    padding: 10px 0 15px;
    line-height: 1;
    font-size: 24px;
  }
  .box-contact .group-btn .btn-web a .btn-inner small {
    display: block;
    font-size: 14px;
    margin: 7px 0 0;
    letter-spacing: 0;
  }
  .box-contact .group-btn .btn-line a {
    padding: 0 8px 0 10px;
    justify-content: space-between;
  }
  .box-contact .group-btn .btn-line a::before {
    width: 40px;
    height: 40px;
  }
  .box-contact .group-btn .btn-line a:after {
    background-image: url("../img/btnline_arrow_sp.svg");
    width: 8px;
    height: 8px;
  }
  .box-contact .group-btn .btn-line a .btn-inner {
    margin: 0 12px 0 0;
    padding: 10px 0 14px;
    line-height: 1;
    font-size: 24px;
  }
  .box-contact .group-btn .btn-line a .btn-inner small {
    display: block;
    font-size: 14px;
    margin: 7px 0 0;
    letter-spacing: 0;
  }
}

#footer {
  position: relative;
  color: #fff;
  padding: 0;
}
#footer::before {
  content: "";
  position: absolute;
  top: 92px;
  left: 0;
  right: 0;
  bottom: 0;
  background: #3D3631;
}
#footer .box-contact {
  position: relative;
  z-index: 2;
}
#footer .footer-content {
  padding: 48px 0 96px;
  position: relative;
  z-index: 2;
}
#footer .footer-content .container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  padding: 0 70px;
  max-width: 1200px;
}
#footer .footer-content .container:after {
  display: none;
}
#footer .footer-content .left .footer__logo {
  width: 258px;
  margin: 0;
}
#footer .footer-content .left .address {
  margin: 24px 0 12px;
  font-size: 14px;
}
#footer .footer-content .left .tel a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
}
#footer .footer-content .left .tel a::before {
  content: "";
  background: url("../img/icon_tel.png") no-repeat center/100% auto;
  width: 24px;
  height: 24px;
}
@media screen and (min-width: 1250px) {
  #footer .footer-content .nav {
    margin: 0 0 0 115px;
  }
}
#footer .footer-content .nav li + li {
  margin-top: 8px;
}
#footer .footer-content .nav li a {
  display: inline-flex;
  text-decoration: none;
  gap: 8px;
  align-items: center;
  font-size: 14px;
  color: inherit;
}
#footer .footer-content .nav li a::before {
  content: "";
  width: 12px;
  height: 12px;
  background: url("../img/f_arrow.svg") no-repeat center/100% auto;
}
@media (hover: hover) {
  #footer .footer-content .nav li a:hover {
    opacity: 0.8;
  }
}
#footer .footer-content .right .bnr {
  width: 321px;
  margin: 0;
}
#footer .footer-content .right .bnr a {
  display: block;
  line-height: 0;
}
#footer .footer-content .right .bnr + .bnr {
  margin-top: 16px;
}
#footer .footer-content .right .copyright {
  text-align: right;
  margin: 56px 0 0;
  font-size: 12px;
}
@media screen and (max-width: 767px) {
  #footer .footer-content {
    padding: 48px 0 190px;
  }
  #footer .footer-content .container {
    padding: 0 20px;
    display: block;
  }
  #footer .footer-content .nav {
    margin: 40px 0;
  }
  #footer .footer-content .right {
    max-width: 100%;
    width: 100%;
  }
  #footer .footer-content .right .bnr {
    width: 100%;
  }
  #footer .footer-content .right .copyright {
    margin-top: 40px;
  }
}

.fixed-box {
  position: fixed;
  bottom: 0;
  right: 0;
  left: auto;
  width: auto;
  z-index: 99;
}
@media screen and (max-width: 767px) {
  .fixed-box {
    width: 100%;
  }
}
.fixed-box .fixed-banner__pc ul {
  display: block;
  width: 64px;
  gap: 0;
}
.fixed-box .fixed-banner__pc ul li .inner {
  display: block;
  padding: 8px 0;
  text-align: center;
  text-decoration: none;
  color: inherit;
}
.fixed-box .fixed-banner__pc ul li .inner img {
  width: 48px;
  margin: 0 auto;
}
.fixed-box .fixed-banner__pc ul li .inner span {
  display: block;
  letter-spacing: 0;
  font-size: 14px;
  line-height: 1.28;
}
.fixed-box .fixed-banner__pc ul li.tel {
  background: #E9B44C;
}
.fixed-box .fixed-banner__pc ul li.tel .inner span {
  margin: 2px 0 0;
}
.fixed-box .fixed-banner__pc ul li.tel2 {
  border-top: 1px dashed;
  background: #E9B44C;
}
.fixed-box .fixed-banner__pc ul li.tel2 small {
  display: block;
  font-size: 10px;
  letter-spacing: -0.2em;
  line-height: 1.28;
  margin: 0 0 2px;
}
.fixed-box .fixed-banner__pc ul li.web {
  background: #E09709;
}
.fixed-box .fixed-banner__pc ul li.web .inner span {
  margin: 2px 0 0;
}
.fixed-box .fixed-banner__pc ul li.ai {
  background: #B77A00;
}
.fixed-box .fixed-banner__pc ul li.ai .inner span {
  margin: 2px 0 0;
}
.fixed-box .fixed-banner__pc ul li.line {
  background: #22BA4F;
  color: #fff;
}
.fixed-box .fixed-banner__pc ul li.line .inner {
  padding-top: 0;
}
.fixed-box .fixed-banner__pc ul li.line .inner img {
  width: 60px;
}
.fixed-box .fixed-banner__pc ul li.line .inner span {
  margin-top: -2px;
}
.fixed-box .fixed-banner__sp {
  width: 100%;
  text-align: center;
}
.fixed-box .fixed-banner__sp .btn-ai {
  position: absolute;
  bottom: 92px;
  right: 8px;
  width: 64px;
  margin: 0;
}
.fixed-box .fixed-banner__sp ul {
  display: flex;
  align-items: stretch;
}
.fixed-box .fixed-banner__sp ul .tel {
  width: 130px;
  background: #B77A00;
}
.fixed-box .fixed-banner__sp ul .tel a {
  display: flex;
  text-decoration: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 100%;
  color: #fff;
}
.fixed-box .fixed-banner__sp ul .tel a small {
  font-size: 10px;
  line-height: 1.28;
  letter-spacing: 0;
  margin: 0 0 4px;
}
.fixed-box .fixed-banner__sp ul .tel a span {
  font-size: 14px;
  line-height: 1.28;
  display: block;
}
.fixed-box .fixed-banner__sp ul .tel2 {
  width: calc((100% - 186px) / 3);
}
.fixed-box .fixed-banner__sp ul .tel2 a {
  background: #E9B44C;
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 8px 0;
  height: 100%;
}
.fixed-box .fixed-banner__sp ul .tel2 a img {
  width: 48px;
  margin: 0 auto;
  display: block;
}
.fixed-box .fixed-banner__sp ul .tel2 a span {
  display: block;
  font-size: 14px;
  line-height: 1.28;
  margin: 2px 0 0;
}
.fixed-box .fixed-banner__sp ul .web {
  width: calc((100% - 186px) / 3);
}
.fixed-box .fixed-banner__sp ul .web a {
  background: #E09709;
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 8px 0;
  height: 100%;
}
.fixed-box .fixed-banner__sp ul .web a img {
  width: 48px;
  margin: 0 auto;
  display: block;
}
.fixed-box .fixed-banner__sp ul .web a span {
  display: block;
  font-size: 14px;
  line-height: 1.28;
  margin: 2px 0 0;
}
.fixed-box .fixed-banner__sp ul .line {
  width: calc((100% - 186px) / 3);
}
.fixed-box .fixed-banner__sp ul .line a {
  background: #22BA4F;
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 0 0 8px;
  height: 100%;
}
.fixed-box .fixed-banner__sp ul .line a img {
  width: 60px;
  margin: 0 auto;
  display: block;
}
.fixed-box .fixed-banner__sp ul .line a span {
  display: block;
  font-size: 14px;
  line-height: 1.28;
  margin: -2px 0 0;
  color: #fff;
}
.fixed-box .fixed-banner__sp ul .pagetop {
  width: 56px;
}
.fixed-box .fixed-banner__sp ul .pagetop a {
  display: block;
  padding: 20px 0 8px;
  box-sizing: border-box;
  height: 100%;
  color: #fff;
  text-align: center;
  background: #3D3631;
}
.fixed-box .fixed-banner__sp ul .pagetop a span {
  margin: 10px 0 0;
  display: block;
  font-size: 14px;
  line-height: 1.28;
}

.btn-link {
  width: 320px;
  max-width: 100%;
}
.btn-link a {
  display: block;
  position: relative;
  color: #fff;
  background: #6A5C50;
  padding: 16px;
  transition: opacity 0.5s;
  text-decoration: none;
  font-size: 20px;
}
.btn-link a:hover {
  opacity: 0.8;
}
.btn-link a:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 16px;
  background: url("../img/btn_arrow.svg") no-repeat center/100% auto;
  width: 24px;
}
@media screen and (max-width: 767px) {
  .btn-link {
    width: 100%;
  }
}

.group-h3 {
  position: relative;
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  .group-h3 {
    padding: 50px 0;
  }
}
.group-h3::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background: #E0F3EF;
  width: 100vw;
}
@media screen and (min-width: 768px) {
  .group-h3 .elementor-widget-heading h2 {
    width: 95%;
    letter-spacing: 0;
  }
}
.group-h3 .item {
  background: #FFF;
  border-radius: 10px;
  padding: 40px 30px;
}
.group-h3 .item + .item {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .group-h3 .item .elementor-column:not(:has(.point)) {
    width: calc(100% - 147px);
    padding: 0 0 0 40px;
  }
}
.group-h3 .item .elementor-column:has(.point) {
  max-width: 147px !important;
  width: 147px !important;
  background: #3CB49A;
  color: #fff;
  font-family: "Optima";
  text-align: center;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0;
  padding: 6px 0 2px;
  align-self: flex-start;
}
.group-h3 .item .elementor-column:has(.point) .elementor-heading-title {
  line-height: inherit;
  font-size: inherit;
  font-weight: 400;
}
.group-h3 .item .elementor-column:not(:has(.point)) {
  box-sizing: border-box;
}
.group-h3 .item .group-content .title {
  color: #6A5C50;
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  line-height: 1.5;
  font-weight: 600;
  margin: 0 0 30px;
}
.group-h3 .item .group-content .title .elementor-heading-title {
  line-height: inherit;
}
.group-h3 .item .group-content .title small {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  margin: 10px 0 0;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .group-h3 .item {
    padding: 30px 20px;
  }
  .group-h3 .item .elementor-column:has(.point) {
    width: 100px !important;
    max-width: 100%;
    font-size: 20px;
    padding: 4px 0 2px;
  }
  .group-h3 .item .group-content {
    margin: 20px 0 0;
  }
  .group-h3 .item .group-content .title {
    font-size: 20px;
    margin: 0 0 20px;
    letter-spacing: 0;
  }
  .group-h3 .item .group-content .title small {
    font-size: 12px;
  }
}

.group-h4 .elementor-row {
  gap: 50px;
}
@media screen and (max-width: 767px) {
  .group-h4 .elementor-row {
    gap: 30px;
  }
}
.group-h4 .elementor-image {
  overflow: hidden;
  border-radius: 20px;
}
.group-h4 .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.5;
  color: #6A5C50;
}
.group-h4 .title .elementor-heading-title {
  line-height: inherit;
}
@media screen and (max-width: 767px) {
  .group-h4 .title {
    font-size: 20px;
  }
}
.group-h4 .name {
  color: #6A5C50;
  line-height: 1.5;
  font-size: 24px;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
}
.group-h4 .name small {
  font-size: 16px;
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
.group-h4 .name span {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .group-h4 .elementor-column {
    width: calc(70% - 50px) !important;
  }
  .group-h4 .elementor-column:has(.elementor-image) {
    width: 30% !important;
  }
}

.group-h5 .elementor-image {
  overflow: hidden;
  border-radius: 10px;
}
@media screen and (min-width: 768px) {
  .group-h5 .flex .elementor-row {
    justify-content: space-between;
  }
  .group-h5 .flex .elementor-column {
    max-width: calc(50% - 20px);
  }
}

.circle-list {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;
}
.circle-list .elementor-icon-list-item {
  line-height: 2;
  position: relative;
  padding: 0 0 0 26px !important;
}
.circle-list .elementor-icon-list-item::before {
  content: "";
  position: absolute;
  left: 0;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  top: 10px;
  background: #3CB49A;
}
.circle-list .elementor-icon-list-item + .elementor-icon-list-item {
  margin-top: 5px;
}

.group-h7 {
  margin: 0 0 0 60px;
  background: #FFFFFF;
  box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.160784);
  border-radius: 10px;
  position: relative;
}
.group-h7:not(.last):after {
  content: "";
  position: absolute;
  top: 100%;
  left: -60px;
  right: 0;
  height: 37px;
  background: url("../img/child/h7_arrow.svg") no-repeat bottom center/auto 28px;
}
@media screen and (min-width: 768px) {
  .group-h7:has(.elementor-image) .elementor-column:not(:has(.elementor-image)) {
    width: 60% !important;
  }
  .group-h7:has(.elementor-image) .elementor-column:not(:has(.elementor-image)) .elementor-widget-wrap {
    padding-right: 27px;
  }
}
.group-h7 .title {
  color: #3CB49A;
  font-size: 24px;
  line-height: 1.5;
  font-family: "Noto Serif JP", serif;
  margin: 0 0 10px;
  font-weight: 600;
}
.group-h7 .title .elementor-heading-title {
  line-height: inherit;
}
.group-h7 .elementor-column:not(:has(.elementor-image)) {
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
.group-h7 .elementor-column:not(:has(.elementor-image)) .elementor-widget-wrap {
  padding: 30px 30px 30px 93px;
}
.group-h7 .number {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -60px;
  border-radius: 50%;
  color: #fff;
  background: #3CB49A;
  width: 120px;
  height: 120px;
  max-width: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 40px;
  line-height: 1;
  box-sizing: border-box;
  padding: 5px 0 0;
  margin: 0 !important;
}
.group-h7 .number .elementor-heading-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: inherit;
}
.group-h7 .number .elementor-heading-title small {
  font-size: 30px;
}
.group-h7 .text {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;
  line-height: 2;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .group-h7 .elementor-column:has(.elementor-image) {
    width: 410px !important;
    max-width: 40%;
  }
}
.group-h7 .elementor-column:has(.elementor-image) .elementor-image {
  overflow: hidden;
  border-radius: 10px;
}
.group-h7 + .group-h7 {
  margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .group-h7 {
    margin: 0;
  }
  .group-h7:not(.last):after {
    left: 0;
  }
  .group-h7 .number {
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    max-width: 90px;
    height: 90px;
    font-size: 30px;
    line-height: 1.2;
  }
  .group-h7 .number .elementor-heading-title small {
    font-size: 20px;
  }
  .group-h7 .title {
    font-size: 20px;
  }
  .group-h7 .elementor-column:not(:has(.elementor-image)) .elementor-widget-wrap {
    padding: 70px 30px 30px;
  }
  .group-h7 + .group-h7 {
    margin-top: 100px;
  }
}

@media screen and (max-width: 767px) {
  .elementor-section:not(.group-h7) + .group-h7 {
    margin-top: 70px;
  }
}

.accordion + .accordion {
  margin-top: 20px;
}
.accordion .title {
  background: #F2F6FC;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #6A5C50;
  font-size: 28px;
  line-height: 1.5;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  padding: 25px 80px 25px 27px;
  position: relative;
  cursor: pointer;
  margin: 0 !important;
}
.accordion .title span {
  border-radius: 50%;
  background: #3CB49A;
  color: #fff;
  width: 50px;
  height: 50px;
  min-width: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 21px;
  line-height: 1.5;
  font-weight: 500;
  position: relative;
  top: -1px;
}
.accordion .title:after {
  content: "";
  position: absolute;
  top: 32px;
  right: 34px;
  background: url("../img/child/plus.svg") no-repeat center/100% auto;
  width: 34px;
  height: 34px;
}
.accordion .title.acv_open:after {
  background-image: url("../img/child/minus.svg");
}
@media screen and (max-width: 767px) {
  .accordion .title {
    padding: 20px 60px 20px 15px;
    font-size: 20px;
  }
  .accordion .title span {
    width: 40px;
    height: 40px;
    min-width: 40px;
    font-size: 18px;
  }
  .accordion .title:after {
    width: 30px;
    height: 30px;
    right: 20px;
  }
}
.accordion > ul {
  display: none;
  margin: 40px 80px 0 25px;
  padding: 0 0 40px;
  position: relative;
}
.accordion > ul li.text {
  padding: 0 0 0 80px;
}
.accordion > ul li:first-child {
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  background: #F2F6FC;
  color: #3CB49A;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 21px;
  line-height: 1.5;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .accordion > ul {
    margin: 25px 0 0 15px;
  }
  .accordion > ul li.text {
    padding: 0 0 0 60px;
  }
  .accordion > ul li:first-child {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
}

.group-h9 {
  position: relative;
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  .group-h9 {
    padding: 50px 0;
  }
}
.group-h9::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background: #E0F3EF;
  width: 100vw;
}
.group-h9 .item {
  border-radius: 10px;
  overflow: hidden;
  border-left: 6px solid #3CB49A;
  padding: 40px 74px 88px;
  background: #fff;
}
@media screen and (max-width: 767px) {
  .group-h9 .item {
    padding: 30px;
  }
}
.group-h9 .item .elementor-heading-title {
  font-size: 28px;
  color: #6A5C50;
  line-height: 1.5;
  padding: 19px 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  border-bottom: 1px solid #A6A6A6;
}
@media screen and (max-width: 767px) {
  .group-h9 .item .elementor-heading-title {
    font-size: 24px;
    padding: 0 0 12px;
  }
}
.group-h9 .item + .item {
/*   margin-top: 60px; */
  background: #F9F9F4;
}
@media (max-width: 1024px) {
    .box .elementor-row {
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }
	.box .item {
		padding-left:20px;
		padding-right:20px;
	}
}
@media screen and (max-width: 767px) {
	    .box .elementor-row {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
	.box .item  {
		width:100% !important;
	}
  .group-h9 .item + .item {
    margin-top: 40px;
  }
}
@media screen and (min-width: 768px) {
  .group-h9 .item .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .group-h9 .item .flex ul {
    width: 50%;
    min-width: -moz-max-content;
    min-width: max-content;
    line-height: 2.5;
  }
}
.group-h9 .item .flex ul li {
  display: flex;
  align-items: flex-start;
}
@media screen and (min-width: 768px) {
  .column__title {
    min-height: 72px;
  }
  .column__text {
    min-height: 125px;
  }

.col img{
	aspect-ratio:1.5;
	object-fit:cover;
}
}

.clinic__title.elementor-widget-heading h2::before {
	background-color: #fff;
}
.clinic__title.elementor-widget-heading h2 {
	color:#fff;
	padding:0 0 0 20px;
}
.clinic__title .elementor-widget-container {
	background:#3CB49A;
	width:max-content;
	padding:10px 20px 10px 20px;
}

.title-h3 {
	color:#3CB49A;
	font-size:24px;
}

.imgBox {
	background:#F0F5EF;
	padding:32px 20px;
}
#anchor-menu::before {
	box-shadow:none !important;
}
#anchor-menu .elementor-icon-list-items li {
	border:none;
}
	#anchor-menu .elementor-icon-list-item {
	
		margin:0;
		padding:0;
	}
	#anchor-menu .elementor-icon-list-item a {
		width:100%;
			display:flex;
		align-items:center;
		justify-content:center;
		padding:10px 10px;
		border-radius:8px;
		font-size:9px;
		padding-left:25px;
		background-color:#fff;
	}
	#anchor-menu .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
	}
#anchor-menu .elementor-icon-list-items li a:after {
	top:50%;
	transform:translateY(-50%) ;
	border:none !important;
	background:url(/wp-content/uploads/icon_arrow.png) no-repeat;
	background-size:contain;
	width:5px;
	height:5px;
}
#anchor-menu .elementor-icon-list-items li a::before {
	position:absolute;
	content:"";
	top:50%;
	transform:translateY(-50%) ;
	left:0;
	width:24px;
	height:24px;
}
#anchor-menu .elementor-icon-list-items li:nth-child(1) a::before {
		background:url(/wp-content/uploads/icon01.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(2) a::before {
		background:url(/wp-content/uploads/icon02.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(3) a::before {
		background:url(/wp-content/uploads/icon03.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(4) a::before {
		background:url(/wp-content/uploads/icon04.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(5) a::before {
		background:url(/wp-content/uploads/icon11-1.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(6) a::before {
		background:url(/wp-content/uploads/icon05.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(7) a::before {
		background:url(/wp-content/uploads/icon06.png) no-repeat;
	background-size:contain;
}
#anchor-menu .elementor-icon-list-items li:nth-child(8) a::before {
		background:url(/wp-content/uploads/icon07.png) no-repeat;
	background-size:contain;
}
#anchor-menu::before {
	background:#f5f5f5;
}
	#anchor-menu .elementor-icon-list-items li a::before {
		left:8px;
	}	
	#anchor-menu .elementor-icon-list-items li a::after {
		right:8px;
	}
@media screen and (min-width: 768px) {
	#anchor-menu .elementor-icon-list-items li a::before {
		width:48px;
		height:48px;
		left:10px;
	}	
	#anchor-menu .elementor-icon-list-items li a::after {
		right:10px;
			width:8px;
	height:8px;
	}
	.imgBox {
	padding:32px 36px;
}
	.imgBox img {
		margin-top:30px;
	}
	.imgBox p {
		width:70%;
	}
	#anchor-menu .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
	}
	#anchor-menu .elementor-icon-list-item a {
	font-size:13px;	
		padding:20px 10px 20px 40px;
	}
}

@media screen and (max-width: 1200px) {
  #anchor-menu .elementor-icon-list-items {
    grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 950px) {
  #anchor-menu .elementor-icon-list-items {
    grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 767px) {
  #anchor-menu .elementor-icon-list-items {
    grid-template-columns: repeat(1, 1fr);
	}
}

/* anchor-menu アイコンなしバージョン */
#anchor-menu-no-icon::before {
	box-shadow:none !important;
}
#anchor-menu-no-icon .elementor-icon-list-items li {
	border:none;
}
	#anchor-menu-no-icon .elementor-icon-list-item {
	
		margin:0;
		padding:0;
	}
	#anchor-menu-no-icon .elementor-icon-list-item a {
		width:100%;
			display:flex;
		align-items:center;
		justify-content:center;
		padding:10px 10px;
		border-radius:8px;
		font-size:9px;
		background-color:#fff;
	}
	#anchor-menu-no-icon .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
	}
#anchor-menu-no-icon .elementor-icon-list-items li a:after {
	top:50%;
	transform:translateY(-50%) ;
	border:none !important;
	background:url(/wp-content/uploads/icon_arrow.png) no-repeat;
	background-size:contain;
	width:5px;
	height:5px;
}
/* アイコン非表示 */
#anchor-menu-no-icon .elementor-icon-list-items li a::before {
	display:none;
}
#anchor-menu-no-icon::before {
	background:#f5f5f5;
}
	#anchor-menu-no-icon .elementor-icon-list-items li a::after {
		right:8px;
	}
@media screen and (min-width: 768px) {
	#anchor-menu-no-icon .elementor-icon-list-items li a::after {
		right:10px;
			width:8px;
	height:8px;
	}
	#anchor-menu-no-icon .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
	}
	#anchor-menu-no-icon .elementor-icon-list-item a {
	font-size:13px;	
		padding:20px 10px;
	}
}
@media screen and (max-width: 999px) {
  #anchor-menu-no-icon .elementor-icon-list-items {
    grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (max-width: 850px) {
  #anchor-menu-no-icon .elementor-icon-list-items {
    grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 767px) {
  #anchor-menu-no-icon .elementor-icon-list-items {
    grid-template-columns: repeat(1, 1fr);
	}
}
.a3 {
  position: relative;
  padding: 87px 0 100px;
}
.a3::before {
  content: "";
  background: #fcf9eb;
  position: absolute;
  top: 0;
  right: calc(-50vw + 50%);
  bottom: 0;
  left: calc(-50vw + 50%);
}
.a3 h2 {
  margin-bottom: 36px;
}
.a3 .item {
  background: #fff;
  padding: 57px 60px 75px;
  position: relative;
}
.a3 .item::before {
  content: "";
  background: url(../img/a3_line.png) repeat-y left top/100% 100%;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 9px;
}
.a3 .item:not(:last-child) {
  margin-bottom: 60px;
}
.a3 .item h3 {
  font-size: 28px;
  line-height: 43px;
  letter-spacing: 0.25em;
  color: #52a18c;
  font-weight: 400;
  border-bottom: 1px solid #a6a6a6;
  padding-bottom: 18px;
  margin-bottom: 24px;
}
.a3 .item ul li {
  color: #000;
  line-height: 40px;
  letter-spacing: 0.05em;
  position: relative;
  padding-left: 13px;
}
.a3 .item ul li::before {
  content: "•";
  position: absolute;
  top: 0;
  left: 0;
}
.a3 .item2 {
  background: #f5f2e3;
}
.table_a th,
.table_a td {
  border: 1px solid #ccc;
  padding: 10px 5px;
  text-align: center;
  font-weight: 400;
}
.table_a th {
  font-weight: 700;
  width: 50px;
}
.table_a th small{
      font-weight: 700;
      font-size: 16px;
        cursor: vertical-text;
  direction: rtl;
  writing-mode: vertical-rl;
  -o-writing-mode: vertical-rl;
  -ms-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -moz-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  text-orientation: sideways-right;
  -o-text-orientation: sideways-right;
  -ms-text-orientation: upright;
  -ms-text-orientation: sideways-right;
  -moz-text-orientation: sideways-right;
  -webkit-text-orientation: sideways-right;
}
.table_a th span{
cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
    white-space: nowrap;
    display: inline-block;
    
}

.table_a thead td {
  font-weight: 700;
}
.table_a tbody tr:nth-child(-n + 2) td {
  text-align: left;
}
.style1 {
  background: #f8fdf5;
  padding: 45px 50px 50px;
}
.style1 h3 {
  font-size: 28px;
  letter-spacing: 0.25em;
  line-height: 40px;
  font-weight: 400;
  color: #322f26;
  margin-bottom: 15px;
}
.style1 table tbody tr th,
.style1 table tbody tr td {
  text-align: left;
  border-bottom: 2px solid #d8d8d8;
  padding: 13px 0;
  vertical-align: top;
}
.style1 table tbody tr th {
  width: 8%;
  color: #52a18c;
}
.style1 table tbody tr td {
  color: #353537;
}
@media screen and (max-width: 767px) {
  .a3 .item {
    padding: 30px 25px;
  }
  .table_a_scroll {
    overflow-x: scroll;
  }
  .table_a_scroll .table_a{
    width: 1080px;
  }
  .style1 {
    padding: 35px 15px;
  }
  .style1 h3 {
    font-size: 24px;
    line-height: 1.3;
    margin-bottom: 5px;
  }
  .style1 table tbody tr th {
    width: 23%;
  }
  .anchor-links .elementor-icon-list-items li a {
    font-size: 14px;
  }
  .anchor-links {
    margin: 0 -10px;
  }
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .table_a_scroll {
    overflow-x: scroll;
  }
}


.box .elementor-row{
	gap:20px;
}

@media screen and (max-width: 767px) {
	.lightBox {
		display:flex;
		flex-direction:column;
	}
	.thumbnailWrap {
		width:100% !important;
		grid-template-columns: repeat(3, 1fr) !important;
	}
  .heightLine-pc {
    height: auto!important;
  }
}
@media screen and (max-width: 999px) {
  .group-h5 .elementor-widget-heading h4 {
    font-size: 20px;
  }
  .group-h5 .elementor-widget-heading h2 {
    font-size: 25px;
  }
  .table_a {
    min-width: 1000px;
}

.table_a_scroll {
    overflow-x: scroll;
}
}

@media screen and (max-width: 767px) {
  .group-h5 .elementor-widget-heading h4 {
    font-size: 20px;
  }
}

.h2-merihari{
	font-size:3rem !important;
	color:#ffffff !important;
	background:#3CB49A !important;
	border-radius:10px !important;
}