@font-face {
  font-family: "swiper-icons";
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");
  font-weight: 400;
  font-style: normal
}

:root {
  --swiper-theme-color: #007aff
}

.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  z-index: 1
}

.swiper-vertical>.swiper-wrapper {
  flex-direction: column
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box
}

.swiper-android .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0)
}

.swiper-pointer-events {
  touch-action: pan-y
}

.swiper-pointer-events.swiper-vertical {
  touch-action: pan-x
}

.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform
}

.swiper-slide-invisible-blank {
  visibility: hidden
}

.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto
}

.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height
}

.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden
}

.swiper-3d,
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px
}

.swiper-3d .swiper-wrapper,
.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-cube-shadow {
  transform-style: preserve-3d
}

.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10
}

.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, .15)
}

.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))
}

.swiper-css-mode>.swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none
}

.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar {
  display: none
}

.swiper-css-mode>.swiper-wrapper>.swiper-slide {
  scroll-snap-align: start start
}

.swiper-horizontal.swiper-css-mode>.swiper-wrapper {
  scroll-snap-type: x mandatory
}

.swiper-vertical.swiper-css-mode>.swiper-wrapper {
  scroll-snap-type: y mandatory
}

.swiper-centered>.swiper-wrapper::before {
  content: "";
  flex-shrink: 0;
  order: 9999
}

.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child {
  -webkit-margin-start: var(--swiper-centered-offset-before);
  margin-inline-start: var(--swiper-centered-offset-before)
}

.swiper-centered.swiper-horizontal>.swiper-wrapper::before {
  height: 100%;
  width: var(--swiper-centered-offset-after)
}

.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child {
  -webkit-margin-before: var(--swiper-centered-offset-before);
  margin-block-start: var(--swiper-centered-offset-before)
}

.swiper-centered.swiper-vertical>.swiper-wrapper::before {
  width: 100%;
  height: var(--swiper-centered-offset-after)
}

.swiper-centered>.swiper-wrapper>.swiper-slide {
  scroll-snap-align: center center;
  scroll-snap-stop: always
}

body {
  margin: 0;
  padding: 0;
  border: none
}

img,
div,
p,
blockquote,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd,
form,
fieldset,
textarea,
address,
main,
article,
aside,
figure,
footer,
header,
hgroup,
nav,
section {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  text-decoration: none;
  list-style-type: none
}

main,
article,
aside,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit
}

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

th,
td {
  text-align: left;
  vertical-align: top
}

caption {
  text-align: left
}

a,
a:focus,
a:hover,
a:active {
  outline: 0
}

input,
input:focus,
input:hover,
input:active,
textarea,
textarea:focus,
textarea:hover,
textarea:active {
  outline: 0
}

img {
  vertical-align: top
}

html {
  font-size: 10px
}

@media only screen and (min-width: 1500px) {
  html {
    font-size: 12.5px
  }
}

body {
  color: #000;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.4rem;
  line-height: 2;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale
}

@media only screen and (max-width: 1023px) {
  html {
    font-size: 2.57vw
  }

  body {
    line-height: 1.72
  }
}

::-moz-selection {
  background: #14913A;
  color: #fff
}

::selection {
  background: #14913A;
  color: #fff
}

@keyframes anchor {
  0% {
    background-position: right bottom;
    background-size: 100% auto
  }

  50% {
    background-position: right bottom;
    background-size: 0% auto
  }

  50.1% {
    background-position: left bottom;
    background-size: 0% auto
  }

  100% {
    background-position: left bottom;
    background-size: 100% auto
  }
}

a {
  background: linear-gradient(to top, currentColor 0px, currentColor 1.1px, transparent 1px) no-repeat right bottom;
  background-size: 100% auto;
  color: inherit;
  text-decoration: none
}

a[href^=tel] {
  background: none;
  cursor: default
}

@media(hover: hover) {
  a:hover {
    animation: anchor .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
  }
}

img {
  width: 100%;
  height: auto
}

input[type=text],
input[type=tel],
input[type=email],
input[type=password],
textarea {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: #000;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}

input[type=text]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=password]::-moz-placeholder,
textarea::-moz-placeholder {
  color: #999
}

input[type=text]:-moz-placeholder-shown,
input[type=tel]:-moz-placeholder-shown,
input[type=email]:-moz-placeholder-shown,
input[type=password]:-moz-placeholder-shown,
textarea:-moz-placeholder-shown {
  color: #999
}

input[type=text]::placeholder,
input[type=text]:placeholder-shown,
input[type=tel]::placeholder,
input[type=tel]:placeholder-shown,
input[type=email]::placeholder,
input[type=email]:placeholder-shown,
input[type=password]::placeholder,
input[type=password]:placeholder-shown,
textarea::placeholder,
textarea:placeholder-shown {
  color: #999
}

input[type=text]::-webkit-input-placeholder,
input[type=tel]::-webkit-input-placeholder,
input[type=email]::-webkit-input-placeholder,
input[type=password]::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #999
}

input[type=text]:-moz-placeholder,
input[type=tel]:-moz-placeholder,
input[type=email]:-moz-placeholder,
input[type=password]:-moz-placeholder,
textarea:-moz-placeholder {
  color: #999
}

input[type=text]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=password]::-moz-placeholder,
textarea::-moz-placeholder {
  color: #999
}

input[type=text]:-ms-input-placeholder,
input[type=tel]:-ms-input-placeholder,
input[type=email]:-ms-input-placeholder,
input[type=password]:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #999
}

input::-ms-clear {
  visibility: hidden
}

input::-ms-reveal {
  visibility: hidden
}

select {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  color: #000;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  outline: 0;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}

select::-ms-expand {
  display: none
}

button {
  box-sizing: border-box;
  outline: 0;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}

.symbols {
  display: none;
  position: absolute;
  top: 0;
  left: 0
}

.header {
  display: flex;
  align-items: center;
  position: fixed;
  top: 2.5rem;
  right: 2.5rem;
  left: 2.5rem;
  z-index: 10
}

.header__logo {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: filter, -webkit-clip-path;
  transition-property: filter, clip-path;
  transition-property: filter, clip-path, -webkit-clip-path;
  width: 29.4rem;
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)
}

.header__logo a {
  display: block;
  position: relative;
  background: none
}

.header__logo a::before {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: url("../imgs/common/logo.svg") no-repeat center center;
  background-size: contain;
  opacity: 0;
  filter: brightness(0) invert(1)
}

.header__logo a img {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
}

.header__menu {
  display: none
}

.header__nav {
  margin-left: auto
}

.header .h-nav {
  display: flex;
 font-size: 1.5rem;
}

.header .h-nav__list {
  display: flex;
  padding: 0 2.5rem;
  line-height: 1.5;
  font-weight: bold;
}

.header .h-nav__list .nav-top {
  display: none
}

.header .h-nav__list li.active a .c-drawline {
  background-position: left bottom;
  background-size: 100% auto
}

.header .h-nav__list a {
  transition: color .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  display: flex;
  align-items: center;
  height: 4.2rem;
  padding: 0 1.5rem;
  background: none
}

.header .h-nav__list .c-arw {
  display: none
}

.header .h-nav__cv {
  display: flex;
  -moz-column-gap: 1.5rem;
  column-gap: 1.5rem;
  font-weight: bold;
  line-height: 1.5
}

.header .h-nav__cv a {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: border-color, background, color;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 13rem;
  height: 4.2rem;
  padding-bottom: .2rem;
  border: #14913A solid 1px;
  border-radius: 2.1rem;
  background: #14913A;
  color: #fff
}

.header .h-nav__cv a .txt dd {
  display: none
}

.header .h-nav__cv a .c-arw {
  display: none
}

@media(hover: hover) {
  .header .h-nav__cv a:hover {
    background: none;
    color: #14913A
  }
}

.header .h-nav__cv a span {
  display: block
}

.header.scrolled .header__logo {
  -webkit-clip-path: polygon(0% 0%, 5.5rem 0%, 5.5rem 100%, 0% 100%);
  clip-path: polygon(0% 0%, 5.5rem 0%, 5.5rem 100%, 0% 100%)
}

.header.color-white .header__logo a::before {
  opacity: 1
}

.header.color-white .header__logo a img {
  opacity: 0
}

.header.color-white .h-nav__list a {
  color: #fff
}

.header.color-white .h-nav__cv a {
  border-color: #fff;
  background: none
}

@media(hover: hover) {
  .header.color-white .h-nav__cv a:hover {
    background: #fff;
    color: #000
  }
}

@media only screen and (max-width: 1199px) {
  .header .h-nav__list {
    padding: 0 .8rem 0 0
  }

  .header .h-nav__list a {
    padding: 0 .8rem
  }

  .header .h-nav__cv {
    -moz-column-gap: .8rem;
    column-gap: .8rem
  }

  .header .h-nav__cv a {
    width: 10rem
  }
}

@media only screen and (max-width: 1023px) {
  .header {
    position: static
  }

  .header__logo {
    position: fixed;
    top: 2rem;
    left: 2rem;
    z-index: 11;
    width: 24.5rem
  }

  .header__menu {
    display: block;
    overflow: hidden;
    text-indent: -5260px;
    transition: border-color .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    box-sizing: border-box;
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    z-index: 11;
    width: 5.5rem;
    height: 5.5rem;
    margin: 0;
    padding: 0;
    border: #14913A solid 1px;
    border-radius: 50%;
    background: #14913A
  }

  .header__menu .line {
    display: block;
    position: absolute;
    left: calc(50% - 1.2rem);
    width: 2.4rem;
    height: 2px;
    margin-top: -1px;
    background: #fff
  }

  .header__menu .line:nth-child(1) {
    top: calc(50% - .8rem)
  }

  .header__menu .line:nth-child(2) {
    top: 50%
  }

  .header__menu .line:nth-child(3) {
    top: calc(50% + .8rem)
  }

  .header__nav {
    transition: visibility 0s linear .4s, -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition: visibility 0s linear .4s, clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition: visibility 0s linear .4s, clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s, -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    visibility: hidden;
    overflow: auto;
    position: fixed;
    inset: 0;
    z-index: 10;
    background: #14913A;
    overscroll-behavior: none;
    -webkit-clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
    pointer-events: none
  }

  .header .h-nav {
    display: block;
    padding: 12rem 3rem
  }

  .header .h-nav__list {
    display: block;
    padding: 0;
    border-top: rgba(255, 255, 255, .4) solid 1px;
    font-size: 1.9rem
  }

  .header .h-nav__list li {
    border-bottom: rgba(255, 255, 255, .4) solid 1px
  }

  .header .h-nav__list .nav-top {
    display: block
  }

  .header .h-nav__list a {
    justify-content: space-between;
    height: auto;
    padding: 2rem 0;
    color: #fff
  }

  .header .h-nav__list .c-drawline {
    background: none
  }

  .header .h-nav__list .c-arw {
    display: flex;
    width: 2.6rem;
    margin-left: 2rem
  }

  .header .h-nav__list .c-arw::before {
    border: #fff solid 1px
  }

  .header .h-nav__list .c-arw .arw {
    width: 1.1rem;
    fill: #fff
  }

  .header .h-nav__cv {
    display: flex;
    flex-direction: column;
    row-gap: 2rem;
    margin-top: 4rem;
    font-size: 1.3rem;
    font-weight: 400
  }

  .header .h-nav__cv a {
    justify-content: space-between;
    width: auto;
    height: 10rem;
    padding: 0 2rem 0 2.5rem;
    border: none;
    border-radius: 1rem;
    background: #fff;
    color: #000
  }

  .header .h-nav__cv a .txt dt {
    margin-bottom: .5rem;
    color: #14913A;
    font-size: 1.9rem;
    font-weight: 500
  }

  .header .h-nav__cv a .txt dd {
    display: block
  }

  .header .h-nav__cv a .c-arw {
    display: flex;
    width: 2.6rem;
    margin-left: 2rem
  }

  .header .h-nav__cv a .c-arw::before {
    border: #14913A solid 1px
  }

  .header .h-nav__cv a .c-arw .arw {
    width: 1.1rem;
    fill: #14913A
  }
}

