@charset "UTF-8";
:root {
	/* color */
  --blk: 35, 24, 21; /* #231815 */
	--wht: 255, 255, 255;
  --base: 255, 255, 20; /* #FFFF14 */
  --gray: 190, 202, 202; /* #BECACA */
	/* layout */
	--gap-8: 0.5em;
	--gap-16: 1em;
	--gap-24: 1.5em;
	--gap-32: 2em;
	--gap-40: 2.5em;
	--gap-56: 3.5em;
	--gap-64: 4em;
	/* font */
	--font-jp: YuGothic, "Yu Gothic Medium", "Yu Gothic", -apple-system, BlinkMacSystemFont, Meiryo, sans-serif;
	--font-en: "Jost", sans-serif;
}
* html body {
  background: url(null) fixed;
}
html {
  font-size: 62.5%;
  overflow-x: hidden;
}
/*ナビ表示のときはスクロールしないように*/
html.is-locked {
    overflow-y: hidden;
}
body {
  margin: 0;
  padding: 0;
  background: rgb(var(--wht));
  color: rgb(var(--blk));
  font-size: 14px;
  line-height: 1.8;
  font-family: var(--font-jp);
  font-weight: 400;
  font-style: normal;
  overflow-wrap: break-word;
  text-size-adjust: 100%;
  /* font-feature-settings: "palt"; */
  font-feature-settings: "pkna";
  letter-spacing: .075em;
	-webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
.sp-hidden {
  display: none;
}
.pc-hidden {
  display: block;
}
@media screen and (min-width: 768px) {
  body {
    font-size: 1.5rem; /* 15px */
  }
}
@media screen and (min-width: 1025px) {
  body {
    font-size: 1.6rem; /* 16px */
  }
  .sp-hidden {
    display: block;
  }
  .pc-hidden {
    display: none;
  }
}

/* reCAPTCHAバッヂ 非表示 */
.grecaptcha-badge {
  visibility: hidden;
  opacity: 0;
}

/* ------------------------------------------------------------ */
/* common layouts */
/* ------------------------------------------------------------ */
.wrapper {
  width: 100%;
  height: auto;
  overflow: hidden;
}
.content {
  width: 100%;
  height: auto;
  position: relative;
  padding: 0;
  margin: 0 auto;
}
.base {
  width: 100%;
  height: auto;
  position: relative;
  padding: 2.5em 0;
  margin: 0 auto;
}
.inner {
  width: 100%;
  max-width: 100%;
  height: auto;
  padding: 0 2em;
  margin: 0 auto;
  clear: both;
}
.inner::after {
  content: "";
  clear: both;
  display: block;
}
.bg_color {
  background: #eaeaea;
}
.bg_grad {
  background: linear-gradient(to right, #F9E9A7, #CFE2AA);
}
.bg::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.10);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
/* ------------------------------------------------------------ */
/* img */
/* ------------------------------------------------------------ */
.thum, .image, .banner {
  margin: 0 auto;
  text-align: center;
}
/* ------------------------------------------------------------ */
/* link */
/* ------------------------------------------------------------ */
::selection {
	color: rgb(var(--blk));
	background: rgba(var(--blk), 0.1);
	text-shadow: none;
}
::-moz-selection {
	color: rgb(var(--blk));
	background: rgba(var(--blk), 0.1);
	text-shadow: none;
}
a {
	color: inherit;
	cursor: pointer;
	line-height: inherit;
	-webkit-transition: all 0.2s linear;
	transition: all 0.2s linear;
	text-decoration: none;
}
a:link,
a:visited,
a:active {
	color: inherit;
	text-decoration: none;
}
a:hover {
	opacity: 0.8;
}
/* ------------------------------------------------------------ */
/* ボタン */
/* ------------------------------------------------------------ */
.btn {
  width: 100%;
}
.btn .btn-link {
  display: inline-block;
  line-height: 1.5;
  min-width: 220px;
  max-width: 100%;
  min-height: inherit;
  color: rgb(var(--blk));
  border: 1px solid rgb(var(--blk));
  padding: 0.8em 1.2em;
  font-size: .85em;
  font-weight: 600;
  text-align: center;
  white-space: pre-wrap;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  position: relative;
}
.btn .btn-link.font-en {
  font-weight: 500;
}
.btn .btn-link::after {
  content: '';
  display: block;
  width: 0;
  height: 100%;
  background-color: rgb(var(--base));
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.3s ease-in-out;
  z-index: -1;
}
.btn .btn-link.on_ylw::after {
  background-color: rgb(var(--wht));
}
.btn .btn-link.on_blk::after {
  background-color: rgb(var(--blk));
}
.btn .btn-link:hover {
  opacity: 1;
}
.btn .btn-link:hover::after {
  width: 100%;
}
.btn .btn-link.on_blk:hover {
  color: rgb(var(--base));
}

.btn.btn_flx {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.btn.btn_flx .btn-link {
  flex: 1;
  margin: .5em;
}
/* ------------------------------------------------------------ */
/* ttl */
/* ------------------------------------------------------------ */
.main-ttl {
  font-size: 3.5rem;
  margin: 0 auto 1em;
  font-family: var(--font-en);
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
}
.main-ttl span {
  display: inline-block;
  line-height: 1;
  position: relative;
  letter-spacing: .075em;
}
.main-ttl span::after {
  content: '';
  display: inline-block;
  width: 100vw;
  height: calc(100% - .2em);
  background-color: rgb(var(--base));
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translate(-100%, -50%);
  z-index: -1;
  transition: .5s cubic-bezier(.165, .84, .44, 1) .2s;
}
.main-ttl span::after {
  left: -100%;
}
.main-ttl.is-show span::after {
  left: 100%;
}
.sub-ttl {
  font-size: 1.8em;
  margin: 0 0 .8em;
  letter-spacing: .1em;
}
.sub-ttl span {
  display: inline-block;
  position: relative;
  line-height: 1;
}
.sub-ttl span::after {
  content: '';
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: rgb(var(--base));
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}
.font-en {
  font-family: var(--font-en);
  font-optical-sizing: auto;
  font-style: normal;
}
.align-center {
  text-align: center;
}
.has-marker span {
  background-color: rgb(var(--base));
  display: inline-block;
}
.txt {
  font-weight: 600;
  margin-bottom: 1.5em;
  line-height: 2;
}
/* ------------------------------------------------------------ */
/* flx_box */
/* ------------------------------------------------------------ */
.flx_box {
  width: 100%;
  height: auto;
  margin: 0 auto 1.5em;
  display: flex;
  flex-wrap: wrap;
  gap: 2em 0;
}
/* カラム共通 */
.flx_item {
  width: 100%;
  height: auto;
}

/* ------------------------------------------------------------ */
/* list */
/* ------------------------------------------------------------ */
/* list */
.list {
  margin: 0 auto 2em;
}
.list li {
  padding-left: 1.2em;
  position: relative;
  margin-bottom: .5em;
  line-height: 1.6;
}
.list li:last-of-type {
  margin-bottom: 0;
}
/* normal_list */
.normal_list li::before {
  content: '・';
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}
/* square_list */
.square_list li::before {
  content: '■';
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}
/* circle_list */
.circle_list li {
  padding-left: 1.5em;
  margin-bottom: 1em;
}
.circle_list li::before {
  content: '';
  display: inline-block;
  position: absolute;
  top: 0.35em;
  left: 0;
  width: 1em;
  height: 1em;
  border-radius: 100px;
  border:3px solid #1A1311;
}

/* ------------------------------------------------------------ */
/* inview */
/* ------------------------------------------------------------ */
.inview {
  opacity: 0;
}

/* ------------------------------------------------------------ */
/* header */
/* ------------------------------------------------------------ */
.main-header {
  width: 100%;
  height: 60px;
  padding: 0;
  margin: 0;
  position: fixed;
  background: rgba(var(--wht),1);
  /* box-shadow: 0 0 5px 0 rgba(var(--blk),.3); */
  top: 0;
  left: 0;
  z-index: 9999;
  /* スマホ用の慣性スクロール */
  -webkit-overflow-scrolling: touch;
  transition: all .3s;
}
.header-inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 1.5em;
  position: relative;
  z-index: 9999;
}
.show-nav .header-inner {
  background-color: rgb(var(--wht));
}
.main-header .main-logo {
  padding: 0 1.5em;
}
.main-logo a {
  display: flex;
  align-items: center;
  max-width: 100px;
}
/* hamburger */
.hamburger-btn {
  width: 60px;
  height: 60px;
  flex-shrink: 0;
}
.nav-toggle {
  width: 100%;
  height: 100%;
  background-color: rgb(var(--base));
  min-height: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  outline: none;
  appearance: none;
}

.nav-toggle-icon {
  display: block;
  position: relative;
  width: 35px;
  height: 24px;
  outline: none;
  margin: 5px 0;
}
.nav-toggle-icon span {
  height: 1px;
  width: 100%;
  display: block;
  background: rgb(var(--blk));
  transition: all .3s ease-in-out;
  position: absolute;
  left: 0;
}
.nav-toggle-icon span:first-of-type {
  top: 0;
}
.nav-toggle-icon span:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
}
.nav-toggle-icon span:nth-of-type(3) {
  bottom: 0;
}
.nav-toggle.is-open .nav-toggle-icon span:first-of-type {
  top: 10px;
  transform: rotate(30deg);
}
.nav-toggle.is-open .nav-toggle-icon span:nth-of-type(2) {
  opacity: 0;
}
.nav-toggle.is-open .nav-toggle-icon span:nth-of-type(3) {
  top: 10px;
  transform: rotate(-30deg);
  left: 0;
}

