@charset "UTF-8";
:root {
  --font-family: Outfit, Noto Sans JP, 游ゴシック, Yu Gothic Medium, YuGothic, メイリオ, Meiryo, sans-serif;
  --font-family-raleway: Raleway, sans-serif;
  --font-family-outfit: Outfit, sans-serif;
  --color-base: #4B4B4B;
  --color-brand: #000;
  --color-accent: #009A76;
  --color-line: #DDDDDD;
  --color-bg: #F7F7F7;
  --color-black: #2C2C2C;
  --color-gray: #757575;
  --color-red: #E6001E;
  --color-yellow: #F0C200;
  --ease-main: cubic-bezier(0, 0.4, 0.25, 1);
  --ease-accordion: ease-accordion;
  --url-icon-arrow-right: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="%23000000"><path d="M6.89369 14.1382C6.70456 13.9486 6.59835 13.6917 6.59835 13.4239C6.59835 13.1561 6.70456 12.8992 6.89369 12.7096L10.3954 9.20794H2.15311C1.88506 9.20763 1.62811 9.10099 1.43868 8.91134C1.24925 8.72169 1.14285 8.46455 1.14285 8.1965C1.14285 7.92855 1.24929 7.67168 1.43875 7.48221C1.62822 7.29275 1.88516 7.18617 2.15311 7.18617H10.7988L6.89257 3.27992C6.70345 3.09032 6.59723 2.83344 6.59723 2.56564C6.59723 2.29783 6.70345 2.04096 6.89257 1.85135C7.08218 1.66222 7.33905 1.55615 7.60686 1.55615C7.87466 1.55615 8.13154 1.66222 8.32114 1.85135L13.7497 7.27992C13.8437 7.37357 13.9183 7.4849 13.9691 7.60749C14.0199 7.73008 14.0459 7.86151 14.0457 7.99421C14.0457 8.12688 14.0196 8.25836 13.9688 8.38093C13.918 8.50349 13.8436 8.61474 13.7497 8.7085L8.32114 14.1371C8.22746 14.231 8.11609 14.3056 7.99351 14.3564C7.87093 14.4072 7.73955 14.4333 7.60686 14.4331C7.47444 14.4333 7.34328 14.4072 7.22091 14.3567C7.09854 14.3061 6.98733 14.2318 6.89369 14.1382Z"/></svg>');
}

* {
  margin: 0;
  word-break: break-all;
}
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  font-size: calc(14px + 2 * (100vw - 320px) / 55);
}
@media screen and (min-width: 425px) {
  html {
    font-size: 1rem;
  }
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.3671875vw;
  }
}
@media screen and (min-width: 1024px) {
  html {
    font-size: calc(14px + 2 * (100vw - 1024px) / 416);
  }
}
@media screen and (min-width: 1440px) {
  html {
    font-size: 16px;
  }
}

body {
  position: relative;
  font-family: var(--font-family);
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--color-base);
  font-feature-settings: "palt";
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

strong {
  font-weight: 700;
}

i {
  font-style: normal;
}

a {
  color: var(--color-base);
  text-decoration: none;
}

img,
svg {
  width: 100%;
  height: auto;
  vertical-align: top;
}

video {
  width: 100%;
}

ul {
  padding: 0;
  list-style: none;
}

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
  background: none;
}

button {
  padding: 0;
  font: inherit;
  background: none;
  border: none;
  outline: none;
  -webkit-appearance: button;
     -moz-appearance: button;
          appearance: button;
  text-rendering: optimizeLegibility;
  cursor: pointer;
}

input[type=button],
input[type=submit] {
  border-radius: 0;
  -webkit-appearance: button;
     -moz-appearance: button;
          appearance: button;
  border: none;
  cursor: pointer;
}

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

::-moz-placeholder {
  color: #9b9b9b;
}

::placeholder {
  color: #9b9b9b;
}

.grid {
  display: grid;
}

.u-visually-hidden {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

@media screen and (min-width: 768px) {
  .is-sp {
    display: none;
  }
}

.is-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .is-pc {
    display: revert;
  }
}

