@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* font=========================== */

.ja {
	font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.en {
	font-family: "Outfit", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}

/* common======================= */

@media screen and (min-width: 960px) {
	.wide90{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 90%;
}
	.wide80{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 80%;
  min-width: 950px;
}
	.wide70{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 70%;
		min-width: 1000px;
}
}

@media screen and (max-width: 960px){
	.wide90{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 90%;
}
	.wide80{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 95%;
}
	.wide70{
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 95%;
}
}

@media screen and (max-width: 768px) {
  .sp-wide90 {
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 90%;
}
	.sp-wide85 {
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 85%;
}
	.sp-wide80 {
	position: relative;
	top: 0;
	right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
	width: 80%;
}
}


/* 改行=========================== */

.no-kaigyou {
	white-space: nowrap;
}

.br-sp {
    display: none;
}

@media (max-width: 600px) {
    .br-sp {
        display: block;
    }
}


/* マージン======================= */

.m-left {
	margin-left: auto;
}

.m-right {
	margin-right: auto;
}

.m-center {
	margin: 0 auto;
}

.mt-20 {
	margin-top: 20px;
}
.mt-30 {
	margin-top: 30px;
}
.mt-40 {
	margin-top: 40px;
}
.mt-50 {
	margin-top: 50px;
}

.ml-20 {
	margin-left: 20px;
}

/* テーブル========================= */

.c_table th,
.c_table td{
	padding: 20px 0;
}

/* 画像============================= */

main img {
	border-radius: 15px;
}

/* アニメーション */
.img-wrap{
  position: relative;
  width: 100%; 
  height: 100%;
  overflow: hidden;
}

.img-wrap img{
  width: 100%;
  height: 100%;
  object-fit: cover; 
  object-position: center;
  display: block;
}

.img-wrap::before {
  animation: img-wrap 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  background: #f39800;
	border-radius: 15px;
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

@keyframes img-wrap {
  100% {
    transform: translateX(100%);
  }
} 

.img-wrap::before { animation-play-state: paused; }       /* 初期は止めておく */
.img-wrap.is-show::before { animation-play-state: running; } /* 発火で再生 */

/* 見出し=========================== */

.sub_catch {
	
}

.title-box h2 {
  display: inline-flex;   /* もしくは display:flex; */
  align-items: center;    /* 画像と文字を縦中央揃え */
}

.title-box h2 img {
  flex-shrink: 0;
  width: 15px;
  height: auto;
  margin-right: 10px;
}


/* テキスト======================== */

.text-level01{
	font-size: clamp(1rem, 2vw, 1.7rem);
	line-height: 1.9;
	font-weight: 600;
}

.text-level02{
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	line-height: 1.9;
	font-weight: 600;
}

.text-box-wide {
	width: 90%;
}

@media (max-width: 786px) {
  .text-level01{
	font-size: clamp(1.2rem, 1.3vw, 1.4rem);
	line-height: 2;
	font-weight: 400;
}

.text-level02{
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	line-height: 1.9;
	font-weight: 400;
}
}

/* テキストアニメ===================== */

.matrix .bg-wrap,
.matrix .bg-wrap .inn {
  display: block;
}
 
.matrix .bg-wrap {
  overflow: hidden;
  opacity: 0;
}
 
.matrix .bg-wrap + .bg-wrap {
  margin-top: 10px;
}
 
.matrix .bg-wrap .inn.large {
  font-size: clamp(2rem, 6vw, 6rem);
  font-weight: 700;
}
.matrix .bg-wrap .inn.small {
  font-size: clamp(2rem, 6vw, 6rem);
	font-weight: 700;
	margin-bottom: 0;
}
 
.matrix .bg-wrap .inn {
  opacity: 0;
  transform: matrix(1, 0, 0, 1, 0, 100);
  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
 
.matrix.is-animated .bg-wrap {
  opacity: 1;
}
 
.matrix.is-animated .bg-wrap .inn {
  opacity: 1;
  transform: matrix(1, 0, 0, 1, 0, 0);
}

/* カラーボックス==================== */

.color-box-white {
	background: #fff;
	padding: 2rem;
	border-radius: 15px;
}


@media (max-width: 480px) {
  .color-box-white {
	background: #fff;
	padding: 1rem;
	border-radius: 15px;
}
}


/* ボタン========================== */

.btn-more {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 250px;
  padding: 10px 24px;
  border-radius: 40px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.15);
  text-decoration: none;
  transition: all 0.3s ease;
  font-size: 18px;
  color: #1e3557;
  font-weight: 600;
}

.split-scroll .btn-more {
	display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 300px;
  padding: 10px 24px;
  border-radius: 40px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.15);
  text-decoration: none;
  transition: all 0.3s ease;
  font-size: 18px;
  color: #1e3557;
  font-weight: 600;
}

/* 丸アイコン本体 */
.btn-icon {
  position: relative;
  width: 45px;
  height: 45px;
  background: #66b83d;
  border-radius: 50%;
  overflow: hidden; /* 中の矢印がはみ出ないように */
}

/* ---- 矢印（右へ消える） ---- */
.btn-icon::after {
  content: "➔";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 20px;
  transition: all 0.3s ease;
}

/* ---- 矢印（左から入る） ---- */
.btn-icon::before {
  content: "➔";
  position: absolute;
  top: 50%;
  left: -40%; /* 最初は左の外側 */
  transform: translateY(-50%);
  color: #fff;
  font-size: 20px;
  opacity: 0;
  transition: all 0.3s ease;
}

/* --- ホバー時のアニメーション --- */
.btn-more:hover .btn-icon::after {
  left: 140%; /* 右に消える */
  opacity: 0;
}

.btn-more:hover .btn-icon::before {
  left: 50%;  /* 中央に来る */
  transform: translate(-50%, -50%);
  opacity: 1;
}

/* ヘッダーメニュー=============== */
#header {
	width: 98%;
	background:rgba(255,255,255,0.9);
	margin: 20px 20px 0 20px;
	border-radius: 100px;
}
@media screen and (max-width: 959px) {
#header {
	width: 95%;
	border-radius: 100px;
}
}
@media screen and (max-width: 480px) {
#header {
	width: 90%;
}
	li.menu-item a{
		padding: 30px 20px;
	}
}