@media only screen and (max-width: 1023px)and (hover: hover) {
  .header .h-nav__cv a:hover {
    background: #fff;
    color: #000
  }
}

@media only screen and (max-width: 1023px) {
  .header.scrolled .header__logo {
    -webkit-clip-path: polygon(0% 0%, 4.5rem 0%, 4.5rem 100%, 0% 100%);
    clip-path: polygon(0% 0%, 4.5rem 0%, 4.5rem 100%, 0% 100%)
  }

  .header.color-white .h-nav__list a {
    color: #fff
  }

  .header.color-white .h-nav__cv a {
    background: #fff
  }

  .header.nav-open .header__logo {
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)
  }

  .header.nav-open .header__logo a::before {
    opacity: 1
  }

  .header.nav-open .header__logo a img {
    opacity: 0
  }

  .header.nav-open .header__menu {
    border-color: #fff
  }

  .header.nav-open .header__menu .line:nth-child(1) {
    transform: rotate(45deg);
    top: 50%
  }

  .header.nav-open .header__menu .line:nth-child(2) {
    opacity: 0
  }

  .header.nav-open .header__menu .line:nth-child(3) {
    transform: rotate(-45deg);
    top: 50%
  }

  .header.nav-open .header__nav {
    transition: visibility 0s linear 0s, -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition: visibility 0s linear 0s, clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition: visibility 0s linear 0s, clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s, -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    visibility: visible;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    pointer-events: auto
  }
}

.main {
  position: relative
}

.main__head {
  position: relative;
  z-index: 1;
  padding-top: 16rem;
  margin-right: max(5.5rem, (100% - 106rem)/2);
  margin-left: max(5.5rem, (100% - 106rem)/2)
}

.main__headAnclinks.c-anclinks {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 24rem;
  padding-top: 4rem;
  padding-right: 3rem;
  padding-left: 5.5rem;
  background: #fff
}

.main__breadcrumbs {
  display: flex;
  margin-bottom: 8rem;
  font-size: 1.2rem;
  line-height: 1.5;
  white-space: nowrap
}

.main__breadcrumbs li {
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis
}

.main__breadcrumbs li:not(:last-child) {
  flex-shrink: 0;
  width: auto;
  padding-right: 1.5rem;
  margin-right: 1.5rem
}

.main__breadcrumbs li:not(:last-child)::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - .6rem);
  right: 0;
  width: 1px;
  height: 1.2rem;
  background: #e0e0e0
}

.main__breadcrumbs li a {
  color: #a7a7a7
}

.main__ttl {
  padding-bottom: 12rem
}

.main__ttl .en {
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 8rem;
  font-weight: 600;
  line-height: 1.2
}

.main__ttl .ja {
  margin-top: .5rem;
  color: #14913A;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5
}

.main__eyecatch {
  --y: 0;
  display: block;
  overflow: hidden;
  position: relative;
  z-index: 1;
  aspect-ratio: 1300/500;
  margin-bottom: 20rem
}

.main__eyecatch img {
  transform: translateY(max(-33.33%, -1 * var(--y) * 0.25px))
}

.main__eyecatch+.main__aside {
  z-index: 0
}

.main__aside {
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  width: 24rem;
  padding-right: 3rem;
  padding-left: 5.5rem;
  border-left: #e0e0e0 solid 1px
}

.main__asideInner {
  display: flex;
  align-items: center;
  overflow: hidden;
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh
}

.main__anclinks.c-anclinks[data-scrollvisible-target] {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: transform, opacity;
  transform: translateX(10rem);
  opacity: 0
}

.main__anclinks.c-anclinks[data-scrollvisible-target].visibled {
  transform: translateX(0);
  opacity: 1
}

.main__body {
  position: relative;
  z-index: 1
}

.main--2col .main__head {
  margin-right: 0;
  padding-right: 29.5rem
}

.main--2col .main__body {
  margin-right: 24rem
}

@media only screen and (max-width: 1023px) {
  .main__head {
    padding-top: 9rem;
    margin-right: 3rem;
    margin-left: 3rem
  }

  .main__headAnclinks.c-anclinks {
    display: none
  }

  .main__breadcrumbs {
    margin-bottom: 3rem;
    font-size: 1.1rem
  }

  .main__breadcrumbs li:not(:last-child) {
    padding-right: 1rem;
    margin-right: 1rem
  }

  .main__ttl {
    padding-bottom: 5rem
  }

  .main__ttl .en {
    font-size: 3.6rem
  }

  .main__ttl .ja {
    margin-top: 0;
    font-size: 1.6rem
  }

  .main__eyecatch {
    aspect-ratio: auto;
    margin-bottom: 5rem
  }

  .main__eyecatch img {
    transform: none
  }

  .main__aside {
    position: static;
    width: auto;
    margin-bottom: 8rem;
    padding-left: 3rem;
    border-left: none
  }

  .main__asideInner {
    display: block;
    overflow: visible;
    position: static;
    height: auto
  }

  .main__anclinks.c-anclinks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    row-gap: 1rem
  }

  .main__anclinks.c-anclinks li {
    display: flex
  }

  .main__anclinks.c-anclinks li a {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
    padding: 1.5rem;
    border: #e0e0e0 solid 1px;
    border-radius: .8rem
  }

  .main__anclinks.c-anclinks li a::before {
    display: none
  }

  .main__anclinks.c-anclinks li a .c-drawline {
    background: none
  }

  .main__anclinks.c-anclinks[data-scrollvisible-target] {
    transition: none;
    transform: none;
    opacity: 1
  }

  .main__body {
    position: relative;
    z-index: 1
  }

  .main--2col .main__head {
    margin-right: 3rem;
    padding-right: 0
  }

  .main--2col .main__body {
    margin-right: 0
  }
}

.section {
  scroll-margin-top: 10rem
}

.section:not(:last-child) {
  padding-bottom: 30rem
}

.section__container {
  box-sizing: border-box;
  max-width: 117rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 5.5rem;
  padding-left: 5.5rem
}

@media only screen and (max-width: 1023px) {
  .section__container {
    max-width: none;
    padding-right: 3rem;
    padding-left: 3rem
  }
}

.section__ttl {
  margin-bottom: 7rem
}

.section__ttl .ja {
  position: relative;
  margin-bottom: 1rem;
  padding-left: 1.2rem;
  color: #14913A;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

.section__ttl .ja::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(.75em - .3rem);
  left: 0;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: currentColor
}

.section__ttl .en {
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 5.9rem;
  font-weight: 600;
  line-height: 1.2
}

.section__ttl.js-cliptext .ja::before {
  opacity: 0
}

.section__ttl.js-cliptext.visibled .ja::before {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  opacity: 1
}

.main--2col .section__container {
  max-width: 93rem
}

@media only screen and (max-width: 1023px) {
  .section:not(:last-child) {
    padding-bottom: 10rem
  }

  .section__ttl {
    margin-bottom: 3.5rem
  }

  .section__ttl .ja {
    margin-bottom: .5rem;
    font-size: 1.3rem
  }

  .section__ttl .en {
    font-size: 3.6rem;
  }
}

.footer {
  margin-top: 30rem
}

.footer__container {
  box-sizing: border-box;
  max-width: 117rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 5.5rem;
  padding-left: 5.5rem;
  max-width: 121rem
}

@media only screen and (max-width: 1023px) {
  .footer__container {
    max-width: none;
    padding-right: 3rem;
    padding-left: 3rem
  }
}

.footer__contact {
  position: relative;
  z-index: 1
}

.footer .f-contact {
  display: flex;
  justify-content: space-between;
  align-items: center;
  overflow: hidden;
  position: relative;
  height: 39rem;
  padding: 0 8rem;
  background: #14913A;
  color: #fff
}

.footer .f-contact::before {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: transform, opacity;
  transform: scale(1.05);
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("https://k-one-osaka.com/assets/imgs/home/160.jpg") no-repeat center center;
  background-size: cover;
  opacity: 0
}

.footer .f-contact__txt {
  position: relative;
  z-index: 1;
  font-weight: 500;
  line-height: 1.72
}

.footer .f-contact__ttl {
  margin-bottom: 5rem
}

.footer .f-contact__ttl .en {
  margin-bottom: .5rem;
font-family: "zen-maru-gothic", sans-serif;
  font-size: 6.7rem;
  font-weight: 600;
  line-height: 1.2
}

.footer .f-contact__ttl .ja {
  font-size: 1.8rem;
  line-height: 1.5
}

.footer .f-contact .c-arw {
  position: relative;
  z-index: 1;
  width: 8rem
}

.footer .f-contact .c-arw::before {
  border: #fff solid 1px
}

.footer .f-contact .c-arw .arw {
  width: 2rem;
  fill: #fff
}

@media(hover: hover) {
  .footer .f-contact:hover::before {
    transform: scale(1);
    opacity: 1
  }
}

.footer__body {
  position: relative;
  z-index: 0;
  margin-top: -19.5rem;
  padding: 32.5rem 0 12rem;
  background: #FCF5E9
}

.footer__row {
  display: flex;
  justify-content: space-between;
  -moz-column-gap: 5.5rem;
  column-gap: 5.5rem;
  align-items: flex-start
}

.footer__row:not(:first-child) {
  margin-top: 6rem
}

.footer__logo {
  display: block;
  width: 35rem;
  background: none
}

.footer__nav {
  display: flex;
  align-items: flex-start;
  -moz-column-gap: 3rem;
  column-gap: 3rem;
  margin-top: 4rem;
  font-weight: 500;
  line-height: 1.5
}

.footer__nav .c-arw {
  display: none
}

.footer__banner {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 1rem;
  width: 20rem
}

.footer__banner a {
  display: block;
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
}

@media(hover: hover) {
  .footer__banner a:hover {
    opacity: .7
  }
}

.footer__lower {
  align-items: center
}

.footer__lower .footer__col {
  display: flex;
  -moz-column-gap: 3rem;
  column-gap: 3rem;
  align-items: center
}

.footer__links {
  font-size: 1.2rem;
  line-height: 1.5
}

.footer__copyright {
  font-size: 1.2rem
}

.footer__robot {
  display: block;
  width: 4.7rem;
  background: none;
  line-height: 1
}

@media only screen and (max-width: 1099px) {
  .footer__nav {
    -moz-column-gap: 2rem;
    column-gap: 2rem
  }
}