@media (hover: hover) {
  a {
    transition: opacity 0.5s var(--ease-main);
  }
  a:hover {
    opacity: 0.6;
  }
}
@keyframes slide-01 {
  0% {
    transform: translatex(0);
  }
  49.5% {
    transform: translatex(100%);
  }
  50.5% {
    transform: translatex(-100%);
  }
  100% {
    transform: translatex(0);
  }
}
@font-face {
  font-family: "Yu Gothic Medium";
  src: local(url("Yu Gothic Medium"));
  src: local("Yu Gothic Medium");
  font-weight: 400;
}
@font-face {
  font-family: "Yu Gothic Medium";
  src: local(url("Yu Gothic Bold"));
  src: local("Yu Gothic Bold");
  font-weight: bold;
}
.Header_root {
  position: fixed;
  z-index: 10;
  width: 100%;
  top: 0;
  left: 0;
  background-color: #fff;
  transition: transform 0.5s var(--ease-main), box-shadow 0.5s var(--ease-main);
}
body.is-scroll .Header_root {
  transform: translateY(-100%);
  box-shadow: none;
}
body.is-scroll-up .Header_root {
  transform: translateY(-3.125rem);
  box-shadow: 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.08);
}
.Header_root .Nav_primary {
  display: none;
}
.Header_root .Nav_primary li + li {
  margin-left: min(1.5rem, 1.6666666667vw);
}
.Header_root .Nav_primary a {
  display: block;
  padding: 1rem 0;
  font-size: min(1rem, 1.1111111111vw);
  font-family: var(--font-family--raleway);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--color-black);
}
.Header_root .Nav_primary .menu-link__description {
  display: none;
}
@media screen and (min-width: 782px) {
  .Header_root .Nav_primary {
    display: flex;
    margin-left: auto;
  }
  .Header_root .Nav_primary li + li {
    margin-left: min(2.25rem, 2.5vw);
  }
}
.Header_root .Search {
  display: none;
}
.Header_root .Search input {
  padding: min(0.8125rem, 0.9027777778vw) min(0.75rem, 0.8333333333vw);
  font-size: 0.875rem;
}
@media screen and (min-width: 782px) {
  .Header_root .Search {
    flex: none;
    display: block;
    width: min(22rem, 24.4444444444vw);
    height: 3rem;
    margin-left: min(1.5rem, 1.6666666667vw);
  }
}
@media screen and (min-width: 1024px) {
  .Header_root .Search {
    width: min(21rem, 23.3333333333vw);
    margin-left: min(2.5rem, 2.7777777778vw);
  }
}

.Header_container {
  display: flex;
  align-items: center;
  height: 3.75rem;
  padding: 0 3.4375rem 0 3.2%;
}
@media screen and (min-width: 782px) {
  .Header_container {
    height: 7.5rem;
    padding: 0 5%;
  }
}

.Eyebrow_root {
  place-items: center;
  height: 2.75rem;
  margin-bottom: 0.375rem;
  border-bottom: 1px solid var(--color-line);
}
@media screen and (min-width: 782px) {
  .Eyebrow_root {
    height: 3.0625rem;
    margin-bottom: 0;
  }
}

.Eyebrow_text {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.8666666667;
}
.Eyebrow_text mark {
  font-size: 0.875rem;
  font-weight: 600;
  background-color: transparent;
  color: rgb(0, 154, 118);
}
@media screen and (min-width: 782px) {
  .Eyebrow_text {
    font-size: 0.875rem;
  }
  .Eyebrow_text mark {
    font-size: 1rem;
  }
}

.Logo_root a {
  display: flex;
}
.Logo_root a img {
  width: 7.1875rem;
  backface-visibility: hidden;
}
@media screen and (min-width: 782px) {
  .Logo_root a img {
    width: min(11.5rem, 12.7777777778vw);
  }
}

.Account_root {
  flex: none;
  margin-left: auto;
}
.Account_root ul {
  display: flex;
  align-items: center;
}
.Account_root li {
  width: 2.5rem;
}
.Account_root li + li {
  margin-left: min(0.25rem, 1.0666666667vw);
}
.Account_root a {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  color: #606060;
}
.Account_root .Link_icon {
  display: block;
  position: relative;
}
.Account_root .Link_icon svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}
.Account_root .Link_icon span {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  width: 0.875rem;
  height: 0.875rem;
  top: -0.5rem;
  right: -0.5rem;
  font-size: 0.5rem;
  font-family: var(--font-family--raleway);
  font-weight: 500;
  color: #fff;
  background-color: #404040;
  border-radius: 50%;
}
.Account_root .Link_label {
  margin-top: 0.25rem;
  font-size: 0.5rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
}
.Account_root .Link_menu {
  position: absolute;
  width: 18.4375rem;
  margin: 0 auto;
  padding: 2.5rem;
  top: 100%;
  left: 0;
  right: 0;
  background-color: #fff;
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.16);
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.3s var(--ease-main);
  transition-delay: 0.3s, 0s;
}
.Account_root .Link_icon svg {
  width: 1.5rem;
  height: 1.5rem;
}
.Account_root .Link_label {
  font-size: 0.625rem;
}
@media screen and (min-width: 782px) {
  .Account_root {
    position: relative;
    margin-left: min(1.25rem, 1.3888888889vw);
  }
  .Account_root li {
    width: 3.75rem;
  }
  .Account_root li + li {
    margin-left: min(0.375rem, 0.4166666667vw);
  }
  .Account_root a {
    padding-top: 0.5rem;
  }
  .Account_root .Link_menu {
    width: 15rem;
    padding: 1rem 0;
    top: calc(100% - 1.25rem);
    right: 0;
    left: auto;
  }
}
@media screen and (min-width: 1024px) {
  .Account_root {
    margin-left: min(2.25rem, 2.5vw);
  }
}

.Footer_root {
  padding-bottom: 2.25rem;
}

