@charset "UTF-8";
.normal {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.mincho {
  font-family: "Hina Mincho", serif;
  font-weight: 400;
  letter-spacing: unset;
}

.bold {
  font-weight: 600;
}

.archivo {
  font-family: "Archivo Narrow", sans-serif;
  font-weight: 400;
}

.row, .rows > *, .rowss > * > * {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  align-content: center;
}

.row > *, .rows > * > *, .rowss > * > * > * {
  flex: 1 1 auto;
}

.col, .cols > * {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: center;
}

.row.fixedrow {
  align-items: flex-start;
}

.row.fixedrow > * {
  flex: 1 0 0%;
}

.row.fixedrow > * + * {
  margin-left: 15px;
}

@media (width > 730px) {
  .only-m {
    display: none;
  }
  .pc-row, html.sec header > div, html.sec header .tel-ctn, .pc-rows > * {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    align-content: center;
  }
  .pc-row > *, html.sec header > div > *, html.sec header .tel-ctn > *, .pc-rows > * > * {
    flex: 1 0 0%;
  }
  .pc-col, .pc-cols > * {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }
}
@media (width <= 730px) {
  .only-pc {
    display: none;
  }
  .m-row, .m-rows > * {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    align-content: center;
  }
  .m-row > *, .m-rows > * > * {
    flex: 1 1 auto;
  }
  .m-col, .m-cols > * {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }
}
.fit {
  flex: 0 0 auto !important;
}

.btns {
  margin-bottom: 3em;
  display: block;
  text-align: center;
  position: relative;
}
.btns > * {
  all: unset;
  display: inline-block;
  position: relative;
  line-height: 1;
  background-color: #B71D2B;
  border: 1px solid #B71D2B;
  color: white;
  transition: all 0.4s;
  margin: 5px;
  text-align: left;
}
@media (width <= 730px) {
  .btns > * {
    padding: 1em 3em 1em 1em;
    min-width: 60vw;
  }
}
@media (width > 730px) {
  .btns > * {
    padding: 1em 3em 1em 1em;
    min-width: 10vw;
  }
}
.btns > *::after {
  display: block;
  font-family: "Font Awesome 6 Free";
  content: "\f138";
  font-weight: 900;
  position: absolute;
  top: 0;
  right: 0;
  width: 20px;
  padding: 0 10px;
  height: 100%;
  font-size: 80%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: all 0.4s;
}
.btns > *:hover {
  cursor: pointer;
  text-decoration: none;
  color: #B71D2B;
  border: 1px solid #B71D2B;
  background-color: white;
}
/*-----------------------------------------------------------------*/
/*リセット*/
/*-----------------------------------------------------------------*/
@layer reset {
  html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
    border: 0;
    font-family: inherit;
    font-size: 100%;
    font-weight: inherit;
    margin: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
  }
  :focus {
    /* remember to define focus styles! */
    outline: 0;
  }
  body {
    background: #fff;
    line-height: 1;
    position: relative;
  }
  ol, ul {
    list-style: none;
  }
  table {
    /* tables still need 'cellspacing="0"' in the markup */
    border-collapse: collapse;
    border-spacing: 0;
  }
  caption, th, td {
    font-weight: normal;
    text-align: left;
  }
  blockquote:before, blockquote:after, q:before, q:after {
    content: "";
  }
  blockquote, q {
    quotes: "" "";
  }
  a img {
    border: 0;
  }
  article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
  }
  hr {
    display: none;
  }
  main {
    display: block;
  }
  figure {
    margin: 0;
  }
  figure img:not([width]):not([height]) {
    width: 100%;
  }
  h1, h2, h3, h4, h5, h6 {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
  }
  strong {
    font-weight: 600;
  }
  strong small {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
  }
  a {
    color: inherit;
  }
  a[href^=tel] {
    color: inherit;
    text-decoration: none;
  }
  img {
    border-style: none;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
  .only-img {
    font-size: 0px;
    line-height: 0px;
  }
  address {
    font-style: normal;
  }
  nav {
    display: block;
  }
  small {
    font-size: 80%;
  }
  .cf:after {
    display: block;
    clear: both;
    content: "";
  }
  .css-att {
    display: none;
  }
  html[class] {
    margin-top: 0 !important;
  }
  #wpadminbar {
    display: none;
  }
}
/*-----------------------------------------------------------------*/
/*サイト基本規則*/
/*-----------------------------------------------------------------*/
@layer siterule {
  @media (width <= 730px) {
    html, body {
      max-width: 100%;
    }
  }
  @media (width <= 730px) {
    html {
      font-size: 14px;
    }
  }
  @media (width > 730px) {
    html {
      font-size: 17px;
    }
  }
  body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
  }
  @media (width <= 730px) {
    body {
      min-width: 360px;
    }
  }
  @media (width <= 730px) {
    img {
      max-width: 100%;
    }
  }
  img:not([width]):not([height]) {
    width: auto;
    height: auto;
    max-width: 100%;
  }
  img.noimg {
    background: url(/wp-content/themes/custom/img/noimg.jpg) no-repeat center /cover rgba(0, 0, 0, 0.1);
    border: 0;
  }
  span[style*=background-image] {
    display: inline-block;
    width: 100%;
    padding-top: 75%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  span.vimg[style*=background-image],
  .vimgs span[style*=background-image] {
    padding-top: 133.3333333333%;
  }
  a {
    text-decoration: none;
    transition: all 0.3s ease-out;
  }
  a:hover, a:hover:before {
    text-decoration: underline;
  }
  label {
    cursor: pointer;
  }
  @media (width <= 730px) {
    .inr0, html.sec header > div {
      padding-left: 20px !important;
      padding-right: 20px !important;
    }
  }
  @media (width > 730px) {
    .inr0, html.sec header > div {
      max-width: 1920px;
      padding-left: 30px;
      padding-right: 30px;
      margin: 0 auto;
    }
  }
  @media (width <= 730px) {
    .inr {
      padding-left: 20px !important;
      padding-right: 20px !important;
      margin: 0 auto;
    }
  }
  @media (width > 730px) {
    .inr {
      max-width: 1060px;
      padding-left: 120px;
      padding-right: 120px;
      margin: 0 auto;
    }
  }
  @media (width <= 730px) {
    .inr2 {
      padding-left: 20px !important;
      padding-right: 20px !important;
      margin: 0 auto;
    }
  }
  @media (width > 730px) {
    .inr2 {
      max-width: 930px;
      padding-left: 120px;
      padding-right: 120px;
      margin: 0 auto;
    }
  }
  @media (width <= 730px) {
    .m-noinr {
      margin-left: -20px !important;
      margin-right: -20px !important;
      max-width: none !important;
    }
  }
  .slick {
    position: relative;
    opacity: 0;
    transition: opacity 0.75s ease;
  }
  .slick.slick-initialized {
    opacity: 1;
  }
  .slick, .slick * {
    max-width: none !important;
  }
  @media (width <= 730px) {
    .slick-track {
      padding: 12.5px 0;
    }
  }
  @media (width > 730px) {
    .slick-track {
      padding: 25px 0;
    }
  }
  .slick-slide {
    margin: 0 1vw;
  }
  .slick-slide img {
    position: relative;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .slick-arrow::before {
    color: #222 !important;
  }
}
/*-----------------------------------------------------------------*/
/*サイト個別規則*/
/*-----------------------------------------------------------------*/
@media (width <= 730px) {
  header {
    padding-block: 20px;
  }
}
@media (width > 730px) {
  header {
    padding: 20px 0;
  }
}
@media (width > 730px) {
  header .pc-row, html.sec header .tel-ctn, html.sec header > div {
    align-items: center;
  }
}
@media (width > 730px) {
  header h1 {
    margin-right: clamp(calc(490px) * (5 / 100),calc(100vw - 240px) * (5 / 100),1060px * (5 / 100));
  }
}
header h1 small {
  display: inline-block;
  margin-bottom: 1em;
}
header .tel-ctn {
  line-height: 1.2;
}

html#idx .menu-toggle {
  display: none !important;
}

