blockquote,
body,
dd,
dl,
dt,
fieldset,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
html,
iframe,
legend,
li,
ol,
p,
pre,
textarea,
ul {
  margin: 0;
  padding: 0
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: 500
}

ul {
  list-style: none
}

button,
input,
select {
  margin: 0
}

html {
  box-sizing: border-box
}

*,
:after,
:before {
  box-sizing: inherit
}

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

iframe {
  border: 0
}

table {
  border-collapse: collapse;
  border-spacing: 0
}

td,
th {
  padding: 0
}

*,
:after,
:before {
  box-sizing: border-box
}

hr {
  border: 0;
  border-top: 1px solid #ccc;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0
}

@font-face {
  font-family: Yu Gothic;
  font-weight: 100;
  src: local("Yu Gothic Medium")
}

@font-face {
  font-family: Yu Gothic;
  font-weight: 200;
  src: local("Yu Gothic Medium")
}

@font-face {
  font-family: Yu Gothic;
  font-weight: 300;
  src: local("Yu Gothic Medium")
}

@font-face {
  font-family: Yu Gothic;
  font-weight: 400;
  src: local("Yu Gothic Medium")
}

@font-face {
  font-family: Yu Gothic;
  font-weight: 700;
  src: local("Yu Gothic Bold")
}

@font-face {
  font-family: Helvetica Neue;
  font-weight: 100;
  src: local("Helvetica Neue Regular")
}

@font-face {
  font-family: Helvetica Neue;
  font-weight: 200;
  src: local("Helvetica Neue Regular")
}

body {
  color: #4c3501;
  font-family: Noto Sans JP, sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 400;
  line-height: 1.7;
  min-height: 100%;
  overflow-x: hidden;
  word-break: break-all
}

img {
  height: auto;
  max-width: 100%;
  transition: .3s;
  vertical-align: top
}

svg {
  height: 100%;
  width: 100%
}

img[srcset] {
  width: 100%
}

a,
img[srcset] {
  transition: .3s
}

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

.mincho {
  font-family: "Noto Serif", serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 700
}

.font-oswald {
  font-family: Oswald, sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 500
}

.inner {
  margin: 0 auto;
  max-width: 90%;
}

@media (max-width:767px) {
  .inner {
    max-width: 100%;
    padding-left: 2rem;
    padding-right: 2rem;
    width: 100%
  }
}

.sp-only {
  display: none
}

@media (max-width:767px) {
  .sp-only {
    display: block
  }
}

.pc-only {
  display: block
}

@media (max-width:767px) {
  .pc-only {
    display: none
  }
}

header .btn {
  background: #154b2d;
  border-radius: 2.4rem;
  box-shadow: 6px 4px 0 0 rgba(0, 0, 0, .1);
  color: #fff;
  cursor: pointer;
  display: block;
  font-size: clamp(22px, 2.5vw, 35px);
  font-weight: 700;
  height: clamp(76px, 7vw, 96px);
  line-height: clamp(76px, 7vw, 96px);
  max-width: 100%;
  position: relative;
  text-align: center;
  text-decoration: none;
  transition: all .3s ease 0s;
  width: clamp(320px, 39vw, 565px)
}

header .btn:after {
  background: url(../images/cta-arrow-g.svg);
  content: "";
  height: 24px;
  position: absolute;
  right: 3.2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 24px
}

@media (max-width:767px) {
  header .btn:after {
    height: 13px;
    right: 2rem;
    width: 13px
  }
}

header .btn:hover {
  box-shadow: none;
  transform: translateX(6px) translateY(4px)
}

header .btn2 {
  background: #154b2d;
  border-radius: 9999px;
  box-shadow: 5px 6px 0 0 rgba(46, 79, 82, .1);
  color: #fff;
  cursor: pointer;
  display: block;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  font-weight: 600;
  height: clamp(52px, 5vw, 72px);
  line-height: clamp(52px, 5vw, 72px);
  max-width: 100%;
  position: relative;
  text-align: center;
  text-decoration: none;
  transition: all .3s ease 0s;
  width: clamp(280px, 38vw, 452px)
}

header .btn2:after {
  background: url(../images/plan-arrow.svg) no-repeat 50%/contain;
  content: "";
  height: 24px;
  position: absolute;
  right: 3.2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 24px
}

@media (max-width:767px) {
  header .btn2:after {
    height: 13px;
    right: 2rem;
    width: 13px
  }
}

header .btn2:hover {
  box-shadow: none;
  transform: translateX(5px) translateY(5px)
}

.section__head {
  text-align: center
}

.section__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(24px, 2vw, 28px);
  font-weight: 700;
  letter-spacing: .05rem;
  line-height: 1.5
}