.Footer_container.grid {
  grid-template-columns: repeat(2, auto);
  grid-template-rows: repeat(3, auto);
  padding: 2.5rem 0;
  background-color: var(--color-bg);
}
.Footer_container .Nav_primary {
  grid-area: 1/1/2/2;
  padding: 0 16%;
  display: flex;
  flex-direction: column;
}
.Footer_container .Nav_primary li + li {
  margin-top: 1rem;
}
.Footer_container .Nav_primary a {
  font-size: 0.875rem;
  font-family: var(--font-family--raleway);
  font-weight: 500;
  line-height: 1.6428571429;
  letter-spacing: 0.1em;
  text-decoration: none;
  color: var(--color-black);
}
.Footer_container .Nav_primary .menu-link__description {
  display: none;
}
.Footer_container .Nav_footer {
  grid-area: 1/2/2/3;
  padding: 0 16%;
  display: flex;
  flex-direction: column;
}
.Footer_container .Nav_footer li + li {
  margin-top: 0.75rem;
}
.Footer_container .Nav_footer a {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-decoration: none;
}
.Footer_container .Footer_sns {
  grid-area: 2/1/3/3;
  margin-top: 3rem;
  display: flex;
  justify-content: center;
}
.Footer_container .Footer_sns a {
  display: block;
}
.Footer_container .Footer_sns a svg {
  width: 1.5rem;
  fill: #505050;
}
.Footer_container .Footer_logo {
  grid-area: 3/1/4/3;
  margin-top: 1.5rem;
}
.Footer_container .Footer_logo a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  text-align: center;
}
.Footer_container .Footer_logo span {
  display: block;
  font-size: 0.75rem;
  font-family: var(--font-family--raleway);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.2em;
  text-align: center;
  color: #505050;
}
.Footer_container .Footer_logo div {
  width: 10.5rem;
  margin: 1.5rem auto 0;
}
@media screen and (min-width: 782px) {
  .Footer_container.grid {
    grid-template-columns: repeat(2, auto);
    grid-template-rows: repeat(2, auto);
    padding: 3rem 5%;
  }
  .Footer_container .Nav_primary {
    grid-area: 1/1/2/2;
    padding: 0;
    flex-direction: row;
  }
  .Footer_container .Nav_primary li + li {
    margin-top: 0;
    margin-left: min(2rem, 2.2222222222vw);
  }
  .Footer_container .Nav_primary a {
    font-size: 1rem;
    line-height: 2;
  }
  .Footer_container .Nav_footer {
    grid-area: 2/1/3/2;
    align-self: end;
    margin-top: 2.5rem;
    padding: 0;
    flex-direction: row;
  }
  .Footer_container .Nav_footer li + li {
    margin-top: 0;
    margin-left: min(1.5rem, 1.6666666667vw);
  }
  .Footer_container .Footer_sns {
    grid-area: 1/2/2/3;
    justify-self: end;
    justify-content: flex-start;
    margin-top: 0;
  }
  .Footer_container .Footer_logo {
    grid-area: 2/2/3/3;
    justify-self: end;
    margin-top: 2.5rem;
  }
  .Footer_container .Footer_logo a {
    display: flex;
    align-items: baseline;
  }
  .Footer_container .Footer_logo span {
    font-size: 0.625rem;
  }
  .Footer_container .Footer_logo div {
    width: min(10.5rem, 11.6666666667vw);
    margin: 0 0 0 min(1rem, 1.1111111111vw);
  }
  .Footer_container .Footer_logo div img {
    vertical-align: bottom;
  }
}
@media screen and (min-width: 1024px) {
  .Footer_container .Footer_logo span {
    font-size: 0.75rem;
  }
  .Footer_container .Footer_logo div {
    margin: 0 0 0 min(2rem, 2.2222222222vw);
  }
}

.Footer_kazuma {
  margin-top: 2.5rem;
  text-align: center;
  color: #4b4b4b;
}
@media screen and (min-width: 782px) {
  .Footer_kazuma {
    margin-top: 3rem;
  }
}

.Footer_kazuma__link {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}

.Footer_kazuma__label {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
}

.Footer_kazuma__img {
  width: 8.25rem;
  margin: 1.25rem auto 0;
}

.Footer_kazuma__address {
  margin-top: 1.25rem;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.6;
}

.Footer_copyright {
  margin-top: 1rem;
  text-align: center;
}

.MenuButton_root {
  display: flex;
  align-items: center;
  position: fixed;
  z-index: 30;
  width: 3.4375rem;
  height: 3.75rem;
  top: 3.125rem;
  right: 0;
  transition: transform 0.5s var(--ease-main);
}
.MenuButton_root > button {
  position: relative;
  width: 20px;
  height: 14px;
  margin-left: 1.0625rem;
  outline: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.MenuButton_root > button i {
  display: block;
  overflow: hidden;
  position: absolute;
  width: 100%;
  height: 2px;
  margin: auto;
  right: 0;
}
.MenuButton_root > button i::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  transform-origin: 0 50%;
  border-radius: 0.0625rem;
}
.MenuButton_root > button i:nth-child(1) {
  top: 0;
  transition: top 0.3s var(--ease-main), transform 0.3s var(--ease-main);
  transition-delay: 0.3s, 0s;
}
.MenuButton_root > button i:nth-child(2) {
  top: 6px;
  transition: opacity 0.5s var(--ease-main);
}
.MenuButton_root > button i:nth-child(3) {
  bottom: 0;
  transition: bottom 0.3s var(--ease-main), transform 0.3s var(--ease-main);
  transition-delay: 0.3s, 0s;
}
body.is-scroll .MenuButton_root {
  transform: translateY(calc(-100% - 3.125rem));
}
body.is-menu-open .MenuButton_root, body.is-scroll-up .MenuButton_root {
  transform: translateY(-3.125rem);
}
body.is-menu-open .MenuButton_root > button i:nth-child(1) {
  top: 6px;
  transform: rotate(45deg);
  transition-delay: 0s, 0.5s;
}
body.is-menu-open .MenuButton_root > button i:nth-child(2) {
  opacity: 0;
}
body.is-menu-open .MenuButton_root > button i:nth-child(3) {
  bottom: 6px;
  transform: rotate(-45deg);
  transition-delay: 0s, 0.5s;
}
@media screen and (min-width: 782px) {
  .MenuButton_root {
    display: none;
  }
}

