@charset "utf-8";
/* CSS Document */
/**
目次

全体設定
ヘッダー
フッター
カラム設定
トップページ
アーカイブページ
投稿ページ
固定ページ
オリジナルパーツ
オリジナルパーツセット
個別設定

**/
/**************************全体設定***************************/
body {
  overflow-x: hidden;
}
body, input, textarea, button, .button, .faux-button, .wp-block-button__link, .wp-block-file__button, .has-drop-cap:not(:focus)::first-letter, .entry-content .wp-block-archives, .entry-content .wp-block-categories, .entry-content .wp-block-cover-image, .entry-content .wp-block-latest-comments, .entry-content .wp-block-latest-posts, .entry-content .wp-block-pullquote, .entry-content .wp-block-quote.is-large, .entry-content .wp-block-quote.is-style-large, .entry-content .wp-block-archives *, .entry-content .wp-block-categories *, .entry-content .wp-block-latest-posts *, .entry-content .wp-block-latest-comments *, .entry-content p, .entry-content ol, .entry-content ul, .entry-content dl, .entry-content dt, .entry-content cite, .entry-content figcaption, .entry-content .wp-caption-text, .comment-content p, .comment-content ol, .comment-content ul, .comment-content dl, .comment-content dt, .comment-content cite, .comment-content figcaption, .comment-content .wp-caption-text, .widget_text p, .widget_text ol, .widget_text ul, .widget_text dl, .widget_text dt, .widget-content .rssSummary, .widget-content cite, .widget-content figcaption, .widget-content .wp-caption-text, .primary-navigation a, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, ol, ul, li, dl, dt, dd, blockquote, figure, fieldset, form, legend, pre, iframe, table, th, td {
  font-family: "Outfit", "Noto Sans JP", "Helvetica Neue", Helvetica, Arial, "游ゴシック", YuGothic, sans-serif;
}
#main {
  padding: 0;
}
p, table {
  font-size: 1.1rem;
}
@media only screen and (max-width: 1200px) {
  p, table {
    font-size: 0.9rem;
  }
}
strong {
  color: #E50012;
}
a {
  color: #E50012;
}
img {
  width: 100%;
}
h2 {
  color: #000;
  font-weight: 600;
  font-size: 6.8vw;
  margin: 10px auto 30px;
  line-height: 6.7vw;
}
h2.center {
  text-align: center;
}
h2 .jp {
  display: block;
  font-size: 1.5vw;
  letter-spacing: 0.1rem;
  line-height: 2vw;
  margin: 30px 0;
}
h2 .color {
  color: #E50012;
}
h2.sizeS {
  font-size: 4rem;
  line-height: 4rem;
	margin-bottom: 50px;
}
h2.sizeS .jp {
  margin: 10px 0 30px;
}
.middleh2{
	text-align: center;
  font-size: 3.4rem;
  margin: 0 auto 30px;
  letter-spacing: 0.5rem;
}
h3 {
  font-weight: bold;
  font-size: 1.9rem;
  text-align: center;
}
h3.step {
  text-align: left;
  color: #92D032;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 2px;
  margin: 15px auto 10px;
}
h3.step span {
  font-size: 2rem;
  margin-right: 5px;
}
@media only screen and (max-width: 1200px) {
  h2 {
    font-size: 4.6rem;
    margin: 10px auto 20px;
    line-height: 4.6rem;
  }
  h2 .jp {
    font-size: 1rem;
    letter-spacing: 0.1rem;
    line-height: 1.5rem;
    margin: 10px 0;
  }
}
@media only screen and (max-width: 481.98px) {
  h2 {
    font-size: 3rem;
    line-height: 3rem;
  }
  h2 .jp {
    font-size: 0.9rem;
    line-height: 1.6rem;
    letter-spacing: 0.05rem;
  }
  h2.center {
    text-align: left;
  }
  h2.sizeS {
    font-size: 2.4rem;
    line-height: 2.4rem;
  }
	.middleh2{
font-size: 2.2rem;
  margin: 0 auto 30px;
  letter-spacing: 0.3rem;
}
  h3 {
    font-size: 1.5rem;
    margin-bottom: 10px;
  }
}
h4 {
  font-size: 1.1rem;
  margin: 5px auto;
  color: #E50012;
}
@media only screen and (max-width: 481.98px) {
  h4 {
    font-size: 1.1rem;
  }
}
/*************************ヘッダー*************************/
/* ヘッダーの動き */
#masthead {
  position: fixed; /* 固定表示 */
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000; /* 最前面に表示 */
  transition: top 0.3s ease; /* スクロールでヘッダーがスムーズに動く */
}
#masthead {
  max-width: 100%;
  padding-right: 20px;
  padding-left: 20px;
  transition: 0.3s;
}
@media only screen and (min-width: 482px) {
  #masthead {
    padding: 0 30px;
  }
}
#masthead.scroll {
  background: #fff;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 10px 10px;
  max-width: calc(100vw - 40px);
  margin-top: -2px;
}
@media only screen and (max-width: 920px) {
  #masthead {
    padding: 0 25px 0 15px;
  }
  #masthead.scroll {
    margin-top: -2px;
  }
}
@media only screen and (max-width: 600px) {
  #masthead {
    padding: 0 22px 0 10px;
  }
}
@media only screen and (max-width: 481.98px) {
  #masthead {
    padding: 0 0 0 20px;
  }
  #masthead.scroll {
    margin: 0;
    max-width: 100%;
    background: rgb(255, 255, 255);
    height: 70px;
    border-radius: 0;
  }
}
/*ロゴ*/
@media only screen and (min-width: 482px) {
  .site-logo .custom-logo {
    max-width: 300px;
    width: 13vw;
  }
  #masthead.scroll .site-logo .custom-logo {
    max-width: 240px;
  }
  .site-logo .custom-logo, #masthead.scroll .site-logo {
    padding-top: 10px;
  }
}
@media only screen and (max-width: 920px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 250px;
    width: 22vw;
  }
}
@media only screen and (max-width: 600px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 150px;
    width: 21vw;
  }
}
@media only screen and (max-width: 481.98px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo {
    padding-top: 10px !important;
  }
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 170px;
    width: 100%;
    height: auto !important;
  }
}
/*ナビ*/
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
  background: #E50012;
  color: #fff;
  font-size: 1rem;
  display: block;
  padding: 15px 49px 15px 20px;
  height: 50px;
  border-radius: 7px;
  margin-top: 10px;
  position: relative;
  transition: 0.3s;
  margin-left: 10px;
}
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a:hover {
  background: #000;
}
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
  content: '';
  display: block;
  width: 26px;
  height: 26px;
  background-image: url('img/menuicon.png');
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 13px;
  right: 17px;
}
@media only screen and (min-width: 482px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    text-align: center;
    padding: 25px 15px 25px;
    position: relative;
    font-size: 1.1rem;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .mini {
    display: block;
    font-size: 0.7rem;
    color: #000;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::before {
    content: none;
  }
  .primary-navigation .current-menu-item > a:first-child::before, .primary-navigation .current_page_item > a:first-child::before {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50px;
    background: #E50012;
    position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    bottom: 12px;
  }
}
@media only screen and (max-width: 920px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    font-size: 0.8rem;
    padding: 30px 8px 29px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .mini {
    font-size: 0.7rem;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
    padding: 20px 13px;
    font-size: 0.7rem;
    margin-left: 10px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
    display: none;
  }
}
@media only screen and (max-width: 600px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    font-size: 0.9rem;
    padding: 31px 6px 30px;
    letter-spacing: -0.5px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
    padding: 20px 12.5px;
    font-size: 0.6rem;
    margin-left: 5px;
  }
}
@media only screen and (max-width: 481.98px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    letter-spacing: 0;
    font-size: 2rem;
    text-align: left;
    border-bottom: 2px solid;
    padding: 10px 10px;
    margin-bottom: 10px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .mini {
    font-size: 0.9rem;
    display: block;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
    font-size: 1.1rem;
    padding: 65px 9px 45px;
    margin: 20px 0;
    text-align: center;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
    display: block;
    width: 40px;
    height: 40px;
    top: 20px;
    right: 0;
    left: 0;
    text-align: center;
    margin: 0 auto;
  }
}
/*子メニュー*/
@media only screen and (min-width: 482px) {
  .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
    width: calc(100% / 2);
  }
  .primary-navigation > div > .menu-wrapper > li > .sub-menu {
    position: fixed;
    top: 100px;
    z-index: 1200;
    width: 100%;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
  }
  .primary-navigation .sub-menu .menu-item > a {
    text-align: center;
    padding: 100px 0;
    transition: 0.3s;
  }
  .primary-navigation .sub-menu .menu-item > a:hover {
    background: #000;
  }
}
.primary-navigation .sub-menu {
  border: none;
  margin: 0 0 20px;
}
.primary-navigation .sub-menu .menu-item > a {
  font-size: 1rem;
  text-align: center;
  border-bottom: 1px solid;
}
/* メニュートグル有無 */
@media only screen and (min-width: 482px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a + .sub-menu-toggle {
    display: none;
  }
}
/*ナビスマホ*/
.menu-button-container #primary-mobile-menu {
  padding: 0;
  width: 35px;
  height: 35px;
  margin-right: 20px;
}
.menu-button-container #primary-mobile-menu span img {
  width: 35px;
  height: 35px;
}
/* ボタンスタイル */
.menu-button-container {
  position: relative;
}
@media only screen and (max-width: 481.98px) {
  .primary-navigation > .primary-menu-container {
    background: rgba(255, 255, 255, 0.95);
    padding: 20px 50px;
  }
}
/*************************フッター*************************/
.no-widgets .site-footer {
  width: 100%;
  max-width: 100%;
  padding: 0px;
}
.site-footer > .site-info {
  margin: 0;
  background: #1A1A1A;
}
.site-footer > .site-info .site-info-contents {
  display: flex;
  justify-content: center;
  max-width: 1650px;
  margin: 0 auto;
  width: 100%;
  padding: 45px 50px 60px;
}
.site-footer > .site-info .site-info-contents > .brand {
  width: 55%;
}
.site-footer > .site-info .site-info-contents > .sitemap {
  width: 45%;
}
.site-footer .site-info .site-info-contents .sitemap ul {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.site-footer .site-info .site-info-contents .sitemap ul li {
  width: calc(100% / 2);
  padding: 5px 20px 20px 30px;
  position: relative;
}
.site-footer .site-info .site-info-contents .sitemap ul li a {
  color: #fff;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 2px solid;
  display: block;
  font-size: 1.2rem;
  transition: 0.3s;
}
.site-footer .site-info .site-info-contents .sitemap ul li a span {
  display: block;
  font-size: 1rem;
  line-height: 1rem;
  font-weight: 610;
}
.site-footer .site-info .site-info-contents .sitemap ul li a:hover {
  padding-left: 10px;
}
.site-footer > .site-info .site-info-contents .brand {
  padding: 0 30px 0 0px;
}
.site-footer > .site-info .site-info-contents .brand img {
  width: 33vw;
  max-width: 30vw;
}
.site-footer > .site-info .site-info-contents .brand p {
  margin: 10px auto;
  font-size: 1rem;
  line-height: 1.3rem;
  color: #fff;
}
.site-footer > .site-info .site-info-contents .brand a img {
  transition: 0.3s;
}
.site-footer > .site-info .site-info-contents .brand a img:hover {
  opacity: 0.8;
}
.site-footer > .site-info .copyright {
  background: #E50012;
  color: #fff;
  padding: 15px 10px 17px;
  text-align: center;
}
.site-footer > .site-info .copyright p {
  font-size: 0.8rem;
  line-height: 1rem;
}
.site-footer > .site-info .copyright p a {
  color: #fff;
}
@media only screen and (max-width: 920px) {
  .site-footer > .site-info .site-info-contents {
    display: block;
    padding: 40px 30px;
  }
  .site-footer > .site-info .site-info-contents > .brand {
    width: 100%;
  }
  .site-footer > .site-info .site-info-contents > .sitemap {
    width: 100%;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li {
    width: calc(100% / 2);
  }
  .site-footer > .site-info .site-info-contents .brand img {
    max-width: 50%;
    width: 100%;
  }
  .site-footer > .site-info .site-info-contents .brand {
    padding: 0 10px;
    margin-bottom: 50px;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li {
    padding: 0 20px 20px 20px;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li a {
    font-size: 1rem;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li a span {
    font-size: 1rem;
    line-height: 1rem;
  }
  .site-footer > .site-info .site-info-contents .brand p {
    font-size: 0.8rem;
  }
}
@media only screen and (max-width: 600px) {
  .site-footer .site-info .site-info-contents .sitemap ul li {
    padding: 0 10px 20px 10px;
  }
  .site-footer > .site-info .site-info-contents .brand img {
    margin: 0 auto;
    display: block;
    max-width: 340px;
  }
  .site-footer > .site-info .site-info-contents .brand p {
    text-align: center;
  }
  .site-footer .site-info .site-info-contents .sitemap ul {
    padding: 10px 0 20px;
  }
}
/*************************カラム設定*************************/
/*幅*/
.max-900 {
  max-width: 900px;
  margin: 0 auto;
}
.max-1500 {
  max-width: 1500px;
  margin: 0 auto;
}
/*カラム枠*/
.column-1 {
  padding: 70px 30px;
  margin: 0 auto;
}
.column-1.last-column{
	padding-bottom: 150px;
}
@media only screen and (max-width: 920px) {
  .column-1 {
    padding: 60px 40px;
  }
	.column-1.last-column{
	padding-bottom: 100px;
}
}
@media only screen and (max-width: 481.98px) {
  .column-1 {
    padding: 60px 30px;
  }
	.column-1.last-column{
	padding-bottom: 80px;
}
}
.column-2 {
  display: flex;
  justify-content: center;
  width: 90vw;
}
.column-2 > div {
  width: 50%;
  margin: 20px;
}
@media only screen and (max-width: 920px) {
  .column-2 {
    display: block;
    width: 100%;
    padding-right: 30px;
    padding-left: 30px;
  }
  .column-2 > div {
    width: 100%;
    margin: 0 auto 50px;
  }
  .column-2 > div:last-child {
    margin-bottom: 0;
  }
}
.column-2-img {
  display: flex;
}
.column-2-img div.txt {
  padding: 0 4vw 0 5vw;
  width: 50%;
}
.column-2-img div.img {
  width: 50%;
}
@media screen and (max-width: 768px) {
  .column-2-img {
    display: block;
    position: relative;
  }
  .column-2-img div.txt {
    width: 100%;
    padding: 0 30px;
    padding-top: 340px;
  }
  .column-2-img div.img {
    width: 70%;
    height: 310px;
    position: absolute;
    right: 0;
  }
}
.column-3 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.column-3 > div {
  width: calc(100% / 3 - 70px);
  margin: 35px;
}
@media only screen and (max-width: 920px) {
  .column-3 {
    padding: 0 30px;
  }
  .column-3 > div {
    width: calc(100% / 2 - 20px);
    margin: 10px;
  }
  .column-1 .column-3 {
    padding: 0;
  }
}
@media only screen and (max-width: 481.98px) {
  .column-3 {
    display: block;
  }
  .column-3 > div {
    width: 100%;
    margin: 0 auto 50px;
  }
}
.column-3-2 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.column-3-2 > div {
  width: calc(100% / 3 - 30px);
  margin: 15px;
}
@media only screen and (max-width: 920px) {
  .column-3-2 {
    justify-content: left;
  }
  .column-3-2 > div {
    width: calc(100% / 2 - 10px);
    margin: 10px;
  }
  .column-3-2 > div:nth-child(odd) {
    margin-left: 0;
  }
  .column-3-2 > div:nth-child(even) {
    margin-right: 0;
  }
}
/*コンテンツ並列*/
.contentX {
  display: flex;
  justify-content: center;
}
.contentX .columnin {
  display: block;
  width: 100%;
}

.Gallery-column{
	display: flex;
  justify-content: center;
}
.Gallery-column > div{
	padding: 10px;
}
@media only screen and (max-width: 481.98px) {
	.Gallery-column > div {
  padding: 3px;
}
}

/*ラップ*/
.wrap-min {
  padding: 15px;
}
.wrap-mid {
  padding: 0 30px;
}
/*スペーサー*/
.top-bottomL {
  margin-top: 80px;
  margin-bottom: 80px;
}
.bottomL {
  margin-bottom: 150px;
}
.bottomM {
  margin-bottom: 50px;
}
.bottomS {
  margin-bottom: 20px;
}
/*表示反転*/
.pc-row-reverse {
  flex-direction: row-reverse;
}
@media only screen and (max-width: 600px) {
  .top-bottomL {
    margin-top: 50px;
    margin-bottom: 50px;
  }
  .bottomL {
    margin-bottom: 100px;
  }
}
/*************************トップページ index.php *************************/
/* ローディング画面 */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #E50012;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  /* フレックスボックスを使って中央揃え */
  display: flex;
  align-items: center; /* 垂直方向に中央揃え */
  justify-content: center; /* 水平方向に中央揃え */
}
#loading img {
  max-width: 500px;
  padding: 20px;
}
#loading.loaded {
  opacity: 0;
  visibility: hidden;
  overflow: visible;
}
@media only screen and (max-width: 481.98px) {
  #loading img {
    padding: 50px;
  }
}
/* TOPメイン コンテンツ部分*/
#first-view {
  margin-top: 150px;
  position: relative;
}
.video-background {
  position: relative;
  width: 100%;
  height: 50vh;
  min-height: 450px;
  overflow: hidden;
  /*  background-image: url('img/pc-image1.png'); 動画非対応時の背景 */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.bg-video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  z-index: 1;
  /* 右端の黒線が見えるときは、以下を微調整 */
  scale: 1.02; /* やや拡大してはみ出しを隠す */
}
/* 黒い半透明のドットフィルター */
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(rgba(0, 0, 0, 0.25) 1px, transparent 1px);
  background-size: 4px 4px;
  z-index: 2;
  pointer-events: none;
}
/* iPad以下の調整 */
@media screen and (max-width: 768px) {
  .bg-video {
    object-fit: cover;
    object-position: center;
  }
}
@media only screen and (max-width: 481.98px) {
  .overlay {
    display: none;
  }
  .video-background {
    height: 30vh;
    min-height: 250px;
  }
  .bg-video {
    min-width: auto;
    min-height: 100%;
    width: auto;
    height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    scale: 1.05; /* 余白ができる場合は微調整 */
  }
}
.back-slideshow {
  max-width: 90vw;
  margin: 0 auto;
}
.back-slideshow div {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  height: 50vw;
  max-height: 85vh;
  margin: 0;
  position: relative;
  top: 20px;
  border-radius: 40px;
}
.back-slideshow div.img01 {
  background-image: url('img/pc-image1.png');
  background-position: top;
}
.back-slideshow div.img02 {}
.back-slideshow .slick-dots {
  display: none;
}
.slick-initialized .slick-slide {
  min-height: 500px;
}
@media only screen and (max-width: 920px) {
  #first-view {}
  .back-slideshow div {
    height: 62vw;
    top: 15px;
  }
}
@media only screen and (max-width: 600px) {
  .back-slideshow div {
    border-radius: 20px;
  }
  #first-view {}
}
@media only screen and (max-width: 481.98px) {
  #first-view {
    margin-top: 110px;
  }
  .back-slideshow div {
    top: 15px;
    height: 35vh;
    min-height: 260px;
  }
  .back-slideshow div.img01 {
    background-image: url('img/sp-image1.png');
  }
  .back-slideshow div.img02 {}
}
#first-view .catch-area {
  padding: 20px 30px;
}
#first-view .catch-area .main-catch {
  font-weight: 600;
  font-size: 5.1vw;
  line-height: 5.2vw;
}
#first-view .catch-area .sub-catch {
  font-weight: 600;
  font-size: 1.5vw;
  letter-spacing: 0.4rem;
  padding: 15px 0;
}
#first-view .catch-area .main-catch .color, .catch-area .sub-catch .color {
  color: #E50012;
}
@media only screen and (max-width: 920px) {
  .slick-initialized .slick-slide {
    max-height: 680px;
  }
  #first-view .catch-area {}
  #first-view .catch-area .main-catch {
    font-size: 11.4vw;
    line-height: 11.7vw;
  }
  #first-view .catch-area .sub-catch {
    font-size: 0.9rem;
    letter-spacing: 0.2rem;
    line-height: 1.4rem;
    padding: 15px 0;
  }
}
@media only screen and (max-width: 600px) {
  .slick-initialized .slick-slide {
    max-height: inherit;
    margin-bottom: 25vw;
    height: auto;
    min-height: 240px;
  }
  #first-view .catch-area {
    padding: 20px 20px;
  }
  #first-view .catch-area .main-catch {}
  #first-view .catch-area .sub-catch {}
}
@media only screen and (max-width: 481.98px) {
  #first-view .catch-area {}
}
/*** お知らせ ***/
#news {
  display: flex;
  justify-content: center;
  padding: 80px 0;
}
#news div {
  padding: 0 4vw 0 5vw;
  width: 50%;
}
.news-list {
  list-style: none;
  padding: 0 5rem 0 0px;
  margin: 0;
  width: 50%;
}
.news-item {
  margin-bottom: 20px;
}
.news-cat {
  display: inline-block;
  background: #fff;
  padding: 2px 8px;
  font-size: 0.8em;
  margin-right: 10px;
  border-radius: 4px;
  color: #E50012;
}
.news-date {
  font-size: 0.9em;
  color: #fff;
  margin-right: 10px;
}
.news-title {
  text-align: left;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 2.3rem;
}
.news-title a {
  color: #fff;
  text-decoration: none;
  display: block;
  border-bottom: 2px solid;
  transition: 0.3s;
}
.news-title a:hover {
  padding-left: 10px;
}
@media only screen and (max-width: 920px) {
  .news-title {
    font-size: 1rem;
    line-height: 2.3rem;
  }
  .news-cat {
    font-size: 0.6em;
  }
  .news-date {
    font-size: 0.7em;
  }
}
@media screen and (max-width: 768px) {
  #news {
    display: block;
    padding: 60px 0 30px;
  }
  #news div {
    width: 100%;
    padding: 0 30px;
  }
  .news-list {
    padding: 30px 30px;
    width: 100%;
  }
}
/*************************お知らせ一覧ページpage-articles.php**************************/
#news-archive {
  padding: 70px 30px;
}
#news-archive .pagination {
  border: none;
}
#news-archive ul {
  padding: 0;
  max-width: 800px;
 margin: 50px auto 0;
  list-style: none;
}
#news-archive ul li {}
#news-archive ul li a {
  display: flex;
  padding: 20px;
  text-decoration: none;
  margin: 20px auto;
  transition: 0.3s;
  border: 2px solid #E50012;
  border-radius: 7px;
}
#news-archive ul li a:hover {
  background: #E50012;
  border-radius: 7px;
  color: #fff;
}
#news-archive ul li a .category-title {
  background: #E50012;
  display: block;
  padding: 2px 10px;
  font-size: 0.8rem;
  font-weight: bold;
  border-radius: 3px;
  margin-right: 10px;
  text-align: center;
  width: 120px;
  color: #fff;
}
#news-archive ul li a:hover .category-title {
  background: #fff;
  color: #E50012;
}
@media only screen and (max-width: 600px) {
  #news-archive ul li a {
    display: block;
  }
  #news-archive ul li a p {
    margin-bottom: 5px;
  }
  #news-archive ul li a .category-title {}
}
/*************************その他のページ*************************/
/*search.php archive.php 404.phpその他*/
.sub-page-header {
  background: #f4f4f4;
  max-width: 100%;
  margin: 0 auto;
  padding: 190px 20px 30px;
  border: none;
}
.sub-page-header h1 {
  font-size: 3.5rem;
  text-align: center;
  color: #92D032;
  letter-spacing: 1px;
  font-weight: 510;
  word-break: break-all;
}
.no-results .page-content, .error-404 .page-content {
  max-width: 800px;
  margin: 70px auto 0 !important;
  padding: 0 25px 100px;
}
.error-404 .page-content > p {
  font-size: 1rem;
  margin: 0 auto;
  text-align: center;
}
@media only screen and (max-width: 600px) {
  .sub-page-header {
    padding: 120px 20px 40px;
  }
  .sub-page-header h1 {
    font-size: 1.5rem;
  }
  .error-404 .page-content > p {
    text-align: left;
  }
}
.search-form {
  max-width: 100%;
}
.search-form .search-field {
  border: 2px solid #dbdbdb;
  box-shadow: none;
  margin: 10px auto;
}
.search-form .search-submit {
  margin: 0 auto;
  display: block;
  width: 100%;
  border: none;
  border-radius: 7px;
  background: #92D032;
  padding: 5px;
}
.search-form .search-submit:hover {
  color: #fff;
  background: #73BD00;
}
/*archive.php*/
.archive-page-contents {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 25px;
}
.archive-page-contents article {
  border-bottom: 2px solid #ececec;
}
.archive-page-contents article:last-child {
  border: none;
  margin-bottom: 100px;
}
.archive-page-contents article .entry-header {
  margin-bottom: 0;
}
.archive-page-contents article .entry-header h2 {
  text-align: left;
}
.archive-page-contents article .entry-header h2 a {
  color: #92D032;
  font-size: 2.2rem;
}
.archive-page-contents article .entry-content {
  margin: 10px auto;
}
.archive-page-contents article .entry-content .more-link {
  color: #73BD00;
  font-weight: bold;
  text-decoration: none;
  padding: 2px 10px;
  font-size: 0.8rem;
  border-radius: 4px;
  border: 2px solid #73BD00;
  transition: 0.3s;
  display: inline-block;
}
.archive-page-contents article .entry-content .more-link:hover {
  color: #fff;
  background: #73BD00;
}
.archive-page-contents article .entry-footer {
  margin: 10px auto 15px;
  text-align: right;
  font-size: 0.9rem;
}
.archive-page-contents article .post-thumbnail .wp-post-image {
  margin: 10px auto 15px;
}
.navigation.pagination {
  border: none;
  margin-bottom: 50px;
}
.pagination .nav-links > * {
  font-size: 1.1rem;
}
@media only screen and (max-width: 600px) {
  .archive-page-contents article .entry-header h2 a {
    font-size: 1.5rem;
  }
}
/*************************投稿ページ*************************/
.entry-header-single {
  max-width: 100%;
  margin: 0 auto;
  padding: 100px 0px 0px !important;
}
.entry-header-single h1 {
  font-size: 2rem;
  text-align: center;
  font-weight: 550;
  background: #E50012;
  letter-spacing: 1px;
  padding: 50px 30px 50px;
  color: #fff;
  line-height: 2rem;
}
.entry-header-single figure {
  margin: 0 auto;
  background: #fff;
  width: 100% !important;
  width: auto;
  padding: 60px 60px 0;
}
.entry-header-single .post-thumbnail .wp-post-image {
  margin: 0 auto;
  max-width: 800px !important;
}
.site-main > article > .single-entry-content {
  max-width: 800px;
  margin: 50px auto 0;
  padding: 0 25px;
}
.single .site-main > article > .entry-footer.single-entry-footer {
  margin: 30px auto;
  border: none;
  max-width: 800px;
  padding: 0 25px;
  display: block;
}
.post-navigation .nav-links {
  max-width: 800px;
  margin: 10px auto 25px;
  padding: 0 25px 30px;
}
.post-navigation .nav-next:last-child {
  margin: 0;
}
.post-navigation .nav-next:first-child, .post-navigation .nav-previous:first-child {
  margin-bottom: 20px;
}
.navigation .nav-links .nav-next a .post-title, .navigation .nav-links .nav-previous a .post-title {
  margin: 0 auto;
  font-size: 1rem;
  color: #E50012;
}
@media only screen and (max-width: 481.98px) {
	.entry-header-single {
background: #f4f4f4;
  padding: 100px 30px 10px !important;

}
  .entry-header-single h1 {
    font-size: 1rem;
    padding: 0 0 10px;
    background: none;
    color: #E50012;
    text-align: left;
    line-height: 1.4rem;
  }
  .entry-header-single figure {
    padding: 50px 30px 0px;
  }
  .post-navigation .nav-next:first-child, .post-navigation .nav-previous:first-child {
    margin-bottom: 20px;
  }
  .post-navigation .post-title {
    font-size: 0.9rem;
  }
  .post-navigation .nav-links {
    padding: 10px;
  }
  .post-navigation .nav-links div a {
    background: #f4f4f4;
    padding: 10px 15px;
    border-radius: 5px;
  }
  .navigation .nav-links .nav-next a .post-title, .navigation .nav-links .nav-previous a .post-title {
    width: 100%;
  }
}
/*************************固定ページ*************************/
/**ヘッダー見出し**/
.singular .entry-header.headercustom {
  background: #E50012;
  margin: 100px auto 30px;
  width: 100%;
  max-width: 100%;
  color: #fff;
  height: 210px;
  background-size: cover;
  background-position: center;
  position: relative;
}
.singular .entry-header.headercustom h1 {
  color: #fff;
  font-weight: 530;
  text-align: right;
  font-size: 8rem;
  line-height: 7rem;
  position: absolute;
  right: 0;
  left: 0;
  margin: 0 auto;
  bottom: -15px;
}
@media only screen and (max-width: 920px) {
  .singular .entry-header.headercustom {
    height: 200px;
  }
  .singular .entry-header.headercustom h1 {
    font-size: 5rem;
    line-height: 5rem;
    top: 131px;
    right: 10px;
  }
}
@media only screen and (max-width: 600px) {
  .singular .entry-header.headercustom h1 {
   top: 94px;
    font-size: 3.4rem;
    line-height: 3.4rem;
    right: 0;
  }
  .singular .entry-header.headercustom {
    margin: 95px auto 70px;
    height: 140px;
  }
}
@media only screen and (max-width: 481.98px) {
  .singular .entry-header.headercustom {
    margin: 65px auto 20px;
  }
}