@media (max-width:767px) {
  .section__title {
    font-size: clamp(22px, 6.5vw, 24px);
    font-weight: 600;
    margin-top: -.5rem
  }
}

.section__lead {
  color: #f5f1e9;
  font-family: Oswald, sans-serif;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(45px, 4.5vw, 64px);
  font-weight: 500;
  letter-spacing: .04rem
}

@media (max-width:767px) {
  .section__lead {
    font-size: clamp(32px, 8vw, 48px);
    font-weight: 400
  }
}

.footer {
  background: #154b2d;
  padding-top: 8rem
}

@media (max-width:767px) {
  .footer {
    padding-top: 5.6rem
  }
}

@media (max-width:767px) {
  .footer__inner {
    max-width: 100%;
    width: 100%
  }
}

.footer__content {
  align-items: start;
  display: flex;
  gap: clamp(60px, 9vw, 130px);
  justify-content: start;
  padding-bottom: 5rem
}

@media (max-width:767px) {
  .footer__content {
    flex-direction: column;
    gap: 6rem
  }

  .footer .left {
    display: flex;
    justify-content: center;
    width: 100%
  }
}

@media (max-width:767px) and (max-width:767px) {
  .footer .left {
    display: block
  }
}

.footer__logo {
  width: clamp(170px, 21vw, 300px)
}

@media (max-width:767px) {
  .footer__logo {
    text-align: center
  }
}

.footer__logo a {
  transition: all .3s ease 0s
}

@media (max-width:767px) {
  .footer__logo a {
    display: block;
    width: 251px
  }
}

.footer__logo a:hover {
  opacity: .6
}

.footer__nav {
  align-items: start;
  display: flex;
  flex-direction: column;
  gap: 40px;
  justify-content: start
}

@media (max-width:767px) {
  .footer__nav {
    gap: 2.4rem
  }
}

.footer__nav .footer-nav {
  color: #fff;
  -moz-column-gap: 20px;
  column-gap: 20px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  row-gap: 3rem
}

@media (max-width:767px) {
  .footer__nav .footer-nav {
    gap: 2.4rem;
    grid-template-columns: 1fr
  }
}

.footer__nav .footer-nav li {
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 600;
  letter-spacing: .05rem;
  line-height: 1.8;
}

@media (max-width:767px) {
  .footer__nav .footer-nav li {
    font-size: 20px
  }
}

.footer__nav .footer-nav li.width {
  width: 20rem
}

.footer__nav .footer-nav li .footer-navLists li {
  font-weight: 400;
  line-height: 0
}

.footer__nav .footer-nav li .footer-navLists li:not(:first-child) {
  margin-top: 10px
}

.footer__nav .footer-nav li .footer-navLists li a {
  font-size: clamp(12px, 1.3vw, 14px);
  letter-spacing: .04rem;
  line-height: 1.6;
  transition: all .3s ease 0s
}

.footer__nav .footer-nav li .footer-navLists li a:hover {
  opacity: .6
}

.footer__bottom {
  align-items: center;
  background: #022010;
  color: #fff;
  display: flex;
  gap: 30px;
  height: 75px;
  justify-content: center
}

@media (max-width:767px) {
  .footer__bottom {
    align-items: start;
    flex-direction: column;
    gap: 5px;
    height: auto;
    padding: 2.5rem 2rem 7rem
  }
}

.footer__bottom a {
  font-size: clamp(12px, 1.3vw, 13px);
  transition: all .3s ease 0s
}

.footer__bottom a:hover {
  opacity: .6
}

.footer__bottom .copy {
  font-size: clamp(12px, 1.3vw, 13px)
}

.header {
  background: #fff;
}

.header__top {
  border-bottom: 1px solid #154b2d;
  overflow: hidden;
  padding-top: 8px;
  transition: opacity .3s ease, height .3s ease
}

@media screen and (max-width:960px) {
  .header__center--inner {
    margin-left: 5px
  }
}

@media (max-width:767px) {
  .header__top {
    display: none
  }
}

.header__top.hide {
  height: 0;
  opacity: 0
}

.header__top--ul {
  align-items: center;
  display: flex;
  justify-content: center;
}

.header__top--ul li {
  padding-right: 0.25rem;
  position: relative
}

.header__top--ul li:not(:last-child):after {
  background: #ebe8e8;
  content: "";
  height: 22px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px
}

.header__top--ul li a {
  border-radius: 1rem 1rem 0 0;
  color: #154b2d;
  display: block;
  font-size: clamp(0.875rem, 1.4vw, 1.125rem);
  font-weight: 500;
  letter-spacing: .2rem;
  line-height: 2;
  padding: 0.25rem 3rem;
  transition: all .3s ease 0s
}

.header__top--ul li a.active,
.header__top--ul li a:hover {
  background: #154b2d;
  color: #fff
}