.Menu_root {
  position: fixed;
  z-index: 10;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  visibility: hidden;
  transition: visibility 0s;
  transition-delay: 0.5s;
}
.Menu_root .Search {
  margin-top: 2.25rem;
}
.Menu_root .Nav_primary li + li {
  margin-top: 1.5rem;
}
.Menu_root .Nav_primary a::after {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="%23000000"><path d="M6.89369 14.1382C6.70456 13.9486 6.59835 13.6917 6.59835 13.4239C6.59835 13.1561 6.70456 12.8992 6.89369 12.7096L10.3954 9.20794H2.15311C1.88506 9.20763 1.62811 9.10099 1.43868 8.91134C1.24925 8.72169 1.14285 8.46455 1.14285 8.1965C1.14285 7.92855 1.24929 7.67168 1.43875 7.48221C1.62822 7.29275 1.88516 7.18617 2.15311 7.18617H10.7988L6.89257 3.27992C6.70345 3.09032 6.59723 2.83344 6.59723 2.56564C6.59723 2.29783 6.70345 2.04096 6.89257 1.85135C7.08218 1.66222 7.33905 1.55615 7.60686 1.55615C7.87466 1.55615 8.13154 1.66222 8.32114 1.85135L13.7497 7.27992C13.8437 7.37357 13.9183 7.4849 13.9691 7.60749C14.0199 7.73008 14.0459 7.86151 14.0457 7.99421C14.0457 8.12688 14.0196 8.25836 13.9688 8.38093C13.918 8.50349 13.8436 8.61474 13.7497 8.7085L8.32114 14.1371C8.22746 14.231 8.11609 14.3056 7.99351 14.3564C7.87093 14.4072 7.73955 14.4333 7.60686 14.4331C7.47444 14.4333 7.34328 14.4072 7.22091 14.3567C7.09854 14.3061 6.98733 14.2318 6.89369 14.1382Z"/></svg>');
  display: block;
  margin-left: auto;
  width: 10px;
}
.Menu_root .Nav_primary .menu-link__description {
  display: inline-block;
  margin-left: 1rem;
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.5;
}
body.is-menu-open .Menu_root {
  visibility: visible;
  transition-delay: 0s;
}
@media screen and (min-width: 782px) {
  .Menu_root {
    display: none;
  }
}

.Menu_bg {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.Menu_bg::before, .Menu_bg::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 100%;
  width: 100%;
  height: 100%;
}
.Menu_bg::before {
  background-color: currentColor;
  opacity: 0;
  transition: opacity 0s var(--ease-main), transform 0.195s var(--ease-main);
  transition-delay: 0.5s, 0.3s;
}
.Menu_bg::after {
  width: 80%;
  background-color: #fff;
  transition: transform 0.35s var(--ease-main);
  transition-delay: 0.3s;
}
body.is-menu-open .Menu_bg::before {
  opacity: 1;
  transform: translateX(-100%);
  transition-duration: 0.1s, 0.3s;
  transition-delay: 0s;
}
body.is-menu-open .Menu_bg::after {
  transform: translateX(-100%);
  transition-delay: 0.15s;
}

.Menu_body {
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
  height: 100%;
  margin-left: 20%;
}

.Menu_wrapper {
  position: relative;
  padding: 4.5rem 10.6666666667% 3rem;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s var(--ease-main), transform 0.3s var(--ease-main);
  transition-delay: 0s, 0.4s;
}
body.is-menu-open .Menu_wrapper {
  opacity: 1;
  transform: translateX(0);
  transition-duration: 0.5s;
  transition-delay: 0.4s;
}

.Nav_primary {
  position: relative;
}
.Nav_primary a {
  display: flex;
  align-items: center;
}

.Nav_secondary {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-line);
}
.Nav_secondary li {
  font-size: 0.875rem;
  line-height: 2;
}
.Nav_secondary li a {
  display: block;
  color: var(--color-black);
}
.Nav_secondary li + li {
  margin-top: 0.5rem;
}

.Menu_others {
  align-items: center;
  margin-top: 3rem;
}
.Menu_others ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.Menu_others li a {
  display: block;
}
.Menu_others li img {
  width: 3.5rem;
}
.Menu_others li svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.Search .Search-form {
  display: flex;
  overflow: hidden;
  position: relative;
  height: 100%;
  border: 1px solid var(--color-line);
  border-radius: 0.25rem;
}
.Search input {
  flex: 1 1;
  width: 100%;
  height: 100%;
  padding: 0.625rem;
  font-size: 0.75rem;
  line-height: 1.6;
  border: none;
  outline: none;
}
.Search button {
  flex: none;
  display: block;
  position: relative;
  width: 3rem;
  background-color: #969696;
}
.Search button svg {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 1rem;
  height: 1rem;
  fill: #fff;
}