html.sec header .menu {
  background: #8CD22F;
  color: white;
  position: fixed;
  top: 20px;
  right: 0;
  z-index: 99;
  overflow-y: auto;
  padding: 15px 20px 20px;
  transform: translateX(100vh);
  transition: all 0.3s;
  max-width: 100vw;
  max-height: 100dvh;
  box-sizing: border-box;
  overflow-x: auto;
  overscroll-behavior: contain;
  opacity: 0;
}
html.sec header .menu > ul > li {
  font-size: 120%;
}
html.sec header .menu > ul > li > a {
  display: block;
  padding: 15px 0;
  font-family: "Archivo Narrow", sans-serif;
  font-weight: 400;
}
html.sec header .menu > ul > li > a img {
  height: 1.8em !important;
  width: 1.8em !important;
  -o-object-fit: contain;
     object-fit: contain;
  vertical-align: middle;
  margin-right: 0.5em;
  transition: all 0.3s;
}
html.sec header .menu > ul > li > a span {
  display: none;
}
html.sec header .menu > ul > li > a:hover img {
  transform: translateX(5px);
}
html.sec header .menu > .quickmenu {
  display: none;
}
html.sec header .menu .closebtn {
  text-align: center;
}
html.sec header .menu .closebtn a {
  display: inline-flex !important;
  background-color: white;
  color: #8CD22F;
  padding: 3px;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 999px;
  font-size: 150%;
  margin-top: 5px;
  border: 1px solid white;
}
html.sec header .menu .closebtn a:hover {
  text-decoration: none;
  background-color: #8CD22F;
  color: white;
}
html.sec .menu-toggle {
  position: fixed;
  z-index: 98;
  transition: all 0.4s;
  top: 20px;
  right: 20px;
  flex: 0 0 auto;
  background: #8CD22F;
  border-width: 15px;
  border-style: solid;
  border-color: #8CD22F;
  padding: calc((25px - 25px) / 2) calc((25px - 25px) / 2);
  box-sizing: content-box;
  border-radius: 999px;
  font-size: 0px;
}
html.sec .menu-toggle button {
  position: relative;
  width: 25px;
  height: 25px;
  background: none;
  border: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
html.sec .menu-toggle button, html.sec .menu-toggle button span {
  display: inline-block;
  transition: all 0.4s;
  box-sizing: border-box;
}
html.sec .menu-toggle button span {
  position: absolute;
  height: 2px;
  background: white;
  border-radius: 4px;
}
html.sec .menu-toggle button span:nth-of-type(1) {
  top: 0;
  left: 0;
  width: 100%;
  animation: menu-bar01 0.75s forwards;
}
html.sec .menu-toggle button span:nth-of-type(2) {
  top: calc(50% - (2px / 2));
  left: 15%;
  width: 70%;
  transition: all 0.25s 0.25s;
}
html.sec .menu-toggle button span:nth-of-type(3) {
  bottom: 0;
  left: 30%;
  width: 40%;
  animation: menu-bar02 0.75s forwards;
}
html.sec .menu-toggle > span {
  position: absolute;
  top: calc(100% + 15px + 5px);
  left: calc(-1 * 15px);
  right: calc(-1 * 15px);
  text-align: center;
  transition: all 0.6s;
  opacity: 1;
  color: #8CD22F;
  font-size: 0.95rem;
  max-width: none;
}
@keyframes menu-bar01 {
  0% {
    transform: translateY(11.5px) rotate(45deg);
  }
  50% {
    transform: translateY(11.5px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes active-menu-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(11.5px) rotate(0);
  }
  100% {
    transform: translateY(11.5px) rotate(45deg);
  }
}
@keyframes menu-bar02 {
  0% {
    transform: translateY(-11.5px) rotate(-45deg);
  }
  50% {
    transform: translateY(-11.5px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes active-menu-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-11.5px) rotate(0) scaleX(2.5);
  }
  100% {
    transform: translateY(-11.5px) rotate(-45deg) scaleX(2.5);
  }
}
html.sec body.menu-active nav.menu {
  transform: translateX(0vh);
  opacity: 1;
  overscroll-behavior-y: contain;
}
html.sec body.menu-active .menu-toggle button span:nth-of-type(1) {
  animation: active-menu-bar01 0.75s forwards;
}
html.sec body.menu-active .menu-toggle button span:nth-of-type(2) {
  opacity: 0;
}
html.sec body.menu-active .menu-toggle button span:nth-of-type(3) {
  animation: active-menu-bar03 0.75s forwards;
}
html.sec body.menu-active .menu-toggle > span {
  opacity: 0;
}

footer {
  z-index: 2;
  position: relative;
  background: white;
}
@media (width <= 730px) {
  footer {
    border-top: 10px solid #8CD22F;
    text-align: center;
  }
}
footer nav.ftrmenu {
  background-color: #8CD22F;
  color: white;
  font-size: clamp(calc(490px) * (1.4 / 100),calc(100vw - 240px) * (1.4 / 100),1060px * (1.4 / 100));
}
footer nav.ftrmenu ul li {
  position: relative;
}
footer nav.ftrmenu ul li + li a {
  border-left: 1px solid white;
}
footer nav.ftrmenu ul li a {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  padding: 10px;
  box-sizing: border-box;
}
footer .ftr-title {
  padding: 20px 0;
}
@media (width > 730px) {
  footer .ftr-title {
    font-size: clamp(calc(490px) * (1.4 / 100),calc(100vw - 240px) * (1.4 / 100),1060px * (1.4 / 100));
    flex: 1 1 0 !important;
  }
}
footer .ftr-title .pc-row, footer .ftr-title html.sec header .tel-ctn, html.sec header footer .ftr-title .tel-ctn, footer .ftr-title html.sec header > div, html.sec footer .ftr-title header > div {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
@media (width <= 730px) {
  footer .ftr-title .pc-row h2, footer .ftr-title html.sec header .tel-ctn h2, html.sec header footer .ftr-title .tel-ctn h2, footer .ftr-title html.sec header > div h2, html.sec footer .ftr-title header > div h2 {
    margin-bottom: 30px;
  }
  footer .ftr-title .pc-row h2 img, footer .ftr-title html.sec header .tel-ctn h2 img, html.sec header footer .ftr-title .tel-ctn h2 img, footer .ftr-title html.sec header > div h2 img, html.sec footer .ftr-title header > div h2 img {
    max-width: 300px;
  }
}
@media (width > 730px) {
  footer .ftr-title .pc-row h2, footer .ftr-title html.sec header .tel-ctn h2, html.sec header footer .ftr-title .tel-ctn h2, footer .ftr-title html.sec header > div h2, html.sec footer .ftr-title header > div h2 {
    margin-right: 40px;
    max-width: 300px;
  }
}
footer .ftr-title .pc-row div, footer .ftr-title html.sec header .tel-ctn div, html.sec header footer .ftr-title .tel-ctn div, footer .ftr-title html.sec header > div div, html.sec footer .ftr-title header > div div {
  flex: 0 0 auto;
  line-height: 1.3;
}
footer .ftr-title .pc-row .tel, footer .ftr-title html.sec header .tel-ctn .tel, html.sec header footer .ftr-title .tel-ctn .tel, footer .ftr-title html.sec header > div .tel, html.sec footer .ftr-title header > div .tel {
  display: flex;
  align-items: center;
}
@media (width <= 730px) {
  footer .ftr-title .pc-row .tel, footer .ftr-title html.sec header .tel-ctn .tel, html.sec header footer .ftr-title .tel-ctn .tel, footer .ftr-title html.sec header > div .tel, html.sec footer .ftr-title header > div .tel {
    font-size: 200%;
    justify-content: center;
  }
}
@media (width > 730px) {
  footer .ftr-title .pc-row .tel, footer .ftr-title html.sec header .tel-ctn .tel, html.sec header footer .ftr-title .tel-ctn .tel, footer .ftr-title html.sec header > div .tel, html.sec footer .ftr-title header > div .tel {
    font-size: 300%;
    justify-content: flex-start;
  }
}
footer .rights {
  text-align: center;
  line-height: 2;
  font-size: 60%;
  padding-bottom: 20px;
}
footer .m-btmnav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9;
  transform: translateY(90px);
  transition: all 1s;
  border-top: 1px solid white;
  background: white;
}
footer .m-btmnav > * {
  display: block;
  box-sizing: border-box;
  height: 100%;
}

body.hdr-scrolling .pgtop {
  transform: translateY(0);
}
body.hdr-scrolling .m-btmnav {
  transform: translateY(0);
}

footer.scrolling .pgtop {
  transform: translateY(-40px);
}

@media (width > 730px) {
  html.sec header {
    font-size: 80%;
  }
}
@media (width > 730px) {
  html.sec header > div {
    justify-content: flex-start;
  }
}
@media (width > 730px) {
  html.sec header .title-ctn {
    flex: 0 0 317px !important;
  }
}
@media (width <= 730px) {
  html.sec header .title-ctn h1 {
    margin-right: 100px;
    max-width: 317px;
  }
}
html.sec header .title-ctn .info {
  display: none;
}
@media (width <= 730px) {
  html.sec header .tel-ctn {
    line-height: 1.5;
    margin-top: 1em;
  }
}
@media (width > 730px) {
  html.sec header .tel-ctn {
    justify-content: flex-start;
    flex-wrap: wrap;
    margin-right: 150px;
    text-align: left;
  }
}
@media (width > 730px) {
  html.sec header .tel-ctn .address {
    flex: 0 0 auto;
    margin-right: 50px;
  }
}
html.sec header .tel-ctn .tel {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
@media (width <= 730px) {
  html.sec header .tel-ctn .tel {
    font-size: 200%;
  }
}
@media (width > 730px) {
  html.sec header .tel-ctn .tel {
    flex: 0 0 auto;
    font-size: 200%;
  }
}
html.sec header .tel-ctn .tel i {
  font-size: 150%;
  margin-right: 10px;
}
html.sec nav.pan {
  font-size: 80%;
  margin-bottom: 0.8rem;
}
html.sec main {
  background: url(/wp-content/themes/custom/img/0093.jpg) no-repeat center/cover;
  min-height: 85vh;
}
html.sec main section.pgtitle {
  background: url(/wp-content/themes/custom/img/dr/k.svg) no-repeat top right/contain;
}
@media (width > 730px) {
  html.sec main section.pgtitle {
    padding-top: 80px;
  }
}
html.sec main section.pgtitle h2 {
  line-height: 1;
  font-weight: 600;
  padding: 0.4em 0;
}
@media (width <= 730px) {
  html.sec main section.pgtitle h2 {
    font-size: clamp((320px) * (20 / 100), (100vw - 40px) * (20 / 100), (690px) * (20 / 100));
  }
}
@media (width > 730px) {
  html.sec main section.pgtitle h2 {
    font-size: clamp(calc(490px) * (11 / 100),calc(100vw - 240px) * (11 / 100),1060px * (11 / 100));
  }
}
html.sec main section.pgtitle nav.pan {
  padding-bottom: 40px;
}
html.sec main section.pgtitle nav.pan a {
  color: #707070;
}
html.sec main section.pgtitle nav.pan span.pan-line {
  display: inline-block;
  vertical-align: middle;
  width: 4em;
  position: relative;
  margin: 0 15px;
}
html.sec main section.pgtitle nav.pan span.pan-line::before {
  content: "";
  display: block;
  position: absolute;
  box-sizing: border-box;
  top: -2px;
  left: 0;
  right: 0;
  border-top: 1px solid black;
}
html.sec main section.pgtitle nav.anchors ul {
  justify-content: flex-start;
  padding-bottom: 20px;
}
html.sec main section.pgtitle nav.anchors ul li {
  flex: 0 0 auto;
  padding: 15px 0;
}
html.sec main section.pgtitle nav.anchors ul li:nth-child(1) a {
  padding: 0 15px 0 0 !important;
}
html.sec main section.pgtitle nav.anchors ul li + li a {
  border-left: 1px solid #707070;
}
html.sec main section.pgtitle nav.anchors a {
  display: block;
  font-size: 90%;
  padding: 0 15px;
}
html.sec main > .inr {
  position: relative;
}
@media (width > 730px) {
  html.sec main > .inr {
    padding-bottom: 80px;
  }
}
html.sec main > .inr > div {
  background: white;
}
@media (width <= 730px) {
  html.sec main > .inr > div {
    padding: 30px;
  }
}
@media (width > 730px) {
  html.sec main > .inr > div {
    padding: clamp(calc(490px) * (7 / 100),calc(100vw - 240px) * (7 / 100),1060px * (7 / 100));
  }
}
html.sec main section[id^=s] + section {
  margin-top: 4em;
}
html.sec main section[id^=s] h3 {
  padding-left: 1.5em;
  margin-bottom: 2em;
  position: relative;
}
html.sec main section[id^=s] h3::before {
  content: "";
  display: block;
  position: absolute;
  box-sizing: border-box;
  content: "・";
  right: calc(100% - 0.7em);
  top: 0.5em;
  font-size: 150%;
}
html.sec main section[id^=s] h3 strong, html.sec main section[id^=s] h3 span {
  display: block;
}
html.sec main section[id^=s] h3 strong {
  font-size: 200%;
  line-height: 1.5;
  font-weight: normal !important;
}
html.sec main section[id^=s] h3 span {
  color: #999;
}
html.sec main .pgtop {
  position: absolute;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
@media (width <= 730px) {
  html.sec main .pgtop {
    top: 100vh;
    right: 5px;
    bottom: 30px;
    width: 20px;
  }
}
@media (width > 730px) {
  html.sec main .pgtop {
    top: 80px;
    left: calc(100% - 120px);
    bottom: 80px;
    padding-left: 30px;
  }
}
html.sec main .pgtop p {
  position: sticky;
}
@media (width <= 730px) {
  html.sec main .pgtop p {
    bottom: 15vw;
  }
}
@media (width > 730px) {
  html.sec main .pgtop p {
    bottom: 30px;
  }
}
html.sec main .pgtop a {
  line-height: 2;
  font-size: 80%;
}/*# sourceMappingURL=site.css.map */