@media only screen and (max-width: 1023px) {
  .footer {
    margin-top: 10rem
  }

  .footer__container {
    max-width: none
  }

  .footer .f-contact {
    box-sizing: border-box;
    display: block;
    height: 26rem;
    padding: 4rem 3rem 0
  }

  .footer .f-contact::before {
    display: none
  }

  .footer .f-contact__ttl {
    margin-bottom: 3rem
  }

  .footer .f-contact__ttl .en {
    font-size: 5.1rem
  }

  .footer .f-contact__ttl .ja {
    font-size: 1.6rem
  }

  .footer .f-contact .c-arw {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    width: 4rem
  }

  .footer .f-contact .c-arw .arw {
    width: 1.2rem
  }

  .footer__body {
    margin-top: -13rem;
    padding: 19rem 0 8rem
  }

  .footer__row {
    display: block
  }

  .footer__row:not(:first-child) {
    margin-top: 4rem
  }

  .footer__logo {
    width: 28rem
  }

  .footer__nav {
    display: block;
    margin-top: 2.5rem;
    border-top: #e0e0e0 solid 1px
  }

  .footer__nav li {
    border-bottom: #e0e0e0 solid 1px
  }

  .footer__nav li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.8rem 1.5rem 1.8rem 0;
    background: none
  }

  .footer__nav .c-arw {
    display: flex;
    width: 2rem;
    margin-left: 1.5rem
  }

  .footer__nav .c-arw::before {
    border: #14913A solid 1px
  }

  .footer__nav .c-arw .arw {
    width: .8rem;
    fill: #14913A
  }

  .footer__banner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 2rem;
    column-gap: 2rem;
    width: auto;
    margin-top: 4rem
  }

  .footer__lower {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    row-gap: 1.5rem
  }

  .footer__lower .footer__col {
    display: block
  }

  .footer__robot {
    margin-top: 1.5rem
  }
}

.c-drawline {
  transition: background-size .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  background: linear-gradient(to top, currentColor 0px, currentColor 1.1px, transparent 1px) no-repeat right bottom;
  background-position: right bottom;
  background-size: 0% auto
}

@media(hover: hover) {

  a.c-drawline:hover,
  a:hover .c-drawline {
    animation: none;
    background-position: left bottom;
    background-size: 100% auto
  }
}

@keyframes arw-r {
  0% {
    transform: translateX(0);
    opacity: 1
  }

  50% {
    transform: translateX(100%);
    opacity: 0
  }

  50.1% {
    transform: translateX(-100%);
    opacity: 0
  }

  100% {
    transform: translateX(0);
    opacity: 1
  }
}

.c-arw {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  position: relative;
  aspect-ratio: 1/1;
  border-radius: 50%
}

.c-arw::before {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: transform, background;
  box-sizing: border-box;
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  border-radius: 50%
}

.c-arw .arw {
  transition: fill .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  display: block;
  position: relative;
  z-index: 1;
  aspect-ratio: 1/1
}

@media(hover: hover) {
  a:hover .c-arw .arw--r {
    animation: arw-r .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
  }
}

.c-anclinks {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  font-weight: 500;
  line-height: 1.5
}

.c-anclinks li a {
  display: inline-block;
  position: relative;
  padding-left: 1.5rem;
  background: none
}

.c-anclinks li a::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(.75em - .3rem);
  left: 0;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: #14913A;
  opacity: 0
}

.c-anclinks li a.active::before {
  opacity: 1
}

.c-form {
  scroll-margin-top: 10rem
}

.c-form__message {
  margin-bottom: 4rem;
  font-size: 1.5rem;
  font-weight: 500
}

.c-form__message:not(:first-child) {
  margin-top: 10rem
}

.c-form__item {
  padding: 3rem 0;
  border-top: #e0e0e0 solid 1px;
  border-bottom: #e0e0e0 solid 1px
}

.c-form__item+.c-form__item {
  border-top: none
}

.c-form__item dt {
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

.c-form__item dt .req {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  height: 2rem;
  margin-left: 1rem;
  padding: 0 .5rem;
  border: currentColor solid 1px;
  border-radius: .5rem;
  color: #14913A;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1
}

.c-form__name {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 2rem;
  column-gap: 2rem;
  max-width: 43rem
}

.c-form__name .c-form-text {
  margin-top: 0 !important
}

.c-form__caption {
  margin-top: .5rem;
  font-size: 1.2rem;
  line-height: 1.5
}

.c-form__privacy {
  padding: 7rem 0 0;
  border-bottom: none
}

.c-form__privacy dt {
  justify-content: center
}

.c-form__privacy dd {
  text-align: center
}

.c-form__privacyInner {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 8.5rem;
  border: #e0e0e0 solid 1px;
  border-radius: 2rem
}

.c-form__btns {
  display: flex;
  justify-content: center;
  -moz-column-gap: 3rem;
  column-gap: 3rem;
  margin-top: 6rem
}

.c-form__btns li {
  flex: 1;
  max-width: 26rem
}

.c-form__btn {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: background, color;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 5rem;
  margin: 0;
  padding: 0;
  border: #14913A solid 1px;
  border-radius: 2.5rem;
  background: #14913A;
  color: #fff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

@media(hover: hover) {
  .c-form__btn:hover {
    background: none;
    color: #14913A
  }
}

.c-form__btn--secondary {
  background: none;
  color: #14913A
}

.c-form__note {
  margin-top: 3rem;
  font-size: 1.2rem
}

.c-form-step {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  font-weight: 500;
  line-height: 1.5
}

.c-form-step li {
  position: relative;
  padding-left: 1.5rem
}

.c-form-step li::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(.75em - .3rem);
  left: 0;
  width: .7rem;
  height: .7rem;
  border-radius: 50%;
  background: #e0e0e0
}

.c-form-step li:not(:last-child)::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(100% - .25rem);
  left: .3rem;
  width: 1px;
  height: 2.5rem;
  background: #e0e0e0
}

.c-form-step li.active::before {
  background: #14913A
}

.c-form-text,
.c-form-select {
  display: block;
  max-width: 44rem
}

.c-form-text:not(:first-child),
.c-form-select:not(:first-child) {
  margin-top: 1.5rem
}

.c-form-text .label,
.c-form-select .label {
  display: block;
  margin-bottom: .5rem;
  line-height: 1.5
}

.c-form-text--s,
.c-form-select--s {
  max-width: 33rem
}

.c-form-text--l,
.c-form-select--l {
  max-width: 53rem
}

.c-form-text input {
  width: 100%;
  height: 5rem;
  margin: 0;
  padding: 0 1.5rem;
  border: none;
  border-radius: .4rem;
  background: #f2f2f2;
  font-size: 1.4rem;
  line-height: 1.72
}

.c-form-text input.invalid {
  background: rgba(255, 0, 0, .05)
}

.c-form-select .select {
  position: relative
}

.c-form-select .select::after {
  transform: rotate(45deg);
  transform-origin: right bottom;
  content: "";
  box-sizing: border-box;
  position: absolute;
  right: 2.2rem;
  bottom: calc(50% - .3rem);
  z-index: 1;
  width: 1rem;
  height: 1rem;
  border-right: #000 solid 1px;
  border-bottom: #000 solid 1px;
  pointer-events: none
}

.c-form-select .select select {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 5rem;
  margin: 0;
  padding: 0 4.5rem 0 1.5rem;
  border: none;
  border-radius: .4rem;
  background: #f2f2f2;
  font-size: 1.4rem;
  line-height: 1.72
}

.c-form-select .select select.invalid {
  background: rgba(255, 0, 0, .05)
}

.c-form-textarea textarea {
  width: 100%;
  height: 30rem;
  margin: 0;
  padding: 1.5rem;
  border: none;
  border-radius: .4rem;
  background: #f2f2f2;
  font-size: 1.4rem;
  line-height: 1.72;
  resize: vertical
}

.c-form-textarea textarea.invalid {
  background: rgba(255, 0, 0, .05)
}

.c-form-checkbox {
  display: flex;
  align-items: flex-start;
  font-weight: 500;
  line-height: 1.72
}

.c-form-checkbox input[type=checkbox] {
  box-sizing: border-box;
  position: relative;
  top: calc(.86em - 1rem);
  width: 2rem;
  height: 2rem;
  margin: 0 1rem 0 0;
  padding: 0;
  border: #e0e0e0 solid 1px;
  border-radius: .4rem;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none
}

.c-form-checkbox input[type=checkbox]::before {
  content: "";
  transform: rotate(-45deg);
  box-sizing: border-box;
  display: block;
  position: absolute;
  top: .2rem;
  left: .1rem;
  width: 1.5rem;
  height: 1rem;
  border-bottom: #14913A solid 3px;
  border-left: #14913A solid 3px;
  opacity: 0
}

.c-form-checkbox input[type=checkbox]:checked::before {
  opacity: 1
}

.c-form-error {
  margin-top: .5rem;
  color: red;
  line-height: 1.5
}

@media only screen and (max-width: 1023px) {
  .c-form__message {
    margin-bottom: 3rem;
    font-size: 1.4rem
  }

  .c-form__message:not(:first-child) {
    margin-top: 7rem
  }

  .c-form__item {
    padding: 2.5rem 0
  }

  .c-form__item dt {
    align-items: center;
    margin-bottom: 1.5rem;
    font-size: 1.4rem
  }

  .c-form__name {
    max-width: none
  }

  .c-form__privacy {
    padding: 4rem 0 0
  }

  .c-form__privacyInner {
    height: auto;
    border: none;
    border-radius: 0
  }

  .c-form__btns {
    flex-direction: column;
    align-items: center;
    row-gap: 2rem;
    margin-top: 4rem
  }

  .c-form__btns li {
    width: 26rem
  }

  .c-form__btn {
    font-size: 1.4rem
  }

  .c-form__note {
    margin-top: 2rem
  }

  .c-form-step {
    flex-direction: row;
    justify-content: center;
    -moz-column-gap: 10.5rem;
    column-gap: 10.5rem;
    padding: 2rem 0;
    border: #e0e0e0 solid 1px;
    border-radius: .8rem
  }

  .c-form-step li {
    width: .7rem;
    height: .7rem;
    padding-top: 3rem;
    padding-left: 0
  }

  .c-form-step li .label {
    transform: translateX(-50%);
    position: absolute;
    top: 0;
    left: 50%;
    white-space: nowrap
  }

  .c-form-step li::before {
    position: static
  }

  .c-form-step li:not(:last-child)::after {
    top: auto;
    bottom: .3rem;
    left: calc(100% + 1rem);
    width: 8.5rem;
    height: 1px
  }

  .c-form-text,
  .c-form-select {
    max-width: none
  }

  .c-form-text:not(:first-child),
  .c-form-select:not(:first-child) {
    margin-top: 1rem
  }

  .c-form-text--s,
  .c-form-select--s {
    max-width: none
  }

  .c-form-text--l,
  .c-form-select--l {
    max-width: none
  }

  .c-form-textarea textarea {
    height: 25rem
  }
}

.js-cliptext {
  --delay: 0s
}

.js-cliptext__line {
  display: inline-block;
  -webkit-clip-path: polygon(0% 105%, 100% 105%, 100% 105%, 0% 105%);
  clip-path: polygon(0% 105%, 100% 105%, 100% 105%, 0% 105%);
  opacity: 0
}

.js-cliptext.visibled .js-cliptext__line {
  transition: -webkit-clip-path .8s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  transition: clip-path .8s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  transition: clip-path .8s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay), -webkit-clip-path .8s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  transition-property: opacity, -webkit-clip-path;
  transition-property: clip-path, opacity;
  transition-property: clip-path, opacity, -webkit-clip-path;
  -webkit-clip-path: polygon(0% -5%, 100% -5%, 100% 105%, 0% 105%);
  clip-path: polygon(0% -5%, 100% -5%, 100% 105%, 0% 105%);
  opacity: 1
}

.js-accordion__summary {
  outline: 0;
  cursor: pointer
}

.js-accordion__body {
  overflow: hidden
}

.p-home-fv {
  position: relative;
  height: 100vh;
  height: 100svh;
  margin-bottom: 30rem
}

.p-home-fv__shadow {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0
}

.p-home-fv__shadow::before {
  content: "";
  display: block;
  position: sticky;
  top: 0;
  height: 14rem;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0))
}

.p-home-fv__slider {
  overflow: hidden;
  position: relative;
  z-index: 0;
  height: 100%
}