.grecaptcha-badge {
  visibility: hidden;
}
/*************************オリジナルパーツ*************************/
/*画像*/
.radius01 {
  border-radius: 50px 0 0 0;
}
.radius02 {
  border-radius: 40px 40px 40px 0px;
}
@media only screen and (max-width: 481.98px) {
  .radius01 {
    border-radius: 30px 0 0 0;
  }
  .radius02 {
    border-radius: 20px 20px 20px 0px;
  }
}
/*リスト*/
.description-list {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 20px auto 20px;
}
.description-list li {
  display: block;
  background: #92D032;
  color: #fff;
  font-weight: 450;
  font-size: 1.1rem;
  padding: 10px 20px;
  border-radius: 10px;
  margin: 5px 15px 5px 0;
}
@media only screen and (max-width: 481.98px) {
  .description-list li {
    color: #92D032;
    background: #fff;
    border: 2px solid #92D032;
    display: block;
    width: 100%;
    text-align: center;
    font-size: 0.9rem;
    margin: 5px auto;
  }
}
/* リンクボタン */
.btn-01 {
  display: inline-block;
  background: #E50012;
  color: #fff;
  border-radius: 50px;
  padding: 15px 50px 15px 35px;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  position: relative;
  transition: 0.3s;
  overflow: hidden;
  font-size: 1.1rem;
  width: 100%;
  max-width: 230px;
}
.btn-01::after {
  content: '＞';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8em;
  color: #fff;
  font-weight: 800;
  transition: 0.3s;
}
.btn-01:hover::after {
  right: 15px;
}

