@charset "utf-8";
/* CSS Document */
/**
目次

全体設定
ヘッダー
フッター
カラム設定
トップページ
アーカイブページ
投稿ページ
固定ページ
オリジナルパーツ
オリジナルパーツセット
個別設定

**/
/**************************全体設定***************************/
body {
  overflow-x: Clip;
}
body, .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, textarea, pre, iframe, table, th, td, input, textarea, button, .button {
  font-family: "Poppins", "游ゴシック", YuGothic, "游ゴシック体", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", "MS PGothic", monospace !important;
}
#main {
  padding: 0;
}
p, table {
  font-size: 1rem;
  margin: 10px auto;
  font-weight: 490;
}
strong {
  color: #3071B7;
}
a {
  color: #3071B7;
}
img {
  width: 100%;
}
h2 {
  font-weight: bold;
  font-size: 2.2rem;
  text-align: center;
  margin: 10px auto 20px;
}
h3 {
  font-weight: bold;
  font-size: 1.9rem;
  text-align: center;
}
@media only screen and (max-width: 481.98px) {
  h2 {
    font-size: 1.8rem;
  }
  h3 {
    font-size: 1.5rem;
    margin-bottom: 10px;
  }
}
h4 {
  font-size: 1.5rem;
  margin: 0px auto 20px;
}
@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: rgba(255, 255, 255, 0.8);
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
  border-radius: 10px 10px 0 0;
  max-width: calc(100vw - 40px);
  margin-top: 10px;
  backdrop-filter: blur(12px);
}
@media only screen and (max-width: 920px) {
  #masthead {
    padding: 0 25px 0 15px;
  }
  #masthead.scroll {
    margin-top: 8px;
  }
}
@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%;
  }
}
/*ロゴ*/
@media only screen and (min-width: 482px) {
  .site-logo .custom-logo {
    max-width: 200px;
  }
  #masthead.scroll .site-logo .custom-logo {
    max-width: 160px;
  }
}
@media only screen and (max-width: 920px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 120px;
  }
}
@media only screen and (max-width: 600px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 110px;
  }
}
@media only screen and (max-width: 481.98px) {
  .site-logo .custom-logo, #masthead.scroll .site-logo .custom-logo {
    max-width: 140px;
  }
}
/*ナビ*/
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
  background: #3071B7;
  color: #fff;
  font-size: 1rem;
  display: block;
  padding: 20px 49px 20px 20px;
  height: 60px;
  border-radius: 7px;
  margin-top: 20px;
  position: relative;
  transition: 0.3s;
  margin-left: 10px;
}
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a:hover {
  background: #3a91ee;
}
.primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
  content: '';
  display: block;
  width: 28px;
  height: 28px;
  background-image: url('img/menuicon.png');
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 17px;
  right: 14px;
}
@media only screen and (min-width: 482px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    text-align: center;
    padding: 35px 1.2vw 25px;
    position: relative;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:first-child > a {
    padding-left: 20px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .jp {
    display: block;
    font-size: 0.9rem;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a:hover .jp {}
  .primary-navigation .primary-menu-container > ul > .menu-item > a:active .jp {}
  .primary-navigation .current-menu-item > a:first-child::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    background: #3071b7;
    border-radius: 50px;
    position: absolute;
    top: 23px;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  .primary-navigation .current_page_item > a:first-child::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    background: #3a91ee;
    border-radius: 50px;
    position: absolute;
    top: 23px;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::before {
    content: none;
  }
}
@media only screen and (max-width: 920px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    font-size: 0.9rem;
    padding: 35px 1.1vw 35px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .jp {
    font-size: 0.7rem;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
    margin-left: 5px;
    padding: 20px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a span {
    display: none;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
    top: inherit;
    bottom: 11px;
    right: 0;
    left: 0;
    margin: 0 auto;
    width: 23px;
  }
}
@media only screen and (max-width: 600px) {
  .primary-navigation .primary-menu-container > ul > .menu-item > a {
    font-size: 0.9rem;
    padding: 35px 1vw 35px;
    letter-spacing: -0.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: center;
    border-bottom: 2px solid;
    padding: 10px 10px;
    margin-bottom: 10px;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item > a .jp {
    font-size: 0.9rem;
    display: block;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a {
    font-size: 1.1rem;
    padding: 25px 9px 80px;
    margin: 20px 0;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a span {
    display: inherit;
  }
  .primary-navigation .primary-menu-container > ul > .menu-item:last-child a::after {
    width: 40px;
    height: 40px;
    bottom: 13px;
  }
}
/*子メニュー*/
.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;
}
.primary-navigation .sub-menu .current_page_item > a:first-child::before {
  display: none;
}
@media only screen and (min-width: 482px) {
  .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
    width: 100%;
  }
  .primary-navigation > div > .menu-wrapper > li > .sub-menu {
    position: fixed;
    top: 99px;
    z-index: 1200;
    width: 100%;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    display: flex;
    padding: 0;
  }
  .primary-navigation .sub-menu .menu-item > a {
    text-align: center;
    padding: 100px 0;
    transition: 0.3s;
    border: none;
    color: #fff;
    font-size: 2rem;
    background: rgba(0, 0, 0, 0.5);
  }
  .primary-navigation .sub-menu .menu-item > a span {
    display: block;
    font-size: 1rem;
    line-height: 1.6rem;
  }
  .primary-navigation .sub-menu .menu-item > a:hover {
    background: rgba(0, 0, 0, 0);
  }
}
@media only screen and (max-width: 600px) {
  .primary-navigation > div > .menu-wrapper > li > .sub-menu {
    top: 94px;
  }
}
@media only screen and (max-width: 481.98px) {
  .primary-navigation .sub-menu .menu-item > a span {
    display: block;
    font-size: 0.9rem;
    margin: 2px auto;
    line-height: 1.2rem;
  }
  .primary-navigation > div > .menu-wrapper > li > .sub-menu {
    top: auto;
  }
}
/* メニュートグル有無 */
@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.8);
    padding: 20px 50px;
  }
}
/*************************フッター*************************/
.no-widgets .site-footer {
  width: 100%;
  max-width: 100%;
  padding: 0px;
}
.site-footer > .site-info {
  margin: 0;
  background: #3071B7;
}
.site-footer > .site-info .site-info-contents {
  display: flex;
  justify-content: center;
  max-width: 1650px;
  margin: 0 auto;
  width: 100%;
  padding: 45px 50px;
}
.site-footer > .site-info .site-info-contents .brand {
  width: 35%;
}
.site-footer > .site-info .site-info-contents .sitemap {
  width: 65%;
}
.site-footer .site-info .site-info-contents .sitemap ul {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  list-style: none;
}
.site-footer .site-info .site-info-contents .sitemap ul li {
  width: calc(100% / 3);
  padding: 0 20px 20px 30px;
  position: relative;
}
.site-footer .site-info .site-info-contents .sitemap ul li a {
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  display: block;
  font-size: 0.8rem;
  transition: 0.3s;
}
.site-footer .site-info .site-info-contents .sitemap ul li a span {
  display: block;
  color: rgba(255, 255, 255, 0.5);
  font-size: 1.7rem;
  line-height: 2rem;
  font-weight: 520;
}
.site-footer .site-info .site-info-contents .sitemap ul li a::before {
  position: absolute;
  display: block;
  content: "";
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50px;
  top: 20px;
  left: 9px;
}
.site-footer .site-info .site-info-contents .sitemap ul li a:hover {
  padding-left: 10px;
}
.site-footer .site-info .site-info-contents .sitemap ul li a:hover span {
  color: rgba(255, 255, 255, 1);
}
.site-footer > .site-info .site-info-contents .brand {
  padding: 0px;
}
.site-footer > .site-info .site-info-contents .brand img {
  max-width: 300px;
}
.site-footer > .site-info .site-info-contents .brand .catch {
  color: #fff;
  font-weight: bold;
  font-size: 1.2rem;
  margin: 10px auto;
}
.site-footer > .site-info .site-info-contents .brand p {
  color: #fff;
  margin: 10px auto;
}
.site-footer > .site-info .site-info-contents .brand p a {
  color: #fff;
}
.site-footer > .site-info .site-info-contents .brand .info-ul {
  list-style: none;
  padding: 0;
  display: flex;
  justify-content: left;
}
.site-footer > .site-info .site-info-contents .brand .info-ul li {
  background: #fff;
  color: #3071b7;
  font-weight: bold;
  border-radius: 55px;
  padding: 3px 25px;
  font-size: 1rem;
  margin-right: 10px;
}
.site-footer > .site-info .copyright {
  background: #040404;
  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: 1200px) {
  .site-footer .site-info .site-info-contents .sitemap ul li {
    width: calc(100% / 2);
  }
}
@media only screen and (max-width: 920px) {
  .site-footer .site-info .site-info-contents .sitemap ul li {
    width: 100%;
  }
  .site-footer > .site-info .site-info-contents .brand .catch {
    font-size: 1rem;
    margin: 10px auto;
    line-height: 1.1rem;
  }
  .site-footer > .site-info .site-info-contents .brand img {
    max-width: 210px;
  }
  .site-footer > .site-info .site-info-contents .brand {
    padding: 0px 10px;
    width: auto;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li {
    padding: 0 10px 20px 30px;
  }
  .site-footer .site-info .site-info-contents .sitemap ul li a span {
    font-size: 2.3rem;
    line-height: 2.3rem;
  }
  .site-footer > .site-info .site-info-contents .brand .info-ul {
    display: block;
  }
  .site-footer > .site-info .site-info-contents .brand .info-ul li {
    font-size: 0.8rem;
    margin: 0 auto 10px;
  }
  .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 {
    display: block;
    padding: 40px 30px;
  }
  .site-footer > .site-info .site-info-contents > div {
    width: 100%;
  }
  .site-footer > .site-info .site-info-contents .brand img {
    max-width: 270px;
    margin: 0 auto;
    display: block;
    padding: 10px 25px;
  }
  .site-footer > .site-info .site-info-contents .brand .catch {
    text-align: center;
    font-size: 0.9rem;
    line-height: 1rem;
  }
  .site-footer > .site-info .site-info-contents .brand .info-ul {
    display: block;
    text-align: center;
  }
  .site-footer > .site-info .site-info-contents .brand p {
    text-align: center;
  }
  .site-footer .site-info .site-info-contents .sitemap ul {
    padding: 40px 0 20px;
  }
}
/*************************カラム設定*************************/
/*幅*/
.max-1500 {
  max-width: 1500px;
  margin: 0 auto;
}
.max-1100 {
  max-width: 1100px;
  margin: 0 auto;
}
.max-800 {
  max-width: 800px;
  margin: 0 auto;
}
/*カラム枠*/
.column-1 {
  padding: 100px 30px;
  margin: 0 auto;
}
.column-1-child {
  padding: 50px 0px 0px;
}
.column-1-top {
  padding: 30px 30px 100px;
}
.staff-box{
	justify-content: space-between;
	display: flex;
	flex-wrap: wrap;
	margin: 30px auto;
	padding-left: 0;
}
.staff-box li{
	padding-left: 10px;
	padding-right: 10px;
	text-decoration: none;
	display: flex;
	width: calc(100%/3 - 10px);
}
.staff{
	display: flex;
	justify-content: center;
	padding-left:30px;
	padding-right: 30px;
}
.staff-boxchild{
	display: block !important;
	margin: 20px auto;
	max-width: 830px;
	width:100%;
	border-radius: 10px;
	padding: 20px 50px;
	background: #fff;
	box-shadow: 0 7px 12px -6px rgba(0, 0, 0, 0.5);
	float: left;
	align-items: flex-start;
	padding-left: 10px;
	padding-right: 10px;
}
.staff-boxchild .staff-img{
	max-width: 320px;
	width: 100%;
	margin: 0 auto;
}
.staff-boxchild .staff-txt{
	margin: 10px 15px 0px 15px;
}
.staff-txt span{
	color: #3071b7;
	padding-right: 10px;
	display: block;
}
.staff-txt div{
	font-weight: 600;
}
.staff-txt p{
	display: flex;
	align-items: flex-end;
}
.staff-boxchild div img{
	width: 100%;
}
.staff-pic-section{
	background:#dfe3e7;
}
.staff-pic-title{
	text-align: left;
	margin-left: 40px;
}
.staff-pic-title span{
	color:black !important;
	font-size: 1.8em;
	position: relative;
	z-index: 11;
}
.staff-pic-title strong{
	display: block;
	margin-bottom: 10px;
	position: relative;
	z-index: 10;
}
.pic-title-decoration{
	background-image: url('img/title-decoration.png');
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	transform: rotate(-20deg);
	height: 106px;
	position: absolute;
	max-width: 800px !important;
	width: 100% !important;
	left: -40px;
}
.staff-pic{
	display: flex;
	justify-content: space-between;
	margin: 20px 40px;
	position: relative;
}
.staff-pic>div{
	width: calc(50% - 10px);
}
.staff-pic img{
	width: 90%;
	position: relative;
	z-index: 1;
}
.staff-pic-tet{
	display: bdock;
}
.staff-pic-txt div{
	margin-bottom: 30px;
}
.staff-interview{
	display: block;
	font-size: 1.5em;
	font-weight: 600;
	position: relative;
	margin-bottom: 10px;
	line-height: 45px;
}
.staff-interview::before{
	content: "";
	display: block;
	height: 45px;
	width: 7px;
	background-color: #3071b7;
	position: absolute;
	top: 0;
	left: -20px;
}

.staff-title-top{
	display: flex;
	align-items: flex-end;
	margin-bottom: 30px;
	position: relative;
	z-index: 20;
}
.staff-title-top h3 span{
	line-height: .95em;
}
.staff-title-top div{
	margin-left: 30px;
}
.answer{
	padding: 20px;
	background: white;
	border-top-right-radius: 35px;
	border-bottom-left-radius: 35px;
}
@media only screen and (max-width: 920px) {
.staff-box{
	justify-content: space-between;
	display: flex;
	flex-wrap: wrap;
	max-width: 1476px;
	width: 100%;
	margin: 30px auto;
	padding-left: 0;
}
.staff-box li{
	padding-left: 10px;
	padding-right: 10px;
	text-decoration: none;
	display: flex;
	width: calc(100%/2 - 10px);
}
.staff{
	display: flex;
	justify-content: center;
	padding-left: 0;
	padding-right: 0;
}
.staff-boxchild{
display: block !important;
margin: 20px auto;
max-width: 830px;
    border-radius: 10px;
    padding: 30px;
    background: #fff;
    box-shadow: 0 7px 12px -6px rgba(0, 0, 0, 0.5);
float: left;
align-items: flex-start;
padding-left: 10px;
  padding-right: 10px;
}
.contactbox-padding {
  border-radius: 10px;
  display: flex;
  flex-flow: column;
  background: #e1f0f6;
  box-shadow: 0 7px 12px -6px rgba(0, 0, 0, 0.5);
  padding: 30px;
}
.staff-title-top,.staff-pic{
	flex-flow: column;
}
.staff-pic{
	margin: 0;
}
.staff-pic div{
	width: 100%;
	margin-bottom: 20px;
	
}
.pic-img{
	width: 70% !important;
	margin: 0 auto;
}
.pic-img img{
	width: 100%;
}
.staff-title-top{
	margin-bottom: 20px;
}
.staff-pic-title span{
	color:black !important;
	font-size: 1.2em;
}
.staff-title-top h3 span {
	line-height: .8em;
}
.staff-pic-txt{
	padding-left: 18px;
}
.staff-interview{
	font-size: 1.5em;
}
.staff-interview::before{
	height: 40px;
	left: -20px;
}
.pic-title-decoration{
	width: 600px !important;
	left: -40px;
	height: 90px;
}
}
@media only screen and (max-width: 600px){
.staff-box{
	justify-content: space-between;
	display: flex;
	flex-wrap: wrap;
	max-width: 1476px;
	width: 100%;
	margin: 30px auto;
	padding-left: 0;
}
.staff-box li{
	padding-left: 0;
	padding-right: 0;
	text-decoration: none;
	display: flex;
	width: 100%;
}
.staff{
	display: flex;
	justify-content: center;
	padding-left: 0;
	padding-right: 0;
}
.staff-boxchild{
	display: block !important;
	margin: 20px auto;
	max-width: 830px;
	border-radius: 10px;
	padding: 30px;
	background: #fff;
	box-shadow: 0 7px 12px -6px rgba(0, 0, 0, 0.5);
	float: left;
	align-items: flex-start;
	padding-left: 10px;
	padding-right: 10px;
}
.pic-img{
	width: 80% !important;
	margin: 0 auto;
}
.staff-pic-title span {
	font-size: 1.19em;
}
.staff-interview {
	font-size: 1.2em;
}
.staff-pic-title{
	text-align: left;
	margin-left: 0;
}
.staff-interview::before{
	height: 33px;
}
.pic-title-decoration{
	width: 450px !important;
	left: -40px;
	height: 59px;
}
}
@media only screen and (max-width: 920px) {
  .column-1 {
    padding: 60px 40px;
  }
  .column-1-top {
    padding: 30px 40px 60px;
  }
}

}
@media only screen and (max-width: 481.98px) {
  .column-1 {
    padding: 60px 30px;
  }
  .column-1-child {
    padding: 30px 0px 0px;
  }
  .column-1-top {
    padding: 20px 30px 60px;
  }
}
.column-2 {
  display: flex;
  justify-content: center;
}
.column-2 > div {
  width: 50%;
  margin: 15px;
}
.column-2 h3 {
  text-align: left;
}
@media only screen and (max-width: 920px) {
  .column-2 {
    display: block;
  }
  .column-2 > div {
    width: 100%;
    margin: 0 auto 50px;
  }
  .column-2 > div:last-child {
    margin-bottom: 0;
  }
}
.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%;
}
/*ラップ*/
.wrap-min {
  padding: 15px;
}
/*スペーサー*/
.bottomL {
  margin-bottom: 80px;
}
.bottomM {
  margin-bottom: 50px;
}
.bottomS {
  margin-bottom: 20px;
}
/*表示反転*/
.pc-row-reverse {
  flex-direction: row-reverse;
}
@media only screen and (max-width: 920px) {}
/*************************トップページ index.php *************************/
/* ローディング画面 */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #efefef;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  /* フレックスボックスを使って中央揃え */
  display: flex;
  align-items: center; /* 垂直方向に中央揃え */
  justify-content: center; /* 水平方向に中央揃え */
}
#loading img {
  max-width: 330px;
  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 {
  height: 100vh;
  margin: 0;
  min-height: 500px;
  position: relative;
}
/*スライドショー*/
.back-slideshow {}
.back-slideshow div {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  height: 100vh;
  margin: 0;
}
.back-slideshow div.img01 {
  background-image: url('img/pc-image1.png');
  background-position: top;
}
.back-slideshow div.img02 {
  background-image: url('img/pc-image2.png');
  background-position: top;
}
.back-slideshow .slick-dots {
  display: none;
}
.slick-initialized .slick-slide {
  min-height: 500px;
}
@media only screen and (max-width: 481.98px) {
  .back-slideshow div.img01 {
    background-image: url('img/sp-image1.png');
  }
  .back-slideshow div.img02 {
    background-image: url('img/sp-image2.png');
  }
}
/*背景動画*/
.back-movie {
  position: relative;
  width: 100%;
  height: 100vh; /* 全画面高さ */
  overflow: hidden;
}
.back-movie::before {
  content: '';
  display: block;
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  background: #e3e3e3;
  z-index: -6;
}
#background-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 101%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}
.dot-filter {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(black 10%, transparent 11%);
  background-size: 5px 5px; /* ドットのサイズを調整 */
  opacity: 0.2; /* ドットの透明度を調整 */
  z-index: 0; /* 動画より上、コンテンツより下に配置 */
  pointer-events: none; /* フィルターがクリックを邪魔しないようにする */
}
@media only screen and (max-width: 920px) {
  .back-movie {
    max-height: 680px;
  }
}
@media only screen and (max-width: 600px) {
  .back-movie {
    max-height: 100vh;
  }
}
#first-view .catch-area {
  position: absolute;
  z-index: 2;
  bottom: 2vw;
  right: 2.5vw;
}
#first-view .catch-area .main-catch {
  font-size: 6.1vw;
  line-height: 5.5vw;
  font-weight: 700;
  color: #fff;
  text-align: right;
}
#first-view .catch-area .sub-catch {
  font-size: 1.5vw;
  letter-spacing: 0.4vw;
  font-weight: bold;
  margin: 20px auto 5px;
  text-align: right;
}
#first-view .catch-area .main-catch .color, .catch-area .sub-catch .color {
  color: #3071b7;
}
@media only screen and (max-width: 920px) {
  #first-view, .slick-initialized .slick-slide {
    max-height: 680px;
  }
  #first-view .catch-area .main-catch {
    font-size: 8.5vw;
    line-height: 8vw;
  }
  #first-view .catch-area .sub-catch {
    font-size: 2.3vw;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 600px) {
  #first-view, .slick-initialized .slick-slide {
    max-height: 100vh;
  }
  #first-view .catch-area {
    bottom: 6vw;
    width: 100vw;
    right: initial;
    padding: 0 20px;
  }
  #first-view .catch-area .main-catch {
    font-size: 16.5vw;
    line-height: 14.4vw;
  }
  #first-view .catch-area .sub-catch {
    font-size: 4.1vw;
    letter-spacing: 0;
    text-align: right;
    color: #fff;
  }
}
@media only screen and (max-width: 481.98px) {}
/*** お知らせ ***/
#news .newscontent {
  display: flex;
  padding: 80px 30px;
}
#news .newscontent .title {
  width: 35%;
  margin: 15px;
}
#news .newscontent .post-list {
  width: 65%;
  margin: 15px;
}
#news p {
  color: #fff;
}
#news .post-list {
  width: 60%;
}
#news .post-list a {
  width: 100%;
  margin: 10px auto 30px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  border-radius: 20px;
}
#news .post-list a .contents-wrap {
  padding: 20px 20px 20px 10px;
  width: 60%;
}
#news .post-list a .img-wrap {
  overflow: hidden;
  border-radius: 20px 20px 0px 20px;
  margin-right: 20px;
  max-width: 350px;
}
#news .post-list a img {
  transition: transform 0.5s ease;
  transform: scale(1);
}
#news .post-list a:hover {}
#news .post-list a:hover img {
  transform: scale(1.1);
}
#news .post-list a h3 {
  font-size: 1.2rem;
  text-align: left;
  border-bottom: 2px solid;
  padding-bottom: 10px;
  font-weight: 520;
}
#news .post-list a .category-title {
  display: inline-block;
  background: #3071b7;
  color: #fff;
  font-weight: 520;
  font-size: 0.9rem;
  padding: 3px 20px;
  border-radius: 50px;
  margin: 0 auto;
  box-shadow: 0 0 7px 0px rgba(0, 0, 0, 0.3);
}
#news .post-list a .days {
  font-size: 0.9rem;
}
#news .post-list a p {
  font-size: 0.8rem;
}
#news .post-list a::before, #news .post-list a::after {
  content: '';
  display: block;
  position: absolute;
}
#news .post-list a::before {
  width: 25px;
  height: 25px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: #3071B7;
  bottom: 10px;
  right: 10px;
}
#news .post-list a::after {
  width: 8px;
  height: 8px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  bottom: 19px;
  right: 19px;
}
@media only screen and (max-width: 1150px) {
  #news .newscontent {
    display: block;
    padding: 70px 45px;
  }
  #news .newscontent .title {
    width: 100%;
    margin: 20px auto;
  }
  #news .newscontent .post-list {
    width: 100%;
    margin: 30px auto;
  }
}
@media only screen and (max-width: 920px) {
  #news .post-list a .contents-wrap {
    padding: 0;
  }
  #news .post-list a::before {
    bottom: 5px;
    right: 0px;
  }
  #news .post-list a::after {
    bottom: 14px;
    right: 9px;
  }
  #news .post-list a .days {
    font-size: 0.8rem;
    margin: 5px auto 0;
  }
}
@media only screen and (max-width: 600px) {
  #news .post-list a {
    display: block;
    background: #434c61;
    padding: 20px;
  }
  #news .post-list a .img-wrap {
    max-width: 100%;
    margin: 0 auto;
  }
  #news .post-list a .contents-wrap {
    width: 100%;
    padding: 15px 0 5px;
  }
  #news .post-list a::before {
    bottom: 12px;
    right: 10px;
  }
  #news .post-list a::after {
    bottom: 20px;
    right: 19px;
  }
}
/*************************お知らせ一覧ページpage-articles.php**************************/
#news-archive {
  padding: 30px;
}
#news-archive .pagination {
  border: none;
}
#news-archive ul {
  padding: 0;
  max-width: 800px;
  margin: 0 auto;
  list-style: none;
}
#news-archive ul li {}
#news-archive ul li a {
  display: flex;
  padding: 20px;
  text-decoration: none;
  margin: 20px auto;
  border-bottom: 2px solid #e3e7ea;
  transition: 0.3s;
}
#news-archive ul li a:hover {
  background: #e3e7ea;
  border-radius: 7px;
}
#news-archive ul li a p{
	margin: 0;
}
#news-archive ul li a .category-title {
  background: #3071b7;
  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 .days {
  margin-right: 20px;
  width: 100px;
  text-align: right;
}
@media only screen and (max-width: 481.98px) {
  #news-archive ul li a {
    flex-wrap: wrap;
    padding: 15px 20px;
    border: 2px solid #e3e7ea;
    border-radius: 7px;
  }
  #news-archive ul li a p {
    width: 50%;
  }
  #news-archive ul li a .days {
    text-align: left;
    margin-right: 10px;
    width: auto;
  }
  #news-archive ul li a .category-title {
    color: #3071b7;
    background: none;
    border: 1px solid #3071b7;
    width: auto;
    margin-right: 20%;
  }
}
/*************************その他のページ*************************/
/*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: #3071B7;
  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: #3071B7;
  padding: 5px;
}
.search-form .search-submit:hover {
  color: #fff;
  background: #3071b7;
}
/*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: #3071B7;
  font-size: 2.2rem;
}
.archive-page-contents article .entry-content {
  margin: 10px auto;
}
.archive-page-contents article .entry-content .more-link {
  color: #3071b7;
  font-weight: bold;
  text-decoration: none;
  padding: 2px 10px;
  font-size: 0.8rem;
  border-radius: 4px;
  border: 2px solid #3071b7;
  transition: 0.3s;
  display: inline-block;
}
.archive-page-contents article .entry-content .more-link:hover {
  color: #fff;
  background: #3071b7;
}
.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 {
  background: #f4f4f4;
  max-width: 100%;
  margin: 0 auto 50px;
  padding: 130px 0px 0px;
  padding-bottom: 0 !important;
}
.entry-header-single h1 {
  font-size: 2.3rem;
  text-align: right;
  font-weight: bold;
  color: #2b2b2b;
  letter-spacing: 1px;
  padding: 10px 30px 20px;
}
.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: #3071B7;
}
@media only screen and (max-width: 481.98px) {
  .entry-header-single h1 {
    font-size: 1.5rem;
    padding: 10px 20px 0;
  }
  .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%;
  }
}
/*************************固定ページ*************************/
#page .entry-content {
  overflow: Clip;
  margin: 0 auto;
}
/**ヘッダー見出し**/
.singular .entry-header.headercustom {
  background: #3071B7;
  margin: 100px auto 0px;
  width: 100%;
  max-width: 100%;
  color: #fff;
  height: 400px;
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 0;
  overflow: Clip;
}
.singular .entry-header.headercustom h1 {
  color: #fff;
  font-weight: 530;
  text-align: right;
  font-size: 1.4rem;
  line-height: 3rem;
  position: absolute;
  right: 0;
  bottom: 10px;
  padding: 0 30px;
  z-index: 10;
  margin: 0;
}
.singular .entry-header.headercustom p.en {
  position: absolute;
  display: block;
  font-weight: 520;
  font-size: 4.5rem;
  margin: 0;
  bottom: 40px;
  padding: 0 20px;
  text-align: right;
  right: 0;
}
.singular .entry-header.headercustom::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(38, 74, 131, 0.2);
  backdrop-filter: blur(2px);
}
.singular .entry-header.headercustom::after {
  display: block;
  content: url('img/motif.svg');
  position: absolute;
  width: 560px;
  height: auto;
  top: 20px;
  left: -60px;
  z-index: 0;
  opacity: 0.4;
}
@media only screen and (max-width: 920px) {
  .singular .entry-header.headercustom p.en {
    font-size: 3rem;
  }
  .singular .entry-header.headercustom::before {
    backdrop-filter: blur(0px);
  }
}
@media only screen and (max-width: 600px) {
  .singular .entry-header.headercustom h1 {
    font-size: 1.8rem;
  }
  .singular .entry-header.headercustom {
    margin: 95px auto 0px;
    height: 240px;
  }
}
@media only screen and (max-width: 481.98px) {
  .singular .entry-header.headercustom {
    margin: 65px auto 0px;
  }
  .singular .entry-header.headercustom h1 {
    font-size: 1.1rem;
  }
  .singular .entry-header.headercustom p.en {
    font-size: 2.4rem;
  }
  .singular .entry-header.headercustom::after {
    width: 280px;
  }
}
/*** メールフォーム ***/
.wpcf7-form {
  max-width: 700px;
  background: #e6e6e6;
  padding: 10px 40px 10px;
  border-radius: 20px;
  margin: 50px auto 20px;
}
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="color"], .site textarea {
  width: 100%;
  border: none;
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.1);
  margin: 5px auto;
  border-radius: 5px;
}
.wpcf7-form .title p {
  font-weight: 600;
}
.wpcf7-form .title {
  color: #3071B7;
  font-weight: bold;
  font-size: 1.1rem;
  position: relative;
  border-top: 2px solid #fff;
  padding-top: 20px;
}
.wpcf7-form .title-first {
  border-top: none;
}
.wpcf7-form .title .hissu {
  background: #3071B7;
  color: #fff;
  font-size: 0.7rem;
  padding: 4px 8px;
  line-height: 0.7rem;
  position: relative;
  bottom: 3px;
  border-radius: 2px;
  margin-left: 5px;
}
.wpcf7-form > p {
  margin-bottom: 20px;
}
.wpcf7-form [type="checkbox"], .wpcf7-form [type="radio"] {
  margin: 10px auto;
  top: 15px;
}
.wpcf7-list-item{
	position: relative;
  top: -10px;
}
.wpcf7-list-item-label {
  color: #000;
  font-size: 1rem;
  margin-right: 10px;
}
.wpcf7-list-item label {
  border: none;
}
.wpcf7-submit, .wpcf7-previous {
  width: 100%;
  background: #3071B7;
  font-weight: bold;
  letter-spacing: 5px;
  text-align: center;
  border-radius: 5px;
  font-size: 1rem;
  transition: 0.3s;
  padding: 20px 20px;
  border: none;
  color: #fff;
  margin: 10px auto;
  cursor: pointer;
}
.wpcf7-previous {
  margin-top: 20px;
  background: #fff;
  color: #3071b7;
}
.wpcf7-submit:hover, .wpcf7-previous:hover {
  color: #fff;
  border: none;
  background: #3071b7;
}
@media only screen and (max-width: 600px) {
  .wpcf7-form {
    padding: 30px 20px 10px;
    border-radius: 10px;
  }
  .wpcf7-list-item {
    margin: 0 0 0 10px;
    display: block;
  }
  .wpcf7-form label {}
}