.p-home-fv__copy {
  position: absolute;
  top: calc(50% - 5.2rem);
  left: 7.69%;
  z-index: 2;
  aspect-ratio: 280/105;
  width: 28rem;
  fill: #fff;
  filter: drop-shadow(0 0 5rem rgba(0, 0, 0, 0.35));
  pointer-events: none
}

.p-home-fv__copy path {
  -webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%)
}

.p-home-fv__copy path:nth-of-type(1) {
  --delay: 0.4s
}

.p-home-fv__copy path:nth-of-type(2) {
  --delay: 0.5s
}

.p-home-fv__images {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%
}

.p-home-fv__images .img {
  transition: all .8s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: filter, opacity;
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  filter: brightness(2);
  opacity: 0
}

.p-home-fv__images .img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.p-home-fv__images .img.active {
  z-index: 1;
  filter: brightness(1);
  opacity: 1
}

.p-home-fv__controls {
  display: flex;
  align-items: center;
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  z-index: 2;
  color: #fff
}

.p-home-fv__dots {
  display: flex;
  -moz-column-gap: .5rem;
  column-gap: .5rem
}

.p-home-fv__dots .dot {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  opacity: .6;
  cursor: pointer
}

.p-home-fv__dots .dot .icon {
  display: block;
  position: relative
}

.p-home-fv__dots .dot .icon::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - .4rem);
  left: calc(50% - .4rem);
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
  background: currentColor
}

.p-home-fv__dots .dot .line {
  transform: rotate(-90deg);
  display: block;
  overflow: visible;
  width: 2.4rem;
  height: 2.4rem
}

.p-home-fv__dots .dot .line circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 1px;
  stroke-dasharray: 0 315%;
  opacity: 0
}

.p-home-fv__dots .dot .caption {
  display: none
}

@media(hover: hover) {
  .p-home-fv__dots .dot:hover {
    opacity: 1
  }
}

.p-home-fv__dots .dot.active {
  opacity: 1
}

.p-home-fv__dots .dot.active .line circle {
  opacity: 1
}

.p-home-fv__caption {
  margin-left: 1.5rem;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.2
}

.p-home-fv__banner {
  visibility: hidden;
  position: absolute;
  right: 3rem;
  bottom: 3rem;
  z-index: 1;
  width: 22rem;
  font-size: 1.2rem;
  line-height: 1.5;
  opacity: 0
}

.p-home-fv__banner li+li {
  margin-top: 1rem
}

.p-home-fv__banner a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 8rem;
  padding: 0 1.5rem 0 2rem;
  border-radius: .8rem;
  background: #fff
}

.p-home-fv__banner a .en {
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.2
}

.p-home-fv__banner a .c-arw {
  width: 2.2rem
}

.p-home-fv__banner a .c-arw::before {
  border: #14913A solid 1px
}

.p-home-fv__banner a .c-arw .arw {
  width: .9rem;
  fill: #14913A
}

@media(hover: hover) {
  .p-home-fv__banner a:hover .c-arw::before {
    transform: scale(1.27);
    background: #14913A
  }

  .p-home-fv__banner a:hover .c-arw .arw {
    fill: #fff
  }
}

.p-home-fv.loaded .p-home-fv__shadow {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  opacity: 1
}

.p-home-fv.loaded .p-home-fv__copy path {
  transition: -webkit-clip-path .6s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  transition: clip-path .6s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  transition: clip-path .6s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay), -webkit-clip-path .6s cubic-bezier(0.645, 0.045, 0.355, 1) var(--delay);
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)
}

.p-home-fv.loaded .p-home-fv__banner {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) .4s;
  transition-property: visibility, opacity;
  visibility: visible;
  opacity: 1
}

@media only screen and (max-width: 1023px) {
  .p-home-fv {
    height: auto;
    margin-bottom: 0
  }

  .p-home-fv__shadow {
    display: none
  }

  .p-home-fv__slider {
    height: min(166.67vw, 100vh - 13rem);
    height: min(166.67vw, 100svh - 13rem)
  }

  .p-home-fv__slider::before {
    content: "";
    display: block;
    position: absolute;
    inset: auto 0 0 0;
    z-index: 1;
    height: 25rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0))
  }

  .p-home-fv__copy {
    top: auto;
    bottom: 3.5rem;
    left: 2rem;
    width: 25rem
  }

  .p-home-fv__images {
    position: relative;
    z-index: 0;
    width: 100%;
    height: 100%
  }

  .p-home-fv__images .img {
    transition: all .8s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition-property: filter, opacity;
    display: block;
    position: absolute;
    inset: 0;
    z-index: 0;
    filter: brightness(2);
    opacity: 0
  }

  .p-home-fv__images .img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
  }

  .p-home-fv__images .img.active {
    z-index: 1;
    filter: brightness(1);
    opacity: 1
  }

  .p-home-fv__controls {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    top: 0;
    bottom: 0;
    left: 1rem
  }

  .p-home-fv__dots {
    flex-direction: column;
    row-gap: .5rem
  }

  .p-home-fv__dots .dot {
    display: flex;
    align-items: center
  }

  .p-home-fv__dots .dot .icon {
    margin-right: 1rem
  }

  .p-home-fv__dots .dot .line {
    transform: none
  }

  .p-home-fv__dots .dot .caption {
    transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    display: block;
    opacity: 0
  }

  .p-home-fv__dots .dot.active .caption {
    opacity: 1
  }

  .p-home-fv__caption {
    display: none
  }

  .p-home-fv__banner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    position: static;
    width: auto;
    margin: 2.5rem 2.5rem 0
  }

  .p-home-fv__banner li+li {
    margin-top: 0
  }

  .p-home-fv__banner a {
    box-sizing: border-box;
    padding: 0 1rem 0 1.5rem;
    border: #e0e0e0 solid 1px
  }

  .p-home-fv__banner a .en {
    font-size: 1.9rem
  }
}

@keyframes home-cm-open {
  0% {
    opacity: 0
  }

  100% {
    opacity: 1
  }
}

.p-home-cmModal {
  box-sizing: border-box;
  max-width: calc(100vw - 5rem);
  height: 60rem;
  max-height: calc(100vh - 5rem);
  padding: 8rem 0;
  border: none;
  background: none
}

.p-home-cmModal::backdrop {
  animation: home-cm-open .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  background: rgba(0, 0, 0, .8)
}

.p-home-cmModal[open] {
  animation: home-cm-open .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
}

.p-home-cmModal.close {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: visibility, opacity;
  visibility: hidden;
  opacity: 0
}

.p-home-cmModal.close::backdrop {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  opacity: 0
}

.p-home-cmModal__movie {
  aspect-ratio: 16/9;
  height: 100%
}

.p-home-cmModal__movie iframe {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none
}

.p-home-cmModal__close {
  display: block;
  overflow: hidden;
  text-indent: -5260px;
  transition: color .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  box-sizing: border-box;
  position: absolute;
  bottom: 0;
  left: calc(50% - 2.8rem);
  width: 5.6rem;
  height: 5.6rem;
  margin: 0;
  padding: 0;
  border: currentColor solid 1px;
  border-radius: 50%;
  background: none;
  color: #fff
}

.p-home-cmModal__close::before,
.p-home-cmModal__close::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: calc(50% - 1.2rem);
  width: 2.4rem;
  height: 1px;
  background: currentColor
}

.p-home-cmModal__close::before {
  transform: rotate(45deg)
}

.p-home-cmModal__close::after {
  transform: rotate(-45deg)
}

@media(hover: hover) {
  .p-home-cmModal__close:hover {
    color: #14913A
  }
}

@media only screen and (max-width: 1023px) {
  .p-home-cmModal {
    width: calc(100vw - 6rem);
    height: -moz-fit-content;
    height: fit-content;
    max-height: calc(100vh - 4rem);
    padding: 0 0 6rem
  }

  .p-home-cmModal__movie {
    aspect-ratio: 16/9;
    width: 100%;
    height: auto
  }

  .p-home-cmModal__close {
    left: calc(50% - 2rem);
    width: 4rem;
    height: 4rem
  }

  .p-home-cmModal__close::before,
  .p-home-cmModal__close::after {
    left: calc(50% - .9rem);
    width: 1.8rem
  }
}

.p-home-section {
  margin-top: 25rem
}

.p-home-section__container {
  box-sizing: border-box;
  max-width: 117rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 5.5rem;
  padding-left: 5.5rem
}

@media only screen and (max-width: 1023px) {
  .p-home-section__container {
    max-width: none;
    padding-right: 3rem;
    padding-left: 3rem
  }
}

.p-home-section__ttl .en {
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 6.7rem;
  font-weight: 600;
  line-height: 1
}

.p-home-section__ttl .ja {
  --delay: 0.1s;
  margin-top: 1rem;
  color: #14913A;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5
}

@media only screen and (max-width: 1023px) {
  .p-home-section {
    margin-top: 10rem
  }

  .p-home-section__ttl .en {
    font-size: 5.1rem
  }

  .p-home-section__ttl .ja {
    margin-top: .5rem;
    font-size: 1.6rem
  }
}

@keyframes home-about-more {
  0% {
    -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%)
  }

  100% {
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)
  }
}

@keyframes home-about-slider {
  0% {
    transform: translateX(0)
  }

  100% {
    transform: translateX(-33.33%)
  }
}

.p-home-about__container {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: flex-start
}

.p-home-about__ttl {
  flex-shrink: 0;
  text-align: right
}

.p-home-about__ttl .en {
  display: flex;
  flex-direction: column;
  font-size: 11.4rem;
  line-height: .79
}

.p-home-about__ttl .en .js-cliptext__line:nth-child(2) {
  --delay: 0.1s
}

.p-home-about__ttl .ja {
  margin-top: 1.5rem;
  font-size: 2.6rem
}

.p-home-about__ttl .ja .js-cliptext__line {
  --delay: 0.2s
}

.p-home-about__body {
  font-size: 1.5rem
}

.p-home-about__lead {
  margin-bottom: 3rem;
  font-size: 2.2rem;
  font-weight: bold;
  line-height: 1.82;
}

.p-home-about__images {
  overflow: hidden;
  display: flex;
  margin-top: 15rem
}

.p-home-about__images .container {
  display: flex;
  flex-shrink: 0
}

.p-home-about__images .group {
  display: flex;
  flex-shrink: 0;
  -moz-column-gap: 4rem;
  column-gap: 4rem;
  padding-right: 4rem
}

.p-home-about__images img {
  width: 42rem
}

.p-home-about__images.animating .container {
  animation: home-about-slider calc(var(--length)*8s) linear 0s infinite normal;
  will-change: transform
}

.p-home-about__images.animating.paused .container {
  animation-play-state: paused
}

.p-home-about__more {
  margin-top: 14rem
}

.p-home-about__more .link {
  display: flex;
  align-items: center;
  padding-bottom: 4rem;
  border-bottom: #e0e0e0 solid 1px;
  background: none
}

.p-home-about__more .link .ttl {
  transition: transform .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s
}

.p-home-about__more .link .more {
  transition: -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition: clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition: clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s, -webkit-clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  margin: 0 2.7rem 0 auto;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.2;
  -webkit-clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%)
}

.p-home-about__more .link .c-arw {
  width: 6.2rem
}

.p-home-about__more .link .c-arw::before {
  background: #14913A
}

.p-home-about__more .link .c-arw .arw {
  width: 1.8rem;
  fill: #fff
}

@media(hover: hover) {
  .p-home-about__more .link:hover .ttl {
    transform: translateX(2rem)
  }

  .p-home-about__more .link:hover .more {
    animation: home-about-more .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    transition: none;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)
  }

  .p-home-about__more .link:hover .c-arw::before {
    transform: scale(1.23)
  }
}