.Contact_img {
  position: relative;
  grid-area: 1/-1;
  padding-top: 80%;
}
.Contact_img::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.15);
  pointer-events: none;
}
.Contact_img img {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 782px) {
  .Contact_img {
    padding-top: 34.7222222222%;
  }
}

.Contact_content {
  grid-area: 1/-1;
  z-index: 1;
  margin: auto;
  text-align: center;
  color: #fff;
}

.Contact_title {
  padding-left: 0.4em;
  font-size: 2rem;
  font-family: var(--font-family--raleway);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.4em;
}
@media screen and (min-width: 782px) {
  .Contact_title {
    padding-left: 0.5em;
    font-size: 2.625rem;
    letter-spacing: 0.5em;
  }
}

.Contact_catch {
  margin-top: 1.25rem;
  font-size: 0.75rem;
  line-height: 1.8;
}
@media screen and (min-width: 782px) {
  .Contact_catch {
    margin-top: 2rem;
    font-size: 0.875rem;
  }
}

.Contact_button {
  margin-top: 1.25rem;
  background-color: #fff;
  border-radius: 3.875rem;
}
.Contact_button a {
  display: block;
  width: 16.75rem;
  margin: 0 auto;
  padding: 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (min-width: 782px) {
  .Contact_button {
    margin-top: 2rem;
  }
  .Contact_button a {
    width: 22.75rem;
    font-size: 1.25rem;
  }
}

.Breadcrumbs {
  display: flex;
  align-items: center;
  padding: 1.875rem 4% 0;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-black);
}
.Breadcrumbs span.aioseo-breadcrumb-separator {
  color: var(--color-gray);
}
.Breadcrumbs a {
  color: var(--color-black);
}
@media screen and (min-width: 782px) {
  .Breadcrumbs {
    padding: 3rem 10% 0;
    font-size: 1rem;
  }
}

.pagination {
  margin-top: 2.5rem;
}
.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 0;
}
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  -webkit-tap-highlight-color: transparent;
  background-color: transparent;
  outline: 0px;
  border: 1px solid var(--color-line);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  text-decoration: none;
  font-family: var(--font-family);
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1.8;
  border-radius: 50%;
  text-align: center;
  box-sizing: border-box;
  min-width: 1.75rem;
  height: 1.75rem;
  padding: 0px 6px;
  margin: 0 0.25rem;
  color: var(--color-black);
  transition: color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}
.pagination .page-numbers.current {
  color: #fff;
  border: none;
  background-color: var(--color-black);
}
.pagination .page-numbers.prev, .pagination .page-numbers.next {
  border: none;
}
.pagination .page-numbers.prev {
  margin-right: 1.25rem;
  margin-left: 0;
}
.pagination .page-numbers.next {
  margin-right: 0;
  margin-left: 1.25rem;
}
.pagination .page-numbers:hover {
  background-color: rgba(0, 0, 0, 0.04);
}
@media screen and (min-width: 782px) {
  .pagination {
    margin-top: 4.5rem;
  }
  .pagination .page-numbers {
    min-width: 2.5rem;
    height: 2.5rem;
    margin: 0 0.75rem;
    font-size: 1rem;
  }
  .pagination .page-numbers.prev .svg-icon, .pagination .page-numbers.next .svg-icon {
    width: 1.25rem;
    height: 1.25rem;
  }
}

.Main_root {
  padding: 6.875rem 0 6rem;
}
@media screen and (min-width: 782px) {
  .Main_root {
    padding: 10.625rem 0 7.5rem;
  }
}

.section_header {
  padding-bottom: 1.5rem;
  border-bottom: solid 1px var(--color-line);
}
._id__aside .section_header {
  border-bottom: 0 !important;
}
.section_header span {
  display: block;
  margin-top: 0.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.section_header__title {
  padding-left: 0.4em;
  font-size: 2.5rem;
  font-family: var(--font-family--raleway);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.4em;
  text-align: center;
  color: var(--color-black);
}
@media screen and (min-width: 782px) {
  .section_header {
    margin: 2.25rem 5.5555555556% 0;
    padding-bottom: 2.25rem;
  }
  .section_header span {
    margin-top: 1.25rem;
    font-size: 1.25rem;
  }
  .section_header__title {
    padding-left: 0.8em;
    font-size: 3.75rem;
    letter-spacing: 0.8em;
  }
}

._id__header {
  position: relative;
  padding: 2.25rem 4% 0;
}
@media screen and (min-width: 782px) {
  ._id__header {
    padding: 3rem 10% 0;
  }
}

._id__header__title {
  margin-top: 1rem;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-black);
  text-align: center;
}
@media screen and (min-width: 782px) {
  ._id__header__title {
    font-size: 2.375rem;
  }
}

._id__thumbnail {
  position: relative;
  margin-top: 1.5rem;
}
._id__thumbnail img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 782px) {
  ._id__thumbnail {
    margin: 3rem 10% 0;
  }
  ._id__thumbnail img {
    border-radius: 0.25rem;
  }
}

._id__container {
  padding-top: 4rem;
}
@media screen and (min-width: 782px) {
  ._id__container {
    padding: 6rem 10% 0;
  }
}

._id__body {
  margin: 0 0.9375rem;
}
@media screen and (min-width: 782px) {
  ._id__body {
    margin: 0;
  }
}