/*************************サイトマップぺージ*************************/
.sitemap-page h2{
	text-align: left;
  margin: 10px auto 20px;
  border-left: 8px solid;
  font-size: 1.6rem;
  letter-spacing: 0.1rem;
  padding-left: 15px;
}
.sitemap-page ul{
	padding: 0;
  display: flex;
  flex-wrap: wrap;
  list-style: none;
margin-bottom: 50px;
}
.sitemap-page ul li{
	width: calc(100% / 4 - 20px);
  margin: 10px;
}
.sitemap-page ul li a{
	display: block;
  text-decoration: none;
  border-bottom: 2px dotted;
  transition: 0.3s;
  font-size: 1rem;
  font-weight: 510;
}
.sitemap-page ul li a:hover{
	padding-left: 10px;
}
.sitemap-page ul li a span{
	display: block;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.4rem;
}
@media only screen and (max-width: 920px) {
	.sitemap-page ul li{
	width: calc(100% / 2 - 20px);
  margin: 10px;
}
}
@media only screen and (max-width: 481.98px) {
	.sitemap-page ul li{
	width: calc(100% / 1 - 0px);
  margin: 10px auto;
}
}

/*************************プライバシーポリシー*************************/

.policy-page h2{
text-align: left;
  font-weight: 520;
  font-size: 1.2rem;
  margin: 30px auto 10px;
  color: #3071B7;
  border-top: 2px solid #e6e6e6;
  padding-top: 30px;
}