@media only screen and (max-width: 1023px) {
  .p-home-about__container {
    display: block
  }

  .p-home-about__ttl {
    margin-bottom: 4rem;
    text-align: left
  }

  .p-home-about__ttl .en {
    display: block;
    font-size: 5.1rem;
    line-height: 1
  }

  .p-home-about__ttl .en .js-cliptext__line:nth-child(2) {
    --delay: 0s
  }

  .p-home-about__ttl .ja {
    margin-top: .5rem;
    font-size: 1.6rem
  }

  .p-home-about__ttl .ja .js-cliptext__line {
    --delay: 0.1s
  }

  .p-home-about__body {
    font-size: 1.4rem
  }

  .p-home-about__lead {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-home-about__images {
    margin-top: 6rem
  }

  .p-home-about__images .group {
    -moz-column-gap: 2rem;
    column-gap: 2rem;
    padding-right: 2rem
  }

  .p-home-about__images img {
    width: 21rem
  }

  .p-home-about__more {
    margin-top: 5rem
  }

  .p-home-about__more .link {
    flex-wrap: wrap;
    justify-content: flex-end;
    padding-bottom: 0;
    border-bottom: none
  }

  .p-home-about__more .link .ttl {
    width: 100%;
    margin-bottom: .5rem
  }

  .p-home-about__more .link .ttl .en {
    font-size: 3.5rem
  }

  .p-home-about__more .link .ttl .ja {
    font-size: 1.4rem
  }

  .p-home-about__more .link .more {
    display: flex;
    align-items: center;
    margin-right: 1.5rem;
    flex-grow: 1;
    font-size: 1.5rem;
    -webkit-clip-path: none;
    clip-path: none
  }

  .p-home-about__more .link .more::before {
    content: "";
    display: block;
    flex-grow: 1;
    height: 1px;
    margin-right: 1rem;
    background: #e0e0e0
  }

  .p-home-about__more .link .c-arw {
    width: 4rem
  }

  .p-home-about__more .link .c-arw .arw {
    width: 1.3rem
  }
}

@media only screen and (max-width: 1023px)and (hover: hover) {
  .p-home-about__more .link:hover .ttl {
    transform: none
  }

  .p-home-about__more .link:hover .more {
    animation: none;
    -webkit-clip-path: none;
    clip-path: none
  }
}

.p-home-service {
  padding-top: 25rem;
  background: #14913A;
  color: #fff
}

.p-home-service__inner {
  display: flex;
  align-items: flex-start;
  position: relative
}

.p-home-service__inner::before {
  content: "";
  aspect-ratio: 630/768;
  width: 48.46%
}

.p-home-service__body {
  box-sizing: border-box;
  align-self: center;
  flex-grow: 1;
  width: 51.54%;
  max-width: 56rem;
  margin: 0 auto;
  padding: 0 5.5rem
}

.p-home-service__ttl {
  margin-bottom: 8rem
}

.p-home-service__ttl .en {
  display: flex;
  flex-direction: column
}

.p-home-service__ttl .en .js-cliptext__line:nth-child(2) {
  --delay: 0.1s
}

.p-home-service__ttl .ja {
  color: #fff
}

.p-home-service__ttl .ja .js-cliptext__line {
  --delay: 0.2s
}

.p-home-service__items {
  counter-reset: home-service-number 0;
  border-top: rgba(255, 255, 255, .3) solid 1px
}

.p-home-service__items .item {
  counter-increment: home-service-number 1;
  border-bottom: rgba(255, 255, 255, .3) solid 1px
}

.p-home-service__items .item__img {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 48.46%;
  opacity: 0;
  pointer-events: none
}

.p-home-service__items .item__txt {
  padding: 3.5rem 0
}

.p-home-service__items .item__txt dt {
  display: flex;
  align-items: center;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.32
}

.p-home-service__items .item__txt dt::before {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: background, color;
  content: counter(home-service-number, decimal-leading-zero);
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 5.5rem;
  height: 5.5rem;
  border: #fff solid 1px;
  border-radius: 50%;
  color: #fff;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1
}

.p-home-service__items .item__txt dt .label {
  padding: 0 2rem
}

.p-home-service__items .item__txt dt .icon {
  display: block;
  position: relative;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  margin-left: auto;
  background: rgba(255, 255, 255, .4)
}

.p-home-service__items .item__txt dt .icon::before,
.p-home-service__items .item__txt dt .icon::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 1px);
  left: calc(50% - .5rem);
  width: 1rem;
  height: 2px;
  background: #14913A
}

.p-home-service__items .item__txt dt .icon::after {
  transform: rotate(90deg)
}

.p-home-service__items .item__txt dd {
  overflow: hidden;
  height: 0;
  line-height: 1.72
}

.p-home-service__items .item__txt dd .txt {
  padding-top: 2rem
}

.p-home-service__items .item__more {
  display: flex;
  justify-content: flex-end;
  margin-top: 3rem;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5
}

.p-home-service__items .item__more a {
  display: flex;
  align-items: center;
  background: none
}

.p-home-service__items .item__more .c-arw {
  width: 1.2rem;
  margin-left: 1rem
}

.p-home-service__items .item__more .c-arw .arw {
  width: 1.2rem;
  fill: currentColor
}

.p-home-service__items .item.active .item__img {
  opacity: 1
}

.p-home-service__items .item.active .item__txt dt::before {
  background: #fff;
  color: #14913A
}

.p-home-service__items .item.active .item__txt dt .icon::after {
  opacity: 0
}

.p-home-service__items .item.active .item__txt dd {
  height: auto;
  opacity: 1
}

.p-home-service__images {
  display: grid;
  grid-template-columns: 36.92% 26.16% 36.92%;
  grid-template-rows: 1fr 1fr;
  aspect-ratio: 1300/700;
  margin-top: 25rem
}

.p-home-service__images .slider {
  overflow: hidden;
  position: relative
}

.p-home-service__images .slider--1 {
  grid-row: 1/3
}

.p-home-service__images .slider--2 {
  grid-column: 2/3;
  grid-row: 1/2
}

.p-home-service__images .slider--3 {
  grid-column: 2/3;
  grid-row: 2/3
}

.p-home-service__images .slider--4 {
  grid-row: 1/3
}

.p-home-service__images .slider .img {
  transform: translateX(100%);
  display: block;
  position: absolute;
  inset: 0;
  opacity: 0
}

.p-home-service__images .slider .img.active {
  transform: translateX(0);
  opacity: 1
}

.p-home-service__images .slider .img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

@media only screen and (max-width: 1023px) {
  .p-home-service {
    padding-top: 10rem
  }

  .p-home-service__inner {
    display: block
  }

  .p-home-service__inner::before {
    display: none
  }

  .p-home-service__body {
    width: auto;
    max-width: none;
    padding: 0 3rem
  }

  .p-home-service__ttl {
    margin-bottom: 4rem
  }

  .p-home-service__ttl .en {
    display: block
  }

  .p-home-service__ttl .en .js-cliptext__line:nth-child(2) {
    --delay: 0s
  }

  .p-home-service__ttl .ja .js-cliptext__line {
    --delay: 0.1s
  }

  .p-home-service__items {
    border-top: none
  }

  .p-home-service__items .item {
    border-bottom: none
  }

  .p-home-service__items .item+.item {
    margin-top: 6rem
  }

  .p-home-service__items .item__img {
    position: static;
    width: auto;
    margin-bottom: 3rem;
    opacity: 1
  }

  .p-home-service__items .item__txt {
    padding: 0
  }

  .p-home-service__items .item__txt dt {
    margin-bottom: 1.5rem;
    font-size: 1.8rem;
    line-height: 1.39
  }

  .p-home-service__items .item__txt dt::before {
    width: 4.5rem;
    height: 4.5rem;
    font-size: 1.8rem
  }

  .p-home-service__items .item__txt dt .label {
    padding-right: 0
  }

  .p-home-service__items .item__txt dt .icon {
    display: none
  }

  .p-home-service__items .item__txt dd {
    overflow: visible;
    height: auto
  }

  .p-home-service__items .item__txt dd .txt {
    padding-top: 0
  }

  .p-home-service__items .item__more {
    margin-top: 2rem;
    font-size: 1.5rem
  }

  .p-home-service__images {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    aspect-ratio: auto;
    margin-top: 10rem
  }

  .p-home-service__images .slider--1 {
    grid-column: 1/3;
    grid-row: auto;
    aspect-ratio: 390/250
  }

  .p-home-service__images .slider--2 {
    grid-column: 1/2;
    grid-row: auto;
    aspect-ratio: 1/1
  }

  .p-home-service__images .slider--3 {
    grid-column: 2/3;
    grid-row: auto;
    aspect-ratio: 1/1
  }

  .p-home-service__images .slider--4 {
    grid-column: 1/3;
    grid-row: auto;
    aspect-ratio: 390/250
  }
}

.p-home-news__container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start
}

.p-home-news__ttl {
  flex-shrink: 0;
  margin-right: 5.5rem
}

.p-home-news__items {
  flex-grow: 1;
  max-width: 71rem
}

.p-home-news__items .item+.item {
  margin-top: 2rem
}

.p-home-news__items .item__link {
  transition: border-color .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3rem;
  border: #e0e0e0 solid 1px;
  border-radius: 1.5rem;
  background: none
}

@media(hover: hover) {
  .p-home-news__items .item__link:hover {
    border-color: #14913A
  }

  .p-home-news__items .item__link:hover .c-arw::before {
    transform: scale(1.36);
    background: #14913A
  }

  .p-home-news__items .item__link:hover .c-arw .arw {
    fill: #fff
  }
}

.p-home-news__items .item__txt {
  width: calc(100% - 6rem)
}

.p-home-news__items .item__date {
  margin-bottom: .5rem;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2
}

.p-home-news__items .item__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5
}

.p-home-news__items .item .c-arw {
  width: 2.8rem
}

.p-home-news__items .item .c-arw::before {
  border: #14913A solid 1px
}

.p-home-news__items .item .c-arw .arw {
  width: 1.1rem;
  fill: #14913A
}

@media only screen and (max-width: 1023px) {
  .p-home-news__container {
    display: block
  }

  .p-home-news__ttl {
    margin-right: 0;
    margin-bottom: 3rem
  }

  .p-home-news__items {
    max-width: none
  }

  .p-home-news__items .item+.item {
    margin-top: 1rem
  }

  .p-home-news__items .item__link {
    padding: 2rem;
    border-radius: 1rem
  }

  .p-home-news__items .item__txt {
    width: calc(100% - 4rem)
  }

  .p-home-news__items .item__date {
    font-size: 1.4rem
  }

  .p-home-news__items .item__ttl {
    font-size: 1.4rem
  }

  .p-home-news__items .item .c-arw {
    width: 2rem
  }

  .p-home-news__items .item .c-arw .arw {
    width: .9rem
  }
}

.p-message-president__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  -moz-column-gap: 4rem;
  column-gap: 4rem;
  margin-bottom: 8rem;
  margin-top:20%;
}

.p-message-president .section__ttl {
  flex-shrink: 0;
  margin-bottom: 0
}

.p-message-president__img {
  max-width: 36rem
}

.p-message-president__img .name {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  -moz-column-gap: 1.5rem;
  column-gap: 1.5rem;
  margin-top: 2rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.5
}

.p-message-president__img .name__prefix {
  font-size: 1.4rem;
  font-weight: 400
}

.p-message-president__lead {
  margin-bottom: 4rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.56
}

.p-message-president__txt p:not(:first-child) {
  margin-top: 2em
}