._id__aside {
  margin-top: 6.875rem;
  padding: 1rem 4%;
  background-color: #f6f6f6;
}
._id__aside .section_title {
  margin-top: 2rem;
}
@media screen and (min-width: 782px) {
  ._id__aside {
    margin-top: 10.625rem;
    padding: 4rem 5.5555555556%;
  }
}

._id__navPrevNext {
  padding: 0.5rem 8.5333333333%;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
._id__navPrevNext ul {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-areas: "prev index next";
  align-items: center;
}
._id__navPrevNext li:first-child {
  grid-area: index;
  text-align: center;
}
._id__navPrevNext li:first-child a {
  display: block;
  padding: 1rem;
}
._id__navPrevNext li:first-child svg {
  display: block;
  width: 1.75rem;
  margin: 0 auto;
  fill: currentColor;
}
._id__navPrevNext li:first-child span {
  display: none;
  margin-top: 0.5rem;
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1.6;
}
._id__navPrevNext li:nth-child(2), ._id__navPrevNext li:nth-child(3) {
  display: flex;
  align-items: center;
  position: relative;
  padding: 1rem 0;
}
._id__navPrevNext li:nth-child(2) svg, ._id__navPrevNext li:nth-child(3) svg {
  width: 1rem;
  fill: #ccc;
}
._id__navPrevNext li:nth-child(2) span, ._id__navPrevNext li:nth-child(3) span {
  padding: 0 1rem;
  font-size: 0.625rem;
  line-height: 1.6;
}
._id__navPrevNext li:nth-child(2) {
  grid-area: prev;
}
._id__navPrevNext li:nth-child(3) {
  grid-area: next;
}
@media screen and (min-width: 782px) {
  ._id__navPrevNext {
    padding: 2.4375rem 10%;
  }
  ._id__navPrevNext ul {
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas: "prev index next";
    align-items: center;
  }
  ._id__navPrevNext li:first-child a {
    display: flex;
    align-items: center;
  }
  ._id__navPrevNext li:first-child svg {
    width: 1.25rem;
  }
  ._id__navPrevNext li:first-child span {
    display: block;
    margin: 0 0 0 min(1.25rem, 1.3888888889vw);
    font-size: 1.25rem;
  }
  ._id__navPrevNext li:nth-child(2), ._id__navPrevNext li:nth-child(3) {
    display: inline-flex;
  }
  ._id__navPrevNext li:nth-child(2) span, ._id__navPrevNext li:nth-child(3) span {
    font-size: 0.875rem;
  }
  ._id__navPrevNext li:nth-child(3) {
    display: flex;
    justify-content: flex-end;
  }
  ._id__navPrevNext li:nth-child(3) a {
    justify-content: flex-end;
  }
  ._id__navPrevNext li:nth-child(3) span {
    order: -1;
  }
}

.Entry_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 2.5rem 0.9375rem;
  gap: 2.5rem 0.9375rem;
  margin: 2.25rem 4% 0;
}
.Entry_list .hentry a {
  display: block;
}
@media screen and (min-width: 782px) {
  .Entry_list {
    grid-template-columns: repeat(4, 1fr);
    gap: min(3rem, 3.3333333333vw) min(1.5rem, 1.6666666667vw);
    margin: 2.25rem 5.5555555556% 0;
  }
}

.Entry_list__link {
  margin-top: 0.5rem;
  text-align: center;
}
.Entry_list__link a {
  display: inline-block;
  padding-bottom: 0.5rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-black);
  border-bottom: 1px solid var(--color-base);
}
@media screen and (min-width: 782px) {
  .Entry_list__link {
    text-align: left;
  }
  .Entry_list__link a {
    margin-top: 1.5rem;
    padding-bottom: 0.625rem;
    font-size: 1.25rem;
  }
}

.Entry_list__item_thumbnail {
  position: relative;
  overflow: hidden;
  padding-top: 56.231884058%;
  border-radius: 0.25rem;
}
.Entry_list__item_thumbnail img {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: contain;
     object-fit: contain;
  transition: transform 0.5s var(--ease-main);
}
._id__aside .Entry_list__item_thumbnail {
  padding-top: 100%;
}
@media screen and (min-width: 782px) {
  .Entry_list__item_thumbnail {
    padding-top: 66.5562913907%;
  }
}

.Entry_list__item_title {
  margin-top: 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-black);
}
@media screen and (min-width: 782px) {
  .Entry_list__item_title {
    margin-top: 1rem;
    font-size: 1rem;
  }
}