.policy-page{
	background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
  border-radius: 30px;
  padding: 40px 50px 40px;
}
/*************************オリジナルパーツ*************************/
/* 見出し */
.h2-style {
  text-align: left;
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 30px;
  position: relative;
  padding-left: 20px;
}
.h2-style span {
  display: block;
  font-size: 6rem;
  line-height: 7.5rem;
  font-weight: 700;
  position: relative;
  left: -20px;
}
.h2-style::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  display: block;
  left: 0;
  border-radius: 50px;
  background: #3071B7;
  top: 6px;
}
.h2-style.h2-center {
  text-align: center;
  padding: 0;
}
.h2-style.h2-center span {
  line-height: 6.5rem;
  left: 0;
}
.h2-style.h2-center::after {
  right: 0;
  left: 0;
  margin: 0 auto;
  top: -35px;
}
@media only screen and (max-width: 920px) {
  .h2-style span {
    font-size: 4.2rem;
    line-height: 5.9rem;
  }
}
@media only screen and (max-width: 481.98px) {
  .h2-style {
    font-size: 0.9rem;
    line-height: 1.2rem;
    margin-bottom: 20px;
  }
  .h2-style span {
    font-size: 14vw;
    line-height: 15.4vw;
    letter-spacing: -0.1rem;
    margin-top: 5px;
  }
  .h2-style::after {
    top: 4px;
  }
  .h2-style.h2-center span {
    line-height: 14vw;
  }
  .h2-style.h2-center::after {
    top: -25px;
  }
}
.h4-style {
  color: #3071B7;
  border-left: 5px solid;
  padding: 0px 10px;
}
@media only screen and (max-width: 481.98px) {}
/* リンクボタン */
.btn01 {
  position: relative;
  text-decoration: none;
  padding: 10px 20px 10px 10px;
  font-size: 0.9rem;
  width: 100%;
  display: block;
  max-width: 220px;
  text-align: center;
  margin: 30px 0;
  font-weight: bold;
  transition: 0.3s;
  background: #3071B7;
  color: #fff;
  border-radius: 50px;
}
.btn01::before, .btn01::after {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 10px;
  margin: auto;
  content: "";
  vertical-align: middle;
}
.btn01::before {
  width: 25px;
  height: 25px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: #fff;
}
.btn01::after {
  width: 8px;
  height: 8px;
  border-top: 3px solid #3071B7;
  border-right: 3px solid #3071B7;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  right: 20px;
}
.btn01:hover {
  background: #CFDDED;
  color: #000;
  box-shadow: 0 0 8px -3px #8d99b3 inset;
}
.btn01:hover::after {
  border-color: #fff;
}
.btn01:hover::before {
  background: #3071B7;
}
.btn02ist {
  list-style: none;
  padding: 0;
  margin: 30px auto;
}
.btn02ist li {}
.btn02ist li a {
  transition: 0.3s;
  position: relative;
  display: block;
  padding: 20px 20px 20px 55px;
  text-decoration: none;
  border-top: 2px solid #cecece;
  font-size: 1rem;
  font-weight: bold;
  color: #000;
}
.btn02ist li a:hover {
  color: #3071B7;
  background: #f4f4f4;
}
.btn02ist li:last-child {
  border-bottom: 2px solid #cecece;
}
.btn02ist li a::after, .btn02ist li a::before {
  content: '';
  display: block;
  position: absolute;
}
.btn02ist li a::after {
  width: 8px;
  height: 8px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  top: 28px;
  left: 27px;
}
.btn02ist li a::before {
  width: 25px;
  height: 25px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: #3071B7;
  left: 20px;
  top: 20px;
}
.btn-mini {
  background: #3071B7;
  text-align: center;
  display: block;
  border-radius: 7px;
  color: #fff;
  text-decoration: none;
  padding: 10px;
  font-weight: bold;
  transition: 0.3s;
  margin: 5px auto;
}
.btn-mini:hover {
  background: #3071b7;
}
/* テーブル */
.table01 {
  margin: 20px auto;
}
.table01 th {
  border: none;
  border-bottom: 2px solid #c0cedd;
  letter-spacing: 0.1rem;
}
.table01 td {
  border: none;
  border-bottom: 2px solid #e4ecf5;
  line-height: 1.2rem;
  padding: 20px 15px;
}
.table01 td ul {
  list-style: none;
  padding: 0 20px 0;
  margin: 10px auto;
}
.table01 td ul li {
  position: relative;
  margin-bottom: 20px;
}
.table01 td ul li::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50px;
  background: #3071B7;
  top: 6px;
  left: -17px;
}
.table01 td ul li h3 {
  text-align: left;
  font-size: 1.1rem;
}
@media only screen and (max-width: 481.98px) {
  .table01 th, .table01 td {
    display: block;
    width: 100%;
  }
  .table01 th {
    border-bottom: none;
    border-top: 1px solid #c0cedd;
    padding: 10px 0;
    font-size: 1rem;
    letter-spacing: 0;
  }
  .table01 td {
    font-size: 0.9rem;
    padding: 0;
    margin-bottom: 15px;
    border: none;
  }
  .table01 tr:last-child td {
    border-bottom: 1px solid #c0cedd;
  }
  .table01 td ul li {
    margin-bottom: 10px
  }
  .table01 td ul li h3 {
    font-size: 1rem;
  }
  .table01 td ul li p {
    font-size: 0.9rem;
  }
}
.table-time-line {
  position: relative;
}
.table-time-line::before {
  content: '';
  display: block;
  width: 4px;
  height: 100%;
  background: #F1F1F2;
  left: 0;
  top: 0;
  position: absolute;
}
.table-time-line tr {}
.table-time-line th, .table-time-line td {
  border: none;
}
.table-time-line th {
  border: none;
  font-size: 3.3rem;
  padding-left: 40px;
  vertical-align: top;
  line-height: 3.5rem;
  position: relative;
}
.table-time-line th::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  display: block;
  left: -3px;
  border-radius: 50px;
  background: #3071B7;
  top: 35px;
}
.table-time-line td {
  border-bottom: 2px solid #DFE3E7;
  padding: 20px 10px;
}
.table-time-line td h3 {
  text-align: left;
  font-size: 1.2rem;
  margin-bottom: 10px;
  color: #3071B7;
}
.table-time-line td p {
  margin: 5px auto;
}
@media only screen and (max-width: 481.98px) {
  .table-time-line th, .table-time-line td {
    display: block;
  }
  .table-time-line th {
    font-size: 2rem;
    padding: 12px 15px;
  }
  .table-time-line td {
    border: none;
    padding: 0 10px 20px 20px;
  }
}
@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);
  }
}
/* カウントリスト */
.content-list {
  list-style-type: none;
  counter-reset: list-counter;
  padding: 0;
  margin: 40px auto 0;
}
.content-list li {
  counter-increment: list-counter;
  position: relative;
  padding: 0px 20px 20px 70px;
  margin: 30px auto 0;
  border-bottom: 2px solid #DFE3E7;
}
.content-list li:last-child {
  border-bottom: none;
}
.content-list li::before {
  content: counter(list-counter, decimal-leading-zero) ". ";
  font-weight: 520;
  font-size: 1.7rem;
  padding: 5px 10px;
  color: #3071B7;
  position: absolute;
  left: 0;
  top: 0;
}
.content-list li h3 {
  text-align: left;
  font-size: 2.2rem;
  padding: 10px 0px;
}
.content-list li h3 span {
  display: block;
  color: #3071B7;
  font-size: 1rem;
  font-weight: 450;
  letter-spacing: 0.1rem;
}
@media only screen and (max-width: 481.98px) {
  .content-list li {
    padding: 0px 10px 20px 20px;
  }
  .content-list li::before {
    left: -20px;
    top: -3rem;
    font-size: 5rem;
    color: #E8E8E8;
    z-index: -1;
  }
  .content-list li h3 {
    font-size: 2rem;
  }
}
/* テキスト */
.big-txt {
  font-size: 3.4rem;
}
.small-txt {
  font-size: 0.8rem;
}
.large-catch {
  font-size: 2.9rem;
  font-weight: bold;
  line-height: 5.5rem;
  margin: 30px auto 50px;
}
.catch-txt {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 3rem;
  margin: 20px auto;
  letter-spacing: 0.1rem;
}
.description-txt {
  font-size: 0.9rem;
}
.description-txt p {
  margin-bottom: 10px;
  line-height: 1.2rem;
}
@media only screen and (max-width: 920px) {
  .large-catch {
    font-size: 2rem;
    line-height: 4rem;
    margin: 10px auto 30px;
  }
  .catch-txt {
    font-size: 1.1rem;
    line-height: 2rem;
    font-weight: 510;
  }
  .description-txt p {
    font-size: 0.9rem;
    line-height: 1.3rem;
  }
}
@media only screen and (max-width: 481.98px) {
  .large-catch {
    margin: 20px auto 30px;
    font-size: 1.5rem;
    line-height: 3.3rem;
  }
  .description-txt {
    font-size: 0.8rem;
    line-height: 1.1rem;
  }
}
/* 色 */
.back-light, .back-dark, .back-skyblue, .back-gray {
  margin: 0;
}
.back-light {
  background: #dcedff;
}
.back-dark {
  background: #25292F;
}
.back-blue {
  background: #3071b7;
}
.back-gray {
  background: #DFE3E7;
}
.back-dark, .back-skyblue {
  color: #fff;
}
.back-dark a, .back-skyblue a {
  color: #fff;
}
.back-dark .h2-style, .back-skyblue .h2-style {
  color: #fff;
}
.color-blue {
  color: #3071b7;
}
/* 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 **/
.bgi01 {
  background: url('img/bgi-02-pc.png');
}
.bgi-section {
  padding: 50px;
  min-height: 450px;
  background-size: cover;
}
@media only screen and (max-width: 600px) {
  .bgi01 {
    background: url('img/bgi-02-sp.png');
  }
  .bgi-section {
    padding: 50px;
    min-height: 270px;
  }
}
/* デフォルト: 固定背景 */
.bgi-section {
  background-attachment: fixed !important;
}
/* iOSデバイス向けスタイル */
@supports (-webkit-touch-callout: none) {
  .bgi-section {
    background-attachment: scroll !important;
    background-size: cover;
  }
}
@media only screen and (max-width: 600px) {
  .bgi-section {
    background-attachment: scroll !important;
    background-size: cover;
  }
}
/* 動き:ふわっと表示*/
.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); /* ホバー時の拡大率を設定 */
}
/*************************オリジナルパーツセット ※使ってなかったら削除可*************************/
/*ロゴ背景セクション*/
.logoback {
  position: relative;
  padding: 100px 30px 100px;
}
.logoback::after {
  display: block;
  content: url('img/logo.svg');
  position: absolute;
  width: 780px;
  right: -60px;
  top: -60px;
  z-index: -1;
}
.logoback > div {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
  border-radius: 30px;
  padding: 100px 50px 40px;
}
@media only screen and (max-width: 481.98px) {
  .logoback::after {
    width: 127vw;
  }
  .logoback > div {
    padding: 70px 30px 40px;
  }
}
/* 料金表 */
.plan-list {
  display: flex;
  justify-content: center;
  max-width: 1500px;
  margin: 40px auto 0;
}
.plan-list .plan {
  width: calc(100% / 3);
  background: #fff;
  color: #000;
  border-radius: 15px;
  padding-bottom: 15px;
  margin: 15px;
}
@media (max-width: 1200px) {
  .plan-list {
    max-width: 100%; /* 横幅を画面幅に制限 */
    overflow-x: scroll; /* 横スクロールを発生させる */
    flex-wrap: nowrap; /* 改行を禁止して横並びを維持 */
    justify-content: left;
    transform: rotateX(180deg);
  }
  .plan-list .plan {
    flex: 0 0 auto; /* 横スクロールを適切に表示する */
    width: 370px; /* 必要に応じて横幅を指定 */
    margin: 10px;
    transform: rotateX(180deg);
  }
}
@media only screen and (max-width: 481.98px) {
  .plan-list .plan {
    width: 250px;
  }
}
.plan-list .plan h3 {
  background: #3071b7;
  border-radius: 14px 14px 0 0;
  padding: 18px 10px 15px;
  text-align: center;
  color: #fff;
  font-size: 1.1rem;
  font-weight: bold;
}
.plan-list .plan h3 span {
  font-size: 2.7rem;
  display: block;
  font-weight: 520;
  line-height: 2.9rem;
  letter-spacing: 0;
}
@media only screen and (max-width: 481.98px) {
  .plan-list .plan h3 {
    border-radius: 8px 8px 0 0;
    padding: 10px 10px 10px;
    font-size: 0.8rem;
    letter-spacing: -0.05rem;
  }
  .plan-list .plan h3 span {
    font-size: 2.2rem;
    line-height: 2.6rem;
  }
}
.plan-list .plan .price {
  color: #3071B7;
  font-weight: 520;
  font-size: 4rem;
  letter-spacing: -0.2rem;
  text-align: center;
  line-height: 2.7rem;
  padding: 40px 10px 20px;
}
.plan-list .plan .price .yen {
  font-size: 1.8rem;
  margin-left: 5px;
}
.plan-list .plan .price .taxin {
  font-size: 1.2rem;
  letter-spacing: -0.05rem;
  line-height: 1.9rem;
}
@media only screen and (max-width: 600px) {
  .plan-list .plan .price {
    font-size: 3.4rem;
    line-height: 3.2rem;
    padding: 20px 15px 20px;
  }
}
@media only screen and (max-width: 481.98px) {
  .plan-list .plan .price {
    font-size: 10.7vw;
    line-height: 10vw;
    padding: 20px 10px 20px;
  }
  .plan-list .plan .price .yen {
    font-size: 17px;
    margin-left: 3px;
  }
  .plan-list .plan .price .taxin {
    font-size: 0.9rem;
    letter-spacing: -0.05rem;
    line-height: 0.9rem;
  }
}
.plan-list .plan > div {
  position: relative;
}
.plan-list .plan > div::after {
  position: absolute;
  content: "";
  width: 89%;
  top: 0;
  height: 2px;
  border-radius: 20px;
  background: #e3e3e3;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.plan-list .plan .price::after {
  content: none;
}
.plan-list .plan .contents {
  font-weight: 510;
  text-align: center;
  padding: 20px 0 15px;
}
.plan-list .plan .contents .page {
  color: #3071B7;
  display: block;
  font-size: 5rem;
  line-height: 5rem;
}
.plan-list .plan .contents .txt {
  font-weight: normal;
  font-size: 0.8rem;
  line-height: 1rem;
}
@media only screen and (max-width: 481.98px) {
  .plan-list .plan .contents {
    padding: 15px 0 10px;
    font-size: 0.9rem;
    line-height: 0.9rem;
  }
  .plan-list .plan .contents .page {
    font-size: 4rem;
    line-height: 4.3rem;
  }
  .plan-list .plan .contents .txt {
    font-size: 0.7rem;
    line-height: 0.7rem;
    letter-spacing: -0.02rem;
  }
}
.plan-list .plan .service {}
.plan-list .plan .service ul {
  list-style: none;
  padding-left: 0;
  font-size: 0.95rem;
  padding: 20px 40px 20px 37px;
}
.plan-list .plan .service ul li {
  background: url('img/check.png') no-repeat left center;
  padding-left: 25px;
  background-size: 20px;
}
.plan-list .plan .service ul .pick {
  background: url('img/check-blue.png') no-repeat left center;
  background-size: 20px;
  background-position-y: 5px;
}
.plan-list a {
  color: #3071B7;
}
.plan-list .plan .service ul li a p {}
.plan-list .plan .description {
  font-size: 0.9rem;
  line-height: 1.3rem;
  padding: 15px 30px;
}
@media only screen and (max-width: 481.98px) {
  .plan-list .plan .service ul {
    padding: 15px 20px 10px 17px;
    font-size: 0.8rem;
    line-height: 0.8rem;
  }
  .plan-list .plan .service ul li {
    padding-left: 20px;
    background-size: 15px;
    margin: 10px auto;
  }
  .plan-list .plan .service ul .pick {
    background-size: 15px;
    background-position-y: 0px;
  }
  .plan-list .plan .service ul li a {
    line-height: 1rem;
  }
  .plan-list .plan .description {
    font-size: 0.8rem;
    line-height: 1.1rem;
    padding: 15px 15px;
  }
}
/* アイコンコンテンツ */
.icon-content {
  padding: 10px;
}
.icon-content img {
  max-width: 250px;
  display: block;
  margin: 0 auto;
}
.icon-content h4 {
  color: #3071B7;
  background: #e6e6e6;
  text-align: center;
  padding: 10px 10px;
  border-radius: 7px;
  font-size: 1.2rem;
  margin: 10px auto;
}
.icon-content p {
  color: #3071b7;
  font-size: 0.9rem;
  line-height: 1.4rem;
}
@media only screen and (max-width: 920px) {
  .icon-content {
    padding: 0;
  }
  .icon-content p {
    font-size: 0.8rem;
    line-height: 1.3rem;
    letter-spacing: -0.03rem;
  }
  .icon-content h4 {
    font-size: 1rem;
    line-height: 1.1rem;
  }
}
/** フロー・ステップ **/
.flow-card {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.flow-card li {
  width: calc(100% / 3 - 70px);
  margin: 15px 35px;
  background: #fff;
  box-shadow: 0 0 25px -5px rgba(0, 0, 0, 0.2);
  padding: 30px 35px;
  border-radius: 15px;
  position: relative;
}
.flow-card li::after {
  display: block;
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent transparent transparent #3071B7;
  border-width: 17.5px 0px 17.5px 20px;
  right: -47px;
  top: calc(100% / 2 - 35px / 2);
}
.flow-card li:nth-of-type(3n)::after {
  display: none;
}
.flow-card li img {
  padding: 0px 20px 0px;
}
.flow-card li h3 {
  color: #3071B7;
  font-size: 1.2rem;
  text-align: left;
  display: flex;
  margin-bottom: 5px;
}
.flow-card li h3 span {
  color: #afafaf;
  display: block;
  font-size: 2rem;
  line-height: 1.3rem;
  padding: 0 5px 0 0px;
}
@media only screen and (max-width: 920px) {
  .flow-card {
    padding: 0;
    display: block;
  }
  .flow-card li {
    width: 100%;
    margin: 50px auto;
  }
  .flow-card li img {
    max-width: 350px;
    display: block;
    margin: 0 auto;
  }
  .flow-card li::after {
    right: 0;
    left: 0;
    margin: 0 auto;
    top: inherit;
    bottom: -32px;
    border-style: solid;
    border-color: #3071B7 transparent transparent transparent;
    border-width: 15px 15px 0px 15px;
  }
  .flow-card li:nth-of-type(3n)::after {
    display: block;
  }
  .flow-card li:last-child::after {
    display: none;
  }
}
/** 説明 **/
.description-card {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.description-card li {
  width: calc(100% / 3 - 70px);
  margin: 15px 35px;
  background: #fff;
  box-shadow: 0 0 25px -5px rgba(0, 0, 0, 0.2);
  padding: 30px 35px;
  border-radius: 15px;
  position: relative;
}
.description-card li img {
  padding: 0px 20px 0px;
}
.description-card li h3 {
  font-size: 1.2rem;
  text-align: left;
}
.description-card li h3 span {
  color: #3071B7;
  font-weight: 600;
  font-size: 2rem;
  padding-right: 10px;
}
@media only screen and (max-width: 920px) {
  .description-card {
    padding: 0;
    display: block;
  }
  .description-card li {
    width: 100%;
    margin: 50px auto;
  }
}
/** お問い合わせボックス **/
.contactsection {
  position: relative;
  padding: 50px 30px 0;
  background: #DFE3E7;
  margin: 0;
}
.contactsection > div {
  background: rgba(255, 255, 255, 0.6);
  box-shadow: 0 2px 29px rgba(0, 0, 0, 0.1);
  border-radius: 30px 30px 0 0;
  backdrop-filter: blur(12px);
  max-width: 1000px;
  margin: 100px auto 0;
  padding: 50px 30px 20px;
	z-index: 2;
	position: relative;
}
.contactsection h2 {
  color: #3071B7;
  font-size: 1.2rem;
}
.contactsection h2 span {
  display: block;
  font-size: 6rem;
  line-height: 6.1rem;
}
.contactbox {
  max-width: 830px;
  margin: 20px auto;
  border-radius: 10px;
  display: flex;
  padding: 30px;
  background: #fff;
  box-shadow: 0 7px 12px -6px rgba(0, 0, 0, 0.5);
}
.contactbox > div {
  width: 50%;
  padding: 10px 20px;
}
.contactbox > div h3 {
  text-align: left;
  font-size: 1.1rem;
}
.contactbox > div .tel {
  font-size: 2.8rem;
  font-weight: 520;
  color: #3071B7;
  line-height: 3.8rem;
}
.contactbox > div p {
  font-weight: 500;
  line-height: 1rem;
}
.contactbox > div > a {
  background: #3071B7;
  color: #fff;
  font-size: 1.1rem;
  display: block;
  padding: 50px 50px 50px 20px;
  border-radius: 7px;
  position: relative;
  transition: 0.3s;
  text-align: center;
  text-decoration: none;
  font-weight: bold;
  line-height: 1.5rem;
}
.contactbox > div > a:hover {
  background: #3a91ee;
}
.contactbox > div > a::after {
  content: '';
  display: block;
  width: 38px;
  height: 38px;
  background-image: url('img/menuicon.png');
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 43px;
  right: 50px;
}
@media only screen and (max-width: 920px) {
  .contactsection h2 {
    font-size: 1rem;
  }
  .contactsection h2 span {
    font-size: 3.8rem;
    line-height: 4rem;
  }
  .contactbox {
    display: block;
    padding: 20px 10px;
  }
  .contactbox > div {
    width: 100%;
  }
  .contactbox > div > a {
    font-size: 1rem;
    padding: 75px 20px 30px;
  }
  .contactbox > div > a::after {
    width: 50px;
    height: 50px;
    top: 25px;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  .contactbox > div h3 {
    font-size: 0.9rem;
    margin-bottom: 5px;
  }
  .contactbox > div .tel {
    font-size: 7.1vw;
    line-height: 7.1vw;
    margin-bottom: 5px;
  }
}
@media only screen and (max-width: 481.98px) {
  .contactsection {
    padding: 20px 0px 0;
  }
}
/*枠*/
.card01 {
  background: #fff;
  color: #000;
  text-align: center;
  padding: 35px 20px;
  border-radius: 10px;
  margin: 40px auto;
  box-shadow: 0 0 25px -5px rgba(0, 0, 0, 0.2);
}
.card01 h4 {
  padding: 0 10px;
  margin: 5px auto 10px;
}
@media only screen and (max-width: 481.98px) {
  .card01 {
    padding: 20px 15px;
    text-align: left;
  }
  .card01 h4 {
    font-size: 1.2rem;
    border-left: 5px solid;
  }
}
.card02 {
  background: #3071b7;
  color: #fff;
  text-align: center;
  padding: 35px 20px;
  border-radius: 10px;
  margin: 40px auto;
}
.card02 h4 {
  padding: 0 10px;
  margin: 5px auto 10px;
}
.card02 strong {
  color: #fff;
}
@media only screen and (max-width: 481.98px) {
  .card02 {
    padding: 20px 15px;
    text-align: left;
  }
  .card02 h4 {
    font-size: 1.2rem;
    border-left: 5px solid;
  }
}
/*** ページリンク ***/
.page-menu {
  padding: 0 30px;
  margin-top: 30px;
}
.page-menu ul {
  list-style: none;
  display: flex;
  justify-content: center;
  padding: 0;
}
.page-menu ul li {
  display: block;
  width: 100%;
}
.page-menu ul li a {
  display: block;
  text-decoration: none;
  background: rgba(48, 113, 183, 0.8);
  color: #fff;
  font-weight: 510;
  text-align: center;
  font-size: 1rem;
  padding: 10px;
  box-shadow: 0 0 15px 0px rgba(0, 0, 0, 0.15);
  border-radius: 10px;
  margin: 0 10px;
  backdrop-filter: blur(12px);
  transition: 0.3s;
}
.page-menu ul li a:hover {
  background: rgba(255, 255, 255, 0.6);
  color: #3071B7;
}
.page-menu ul .active a {
  background: rgba(255, 255, 255, 0.6);
  color: #3071B7;
}
.page-menu ul .active a:hover {
  background: rgba(255, 255, 255, 0.6);
}
@media only screen and (max-width: 600px) {
  .page-menu ul li a, .page-menu ul .active a {
    font-size: 0.8rem;
    margin: 0 5px;
    background: rgba(255, 255, 255, 0.9);
    color: #3071B7;
  }
}
/** プライスボックス **/
.price-box {
  background: #dcedff;
  text-align: center;
  max-width: 550px;
  margin: 0 auto;
  padding: 10px 20px 25px;
  border-radius: 10px;
  font-weight: bold;
}
.price-box .price {
  font-size: 2rem;
}
.price-box .price span {
  color: #3071B7;
  font-size: 4rem;
  line-height: 4rem;
  position: relative;
  top: 7px;
  font-weight: 520;
}
/*角丸トリミング*/
.back-img-right, .back-img-left {
  height: 100%;
  background-position: center !important;
  max-height: 500px;
  background-size: cover !important;
}
.back-img-right {
  border-radius: 50px 50px 50px 0px;
}
.back-img-left {
  border-radius: 50px 50px 0px 50px;
}
.back-left {
  border-radius: 50px 50px 0px 50px;
}
@media only screen and (max-width: 920px) {
  .back-img-right, .back-img-left {
    min-height: 400px;
    position: relative;
    max-width: 75vw;
  }
  .back-img-right {
    border-radius: 30px 0px 0px 30px;
    right: -40px;
    margin: 0 0 0 auto;
  }
  .back-img-left {
    margin: 0 auto 0 0;
    left: -40px;
    border-radius: 0px 30px 30px 0px;
  }
  .back-left {
    border-radius: 30px 30px 0px 30px;
  }
}
.hidden {
  overflow: hidden;
}
/*キャッチ画像付セクション*/
.catch-img-section {
  background: #DFE3E7;
  border-radius: 50px 50px 50px 0px;
  position: relative;
}
.catch-img-section .no1 {
  background-image: url('img/bgi-01-pc.png');
}
.catch-img-section .no2 {
  background-image: url('img/bgi-03-pc.png');
}
.catch-img-section .catch-img {
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  height: 500px;
  border-radius: 50px 50px 0px 0px;
}
.catch-img-section .contents {
  background: #DFE3E7;
  padding: 60px 30px 0 30px;
  display: flex;
  max-width: 1500px;
  margin: 0 auto;
  position: relative;
}
.catch-img-section .contents .title {
  width: 35%;
  margin: 15px;
}
.catch-img-section .contents .content {
  width: 65%;
  margin: 15px;
  position: relative;
  top: -120px;
}
.catch-img-section .content.card {}
.catch-img-section .content.card > div {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 30px 30px 30px 0;
  padding: 50px 40px;
  position: relative;
  margin-bottom: 30px;
  box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.1);
}
.catch-img-section .content.card > div:last-child {
  margin-bottom: 0;
}
.catch-img-section .content.card > div img {
  width: 120px;
  position: absolute;
  left: 30px;
}
.catch-img-section .content.card > div h3 {
  padding-left: 120px;
  text-align: left;
  font-size: 1.1rem;
  line-height: 2rem;
}
.catch-img-section .content.card > div h3 span {
  display: block;
  color: #3071B7;
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 2.5rem;
  margin-top: 10px;
}
.catch-img-section .content.card > div p {
  border-top: 3px solid #e5e5e5;
  margin-top: 20px;
  padding-top: 15px;
  font-size: 0.9rem;
  line-height: 1.3rem;
}
@supports (-webkit-touch-callout: none) {
  .catch-img-section .catch-img {
    background-attachment: scroll;
  }
}
@media only screen and (max-width: 1200px) {
  .catch-img-section .contents .title, .catch-img-section .contents .content {
    width: 50%;
  }
}
@media only screen and (max-width: 920px) {
  .catch-img-section .contents {
    display: block;
    padding: 60px 40px 50px;
  }
  .catch-img-section .contents .title, .catch-img-section .contents .content {
    width: 100%;
  }
  .catch-img-section .contents .title {
    margin: 0 auto;
  }
  .catch-img-section .contents .content {
    top: 0;
    margin: 50px auto;
  }
  .catch-img-section .no1 {
    background-image: url('img/bgi-01-sp.png');
  }
  .catch-img-section .no2 {
    background-image: url('img/bgi-03-sp.png');
  }
  .catch-img-section .catch-img {
    background-attachment: scroll;
  }
}
@media only screen and (max-width: 481.98px) {
  .catch-img-section .contents {
    display: block;
    padding: 60px 30px 50px;
  }
  .catch-img-section .catch-img {
    height: 260px;
  }
  .catch-img-section .content.card > div {
    right: -30px;
    border-radius: 30px 0px 0px 0;
    padding: 20px 20px 20px 30px;
  }
  .catch-img-section .content.card > div img {
    width: 90px;
    position: relative;
    left: auto;
  }
  .catch-img-section .content.card > div h3 {
    padding-left: 0;
    font-size: 1rem;
    line-height: 1.2rem;
  }
  .catch-img-section .content.card > div h3 span {
    margin-top: 5px;
    font-size: 1.6rem;
    line-height: 2rem;
  }
  .catch-img-section .content.card > div p {
    margin-top: 10px;
    padding-top: 10px;
    font-size: 0.8rem;
    line-height: 1.3rem;
  }
}
/*トグル開閉ボックス*/
.toggle {
  padding: 0px;
  border-radius: 10px;
  margin: 0 auto 30px;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
}
.toggle-content {
  height: 0;
  overflow: hidden;
  transition: height 0.5s ease-in-out;
  padding: 0px 50px 0px;
}
.h2-toggle {
  cursor: pointer;
  user-select: none;
  padding: 30px 50px;
  margin: 0 auto;
  text-align: left;
  font-size: 2rem;
  transition: 0.3s;
  position: relative;
}
.h2-toggle:hover {
  color: #3071B7;
}
.h2-toggle::before {
  content: "";
  position: absolute;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #3071B7;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
}
.h2-toggle::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg);
  top: calc(50% - 3px);
  transition: transform 0.3s ease-in-out;
  right: 28px;
}
.h2-toggle.open::after {
  transform: rotate(-135deg);
}
.toggle-content > table {
  margin-bottom: 50px;
}
/*ループで流れる*/
.loop-gallery {
  padding:30px 0 60px;
}
.marquee-right {
  overflow: hidden;
}
.marquee-right ul {
  animation: marquee-right 20s linear infinite;
  display: flex;
  margin: 0;
  padding: 0;
  width: max-content;
}
.marquee-right ul li {
  list-style: none;
  padding: 0 10px;
  width: calc(100vw / 3 - 20px);
}
.marquee-right img {
  display: block;
  width: 100%;
  border-radius: 20px;
}
@media only screen and (max-width: 481.98px) {
	.loop-gallery {
  padding: 30px 0;
}
  .marquee-right ul li {
    list-style: none;
    padding: 0 5px;
    width: calc(100vw / 2 - 10px);
  }
  .marquee-right img {
    border-radius: 10px;
  }
}
@keyframes marquee-right {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-50%);
  }
}
/*背景にループで流れる*/
.gallery-back {
  position: relative;
  overflow: hidden;
  height: 100vh;
  background: #fff;
}

