/*
Theme Name: yutaka-tax
Theme URI: https://www.yutaka-tax.com/
Author: Kazuma.K
Description: ゆたか税理士法人様オフィシャルサイト
Version: 1.0
*/
@media (min-width: 992px) {
	html, body {height: 100%;margin: 0;}
	.wrapper {display: flex; flex-direction: column; min-height: 100vh;}
	main {flex: 1;}
}
footer .copy{font-size:13px;}
body a:hover,section.newsBlock .metaBox a:hover,.news-list article h5 a:hover,body main a:hover,p.copy a:hover,ul.list-other li a:hover{
	opacity:0.6 !important;
	transition:0.4s ease !important;
}
body a{text-decoration:none;}
.breadcrumb{font-size:13px;}
:root {
	--color-navy: #14116e;
	--color-red: #c00;
	--color-blue:#6C9BD2;
	--color-orange: #fe6c00;
	--color-yellow: #f5a100;
	--color-white: #fff;
	--color-gray: #f8f9fa;
	--color-green: #32805c;
	--color-beige:#f6f3ed;
	--color-lightblue:#e9eef2;
	--color-dark:#232529;
}
.text-navy{color:var(--color-navy);}
.text-red{color:var(--color-red);}
.text-blue{color:var(--color-blue);}
.text-yamabuki{color:#fcaa00;}
.bg-blue{background:var(--color-blue);}
.bg-beige{background:var(--color-beige);}
.bg-navy{background:var(--color-navy) !important;}
.bg-light-yellow{background:#f8f8f1;}
.bg-light-blue{background:#e9eef2 !important;}
.text-green{color:var(--color-green) !important;}
.bg-white-75 {
	background-color: rgba(255, 255, 255, 0.75);
}

body {
	font-family: "Helvetica Neue",
		Arial,
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		Meiryo,
		sans-serif;
	overflow-x:hidden;
}
h1,h2,h3,h4,h5,h6,h7,.service-box{font-family: "Zen Old Mincho", "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;}
.f-gothic{
	font-family: "Helvetica Neue",
		Arial,
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		Meiryo,
		sans-serif !important;
}
h1.sideline{
	display: flex;
	align-items: center;
	justify-content: center;
}
h1.sideline::before,
h1.sideline::after {
	content: '';
	flex-grow: 0.05;
	height: 2px;
	background: #333;
}
h1.sideline::before {margin-right: 20px;}
h1.sideline::after {margin-left: 20px;}
h2.sb-ttl{
	padding-bottom:20px;
	border-bottom:1px solid #ccc;
	font-weight:bold;
}
h2.sb-ttl strong{
	font-size:2.5rem;
	color:#c00;
}
h2.sb-ttl br{display:none;}
h2.ub-title{
	position:relative;
}
h2.ub-title:before{
	content:"";
	position:absolute;
	bottom:-30px;
	border-bottom:3px solid #333;
	width:80px;
}
h2.obi{
	background:#FFC000;
	color:#fff;
	padding:0.4em;
	border-radius:0.3em;
}
.genre span{color:#FFC000;}
a img:hover{opacity:0.6; transition:ease 0.4s;}
img.custom-logo{max-width:100%; width:auto; height:60px;}
.single-post p,.single-post main ul li{line-height:2.0rem;}
.single-post main ul li{margin-bottom:5px;}
.single-post main h3{
	font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	background:var(--color-gray);
	padding:0.8em;
	border-radius:10px;
	font-weight:bold;
	font-size:1.3rem;
}
.single-post h3:nth-child(n+2),.single-post *:nth-child(n+2) h3{
	margin-top:2em;
}

.single-post main article section{padding:0;}
a.moreBtn {
	display: inline-block;
	text-align: center;
	text-decoration: none;
	line-height: 30px;
	outline: none;
	color: #fff;
	background-color: var(--color-navy);
	position: relative;
	border: 1px solid var(--color-navy);
	transition: color 0.5s ease, background-color 0.5s ease;
	overflow: hidden;
	font-weight:bold;
	padding: 0.5em 3em;
	font-size: 20px;
	margin-top:1em;
}
a.moreBtn.inversion{
	background-color:#fff;
	border:#fff;
	color:var(--color-navy);
}
/* ホバー時に背景がスライドして青く、文字は白 */
a.moreBtn:hover {
	color: var(--color-navy);
	opacity:1 !important;
	transition:0s auto !important;
}
a.moreBtn.inversion:hover{
	color: #fff;
}

a.moreBtn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.2s ease;
	z-index: 1;
}
a.moreBtn.inversion::before{
	background: var(--color-navy);	
}

a.moreBtn:hover::before {
	transform: scaleX(1);
	transform-origin: left;

}

/* テキスト・アイコンを前面に */
a.moreBtn .text {
	position: relative;
	z-index: 2;
}

a.moreBtn i {
	position: absolute;
	right: 1em;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1em;
	z-index: 2;
	pointer-events: none;
}
.btn-navy {
	background-color: #001f4d; /* 紺色 */
	color: #fff;
	border: 1px solid #001f4d;
	transition: all 0.3s ease;
}

.btn-navy:hover,
.btn-navy:focus {
	background-color: #003366; /* 少し明るい紺 */
	border-color: #003366;
	color: #fff;
}

.btn-navy.active {
	background-color: #fff;       /* 背景を白に */
	color: #001f4d;               /* 文字色を紺に */
	border-color: #001f4d;
}

/* パンくず */
.breadcrumb{
	position:absolute;
	left:10px;
	top:10px;
	color:#fff;
	font-weight:bold;
}
.breadcrumb a{
	color:#fff;
	font-weight:bold;
}


/* pickup */
.pickup-slider-wrap {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background:#f8f8f1;
}

.pickup-slider .pickup-item {
	padding: 0 10px;
}

.pickup-slider .pickup-item img {
	width: 100%;
	height: auto;
	display: block;
}



/* ナビゲーション周り */
.navbar-expand-lg .navbar-nav .navBtn.menu-item a.nav-link{
	background:var(--color-navy);
	color:#fff;
	padding:1em 2em;
}
.navbar-nav .nav-link{
	font-size:14px;
	font-weight:bold;
	color:#333;
}

@media (min-width: 992px) {
	.navbar-nav {gap: 20px;}
	.float-header .navbar-nav {gap: 0;}
}
@media (max-width: 1199px) {
	.navbar-nav .nav-link{font-size:13px;}
	.navbar-nav {gap: 10px;}
}
.fixed-nav {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: #fff;
	z-index: 9999;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);

	transition: transform 0.3s ease;
}
/* .fixed-nav.is-show {transform: translateY(0); display: block;}
.main-header.is-hide {display: none;} */
.float-header{
	position:fixed;
	top: 1rem;
	left: 1rem;
	right: 1rem;
	transition: all .4s ease-out;
	z-index:9999;
	background:#fff;
	border-radius:10px;
}
.float-header .navbar{
	background:#fff;
	border-radius: 10px;
}
.top-btn.mail{
	background-color:var(--color-navy);
	color:#fff;
	text-align:center;
	font-size:13px;
	padding:0.6em 2em;
}
.topCTA .d-flex > .col-5 {
	display: flex;
	align-items: stretch; /* 子要素をコンテナの高さに合わせる */
}

.top-btn.mail {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}

.topCTA{
	width:470px;
}
.tel-Area a{
	color:var(--color-navy);
}
.tel-Area .time{
	font-size:11px;
	line-height:1em;
	display:block;
	margin-top:5px;
}
/* パターン2：ナビゲーションを均等割に */
.hd-bottom {
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	border-radius:10px;
	padding:5px 0;
}
.hd-bottom .mega-menu-inner li{
	text-align:left !important;
}
.nav-equal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.nav-equal > li {
	flex: 1 1 auto;
	text-align: center;
	margin-top:10px;
}
.nav-equal > li > a {
	display: block;
	width: 100%;
	color:#333;
	font-size:14px;
	font-weight:bold;
}
.nav-equal > li:nth-child(n+2) > a{
	border-left:1px dotted #dedede;
}

/* メガメニュー基本 */
ul.mega-menu,ul.mega-menu li{list-style:none;margin:0; padding:0;}
@media (min-width: 992px){
	.float-header img.custom-logo{height:50px;}
	.navbar {position: relative;}
	ul.mega-menu {
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background: #f8f9fa;
		padding: 1rem;
		z-index: 999;
		display: flex;           /* ← 3カラム用にflex */
		flex-wrap: wrap;          /* 複数行対応 */
		justify-content: flex-start;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}
	.hd-bottom ul.mega-menu {
		top: 80%;
		margin:0;
		width:100%;
		background:#fff;
	}
	.parent-group.show > .mega-menu {
		opacity: 1;
		visibility: visible;
		padding-top: 30px;
	}
	.mega-menu-inner {
		width: 100%;            /* コンテナ幅 */
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
	}

	.mega-menu-inner > li {
		width: 33.3333%;
		padding: 0.5rem 1rem;
		box-sizing: border-box;
	}
	.mega-menu-inner ul li a{
		font-size:14px;
		font-weight:bold;
		color:var(--color-navy);
	}
	.megattl{
		font-size:24px;
		font-weight:bold;
		text-align:left;
	}
	.megattl span{
		text-transform:uppercase;
		font-size:16px;
		display:block;
		opacity:0.5;
		margin-bottom:5px;
	}
	.explain{
		font-size:12px;
		text-align:left;
		line-height:1.7rem;
	}
}

/* カードの設定 */
.card-img-top {
	width: 100%;
	height: auto;
	object-fit: contain;
}

/* slickの設定 */
.slick-prev:before, .slick-next:before{color:#666 !important;}

/* section関連の設定 */
section,section .innner{padding:3.5rem 0;}
section.full_width .innner {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
section.full_width{padding:0;}

.section-title {
	/* 	font-size: 2.4rem; */
	font-weight: bold;
}
.section-title big{
	color:#c00;
}
.section-title span {
	display: block;
	font-size: 0.7em; /* 英字部分だけサイズ調整したい場合 */
	font-weight: 700;
	opacity:0.6;
	text-transform: uppercase;
}

/* 三つの強み部分の調整 */
.middle-border {
	border-left: 1px solid #dedede;
	border-right: 1px solid #dedede;
}
.strong-inner{
	background-image:url(/wp-content/uploads/2025/08/uspbg-1.webp) ;
	background-repeat:no-repeat;
	background-position: left bottom;
}
.strongimg-slider {width:100%;}
.strong-block h3{
	font-weight:bold;
}
.strong-block {
	text-align: center;
	font-size: 1.1rem;
}
.strong-block2 p{font-size:1.1rem;}
/* サービスパーツ調整 */
.service-box {
	background-size: cover;
	background-position: center;
	height: 200px;
	position: relative;
	overflow: hidden;
	transition: opacity 0.3s ease;
}
.service-box:hover {
	opacity: 0.85;
}
.service-inner {
	background: rgba(0,0,0,0.4);
	color: #fff;
	height: 100%;
	position: relative;
}
.service-en {
	font-size: 0.9rem;
}
.service-en .dash {
	margin-left: 5px;
}
.service-desc {
	font-size: 2rem;
	font-weight:bold;
	margin-top: 0;
	line-height: 1.6;
}
.arrow {
	position: absolute;
	bottom: 15px;
	right: 15px;
	font-size: 1.5rem;
	opacity: 0.7;
}

/* お客様の声部分調整 */
.bg-voice{
	background:url(/wp-content/uploads/2025/07/bg-voice.webp) repeat;
	background-size:cover;	
}
.voice-section .card-body {
	text-align: center;
}
.voice h2.section-title{color:#fff;}
.voice-section .card-title {
	font-size: 1.1rem;
	font-weight: bold;
}
.voice-logo img {
	max-width: 200px;
}
.voice .card-body p{background:#ededed; padding:10px;}
.voice-card{background: #eff3f9}


/* 投稿部分 */
@media(min-width: 991px){
	.knld{width:75%;}
}
section.newsBlock .news-list, section.newsBlock .news-box article {
	height: 400px;
	display: block !important;
}
section.newsBlock article{
	position: relative;
}
section.newsBlock .metaBox {
	position: absolute;
	z-index: 100;
	bottom: 0;
	background-color: rgba(0, 0, 0, 0.7);
	color: #fff;
	width: 100%;
	padding: 40px 20px 20px 20px;
}
section.newsBlock .metaBox a{
	text-decoration:none;
	color:#fff;
}
.pinpoint {
	position: absolute;
	left: 0;
	top: 0;
	background: #b46400;
	padding: .3em 1em;
	color: #fff;
	font-size: 12px;
}
article ul.topic-list {
	font-size: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}
article ul.topic-list li {
	margin: 0;
	padding: 0;
	display: inline-block;
	border: 1px solid #fff;
	margin-bottom: .5em;
}
article ul.topic-list li a {
	line-height: 1em;
	display: block;
	padding: .5em 1em;
}
.news-list {
	background: #fff;
	overflow: scroll;
	padding:0 15px;
}
.news-list article {
	border-bottom: 1px dotted #ccc;
	padding: 1em 0;
}
.news-list article h6 a{text-decoration:none; color:#333;}
.date{color:#a53b3b;}
.news-list article a.btn {
	display: inline-block;
	font-size: 12px;
	padding: .3em 2em;
	background:var(--color-navy);
	color:#fff;
}
/* 私たちについて */
.about-us-section{position: relative;}
.about-us-bottom{
	margin-top:-70px;
}

.about-us-section h3{line-height:2.8rem;}
.about-us-text{margin-left:3em;}

/* スタッフページ調整 */
.member-item {
	display: flex;              /* これで子の .card を同じ高さに伸ばせる */
}

/* カードを親いっぱいに */
.member-item > .card {
	display: flex;              /* body の縦積みレイアウトが安定 */
	flex-direction: column;
	height: 100%;
	width: 100%;                /* 列内で横幅を満たす */
}

/* 画像の高さ差で揺れないように（任意） */
.member-item .card-img-top {
	aspect-ratio: 4 / 3;       /* 固定比率にしたい場合 */
	object-fit: cover;
}


.staff-item {
	transition: opacity 0.3s ease;
	opacity: 1;
	visibility: visible;
	position: relative;
}
.staff-item.is-hidden {
	opacity: 0;
	visibility: hidden;
	position: absolute;
}
.member h4{font-weight:bold;}
.comment {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3; /* 最大3行 */
	overflow: hidden;
	text-overflow: ellipsis;
	min-height: 4.5em; /* 3行分の高さ */
	line-height: 1.5;
	text-align: left; /* 左寄せ */
}

/* 採用情報パーツ */
.bg-sky {
	position: relative;
	width: 100%;
	height: 500px;
	background: url('/wp-content/uploads/2025/07/sky-bg.webp') center/cover no-repeat;
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
}
.bg-sky::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(40, 65, 115, 0.6); /* 濃いめの青＋透過 */
	z-index: 0;
}
.recruit-inner {
	position: relative;
	z-index: 2;
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	height: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.recruit-copy h2 {
	font-size: 3rem;
	color: #fff;
	font-weight: bold;
}

.recruit-copy .en {
	margin-top: 10px;
	font-size: 16px;
	color: #fff;
}

.recruit-link {
	text-align: center;
}

.recruit-link p {
	font-size: 46px;
	color: #fff;
	margin-bottom: 10px;
}

.btn-view {
	display: inline-block;
	background: #00a0e9;
	color: #fff;
	padding: 12px 30px;
	border-radius: 20px;
	text-decoration: none;
	font-size: 14px;
	position: relative;
}

.btn-view::after {
	content: '›';
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
}

/* よくある質問パーツ */
.accordion-wrap {
	margin-top: 2em;
}

.accordion-item {
	margin-bottom: 1.5em; /* 質問同士のスペース */
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.accordion-header {
	background: #e9eff1;
	color: #333;
	padding: 1.2em;
	cursor: pointer;
	position: relative;
	font-size: 1.2em;
	font-weight:bold;
	transition: background 0.3s;
}

.accordion-header::before {
	content: "Q";
	background: #fff;
	color: #004080;
	font-weight: bold;
	padding: 0.2em 0.6em;
	margin-right: 0.6em;
	border-radius: 50%;
	display: inline-block;
	font-size: 0.9em;
}

.accordion-header.active {}
.accordion-header .accordion-icon {
	position: absolute;
	right: 1em;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.3s;
}

.accordion-header.active .accordion-icon {
	transform: translateY(-50%) rotate(45deg); /* ＋が×になる演出 */
}

.accordion-content {
	display: none;
	background: #f9f9f9;
	padding: 1em 1.5em;
	border-top: 1px solid #ddd;
	color: #333;
	line-height: 1.8;
}

.accordion-content::before {
	content: "A";
	color: #004080;
	font-weight: bold;
	margin-right: 0.5em;
	display: inline-block;
}

/* フッター3つのPR */
.pr-block {
	position: relative;
	text-decoration: none;
	color: #fff;
	overflow: hidden;
}

.pr-block::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(0,0,0,0.5); /* 黒の50%オーバーレイ */
	z-index: 1;
	transition: background 0.3s;
}

.pr-text {
	position: relative;
	z-index: 2; /* テキストをオーバーレイの上に */
	text-shadow: 0 0 8px rgba(0,0,0,0.7);
}

.pr-eng {
	font-size: 1.5rem;
	font-weight: bold;
}
.pr-ttl {
	font-size: 1rem;
}

/* Hover時にオーバーレイを薄くする場合（任意） */
.pr-block:hover::before {
	background: rgba(0,0,0,0.3);
}


/* フッターサイトマップ */
.ft-map .innner {
	background-color: #333;
	color: #fff;
}
.list-ftmap {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.list-ftmap li{padding:5px 0; margin:0 0 5px 1em;border-bottom:1px dotted #666;}
.list-ftmap li a{text-decoration:none; font-size:90%; display:block;}
.ft-map h5 {
	font-size: 1.1rem;
	margin-bottom: 0.8em;
}
ul.list-other{
	float:left;
	list-style:none;
	margin:0;
	padding:0;
}
ul.list-other li{
	display:inline-block;
	margin:0;
	padding:0;
	border-right:1px solid #ccc;
}
ul.list-other li a{
	text-decoration:none;
	font-size:12px;
	display:block;
	padding:0 20px;
	line-height:1em;
}
ul.list-other li:first-child{
	border-left:1px solid #ccc;
}
.address{font-size:14px;}

.telephone{
	font-size:2rem;
	font-family: Arial, Helvetica, sans-serif;
}

/* 追従ボタン */
.floating-contact-pc {
	position: fixed;
	right: 0;
	z-index: 1;
	top: 20%;
}
.floating-contact-pc.tel-area{
}
.floating-contact-pc.mail-area{
	margin-top:100px;
}

.float-btn {
	position: relative;
	display: flex;
	align-items: center;
	width: 80px;
	height: auto;
	color: #fff;
	overflow: hidden;
	text-decoration: none;
	transition: width 0.3s ease;
}
.float-btn .icon {
	width: 50px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding:0 30px 0 40px;
}

.float-btn .icon i {
	font-size: 24px;
	color: #fff;
}

/* 各ボックス共通の初期状態 */
.tel-box,
.mail-box {
	opacity: 0;
	padding: 10px;
	white-space: nowrap;
	color: #fff;
	transition: opacity 0.3s ease;
}

/* 電話 */
.float-btn.tel:hover {
	width: 360px;
}
.float-btn.tel:hover .tel-box {
	opacity: 1;
}

.tel-number {
	font-size: 28px;
	font-weight: bold;
	line-height: 1em;
}

.tel-time {
	background: #fff;
	color: #333;
	font-size: 13px;
	padding: 3px 8px;
	margin-top: 5px;
	text-align:center;
}

/* メール */
.float-btn.mail:hover {
	width: 360px;
}
.float-btn.mail:hover .mail-box {
	opacity: 1;
}

.mail-top {
	background: #fff;
	color: #333;
	padding: 3px 8px;
	font-size: 13px;
	font-weight: bold;
	text-align:center;
}

.mail-bottom {
	font-size: 18px;
	margin-top: 5px;
	color: #fff;
	display: flex;
	align-items: center;
	gap: 5px;
	font-weight:bold;
}

.mail-bottom .arrow-circle i {
	font-size: 20px;
	background: #333;
	color: #fff;
	border-radius: 50%;
}
.float-btn.tel,.sp-btn{background: #41a54c;}
.float-btn.mail,.sp-btn.mail{background: #416ea5;}
a.float-btn:hover{opacity:1 !important;}

/* ブログページの調整 */
.category-btn {
	display:block;
	font-weight:bold;
	background-color: #333;
	color: #fff;
	border: none;
	padding:1em 0;
}
.category-btn:hover {
	background-color: #555;
	color: #fff;
	text-decoration: none;
}
.category-btn.active {
	background-color: #ccc;
	color:#333;
}
.categoryArea{
	justify-content:space-between;
}
.categoryArea a{
	flex:1;
}

/* TOP01 */
section.key-visual {
	display: flex;
	height: 80vh; /* 画面の高さいっぱいに */
	min-height:900px;
	position:relative;
}
.kv-left {
	display: flex;
	justify-content: center;
	align-items: center; /* ← 縦中央揃え */
	background: url('/wp-content/uploads/2025/07/homebg.webp') center center no-repeat;
	background-size: cover;
	position: absolute;
	min-height:940px;
	top:0;
}
.kv-cptxt {
	text-align: center;
	z-index: 3;
	position: absolute;
	color:#fff;
}
.kv-cptxt h1{font-size:5rem;}
@media (min-width: 992px) {
	.kv-left {
		width: 70%;
		height: 100%;
		z-index: 2;
		height: 85vh;
		transform: skewX(-15deg);
		transform-origin: right center;
		left: -15%; /* はみ出しを調整 */
	}
	.kv-cptxt {
		top: 40%;
		left: 10%;
	}
	.kv-slider {
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
}
.kv-slider,.kv-slide,.kv-slide img {
	width: 100%;
	min-height:900px;
	height: 80vh;
}
.kv-slide img {
	object-fit: cover;
}


/* TOP02 */
.main-visual {
	width: 100%;
	position: relative;
	overflow: hidden;
	z-index: 2;
}

.mv-bg-slider {
	position: absolute;
	width: 100vw;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1;
	pointer-events: none;
}

/* スライドグループ共通 */
.slide-group {
	display: flex;
	flex-direction: column;
	justify-content: center;    /* 中央寄せに変更 */
	align-items: center;
	height: 80vh;               /* グループ全体の高さ */
}

/* 画像 */
.bg-slide .slide-group img {
	margin-bottom: 1em;
	max-width: 660px;          /* 縦にはみ出さないように制限 */
	object-fit: contain;
}

/* テキスト */
.mv-text {
	position: absolute;
	z-index: 20;
	left: 20%;
	width: 25%;
	height: 100%;
	top: 0;
	color: var(--color-navy);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: #f8f8f1;
	padding: 2rem;
	text-align: center;
}

/* スライド間余白 */
.bg-slide .slick-slide {
	margin-right: 20px;
}


/* voiceページ */
.voicettl{font-size:1.8rem; line-height:2.8rem;}
.bf-box,.af-box{padding:1em; background:#ededed; text-align:left !important;}
.af-box{background-color:#f8f8f1;}
.bf-box h6,.af-box h6{margin-bottom:10px; font-size:0.8em; background:#333; color:#fff; border-radius:2em; padding:0.3em 2em; display:inline-block;}
.af-box h6{background:#ee7b00;}

/* 代表挨拶ページ */
section.greeting{border-bottom:1px dotted #ccc;}
section#greeting-2{border-bottom:none;}
/* h2.greeting_name::after{content:""; border-bottom:2px solid #000; width:5%; display:block; margin:0.6em 0 1em;} */
.greeting_txt p{line-height:1.8rem; letter-spacing:0.06em; margin-bottom;:1.2rem;}
.greeting_txt p span{font-weight:bold;}
table.com_outline,table.recruit_outline{
	margin-top:20px;
	width:100%;
}
table.recruit_outline{border-bottom:1px solid #ccc;}
table.com_outline tr th,table.com_outline tr td,
table.recruit_outline tr th,table.recruit_outline tr td{
	border-bottom:1px solid #ccc;
	padding:2em 0;
}
table.com_outline tr th{
	width:15%;
}
table.recruit_outline tr th{
	width:15%;
}

/* 採用ページ */
section.recruit-visual {
	position: relative;
	background-size: cover;
	background-position: center;
	height: 65vh;
	color: #fff;
}

.recruit-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.4);
	display: flex;
	align-items: center;
	justify-content: center;
}

.recruit-inner {
	max-width: 1200px;
	width: 100%;
	padding: 0 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.recruit-text h1 {
	font-size: 2.5rem;
	font-weight: bold;
	margin-bottom: 1rem;
}

.recruit-text p,.prArea p {
	font-size: 1.2rem;
	line-height: 1.6;
}

.recruit-btn {
	margin-left: 2rem;
}

.atmosphere .card-body h3{font-weight:bold;}
.atmosphere .card-body p{
	font-family: "Zen Old Mincho", "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	font-size:1.7rem;
	line-height:1.7rem;
	color:#c00;
	margin-top:1.5rem;
}
.atmosphere .card-body p span{
	font-size:3.5rem;
}
.atmBox{
	padding:1.5em;
	background:rgba(255,255,255,0.8);
	border-radius:1em;
}
.atmBox p{}
.atm-img02{display:block;border-radius:25rem 0 0 25rem;}
.timeline-item {
	padding: 3em 2em 2em;
	position: relative;
	border-left: 2px solid rgba(0, 0, 0, 0.3);
}
.timeline-item p {
	font-size: 1rem;
	font-family: "Roboto", sans-serif;
}
.timeline-item::before {
	content: attr(date-is);
	position: absolute;
	left: 2em;
	font-weight: bold;
	top: 1em;
	display: block;
	font-family: "Roboto", sans-serif;
	font-weight: 700;
	font-size: 0.785rem;
}
.timeline-item::after {
	width: 10px;
	height: 10px;
	display: block;
	top: 1em;
	position: absolute;
	left: -7px;
	border-radius: 10px;
	content: "";
	border: 2px solid rgba(0, 0, 0, 0.3);
	background: white;
}
.timeline-item:last-child {
	-o-border-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 60%, rgba(0, 0, 0, 0)) 1 100%;
	border-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 60%, rgba(0, 0, 0, 0)) 1 100%;
}

/* 追従メニューの設定 */
.floating-sidemenu {
	position: absolute;
	top: 0 !important;
	left: -3%;
	opacity: 1;
	transition: opacity 0.5s ease;
	z-index: 999;
}
.floating-sidemenu.fixed {
	position: fixed;
	top: 110px;
	left: 3%; /* 必要に応じて調整 */
}
.floating-sidemenu.hide {
	opacity: 0;
	pointer-events: none;
}
.floating-sidemenu ul,#floating-submenu ul{
	font-size:15px;
	list-style:none;
	margin:0;
	padding:20px;
	background:rgba(255,255,255,0.6);
}
.floating-sidemenu.fixed ul{margin-top:100px;}
.floating-sidemenu ul li{margin-bottom:5px;}
.floating-sidemenu ul li a,#floating-submenu ul li a{
	display:block;
	padding:0.5em;
	text-decoration: none;
	color:#666;
}
.floating-sidemenu ul li a i,#floating-submenu ul li a i{margin-right:5px;}
.floating-sidemenu ul li a:hover,#floating-submenu ul li a:hover{
	background:#000;
	color:#fff !important;
}
.floating-sidemenu ul li a.active,#floating-submenu ul li a.active {
	font-weight: bold;
	color: var(--color-navy);
}



/* フォーム設定 */
.wpcf7-list-item.first{margin-left:0;}
.wpcf7-form-control-wrap{display:block; width:100%;}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 optgroup,.wpcf7 select,.wpcf7 textarea,input[type="number"],input[type="date"],select{
	border:1px solid #efefef;
	font-size:16px;
	padding:0.8em 1em;
	border-radius:0;
	display:block;
}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 textarea{width:100%;}
.wpcf7 .wpcf7-submit,.wpcf7-previous,.cf7-preview-btn,.cf7-back-btn{
	font-size: 20px;
	background: var(--color-navy);
	color: #fff;
	text-decoration: none;
	padding: 0.6em 5em; /* 変更しない */
	display: inline-block;
	font-weight: bold;
	border:none;
}
.wpcf7-previous{
	background:#666;
	margin-right:1em;
}
.wpcf7 .wpcf7-submit:hover,
.wpcf7-previous:hover{
	opacity:0.6;
	transition:0.4s ease;
}
.wpcf7 .wpcf7-submit:disabled{
	background:#666;
}
.wpcf7 p{margin:0;}
.wpcf7 dt{margin-bottom:1em;}
.wpcf7 dd{margin-bottom:2em;}
.wpcf7-spinner{display:block;}
.wpcf7-form{max-width:900px; margin:0 auto;}
.yoken .wpcf7-list-item{display:block; margin:0 0 10px 0;}
.jobs .wpcf7-list-item,.holder .wpcf7-list-item{margin:0 10px 10px 0;}

.must{
	display: inline-block;
	padding: 0px 8px;
	line-height: 1.4;
	margin-left: 0.8vw;
	background-color: #cf371d;
	font-size: 14px;
	font-weight: 500;
	color: #fff;
}
.any{
	display: inline-block;
	padding: 0px 8px;
	line-height: 1.4;
	margin-left: 0.8vw;
	background-color: #0c4097;
	font-size: 14px;
	font-weight: 500;
	color: #fff;
}
.status{
	background:#ccc;
	text-align:center;
}
.status.active{
	background:var(--color-navy);
	color:#fff;
	font-weight:bold;
}

/* PC時のずらし */
@media (min-width: 992px) {
	.bg-slide .slick-slide {margin-right: 30px;}
	.bg-slide .slick-slide:nth-child(even).slide-group {transform: translateY(40px);}
	.bg-slide .slick-slide:nth-child(3n).slide-group {transform: translateY(-80px);}
	.bg-slide .slick-slide:nth-child(4n).slide-group {transform: translateY(120px);}
	.bg-slide .slick-slide:nth-child(6n).slide-group {transform: translateY(40px);}
	.bg-slide .slide-group img {margin-bottom: 2em;}
}

.pageTitleArea{
	height: 25vh;
}
.aboutushead{
	height:50vh;
	min-height:490px;
}
.aboutusmessage{
	background:rgba(0,0,0,0.7);
}
.serviceHead{
	height:40vh;
}
.at_text{
	font-size:2rem;
	text-align:center;

}
.at_text span{
	color:#c00;
	font-size:3rem;
}
.assignment{
	border:1px solid #b0bdc6;
	border-radius:30px 30px 0 30px;
}
.why-box{
	border:1px solid #ccc;
}
.why-content h5{
	font-family: "Helvetica Neue",
		Arial,
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		Meiryo,
		sans-serif;
	color:var(--color-navy);
	font-weight:bold;
}
.why-content p{
	font-size:14px;
	line-height:1.8rem;
}
.why-content{
	width:calc(100% - 130px);
}
.why-image{
	width:110px;
}
section .cta_with_img{min-height:300px;}
section.fact,section.onayami,section.gyomukaizen_detail{position:relative;}
section.fact::after,section.onayami::after,section.gyomukaizen_detail::after {
	content: "";
	position: absolute;
	bottom: -30px;
	z-index: 3 !important;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 70px solid transparent;
	border-right: 70px solid transparent;
	border-top: 40px solid #fff;
}
section.onayami .innner,section.gyomukaizen_detail .innner{
	background-color:var(--bs-gray-300);
}
section.onayami::after,section.gyomukaizen_detail::after{
	border-top: 40px solid var(--bs-gray-300);	
}
section.fact.light::after{
	border-top: 40px solid #f8f9fb;	
}
section.fact.navy::after{
	border-top: 40px solid var(--color-navy);	
}
section.fact.lightblue::after{
	border-top: 40px solid var(--color-lightblue);	
}
section.fact.dark::after{
	border-top: 40px solid var(--bs-dark);	
}
section.fact.blue::after{
	border-top: 40px solid var(--color-blue);	
}
section.reason p.reason-p{font-size:1.3rem; font-weight:bold;}
.kaizen_exp{line-height:2.3rem; position:relative; z-index:3;}
.step-carousel .step-item {
	background:#fff;
	border: 2px solid #ccc;
	border-radius: 8px;
	box-sizing: border-box;
	margin: 0 10px;
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}
.rect-right::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -20px; /* 余白内に配置 */
	transform: translateY(-50%);
	border-top: 25px solid transparent;
	border-bottom: 25px solid transparent;
	border-left: 30px solid #c00;
}
.step-carousel .step-item:last-child .rect-right::after{
	display:none;
}
.step-inner {
	min-height: 250px;
	width: 100%;
	padding: 1.5rem;
}
.step-item-kai .step-desc{
	min-height:6em;
}
.step-number {
	font-size: 0.9rem;
	color: #999;
	font-weight: bold;
}
.step-title {
	font-size: 1.1rem;
}
.step-desc {
	font-size: 0.9rem;
	min-height: 3em;
}
.zokujin p{
	font-size:1.5rem;
	text-align:center;
}

.img-box {
	position: relative;
	display: inline-block;
}
.copy-section .container{max-width:1200px;}
.copy-section .en-copy {
	position: absolute;
	top: -0.8em; /* ← 少し上に飛び出す */
	left: -0.5em;
	background: rgba(255, 255, 255, 0.8);
	padding: 4px 8px;
	font-size: 4rem;
	font-weight: bold;
	font-family: "Zen Old Mincho", "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	color: #999;
	z-index: 2;
	white-space: nowrap;
}
.copy-section .flex-row-reverse .en-copy {
	left:auto;
	right:-0.5em;
}
.copy-section .main-text p,.copy-section .main-text ul{
	font-size: 1.1rem;
	line-height:2.3rem;
}
.copy-section .main-text ul{
	font-weight:bold;
}
.copy-section .main-text p strong{color:var(--color-red);}
.check_list {
	background-color: #fff;
	padding: 2rem 2rem 2rem 5rem;
	list-style: none;
	font-weight: 600;
	margin: 0;
}
.check_list li {
	position: relative;
	margin-top: 1rem;
	margin-bottom: 1rem;
	font-size: 1.4rem;
}
.check_list li:last-child{
	margin-bottom:0;
}
.check_list li:before {
	content: "\f00c";
	font-family: "font awesome 6 free";
	margin-right: 10px;
	font-size: 1.2rem;
	position: absolute;
	left: -1.8rem;
	top: 2px;
	/* transform: translateY(-50%); */
	color: var(--color-red);
}
.ba_wrapper .before-after-row{margin-bottom:1em;}
.ba_wrapper .before-after-row:last-child{margin-bottom:0;}
.before-after-row > .box {
	padding: 10px;
	font-weight: bold;
	border-radius: 6px;
	min-height: 70px;
}
.b-box {
	border: 1px solid #666;
}
.a-box {
	background-color: #e9ecef; /* Bootstrap bg-body-secondary 相当 */
	width: 220px;
	flex-shrink: 0;
}
.group-block{
	font-size:1.3rem;
	line-height:2rem;
}

.after-section .b-box{
	border:1px solid var(--color-green);
	color:var(--color-green);
}
.after-section .a-box{
	background:#dceae4;
	color:var(--color-green);
}
.kaizen_jirei,.yellow_tab{padding:3rem;}
.number-s{
	font-size:46px;
	font-weight:bold;
	border-bottom:3px double #000;
}

/* スタッフ詳細ページ */
.single-staff .pageTitleArea{
	height:15vh;
}
.imgViewArea{
	height:65vh;
	display:flex;
	align-items:center;
	justify-content:start;
	position:relative;
}
.btmViewArea{
	height:50vh;
	display:flex;
	align-items: flex-start;
	justify-content:start;
	position:relative;
}
.staff-main-comment{
	position:absolute;
	width:100%;
	background:rgba(255,255,255,0.8);
	z-index:1;
	left:0;
	bottom:0;
	margin:0;
	padding:2em 0 3em;
	font-size:2rem;
	font-weight:bold;
}
.nameArea{
	width:30%;
	padding:3rem;
	background:#fff;
	margin-left:5%;
}
.staff-position{
	background:var(--color-navy);
	color:#fff;
	display:inline-block;
	position:absolute;
	top:-2em;
	left:-0.8em;
	padding:1em;
}
.interview-section .talk-container:first-child{
	position:relative;
	z-index:100;
	margin-top:-100px;
	background:#fff;
}
.talk-container,.messageBox{
	max-width:1200px;
	padding:3rem;
}
.talk-container h3{position:relative; margin-bottom:50px;}
.talk-container h3::after{
	content:"";
	width:60px;
	border-bottom:3px solid #333;
	position:absolute;
	bottom: -20px;
	left: 0;
}
.talk-content p{
	font-size:14px;
}
.talk-content p strong{
	background:#dce2ff;
	padding:0.2em;
}
.btmComment{
	min-width:25%;
	padding:2rem;
	background:rgba(255,255,255,0.7);
	margin:1% 0 0 1%;
}
.btmComment h2{
	line-height:2.5rem;
	margin-bottom:0;
}

.img-16x9 {
	position: relative;
	width: 100%;
	padding-top: 56.25%; /* 16:9 = 9/16 = 0.5625 */
	overflow: hidden;
}

.img-16x9 img {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Zoom In + Fade */
@keyframes zoomInFade {
	0% {
		opacity: 0;
		transform: scale(0.8);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}

.animate-zoom-in {
	opacity: 0;
	transform: scale(0.8);
	transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.animate-zoom-in.is-visible {
	animation: zoomInFade 0.6s ease-out forwards;
}

/* Fade In Only */
@keyframes fadeInOnly {
	from { opacity: 0; }
	to { opacity: 1; }
}

.animate-fade-in {
	opacity: 0;
	transition: opacity 0.5s ease-out;
}
.animate-fade-in.is-visible {
	animation: fadeInOnly 0.8s ease-out forwards;
}

/* 共通の初期状態 */
.animate-slide-left,
.animate-slide-right,
.animate-slide-top,
.animate-slide-bottom {
	opacity: 0;
	transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

/* 左から */
@keyframes slideInLeft {
	from { opacity: 0; transform: translateX(-30px); }
	to   { opacity: 1; transform: translateX(0); }
}
.animate-slide-left.is-visible {
	animation: slideInLeft 0.6s ease-out forwards;
}

/* 右から */
@keyframes slideInRight {
	from { opacity: 0; transform: translateX(30px); }
	to   { opacity: 1; transform: translateX(0); }
}
.animate-slide-right.is-visible {
	animation: slideInRight 0.6s ease-out forwards;
}

/* 上から */
@keyframes slideInTop {
	from { opacity: 0; transform: translateY(-30px); }
	to   { opacity: 1; transform: translateY(0); }
}
.animate-slide-top.is-visible {
	animation: slideInTop 0.6s ease-out forwards;
}

/* 下から */
@keyframes slideInBottom {
	from { opacity: 0; transform: translateY(30px); }
	to   { opacity: 1; transform: translateY(0); }
}
.animate-slide-bottom.is-visible {
	animation: slideInBottom 0.6s ease-out forwards;
}
.sitemap a{color:var(--color-navy); font-weight:bold;}
.sitemap h4{
	background:var(--color-gray);
	padding:0.8rem;
	margin-bottom:1em;
}
.pagination .page-link {
	color: var(--color-navy); /* 通常時のリンク色 */
	border-color: var(--color-navy);
}
.pagination .page-link:hover {
	color: #fff;
	background-color: var(--color-navy);
	border-color: var(--color-navy);
}
.pagination .page-item.active .page-link {
	color: #fff;
	background-color: var(--color-navy);
	border-color: var(--color-navy);
}
.pagination .page-item.disabled .page-link {
	color: #ccc;
	background-color: transparent;
	border-color: #ccc;
}

/* サイトマップページ */
main.sitemap section{padding-top:0; padding-bottom:0;}
.sitemap ul{list-style:none; margin:0 0 0 1em; padding:0;}
.sitemap ul li{margin-bottom:15px;}
.sitemap ul li ul{margin:10px 0 0 1em;}
.spt01-texts p,.spt02-texts p{
	line-height:1.8rem;
}
/* 	background:#e9eef2;
padding:0.8em;
border-radius:0.4em;
*/
.spt01-texts h3:nth-child(n+2),.spt02-texts h3:nth-child(n+2){
	margin-top:1em;
}

ul.asterisk{padding-left: 0; list-style: none;}
ul.asterisk li {
	font-size:14px;
	display: flex;
	line-height: 1.8em;
}
ul.asterisk li::before {
	content: "※";
	margin-right: .25em;
}

.flow-step {
	display: flex;
	align-items: flex-start;
	position: relative;
	overflow:hidden;
}

.step-badge{
	width: 60px;
	text-align: center;
	position: relative;
	margin-bottom:0;
}

.step-badge span {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background-color: #000;
	color: #fff;
	border-radius: 50%;
	width: 60px;
	height: 60px;
	font-size: 12px;
	line-height: 1.2;
	text-align: center;
	z-index: 1;
	position: relative;
}
.step-badge span em{
	display:block;
	font-size:2rem;
	font-style:normal;
}
.flow-step:not(:last-child) .step-badge::after {
	content: "";
	position: absolute;
	top: 60px;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	min-height: 100vh;
	border-left: 2px dashed #333;
	height:10000px;
	z-index: 0;
}
.step-line {
	width: 2px;
	background-color: #000;
	height: 100%;
	margin: 0 auto;
	margin-top: 10px;
}
.step-content {
	flex: 1;
	padding:18px 0 25px 20px;
}
.step-content h3{
	font-weight:bold;
	margin: 0 0 25px;
	font-size:1.4rem;
}
#calc .wpcf7-form{max-width:1200px;}
#calc table.calc-table{width:100%; position:relative;}
#calc table.calc-table tr td{padding:1em; vertical-align:middle;}

#calc table.calc-table:after {
	content: "";
	display: block;
	position: absolute;
	right: 50%;
	transform: translate(50%, 100%);
	width: 0;
	height: 0;
	bottom: -32px;
	border-style: solid;
	border-width: 30px 50px 0 50px;
	border-color: var(--color-navy) transparent transparent transparent;
}
table.price tr th,table.price tr td{padding:1em; vertical-align:middle;}
.shisan .wpcf7-form-control-wrap{display:inline;}
.card-body h6{border-bottom:1px dotted #333; padding-bottom:5px;}
.arrow-box {
	position: relative;
	z-index: 0;
}
.arrow-box:before {
    content: "";
    width: 70px;
    height: 100%;
    background-color: var(--color-navy);
    display: block;
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    clip-path: polygon(75% 0%, 75% 90%, 100% 90%, 50% 100%, 0% 90%, 25% 90%, 25% 0%);
}
.fukidashi > div {
	margin-bottom: 2rem;
}
.fukidashi > div > div {
	background-color: #f2f2f2;
	height: 100%;
	padding: 2rem 1rem;
	text-align: center;
	font-size: 1.1rem;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 15px;
	position: relative;
}
.fukidashi > div > div:after {
	content: "";
	width: 25px;
	height: 25px;
	background-color: #f2f2f2;
	position: absolute;
	bottom: -20px;
	clip-path: polygon(50% 100%, 100% 0, 0% 0%);
	left: 50%;
	transform: translateX(-50%);
}
.oddBox {
/* 	background-color: #e9eef2 !important; */
	padding: 1rem 1.5rem;
	flex-wrap: wrap;
}
.evenBox {
	padding: 1rem 1.5rem;
	flex-wrap: wrap;
/* 	background-color: rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important; */
}
.chat-content-in {
	padding: 1rem;
	position: relative;
}
.chat-content-in:after {
	content: "";
	width: 20px;
	height: 20px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.oddBox .chat-content-in {
/* 	background-color: #fff; */
	background-color: #e9eef2 !important;
}
.oddBox .chat-content-in:after {
/* 	background-color: #fff; */
	background-color: #e9eef2 !important;
	left: -19px;
	clip-path: polygon(100% 100%, 0% 50%, 100% 0%);
}
.evenBox .chat-content-in {
/* 	background-color: #fff; */
	background-color: #fdf5d9;
}
.evenBox .chat-content-in:after {
/* 	background-color: #fff; */
	right: -19px;
	clip-path: polygon(0% 0%, 0% 100%, 100% 50%);
	background-color: #fdf5d9;
}
.chat-content-in p {
	margin-bottom: 0;
}
.chat-icon{width:100px;}
.chat-content{width:calc(100% - 130px);}
@media(max-width:767px){
	.oddBox,
	.evenBox {
		padding: 1rem 0;
	}
	.evenBox {
		justify-content: end !important;
	}
	.oddBox .chat-content-in:after,
	.evenBox .chat-content-in:after {
		content: none;
	}
	.chat-content{width:100%;}
}
.btm-btn{
	position:absolute;
	width:calc(100% - 20px);
	left:10px;
	bottom:10px;
	line-height: 1em;
}
.borderttl{
	position:relative;
	padding-bottom:50px;
}
.borderttl:after{
	content:"";
	position:absolute;
	bottom:30px;
	border-bottom:3px solid var(--color-navy);
	width:15%;
	left:40%;
}
.voice-tags .hashtag-link {
	display: inline-block;
	color: #0d6efd;
	background-color: #e9f2ff;
	text-decoration: none;
	font-weight: 500;
	border-radius: 16px;
	font-size: 0.8rem; /* ← 小さく調整 */
	line-height: 1.4;
	transition: 0.2s;
}
.voice-tags .hashtag-link:hover {
	background-color: #0d6efd;
	color: #fff;
	text-decoration: none;
}
.hashtag-link{margin-right:8px;}
.hashtag-link:last-child{margin-right:0;}
.step-number-kai{
	background:var(--color-navy);
	color:#fff;
	font-weight:bold;
	font-size:14px;
	border-radius:10rem;
	width:120px;
	height:120px;
}
.step-number-kai span{
	font-size:40px;
	display:block;
}
.feature-split {
	position: relative;
	background: #fff;
	overflow: hidden;
}

.feature-inner {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
}

/* 左テキスト */
.feature-text {
	flex: 0 0 50%;
	display: flex;
	align-items: center;
	padding: clamp(24px, 3vw, 64px);
	background: #fff;
	position: relative;
	z-index: 2;
}

.feature-text__inner {
	max-width: 640px;
	margin: 0 auto;
}

/* 右画像 */
.feature-photo {
	flex: 0 0 50%;
	position: relative;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 16 / 10; /* ← 高さを抑えたいときはここを変える（例: 16/9, 16/8など） */
	display: flex;
	align-items: stretch;
}

.feature-photo img {
	width: calc(100% + 50vw);
	height: 100%;
	object-fit: cover;
	display: block;
	margin-left: -80px; /* フェード位置微調整 */
	max-width: none;
}

/* 中央の白フェード */
.feature-photo::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: min(18vw, 160px);
	height: 100%;
	background: linear-gradient(to right, #fff 0%, rgba(255,255,255,0) 100%);
	pointer-events: none;
	z-index: 3;
}

/* スマホ：上下構成 */
@media (max-width: 767.98px) {
	.feature-inner {
		flex-direction: column;
	}

	.feature-photo {
		width: 100%;
		aspect-ratio: 16/9;
	}

	.feature-photo img {
		width: 100%;
		margin-left: 0;
	}

	.feature-photo::before {
		left: 0;
		right: 0;
		top: auto;
		bottom: 0;
		width: 100%;
		height: 80px;
		background: transparent;
	}
}
.acw-gallery { width: 100%; }
.acw-gallery-main { margin-bottom: 12px; }

.acw-gallery-figure {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f7f7f7;
	margin: 0;
}

.acw-gallery-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* slick dots */
.slick-dots {
	text-align: center;
	margin-top: 10px;
}
.slick-dots li button:before {
	font-size: 10px;
	color: #666;
	opacity: 0.4;
}
.slick-dots li.slick-active button:before {
	color: #000;
	opacity: 1;
}
/* 右に固定量ぶんだけはみ出させる。横スクロールは出ない */
.bleed-right {
	--bleed: 160px;                 /* 好きな値に調整: 80 / 160 / 240px など */
	width: calc(100% + var(--bleed));
	margin-right: calc(-1 * var(--bleed));
}

/* 画面が狭い時は通常幅に戻す */
@media (max-width: 576px) {
	.bleed-right {
		--bleed: 0px;
	}
}

/* ドットを左寄せにする（必要なら） */
.bleed-right .slick-dots { text-align: left; }

/* デフォルト値（ヘッダー高さの初期値） */
:root { --header-h: 64px; --adminbar-h: 0px; }

/* WP管理バー対応 */
body.admin-bar { --adminbar-h: 32px; }
@media (max-width: 782px) {
	body.admin-bar { --adminbar-h: 46px; }
}

/* “ヘッダーの下で止まる”用のsticky */
.sticky-under-header {
	position: sticky;
	top: calc(var(--header-h) + var(--adminbar-h));
	z-index: 1; /* ヘッダー(固定ナビ)より小さく、周囲よりは大きく */
}

/* 写真まわり（そのままでOK） */
.senpai-photo img { object-fit: cover; }
.senpai-role { display: inline-block; }
.senpai-item:last-child { margin-bottom: 0 !important; }

/* 吹き出し本体 */
.balloon {
	position: relative;
	background: #fff;
	border: 1px solid #e5e7eb; /* 枠線色 */
	border-radius: 1rem;
	padding: 1.25rem 1.5rem;
	overflow: visible; /* ← 重要：テールが切れないように */
	z-index: 1;
}
.balloon h5{
	padding-bottom:8px;
	border-bottom:1px dotted #ccc;
}

/* テール（枠線） */
.balloon::before,
.balloon::after {
	content: "";
	position: absolute;
	width: 14px; height: 14px;         /* テールの大きさ */
	transform: rotate(45deg);
}

/* 左テール（写真が左にある奇数行） */
.balloon--left::before {
	left: -8px;                        /* 外側＝枠線 */
	top: 40%;
	background: #e5e7eb;
	z-index: 0;
}
.balloon--left::after {
	left: -6px;                        /* 内側＝塗り */
	top: calc(40% + 2px);
	background: #fff;
	z-index: 1;
}

/* 右テール（写真が右にある偶数行） */
.balloon--right::before {
	right: -8px;
	top: 40%;
	background: #e5e7eb;
	z-index: 0;
}
.balloon--right::after {
	right: -6px;
	top: calc(40% + 2px);
	background: #fff;
	z-index: 1;
}

/* モバイル時：縦積みになるので、テールは“上”に向けて写真側（上）を指す */
@media (max-width: 767.98px) {
	.balloon::before,
	.balloon::after {
		left: 2rem;               /* 上端からの横位置（必要なら調整） */
		right: auto;
		top: -8px;                /* 上向きへ */
	}
	.balloon--left::before,
	.balloon--right::before {
		background: #e5e7eb;
	}
	.balloon--left::after,
	.balloon--right::after {
		top: -6px;
		background: #fff;
	}
}
:root {
	--recruit-height: 40vh; /* ← 高さを変更 */
	--recruit-speed: 40s;
}

.recruit-section {
	position: relative;
	height: var(--recruit-height);
	overflow: hidden;
	background: #000;
}

/* トラック */
.recruit-track {
	position: absolute;
	min-height:400px;
	inset: 0;
	display: flex;
	align-items: center;
	animation: recruit-marquee var(--recruit-speed) linear infinite;
	will-change: transform;
}

/* スライド */
.recruit-slide {
	flex: 0 0 auto;
	height: 100%;
	display: flex;
	align-items: center;
}

.recruit-slide img {
	display: block;
	height: 100%;
	width: auto;
	object-fit: contain;
}

/* メッセージ */
.recruit-message {
	z-index: 2;
	background: #fff; /* 白背景 */
	color: #000;      /* 黒文字 */
	padding: 1.5rem 2rem;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
	max-width: min(90vw, 960px);
	min-width: 360px;
}

/* 横スクロールアニメーション */
@keyframes recruit-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* モバイル */
@media (max-width: 767.98px) {
	:root {
		--recruit-height: 40vh; /* モバイルも40vhに統一 */
		--recruit-speed: 45s;
	}
	.recruit-message {
		padding: 1rem 1.25rem;
	}
	.recruit-message h1 {
		font-size: 1.2rem;
	}
	.recruit-message p {
		font-size: 0.95rem;
	}
}
.card.voice-card .card-body{
	padding-bottom:80px;
}
.card.voice-card .card-body a.moreBtn{
	position:absolute;
	bottom:1em;
	width: calc(100% - 2rem) !important;
}
/* アニメーションオフ環境 */
@media (prefers-reduced-motion: reduce) {
	.recruit-track { animation: none; transform: translateX(0); }
}
.pmvArea > .innner > .container > .d-flex{
	border-bottom:1px dotted #666;
}
.prmTtl{width:280px;}
.prmTtl h1{
	font-weight:bold;
	font-size:3.5rem;
	margin-bottom:0;
}
.prmTtl h1 span{
	font-weight:normal;
	display:block;
	font-size:16px;
}
.prmTxt h2{
	margin-bottom:0;
}
.value-title {
	border-bottom: 1px solid #fff;
}

.value-item:last-child{
	content: none;
}
/* left_sta_rpt 用 */
.left-sta .lr-figure { position: relative; }

.left-sta .lr-badge{
	position: absolute;
	top: 0;
	left: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;          /* 正方形バッジ */
	height: 2.25rem;
	background: var(--color-navy);
	color: #fff;             /* 白抜き文字 */
	font-weight: 700;
	font-size: .95rem;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(0,0,0,.15);
	z-index: 1;
}
.left-sta p{
	height:3em;
	font-size:14px;
}
/* 画像の角にぴったり合わせたい場合は余白を詰める */
/* .left-sta .lr-badge { top: 0; left: 0; } */
.flow-note .note-body ul,.flow-note .note-body ul li,.flow-note .note-body p{margin-bottom:0;}

:root {
	--process-label-fg: #fff;  /* STEPラベル文字 */
	--process-body-bg:  #fff;  /* 内容部白背景 */
	--radius: 6px;
}

/* リスト全体 */
.process-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* 各ステップ */
.process-item {
	position: relative;
	display: flex;
	align-items: stretch; /* ← 高さを揃える */
}

/* 矢印（下方向） */
.process-item + .process-item {
	margin-top: 28px;
}
.process-item + .process-item::before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 110%;
	width: 0;
	height: 0;
	border-left: 12px solid transparent;
	border-right: 12px solid transparent;
	border-top: 14px solid var(--process-label-bg);
}

/* STEPラベル */
.process-label {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-navy);
	color: var(--process-label-fg);
	font-weight: 700;
	padding: 0 20px;
	min-width: 110px;
	border-top-left-radius: var(--radius);
	border-bottom-left-radius: var(--radius);
	text-align: center;
	white-space: nowrap;
}

/* 内容部 */
.process-body {
	flex: 1;
	background: var(--process-body-bg);
	border-top-right-radius: var(--radius);
	border-bottom-right-radius: var(--radius);
	padding: 12px 16px;
}

.process-title {
	margin: 0 0 4px;
	font-weight: 700;
}
.process-text {
	margin: 0;
}
.page-id-155 .moreBtn{display:none;}
.jobs .wpcf7-list-item.first{display:block;}

.calc-table tr td input,.calc-table tr td select{display:inline-block; margin-right:0.5em;}
.calc-table tr td.heritage,table tr td.shisan{width:500px;}
table tr td.shisan .calculator-result-box{font-size:40px;}

/* トラックをflex化して各スライドを同じ高さに */
.voice-slider .slick-track{
  display: flex !important;
}
.voice-slider .slick-slide{
  height: auto;              /* スライド自体は高さ自動 */
}
.voice-slider .slick-slide > div{ /* ここが .col-md-4 のラッパー */
  height: 100%;
  display: flex;              /* カードを下まで伸ばすため */
}

/* カードを縦フレックスにしてボタンを最下部へ */
.voice-card{
  display: flex;
  flex-direction: column;
  height: 100%;
}
.voice-card .card-body{
  display: flex;
  flex-direction: column;
  height: 100%;
}
.voice-card .moreBtn{
  margin-top: auto;           /* ボタンを下に固定 */
}