.header__sticky {
  padding-bottom: 0.5rem
}

@media (max-width:767px) {
  .header__sticky {
    display: none
  }
}

.header__center {
  align-items: center;
  display: flex;
  justify-content: start;
  padding-left: 3rem;
  padding-right: 2rem;
  padding-top: 0.75rem
}

.header__center .headerLogo {
  transition: all .3s ease 0s;
  width: clamp(140px, 16vw, 225px)
}

.header__center .headerLogo:hover {
  opacity: .6
}

.header__center--inner {
  gap: clamp(15px, 2vw, 28px);
  margin-left: clamp(20px, 5vw, 90px)
}

.header__center--inner,
.header__center--inner .btns {
  align-items: center;
  display: flex;
  justify-content: space-between
}

.header__center--inner .btns {
  gap: 1rem
}

.header__center--inner .btns .header__btn {
  align-items: center;
  box-shadow: none;
  display: flex;
  font-size: clamp(0.75rem, 1.6vw, 1.25rem);
  gap: 1rem;
  height: clamp(2.5rem, 5vw, 4rem);
  justify-content: center;
  letter-spacing: .05rem;
  line-height: clamp(2.5rem, 5vw, 4rem);
  width: clamp(115px, 14.5vw, 200px)
}

.header__center--inner .btns .header__btn .img {
  line-height: 1;
  width: clamp(20px, 3vw, 40px)
}

.header__center--inner .btns .header__btn:after {
  display: none
}

.header__center--inner .btns .header__btn--oisogi {
  background: #ce0015
}

.header__center--inner .btns .header__btn:hover {
  box-shadow: none
}

.header__center--tel .flex {
  align-items: center;
  display: flex;
  gap: 1.25rem;
  justify-content: start
}

.header__center--tel .flex .tags {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: center
}

.header__center--tel .flex .tags .tag {
  border: 1px solid #154b2d;
  border-radius: 0.25rem;
  color: #154b2d;
  font-size: clamp(0.75rem, 1.2vw, 1.125rem);
  font-weight: 500;
  line-height: 1.2;
  padding: 0.25rem 0.5rem;
  text-align: center
}

.header__center--tel .flex .tel-flex {
  align-items: center;
  color: #154b2d;
  display: flex;
  font-family: Oswald0jk, sans-serif;
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 500;
  gap: 1rem;
  justify-content: center;
  letter-spacing: .3rem;
  line-height: 1;
  text-align: center
}

.header__center--tel .flex .tel-flex .img {
  margin-top: 1rem
}

.header__center--tel .flex .tel-flex .img img {
  line-height: 1em;
  vertical-align: bottom;
  width: clamp(30px, 4vw, 57px)
}

.header__bottom {
  padding-top: 1.5rem
}

.header__bottom--nav .header-nav {
  align-items: center;
  display: flex;
  justify-content: center
}

.header__bottom--nav .header-nav li {
  padding-right: 3px;
  position: relative
}

.header__bottom--nav .header-nav li:not(:last-child):after {
  background: #ebe8e8;
  content: "";
  height: 22px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px
}

.header__bottom--nav .header-nav li a {
  align-items: center;
  display: flex;
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  gap: clamp(0.25rem, 1.3vw, 0.75rem);
  justify-content: center;
  padding: 0 clamp(0.5rem, 1.3vw, 3.1rem);
  transition: all .3s ease 0s
}

.header__bottom--nav .header-nav li a .img {
  line-height: 1;
  width: clamp(20px, 2vw, 28px)
}

.header__bottom--nav .header-nav li a:hover {
  opacity: .6
}

.drawer {
  bottom: 0;
  display: none;
  left: 0;
  position: fixed;
  width: 100%;
  z-index: 100
}

@media (max-width:767px) {
  .drawer {
    display: block
  }
}

.drawer__menu {
  border-top: 3px solid #b98f2d;
  max-height: 57px;
  position: relative;
  z-index: 101
}

.drawer__menu--nav {
  align-items: stretch;
  display: flex;
  justify-content: space-between
}

.drawer__menu--nav li {
  width: 20%
}

.drawer__menu--nav li a {
  background: #154b2d;
  color: #fff;
  display: block;
  font-size: clamp(12px, 2.3vw, 14px);
  height: 100%;
  line-height: 1.3;
  padding: 7.5px 0 5.5px;
  text-align: center
}

.drawer__menu--nav li a .img {
  margin-left: auto;
  margin-right: auto;
  width: 20px
}

.drawer__menu--nav li .open {
  background: #154b2d;
  color: #fff;
  cursor: pointer;
  display: block;
  font-size: clamp(12px, 2.3vw, 14px);
  height: 100%;
  line-height: 1.3;
  padding: 7.5px 0 5.5px;
  text-align: center
}