/* ------------------------------------------------------------ */
/* gnav */
/* ------------------------------------------------------------ */
.spnav {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
/*右から*/
	right: 0;
	transform: translateX(100%);
	z-index: 999;
	-webkit-transition: transform 0.3s;
	transition: transform 0.3s;
	background: rgb(var(--wht));
  color: rgb(var(--blk));
  overflow-y: auto;
}
.show-nav .spnav {
  transform: translateX(0);
  pointer-events: auto;
}
.spnav_inner {
  width: 100%;
  max-width: 600px;
  height: auto;
  opacity: 0;
  position: relative;
  padding: 75px 0 80px;
  margin: 0 auto;
}
.show-nav .spnav_inner {
  opacity: 1;
  transition: 1.8s cubic-bezier(.165, .84, .44, 1) .3s;
}
.hidden-nav.overlay {
  position: fixed;
  width: 100vw;
  height: 100vh;
  display: block;
  background: rgba(var(--blk),.2);
  top: 0;
  left: 0;
  opacity: 0;
  visibility: hidden;
  z-index: 10;
}
.show-nav .hidden-nav.overlay {
  opacity: 1;
  visibility: visible;
}
/* ------------------------------------------------------------ */
/* nav-menu */
/* ------------------------------------------------------------ */
.nav-menu {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  margin: 0 auto 2em;
}
.menu-ttl {
  display: block;
  width: 100%;
  padding: .5em 1.5em;
  color: rgb(var(--blk));
  font-family: var(--font-en);
  font-size: 2.2rem;
  line-height: 1.6;
  font-weight: 400;
  position: relative;
  overflow: hidden;
}
.menu-item a:hover {
  opacity: 1;
}
/* ------------------------------------------------------------ */
/* footer */
/* ------------------------------------------------------------ */
.main-footer {
  width: 100%;
  background-color: rgb(var(--wht));
  padding: 3.5em 0 1.5em;
}
.ft-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2em;
}
.ft-logo {
  max-width: 145px;
}
.ft-nav-menu h5{
  font-weight: 400;
  font-size: 1.6rem;
}
.ft-nav-menu li > ul {
  padding-left: .8em;
  margin-bottom: .5em;
}
.ft-nav-menu li > ul li {
  font-size: 1.2rem;
}
.ft-nav-menu li > ul li a.nolink {
  pointer-events:none;
}
.ft-info-list {
  width: 100%;
  font-size: 1.2rem;
  margin-bottom: .5em;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5em 0;
}
.ft-info-list li {
  position: relative;
}
.ft-info-list li:not(:last-of-type)::after {
  content: '|';
  display: inline-block;
  margin: 0 1em;
}
.copyright {
  font-size: 1rem;
  text-align: center;
}

