/*
Theme Name: 有限会社マイガーデン
Theme URI:
Author: tocci
Author URI:
Version: 1.0
*/
@charset "UTF-8";
/* 有限会社マイガーデン CSS Document */


/*------------- _____ ▼共通 _____ --------------------------------------------------*/

*{
	padding:0px;
	margin:0px;
	border:0px;
	-webkit-text-size-adjust: 100%;
}

html {
	--base_color: #16348b;
	--sec_color: #2250d7;
	--accent_color: #E8624A;
	--accent_color_dark: #C94A3A;
	overflow-x: hidden;
}

body {
	overflow-x: hidden;
	letter-spacing:1px;
	font-size:18px;
/*	font-family: font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
	font-family: "Montserrat", sans-serif;
	font-weight:400;
	line-height:180%;
	color:#333;
}

ul{
	margin:0px 0px 0px 0px;
	padding:0px 0px 0px 0px;
}
ol{
	margin:0px 0px 0px 0px;
	padding:0px 0px 0px 0px;
}
li{
	margin:0px 0px 0px 0px;
	padding:0px 0px 0px 0px;
	list-style: none;
}

.vertical {
	writing-mode: vertical-rl;
	color: #bbb;
}

.line {
	letter-spacing: -3px;
}

/*_____ menu layout _____*/
.pc {
	display:block;
}
.tablet {
	display:none;
}

@media screen and (max-width: 1024px) {
.pc{
	display:none;
}
.tablet{
	display:block;
}

}


.grecaptcha-badge { visibility: hidden; }
.page-id-2726 .grecaptcha-badge { visibility: visible; }
.page-id-2790 .grecaptcha-badge { visibility: visible; }
.page-id-2782 .grecaptcha-badge { visibility: visible; }

#wrapper{
	margin: 0 auto;
	background-color: #fff;
}


#header{
    color: #ffffff;
    display: flex;
    padding: 15px 20px;
    position: fixed;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    z-index: 9999;
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
    background: rgba(8, 18, 48, 0.38);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    transition: background 0.4s ease;
}

#header:hover {
    background: rgba(8, 18, 48, 0.55);
}

#header.scrolled {
    background: rgba(8, 18, 48, 0.72);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.site_logo img{
    height: auto;
    width: 150px;
}

/*---------------------------------
menuゾーン
---------------------------------*/

.gnav_menu_area{
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}

.gnav_menu_area li{
	position: relative;
}

.gnav_menu{
/*    margin-left: 20px;*/
}

.site_logo + nav.gnav .gnav_menu {
    margin-left: 16px;
}

.site_logo + nav.gnav .gnav_menu:first-child {
    margin-left: 0px;
}

.gnav_menu, .gnav_menu a {
    color: #fff;
    text-decoration: none;
}

.gnav_menu a {
    position: relative;
    padding-bottom: 4px;
    font-size: 0.88rem;
    letter-spacing: 0.12em;
}

/* ホバー時：中央から広がるアンダーライン */
.gnav_menu a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 50%;
    height: 1px;
    background: rgba(255, 255, 255, 0.85);
    transition: left 0.3s ease, right 0.3s ease;
}

.gnav_menu a:hover::after {
    left: 0;
    right: 0;
}

.buttom_menu {
	padding: 0 1.2em;
}

/* サブメニュー */
.submenu {
	display: none;
	position: absolute;
	top: calc(100% + 10px);
	left: 50%;
	transform: translateX(-50%);
	background: rgb(46, 46, 46, 0.75);
	border-radius: 5px;
	box-shadow: 0 5px 10px rgba(0,0,0,0.2);
	list-style: none;
	padding: 10px 0;
	min-width: 160px;
	z-index: 100;
}

.submenu li a {
	display: block;
	padding: 6px 20px;
	/*color: #333;*/
	color: #fff;
	text-decoration: none;
	text-align: center;
}

.submenu li a:hover {
	background: #eee;
	color: #333
}

/* 吹き出しの三角 */
.submenu::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid rgb(46, 46, 46, 0.75);
}

/* ホバー時に表示 */
.gnav_menu_area > li:hover .submenu {
	display: block;
}


/*
.btn-gNav{
	display: block;
}

#hamburger .btn-gNav span{
	position: absolute;
	width: 100%;
	height: 4px;
	background: #000;
	border-radius: 10px;
	-webkit-transition: all 400ms;
	transition: all 400ms;
}
#hamburger .btn-gNav span:nth-child(1) {
	top:0;
}
#hamburger .btn-gNav span:nth-child(2) {
	top:10px;
}
#hamburger .btn-gNav span:nth-child(3) {
	top:20px;
}

#hamburger .btn-gNav.open span:nth-child(1){
	background: #fff;
	top: 6px;
	-webkit-transform: rotate(-45deg);
	-moz-transform   : rotate(-45deg);
	transform        : rotate(-45deg);
}
#hamburger .btn-gNav.open span:nth-child(2), #hamburger .btn-gNav.open span:nth-child(3){
	top: 6px;
	background :#fff;
	-webkit-transform: rotate(45deg);
	-moz-transform   : rotate(45deg);
	transform        : rotate(45deg);
}

#hamburger .btn-gNav{
	position: fixed;
	top: 18px;
	right: 20px;
	width: 30px;
	height: 24px;
	z-index: 3;
}

#gNav{
	position: fixed;
	top: 0;
	right: -100%;
	width: 100%;
	height: 100%;
	z-index: 2;
	transition: .3s;
}

#gNav.open{
	right: 0px;
}

#gNav .gNav-menu{
	width: 100%;
	height:100%;
	display: flex;
	flex-direction: column;
	text-align: center;
	background-color: #000;
	justify-content: center;
}

#gNav li {
	background-color: #000;
	padding: 10px 0px;
}

#gNav li a {
	color:  #fff;
}
*/