.banner-content {
  display: flex;
  gap: 2rem;
  align-items: center;
  align-content: center;
  background: #f9f9f9;
}
.banner-link {
  display: block;
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}
.banner-link:hover:after {
  right: 10px;
  transition: 0.2s;
}
.banner-link:after {
  font-family: "Font Awesome 6 Free";
  content: "\f061";
  /* 右矢印のコード */
  font-weight: 900;
  position: absolute;
  right: 15px;
  /* 右端からの距離 */
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: #333;
}
.banner-img {
  width: 300px;
}
.banner-text {
  padding-right: 5rem;
}
.banner-title {
  font-size: 1.2rem;
  font-weight: 700;
}
.banner-desc {
  color: #888;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .banner-content {
    flex-direction: column;
    /* 縦並びに変更 */
    gap: 1rem;
    /* 隙間を少し狭める */
    align-items: flex-start;
    /* 左寄せ */
    padding-bottom: 2rem;
    /* 下に少し余白 */
  }
  .banner-img {
    width: 100%;
    /* 画像を横幅いっぱいにする */
    height: auto;
  }
  .banner-text {
    padding: 0 1.5rem 0 1.5rem;
    /* 左右に適切な余白を作る */
  }
  .banner-link:after {
    /* モバイルだと右矢印が邪魔になる、または位置がズレる場合 */
    top: auto;
    bottom: 15px;
    /* 下の方に移動 */
    right: 20px;
  }
  .banner-link:hover:after {
    right: 15px;
    /* ホバー時の動きも微調整 */
  }
}
/* レイアウト構築 */
.item-card p {
  margin-bottom: 0;
  line-height: 2;
}
.item-name {
  font-size: 1rem;
  margin-bottom: 0;
}
.item-txt-wrap {
  padding: 1rem 0;
}
.item-buttons {
  display: flex;
  flex-wrap: wrap;
  padding: 1rem 0;
  margin: -0.375rem -0.1875rem 0;
}
.item-buttons a {
  margin: 0.375rem 0.1875rem 0;
  display: block;
  position: relative;
  padding: 0.375rem 0.5625rem;
  font-size: 0.625rem;
  color: #000;
}
@media screen and (min-width: 768px) {
  .item-buttons a {
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
  }
}
.item-buttons a:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: 1px solid var(--color-line);
  border-radius: 2.5rem;
  pointer-events: none;
}

/* もっと見るボタン */
.more-btn-container {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.more-btn {
  display: block;
  width: 200px;
  padding: 8px;
  border: 1px solid #888;
  color: #888;
  text-align: center;
  border-radius: 100px;
}

/* 本文抜粋＆もっと見るボタン */
.more-btn-textarea {
  position: relative;
  overflow: hidden;
  transition: max-height 0.5s ease;
  /* 開くときのアニメーション */
}

/* 閉じている時の状態 */
.more-btn-textarea.is-closed {
  max-height: 140px;
  /* ここで表示させたい高さを調整 */
}

/* グラデーションを重ねる */
.more-btn-textarea.is-closed::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  /* グラデーションの高さ */
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgb(255, 255, 255));
}

/* 開いている時はグラデーションを消し、高さを十分にとる */
.more-btn-textarea.is-open {
  max-height: 2000px;
  /* 本文が収まる十分な高さ */
}

.more-btn-textarea.is-open::after {
  display: none;
}

.more-btn-container {
  text-align: center;
  margin-top: 20px;
}

/* スライダー用 */
/* スライダーの外枠 */
.slider-list {
  overflow: hidden;
  width: calc(100% - 80px);
  margin: 0 auto;
  /* はみ出しを隠す */
}

/* 実際にカードが並んでいるコンテナ（3層目）をターゲットにする */
.slider-list .wp-block-group.is-layout-grid {
  display: flex !important;
  /* グリッドを解除して横並びに */
  flex-wrap: nowrap !important;
  /* 折り返しを禁止 */
  overflow-x: auto;
  /* 横スクロールを許可 */
  scroll-behavior: smooth;
  /* アニメーション */
  gap: 16px;
  /* アイテム間の隙間 */
  -ms-overflow-style: none;
  /* スクロールバー非表示 (IE) */
  scrollbar-width: none;
  /* スクロールバー非表示 (Firefox) */
}

/* スクロールバー非表示 (Chrome, Safari) */
.slider-list .wp-block-group.is-layout-grid::-webkit-scrollbar {
  display: none;
}

/* カードの幅設定（PC: 6列） */
.slider-list .item-card {
  flex: 0 0 calc(16.6666666667% - 14px);
  /* 1行6列 */
  min-width: 200px;
  /* スマホで潰れないように */
  display: block !important;
  /* display:none が残っている場合に備えて */
}

/* ナビゲーション全体のコンテナを上に引き上げる */
.slider-nav {
  position: relative;
  height: 0;
  /* 高さをゼロにして後続要素への影響を消す */
  margin: 0;
  pointer-events: none;
  /* コンテナ自体はクリックをスルーさせる */
  top: -200px;
  /* ★スライダーの中央付近に来るよう数値を調整 */
}

/* ナビ全体の引き上げ設定（高さはスライダーに合わせて調整してください） */
.slider-nav {
  position: relative;
  height: 0;
  margin: 0;
  pointer-events: none;
  top: -240px;
  /* ★画像の中央に来るように調整 */
}

.slider-arrow {
  position: absolute;
  z-index: 100;
  pointer-events: auto;
  width: 30px;
  height: 30px;
  background: rgba(255, 255, 255, 0.9);
  color: #333;
  /* 矢印の色 */
  border: 1px solid #ddd;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease-in-out;
}

/* Font Awesomeアイコンのサイズ調整 */
.slider-arrow i {
  font-size: 18px;
}

.slider-arrow span {
  display: none;
}

.slider-arrow:hover {
  background: #333;
  color: #fff;
  border-color: #333;
  transform: translateY(0) scale(1.1);
  /* 少し大きくして浮かす */
}

/* 位置の微調整 */
.prev-js {
  left: 0px;
  /* ★スライダーの枠より少し外に浮かせる */
}

.next-js {
  right: 0px;
  /* ★スライダーの枠より少し外に浮かせる */
}

