@charset "UTF-8";
* {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

.enfont {
  font-family: "Outfit", sans-serif;
}

.zenkaku {
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0 0 0 4rem;
  background: #fff;
  height: 10.5rem;
}
@media only screen and (max-width: 767px) {
  .header {
    height: 12rem;
  }
}
.header__wrapper {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
}
.header__contact {
  margin-left: auto;
  display: flex;
  align-items: center;
  height: 100%;
}
@media only screen and (max-width: 767px) {
  .header__contact {
    display: none;
  }
}
.header__contact--tel {
  display: flex;
  align-items: center;
  margin-right: 2.7rem;
}
.header__contact--tel .tel_box {
  margin: 0 1.6rem 0.7rem 0;
}
.header__contact--tel .tel_box p {
  text-align: center;
  color: #ff0014;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.421;
  letter-spacing: 0.1em;
}
.header__contact--mail {
  width: 12rem;
  background: #ff9600;
  height: 100%;
}
.header__contact--mail a {
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: center;
  flex-wrap: wrap;
  height: 100%;
}
.header__contact--mail a img {
  margin-bottom: 0.8rem;
}
.header__contact--mail a span {
  width: 100%;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.33;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  display: block;
}
.header__contact .num_box {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.header__contact .num_box img {
  width: 8rem;
  margin-right: 2.2rem;
}
.header__contact .num_box a {
  font-size: 5rem;
  font-weight: 300;
  line-height: 0.8;
  color: #ff0014;
  letter-spacing: 0.066em;
}
.header__contact .num_box span {
  display: block;
  text-align: center;
  margin-top: 1rem;
  color: #000;
  font-size: 1.6rem;
  font-weight: 400;
}
.header__logo {
  width: 36.6rem;
}
@media only screen and (max-width: 767px) {
  .header__logo {
    width: 48.8rem;
  }
}

.cta {
  position: relative;
  padding: 8rem 0 9rem;
}
@media only screen and (max-width: 767px) {
  .cta {
    margin-top: -4.6rem;
    padding-bottom: 2rem;
  }
}
.cta::before {
  content: "";
  background: #fff4dd;
  position: absolute;
  top: -2rem;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  .cta::before {
    height: 102%;
  }
}
.cta .inner {
  width: 160rem;
  max-width: 100%;
  margin: auto;
  padding: 0 0.4rem 0 2.5rem;
}
@media print, screen and (min-width: 768px) {
  .cta .inner {
    display: flex;
    align-items: center;
  }
}
@media only screen and (max-width: 767px) {
  .cta .inner {
    width: 60.7rem;
    padding: 0;
    margin: auto;
  }
  .cta .inner::after {
    content: "";
    background: url("../img/home/sp/cta-bg.png") no-repeat top right/100%;
    width: 48rem;
    height: 19.8rem;
    display: block;
    margin: 1rem auto 0;
  }
}
.cta .phone {
  width: 15.6rem;
  margin-right: 1.6rem;
  position: relative;
  top: -0.8rem;
  left: 0.3rem;
}
@media only screen and (max-width: 767px) {
  .cta .phone {
    display: none;
  }
}
.cta .pc {
  margin-left: 1rem;
  width: 19.3rem;
}
@media only screen and (max-width: 767px) {
  .cta .pc {
    display: none;
  }
}
.cta .telephone,
.cta .contact-us {
  width: 58.7rem;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .cta .telephone,
.cta .contact-us {
    width: 100%;
  }
}
.cta .telephone::before, .cta .telephone::after,
.cta .contact-us::before,
.cta .contact-us::after {
  content: "";
  position: absolute;
  z-index: 1;
}
.cta .telephone a,
.cta .contact-us a {
  position: relative;
  padding-left: 6rem;
  border-radius: 0 4rem 0 4rem;
}
.cta .telephone .box-ttl,
.cta .contact-us .box-ttl {
  position: absolute;
  bottom: 100%;
  font-size: 5rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 0.85;
  display: block;
  width: 100%;
  left: 0;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .cta .telephone {
    margin-bottom: 4.6rem;
  }
}
.cta .telephone::before, .cta .telephone:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
}
.cta .telephone::before {
  border-color: #e6e6e6 transparent transparent transparent;
  border-width: 10rem 5rem 0px 0px;
  top: 0;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .cta .telephone::before {
    border-width: 13.5rem 6rem 0 0;
  }
}
.cta .telephone::after {
  border-color: transparent transparent #e6e6e6 transparent;
  border-width: 0px 0px 10rem 5rem;
  right: 0;
  bottom: 0;
}
@media only screen and (max-width: 767px) {
  .cta .telephone::after {
    border-width: 0 0 13.5rem 6rem;
  }
}
.cta .telephone .box-ttl {
  color: rgba(255, 0, 20, 0.15);
}
.cta .telephone a {
  display: flex;
  align-items: center;
  background: #fff;
  padding: 1.3rem 4rem 2.1rem 6.2rem;
  border: 1px solid #e6e6e6;
  justify-content: center;
}
@media screen and (max-width: 1599px) {
  .cta .telephone a {
    padding: 1.3rem 3rem 2.1rem 2.2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .cta .telephone a {
    pointer-events: none;
  }
}
@media only screen and (max-width: 767px) {
  .cta .telephone a {
    padding: 4.7rem 3rem 3.9rem 3.3rem;
  }
}
.cta .telephone a .icon {
  width: 8rem;
  margin-right: 1.5rem;
}
@media screen and (max-width: 1599px) {
  .cta .telephone a .icon {
    margin-right: 2rem;
  }
}
@media only screen and (max-width: 767px) {
  .cta .telephone a .icon {
    display: none;
  }
}
.cta .telephone a .btn-content {
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .cta .telephone a .btn-content {
    width: 100%;
  }
}
.cta .telephone a .btn-content .ttl img {
  width: 33.3rem;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .cta .telephone a .btn-content .ttl img {
    width: 43.3rem;
    margin-bottom: 1.3rem;
  }
}
.cta .telephone a .btn-content .num {
  font-size: 5rem;
  font-weight: 400;
  color: #ff0014;
  line-height: 0.8;
  margin: 1.5rem 0 1rem;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 1400px) and (min-width: 768px) {
  .cta .telephone a .btn-content .num {
    font-size: 3.17vw;
  }
}
@media only screen and (max-width: 767px) {
  .cta .telephone a .btn-content .num {
    font-size: 6.293rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    letter-spacing: 0.06em;
    margin-bottom: 0;
    flex-wrap: wrap;
    margin-top: 1.4rem;
  }
  .cta .telephone a .btn-content .num::before {
    content: "";
    width: 8rem;
    height: 8rem;
    background: url("../img/home/sp/tel-icon-sp.svg") no-repeat center/cover;
  }
  .cta .telephone a .btn-content .num::after {
    content: "ここを押すとお電話できます";
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 2.8rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    background: #ff0014;
    text-align: center;
    width: 40.7rem;
    line-height: 5.4rem;
    display: block;
    margin: auto;
  }
}
.cta .telephone a .btn-content span {
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.07em;
}
@media only screen and (max-width: 767px) {
  .cta .telephone a .btn-content span {
    letter-spacing: 0.05rem;
    font-size: 2.8rem;
    display: block;
    margin-top: 2rem;
  }
}
.cta .contact-us {
  padding: 0;
}
@media print, screen and (min-width: 768px) {
  .cta .contact-us {
    margin-left: 2.2rem;
  }
}
.cta .contact-us::before, .cta .contact-us:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
}
.cta .contact-us::before {
  border-color: #ffb141 transparent transparent transparent;
  border-width: 10rem 5rem 0px 0px;
  top: 0;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .cta .contact-us::before {
    border-width: 13.5rem 6rem 0 0;
  }
}
.cta .contact-us::after {
  border-color: transparent transparent #f9be00 transparent;
  border-width: 0px 0px 10rem 5rem;
  right: 0;
  bottom: 0;
}
@media only screen and (max-width: 767px) {
  .cta .contact-us::after {
    border-width: 0 0 13.5rem 6rem;
  }
}
.cta .contact-us .box-ttl {
  color: rgba(255, 150, 0, 0.3);
}
.cta .contact-us a {
  background: #FF9600;
  background: linear-gradient(90deg, rgb(255, 150, 0) 0%, rgb(249, 170, 0) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.2rem 4rem 3.5rem 6.3rem;
}
@media only screen and (max-width: 767px) {
  .cta .contact-us a {
    justify-content: flex-start;
    padding: 4.2rem 6rem 4.1rem 7.7rem;
  }
}
.cta .contact-us a::after {
  content: "";
  width: 1.2rem;
  height: 1.2rem;
  border-top: 1.5px solid #fff;
  border-right: 1.5px solid #fff;
  transform: rotate(45deg);
  margin-left: 2.7rem;
}
@media only screen and (max-width: 767px) {
  .cta .contact-us a::after {
    border-top-width: 2px;
    border-right-width: 2px;
    margin-left: auto;
    width: 1.8rem;
    height: 1.8rem;
  }
}
.cta .contact-us a .icon {
  margin-right: 3rem;
  width: 8.4rem;
}
@media only screen and (max-width: 767px) {
  .cta .contact-us a .icon {
    width: 10.4rem;
    margin-right: 5rem;
  }
}
@media only screen and (max-width: 767px) {
  .cta .contact-us a .ttl {
    width: 23rem;
  }
}

.footer {
  background: #ff0014;
  padding: 0.3rem 0;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .footer {
    padding-bottom: 19rem;
  }
}
.footer .inner {
  padding: 0;
  width: 120rem;
  max-width: 100%;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .footer .inner {
    display: flex;
    align-items: center;
  }
}
.footer--logo {
  width: 50.2rem;
}
@media only screen and (max-width: 767px) {
  .footer--logo {
    width: 63rem;
    margin-bottom: 7rem;
  }
  .footer--logo img {
    width: 100%;
  }
}
.footer .copyright {
  margin: 0 auto;
}
.footer .copyright p small {
  display: block;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .footer .copyright p small {
    font-size: 2.1rem;
  }
}
.footer .page-top {
  position: absolute;
  right: 5rem;
  bottom: 3rem;
  writing-mode: vertical-rl;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .footer .page-top {
    bottom: auto;
    top: -6rem;
    right: 3rem;
  }
}
.footer .page-top::before {
  content: "";
  width: 3px;
  height: 100%;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: scrollUp 2s infinite;
          animation: scrollUp 2s infinite;
}
.footer .page-top::after {
  content: "";
  width: 3px;
  height: 18rem;
  background: #ff0014;
  display: block;
  margin-right: 1rem;
}
.footer .page-top .enfont {
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  text-align: right;
  display: block;
}

@-webkit-keyframes scrollUp {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
}

@keyframes scrollUp {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
}
.floating {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 2;
}
@media print, screen and (min-width: 768px) {
  .floating {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  .floating {
    transition: 0.3s;
    opacity: 0;
    visibility: hidden;
  }
  .floating.view {
    opacity: 1;
    visibility: visible;
  }
}
.floating ul {
  display: flex;
  align-items: stretch;
}
.floating ul li.tel {
  width: 42.9rem;
  border: 1px solid #ff0014;
  background: #fff;
}
.floating ul li.mail {
  width: 34.3rem;
  background: #ff9600;
}
.floating ul li.mail p {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
  line-height: 1.33;
}
.floating ul li a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1.3rem 0rem 1.2rem 2.8rem;
  height: 100%;
}
.floating ul li .icon {
  width: 7rem;
  margin-right: 1.8rem;
}
.floating ul li .num {
  font-size: 3.7rem;
  font-weight: 400;
  color: #ff0014;
  letter-spacing: 0.11em;
}
.floating ul li .title {
  display: block;
  color: #ff0014;
  letter-spacing: 0.04em;
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 0.8rem;
}
.floating ul li small {
  color: #000;
  font-size: 1.8rem;
  font-weight: 400;
  display: block;
  margin-top: 0.5rem;
}
/*# sourceMappingURL=common.css.map */