/*
.container-fluid , .container {
	padding-top: 3rem;
}
*/

.bg-gray {
  background-color: #eee;
}

/*
#zone00 video {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 100vh;
  transform: translate(-50%, -50%);
  object-fit: cover;
  object-position: center center;
  z-index: 2;
}
*/

#top-video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 0;
}

/* 半透明の黒いオーバーレイ */
.overlay {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 100vh;
  transform: translate(-50%, -50%);
  background-color: rgba(0, 0, 0, 0.07);
  z-index: 2;
}

#zone01, #zone02, #zone03, #zone04, #zone05, #zone06, #zone_links, #zone07, #footer_area {
	z-index: 4;
	position: relative;
}

#zone03 {
	background-color: #fff;
}

/* 画面途中の動画コンテンツ */
.pin-container {
  height: 365vh;
  position: relative;
  z-index: 4;
}

.sticky-video {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  overflow: hidden;
  z-index: 1;
}

.sticky-video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sticky_over_string {
	position: absolute;
	color: #fff;
	top: 50%;
	left: calc(50% - 9rem);
	font-size: 4rem;
	line-height: 4rem;
	text-align: center;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 100;
	font-style: normal;
}

.text-on-video {
  position: absolute;
  top: 0;
  left: 0;
  height: 180vh;
  width: 100%;
  display: flex;
  justify-content: center;
/*      align-items: flex-end;*/
  z-index: 2;
  pointer-events: none;
  padding-bottom: 10vh;
  box-sizing: border-box;
}

.text-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 横に2列 */
/*  gap: 100px 20px;*/
  width: 90%;
  pointer-events: auto;
  align-items: flex-start;
}

.text-inner {
	background: rgba(255, 255, 255, 0.8);
	padding: 20px;
	border-radius: 8px;
	text-align: center;
	margin-bottom: 10vh;
	margin-left: 3vw;
	margin-right: 3vw;
}

.text-inner:nth-child(odd) {
  margin-top: 400px;
	margin-right: 12vw;
}

.text-inner:nth-child(even) {
  margin-top: 250px;
	margin-left: 12vw;
}

.text-inner h2 {
  margin: 10px 20px;
  background-color: var(--base_color);
  border-radius: 100vw;
  color: #fff;
}

.text-inner img {
	width: 24vw;
	height: auto;
}

@media screen and (max-width: 768px) {
    .text-grid {
      grid-template-columns: 1fr;
      gap: 20px;
      max-width: 90%;
    }

    .text-inner {
      margin-left: 20px;
      margin-right: 20px;
    }

    .text-inner:nth-child(odd),
    .text-inner:nth-child(even) {
      margin-top: 80px; /* 統一されたマージン */
      margin-left: 6vw;
      margin-right: 6vw;
    }

.pin-container {
  height: 465vh;
}
	.text-inner img {
		width: 80%;
	}
}

/*---------------------------------
トップ　メインメッセージ　エリア
---------------------------------*/

#zone01 {
	padding-top: 400px;
/*	font-family: "Montserrat", sans-serif;*/
	font-optical-sizing: auto;
	font-weight: 100;
	font-style: normal;
}

#zone02 {
	padding-top: 750px;
	margin-bottom:600px;
}

.top_image01 {
	background: url(../images/top_main.jpg) no-repeat center center / cover;
}

#main_title_area {
	width: 50vw;
	margin: auto;
}

@media screen and (max-width: 1300px) {
	#main_title_area {
		width: 80vw;
	}
}

@media screen and (max-width: 600px) {
	#main_title_area {
		width: 98vw;
	}
}

#main_title_area p {
	margin-bottom: 1em;
}

.main_title2 {
	font-size: calc(2.5rem + 1.5vw);
	color: #54f4ea;
}

@media screen and (max-width: 600px) {

	.top_image01 {
		width: 100% !important;
	}

	.main_title2 {
		font-size: 2.1rem;
	}

}

.main_str1 {
	font-size: 60px;
	line-height: 1.4em;
	color: #fff;
}

.main_str2 {
	font-size: 1.2em;
	color: #fff;
}