/* スマホ表示の時は矢印を内側に入れる */
@media (max-width: 768px) {
  .slider-nav {
    top: -200px;
  }
  /* スマホ用の高さ調整 */
}
/* TOPページ */
.front-wrap {
  margin: 0 auto;
  display: grid;
}
.item-container {
  display: flex;
  align-items: center;
  gap: 60px;
  /* 少し広めに取るとゆとりが出ます */
  margin: 80px auto;
  /* 前後の余白を広めに */
  padding: 30px;
  background: #fff;
  /* 背景は白にするのが今のトレンド */
  border-radius: 12px;
  /* 柔らかい影をつける */
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* マウスを乗せた時の動き */
.item-container:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.item-image {
  width: 45%;
  /* 少し大きめに */
  overflow: hidden;
  /* はみ出し防止 */
  border-radius: 12px;
}

.item-image img {
  width: 100%;
  height: 300px;
  /* 高さを固定して揃える */
  -o-object-fit: cover;
     object-fit: cover;
  /* 画像を切り抜いてフィットさせる（重要！） */
  transition: transform 0.5s ease;
}

/* ホバーで画像がじわっと拡大 */
.item-container:hover .item-image img {
  transform: scale(1.1);
}

/* テキスト部分の調整 */
.item-content {
  flex: 1;
  /* 残りの幅をすべて使う */
}

.item-content h2 {
  position: relative;
  margin-bottom: 20px;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-bottom: 0;
  /* 字間を少し広げる */
}

/* 見出しの下にアクセントライン */
.item-content h2::after {
  content: "";
  display: block;
  width: 50px;
  height: 3px;
  background: #888;
  /* アクセントカラー */
  margin-top: 10px;
}

.item-content p {
  color: #666;
  line-height: 1.6;
}

.item-container:nth-child(even) {
  flex-direction: row-reverse;
}

/* スマホ対応（画面が狭いときは縦並びにする） */
@media (max-width: 600px) {
  .item-image {
    width: 100%;
  }
  .item-container {
    flex-direction: column;
    /* 縦並びに変更 */
    text-align: center;
  }
  .item-container:nth-child(even) {
    flex-direction: column;
  }
  .item-image img {
    width: 100%;
    /* 画像を横幅いっぱいにする */
  }
}
/* モーダル背景 */
#custom-modal {
  position: fixed;
  z-index: 999999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0);
  /* 開始時は透明 */
  display: none;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
  /* 背景色を0.4秒かけて変化させる */
  transition: background-color 0.4s ease;
}

#custom-modal[style*="display: flex"] {
  background-color: rgba(0, 0, 0, 0.85);
}

/* モーダル内の画像 */
.modal-content {
  /* これが重要！ */
  max-width: 90%;
  /* 画面幅の90%以内に収める */
  max-height: 90%;
  /* 画面高さの90%以内に収める */
  width: auto;
  /* 横幅を自動計算（比率維持） */
  height: auto;
  /* 高さを自動計算（比率維持） */
  /* 念のための保険 */
  -o-object-fit: contain;
     object-fit: contain;
  border: 3px solid #fff;
  /* お好みで。少し枠があると写真っぽくなります */
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
  animation: richZoom 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* 閉じるボタン（×） */
.close-modal {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

/* ふわっと出すアニメーション */
/* リッチな動きの定義（イージングがポイント） */
@keyframes richZoom {
  0% {
    opacity: 0;
    transform: scale(0.9) translateY(20px);
    /* 少し小さく、下の方から */
    filter: blur(5px);
    /* 最初は少しボケさせる */
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
    /* 元のサイズ、元の位置へ */
    filter: blur(0);
  }
}
/* ギャラリー内の画像にマウスが乗ったら虫眼鏡にする */
.wp-block-gallery img,
.wp-block-gallery .wp-block-image img,
.entry-content .wp-block-gallery figure img {
  cursor: zoom-in !important;
  transition: opacity 0.2s ease-in-out;
}

/* ついでにホバー時に少し明るく（または暗く）して「クリックできる感」を出す */
.wp-block-gallery img:hover {
  opacity: 0.8 !important;
}

/* 260318 */
/* 親要素：横並びの設定 */
.front-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 2.5rem 0.9375rem;
  gap: 2.5rem 0.9375rem;
  margin: 2.25rem 4% 0;
}

@media screen and (min-width: 782px) {
  .front-wrap {
    grid-template-columns: repeat(4, 1fr);
    gap: min(3rem, 3.3333333333vw) min(1.5rem, 1.6666666667vw);
    margin: 2.25rem 5.5555555556% 0;
  }
}
/* 各記事（article）の基本設定 */
.front-wrap article {
  box-sizing: border-box;
  background: #fff;
  /* 背景色はお好みで */
  overflow: hidden;
  transition: transform 0.2s;
}

/* 記事内のリンクをブロック化 */
.front-wrap article a {
  text-decoration: none;
  color: inherit;
  display: block;
}

/* 画像を枠内に収める */
.front_list__item_thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- レスポンシブ設定 --- */
/* 【PC】4列並び（幅1025px以上） */
/* ホバー時の演出（おまけ） */
.front_list__item_title {
  margin: 1rem 0 0.5rem;
}/*# sourceMappingURL=styles.css.map */