@media only screen and (max-width: 1023px) {
  .p-message-president__head {
    display: block;
    margin-bottom: 4rem
  }

  .p-message-president .section__ttl {
    margin-bottom: 3.5rem
  }

  .p-message-president__img {
    display: flex;
    align-items: flex-end;
    -moz-column-gap: 3rem;
    column-gap: 3rem;
    max-width: none
  }

  .p-message-president__img img {
    width: 19rem
  }

  .p-message-president__img .name {
    display: block;
    margin-top: 0;
    font-size: 1.8rem
  }

  .p-message-president__img .name__prefix {
    display: block;
    margin-bottom: .2rem;
    font-size: 1.3rem
  }

  .p-message-president__lead {
    margin-bottom: 2rem;
    font-size: 1.8rem
  }

  .p-message-president__txt p:not(:first-child) {
    margin-top: 1.72em
  }
}

.p-message-philosophy__items {
  counter-reset: message-philosophy-number 0;
  border-top: #e0e0e0 solid 1px
}

.p-message-philosophy__items .item {
  counter-increment: message-philosophy-number 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  -moz-column-gap: 5.5rem;
  column-gap: 5.5rem;
  padding: 8rem 0;
  border-bottom: #e0e0e0 solid 1px
}

.p-message-philosophy__items .item__ttl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
  row-gap: 1.5rem;
  width: 29rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.46
}

.p-message-philosophy__items .item__ttl .label {
  display: flex;
  align-items: center;
  -moz-column-gap: .5rem;
  column-gap: .5rem;
  padding: 0 .5rem;
  height: 2.8rem;
  background: #14913A;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1.5
}

.p-message-philosophy__items .item__ttl .label::before {
  content: counter(message-philosophy-number, decimal-leading-zero) ".";
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 600
}

.p-message-philosophy__items .item__txt {
  flex-grow: 1;
  max-width: 46rem
}

@media only screen and (max-width: 1023px) {
  .p-message-philosophy__items .item {
    display: block;
    padding: 4rem 0
  }

  .p-message-philosophy__items .item__ttl {
    row-gap: .5rem;
    width: auto;
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-message-philosophy__items .item__ttl .label {
    height: 2.4rem;
    font-size: 1.2rem
  }

  .p-message-philosophy__items .item__ttl .label::before {
    font-size: 1.3rem
  }

  .p-message-philosophy__items .item__txt {
    flex-grow: 1;
    max-width: 46rem
  }
}

.p-message-sdgs__img {
  display: flex;
  align-items: center;
  -moz-column-gap: 4.88%;
  column-gap: 4.88%;
  margin: 7rem 0 4rem;
  padding: 4.88%;
  border: #e0e0e0 solid 1px
}

.p-message-sdgs__img .logo {
  display: block;
  flex-shrink: 0;
  width: 28.11%
}

.p-message-sdgs__img .icons {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(6, 1fr)
}

.p-message-sdgs__items {
  counter-reset: message-sdgs-number 0;
  margin-top: 7rem;
  border-top: #e0e0e0 solid 1px
}

.p-message-sdgs__items .item {
  counter-increment: message-sdgs-number 1;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  -moz-column-gap: 5.5rem;
  column-gap: 5.5rem;
  padding: 8rem 0;
  border-bottom: #e0e0e0 solid 1px
}

.p-message-sdgs__items .item__icons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  flex-shrink: 0;
  width: 26.5rem
}

.p-message-sdgs__items .item__txt {
  flex-grow: 1
}

.p-message-sdgs__items .item__ttl {
  display: flex;
  align-items: flex-start;
  -moz-column-gap: 1.5rem;
  column-gap: 1.5rem;
  margin-bottom: 3rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.46
}

.p-message-sdgs__items .item__ttl::before {
  content: counter(message-sdgs-number);
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  top: .1rem;
  width: 3rem;
  height: 3rem;
  background: #14913A;
  color: #fff;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 1.2
}

.p-message-sdgs__items .item__attempt {
  margin-top: 3rem
}

.p-message-sdgs__items .item__attempt dt {
  display: table;
  margin-bottom: 1.5rem;
  padding: .2rem 1rem;
  background: #FCF5E9;
  font-weight: 500;
  line-height: 1.5
}

.p-message-sdgs__items .item__list li {
  padding-left: 1em
}

.p-message-sdgs__items .item__list li::before {
  content: "・";
  display: inline-block;
  width: 1em;
  margin-left: -1em
}

@media only screen and (max-width: 1023px) {
  .p-message-sdgs__img {
    display: block;
    margin: 5rem 0 2rem;
    padding: 2.5rem
  }

  .p-message-sdgs__img .logo {
    width: auto;
    margin-bottom: 1.5rem
  }

  .p-message-sdgs__img .icons {
    gap: .5rem
  }

  .p-message-sdgs__items {
    margin-top: 4rem
  }

  .p-message-sdgs__items .item {
    display: block;
    padding: 4rem 0
  }

  .p-message-sdgs__items .item__icons {
    grid-template-columns: repeat(4, 1fr);
    width: auto;
    margin-bottom: 2.5rem
  }

  .p-message-sdgs__items .item__ttl {
    -moz-column-gap: 1rem;
    column-gap: 1rem;
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-message-sdgs__items .item__ttl::before {
    width: 2.6rem;
    height: 2.6rem;
    font-size: 1.8rem
  }

  .p-message-sdgs__items .item__attempt {
    margin-top: 2rem
  }

  .p-message-sdgs__items .item__attempt dt {
    display: table;
    margin-bottom: 1rem
  }

  .p-message-sdgs__items .item__list li {
    padding-left: 1em
  }

  .p-message-sdgs__items .item__list li::before {
    content: "・";
    display: inline-block;
    width: 1em;
    margin-left: -1em
  }
}

.p-company-outline__table {
  width: 100%;
  border-top: #e0e0e0 solid 1px;
  border-bottom: #e0e0e0 solid 1px
}

.p-company-outline__table tr {
  border-top: #e0e0e0 solid 1px;
  border-bottom: #e0e0e0 solid 1px
}

.p-company-outline__table th,
.p-company-outline__table td {
  padding: 2.5rem 0;
  vertical-align: top
}

.p-company-outline__table th {
  width: 16.5rem;
  font-weight: 500
}

.p-company-outline__table .maplink {
  display: flex;
  margin-top: 1rem
}

.p-company-outline__table .maplink a {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: background, color;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  height: 3.5rem;
  padding: 0 2rem;
  border: #14913A solid 1px;
  border-radius: 1.75rem;
  background: none;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2
}

.p-company-outline__table .maplink a .icon {
  flex-shrink: 0;
  width: .8rem;
  height: .7rem;
  margin-left: 1rem;
  fill: currentColor
}

@media(hover: hover) {
  .p-company-outline__table .maplink a:hover {
    background: #14913A;
    color: #fff
  }
}

@media only screen and (max-width: 1023px) {
  .p-company-outline__table {
    display: block;
    border-top: none;
    border-bottom: none
  }

  .p-company-outline__table thead,
  .p-company-outline__table tbody,
  .p-company-outline__table tfoot {
    display: block
  }

  .p-company-outline__table tr {
    display: block;
    padding: 2rem 0
  }

  .p-company-outline__table tr:not(:first-child) {
    border-top: none
  }

  .p-company-outline__table th,
  .p-company-outline__table td {
    display: block;
    padding: 0;
    vertical-align: top
  }

  .p-company-outline__table th {
    width: auto;
    margin-bottom: .5rem
  }

  .p-company-outline__table .maplink {
    display: flex;
    margin-top: 1rem
  }

  .p-company-outline__table .maplink a {
    font-size: 1.4rem
  }
}

.p-company-history__blocks .block+.block {
  margin-top: 6rem
}

.p-company-history__blocks .block__label {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  position: relative;
  height: 8.5rem;
  padding: 0 6rem 0 2.5rem;
  border: #e0e0e0 solid 1px;
  border-radius: 2rem;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 1.2
}

.p-company-history__blocks .block__label::-webkit-details-marker {
  display: none
}

.p-company-history__blocks .block__label .separate {
  display: block;
  margin: 0 .5rem;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 1.6rem;
  font-weight: 500
}

.p-company-history__blocks .block__label .icon {
  position: absolute;
  top: calc(50% - 1rem);
  right: 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #f2f2f2
}

.p-company-history__blocks .block__label .icon::before,
.p-company-history__blocks .block__label .icon::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 1px);
  left: calc(50% - .5rem);
  width: 1rem;
  height: 2px;
  background: #14913A
}

.p-company-history__blocks .block__label .icon::after {
  transform: rotate(-90deg)
}

.p-company-history__blocks .block__bodyInner {
  padding-top: 2rem
}

.p-company-history__blocks .block__items {
  position: relative;
  padding: 2rem 0 3rem 1.6rem
}

.p-company-history__blocks .block__items::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 0;
  left: 2rem;
  width: 1px;
  background: #e0e0e0
}

.p-company-history__blocks .block__items .item {
  display: flex;
  align-items: flex-start;
  position: relative;
  z-index: 1
}

.p-company-history__blocks .block__items .item+.item {
  margin-top: 6rem
}

.p-company-history__blocks .block__items .item__y {
  display: flex;
  align-items: center;
  width: 16rem;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.2
}

.p-company-history__blocks .block__items .item__y::before {
  content: "";
  display: block;
  width: .9rem;
  height: .9rem;
  margin-right: 1.5rem;
  border-radius: 50%;
  background: currentColor
}

.p-company-history__blocks .block__items .item__body {
  flex-grow: 1
}

.p-company-history__blocks .block__items .item__month {
  line-height: 1.72
}

.p-company-history__blocks .block__items .item__month+.item__month {
  margin-top: 2.5rem;
  padding-top: 2.5rem;
  border-top: #e0e0e0 solid 1px
}

.p-company-history__blocks .block__items .item__month dt {
  margin-bottom: .5rem;
  font-size: 1.6rem;
  font-weight: 500
}

.p-company-history__blocks .block.opened .block__label .icon::after {
  opacity: 0
}

@media only screen and (max-width: 1023px) {
  .p-company-history__blocks .block+.block {
    margin-top: 4rem
  }

  .p-company-history__blocks .block__label {
    height: 6.5rem;
    padding: 0 5.5rem 0 2rem;
    border-radius: .8rem;
    font-size: 2.1rem
  }

  .p-company-history__blocks .block__label .separate {
    font-size: 1.4rem
  }

  .p-company-history__blocks .block__label .icon {
    top: calc(50% - .8rem);
    width: 1.6rem;
    height: 1.6rem
  }

  .p-company-history__blocks .block__label .icon::before,
  .p-company-history__blocks .block__label .icon::after {
    left: calc(50% - .4rem);
    width: .8rem
  }

  .p-company-history__blocks .block__bodyInner {
    padding-top: 1rem
  }

  .p-company-history__blocks .block__items {
    padding: 2rem 0 2rem .6rem
  }

  .p-company-history__blocks .block__items::before {
    left: .9rem
  }

  .p-company-history__blocks .block__items .item {
    display: block
  }

  .p-company-history__blocks .block__items .item+.item {
    margin-top: 3rem
  }

  .p-company-history__blocks .block__items .item__y {
    width: auto;
    margin-bottom: 1rem;
    font-size: 2.2rem
  }

  .p-company-history__blocks .block__items .item__y::before {
    width: .7rem;
    height: .7rem
  }

  .p-company-history__blocks .block__items .item__body {
    padding-left: 2.2rem
  }

  .p-company-history__blocks .block__items .item__month+.item__month {
    margin-top: 1.5rem;
    padding-top: 1.5rem
  }

  .p-company-history__blocks .block__items .item__month dt {
    margin-bottom: 0;
    font-size: 1.5rem
  }

  .p-company-history__blocks .block.opened .block__label .icon::after {
    opacity: 0
  }
}