.harf_color_green {
	background: linear-gradient(to right, #ffffff 70%, var(--base_color) 30%);
}

.harf_color_green img {
	width: 45vw;
}

.index_under_bar {
	border-bottom: 2px solid var(--sec_color);
	margin-bottom: 100px;
}

@media screen and (max-width: 768px) {
	.harf_color_green img {
		width: 80vw;
	}

	.zone05-btn {
		margin: 1rem auto 0.6rem;
	}
}

.zone05-btn {
	width: 180px;
	margin-left: auto;
	margin-top: 1.2rem;
	margin-bottom: 0.6rem;
}

.zone05-btn button {
	background: #fff;
	border-color: var(--accent_color);
	color: var(--accent_color);
}

.zone05-btn button::before {
	background: var(--accent_color);
}

.zone05-btn button:hover {
	color: #fff;
}

.sidebar_box {
	padding-left: 60px;
	padding-top: 40px;
	background-color: #fff;
}

@media screen and (max-width: 768px) {
	.sidebar_box {
		padding-left: 20px;
		padding-right: 20px;
		text-align: center;
	}
}

.sidebar__inner {
	padding-bottom: 180px;
}

/* Solutionアニメーション対象の初期状態 */
.fade-in-item {
    opacity: 0; /* 最初は透明 */
    transform: translateY(50px); /* 下から50pxの位置にずらす */
    transition: opacity 1.0s ease-out, transform 1.0s ease-out; /* アニメーションの時間とイージング */
    will-change: opacity, transform; /* パフォーマンス向上のヒント */
}

/* Solutionアニメーション後の状態 (JavaScriptでこのクラスを追加) */
.fade-in-item.is-visible {
    opacity: 1; /* 不透明にする */
    transform: translateY(0); /* 元の位置に戻す */
}

.sol_title {
	color: var(--base_color);
	font-size: 2.4rem;
	-webkit-text-stroke: 2px #3193cd;
	text-stroke: 2px #3193cd;
	paint-order: stroke;
}

/*
.sol_str1 {
	font-size: 2.7rem;
	line-height: 3rem;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 200;
	font-style: normal;
}
*/

.sol_str2 {
	font-size: 1.4rem;
	font-weight: bold;
	margin-bottom:2rem;
}

.sol_str3 {

}

.sol_box {
    display: grid;
    grid-template-columns: 80px 1fr;
    grid-template-rows: repeat(1, 1fr);
    gap: 0 8px;
}

.sol_box01 {
    grid-row: span 2 / span 2;
	align-self: center;
}

.sol_box01 img {
	width: 80px;
	height: 80px;
}

.sol_box02 {
	align-self: end;
	-webkit-text-stroke: 2px #fff;
  	text-stroke: 2px #fff;
  	paint-order: stroke;
  	font-size: 1.2rem;
  	font-weight: bold;
}

.sol_box03 {
    grid-column-start: 2;
	align-self: start;
	-webkit-text-stroke: 2px #fff;
  	text-stroke: 2px #fff;
  	paint-order: stroke;
}


/*---------------------------------
事業紹介ゾーン
---------------------------------*/

.main_title_box {
	padding: 0 4rem;
}

.main_title1 {  /* 共通タイトル利用  */
	font-size: 54px;
	line-height: 1.2em;
}

/* zone03内の一部ボタンのみ、PC=右寄せ / SP=左寄せ */
.detail_btn_align {
	margin-left: auto;
}

@media screen and (max-width: 768px) {
	.detail_btn_align {
		margin-left: 0;
	}

	#zone03 .zone03-block {
		display: flex;
		flex-direction: column;
	}

	#zone03 .zone03-text {
		display: contents;
	}

	#zone03 .zone03-block h2 {
		order: 1;
	}

	#zone03 .zone03-block p {
		order: 2;
	}

	#zone03 .zone03-image {
		order: 3;
	}

	#zone03 .zone03-text .view_more-container,
	#zone03 .zone03-btn {
		order: 4;
		margin-top: 56px;
	}
}

/*---------------------------------
Noticeゾーン
---------------------------------*/

.news_zone {
	padding: 5rem 7rem;
}

@media screen and (max-width: 768px) {

	.news_zone {
		padding: 5rem 2rem;
	}

}

.list_area {
	display: flex;
	column-gap: 50px;
	margin-left: 20px;
}

.list_box {
	width: 33.3333%;
	border-bottom: 1px solid #ccc;
	position:relative;
	z-index: 1;
}

.list_box a {
	cursor: pointer;
	margin-bottom: 0;
	position:relative;
	z-index: 2;
}

.list_box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    background-color: #e0e0e0;
    transition: height 0.3s ease-out;
    z-index: 0;
}

.list_box:hover::before {
    height: 100%;
}

.list_box2 {
	padding: 0 10px;
}

.list_box2::after {
	content: "";
	display: block;
	border-bottom: 1px solid var(--base_color);
	width: 60px;
	position: absolute;
	bottom: -9px;
	left: 0;
}

.list_box img {
	float: right;
}

.list_link {
	text-decoration: none;
	color: #333;
}

.topics_scroll {
	width: 100%;
	max-height: 410px;
	overflow-x: hidden;
	margin: 15px auto;
	padding: 10px;
}

.topics_scroll a {
	text-decoration: none;
	color: #000;
}

.topics_scroll dt {
	width: 100%;
	float: left;
	clear: both;
	margin-top: 15px;
	font-weight: normal;
	padding: 0 10px;
}

