@charset "UTF-8";
body {
  margin: 0;
  padding: 0;
  line-height: 1.8;
  background: #fbfbfb;
  font-family: "Montserrat", sans-serif;
  font-family: "IBM Plex Sans JP", sans-serif;
}

.root {
  overflow: hidden;
}
.center {
  text-align: center;
}

img {
  max-width: 100%;
}

h2 {
  font-weight: 500;
  padding: 50px 0 20px;
  margin: 0;
  position: relative;
  z-index: 4;
  line-height: 250px;
  min-height: 250px;
  background: 50% 50%/auto 250px repeat-x;
}
@media only screen and (max-width: 959px) {
  h2 {
    line-height: 150px;
    min-height: 150px;
    margin: 0;
    background: 50% 50%/auto 150px repeat-x;
  }
}
@media only screen and (max-width: 767px) {
  h2 {
    line-height: 125px;
    min-height: 125px;
    margin: 0;
    background: 50% 50%/auto 125px repeat-x;
  }
}
h2.h2_philosophy {
  background-image: url(../img/philosophy_txt.webp);
  animation: h2_philosophy 32s linear infinite;
}
@media only screen and (max-width: 959px) {
  h2.h2_philosophy {
    animation-duration: 64s;
  }
}
@media only screen and (max-width: 767px) {
  h2.h2_philosophy {
    animation-duration: 64s;
  }
}
@keyframes h2_philosophy {
  0% {
    background-position: 0 50%;
  }
  100% {
    background-position: 1600px 50%;
  }
}
h2.h2_action {
  background-image: url(../img/action_txt.webp);
  animation: h2_action 20s linear infinite;
}
@media only screen and (max-width: 959px) {
  h2.h2_action {
    animation-duration: 40s;
  }
}
@media only screen and (max-width: 767px) {
  h2.h2_action {
    animation-duration: 40s;
  }
}
@keyframes h2_action {
  0% {
    background-position: 0 50%;
  }
  100% {
    background-position: 1000px 50%;
  }
}
h2 ._jp {
  position: absolute;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.3ex;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
}
@media only screen and (min-width: 960px) and (max-width: 1229px) {
  h2 ._jp {
    padding: 0 20px;
  }
}
@media only screen and (max-width: 959px) {
  h2 ._jp {
    font-size: 36px;
    padding: 0 20px;
  }
}
@media only screen and (max-width: 767px) {
  h2 ._jp {
    font-size: 30px;
    padding: 0 20px;
  }
}
h2 ._jp span {
  display: block;
  max-width: 1200px;
  margin: auto;
}

header {
  background: #ffffff;
  min-height: 80px;
}
header .header_title {
  padding: 15px 30px;
  box-sizing: border-box;
  margin: auto;
}
header .header_title img {
  display: inline-block;
  max-height: 50px;
  vertical-align: middle;
}