.p-locations-list__container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  -moz-column-gap: 5.5rem;
  column-gap: 5.5rem;
  margin-right: max(5.5rem, (100% - 82rem)*.5)
}

.p-locations-list__map {
  position: sticky;
  top: 10rem;
  aspect-ratio: 1/1;
  width: max(50rem, 100% - 36rem - 8rem)
}

.p-locations-list__map .map {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none
}

.p-locations-list__areas {
  flex-shrink: 0;
  width: 38.3%;
  max-width: 36rem
}

.p-locations-list__areas .area {
  scroll-margin-top: 10rem
}

.p-locations-list__areas .area:not(:last-child) {
  padding-bottom: 10rem
}

.p-locations-list__areas .area__ttl {
  position: relative;
  margin-bottom: 4rem;
  padding-left: 1.2rem;
  color: #14913A;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

.p-locations-list__areas .area__ttl::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(.75em - .3rem);
  left: 0;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: #14913A
}

.p-locations-list__areas .area__offices {
  border-top: #e0e0e0 solid 1px
}

.p-locations-list__areas .area__offices .office {
  padding: 3rem 0;
  border-bottom: #e0e0e0 solid 1px
}

.p-locations-list__areas .area__offices .office>dt {
  margin-bottom: .5rem;
  font-weight: 500;
  line-height: 1.5
}

.p-locations-list__areas .area__offices .office a[href^=mailto] {
  color: #999
}

.p-locations-list__areas .area__offices .office__map {
  display: flex;
  margin-top: 2rem
}

.p-locations-list__areas .area__offices .office__map a {
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: background, color;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  height: 3.2rem;
  padding: 0 2rem;
  border: #14913A solid 1px;
  border-radius: 1.6rem;
  background: none;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.2
}

.p-locations-list__areas .area__offices .office__map a .arw {
  flex-shrink: 0;
  width: .9rem;
  height: .9rem;
  margin-right: 1rem;
  fill: currentColor
}

.p-locations-list__areas .area__offices .office__map a .icon {
  display: none
}

@media(hover: hover) {
  .p-locations-list__areas .area__offices .office__map a:hover {
    background: #14913A;
    color: #fff
  }
}

@media only screen and (max-width: 1023px) {
  .p-locations-list__container {
    display: block;
    margin-right: 0;
    padding: 0 3rem
  }

  .p-locations-list__map {
    display: none
  }

  .p-locations-list__areas {
    width: auto;
    max-width: none
  }

  .p-locations-list__areas .area:not(:last-child) {
    padding-bottom: 7rem
  }

  .p-locations-list__areas .area__ttl {
    margin-bottom: 3rem
  }

  .p-locations-list__areas .area__offices {
    border-top: #e0e0e0 solid 1px
  }

  .p-locations-list__areas .area__offices .office {
    padding: 2rem 0
  }

  .p-locations-list__areas .area__offices .office__map {
    margin-top: 1.5rem
  }

  .p-locations-list__areas .area__offices .office__map a .arw {
    display: none
  }

  .p-locations-list__areas .area__offices .office__map a .icon {
    display: block;
    flex-shrink: 0;
    width: .8rem;
    height: .7rem;
    margin-left: 1rem;
    fill: currentColor
  }
}

@keyframes service-about-slider {
  0% {
    transform: translateX(0)
  }

  100% {
    transform: translateX(-33.33%)
  }
}

.p-service-about__ttl {
  margin-bottom: 4rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.46
}

.p-service-about__images {
  overflow: hidden;
  display: flex;
  margin-top: 12rem
}

.p-service-about__images .container {
  display: flex;
  flex-shrink: 0
}

.p-service-about__images .group {
  display: flex;
  flex-shrink: 0;
  -moz-column-gap: 4rem;
  column-gap: 4rem;
  padding-right: 4rem
}

.p-service-about__images img {
  width: 42rem
}

.p-service-about__images.animating .container {
  animation: home-about-slider calc(var(--length)*8s) linear 0s infinite normal;
  will-change: transform
}

.p-service-about__images.animating.paused .container {
  animation-play-state: paused
}

@media only screen and (max-width: 1023px) {
  .p-service-about__ttl {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-service-about__images {
    margin-top: 3rem
  }

  .p-service-about__images .group {
    -moz-column-gap: 2rem;
    column-gap: 2rem;
    padding-right: 2rem
  }

  .p-service-about__images img {
    width: 21rem
  }
}

.p-service-section__slider {
  overflow: hidden;
  margin-top: 7rem
}

.p-service-section__slider .dots {
  display: flex;
  -moz-column-gap: .5rem;
  column-gap: .5rem;
  margin-top: 2rem;
  padding: 1px
}

.p-service-section__slider .dots .swiper-pagination-bullet {
  opacity: .6;
  cursor: pointer;
  color: #000
}

.p-service-section__slider .dots .swiper-pagination-bullet .icon {
  display: block;
  position: relative
}

.p-service-section__slider .dots .swiper-pagination-bullet .icon::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - .4rem);
  left: calc(50% - .4rem);
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
  background: currentColor
}

.p-service-section__slider .dots .swiper-pagination-bullet .line {
  transform: rotate(-90deg);
  display: block;
  overflow: visible;
  width: 2.4rem;
  height: 2.4rem
}

.p-service-section__slider .dots .swiper-pagination-bullet .line circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 1px;
  stroke-dasharray: 0 315%;
  opacity: 0
}

.p-service-section__slider .dots .swiper-pagination-bullet-active {
  color: #14913A;
  opacity: 1
}

.p-service-section__slider .dots .swiper-pagination-bullet-active .line circle {
  opacity: 1
}

.p-service-section__blocks {
  margin-top: 8rem;
  border-top: #e0e0e0 solid 1px
}

.p-service-section__blocks .block {
  padding: 8rem 0;
  border-bottom: #e0e0e0 solid 1px
}

.p-service-section__blocks .block__ttl {
  margin-bottom: 3rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.46
}

.p-service-section__blocks .block__img {
  display: block
}

.p-service-section__blocks .block__img:not(:first-child) {
  margin-top: 4rem
}

.p-service-section__blocks .block__btn {
  display: flex
}

.p-service-section__blocks .block__btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 5rem;
  padding: 0 2rem;
  border-radius: 2.5rem;
  background: #14913A;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

.p-service-section__blocks .block__btn a .pdf {
  display: block;
  width: 1.8rem;
  height: 2rem;
  margin-left: 1rem;
  fill: currentColor
}

.p-service-section__blocks .block__dl {
  margin-top: 10rem;
  padding: 5rem;
  background: #FCF5E9
}

.p-service-section__blocks .block__dl dt {
  margin-bottom: 3rem;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.46
}

.p-service-section__blocks .block__banner {
  max-width: 31rem;
  margin-top: 3rem
}

.p-service-section__blocks .block__banner a {
  transition: opacity .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  display: block
}

@media(hover: hover) {
  .p-service-section__blocks .block__banner a:hover {
    opacity: .7
  }
}

@media only screen and (max-width: 1023px) {
  .p-service-section .section__ttl .en .js-cliptext__line:nth-child(2) {
    --delay: 0.1s
  }

  .p-service-section__slider {
    margin-top: 4rem
  }

  .p-service-section__slider .dots {
    margin-top: 1.5rem
  }

  .p-service-section__blocks {
    margin-top: 5rem
  }

  .p-service-section__blocks .block {
    padding: 5rem 0
  }

  .p-service-section__blocks .block__ttl {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-service-section__blocks .block__img:not(:first-child) {
    margin-top: 3rem
  }

  .p-service-section__blocks .block__btn {
    display: flex;
    justify-content: center
  }

  .p-service-section__blocks .block__btn a {
    padding: 0 4rem;
    font-size: 1.3rem
  }

  .p-service-section__blocks .block__dl {
    margin-top: 4rem;
    padding: 3rem
  }

  .p-service-section__blocks .block__dl dt {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    line-height: 1.56
  }

  .p-service-section__blocks .block__banner {
    max-width: none;
    margin-top: 2rem
  }
}

.p-contact__message {
  font-size: 1.5rem;
  font-weight: 500
}

.p-contact__message:not(:last-child) {
  margin-bottom: 7rem
}

@media only screen and (max-width: 1023px) {
  .p-contact__message {
    font-size: 1.4rem
  }

  .p-contact__message:not(:last-child) {
    margin-bottom: 4rem
  }
}

.p-privacy__blocks .block {
  scroll-margin-top: 10rem
}

.p-privacy__blocks .block:not(:last-child) {
  padding-bottom: 10rem
}

.p-privacy__blocks .block__ttl {
  position: relative;
  margin-bottom: 3rem;
  padding-bottom: 4rem;
  padding-left: 1.2rem;
  border-bottom: #e0e0e0 solid 1px;
  color: #14913A;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5
}

.p-privacy__blocks .block__ttl::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(.75em - .3rem);
  left: 0;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: #14913A
}

.p-privacy__blocks .block__ttl+.block__sttl {
  margin-top: 0
}

.p-privacy__blocks .block__sttl {
  margin: 3rem 0 .5rem;
  font-weight: 500;
  line-height: 1.5
}

.p-privacy__blocks .block__numlist {
  counter-reset: privacy-numlist-number 0
}

.p-privacy__blocks .block__numlist li {
  counter-increment: privacy-numlist-number 1;
  padding-left: 1.2em
}

.p-privacy__blocks .block__numlist li::before {
  content: counter(privacy-numlist-number) ".";
  display: inline-block;
  width: 1.2em;
  margin-left: -1.2em
}

@media only screen and (max-width: 1023px) {
  .p-privacy__blocks .block:not(:last-child) {
    padding-bottom: 7rem
  }

  .p-privacy__blocks .block__ttl {
    margin-bottom: 2rem;
    padding-bottom: 3rem
  }

  .p-privacy__blocks .block__sttl {
    margin-top: 2rem
  }
}

.p-news-detail__container {
  max-width: 93rem
}

.p-news-detail__head {
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: #e0e0e0 solid 1px
}

.p-news-detail__date {
  margin-bottom: 2rem;
  color: #14913A;
  font-family: "zen-maru-gothic", sans-serif;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2
}

.p-news-detail__ttl {
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.37
}

.p-news-detail__body {
  --fontsize: 1rem;
  font-size: calc(var(--fontsize)*1.4);
  line-height: 2
}

.p-news-detail__body *:first-child {
  margin-top: 0 !important
}

.p-news-detail__body *:last-child {
  margin-bottom: 0 !important
}

.p-news-detail__body h2 {
  position: relative;
  margin: calc(var(--fontsize)*6) 0 calc(var(--fontsize)*2);
  padding-left: 1rem;
  border-left: #14913A solid calc(var(--fontsize)*.4);
  font-size: calc(var(--fontsize)*2);
  font-weight: 500;
  line-height: 1.5
}

.p-news-detail__body h2+h3,
.p-news-detail__body h2+p,
.p-news-detail__body h2+.wp-block-image,
.p-news-detail__body h2+.wp-block-twocol,
.p-news-detail__body h2+.wp-block-embed {
  margin-top: 0
}

.p-news-detail__body h3 {
  margin: calc(var(--fontsize)*6) 0 calc(var(--fontsize)*2);
  padding: calc(var(--fontsize)*1.5);
  background: #FCF5E9;
  font-size: calc(var(--fontsize)*1.6);
  font-weight: 500;
  line-height: 1.5
}

.p-news-detail__body h3+p,
.p-news-detail__body h3+.wp-block-image,
.p-news-detail__body h3+.wp-block-twocol,
.p-news-detail__body h3+.wp-block-embed {
  margin-top: 0
}