.topics_scroll dt span {
	margin-left: 2rem;
	background-color: #eee;
	border-radius: 100vw;
	padding: 3px 25px;
	border: 1px solid var(--base_color);
}


.topics_scroll dd {
	border-bottom: 1px solid var(--base_color);
	margin-bottom: 0;
	padding: 0 40px 15px 10px;
}

.notice_hover {
    /* 通常時の背景色（または親の背景） */
    background-color: #ffffff;
    position: relative; /* 子要素（疑似要素）の配置基準 */
    overflow: hidden;   /* 疑似要素がはみ出さないように隠す */
    z-index: 1;         /* 内容が疑似要素の上に表示されるように */
    cursor: pointer;
    margin-bottom: 0;
}

.notice_hover a {
    margin: 0;
    color: #333;
    position: relative;
    z-index: 2;
}

.notice_hover dt,
.notice_hover dd {
    position: relative;
    z-index: 2;
    color: #333;
}

/* 疑似要素でアニメーションする色変化を作成 */
.notice_hover::before {
    content: '';
    position: absolute;
    bottom: 0; /* 下から開始 */
    left: 0;
    width: 100%;
    height: 0; /* 初期状態では高さ0 */
    background-color: #e0e0e0; /* ホバー時の背景色 */
    transition: height 0.3s ease-out; /* 高さの変化をアニメーション */
    z-index: 0; /* 親の背景とテキストの間に配置 */
}

.notice_hover:hover::before {
    height: 100%; /* ホバー時に高さを100%にする */
}

.notice_hover i {
  content: "";
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--base_color);
  font-size: 25px;
}

.block_right {
	margin-left: auto;
}


/*---------------------------------
Accessゾーン
---------------------------------*/

.access_zone {
	padding: 5rem 7rem 2rem;
}

@media screen and (max-width: 768px) {

	.access_zone {
		padding: 5rem 2rem 2rem;
	}

}

.responsive-map {
  width: 100%;
  aspect-ratio: 16 / 9; /* 縦横比を16:9に指定 */
  border: 0;
}

/*---------------------------------
footerゾーン
---------------------------------*/

#footer_area {
	background: url(../images/footer_bg.jpg) center center / cover no-repeat fixed;
	z-index: 3;
	color: #fff;
}

#footer_area a {
	color: #fff;
	text-decoration: none;
	text-shadow:2px 2px 3px #000;
}

#footer_area a:hover {
	text-decoration: underline;
}

.footer_logo_area img {
	height: auto;
	width: 240px;
}

.footer_icon_area {
	display: flex;
	column-gap: 25px;
	border-bottom: 1.5px solid #fff;
}

.footer_icon_area img {
	width: 30px;
	height: 30px;
}


#footer_menu_area {
	display: flex;
	flex-wrap: wrap;
	padding: 0 3rem 5rem 3rem;
}

#footer_menu_area > div {
	width: 100%;
}

@media (min-width: 768px) {
	#footer_menu_area > div:first-child  { width: 50%; }
	#footer_menu_area > div:nth-child(2) { width: 25%; }
	#footer_menu_area > div:nth-child(3) { width: 25%; }
}

#footer_menu_area > div:first-child p {
	font-size: 1.6rem;
	line-height: 1.9;
	color: #e0e0e0;
}

.footer_logo_area {
	padding-top: 3rem;
	padding-bottom: 2rem;
}

#footer_menu_area a {
	font-size: 1.4rem;
	margin-bottom: 1.5rem;
	color: #e0e0e0;
}

#footer_pp {
	font-size: 1.75rem;
}


/*---------------------------------
以降セカンドページ 共通
---------------------------------*/

.common_subtitle {
	font-size: 40px;
	font-weight: bold;
	line-height: 1.2em;
}

.postion_r {
	position: relative;
}

.c_blue {
    color: #4786ea;
}




























/*---------------------------------
以降セカンドページ
　サービスページ
　　serv01
---------------------------------*/

.service01_area {
	padding-top: 20px;
}

.service_title1 {
	margin-top: 40px;
}

.service_box1 {
	color: #fff;
	padding: 40px 25px;
	font-size: 1.5rem;
	letter-spacing: 5px;
	line-height: 2.0rem;
  background: url(../images/service/service-image01.jpg) no-repeat center center / auto auto;

}

.service_box1 p:last-child {
	margin-bottom: 0;
}


/*---------------------------------
　　serv02 このような問題をお持ちの方
---------------------------------*/

#serv02 h3 {
	font-size: 23px;
	text-align: center;
	padding: 10px 0;
	background-color: #fff;
	border-radius: 5px 5px 0 0;
	box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

.tab-content {
  width: 100%;
  height: auto;
  overflow: hidden;
  padding: 40px 15px;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
  background-color: #fff;
  border-radius:  0 0 5px 5px;
}

.tab-back1 {
  background: url(../images/service/service-image02.jpg) no-repeat center center / auto auto;
}

.tab-back2 {
  background: url(../images/service/service-image03.jpg) no-repeat center center / auto auto;
}