.back-main .btn-01 {
  background: #fff;
  color: #E50012;
}
.back-main .btn-01::after {
  color: #E50012;
}
.column-2btn {
  display: flex;
  justify-content: left;
  margin: 30px auto;
}
.column-2btn > a {
  margin: 0 15px;
}
@media only screen and (max-width: 1200px) {
  .btn-01 {
    padding: 10px 50px 10px 35px;
    font-size: 0.9rem;
    max-width: 175px;
  }
  .column-2btn > a {
    margin: 0 7px;
  }
}
@media only screen and (max-width: 481.98px) {
  .column-2btn {
    display: block;
  }
  .column-2btn > a {
    max-width: 100%;
    margin: 0 auto;
  }
}
/* テーブル */
.table01 {
  margin: 20px auto;
}
.table01 th {
  background: #73BD00;
  color: #fff;
  min-width: 165px;
  text-align: center;
  border: none;
  border-bottom: 2px solid;
}
.table01 td {
  border: none;
  border-bottom: 2px solid #92D032;
  background: #fff;
  line-height: 1.2rem;
  font-size: 0.9rem;
  padding: 15px 15px;
}
.table01 tr:nth-child(odd) th {
  background: #92D032;
}
.table01 tr:last-child th {
  border-bottom: 2px solid #92D032;
}
@media only screen and (max-width: 481.98px) {
  .table01 th {
    min-width: 100px;
    font-size: 0.9rem;
  }
}
.table02 {
	margin: 50px auto;
}
.table02 th {
  border: none;
  border-bottom: 2px solid #E50012;
  color: #E50012;
}
.table02 td {
  border: none;
  border-bottom: 1px solid #CACACA;
	padding: 20px;
}
.table02:first-child tr th {
  border-top: 2px solid #E50012;
}
.table02:first-child tr td {
  border-top: 1px solid #E50012;
}
@media only screen and (max-width: 481.98px) {
	.table02{
		margin: 20px auto;
	}
	.table02 th{
		display: block;
		padding: 10px 0px 5px;
  font-size: 1.1rem;
	}
	.table02 td{
		display: block;
		padding: 10px 0;
  border-bottom: none;
  margin-bottom: 10px;
	}
	.table02 ul{
		padding-left: 20px;
	}
	.table02 ul li{
		margin-bottom: 5px;
  line-height: 1.1rem;
	}
}
@media (max-width: 920px) {
  .scroll-table {
    max-width: 100%; /* 横幅を画面幅に制限 */
    overflow-x: scroll; /* 横スクロールを発生させる */
    flex-wrap: nowrap; /* 改行を禁止して横並びを維持 */
    justify-content: left;
    transform: rotateX(180deg);
  }
  .scroll-table table {
    flex: 0 0 auto; /* 横スクロールを適切に表示する */
    width: 750px; /* 必要に応じて横幅を指定 */
    transform: rotateX(180deg);
  }
}
.table-history{
	border-left: 3px solid #e3e3e3;
}
.table-history th{
	border: none;
  min-width: 200px;
  vertical-align: top;
  font-size: 1.3rem;
  font-weight: 500;
  padding-left: 30px;
	position: relative;
}
.table-history th::before{
	content: '';
  display: block;
  width: 15px;
  height: 15px;
  background: #E50012;
  position: absolute;
  border-radius: 50px;
  left: -7px;
  top: 21px;
}
.table-history td{
	border: none;
}
@media only screen and (max-width:600px) {
	.table-history th{
		display: block;
	}
	.table-history td{
		display: block;
	}
}
/* テキスト */
.big-txt {
  font-size: 3.4rem;
}
.small-txt {
  font-size: 0.8rem;
}
.catch-txt {
  font-size: 2.5vw;
  font-weight: 500;
  line-height: 3.3vw;
  margin: 30px auto;
}
.description-txt {
  font-size: 0.9rem;
}
.description-txt p {
  margin-bottom: 10px;
  line-height: 1.2rem;
}
@media only screen and (max-width: 1200px) {
  .catch-txt {
    font-size: 1.5rem;
    line-height: 2.1rem;
    margin: 20px auto;
  }
}
@media only screen and (max-width: 920px) {
  .catch-txt {
    font-size: 1.1rem;
    line-height: 1.6rem;
    font-weight: 510;
  }
  .description-txt p {
    font-size: 0.9rem;
    line-height: 1.3rem;
  }
}
@media only screen and (max-width: 481.98px) {
  .description-txt {
    font-size: 0.8rem;
    line-height: 1.1rem;
  }
}
/* 色 */
.back-main, .back-sub {
  margin: 0;
}
.back-main {
  background: #E50012;
}
.back-gray {
  background: #F2F2F2;
}
.back-sub {
  background: #73BD00;
}
.back-main, .back-sub, .back-main h2, .back-sub h2 {
  color: #fff;
}
/* PC-スマホ切換え */
.sp-feed {
  display: none;
}
.pc-center {
  text-align: center;
}
@media only screen and (max-width: 600px) {
  .sp-feed {
    display: inherit;
  }
  .pc-feed {
    display: none;
  }
  .pc-center {
    text-align: left;
  }
}
/** 背景fixed **/
/* デフォルト: 固定背景 */
.background-fixed {
  background-attachment: fixed !important;
}
/* iOSデバイス向けスタイル */
@supports (-webkit-touch-callout: none) {
  .background-fixed {
    background-attachment: scroll !important;
  }
}
@media only screen and (max-width: 600px) {
  .background-fixed {
    background-attachment: scroll !important;
  }
}
/* 動き:ふわっと表示*/
.fly {
  opacity: 0; /* 初期状態: 透明 */
  transform: translateY(20px); /* 初期状態: 下にずらす */
  transition: opacity 0.6s ease, transform 0.6s ease; /* アニメーションの設定 */
}
.fly.is-visible {
  opacity: 1; /* 表示 */
  transform: translateY(0); /* 元の位置に戻す */
}
/* 動き:ホバーしたら拡大*/
.big {
  display: inline-block; /* 必要に応じて調整 */
  transition: transform 0.4s ease; /* スムーズな変化を設定 */
  transform: scale(1); /* 初期の拡大率を設定 */
}
.big:hover {
  transform: scale(1.07); /* ホバー時の拡大率を設定 */
}
/*流れるスライド*/
.flowslide {
  overflow: hidden;
  width: 100%;
  background: url('img/bgi-01.svg');
  background-size: cover;
  padding: 40px 0 0px;
  background-position: bottom;
}
.slide-track {
  display: flex;
  animation: scroll 20s linear infinite;
  width: max-content;
}
.slide-track img {
  margin-right: 20px;
  flex-shrink: 0;
  max-width: 24vw;
  height: auto;
}
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@media only screen and (max-width: 481.98px) {
  .slide-track img {
    margin-right: 10px;
    max-width: 47vw;
  }
  .flowslide {
    padding: 20px 0 0px;
  }
}
/*************************オリジナルパーツセット*************************/
/**写真付きリンク**/
.column2-linkBOX {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin: 50px auto;
  max-width: 80vw;
}
.column2-linkBOX a {
  position: relative;
  width: calc(50% - 10px);
  height: 350px;
  color: #fff;
  font-size: 3.3rem;
  font-weight: bold;
  text-decoration: none;
  overflow: hidden;
  border-radius: 10px;
  padding: 20px;
  box-sizing: border-box;
  z-index: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
/* 背景を before に移す */
.column2-linkBOX a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: transform 0.5s ease;
  transform: scale(1);
  z-index: -1;
}
/* 各背景画像を指定 */
.bgi-01::before {
  background-image: url('/img/bgi-01.png');
}
.bgi-02::before {
  background-image: url('/img/bgi-02.png');
}
/* ホバーでズーム */
.column2-linkBOX a:hover::before {
  transform: scale(1.1);
}
/* span部分は.btn-01風に */
.column2-linkBOX a span {
  display: inline-block;
  background: #E50012;
  color: #fff;
  border-radius: 50px;
  padding: 10px 40px 10px 35px;
  font-size: 1rem;
  font-weight: 500;
  transition: 0.3s;
  position: relative;
  width: 190px;
}
/* ＞マーク追加 */
.column2-linkBOX a span::after {
  content: '＞';
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1em;
  transition: 0.3s;
}
/* ホバーで ＞ が動く */
.column2-linkBOX a:hover span::after {
  right: 10px;
}
@media only screen and (max-width: 920px) {
  .column2-linkBOX {
    max-width: 100%;
  }
  .column2-linkBOX a {
    font-size: 2.3rem;
  }
}
@media only screen and (max-width: 481.98px) {
  .column2-linkBOX {
    display: block;
    max-width: 100%;
    margin: 20px auto;
  }
  .column2-linkBOX a {
    width: 100%;
    height: 210px;
    margin-bottom: 20px;
  }
}
/** お問い合わせボックス **/
.contactbox {
  max-width: 900px;
  margin: 40px auto;
  border-radius: 10px;
  display: flex;
  padding: 25px;
  background: #fff;
  box-shadow: 0 0px 17px -6px rgba(0, 0, 0, 0.2);
}
.contactbox > div {
  width: 50%;
  padding: 10px 20px;
}
.contactbox > div.info {
  padding: 20px 20px;
}
.contactbox > div h3 {
  text-align: left;
  font-size: 1.2rem;
  font-weight: 520;
  line-height: 1.5rem;
  color: #E50012;
}
.contactbox > div .tel {
  font-size: 3.2rem;
  font-weight: 520;
  color: #E50012;
  line-height: 3.8rem;
}
.contactbox > div p {
  font-weight: 450;
  font-size: 0.9rem;
}
.contactbox > div > a {
  background: #E50012;
  color: #fff;
  font-size: 1.2rem;
  display: block;
  padding: 55px 10px 55px 105px;
  border-radius: 7px;
  position: relative;
  transition: 0.3s;
  text-align: left;
  text-decoration: none;
  font-weight: bold;
  line-height: 1.5rem;
}
.contactbox > div > a:hover {
  background: #FF505E;
}
.contactbox > div > a::after {
  content: '';
  display: block;
  width: 33px;
  height: 33px;
  background-image: url('img/menuicon.png');
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 54px;
  left: 55px;
}
@media only screen and (max-width: 1200px) {
  .contactbox {
    padding: 15px 10px;
  }
  .contactbox > div > a {
    padding: 30px 15% 30px 00;
    font-size: 1rem;
  }
  .contactbox > div > a::after {
    top: 30px;
    right: 20%;
  }
  .contactbox > div .tel {
    font-size: 3.4vw;
    line-height: 4vw;
  }
}
@media only screen and (max-width: 920px) {
  .contactbox {
    display: block;
    padding: 20px 10px;
  }
  .contactbox > div {
    width: 100%;
    text-align: center;
  }
  .contactbox > div > a {
    font-size: 1.1rem;
    padding: 75px 20px 25px;
    text-align: center;
  }
  .contactbox > div > a::after {
    width: 50px;
    height: 50px;
    top: 25px;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  .contactbox > div.info {
    padding: 10px 20px 20px;
  }
  .contactbox > div h3 {
    font-size: 1rem;
    margin-bottom: 0px;
    text-align: center;
  }
  .contactbox > div .tel {
    font-size: 8.7vw;
    line-height: 8.7vw;
    margin-bottom: 5px;
  }
}
/*お問い合わせフォーム(スノウモンキー)*/
.contact-form{
	margin: 60px auto;
}
.contact-form .smf-item__label__text{
	font-size: 1.1rem;
}
.smf-form--business .smf-item__col--label{
	border-left: 5px solid #E50012;
	padding: 10px 10px;
}
input[type="checkbox"]::after{
	content: none;
}
.smf-progress-tracker__item[aria-current="true"] .smf-progress-tracker__item__text{
	font-size: 0.9rem;
}
.smf-progress-tracker__item__text{
	font-size: 0.9rem;
}
.smf-complete-content > p{
	text-align: center;
}
.smf-action .smf-button-control__control{
	background: #E50012;
	  border: 2px solid #E50012;
}
.smf-action .smf-button-control__control:hover{
	color: #E50012;
  background: #fff;
  border: 2px solid #E50012;
}
.smf-item__description{
	margin-top: 0;
  font-size: 0.7rem;
}
@media only screen and (max-width: 600px) {
.contact-form .smf-item__label__text{
	font-size: 0.9rem;
	}}
/*枠*/
/*** ページリンク ***/
.page-menu ul {
  list-style: none;
  display: flex;
  justify-content: center;
  padding: 0 30px;
  margin: 0 auto 80px;
  border-bottom: 3px solid #92D032;
}
.page-menu ul li {
  display: block;
  width: 100%;
  margin: 0 10px;
  position: relative;
  bottom: -3px;
  text-align: center;
  font-weight: bold;
}
.page-menu ul li a {
  display: block;
  color: #fff;
  padding: 20px 10px 15px;
  transition: 0.1s;
  height: 100%;
  background: #92D032;
  border: 3px solid #92D032;
  border-bottom: none;
  border-radius: 5px 5px 0 0;
  text-decoration: none;
}
.page-menu ul li a:hover {
  background: #fff;
  color: #92D032;
}
.page-menu ul .active a {
  background: #fff;
  border: 3px solid #92D032;
  border-bottom-width: 3px;
  border-bottom-style: solid;
  border-bottom-color: rgb(229, 0, 18);
  border-bottom: none;
  color: #92D032;
}
.page-menu ul .active a:hover {
  background: #fff;
  color: #92D032;
}
@media only screen and (max-width: 600px) {
  .page-menu ul {
    padding: 0 5px;
  }
  .page-menu ul li {
    margin: 0 5px;
  }
  .page-menu ul li a {
    font-size: 0.85rem;
    line-height: 1rem;
    letter-spacing: -0.02rem;
  }
}
/*ページ見出し*/
.toc-list{
	list-style: none;
	padding: 20px 30px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
	margin-bottom: 20px;
	
}
.toc-list li{
	margin: 5px;
}
.toc-list li a{
	color: #E50012;
  display: block;
  text-decoration: none;
  border: 2px solid #E50012;
  padding: 3px 20px;
  border-radius: 7px;
  text-align: center;
	transition: 0.3s;
}
.toc-list li a:hover{
	background: #E50012;
	color: #fff;
}
@media only screen and (max-width: 600px) {
	.toc-list{
		display: block;
  padding: 0 30px 40px;
	}
	.toc-list li {
  margin: 0 auto;
}
	.toc-list li a{
		border-radius: 0;
  background: #f4f4f4;
  border: none;
		font-size: 1.1rem;
  padding: 10px;
	}
	.toc-list li:nth-of-type(2n) a{
		background: #ddd;
	}
	.toc-list li a:hover{
	background: #E50012;
	color: #fff;
}
	
}
@media only screen and (max-width: 481.98px) {
	
	.toc-list{
		padding: 30px 30px;
	}
	
}
/*流れ・フロー*/
.step-list {
  counter-reset: step-counter;
  margin: 2rem auto;
  padding: 0;
  list-style: none;
}

.step-list li {
  position: relative;
  background: #fff;
  border-left: 5px solid #E50012;
  padding: 30px 40px;
  margin-bottom: 1.5rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.step-list li::before {
  counter-increment: step-counter;
  content: counter(step-counter);
  position: absolute;
  left: 1rem;
  top: 1.7rem;
  background: #E50012;
  color: white;
  width: 1.8rem;
  height: 1.8rem;
  line-height: 1.8rem;
  border-radius: 50%;
  text-align: center;
  font-weight: bold;
  font-size: 0.9rem;
}

.step-list h3 {
  margin: 0px 15px 0.5rem;
  font-size: 1.1rem;
  color: #E50012;
	text-align: left;
}

.step-list p {
  margin: 0 0 0 15px;
  color: #444;
  line-height: 1.6;
  font-size: 0.95rem;
}

@media (max-width: 600px) {
  .step-list li {
    padding: 1.2rem 1.2rem 1.2rem 2.3rem;
  }

  .step-list li::before {
    left: 0.8rem;
    top: 1rem;
  }
}
/*ポイントリスト*/
.point-list {
  list-style: none;
  padding: 0;
  margin: 2rem auto;
}

.point-list li {
position: relative;
  margin-bottom: 10px;
  padding: 10px 10px 10px 41px;
  background: #f4f4f4;
  font-size: 1.1rem;
  border-radius: 4px;
}

.point-list li::before {
  content: '✔';
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #E50012;
  font-weight: bold;
  font-size: 1rem;
}

@media (max-width: 600px) {
	.point-list li {font-size: 0.9rem;}
}
/*カードボックス*/
.card-box01{
	background: #fff;
  border-radius: 15px;
  padding: 30px;
  margin: 20px auto;
}
.card-box01 h3{
	text-align: left;
  color: #cacaca;
}
/*テキストボックス*/
.text-box{
padding: 15px 20px;
  border: 1px solid #cacaca;
  margin: 0 auto;
}
.text-box h4{
	margin-top: 0;
}
.text-box p{
	font-size: 0.9rem;
}
/*************************個別設定*************************/

.maps iframe {
  height: 650px;
}
@media only screen and (max-width: 920px) {
  .maps iframe {
    height: 400px;
  }
}
.policy, .contact, .links-list, .archive-list{
	padding-top: 70px;
}

.policy h3 {
  text-align: left;
  font-size: 1.3rem;
  font-weight: 570;
  margin: 30px auto 10px;
  color: #E50012;
  border-top: 1px solid #E50012;
  padding-top: 30px;
}
.policy ul {
  padding: 10px 20px 5px;
}
.policy ul li {
  font-size: 1rem;
}
@media only screen and (max-width: 920px) {
  .policy h3 {
    font-size: 1.1rem;
  }
  .policy ul li {
    font-size: 0.8rem;
  }
	.policy, .contact, .links-list, .archive-list{
	padding-top: 0;
}
}
@media only screen and (max-width: 600px) {
	
}
/*いちはら工業独自*/
.logo-image-unique01 {
  position: absolute;
  z-index: -1;
  right: 0;
  top: -160px;
  width: 29vw;
}
@media only screen and (max-width: 920px) {
  .logo-image-unique01 {
    right: 0px;
    top: -70px;
    width: 59vw;
  }
}
.column-2-img div.img-01 {
  background: url(/img/01.png);
}
.column-2-img div.img-02 {
  background: url(/img/02.png);
}
.column-2-img div.img {
  background-size: cover;
}
.product-list{
	display: flex;
  justify-content: center;
	flex-wrap: wrap;
	max-width: 1200px;
  margin: 0 auto;
}
.product-list > div{
width: calc(100% / 3 - 20px);
  padding: 20px;
  background: #fff;
  margin: 10px;
  border-radius: 10px;
  box-shadow: 0 0 20px 0px rgba(0,0,0,0.1);
}
.product-list > div h3{
	font-size: 1.3rem;
  font-weight: 500;
  margin: 20px auto 0;
}

.product-list.one-column > div{
width: calc(100% / 1);
  margin: 10px auto;
  padding: 20px 50px;
  max-width: 900px;
}
.product-list.one-column > div h3{
	font-size: 2rem;
}
.product-list.one-column > div h4{
	text-align: center;
  font-size: 1.3rem;
  margin: 20px auto 20px;
  border-bottom: 3px dotted #c4c4c4;
  padding: 15px;
}
.product-list.one-column > div img{
  margin: 0 auto;
  display: block;
}
.product-list.one-column > div p{
 margin: 20px auto 30px;
  padding: 0 20px;
} 
.product-list.gallery > div{
	padding: 0;
  overflow: hidden;
}
@media only screen and (max-width: 600px) {
	.product-list > div{
		width: calc(100% / 2 - 10px);
		margin: 5px;
		padding: 10px
	}
	.product-list > div h3{
		font-size: 0.8rem;
margin: 5px auto 0px;
	}
	.product-list.one-column > div p{
		padding: 0;
	}
	.product-list.one-column > div{
		padding: 20px 30px;
	}
	.product-list.one-column > div h3{
		font-size: 1.4rem;
	}
	.product-list.one-column > div h4{
		font-size: 1.1rem;
  margin: 0 auto 10px;
	}
}
.archive-list{
	padding-left: 50px;
  padding-right: 50px;
  padding-bottom: 80px;
}
@media only screen and (max-width: 600px) {
	.archive-list{
		padding-left: 30px;
  padding-right: 30px;
	}
	
}
.partner-links ul{
	padding: 0;
}
.partner-links ul li{
	  list-style: none;
}
.partner-links ul li a{
	text-decoration: none;
  display: block;
  border: 2px solid;
  padding: 20px;
  text-align: center;
  margin-bottom: 15px;
	transition: 0.3s;
}
.partner-links ul li a:hover{
	background: #E50012;
  color: #fff;
}
@media only screen and (max-width: 600px) {
	.partner-links ul li a{
		font-size: 0.9rem;
  padding: 10px;
	}
}
.card-box01 .table02{
	margin: 20px auto;
}
.btn-01.center{
	margin: 20px auto 0;
  display: block;
  max-width: 300px;
}

/*************************カスタムフィールド*************************/
.property-details {
  max-width: 700px;
  margin: 30px auto 20px !important;
  padding: 30px;
}
.property-details h3 {
  font-size: 1.7rem;
  font-weight: 500;
  padding: 0 10px;
  margin: 30px auto 10px;
}
.property-details h3 span {
  background: #E50012;
  color: #fff;
  font-size: 1.1rem;
  display: inline-block;
  padding: 8px 5px 8px 10px;
  margin-right: 10px;
  position: relative;
  bottom: 3px;
  border-radius: 7px;
}
.property-details .year {
  color: #E50012;
  text-align: center;
  border: 2px solid;
  display: block;
  width: fit-content;
  padding: 2px 20px;
  border-radius: 6px;
  font-size: 0.9rem;
  margin: 10px auto;
}
.property-details .name {
  font-size: 1.4rem;
  text-align: center;
  background: #f4f4f4;
  padding: 10px;
  border-radius: 7px;
  margin: 20px auto;
}
.property-details .description {
  font-size: 1.1rem;
  padding: 10px;
}
.property-details .property-image1 {
  box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.1);
  border-radius: 20px;
}
.property-details .imgs{
	display: flex;
	justify-content: left;
	
}
.property-details .property-image2,.property-details .property-image3 {
	margin: 5px;
  border-radius: 10px;
}

.back-to-list {
  margin-top: 30px;
}
.back-to-list .btn-01 {
  max-width: 100%;
  font-size: 1.4rem;
  line-height: 1.4rem;
}
.back-to-list .btn-01 span {
  display: block;
  font-size: 0.9rem;
}
.back-to-list .btn-01::after {
  content: "←";
  font-size: 2.5rem;
  font-weight: lighter;
}
@media only screen and (max-width: 481.98px) {
  .property-details h3 {
    font-size: 1.1rem;
    margin: 20px auto 5px;
    text-align: left;
  }
  .property-details h3 span {
    font-size: 0.7rem;
  }
  .property-details .year {
    font-size: 0.7rem;
    padding: 4px 10px;
    margin: 0 0 0 auto;
    border: none;
    background: #f4f4f4;
    border-radius: 5px 5px 0 0;
  }
  .property-details .name {
	  margin: 0 auto;
    border-radius: 0 0 5px 5px;
    font-size: 1rem;
    line-height: 1.3rem;
    text-align: left;
  }
  .property-details .description {
    font-size: 0.9rem;
    padding: 10px;
  }
}
.property-h2 {
  font-size: 2.8rem;
  margin: 0;
  letter-spacing: 0.3rem;
}
.property-links {
}
.property-links a {
 display: block;
  width: 100%;
  text-decoration: none;
  transition: 0.3s;
  padding: 10px;
  border-bottom: 1px solid #999;
}
.property-links a:last-child{
	 border-bottom: none;
}
.property-links .property-details{
	margin: 0 auto !important;
  padding: 0;
  max-width: 100%;
	color: #000;
}
.property-links a:hover .property-details{
	color: #E50012;
}
.property-links .property-details .title{
font-weight: normal;
  text-align: left;
  font-size: 1.1rem;
  margin: 0 auto;
  padding: 0;
  line-height: 1.4rem;
}
.property-links .property-details .txt{
text-align: left;
  font-size: 0.9rem;
  border: 1px solid;
  padding: 0px 5px;
  margin: 0 auto 0 0;
  display: inline;
background: #fff;
}
.property-links .property-details .txt span{
	background: #fff;
  padding: 3px 3px;

  border: 2px solid;
  border-radius: 5px;
  font-size: 0.8rem;
  position: relative;
  top: -1px;
  margin-right: 5px;
}
.property-links a:hover .property-details .txt span{
	color: #000;
}

.all-decade-blocks{
	display: flex;
  flex-wrap: wrap;
	max-width: 1500px;
  margin: 0 auto;
}
.property-decade-block{
	background: #f4f4f4;
 padding: 30px 30px;
  border-radius: 10px;
  width: calc(100% / 3 - 20px);
  margin: 10px;
}
.property-decade-block h3{
	font-size: 1.6rem;
  font-weight: 500;
	color: #E50012;
}

@media only screen and (max-width: 1000px) {
.property-decade-block{
  width: calc(100% / 2 - 20px);

}
}
@media only screen and (max-width: 680px) {
	.property-decade-block{
		width: calc(100%);
margin: 15px auto;
    padding: 30px 20px;

	}
}
@media only screen and (max-width: 481.98px) {}