.drawer__menu--nav li .open .img {
  margin-left: auto;
  margin-right: auto;
  width: 20px
}

.drawer__menu--nav li .open.is-active {
  background: #b98f2d
}

.drawer__content {
  background: #fff;
  border-radius: 16px 16px 0 0;
  height: 100%;
  opacity: 0;
  padding: 30px 0;
  pointer-events: none;
  position: fixed;
  right: 0;
  top: 3.4rem;
  transform: translateY(100%);
  transition: all .6s ease 0s;
  visibility: hidden;
  width: 100%
}

.drawer__content.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible
}

.drawer__content--inner {
  height: 100%;
  overflow: scroll;
  padding-bottom: 90px;
  padding-left: 2rem;
  padding-right: 2rem
}

.drawer__content--nav li:not(:first-child) {
  margin-top: 32px
}

.drawer__content--nav li .drawer-title {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .04rem;
  line-height: 1.7
}

.drawer__content--nav li .drawer-title__sub {
  font-size: 20px
}

.drawer__content--navLists {
  margin-top: 16px
}

.drawer__content--navLists li:not(:first-child) {
  margin-top: 10px
}

.drawer__content--navLists li .drawer__btn {
  align-items: center;
  background: #fff;
  border: 2px solid #f2efe9;
  border-radius: 16px;
  box-shadow: 4px 4px 0 0 rgba(0, 0, 0, .1);
  color: #4c3501;
  display: flex;
  font-size: 20px;
  gap: 2rem;
  justify-content: start;
  margin-left: auto;
  margin-right: auto;
  max-width: 400px;
  padding: 1.2rem 2rem;
  width: 100%
}

.drawer__content--navLists li .drawer__btn:after {
  background: url(../images/icon-btnArrow.svg) no-repeat 50%/contain;
  height: 10px;
  position: absolute;
  right: 2rem;
  width: 6px
}

.drawer__content--navLists li .drawer__btn .img {
  line-height: 1;
  width: 50px
}

.drawer__content--navLists li .drawer__btn--tel {
  background: #ce0015;
  border: none;
  color: #fff;
  font-weight: 500;
  gap: 1.2rem;
  height: 82px
}

.drawer__content--navLists li .drawer__btn--tel:after {
  background: url(../images/icon-btnArrow_w.svg) no-repeat 50%/contain
}

.drawer__content--navLists li .drawer__btn--tel .img {
  width: 57px
}

.drawer__content--navLists li .drawer__btn--tel .text {
  font-size: clamp(18px, 5vw, 20px);
  line-height: 1.3;
  text-align: left
}

.drawer__content--navLists li .drawer__btn--tel .text .sm {
  display: block;
  font-size: clamp(10px, 3.2vw, 12px);
  letter-spacing: .05rem;
  line-height: 1.8
}

.drawer__content--navLists li .drawer__btn--tel .text .mid {
  font-size: clamp(12px, 4vw, 15px)
}

.drawer__content--navLists li .drawer__btn--oisogi {
  border: 2px solid #ce0015;
  color: #ce0015;
  font-size: clamp(18px, 5vw, 20px);
  gap: 3.9rem;
  height: 58px;
  line-height: 1.6
}

.drawer__content--navLists li .drawer__btn--oisogi:after {
  background: url(../images/icon-btnArrow_r.svg) no-repeat 50%/contain
}

.drawer__content--navLists li .drawer__btn--oisogi .img {
  width: 40px
}

.drawer__content--navLists li .drawer__btn--mail {
  background: #154b2d;
  color: #fff;
  gap: 1rem;
  height: 82px
}

.drawer__content--navLists li .drawer__btn--mail:after {
  background: url(../images/icon-btnArrow_w.svg) no-repeat 50%/contain
}

.drawer__content--navLists li .drawer__btn--mail .img {
  transform: rotate(-7deg);
  width: 34px
}

.drawer__content--navLists li .drawer__btn--mail .text {
  font-size: clamp(18px, 5.2vw, 20px);
  font-weight: 500;
  line-height: 1.3;
  text-align: left
}

.drawer__content--navLists li .drawer__btn--mail .text .sm {
  display: block;
  font-size: clamp(10px, 3.2vw, 12px);
  letter-spacing: .05rem;
  line-height: 1.8
}

.drawer__content--navLists li .drawer__btn--mail .text .mid {
  font-size: clamp(12px, 4vw, 15px)
}

.drawer-bg {
  background: rgba(0, 0, 0, .3);
  height: 100%;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  transition: all .3s ease 0s;
  visibility: hidden;
  width: 100%;
  z-index: 98
}

.drawer-bg.open {
  opacity: 1;
  visibility: visible
}