.tab-content ul {
	margin: 0 3%;
	font-size: 20px;
	padding-left: 1em;
	text-indent: calc(-1em - 12px);
}

.tab-content li {
	line-height: 1.7em;
}

.tab-content li:before {
  font-family: 'Font Awesome 5 Free';
  content: "\f14a";
  padding-right: 12px;
}

.tab-content ul li span {
	font-size: 11px;
}

@media screen and (max-width: 600px) {

.tab-wrap {
  margin:20px 10px;
}
}

/*---------------------------------
　　serv04 macci が全て解決
---------------------------------*/

.serv03_title {
	font-size: 36px;
	font-weight: bold;
	line-height: 1.2em;
}

.serv03_title span.red {
	color: red;
}

.serv03_title span.large {
	font-size: 42px;
}


/*---------------------------------
　　serv05 Strength
---------------------------------*/

#serv05 > div {
	border-bottom: 1px solid #999;
}

.serv05_circle {
/*	background-color: #fff;*/
	border-radius: 50% ;
	width: 47%;
	margin: auto;
}

.serv05_circle:first-of-type {
  background: #fff url(../images/service/img_human.png) no-repeat center center / auto auto;
}

.serv05_circle:nth-of-type(2) {
  background: #fff url(../images/service/img_it.png) no-repeat center center / auto auto;
}

.serv_power2 {
	display: none;
}

.serv05_circle > div {
	position: relative;
	padding-top: 100%;
	height: 0;
}

.serv05_circle > div > ul {
	position: absolute;
	top: calc((100% - 22em)/2);
	left: 0;
	right: 0;
	margin: auto;
	width: 60%;
	line-height: 150%;
}

.serv05_circle > div > ul li {
	padding-left:1em;
	text-indent:-1em;
	margin-bottom: 1rem;
	}

	.serv05_circle > div > ul li span {
		font-size: 1.4rem;
	}


@media screen and (max-width: 992px) {

.serv05_circle {
	width: 95%;
	border-radius: 1rem;
	margin-bottom: 20px;
}

.serv_power {
	display: none;
}

.serv_power2 {
	display: block;
	position: absolute;
	top: calc(50% - 67px);
	left: calc(50% - 233.5px);
	width: 467px;
}

.serv05_circle > div {
	padding-top:  0;
	position: static;
	height: auto;
}

.serv05_circle > div > ul {
	position: static;
	width: 80%;
	padding: 30px 0;
/*	top: 0;*/
}

}

.serv_power {
	position: absolute;
	top: 163px;
	left: calc(50% - 111px);
	width: 222px;
}

/*---------------------------------
　　serv06 Reviewの５つのサービス
---------------------------------*/

.service_info0 {
	background-color: #eee;
	padding-bottom: 3em;
}

.service_info1 {
	border-bottom: 1px solid #999;
}

.service_info2 {
	border-bottom: 1px solid #fff;
	background-color: #555;
	color: #fff;
}

.service_name {
	margin: auto;
	text-align: center;
}

.service_name img {
	width: 80%;
}

.service_detail {
	padding: 30px 2rem;
}

.service_info1 .service_detail h2 {
	color: red;
	font-size: 1.35rem;
	font-weight: bold;
	margin-bottom: 1rem;
}

.service_info2 .service_detail h2 {
	color: #ff9090;
	font-size: 1.35rem;
	font-weight: bold;
	margin-bottom: 1rem;
}

.service_bottom a {
	border: 1px solid #333;
	border-radius: 100vh;
	padding: 6px 2rem;
	color: #333;
	text-decoration: none;
}


/*---------------------------------
　　コーポレート　ページ
　　サブメニュー　ブロック
---------------------------------*/

#com00 {
 	padding-top: 85px;
}


 #com_menu {
 	padding-top: 0px;
 }