.diagonal-gallery {
  position: absolute;
  top: 0;
  transform: rotate(-45deg);
  z-index: 0;
  pointer-events: none;
  right: 0;
}

.diagonal-track {
  display: flex;
  flex-wrap: nowrap;
  animation: diagonal-scroll 60s linear infinite;
	height: fit-content;
}

.diagonal-track img {
  width: 390px;
  height: auto;
  margin: 20px;
  border-radius: 10px;
  flex-shrink: 0;
}

.gallery-back .content {
  position: relative;
  z-index: 1;
  padding: 60px;
  color: #000;
}

@keyframes diagonal-scroll {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0%);
  }
}


/*固定見出し*/

.sticky-box {
  display: flex;
  gap: 20px;
  /* overflow: hidden がある場合はsticky効かないので注意 */
  /* overflow: visible にできるならしたほうが良い */
}

.sticky-wrapper {
  position: sticky;
  top: 20px; /* スクロール時の固定位置 */
  align-self: flex-start; /* 高さ揃え */
  flex-shrink: 0;
  width: 200px; /* タイトル幅 */
}

.sticky-main-contents {
  flex: 1; /* 右側のコンテンツは残り幅 */
}

/* タイトルが親要素の高さを超えないように */
.sticky-box {
  /* ここに overflow: visible; を入れるのが理想 */
  overflow: visible;
}