.mainimg {
  background: url(../img/mainimg_bg.webp) 50% 50%/cover no-repeat;
  min-height: 1800px;
  overflow: hidden;
}
@media only screen and (max-width: 959px) {
  .mainimg {
    min-height: 1000px;
  }
}
.mainimg > div {
  position: relative;
  max-width: 1600px;
  margin: auto;
}
.mainimg > div img {
  display: block;
}
.mainimg .mainimg_pic01,
.mainimg .mainimg_pic02,
.mainimg .mainimg_pic03,
.mainimg .mainimg_pic04,
.mainimg .mainimg_pic05,
.mainimg .mainimg_pic06,
.mainimg .mainimg_pic07,
.mainimg .mainimg_pic08,
.mainimg .mainimg_pic09,
.mainimg .mainimg_pic10 {
  border-radius: 10px;
}
.mainimg .mainimg_pic01,
.mainimg .mainimg_pic02,
.mainimg .mainimg_pic03,
.mainimg .mainimg_pic04,
.mainimg .mainimg_pic05,
.mainimg .mainimg_pic06,
.mainimg .mainimg_pic07,
.mainimg .mainimg_pic08,
.mainimg .mainimg_pic09,
.mainimg .mainimg_pic10,
.mainimg .mainimg_ichigo,
.mainimg .mainimg_tomato {
  position: absolute;
}
.mainimg .mainimg_pic01 {
  width: 44.875%;
  left: 42.5%;
  top: 300px;
  z-index: 5;
}
.mainimg .mainimg_pic02 {
  width: 19.875%;
  left: 8.625%;
  top: 860px;
  z-index: 1;
}
.mainimg .mainimg_pic03 {
  width: 28.4375%;
  left: -20.625%;
  top: 304px;
  opacity: 0.5;
  filter: blur(5px);
  z-index: 1;
}
.mainimg .mainimg_pic04 {
  width: 41.25%;
  left: 85%;
  top: 420px;
  opacity: 0.5;
  filter: blur(10px);
}
.mainimg .mainimg_pic05 {
  width: 19.875%;
  left: 93.125%;
  top: 744px;
}
.mainimg .mainimg_pic06 {
  width: 38.75%;
  left: 67.5%;
  top: -700px;
}
.mainimg .mainimg_pic07 {
  width: 35%;
  left: 73.75%;
  top: 2000px;
  z-index: 4;
}
.mainimg .mainimg_pic08 {
  width: 30%;
  left: 33.75%;
  top: 1800px;
  z-index: 3;
}
.mainimg .mainimg_pic09 {
  width: 26.25%;
  left: -3.125%;
  top: 1500px;
  opacity: 0.6;
  filter: blur(3px);
  z-index: 0;
}
.mainimg .mainimg_pic10 {
  width: 31.25%;
  left: 68.75%;
  top: 1200px;
  opacity: 0.6;
  filter: blur(5px);
  z-index: 0;
}
.mainimg .mainimg_ichigo {
  width: 11.875%;
  left: 1.5625%;
  top: 1000px;
  z-index: 5;
}
.mainimg .mainimg_tomato {
  width: 15.3125%;
  left: 87.8125%;
  top: -300px;
  z-index: 5;
}
@media only screen and (max-width: 959px) {
  .mainimg .mainimg_pic01 {
    width: 75%;
    left: 15%;
    top: 450px;
    z-index: 5;
  }
  .mainimg .mainimg_pic02 {
    width: 29.8125%;
    left: 8.625%;
    top: 830px;
    z-index: 1;
  }
  .mainimg .mainimg_pic03 {
    width: 42.65625%;
    left: -21.875%;
    top: 40svh;
    opacity: 0.5;
    filter: blur(5px);
    z-index: 1;
  }
  .mainimg .mainimg_pic04 {
    width: 61.875%;
    left: 85%;
    top: 80svh;
    opacity: 0.5;
    filter: blur(10px);
  }
  .mainimg .mainimg_pic05 {
    width: 29.8125%;
    left: 62.5%;
    top: 90svh;
    opacity: 0.7;
    filter: blur(3px);
  }
  .mainimg .mainimg_pic06 {
    width: 58.125%;
    left: 86.25%;
    top: 15svh;
    opacity: 0.6;
    filter: blur(3px);
  }
  .mainimg .mainimg_pic07 {
    width: 43.125%;
    left: 1.25%;
    top: 650px;
    z-index: 4;
  }
  .mainimg .mainimg_pic08 {
    width: 52.5%;
    left: 50%;
    top: 800px;
    z-index: 3;
  }
  .mainimg .mainimg_pic09 {
    width: 39.375%;
    left: -3.125%;
    top: 80svh;
    opacity: 0.6;
    filter: blur(3px);
    z-index: 0;
  }
  .mainimg .mainimg_pic10 {
    width: 46.875%;
    left: 68.75%;
    top: 85svh;
    opacity: 0.6;
    filter: blur(5px);
    z-index: 0;
  }
  .mainimg .mainimg_ichigo {
    width: 23.75%;
    left: -6.25%;
    top: 1000px;
    z-index: 5;
  }
  .mainimg .mainimg_tomato {
    width: 30.625%;
    left: 87.8125%;
    top: -300px;
    z-index: 5;
  }
}
.mainimg .btn_message {
  left: 0;
  top: 0px;
  position: absolute;
  z-index: 12;
}
.mainimg .btn_message h1 {
  margin: 0;
  padding: 60px 80px;
}
.mainimg .btn_message h1 img {
  width: 540px;
}
.mainimg .btn_message button {
  width: 205px;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0 auto;
  display: block;
  position: relative;
  cursor: pointer;
  transition: 0.3s all;
}
.mainimg .btn_message button:hover, .mainimg .btn_message button:active {
  transform: scale(1.2);
}
.mainimg .btn_message button::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/btn_messae_circle.webp) 50% 50%/contain no-repeat;
  animation: rotateCircle 40s linear infinite;
}
@keyframes rotateCircle {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-360deg);
  }
}
.mainimg .btn_message button img {
  display: block;
}