.bg_gray01 { background: #eee; }
.bg_gray02 { background: #ccc; }
.bg_gray03 { background: #aaa; }
.bg_gray04 { background: #888; }
.bg_gray05 { background: #666; }

.identity_info:first-child {
	border-top: 1px solid #999;
}

.identity_info {
	border-bottom: 1px solid #999;
}

@media screen and (max-width: 768px) {

.identity_info:first-child {
	border-top: none;
}

.btn-group {
	display: inline-grid;
}

.identity_info {
	border: none;
}


}

.identity_name {
	text-align: center;
	display: grid;
	place-items: center;
}

.ceo_message {
	font-size: 1.25rem;
	letter-spacing: 5px;
	line-height: 2.2rem;
}

.ceo_sub1 {
	font-size: 0.9rem;
	line-height: 160%;
}

.ceo_sub2 {
	font-size: 0.75rem;
	line-height: 160%;
}

/*---------------------------------
　　会社概要　ブロック
---------------------------------*/

.profile_table th {
	font-weight: normal;
	background-color: #eee;
	white-space: nowrap;
}

@media screen and (max-width: 768px) {

.profile_table, .profile_table th, .profile_table td {
	display:block;
}

}

/*---------------------------------
　　沿革　ブロック
---------------------------------*/

.timeline {
    margin: 28px auto 0 auto;
}

.timeline-list-item {
    display: flex;
    line-height: 1.5;
    font-size: 16px;
}

.timeline-list-item .date {
    padding: 0 20px 0 20px;
    font-weight: bold;
    white-space: nowrap;
    width: 8rem;
}

.timeline-list-item .content {
    position: relative;
    width: 80%;
    padding: 0 20px 60px 30px;
    border-left: 1px solid #aaaaaa;
}

.timeline-list-item .content::before {
    content: "";
    position: absolute;
    top: 0;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: #6590b7;
    border-radius: 10px;
}

/*---------------------------------
　　チーム紹介　ブロック
---------------------------------*/

.prof_box {
/*	padding-bottom: 3rem;*/
	border-bottom: 1px solid #999;
	margin-bottom: 3rem;
	padding: 0 1rem 3rem 1rem;
}

.prof_namearea {
	padding: 0;
}

.prof_postname {
	font-size: 0.9rem;
	line-height: 140%;
}

.prof_name {
	font-size: 1.15rem;
	font-weight: bold;
}

.pror_message {
	font-size: 0.9rem;
	line-height: 160%;
}

.prof_table {
	font-size: 0.8rem;
	line-height: 150%;
}

.prof_table th {
	white-space: nowrap;
	vertical-align: text-top;
}

.prof_table td {
	padding-left: 1rem;
}

/*---------------------------------
　　リクルート　メイン　ページ
　　トップイメージ　ブロック
---------------------------------*/

#rec00 .loop_img {
	position: relative;
	display: flex;
	overflow: hidden;
	height: 500px;
}

.loop_catch {
	position: absolute;
	left: 5rem;
	top: 14rem;
	color: #fff;
	z-index: 1;
	font-size: 3rem;
	line-height: 120%;
}

.loop_catch p {
	font-size: 1.8rem;
}

#rec00 .loop_img img {
	width: auto;
	height: 100%;
}

#rec00 .loop_img img:first-child {
	animation :scroll-left1 80s -40s infinite linear;
	filter: brightness(50%);
}

#rec00 .loop_img img:last-child {
	animation :scroll-left2 80s infinite linear;
	filter: brightness(50%);
}

/*
右から左へ
----------------------------*/
@keyframes scroll-left1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}

@keyframes scroll-left2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}

/*---------------------------------
　　インタビュー　ブロック
---------------------------------*/

.interview_link {
	text-align: center;
	font-size: 60px;
	line-height: 110%;
}

.interview_link span {
	font-size: 1.4rem;
}

.interview_link a {
	text-decoration:none;
	color: #333;
}

/*---------------------------------
　　インタビュー　ページ(役員・社員　共用)

---------------------------------*/

.bg_blue {
	background-color: #c1d5fd;
}

.ceo_title {
	font-size: 1.6rem;
}

/*---------------------------------
　　募集要項　ページ(共用)
---------------------------------*/

.recruit_catch {
    position: absolute;
    left: 0;
    bottom: 0;
    color: #fff;
    z-index: 1;
    background: rgba(0,153,204,.7);
    padding: 2rem;
}

.recruit_catch h2, .recruit_catch02 h2 {
    font-size: 1.8em;
    font-weight: 400;
    line-height: 120%;
}

.recruit_catch02 {
    position: absolute;
    right: 0;
    bottom: 0;
    color: #fff;
    z-index: 1;
    background: rgba(0,153,204,.7);
    padding: 2rem;
}

.underline {
    border-bottom: 1px solid #333;
    padding-bottom: 1rem;
}


.tit .status {
    background: #09c;
    width: 100px;
    display: inline-block;
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    text-align: center!important;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    line-height: 1.8em;
    margin-right: 10px;
    padding-top: 7px;
    padding-bottom: 5px;
}

.rec_table, .ai_table {
    width: 100%;
    text-align: left;
/*    margin-top: 10px;*/
    font-size: 1rem;
}

.ai_table p {
	margin-bottom: 0 !important;
}

.ai_table span.wpcf7-list-item {
	margin-top:5px;
	display: block;
}

.ai_table td.radio_yoko span.wpcf7-list-item {
	display: inline-block !important;
}

.rec_table th, .flex-item:nth-child(1) {
    font-weight: 400;
    vertical-align: top;
    text-align: left;
    background: #09c;
    border: solid 1px #ccc;
    color: #fff;
    padding: 10px;
    white-space: nowrap;
}

.ai_table div.se_type {
background-color: #fa9e1a;
}

.ai_table div.se_company {
background-color: #019a71;
}

.ai_table div.se_shop {
background-color: #01749a;
}

.ai_table div.ai_detail {
background-color: #018a93;
}

.hidden {
	display: none;
}

.ai_table th {
	width: 301px !important;
}

.sel1_detail p, .sel2_detail p {
	display:none;
}

.ai_table p.no_show {
	font-size: 0.8em;
	line-height: 1.5em;
}

.rec_table td, .ai_table td {
    padding: 10px;
    background: #fff;
    border: 1px solid #ccc;
}

.ai_table input[type=text],
.ai_table input[type=email],
.ai_table input[type=tel],
.ai_table textarea {
	width: 100%;
}