.c-gnav>.menu-item>a .ttl {
  font-size: 15px;
  letter-spacing: .1rem;   /*文字の間隔*/
  font-weight: bold;
}

.l-header .c-gnav>li>a:after {
	background: #6ab82d;
}


/* メインビジュアル================= */

.main-copy {
	position: relative;
	top: 30vh;
	left: 10%;
	width: clamp(300px, 40vw, 600px);
}

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

}

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

}

/* トップページ======================= */

.top-concept-outer {
  position: relative;
}

.top-concept-outer::before {
  content: "";
  position: absolute;
  bottom: -17%;
	left: -15%;
	width: 700px;
	height: 700px;
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/shape01.svg'); 
  background-size: contain; 
  background-repeat: no-repeat;
  background-position: center;
  z-index: -1; 
  opacity: 0.5; 
  animation: rotate-slow 30s linear infinite; 
}

.top-concept-outer::after {
  content: "";
  position: absolute;
  top: 10%;
	right: -10%;
	width: 700px;
	height: 700px;
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/shape02.svg'); 
  background-size: contain; 
  background-repeat: no-repeat;
  background-position: center;
  z-index: -1; 
  opacity: 0.5; 
  animation: rotate-reverse 30s linear infinite;
}

/* ▼ 共通の回転（通常方向） */
@keyframes rotate-slow {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ▼ 逆回転（反時計回り） */
@keyframes rotate-reverse {
  0%   { transform: rotate(360deg); }
  100% { transform: rotate(0deg); }
}

.top-comcept-text02 {
	width: 60%;
}

.top-comcept-img01 {
	position: relative;
	top: 0;
	left: 50px;
	width: 110%;
}

.top-comcept-img02 {
	position: relative;
	top: 300px;
	left: 0;
	width: 90%;
}


@media screen and (max-width: 480px) {
.top-concept-title {
	width: 70%;
}
	.top-comcept-img01 {
	position: relative;
	top: 90px;
	left: 50px;
	width: 88%;
}

.top-comcept-img02 {
	position: relative;
	top: 30px;
	left: 4%;
	width: 70%;
}
	.top-concept-outer::before {
  content: "";
  position: absolute;
  bottom: -50px;
	left: 0;
	width: 500px;
	height: 500px;
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/shape01.svg'); 
  background-size: contain; 
  background-repeat: no-repeat;
  background-position: center;
  z-index: -1; 
  opacity: 0.5; 
  animation: rotate-slow 30s linear infinite; 
}

.top-concept-outer::after {
  content: "";
  position: absolute;
  top: 0;
	right: -10%;
	width: 700px;
	height: 700px;
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/shape02.svg'); 
  background-size: contain; 
  background-repeat: no-repeat;
  background-position: center;
  z-index: -1; 
  opacity: 0.5; 
  animation: rotate-reverse 30s linear infinite;
}
}

/* 会社概要 */


@media screen and (max-width: 480px) {
	.title02 {
		width: 85%;
	}
}

.split-scroll {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* 左右2カラム */
.split-scroll__inner {
  display: flex;
}

/* ===== 左：画像エリア ===== */
.split-scroll__visual {
  position: sticky;
  top: 10vh;
  width: 50%;
  height: 80vh; 
	border-radius: 20px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 画像切り替え（重ねてフェード） */
.split-scroll__photo {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.split-scroll__photo.is-active {
  opacity: 1;
  transform: scale(1);
}

/* ===== 右：テキスト側 ===== */
.split-scroll__content {
  width: 50%;
  padding: 0 4vw;
}

.scroll-block {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: start;
	background-color: #66b83d;
	padding: 3rem;
	border-radius: 20px;
	margin: 50px 0;
	color: #fff;
}

.scroll-block h2 {
	font-size: clamp(1.5rem, 4vw, 3.5rem);
}

/* ===== SPレイアウト ===== */
@media (max-width: 768px) {
  .split-scroll__inner {
    flex-direction: column;
  }

  .split-scroll__visual {
    position: relative;
    top: 0;
    width: 100%;
    height: 50vh;
  }

  .split-scroll__content {
    width: 100%;
    padding: 40px 20px 80px;
  }

  .scroll-block {
    min-height: auto;
    padding: 60px 0;
  }

  .scroll-end {
    height: 0;
  }
}

/* ===========================
   staff-card（横並びカード）
=========================== */

@media screen and (max-width: 480px) {
	.title03 {
		width: 85%;
	}
}

.staff-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  max-width: 600px;
  padding: 30px 24px;
  background: #fff;
  border-radius: 20px;
  text-decoration: none;
  transition: 0.3s ease;
}

/* 画像（左） */
.staff-card .staff-img {
  width: 70%;     /* 左側60% */
  height: auto;
  display: block;
}


/* ===========================
   右側の丸アイコン（以前の仕様を移植）
=========================== */
.staff-icon {
  position: relative;
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  overflow: hidden;
}

/* 矢印（中央→右に抜ける） */
.staff-icon::after {
  content: "➔";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #f39800;
  font-size: 25px;
  transition: all 0.3s ease;
}

/* 矢印（左から出てくる） */
.staff-icon::before {
  content: "➔";
  position: absolute;
  top: 50%;
  left: -40%;
  transform: translateY(-50%);
  color: #f39800;
  font-size: 25px;
  opacity: 0;
  transition: all 0.3s ease;
}

/* ホバー時のアニメーション */
.staff-card:hover .staff-icon::after {
  left: 140%;
  opacity: 0;
}

.staff-card:hover .staff-icon::before {
  left: 50%;
  opacity: 1;
  transform: translate(-50%, -50%);
}


/* ===========================
   カラーバリエーション
=========================== */

/* オレンジ */
.btn-orange .staff-icon {
  
	border: 1px solid #f39800;
}

/* 今後、緑など追加したい時 */
.btn-green .staff-icon {
  background: #7cb933;
}


/* ===========================
   スマホ対応
=========================== */
@media (max-width: 640px) {
  .staff-card {
    padding: 16px 20px;
    gap: 16px;
  }

  .staff-card .staff-img {
    width: 70%; /* スマホでは少し大きめ */
  }

  .staff-icon {
    width: 46px;
    height: 46px;
  }

  .staff-icon::before,
  .staff-icon::after {
    font-size: 22px;
  }
}

/* ページ共通========================= */

.pege-hero-outer {
	position: relative;
	top: -105px;
	height: 80vh;
	border-radius: 0 0 30px 30px;
}

.page-hero-title {
	position: relative;
	top: clamp(70px, 30vh, 300px);
}


/* 社員インタビュー=================== */

.interview-name-box {
  position: relative;
  background: #fff;
  padding: 2rem;
  border-radius: 15px;
}

.interview-name-box::after {
  position: absolute;
  bottom: -7px;
  right: 15%;
  content: '';
  width: 200px;
  height: 200px;
  background-repeat: no-repeat;
  background-size: contain;
}

@media screen and (max-width: 768px) {
	.interview-name-box {
  position: relative;
  background: #fff;
  padding: 1rem;
  border-radius: 15px;
}

.interview-name-box::after {
  position: absolute;
  bottom: -5px;
  right: 10%;
  content: '';
  width: 140px;
  height: 140px;
  background-repeat: no-repeat;
  background-size: contain;
}
}


@media screen and (max-width: 768px) {
	.interview-name-box {
  position: relative;
  background: #fff;
  padding: 1rem;
  border-radius: 15px;
}

.interview-name-box::after {
  position: absolute;
  bottom: -5px;
  right: 0;
  content: '';
  width: 140px;
  height: 140px;
  background-repeat: no-repeat;
  background-size: contain;
}
}

/* 1つ目 */
.interview-name-box.box-1::after {
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/staff01.png');
}

/* 2つ目 */
.interview-name-box.box-2::after {
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/staff02.png');
}

/* 3つ目 */
.interview-name-box.box-3::after {
  background-image: url('https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/staff03.png');
}



/* エントリーエリア=================== */

.entry-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  background-image: url("https://www.e-sazankakai.or.jp/recruit/wp-content/uploads/2025/12/footer-img.jpg");
  background-size: cover;
  background-position: bottom center;

  padding: 15vh 20px;
  border-radius: 80px 80px 0 0;

  display: flex;
  flex-direction: column; /* ← ボタンを上下に並べる */
  gap: 40px;              /* ← ★ ボックス間の隙間 */
  align-items: center;
}

/* 個別ボタン（半透明の白ボックス） */
.entry-link {
  width: 100%;
  max-width: 1200px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;

  padding: 40px 60px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 20px;
  backdrop-filter: blur(3px);

  text-decoration: none;
  color: #111;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

/* ===== 左側テキスト ===== */
.entry-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.entry-title {
  font-size: clamp(30px, 4vw, 56px);
  font-weight: 700;
	color: #333;
  letter-spacing: 0.06em;
  transition: color 0.3s ease;
}

.entry-sub {
  font-size: 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
}

/* 小さなオレンジ丸 */
.entry-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #e85b2f;
  margin-right: 8px;
}

/* ===== ボタン右側の丸（共通形状） ===== */
.entry-icon {
  position: relative;
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  overflow: hidden;
}

/* 矢印（中央→右に抜ける） */
.entry-icon::after {
  content: "➔";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 25px;
  transition: all 0.3s ease;
}

/* 矢印（左から出てくる） */
.entry-icon::before {
  content: "➔";
  position: absolute;
  top: 50%;
  left: -40%;
  transform: translateY(-50%);
  color: #fff;
  font-size: 25px;
  opacity: 0;
  transition: all 0.3s ease;
}

/* ホバー時のアニメーション */
.entry-link:hover .entry-icon::after {
  left: 140%;
  opacity: 0;
}

.entry-link:hover .entry-icon::before {
  left: 50%;
  opacity: 1;
  transform: translate(-50%, -50%);
}

/* ===== ボタン色バリエーション ===== */

/* 緑 */
.btn-green .entry-icon {
  background: #7cb933;
}
.btn-green:hover .entry-title {
  color: #7cb933;
}

/* オレンジ */
.btn-orange .entry-icon {
  background: #f39800;
}
.btn-orange:hover .entry-title {
  color: #f39800;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {
  .entry-section {
    padding: 40px 30px;
    border-radius: 40px 40px 0 0;
  }

  .entry-link {
    padding: 30px 20px;
    gap: 20px;
  }

  .entry-icon {
    width: 44px;
    height: 44px;
    margin-left: auto;
  }

  .entry-icon::before,
  .entry-icon::after {
    font-size: 20px;
  }
}




/* フッター========================== */

.l-footer__inner {
}

.f-menu a{
  font-size: clamp(1.3rem, 2vw, 2rem);
  margin-bottom: 20px;
  transition: color 0.3s ease, transform 0.3s ease;
}

.f-menu a:hover {
  color: #7cb933;
  transform: translateX(5px);
}

#content{
	margin-bottom: 0px;
}
.w-beforeFooter{
	margin: 0;
}

.w-footer__box {
	max-width: 1200px;
	margin: 0 auto;
}

@media screen and (max-width:768px){
	#nav_menu-2 {
	display: none;
}
	#nav_menu-3 {
	display: none;
}
}

/*ぱんクズリスト非表示*/
#breadcrumb {
 display: none;
}

/*reCAPTCHA全面表示*/
.grecaptcha-badge {
	z-index: 1; 
}

/* 「トップへ戻るボタン」の位置調整 */ 
.p-fixBtnWrap { 
	bottom: 85px;
	right: 10px
}