.section_philosophy {
  overflow-x: hidden;
  background: url(../img/philosophy_base.webp) 100% 0/100% auto no-repeat;
}
.section_philosophy .philosophy_bg {
  position: relative;
  width: 1200px;
  margin: auto;
  pointer-events: none;
}
.section_philosophy .philosophy_bg img {
  display: block;
  position: absolute;
  display: block;
}
.section_philosophy .philosophy_bg .philosophy_bg02 {
  width: 450px;
  left: -380px;
  top: -120px;
}
.section_philosophy .philosophy_bg .philosophy_bg03a {
  width: 460px;
  right: -500px;
  top: 400px;
}
.section_philosophy .philosophy_bg .philosophy_bg03b {
  width: 460px;
  left: -200px;
  top: 800px;
}
.section_philosophy .philosophy_column {
  display: flex;
  max-width: 1200px;
  justify-content: space-between;
  margin: auto;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_column {
    display: block;
    margin: 0 25px;
  }
}
.section_philosophy .philosophy_column > div img {
  display: block;
}
.section_philosophy .philosophy_column > div.philosophy_column_desc {
  width: 610px;
  letter-spacing: 0.2ex;
  line-height: 2;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_column > div.philosophy_column_desc {
    width: auto;
  }
}
.section_philosophy .philosophy_column > div.philosophy_column_desc img {
  width: 415px;
  margin: 0 auto 3em;
}
.section_philosophy .philosophy_column > div.philosophy_column_desc .btn_container {
  padding-top: 1.5em;
}
.section_philosophy .philosophy_column > div.philosophy_column_img {
  width: 540px;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_column > div.philosophy_column_img {
    width: auto;
    margin: 40px 0;
  }
}
.section_philosophy .philosophy_column > div.philosophy_column_img.ready > div .philosophy_pic01a {
  opacity: 0;
  transform: translateY(100px);
}
.section_philosophy .philosophy_column > div.philosophy_column_img.ready > div .philosophy_pic01b {
  opacity: 0;
  transform: translateY(100px);
}
.section_philosophy .philosophy_column > div.philosophy_column_img > div {
  position: relative;
}
.section_philosophy .philosophy_column > div.philosophy_column_img > div img {
  margin: auto;
  border-radius: 10px;
  box-shadow: 15px 15px 20px rgba(74, 57, 46, 0.1333333333);
}
.section_philosophy .philosophy_column > div.philosophy_column_img > div img.philosophy_pic01a {
  width: 537px;
  left: 20px;
  position: relative;
  transition: 1.2s all cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_column > div.philosophy_column_img > div img.philosophy_pic01a {
    width: 80%;
    left: 0;
    margin: 0;
  }
}
.section_philosophy .philosophy_column > div.philosophy_column_img > div img.philosophy_pic01b {
  width: 281px;
  right: -100px;
  bottom: -140px;
  position: absolute;
  transition: 1.2s all cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-delay: 0.3s;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_column > div.philosophy_column_img > div img.philosophy_pic01b {
    width: 40%;
    right: 0;
    bottom: -30px;
  }
}
.section_philosophy .philosophy_fig {
  position: relative;
  text-align: center;
}
.section_philosophy .philosophy_fig.ready > div .philosophy_fig01a {
  opacity: 0;
  transform: translateY(100px);
}
.section_philosophy .philosophy_fig.ready > div .philosophy_fig01b {
  opacity: 0;
  transform: rotate(-90deg) scale(1.3);
}
.section_philosophy .philosophy_fig > div {
  position: relative;
  display: inline-block;
}
.section_philosophy .philosophy_fig > div .philosophy_fig01a {
  width: 415px;
  vertical-align: middle;
  transition: 0.8s all cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.section_philosophy .philosophy_fig > div .philosophy_fig01b {
  width: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  transition: 1s all cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition-delay: 0.3s;
}
.section_philosophy .philosophy_slides {
  margin-top: 160px;
}
.section_philosophy .philosophy_slides .philosophy_slides_list {
  list-style-type: none;
  margin: 0;
  padding: 0 0 60px;
  display: flex;
  justify-content: start;
  transition-timing-function: linear;
}
.section_philosophy .philosophy_slides .philosophy_slides_list div {
  box-sizing: border-box;
  padding: 0 27px;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_slides .philosophy_slides_list div {
    padding: 0 20px;
  }
}
@media only screen and (max-width: 767px) {
  .section_philosophy .philosophy_slides .philosophy_slides_list div {
    padding: 0 10px;
  }
}
.section_philosophy .philosophy_slides .philosophy_slides_list div img {
  max-width: 360px;
  display: block;
  transition: 1s margin-top;
  box-shadow: 15px 15px 20px rgba(74, 57, 46, 0.1333333333);
  border-radius: 10px;
}
@media only screen and (max-width: 959px) {
  .section_philosophy .philosophy_slides .philosophy_slides_list div img {
    max-width: 240px;
  }
}
@media only screen and (max-width: 767px) {
  .section_philosophy .philosophy_slides .philosophy_slides_list div img {
    max-width: 160px;
  }
}
.section_philosophy .philosophy_slides .philosophy_slides_list div:nth-child(even) img {
  margin-top: 60px;
}

.section_action {
  position: relative;
  background: url(../img/action_bg01.webp) 100% 0%/100% auto no-repeat;
}
.section_action .sticky {
  position: relative;
  min-height: 100vh;
}
.section_action .section_bg {
  position: relative;
  width: 1200px;
  margin: auto;
  pointer-events: none;
}
@media only screen and (max-width: 959px) {
  .section_action .section_bg {
    width: auto;
  }
}
.section_action .section_bg img {
  position: absolute;
  display: block;
}
.section_action .section_bg .action_bg02 {
  width: 632px;
  left: -180px;
  top: -120px;
}
.section_action .action_list {
  will-change: transform;
  margin: 0;
  padding: 0 100px;
  box-sizing: border-box;
  display: flex;
}
@media only screen and (max-width: 959px) {
  .section_action .action_list {
    padding: 0 0px;
    flex-wrap: wrap;
  }
}
.section_action .action_list > li {
  margin: 0;
  padding: 0 25px;
  display: flex;
  box-sizing: border-box;
}
@media only screen and (max-width: 959px) {
  .section_action .action_list > li {
    padding: 10px;
    width: 33.33%;
  }
}
@media only screen and (max-width: 767px) {
  .section_action .action_list > li {
    padding: 5px;
    width: 50%;
  }
}
.section_action .action_list > li button {
  border: none;
  background: #ffffff;
  border-radius: 10px;
  padding: 30px 30px 25px;
  box-sizing: border-box;
  width: 440px;
  text-decoration: none;
  color: #333333;
  display: flex;
  flex-direction: column;
  text-align: left;
  font-size: 16px;
  font-family: "IBM Plex Sans JP", sans-serif;
  cursor: pointer;
  box-shadow: 10px 10px 50px rgba(95, 89, 79, 0.0666666667);
  position: relative;
  transition: 0.3s all;
}
@media only screen and (max-width: 959px) {
  .section_action .action_list > li button {
    width: 400px;
    padding: 20px 20px 15px;
  }
}
@media only screen and (max-width: 767px) {
  .section_action .action_list > li button {
    width: 300px;
    padding: 15px 15px 15px;
  }
}
.section_action .action_list > li button::before {
  content: "";
  border-radius: 10px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 3px solid #75645c;
  transition: 0.3s all;
  opacity: 0;
  box-sizing: border-box;
}
.section_action .action_list > li button:hover, .section_action .action_list > li button:active {
  background: #ede7e5;
}
.section_action .action_list > li button:hover::before, .section_action .action_list > li button:active::before {
  opacity: 1;
}
.section_action .action_list > li button:hover .btn, .section_action .action_list > li button:active .btn {
  background: #000000;
}
.section_action .action_list > li button ._img {
  display: block;
  aspect-ratio: 380/245;
  position: relative;
  width: stretch;
}
.section_action .action_list > li button ._img img {
  display: block;
}
.section_action .action_list > li button ._attr {
  display: flex;
  justify-content: space-between;
  margin: 1ex 0;
}
.section_action .action_list > li button ._attr ._date {
  display: block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.2ex;
  font-weight: 600;
  color: #493b33;
}
.section_action .action_list > li button ._attr ._label {
  display: block;
}
.section_action .action_list > li button ._attr ._label .label {
  letter-spacing: 0.2ex;
  font-weight: 600;
  color: #ffffff;
  background: #333333;
  border-radius: 1em;
  font-size: 14px;
  padding: 0 1em;
}
.section_action .action_list > li button ._attr ._label .label.label_keiei {
  background: #e5b940;
}
.section_action .action_list > li button ._attr ._label .label.label_jinzai {
  background: #e49191;
}
.section_action .action_list > li button ._attr ._label .label.label_kakushin {
  background: #7db5be;
}
.section_action .action_list > li button ._title {
  display: block;
  letter-spacing: 0.2ex;
  font-weight: 600;
  margin-bottom: 1ex;
  flex-grow: 1;
}
.section_action .action_list > li button ._footer {
  display: block;
  text-align: center;
}
.section_action .action_list > li button ._footer .btn {
  padding: 1.2ex 1.6em;
  font-weight: 500;
  font-size: 14px;
  min-width: 0;
  letter-spacing: 0.2ex;
  background-image: none;
}

.smile_section {
  padding-top: 250px;
  background: url(../img/smile_bg.webp) 50% 0/100% auto no-repeat;
  overflow: hidden;
}
@media only screen and (max-width: 959px) {
  .smile_section {
    padding-top: 150px;
  }
}
.smile_section .smile_bg {
  position: relative;
  margin: auto;
  width: 1200px;
  pointer-events: none;
}
@media only screen and (max-width: 959px) {
  .smile_section .smile_bg {
    width: auto;
  }
}
.smile_section .smile_bg img {
  display: block;
  position: absolute;
}
.smile_section .smile_bg .smile_bg01 {
  width: 260px;
  left: -250px;
  bottom: -120px;
}
@media only screen and (max-width: 959px) {
  .smile_section .smile_bg .smile_bg01 {
    width: 195px;
    left: -125px;
    bottom: -120px;
  }
}
.smile_section .smile_bg .smile_bg02 {
  width: 300px;
  right: -300px;
  bottom: 0;
}
@media only screen and (max-width: 959px) {
  .smile_section .smile_bg .smile_bg02 {
    width: 225px;
    right: -75px;
    bottom: -50px;
  }
}

.smile_column {
  width: 1200px;
  max-width: 100%;
  margin: auto;
  display: flex;
  justify-content: space-between;
  padding-bottom: 150px;
}
@media only screen and (max-width: 959px) {
  .smile_column {
    width: auto;
    display: block;
    margin: 0 25px;
  }
}
.smile_column .smile_column_img {
  width: 44.75%;
  position: relative;
}
.smile_column .smile_column_img.ready .smile_pic01 {
  opacity: 0;
  transform: translateY(100px);
}
.smile_column .smile_column_img.ready .smile_pic02 {
  opacity: 0;
  transform: translateY(100px);
}
@media only screen and (max-width: 959px) {
  .smile_column .smile_column_img {
    width: auto;
  }
}
.smile_column .smile_column_img .smile_pic01 {
  position: relative;
  left: -95px;
  width: 537px;
  box-shadow: 15px 15px 20px rgba(74, 57, 46, 0.1333333333);
  border-radius: 10px;
  transition: 1.2s all cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media only screen and (max-width: 959px) {
  .smile_column .smile_column_img .smile_pic01 {
    width: 80%;
    left: 0;
    margin: 0;
  }
}
.smile_column .smile_column_img .smile_pic02 {
  width: 281px;
  position: absolute;
  right: 10px;
  bottom: -55px;
  box-shadow: 15px 15px 20px rgba(74, 57, 46, 0.1333333333);
  border-radius: 10px;
  transition: 1.2s all cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-delay: 0.3s;
}
@media only screen and (max-width: 959px) {
  .smile_column .smile_column_img .smile_pic02 {
    width: 50%;
    right: 0;
    bottom: -30px;
  }
}
.smile_column .smile_column_desc {
  width: 45.8333333333%;
  padding-left: 40px;
}
@media only screen and (max-width: 959px) {
  .smile_column .smile_column_desc {
    width: auto;
    margin-top: 50px;
    padding-left: 0;
  }
}
.smile_column .smile_column_desc .smile_title {
  padding: 50px 0 30px;
}
.smile_column .smile_column_desc .smile_title img {
  width: 550px;
  max-width: 100%;
  display: block;
}
.smile_column .smile_column_desc p {
  line-height: 2.4;
  font-size: 16px;
  letter-spacing: 0.15ex;
  margin: 2em 0;
}

.totop {
  position: fixed;
  width: 100%;
  z-index: 100;
  margin-top: 40px;
  bottom: -150px;
  transition: 0.3s bottom;
  pointer-events: none;
  z-index: 10;
}
.totop.active {
  bottom: 10px;
}
.totop > div {
  margin: auto;
  position: relative;
}
.totop > div a {
  overflow: hidden;
  margin: -40px 10px 16px auto;
  transition: 0.3s all;
  width: 120px;
  pointer-events: auto;
  display: block;
  border-radius: 50% 50%;
  position: relative;
}
.totop > div a::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  animation: rotateCircle 40s linear infinite;
  background: url(../img/totop_round.webp) 50% 50%/cover no-repeat;
}
.totop > div a img {
  display: block;
  max-width: 100%;
}
@media only screen and (max-width: 767px) {
  .totop > div a {
    margin: -40px auto 16px;
  }
}
.totop > div a:hover, .totop > div a:active {
  transform: translateY(3px);
  opacity: 0.7;
}

footer {
  overflow-x: hidden;
}
footer ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  padding: 0;
  margin: 0;
}
footer ul > li {
  width: 33.333%;
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  justify-content: stretch;
  align-items: stretch;
  padding: 0;
  margin: 0;
  min-height: 220px;
}
@media only screen and (max-width: 959px) {
  footer ul > li {
    min-height: 160px;
  }
}
@media only screen and (max-width: 767px) {
  footer ul > li {
    min-height: 100px;
  }
}
footer ul > li a {
  display: flex;
  position: relative;
  width: 100%;
  text-decoration: none;
  color: #ffffff;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  line-height: 1.5;
  overflow: hidden;
}
footer ul > li a:hover img, footer ul > li a:active img {
  transform: scale(1.1);
}
footer ul > li a span {
  position: relative;
  z-index: 1;
  display: block;
  text-align: center;
}
footer ul > li a span._en {
  font-family: "Montserrat", sans-serif;
  font-size: 18px;
  letter-spacing: 0.2ex;
  font-weight: 500;
}
@media only screen and (max-width: 959px) {
  footer ul > li a span._en {
    font-size: 16px;
  }
}
@media only screen and (max-width: 767px) {
  footer ul > li a span._en {
    font-size: 14px;
  }
}
footer ul > li a span._jp {
  font-size: 30px;
  letter-spacing: 0.2ex;
  font-weight: 600;
}
@media only screen and (max-width: 959px) {
  footer ul > li a span._jp {
    font-size: 24px;
  }
}
@media only screen and (max-width: 767px) {
  footer ul > li a span._jp {
    font-size: 18px;
    letter-spacing: 0.1ex;
  }
}
footer ul > li a img {
  display: block;
  object-fit: cover;
  position: absolute;
  width: 100%;
  height: 100%;
  transition: 0.7s all;
}