.ai_link a {
	color: #666;
	width: 100%;
}

.rec_table tr:first-child td, .ai_table tr:first-child td {
    border-top: 1px solid #ccc;
}

.sousin_buttom02, .cf7_buttons input, .wpcf7cp-btns button {
	text-align: center;
	font-weight: bold;
	color: #fff;
	background-color: #999;
	padding: 8px 30px;
	border-radius: 5px;
	font-size: 18px;
	border:  none;
	cursor:  pointer;
	margin: 0 10px;
}

.sousin_buttom02:hover, .cf7_buttons input:hover, .wpcf7cp-btns button:hover {
	background-color: #ccc;
	text-decoration: none;
}

.ai_select_box {
	padding: 15px 40px 15px 0;
}

.ai_select_box:hover {
	animation: poyo .6s ease 0s 1 normal running none;
}

.ai_select_bottom {
	padding: 15px 0;
	font-size: 1rem;
	line-height: 140%;
	text-align: right;
}



*.ai_link,
*.ai_link:before,
*.ai_link:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

.ai_link {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.ai_zone {
	width: 100%;
}

.btn-wrap > p {
	padding-top: 22px;
}

.ai_link .btn,
.ai_link a.btn,
.ai_link button.btn {
  font-size: 0.8rem;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

.ai_link a.btn-border-shadow {
  padding: calc(1rem - 12px) 0.5rem 1rem;
}

.ai_link a.btn-shadow1 { background: #d4dce0; }
.ai_link a.btn-shadow2 { background: #96e0e8; }
.ai_link a.btn-shadow3 { background: #c6dbfe; }



.ai_link a.btn-border-shadow:before {
  position: absolute;
  top: -6px;
  left: -6px;

  width: 100%;
  height: 100%;

  content: "";
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;

  border: 3px solid #000;
  border-radius: 0.5rem;
}

.ai_link a.btn-border-shadow:hover {
  padding: calc(1rem - 6px) 0.5rem;
}

.ai_link a.btn-border-shadow:hover:before {
  top: 0;
  left: 0;
}


.ai_select_bottom img {
	padding: 10px 5px 10px 5px;
}


.ai-row {
  display: flex;
  gap: 4px;
}

.ai-row+.ai-row {
  margin-top: 1px;
}

.flex-item {
  padding: 1px;
}

.flex-item:nth-child(1) {
  width: 350px;
}

.flex-item:nth-child(2) {
	flex: 1;
	padding: 10px;
	background: #fff;
	border: 1px solid #ccc;
}

.ai_comment {
	border: 1px dashed #999;
}

.ai_bb {
	border-bottom: 1px solid #999;
}

#ai_none1, #ai_none2 {
  display: none;
}

input.wpcf7-form-control.wpcf7-text.select01_con,
input.wpcf7-form-control.wpcf7-text.check01_con {
 position: absolute;
  top: 0;
  left: -50vw;
}

@media screen and (max-width: 768px) {

.ai_select_box {
	padding: 15px calc(20% - 22px) 15px 0;
}

.ai-row {
  display: block;
}

.flex-item {
	width: 100% !important;
}




.rec_table, .rec_table th, .rec_table td,
.ai_table, .ai_table th, .ai_table td {
	display: block;
}

.at_table, .ai_table th {
	width: 100%;
}

}

.btn_design {
    font-size: 1.1rem;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 40px;
    text-align: center;
    padding: 10px 30px;
    background-color: #09c;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border: 1px solid transparent;
    outline: 1px solid;
    outline-color: #4079a2;
    outline-offset: 0px;
    text-shadow: none;
    transition: all 1.2s cubic-bezier(.2,1,.2,1);
}

.btn_design a {
    color: #fff;
}

.btn_design:hover {
    border-color: #fff;
    box-shadow: inset 0 0 20px rgba(255,255,255,.5),0 0 20px rgba(255,255,255,.2);
    outline-color: transparent;
    outline-offset: 12px;
    cursor: pointer;
    color: #fff;
}

.btn_center {
    margin: 0 auto;
}


/*---------------------------------
　　プライバシーポリシー　ページ
---------------------------------*/

.privacy_area {
	padding-top: 140px;
}

#policy_text li {
    margin-bottom: 30px;
}

#policy_text ol, #policy_text li {
	list-style-type: decimal !important;
	margin-left: 1rem;
}

#policy_text ol ol {
	margin-left: 2rem;
}

.optuot_a {
	word-wrap:break-word;
}

/*---------------------------------
　　トピックス　ページ
---------------------------------*/

.topics_area {
/*	padding-top: 140px;*/
}

.topics_box h2 { font-size: 2rem; }
.topics_box h3 { font-size: 1.7rem; }
.topics_box h4 { font-size: 1.4rem; }
.topics_box p { clear: both; margin-bottom: 1rem; }
.topics_box img { max-width: 100%; height: auto; }
.topics_box .alignleft { float: left; margin-right: 10px; margin-bottom: 10px; }
.topics_box img.alignleft { display: inline-block; margin: 0 1.5em 1em 0; }
.topics_box .aligncenter {
	clear: both;
	display: block;
	margin-right: auto;
	margin-left: auto;
}
.topics_box .alignright { float: right; margin-left: 10px; margin-bottom: 10px; }
.topics_box img.alignright { display: inline-block; margin: 0 0 1em 1.5em; }

.topics_box table th, .topics_box table td { padding: 12px; }


.topics_box h2.topics_title {
	border-left: 3px solid #6590b7;
	border-bottom: 1px solid #666;
	padding: 8px;
}

.topics_area .col-sm-2 img {
	max-width: 100%;
	height: auto;
}




/* マイガーデン用 */

.sub_menu_area {
	column-gap: 90px;
	margin-bottom: 100px;
}

.main_photo01 {
	border-radius: 8px;
	box-shadow: 20px 20px 0px 0 rgb(170, 220, 219),
  						40px 40px 0px 0 rgb(214, 242, 243);
	width: 100%;
}

.main_photo02 {
	border-radius: 8px;
	box-shadow: -20px 20px 0px 0 rgb(170, 220, 219),
  						-40px 40px 0px 0 rgb(214, 242, 243);
	width: 100%;
}

.com_line {
	width: 90%;
	border: 1px solid #ccc;
	margin-left: auto;
	position: relative;
	margin-bottom: 100px;
}

.com_line::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px; /* border の位置に合わせる */
  width: 110px;
  border-bottom: 2px solid #297d85;
}