.p-news-detail__body p {
  margin: 2em 0
}

.p-news-detail__body a {
  color: #999
}

.p-news-detail__body strong {
  font-weight: 500
}

.p-news-detail__body figure {
  display: block
}

.p-news-detail__body figure figcaption {
  display: block;
  margin-top: calc(var(--fontsize)*1);
  font-size: calc(var(--fontsize)*1.2);
  text-align: center
}

.p-news-detail__body .wp-block-image {
  margin: 2em 0;
  text-align: center
}

.p-news-detail__body .wp-block-twocol {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: calc(var(--fontsize)*4);
  column-gap: calc(var(--fontsize)*4);
  margin: calc(var(--fontsize)*6) 0
}

.p-news-detail__body .wp-block-embed {
  margin: calc(var(--fontsize)*6) 0
}

.p-news-detail__body .wp-block-embed-youtube .wp-block-embed__wrapper {
  position: relative
}

.p-news-detail__body .wp-block-embed-youtube .wp-block-embed__wrapper::before {
  content: "";
  display: block;
  padding-top: 56.25%
}

.p-news-detail__body .wp-block-embed-youtube .wp-block-embed__wrapper iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%
}

.p-news-detail__body .wp-block-buttons {
  margin: 2em 0
}

.p-news-detail__body .wp-block-button__link {
  display: table;
  padding: calc(var(--fontsize)*1.2) calc(var(--fontsize)*4);
  border: #14913A solid 1px;
  border-radius: calc(var(--fontsize)*2.5);
  background: none;
  color: #14913A;
  font-size: calc(var(--fontsize)*1.6);
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: all .4s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  transition-property: background, color
}

@media(hover: hover) {
  .p-news-detail__body .wp-block-button__link:hover {
    background: #14913A;
    color: #fff
  }
}

@media only screen and (max-width: 1023px) {
  .p-news-detail__body {
    line-height: 1.72
  }

  .p-news-detail__body h2 {
    margin-top: calc(var(--fontsize)*5);
    font-size: calc(var(--fontsize)*1.8)
  }

  .p-news-detail__body h3 {
    margin-top: calc(var(--fontsize)*5);
    padding: calc(var(--fontsize)*1)
  }

  .p-news-detail__body p {
    margin: 1.72em 0
  }

  .p-news-detail__body .wp-block-image {
    margin: 1.72em 0
  }

  .p-news-detail__body .wp-block-twocol {
    grid-template-columns: 1fr;
    row-gap: 1.72em;
    margin: calc(var(--fontsize)*5) 0
  }

  .p-news-detail__body .wp-block-embed {
    margin: calc(var(--fontsize)*5) 0
  }

  .p-news-detail__body .wp-block-buttons {
    margin: 1.72em 0
  }

  .p-news-detail__body .wp-block-button__link {
    padding: calc(var(--fontsize)*1) calc(var(--fontsize)*3);
    border-radius: calc(var(--fontsize)*2.2);
    font-size: calc(var(--fontsize)*1.4)
  }
}

@media only screen and (max-width: 1023px) {
  .p-news-detail__container {
    max-width: none
  }

  .p-news-detail__head {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem
  }

  .p-news-detail__date {
    margin-bottom: 1rem
  }

  .p-news-detail__ttl {
    font-size: 2.2rem
  }
}

.clearfix {
  zoom: 1
}

.clearfix:after {
  content: "";
  display: block;
  clear: both;
  height: 0
}

.pc-hidden {
  display: none
}

@media only screen and (max-width: 1023px) {
  .sp-hidden {
    display: none
  }

  .pc-hidden {
    display: block
  }

  br.pc-hidden {
    display: inline-block
  }
}

@media only screen and (max-width: 1023px) {
    .p-home-fv__images .img .sp-focus {
        width: 100%;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
        object-position: 20% center;
    }
}


.dogrun_price table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px; /* ここで上部の余白を設定 */
}

.dogrun_price th, .dogrun_price td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

@media screen and (max-width: 600px) {
    .dogrun_price table, .dogrun_price thead, .dogrun_price tbody, .dogrun_price th, .dogrun_price td, .dogrun_price tr {
        display: block;
    }

    .dogrun_price thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    .dogrun_price tr {
        border: 1px solid #ddd;
        margin-bottom: 5px;
    }

    .dogrun_price td {
        border: none;
        border-bottom: 1px solid #ddd;
        position: relative;
        padding-left: 50%;
        text-align: right;
    }

    .dogrun_price td:before {
        position: absolute;
        top: 6px;
        left: 6px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
        text-align: left;
        font-weight: bold;
    }

    .dogrun_price td:nth-of-type(1):before { content: "項目"; }
    .dogrun_price td:nth-of-type(2):before { content: "価格"; }
}
.sitsuke table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px; /* 上部の余白 */
}

.sitsuke th, .sitsuke td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

@media screen and (max-width: 600px) {
    .sitsuke table, .sitsuke thead, .sitsuke tbody, .sitsuke th, .sitsuke td, .sitsuke tr {
        display: block;
    }

    .sitsuke thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    .sitsuke tr {
        border: 1px solid #ddd;
        margin-bottom: 5px;
    }

    .sitsuke td {
        border: none;
        border-bottom: 1px solid #ddd;
        position: relative;
        padding-left: 50%;
        text-align: right;
    }

    .sitsuke td:before {
        position: absolute;
        top: 6px;
        left: 6px;
        width: 45%;
        padding-right: 10px;
        white-space: nowrap;
        text-align: left;
        font-weight: bold;
    }

    .sitsuke td:nth-of-type(1):before { content: "時間"; }
    .sitsuke td:nth-of-type(2):before { content: "価格"; }
}


@media (min-width: 768px) {
  .satoinu-container {
 display: flex;
    gap: 4rem;
    margin-bottom: 3em;
  }
  .satoinu-image, .satoinu-table {
    flex-basis: 50%; /* 画像とテーブルのコンテナを等しく50%の割合に設定 */
  }
}

@media (max-width: 767px) {
  .satoinu-container {
    display: block;
  }
  .satoinu-image, .satoinu-table {
    margin-bottom: 1rem; /* モバイルビューでの余白を追加 */
  }
}

.satoinu-container img {
  width: 100%;
  height: auto;
  display: block; /* 画像が自然なサイズで表示されるように */
}

.satoinu-note {
  font-size: 1rem;
  color: red; /* テキストカラーを赤色に */
  margin-top: 1rem;
}

.satoinu-table {
  padding: 1rem;
}

.satoinu-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.satoinu-table th {
  width: 30%; /* タイトル列を30%の割合に設定 */
  padding: 0.5rem;
  background-color: #f9fafb; /* タイトル列に背景色を追加 */
  text-align: left;
}

.satoinu-table td {
  width: 70%; /* 内容列を70%の割合に設定 */
  padding: 0.5rem;
  text-align: left;
}

.satoinu-table th,
.satoinu-table td {
  border-bottom: 1px solid #e5e7eb; /* 列の間に薄いグレーの枠線を追加 */
}



@charset "utf-8";



.info__wrap {
	margin-top: 40px;
	display: flex;
	flex-direction: column;
}
    
.info__wrap:after {
	content: "";
	width: 100%;
	height: 1px;
	margin: 30px 0;
	display: block;
	background-color: rgba(0,0,0,.1);
	order: 1;
}

.info__item {
	max-width: 100%;
	flex-basis: 100%;
	margin: 0;
	position: relative;
}

.info__item:first-child {
	order: 0;
}

.info__item:last-child {
	order: 2;
}

.info__item dt {
    font-weight: 600;
    color: rgba(0,0,0,.8);
}

.info__item dd {
    margin-top: 10px;
}

.info__item dd .btn {
    padding: 20px;
    min-height: auto;
}

.info__item dd .btn .ja {
    margin-top: 0;
    font-size: inherit;
    font-weight: 600;
}

.info__item dd .btn .arrow {
    margin-left: auto;
}

.info__item dd .info-tel,
.info__item dd .info-fax {
    color:#14913a;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
}

.info__item dd .info-tel .tel,
.info__item dd .info-fax .fax{
    font-size: 3.0rem;
}

.info__item dd .info-tel + p {
    margin-top: .5em;
}

.info-tel-time {
	margin-top: 5px !important;
	font-size: 1.2rem;
}

.deal__catch {
    margin-bottom: 30px;
	font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.6;
}

.deal__data {
	margin-top: 40px;
}

.deal__data dt {
	margin-bottom: 10px;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
}

.deal__method {
	margin-top: 40px;
}

.deal__method__item {
	margin-top: 10px;
	padding: 30px 20px;
	background-color: rgba(0, 0, 0, .05);
	box-sizing: border-box;
}

.deal__method__title {
	font-weight: 700;
	line-height: 1.6;
}

.link-list {
	margin-top: 20px;
}

.i_blank {
	width: 12px;
	height: 10px;
	fill: #000000;
	margin-left: 5px;
}


/* ============================================================================================== */
/* Media query                                                                                    */
/* ============================================================================================== */

/* ----------------------------------------------------------------------- */
/* SmartPhone */

@media screen and (min-width: 375px) {

}


@media screen and (min-width: 414px) {

}

@media screen and (orientation:landscape) {

}

/* over iphone 6 plus landscape */
@media screen and (orientation:landscape) and (min-width: 736px) {

}


/* ----------------------------------------------------------------------- */
/* Tablet */

@media screen and (min-width: 768px) {
    

   
	.deal__catch {
		font-size: 2rem;
	}

	.deal__data dt {
		font-size: 1.6rem;
	}

	.deal__method {
		margin-top: 60px;
		display: flex;
		justify-content: space-between;
	}

	.deal__method__item {
		max-width: calc(50% - 10px);
		flex-basis: calc(50% - 10px);
		margin-top: 0;
		padding: 40px;
	}

}


/* ----------------------------------------------------------------------- */
/* over ipad landscape */

@media screen and (orientation:landscape) and (min-width: 1024px) {
    


	.info__wrap {
		margin-top: 50px;
		flex-direction: row;
		justify-content: space-between;
    }
    
	.info__item {
		flex-basis: calc(50% - 40px);
	}
    
	.info__wrap:after {
		width: 1px;
		height: 100px;
		margin: 0;
	}
    
    .info__item + .info__item {
        margin-top: 0;
/*         padding-left: 80px; */
    }
    
    .info__item dd p {
        line-height: 1.8;
    }
    
    .info__item dd .btn {
        width: 300px;
    }
    
    .info__item dd .info-tel,
    .info__item dd .info-fax {
        font-size: 2rem;
    }
    
    .info__item dd .info-tel .tel,
    .info__item dd .info-fax .fax {
        font-size: 3.2rem;
    }
    
    .info__item dd .info-tel + p {
        margin-top: 0;
    }
   
	.deal__catch {
		font-size: 2.5rem;
	}

	.deal__data {
		margin-top: 50px;
	}
    
}


/* ----------------------------------------------------------------------- */
/* Desktop */

@media screen and (min-width: 1280px) {
    
    .info__item {
        width: auto;
    }
    
    

}


@media screen and (min-width: 1440px) {

}


.btn {
    position: relative;
    width: 100%;
    min-height: 80px;
    padding: 30px;
    /* padding-right: 20px; */
    border: none;
    border-radius: 5px;
    box-sizing: border-box;
    font-weight: 500;
    color: inherit;
    white-space: nowrap;
    /* justify-content: space-between; */
}

.btn:before {
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border-radius: 5px;
    border: 1px solid currentColor;
    content: "";
    opacity: 0.75;
    backface-visibility: hidden;
    transition: opacity 0.2s ease;
}

.info__item img {
    width: auto;
    margin:0 auto;
}