/*************************個別設定*************************/
/*グローバルメニューサブ項目装飾*/
@media only screen and (min-width: 482px) {
  .primary-navigation .sub-menu #menu-item-57 {
    background-image: url('img/catch02.png');
    background-position: center;
    background-size: cover;
  }
  .primary-navigation .sub-menu #menu-item-55 {
    background-image: url('img/catch01.png');
    background-position: center;
    background-size: cover;
  }
  .primary-navigation .sub-menu #menu-item-59 {
    background-image: url('img/catch03.png');
    background-position: center;
    background-size: cover;
  }
  .primary-navigation .sub-menu #menu-item-159 {
    background-image: url('img/catch04.png');
    background-position: center;
    background-size: cover;
  }
  .primary-navigation .sub-menu #menu-item-160 {
    background-image: url('img/catch05.png');
    background-position: center;
    background-size: cover;
  }
  .primary-navigation .sub-menu #menu-item-315 {
    background-image: url('img/catch06.png');
    background-position: center;
    background-size: cover;
  }
}
/*個別パーツ設定*/
.unique-img01 {
  position: absolute;
  width: 42vw;
  right: 0;
  top: -66px;
  z-index: -1;
}
.unique-img02 {
  position: absolute;
  width: 38vw;
  right: 1vw;
  top: 1vw;
}
@media only screen and (max-width: 481.98px) {
  .unique-img01 {
    width: 81vw;
    right: 20px;
    top: -7vw;
  }
  .unique-img02 {
    width: 66vw;
    top: 70px;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
}
/* 角丸 */
/* 共通スタイル */
.radius01, .radius02-1, .radius02-2, .radius03-1, .radius03-2, .radius04-1, .radius04-2, .radius05-1, .radius05-2 {
  position: relative;
  margin: 0;
}
.radius01::before, .radius01::after, .radius02-1::before, .radius02-1::after, .radius02-2::before, .radius02-2::after, .radius03-1::before, .radius03-1::after, .radius03-2::before, .radius03-2::after, .radius04-1::before, .radius04-1::after, .radius04-2::before, .radius04-2::after, .radius05-1::before, .radius05-1::after, .radius05-2::before, .radius05-2::after {
  position: absolute;
  content: '';
  display: block;
}
/* ベースサイズ */
.radius01::before, .radius02-1::before, .radius02-2::before, .radius03-1::before, .radius03-2::before, .radius04-1::before, .radius04-2::before, .radius05-1::before, .radius05-2::before {
  width: 50px;
  height: 50px;
  z-index: 10;
}
.radius01::after, .radius02-1::after, .radius02-2::after, .radius03-1::after, .radius03-2::after, .radius04-1::after, .radius04-2::after, .radius05-1::after, .radius05-2::after {
  width: 60px;
  height: 60px;
  z-index: 15;
}
/* 角丸デザイン */
.radius01::before {
  background: #DFE3E7;
}
.radius01::after {
  background: #fff;
  border-radius: 50px 0 0 0;
}
.radius02-1::before {
  background: #fff;
}
.radius02-1::after {
  background: #25292F;
  border-radius: 50px 0 0 0;
}
.radius02-2::before {
  background: #25292F;
  right: 0;
  bottom: 0;
}
.radius02-2::after {
  background: #FFF;
  border-radius: 0 0 50px 0;
  right: 0;
  bottom: 0;
}
.radius03-1::before {
  background: #fff;
}
.radius03-1::after {
  background: #DFE3E7;
  border-radius: 50px 0 0 0;
}
.radius03-2::before {
  background: #DFE3E7;
  right: 0;
  bottom: 0;
}
.radius03-2::after {
  background: #FFF;
  border-radius: 0 0 50px 0;
  right: 0;
  bottom: 0;
}
.radius04-1::before {
  background: #25292F;
}
.radius04-1::after {
  background: #fff;
  border-radius: 50px 0 0 0;
}
.radius04-2::before {
  background: #fff;
  right: 0;
  bottom: 0;
}
.radius04-2::after {
  background: #25292F;
  border-radius: 0 0 50px 0;
  right: 0;
  bottom: 0;
}
.radius05-1::before {
  background: #DFE3E7;
}
.radius05-1::after {
  background: #fff;
  border-radius: 50px 0 0 0;
}
.radius05-2::before {
  background: #fff;
  right: 0;
  bottom: 0;
}
.radius05-2::after {
  background: #DFE3E7;
  border-radius: 0 0 50px 0;
  right: 0;
  bottom: 0;
}