.com_line2 {
	width: 90%;
	border: 1px solid #ccc;
	margin-right: auto;
	position: relative;
	margin-bottom: 100px;
}

.com_line2::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px; /* border の位置に合わせる */
  width: 110px;
  border-bottom: 2px solid #297d85;
}

.sub_menu_area h2 {
	font-size: 1.5em;
	font-weight: bold;
	margin-bottom: 1.5em;
}

/* Case Studiesゾーン
---------------------------------*/

.case_zone {
	padding: 5rem 7rem;
}

@media screen and (max-width: 768px) {

	.main_photo01,
	.main_photo02 {
		box-shadow: none;
	}

	.case_zone {
		padding: 5rem 2rem;
	}

}

:root{
  --cardGap: 16px;
  --card-w: 230px;
}

.card_wrap{
  position: relative;
  max-width: 100%;
}

/* 横スクロール領域 */
.card_scroll{
  display: flex;
  gap: var(--cardGap);
  overflow-x: auto;
  padding: 12px;
  scroll-snap-type: x mandatory; /* スナップ */
  -webkit-overflow-scrolling: touch; /* iOSで慣性スクロール */
  scrollbar-width: none; /* Firefox */
}
/* スクロールバー非表示（Chrome,Safari）*/
.card_scroll::-webkit-scrollbar{ display: none; }

/* 各カード */
.card{
  flex: 0 0 var(--card-w); /* 固定幅カード */
/*  height: 290px;*/
  background: white;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
/*  padding: 12px;*/
  scroll-snap-align: start; /* スナップ位置 */
  display: flex;
  flex-direction: column;
  /*justify-content: center;*/
  align-items: flex-start;
  border: 1px solid #ddd;
  transition: transform 0.2s ease;
}

.card:hover {
	transform: translateY(-4px);
}

.card a {
	display: block;
	width: 100%;
	text-decoration: none;
}

.card_img {
	overflow: hidden;
	width: 100%;
	height: 130px;
	box-shadow: 0px 10px 10px -5px gray;
}

.card_str {
	padding: 1rem 10px 0;
	margin:0;
	font-size:0.85rem;
	color:#555;
	line-height: 1rem;
}

.card img{
	width: 100%;
	height: 100%;
	border-radius: 10px 10px 0 0;
	object-fit: cover;
	object-position: center;
}

.card_detail {
	margin-top: 10px;
}

.card h3{ margin:0 0 6px; font-size:1rem; }

.card h3 i {
	float: right;
	background: linear-gradient(90deg, rgba(45, 122, 192, 1) 37%, rgba(14, 244, 255, 1));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.button_box {
	display: flex;
	justify-content: center;
}

/* 前後ボタン */
.btn{
  cursor: pointer;
  font-size: 35px;
  color: #297d85;
  border: none;
/*  background-color: #fff;*/
}

.btn[disabled]{ opacity:0.5; cursor: default; }

.prev{ margin-right: 20px; }
.next{ margin-left: 20px; }

/* 小さい画面ではカード幅を調整 */
@media (max-width: 480px){
  :root{ --card-w: 220px; }
  /*.btn{ width:32px; height:32px; }*/
}

/* キーボードフォーカスの見た目 */
/*.btn:focus, .card:focus{ outline: 1px solid rgba(21,156,228,0.25); outline-offset: 2px; }*/

/* zone_links：リンクバナー */
#zone_links {
  background: #f7f7f7;
  padding: 3rem 0;
}

.links_grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

.links_grid a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.links_grid a:hover {
  opacity: 0.75;
}

.links_grid img {
  height: 70px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

.links_caption {
  margin: 0.5rem 0 0;
  font-size: 0.75rem;
  color: #555;
  text-align: center;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .links_grid img {
    height: 52px;
    max-width: 140px;
  }
}