/* ------------------------------------------------------------ */
/* NEWS */
/* ------------------------------------------------------------ */
.newsList-item:not(:last-of-type) {
  margin-bottom: 1.5em;
}
.newsList-item:last-of-type {
  margin-bottom: 2em;
}
.newsList-item a {
  display: flex;
  flex-direction: column-reverse;
  padding: 1em 1.5em;
  background-color: rgba(var(--gray),.3);
  gap: .5em 0;
}
.news-ttl {
  font-weight: 400;
}
.news-update {
  font-size: .8em;
  font-weight: 300;
  flex-shrink: 0;
}

/* ------------------------------------------------------------ */
/* BLOG */
/* ------------------------------------------------------------ */
.blogList-item {
  background-color: rgba(var(--wht),1);
  width: 100%;
  margin-bottom: 1.5em;
}
.blogList-item a {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: rgba(var(--wht), 1);
}
.blogList-item a:hover .blog-update .arrow::after{
  transform: translate(.5em ,.2em);
}
.blog-img {
  width: 100%;
  position: relative;
  /* aspect-ratio: 3/2; */
  aspect-ratio: 192/101;
  overflow: hidden;
  background-color: rgb(var(--gray));
  text-align: center;
}
.blog-img:not(:has(img))::before {
  content: 'NO IMAGE';
  position: absolute;
  color: rgb(var(--wht));
  font-family: var(--font-en);
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  font-size: 1.5em;
  width: 100%;
}
.blog-img img{
  object-fit: cover;
  height: 100%;
  width: 100%;
}
/* safari */
::-webkit-full-page-media, :future, :root .blog-img::after {
  content: '';
  display: block;
  width: 100%;
  padding-bottom: calc(2/3*100%);
}
::-webkit-full-page-media, :future, :root .blog-img img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.blog-info {
  width: 100%;
  flex-grow: 1;
  /* height: 100%; */
  padding: 1em 1.5em;
  gap: 1em;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.blog-ttl {
  line-height: 1.6;
}
.blog-update {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.blog-update .date {
  padding-top: .5em;
  font-size: .8em;
  font-weight: 300;
}
.blog-update .arrow {
  position: relative;
  display: flex;
  align-items: flex-end;
  line-height: 1;
  gap: 0 5px;
}
.blog-update .arrow::before {
  content: 'MORE';
  display: inline-block;
  font-size: 10px;
}
.blog-update .arrow::after {
  content: '';
  display: block;
  width: 25px;
  height: 28px;
  background-image: url(../img/arrow.svg);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  transform: translate(.3em,0);
  transition: all .3s;
}
/* ------------------------------------------------------------ */
/* sub-contents */
/* ------------------------------------------------------------ */
.sub-contents-item {
  width: 100%;
  height: auto;
  font-weight: 600;
  overflow: hidden;
}
.sub-contents-item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3em 1em;
  width: 100%;
  height: 100%;
}
.sub-contents-item .btn-company {
  background-color: rgba(var(--gray),1);
}
.sub-contents-item .btn-contact {
  background-color: rgba(var(--base),1);
}
.sub-contents-item .btn-company:hover {
  background-color: rgba(var(--gray),.3);
}
.sub-contents-item .btn-contact:hover {
  background-color: rgba(var(--base),.3);
}
.content-ttl {
  font-weight: 400;
  font-size: 2em;
  letter-spacing: .075em;
}
.btn-contact .content-ttl {
  border: 2px solid rgb(var(--blk));
  padding:  0 2em;
  margin-bottom: 15px;
}


@media screen and (min-width: 480px) {
  /* スマートフォン横 */
  .spnav {
    width: 350px;
  }
  /* ------------------------------------------------------------ */
  /* common layouts */
  /* ------------------------------------------------------------ */
  .base {
    padding: 3em 0;
  }
  .inner {
    padding: 0 5%;
  }
  /* ------------------------------------------------------------ */
  /* btn */
  /* ------------------------------------------------------------ */
  .btn.flex-start {
    justify-content: flex-start;
  }
  .btn.flex-start .btn-link {
    margin-left: 0;
    margin-right: 0;
  }
  .main-ttl {
    font-size: 3.5em;
  }
}
@media screen and (min-width: 768px) {
  /* タブレット縦 / スマートフォン横 */
  /* ------------------------------------------------------------ */
  /* common layouts */
  /* ------------------------------------------------------------ */
  .inner {
    padding: 0 2em;
  }
  .base {
    padding: 4em 0;
  }
  /* ------------------------------------------------------------ */
  /* flx_box */
  /* ------------------------------------------------------------ */
  /* 2カラム */
  .flx_2cols .flx_item {
    width: calc((100% - 5%)/2);
  }
  .flx_2cols .flx_item:nth-child(odd){
    margin-right: 5%;
  }
  /* 3カラム */
  .flx_3cols .flx_item {
    width: calc((100% - 2em)/3);
  }
  .flx_3cols .flx_item:not(:nth-child(3n)){
    margin-right: 1em;
  }

  /* ------------------------------------------------------------ */
  /* footer */
  /* ------------------------------------------------------------ */
  .main-footer {
    padding: 4em 0;
  }
  .ft-container {
    display: grid;
    align-items: start;
    grid-template-columns: 1.5fr 5fr;
    grid-template-rows: 1fr auto;
    gap: 1.5em;
  }
  .ft-box:first-child {
    grid-row: 1 / 2;
    grid-column: 1/2;
  }
  .ft-box {
    grid-column: auto;
    grid-row: 1/3;
  }
  .ft-box:last-child {
    grid-row: 2/3;
    grid-column: 1/2;
  }
  .ft-nav {
    display: flex;
    gap: 1.5em;
    justify-content: space-between;
  }
  .ft-nav-menu li > ul {
    padding-left: 0;
  }
  .ft-info-list {
    flex-direction: column;
    gap: 0;
  }
  .ft-info-list li:not(:last-of-type)::after {
    content: none;
  }
  .copyright {
    text-align: left;
  }

  /* ------------------------------------------------------------ */
  /* NEWS */
  /* ------------------------------------------------------------ */
  .newsList-item:first-of-type {
    border-top: 1px solid rgb(var(--blk));
  }
  .newsList-item {
    border-bottom: 1px solid rgb(var(--blk));
  }
  .newsList-item:not(:last-of-type) {
    margin-bottom: 0;
  }
  .newsList-item a {
    background-color: rgb(var(--wht));
    padding: 1.5em 0;
    flex-direction: row;
    gap: 0 2em;
  }
  .news-update {
    width: 120px;
    font-size: 1em;
  }
  /* ------------------------------------------------------------ */
  /* sub-conents */
  /* ------------------------------------------------------------ */
  .sub-contents {
    display: flex;
  }
  .sub-contents:has(:nth-of-type(2n)) .sub-contents-item a {
    min-height: calc(32 / 140* 100vw);
  }
  .content-ttl {
    font-size: 2.5em;
  }

}
@media screen and (min-width: 1025px) {
  /* デスクトップ/タブレット横 */
  .main-ttl {
    font-size: 6rem;
  }
  .sub-ttl {
    font-size: 2.2em;
  }
  /* ------------------------------------------------------------ */
  /* common layouts */
  /* ------------------------------------------------------------ */
  .inner {
    max-width: calc(1000px + 4em);
  }
  .base {
    padding: 5em 0;
  }
  /* ------------------------------------------------------------ */
  /* flx_box */
  /* ------------------------------------------------------------ */
  /* 3カラム */
  .flx_3cols .flx_item {
    width: calc((100% - 10%)/3);
  }
  .flx_3cols .flx_item:not(:nth-child(3n)){
    margin-right: 5%;
  }
  /* ------------------------------------------------------------ */
  /* header */
  /* ------------------------------------------------------------ */
  .main-header {
    height: 100px;
  }
  .header-inner {
    padding: 0 3%;
    gap: 0 3vw;
  }
  .main-header .main-logo {
    width: 12%;
    padding: 0;
  }
  .main-logo a {
    max-width: 165px;
  }
  /* ------------------------------------------------------------ */
  /* gnav */
  /* ------------------------------------------------------------ */
  /* nav-menu */
  .nav-menu {
    flex-direction: row;
    justify-content: flex-end;
    margin: 0;
    gap: 0 2vw;
  }
  .menu-ttl {
    padding: 0;
    font-size: 1.8rem;
    position: relative;
  }
  .menu-ttl span {
    display: inline-block;
    position: relative;
    line-height: 1;
  }
  .menu-ttl span::before {
    content: '';
    display: inline-block;
    width: 0;
    height: calc(100% - .2rem);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    background-color: rgb(var(--base));
    z-index: -1;
    transition: all .3s;
  }
  .menu-ttl:hover span::before {
    width: 100%;
  }
  /* ------------------------------------------------------------ */
  /* footer */
  /* ------------------------------------------------------------ */
  .ft-nav-menu {
    flex: 1;
  }

  .newsList-item a {
    padding: 2em 0;
  }
  /* ------------------------------------------------------------ */
  /* sub-conents */
  /* ------------------------------------------------------------ */
  .content-ttl {
    font-size: 5rem;
  }
  .btn-contact .content-ttl {
    border: 5px solid rgb(var(--blk));
    padding: 0 2em;
  }
  .sub-contents-item a {
    padding: 4em 1em;
  }
  .sub-contents-item a:hover {
    transform: scale(1.05);
    opacity: 1;
  }

}
@media screen and (min-width: calc(1000px + 4em)) {
  .nav-menu {
    gap: 0 3vw;
  }
  .menu-ttl {
    font-size: 2rem;
  }
}