.copyright {
  background: #271c19;
  color: #ffffff;
  letter-spacing: 0.2ex;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  padding: 1ex;
}

.btn,
a.btn {
  border: none;
  font-size: 16px;
  cursor: pointer;
  text-align: center;
  border-radius: 3em;
  padding: 1.1em 2em;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
  color: #ffffff;
  text-decoration: none;
  min-width: 210px;
  box-sizing: border-box;
  display: inline-block;
  background: #75645c url(../img/btn_arrow.webp) calc(100% - 20px) 50%/12px 11px no-repeat;
  transition: 0.3s all;
}
.btn:hover, .btn:active,
a.btn:hover,
a.btn:active {
  background-color: #000000;
  transform: translateY(3px);
}

.micromodal-slide {
  display: none;
  /* 開く */
  /* 閉じる */
}
.micromodal-slide.is-open {
  display: block;
}
.micromodal-slide[aria-hidden=false] .modal__overlay {
  animation: fadeIn 0.3s forwards;
}
.micromodal-slide[aria-hidden=false] .modal__container {
  animation: slideIn 0.3s forwards;
}
.micromodal-slide[aria-hidden=true] .modal__overlay {
  animation: fadeOut 0.3s forwards;
}
.micromodal-slide[aria-hidden=true] .modal__container {
  animation: slideOut 0.3s forwards;
}

.modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.modal__container {
  background: #ffffff;
  border-radius: 20px;
  width: 1000px;
  max-width: 90%;
  box-sizing: border-box;
  max-height: 90%;
  overflow: auto;
}

.modal_title {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.2ex;
  color: #4b3e36;
  font-family: "Noto Sans JP", sans-serif;
  background: url(../img/modal_title_bg_l_gray.webp) 0 50%/contain no-repeat;
  box-sizing: border-box;
  line-height: 1.6;
  padding: 0.5ex 60px 0.5ex 0;
}
@media only screen and (max-width: 959px) {
  .modal_title {
    font-size: 24px;
  }
}
@media only screen and (max-width: 767px) {
  .modal_title {
    font-size: 21px;
    letter-spacing: 0.1ex;
  }
}
.modal_title._sm {
  background-image: url(../img/modal_title_bg_s_gray.webp);
}

.modal__content {
  padding: 40px 80px;
  font-size: 16px;
  line-height: 2.25;
  box-sizing: border-box;
}
@media only screen and (max-width: 959px) {
  .modal__content {
    padding: 30px 30px;
  }
}
@media only screen and (max-width: 767px) {
  .modal__content {
    padding: 20px 20px;
  }
}
.modal__content.bg_gray {
  background: #f5f5f5;
}
.modal__content.bg_gray .modal_title {
  background-image: url(../img/modal_title_bg_l_white.webp);
}
.modal__content.bg_gray .modal_title._sm {
  background-image: url(../img/modal_title_bg_s_white.webp);
}
.modal__content .poppins {
  font-size: 20px;
  font-family: "Poppins", sans-serif;
}
.modal__content .chaplin_column {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
}
@media only screen and (max-width: 959px) {
  .modal__content .chaplin_column {
    display: block;
  }
}
.modal__content .chaplin_column > *:first-child {
  width: 400px;
}
@media only screen and (max-width: 959px) {
  .modal__content .chaplin_column > *:first-child {
    width: auto;
  }
  .modal__content .chaplin_column > *:first-child img {
    margin: auto;
    display: block;
    max-width: 70%;
  }
}
.modal__content .chaplin_column > *:last-child {
  padding-right: 40px;
  width: 400px;
  box-sizing: border-box;
}
@media only screen and (max-width: 959px) {
  .modal__content .chaplin_column > *:last-child {
    width: auto;
  }
}
.modal__content .philosophy_lead {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
}
.modal__content.philosophy_jinzai .philosophy_lead,
.modal__content.philosophy_jinzai .philosophy_ul li::before {
  color: #e39393;
}
.modal__content.philosophy_jinzai .philosophy_conclusion::before {
  background: linear-gradient(90deg, #faeded 45%, rgba(250, 237, 237, 0) 55%);
}
.modal__content.philosophy_keiei .philosophy_lead,
.modal__content.philosophy_keiei .philosophy_ul li::before {
  color: #e6ba40;
}
.modal__content.philosophy_keiei .philosophy_conclusion::before {
  background: linear-gradient(90deg, #f2ead4 45%, rgba(242, 234, 212, 0) 55%);
}
.modal__content.philosophy_kakushin .philosophy_lead,
.modal__content.philosophy_kakushin .philosophy_ul li::before {
  color: #7db5be;
}
.modal__content.philosophy_kakushin .philosophy_conclusion::before {
  background: linear-gradient(90deg, #e8f2f3 45%, rgba(232, 242, 243, 0) 55%);
}
.modal__content .philosophy_ul {
  list-style: none;
  margin: 0 0 0 1.6em;
  padding: 0;
}
.modal__content .philosophy_ul li {
  position: relative;
  margin: 0;
  padding: 0.3ex 0;
  line-height: 2;
}
.modal__content .philosophy_ul li::before {
  content: "●";
  position: absolute;
  transform: scale(0.6);
  left: -1.5em;
}
.modal__content .philosophy_conclusion {
  font-size: 18px;
  position: 0;
  margin: 1ex 0;
  padding: 0;
  position: relative;
  line-height: 1.6;
}
.modal__content .philosophy_conclusion::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  background: linear-gradient(90deg, #e8f2f3 45%, rgba(232, 242, 243, 0) 55%);
  height: 50%;
  bottom: 0;
}
@media only screen and (max-width: 959px) {
  .modal__content .philosophy_conclusion::before {
    content: none;
  }
}
.modal__content .philosophy_conclusion > span {
  position: relative;
  z-index: 1;
}

.modal_action .modal__content {
  padding: 80px 80px;
}
@media only screen and (max-width: 959px) {
  .modal_action .modal__content {
    padding: 30px 30px;
  }
}
@media only screen and (max-width: 767px) {
  .modal_action .modal__content {
    padding: 20px 20px;
  }
}
.modal_action .modal_title {
  padding-left: 1ex;
  margin-bottom: 0.5ex;
}
.modal_action .modal_action_title {
  color: #4b3e36;
  font-size: 18px;
  letter-spacing: 0.2ex;
  position: relative;
  line-height: 1.6;
  font-weight: 700;
  font-family: "Noto Sans JP", sans-serif;
  padding: 0.5ex 0;
}
.modal_action .modal_action_title > span {
  position: relative;
  z-index: 2;
}
.modal_action .modal_action_title::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  background: linear-gradient(90deg, #e8f2f3 20%, rgba(232, 242, 243, 0) 80%);
  height: 1ex;
  bottom: 0;
  transform: rotate(-0.66deg);
}
.modal_action._keiei .modal_title {
  color: #e5b940;
}
.modal_action._keiei .modal_action_title::before {
  background: linear-gradient(90deg, rgba(229, 185, 64, 0.4) 20%, rgba(229, 185, 64, 0) 80%);
}
.modal_action._jinzai .modal_title {
  color: #e49191;
}
.modal_action._jinzai .modal_action_title::before {
  background: linear-gradient(90deg, rgba(228, 145, 145, 0.4) 20%, rgba(228, 145, 145, 0) 80%);
}
.modal_action._kakushin .modal_title {
  color: #7db5be;
}
.modal_action._kakushin .modal_action_title::before {
  background: linear-gradient(90deg, rgba(125, 181, 190, 0.4) 45%, rgba(125, 181, 190, 0) 55%);
}
.modal_action .modal_action_column {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
}
@media only screen and (max-width: 959px) {
  .modal_action .modal_action_column {
    display: block;
  }
}
.modal_action .modal_action_column ._img {
  width: 360px;
}
.modal_action .modal_action_column ._img img {
  display: block;
}
@media only screen and (max-width: 959px) {
  .modal_action .modal_action_column ._img {
    width: auto;
  }
}
.modal_action .modal_action_column ._desc {
  width: 480px;
  padding-right: 40px;
  box-sizing: border-box;
}
@media only screen and (max-width: 959px) {
  .modal_action .modal_action_column ._desc {
    width: auto;
  }
}

.modal__close {
  width: 40px;
  background: #4b3e36;
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: none;
  position: absolute;
  top: 20px;
  right: 20px;
  cursor: pointer;
}
.modal__close::before, .modal__close::after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  position: absolute;
  background: #ffffff;
  top: 50%;
  left: 50%;
}
.modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes slideIn {
  from {
    transform: translateY(20%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes slideOut {
  from {
    transform: translateY(0);
    opacity: 1;
  }
  to {
    transform: translateY(-10%);
    opacity: 0;
  }
}

/*# sourceMappingURL=common.css.map */
