@charset "utf8";
/*
Theme Name: 丸二運輸建設株式会社
Description:
Version:
Author:
*/

body {
	margin: 0;
	max-width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  color: #3a3a3a;
  letter-spacing: 0.1em;
  line-height: 1.6em;
}

ul, h2, h3 {
	margin: 0;
	padding: 0;
}

img {
	vertical-align:top;
}

a {
	text-decoration: none;
	color: #3a3a3a;
}

li {
	list-style: none;
}


/* --- セクション下からふわっと出現 --- */
.section-fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.section-fade-up.active {
  opacity: 1;
  transform: translateY(0);
}



/****************************************************************************************************
************************************** header *******************************************************
*****************************************************************************************************  */
.header {
	max-width: 100%;
  width: 100%;
  height: auto;
}

.header-top {
  width: 100%;
  height: 60px;
  position: fixed;
  display: flex;
	justify-content: space-between;
	align-items: center;
	z-index: 999;
	background: #fff;
	box-shadow: 0px 3px 5px -5px gray
}

.header-logo {
	padding-left: 16px;
  height: auto;
	display: flex;
	align-items: flex-end;
}

.header-logo-img {
  width: 16%;
}

.header-logo-img a {
	display: block;
}

.header-logo img {
  width: 100%;
}

.brand-name {
	padding-left: 0;
  font-weight: 500;
  font-size: 14px;
}




.nav-wrap {
	/* height: 100%;
  display: flex;
	justify-content: space-between;
	align-items: center; */
  display: none;
}


/* ハンバーガーここから */
/* チェックボックスを非表示にする */
.drawer_hidden {
  display: none;
}


/* 既存のCSSに追加 */
.menu-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5); /* 半透明の背景 */
  display: none; /* 初期状態では非表示 */
  z-index: 98; /* メニューより下に */
}

/* メニューが開いているときに背景を表示 */
#drawer_input:checked ~ .menu-background {
  display: block; /* メニューが開いているときに表示 */
}



/* ハンバーガーアイコンの設置スペース */
.drawer_open {
  display: flex;
  height: 25px;
  width: 60px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100;/* 重なり順を一番上にする */
  cursor: pointer;
}

.drawer_open:after {
	display: block;
	content:"MENU";
	width: 35px;
	margin-top: 40px;
	margin-left: 0;
	font-size: 10px;
	color: #1f4fe8;
	font-family: 'Hiragino';
	letter-spacing: 1.2px;
}

/* ハンバーガーメニューのアイコン */
.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
  content: '';
  display: block;
  height: 3.5px;
  width: 35px;
  border-radius: 3px;
  background: #1f4fe8;
  transition: 0.5s;
  position: absolute;
}

/* 三本線の一番上の棒の位置調整 */
.drawer_open span:before {
  bottom: 10px;
}

/* 三本線の一番下の棒の位置調整 */
.drawer_open span:after {
  top: 10px;
}

/* アイコンがクリックされたら真ん中の線を透明にする */
#drawer_input:checked ~ .drawer_open span {
  background: rgba(255, 255, 255, 0);
}

/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer_input:checked ~ .drawer_open span::before {
  bottom: 0;
  transform: rotate(45deg);
}

#drawer_input:checked ~ .drawer_open span::after {
  top: 0;
  transform: rotate(-45deg);
}

#drawer_input:checked ~ .drawer_open:after {
	display: none;
	content:"閉じる";
	width: 25px;
	margin-top: 35px;
	margin-left: 0;
	font-size: 7px;
	color: #1f4fe8;
	font-family: 'Hiragino';
	letter-spacing: 1px;
}

.burger-nav {
  width: 65%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 100%; /* メニューを画面の外に飛ばす */
  z-index: 99;
  background: #d7e0ff;
  transition: .5s;
  display: block;
}

.burger-nav li {
	border-bottom: 0.5px solid #fff;
}
.burger-nav li:nth-of-type(13) {
	/* background: #ffa9a1; */
}

.burger-nav li a {
	display: block;
	padding: 16px 0 16px 32px;
	font-size: 14px;
	color: #1f4fe8;
	letter-spacing: 1px;
}

.burger-nav li:nth-of-type(3) a {
	background: #169bd1;
	color: #fff;
}

.burger-nav li:nth-of-type(4) a {
	background: #1f4fe8;
	color: #fff;
}

/* アイコンがクリックされたらメニューを表示 */
#drawer_input:checked ~ .burger-nav {
  left: 35%;/* メニューを画面に入れる */
}
/* ハンバーガーここまで */


/* トップスライダー */
.header-img-area {
  padding-top: 60px;
}

#metaslider-id-11 {
	width: 100vw !important;
	height: 50vh !important;
	background: #fff;
}
#metaslider_container_11 img {
	object-fit: cover;
	height: 40vh;
}


/****************************************************************************************************
************************************** パンくずリスト **************************************************
*****************************************************************************************************  */
.pan {
  width: 100%;
  height: 50px;
  margin: 0 auto;
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #ededed;
}

.pan ul {
  width: 80%;
  margin: 0 auto;
  position: relative;
  list-style: none;
}

.pan ul li {
  display: inline;
  font-size: 12px;
}

.pan ul li a {
  color: #3a3a3a;
  text-decoration: none;
  font-size: 12px;
}

.pan ul li + li {
  /* margin: 0 32px; */
}

.pan li + li:before {
  content: '\f105'; /* 矢印をここで指定 */
	font-family: 'Font Awesome 5 Free'; /* フォントの指定 */
	font-weight: 900; /* ウェイトの指定 */
  display: inline-block; /* 表示方法をinline-blockに変更 */
  margin: 0 16px; /* 矢印とテキストの間にマージンを追加 */
	transform: scale(0.8); /* サイズを80%に縮小 */
}




/****************************************************************************************************
************************************** video **************************************************
*****************************************************************************************************  */
.video-section {
  margin-top: 0;
  position: relative;
  width: 100%;
  height: 40vh; /* 高さは調整 */
  overflow: hidden;
  background: #000;
}

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

.video-overlay-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.6);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  font-size: 32px;
  cursor: pointer;
  transition: background 0.3s;
}

.video-overlay-btn:hover {
  background: rgba(0,0,0,0.8);
}

.fullscreen-btn {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background: rgba(0,0,0,0.6);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 20px;
  cursor: pointer;
}

.fullscreen-btn:hover {
  background: rgba(0,0,0,0.8);
}


/****************************************
*********** セクション タイトル ************
*****************************************/
.section-heading {
  width: max-content;      /* 子要素の幅に合わせる */
  margin: 0 auto 32px;     /* セクション内中央に配置 */
  text-align: left; 
}

.color-white {
  color: #fff !important;
}

.section-heading h2 {
  font-size: 24px;
}

.section-subtitle {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  color: #1f4fe8;
  margin-bottom: 0;
  text-transform: uppercase; /* 大文字化 */
}

.section-subtitle::before {
  content: "";
  display: inline-block;
  margin-right: 6px;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 10px solid #169bd1; /* 青の三角形 */
}


/****************************************************************************************************
************************************** about us **************************************************
*****************************************************************************************************  */
.aboutus {
  margin-top: 80px;
  display: block;
  width: 100%;
}

.aboutus-col {
  flex: 1;
}

.aboutus-col.aboutus-img img {
  width: 100%;
  max-height: 400px;        /* 画像が大きすぎないよう制御 */
  height: auto;
  object-fit: cover;
  display: block;
}

.aboutus-col.aboutus-text {
  padding: 16px 24px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.aboutus-col.aboutus-text .btn-round {
  align-self: flex-end; /* ← ボタンだけ右端に寄せる */
}

.aboutus-col.aboutus-text h2 {
  margin-bottom: 8px;
  font-size: 24px;
}

.aboutus-col.aboutus-text p {
  margin-bottom: 24px;
  font-size: 14px;
}

.btn-round {
  margin: 32px auto 0;
  display: flex;
  justify-content: center;
  width: 50%;        /* 親の半分の幅にする */
  max-width: 200px;  /* ← 最大幅を制御してバランス調整 */
  align-items: center;
  gap: 6px; /* 文字と矢印の間隔 */
  padding: 6px;
  background: #1f4fe8;
  color: #fff;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 500;
  font-size: 12px;
  margin-top: auto; /* ボタンを下寄せ */
  transition: background 0.3s;
}

.btn-round i {
  font-size: 12px;       /* 矢印サイズ */
  line-height: 1;        /* 縦位置ズレ防止 */
}

.btn-round:hover {
  color: #1f4fe8;
  background: #fff;
  border: 1px solid #1f4fe8;
}

.btn-round .arrow {
  display: inline-flex;
  align-items: center;  /* ← 中央揃え */
  font-weight: bold;
  font-size: 16px;      /* 矢印だけ大きさ調整も可能 */
  line-height: 1;
}



/****************************************************************************************************
************************************** business *******************************************************
*****************************************************************************************************/
.business {
  margin: 80px auto 0;
  padding: 48px 0;
  /* max-width: 1200px; */
  width: 100%;
  background: rgba(240, 248, 255, 0.5);
}

.business-contents-grp {
  margin: auto;
  width: 90%;
  max-width: 90%;
  display: block;
  /* gap: 20px;
  justify-content: center; */

}

.business-contents {
  margin-bottom: 32px;
  padding: 24px; /* 32px → 24px にして余白を縮小 */
  /* flex: 1; */
  width: 100%;
  box-sizing: border-box;
  box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.1);
}

.business-contents-desc-tit {
  font-size: 20px;
  font-weight: 500;
  position: relative;
  display: inline-block;
  margin-bottom: 16px;
  text-align: left;
  border-left: 3px solid #169bd1;
  padding-left: 12px;
}

.business-contents-img {
  width: 100%;
  height: auto;
}

.business-contents-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.business-contents-desc {
  margin-top: 32px;
  font-size: 14px;
}


/****************************************************************************************************
************************************** recruit *******************************************************
*****************************************************************************************************/
.recruit {
  margin-top: 80px;
  padding-top: 80px;
  width: 100%;
  position: relative;
  overflow: hidden;
  background: linear-gradient(to bottom right, #1f4fe8, #169bd1);
}

.recruit-inner {
  margin: 0 auto;
  max-width: 1200px;
  width: 100%;
  position: relative;
  z-index: 2; /* 中央要素を前面に */
}

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

.recruit-contents-img-l,
.recruit-contents-img-r {
  /* position: absolute;
  width: clamp(15%, 20vw, 30%);
  height: 100%;
  top: 0; */
  background-size: cover;
  background-position: center;
  z-index: 5;
  /* 下にまわす */
  position: relative;
  width: 100%;
  height: 160px; /* 高さは適宜 */
  margin: 0;
}

.recruit-contents-img-l {
  left: 0;
  margin-bottom: 64px;
  background-image: url('../img/recruit_jam-img_beside-top.png');
}

.recruit-contents-img-r {
  right: 0;
  margin-top: 64px;
  background-image: url('../img/recruit_jam-img_beside-bottom.png');
}

/* ブルー透過レイヤー */
.recruit-contents-img-l::after,
.recruit-contents-img-r::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(31, 79, 232, 0.4); /* 青の透過 */
}

.recruit-contents-c {
  margin: 0 auto;
  width: clamp(50%, 60vw, 60%);
  color: #fff;
  z-index: 10;
  position: relative;
}

.recruit-contents-text {
  margin-bottom: 48px;
  font-weight: 400;
  font-size: 14px;
}

.btn-round-recruit {
  margin: 32px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 14px 32px;
  background: #fff;
  color: #1f4fe8;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 500;
  max-width: 240px;
  transition: background 0.3s, color 0.3s;
}

.btn-round-recruit i {
  font-size: 14px;
  line-height: 1;
}

.btn-round-recruit:hover {
  background: #1f4fe8;
  color: #fff;
}



/****************************************************************************************************
************************************** footer *******************************************************
*****************************************************************************************************/
.footer-wrap {
  margin-top: 80px;
  padding: 64px 0;
  width: 100%;
  background-image: url('../img/water_00011.jpg');
  font-weight: 400;
  background-position: 50% 30%;
}

.footer-inner {
  margin: auto;

  max-width: 90%;
  width: 100%;
  display: block;
}

.footer-logo {
  margin: 0 auto 16px;
  width: 90%;
	display: flex;
	align-items: flex-end;
}

.footer-logo-img {
  width: 6%;
}

.footer-logo-img a {
	display: block;
}

.footer-logo-img img {
  width: 100%;
}

.brand-name {
	padding-left: 0;
  font-weight: 500;
  font-size: 14px;
}

.footer-address {
  width: 100%;
}
          
.footer-address ul li {
  /* margin-bottom: 4px; */
  font-size: 14px;
  line-height: 1.6em;
}

.footer-map {
  margin-top: 16px;
}

.footer-map iframe {
  width: 100%;
  /* text-align: center; */
}

.footer-sitemap {
  margin: 48px 0;
  width: 100%;
  text-align: center;
}

.footer-sitemap ul {
  padding-left: 0;
  text-align: center;
}

.footer-sitemap ul li {
  margin-bottom: 4px;
}

.footer-sitemap ul li a {
  font-size: 14px;
}

.footer-btn {
  width: 100%;
}

.btn-round-footer {
  margin: 0 auto 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 12px 0;
  border: 1px solid #3a3a3a;
  /* border-radius: 50px; */
  text-decoration: none;
  font-weight: 500;
  font-size: 14px;
  max-width: 280px;
  transition: background 0.3s, color 0.3s;
}

.btn-round-footer:hover {

  color: #585858;
}





/****************************************************************************************************
************************************** page *******************************************************
*****************************************************************************************************/
.page-content {
	margin: 64px auto;
	width: 100%;
	letter-spacing: 0.1em;
}

.page-content ol li {
	margin: 0.5em 0;
  list-style-type: none;
  counter-increment: cnt;
}

.page-content ol li:before {
	content: "("counter(cnt)")";
}

.header-page-img {
	width: 100%;
	height: 260px;
	background: #1f4fe8;
	background-image: url('../img/20250730-DSC02522.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}

.header-page-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(31, 79, 232, 0.8); /* 青の透過 */
}

.header-page-img-overlay {
	width: 100%;
	height: 100%;
	position: absolute; /* 絶対位置を指定 */
	top: 0; /* 上端を0に */
	left: 0; /* 左端を0に */
	right: 0; /* 右端を0に */
	bottom: 0; /* 下端を0に */
	background-color: rgba(49,82,150,0.9);
}

.header-page-title-wrap {
	display: inline-block;
	position: absolute;
	top: 50%;
	left: 30%;
	transform: translate(-30%, 0%);
	z-index: 1;
  max-width: 100%; 
}

.header-page-subtitle {
	font-size: 14px;
	color: #fff;
	font-weight: 500;
}

.header-page-title {
	/* width: 50%; */
	/* text-align: center; */
	/* position: absolute;
  top: 50%;
	left: 50%;
	transform: translate(-50%, 0%); */
	font-size: 28px;
	color: #fff;
	font-weight: 500;
	letter-spacing: 4px;
	/* z-index: 1; */
	margin-top: 0;
  white-space: nowrap;
	/* background: rgba(255, 255, 255, 0.7) */
}

h2.pg-heading {
	font-size: 32px;
	font-weight: 500;
	color: #fff;
	text-align: center;
}

.pg-heading-under {
	margin: 8px auto 0;
	width: 5%;
	border-bottom: 3px solid #315296;
}




/****************************************************************************************************
************************************** page-message *******************************************************
*****************************************************************************************************/
.message {
	margin: 64px auto;
	max-width: 90%;
  width: 100%;
}

.message-content {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.message-content-text {
  /* padding-right: 16px; */
  /* width: 100%; */
  font-size: 14px;

  background: rgba(240, 248, 255, 0.5); /* 薄いブルー系 */
  padding: 8px;
  border-radius: 12px;
  line-height: 1.6;
  order: 2;
}

.message-content-name {
  /* margin-top: 16px; */
  text-align: right;
  /* font-weight: 400; */


  margin-top: 24px;
  font-weight: 500;
  font-style: italic; /* サイン風に */
  font-size: 18px;
  color: #1f4fe8;
}

.message-content-img {
  width: 100%;
  height: auto;
  order: 1;
}

.message-content-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% 0%;
}



/****************************************************************************************************
************************************** page-overview *******************************************************
*****************************************************************************************************/
.overview {
  margin-top: 80px;
  padding: 48px 0;
  width: 100%;
  background: rgba(240, 248, 255, 0.5);
}

.overview-content {
  width: 90%;
  max-width: 90%;
  margin: 0 auto;
  padding: 20px 12px;
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid #e0e4ea;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.overview-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Noto Sans JP", "Hiragino Sans", sans-serif;
  font-size: 14px;
  line-height: 1.2;
  color: #333;
}

.overview-table th,
.overview-table td {
  padding: 14px 0 14px 14px;
  text-align: left;
}

.overview-table th {
  width: 100px;
  font-weight: 500;
  color: #1a2a45;
  background: rgba(240, 248, 255, 0.5);
  border-bottom: 1px solid #dfe6ee;
  border-right: 1px solid #dfe6ee;
}

.overview-table td {
  background: #ffffff;
  border-bottom: 1px solid #e6ebf2;
}

.overview-table tr:nth-of-type(10) td,
.overview-table tr:nth-of-type(11) td,
.overview-table tr:nth-of-type(12) td,
.overview-table tr:nth-of-type(13) td {
  border-bottom: none;
}

.overview-table tr:nth-of-type(10) td {
  padding: 14px 0 6px 12px;
}

.overview-table tr:nth-of-type(14) td {
  padding: 6px 0 14px 12px;
}

.overview-table tr:nth-of-type(11) td,
.overview-table tr:nth-of-type(12) td,
.overview-table tr:nth-of-type(13) td {
  padding: 6px 0 6px 12px;
}

.overview-table tr:first-child th,
.overview-table tr:first-child td {
  border-top: 1px solid #e6ebf2;
}

.overview-contents-img {
  margin: 64px auto 0;
  width: 95%;
  max-width: 95%;
  height: 320px;
}

.overview-contents-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}




/****************************************************************************************************
************************************** page-history *******************************************************
*****************************************************************************************************/
.history {
  margin-top: 80px;
}

.history-content {
  /* padding: 64px 0; */
}

.timeline {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 90%;
  position: relative;
  font-size: 14px;
}

.timeline li {
  display: flex;
  /* align-items: flex-start; */
  align-items: center;
  margin-bottom: 24px;
  position: relative;
}

.timeline-date {
  width: 25%;
  text-align: right;
  padding-right: 16px;
  font-weight: 500;
  color: #444;
}

.timeline-marker {
  position: relative;
  width: 14px;
  height: 14px;
  background: #fff;
  border: 2px solid #169bd1;
  border-radius: 50%;
  margin: 0 24px;
  z-index: 1;
}

.timeline-marker::before {
  /* マーカー下に縦ラインを描画 */
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% + 40px); /* 次のliまで繋がる長さ */
  background: #ccc;
  z-index: -1;
}

.timeline li:last-child .timeline-marker::before {
  /* 最後の項目ではラインを消す */
  display: none;
}

.timeline-marker::after {
  /* 三角マーク */
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  margin-left: 4px;
  border: 6px solid transparent;
  border-left: 8px solid #169bd1;
  transform: translateY(-50%);
}

.timeline-content {
  width: 50%;
  padding-left: 12px;
  color: #333;
  line-height: 1.6;
}




/****************************************************************************************************
************************************** page-recruit *******************************************************
*****************************************************************************************************/
.employee {

  width: 100%;
}

.employee-content {
  max-width: 95%;
  margin: 0 auto;
}

.employee-interview {
  padding: 16px;
  display: flex;
  flex-wrap: wrap;
  /* gap: 40px; */
  align-items: flex-start;
  margin-bottom: 60px;
  background: rgba(240, 248, 255, 0.5);
 
  flex-direction: column; /* 縦積み */
  gap: 24px;
}

.employee-photo {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch; /* 左右の高さを揃える */
}

.employee-photo > img {
  flex: 2;
  width: auto;
  max-width: 65%;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  object-fit: cover;
}

.employee-subphotos {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 35%;
  justify-content: space-between; /* 上下に均等配置して左に合わせる */
}

.employee-subphotos img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
}


.employee-info {
  flex: 2 1 500px;
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2カラム */
  gap: 20px;

  max-width: 100%;
  width: 100%;
  grid-template-columns: 1fr; /* QAカードを1カラムに */
}

.employee-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline; /* 文字の下端を揃える */
  gap: 12px; /* 名前と入社年数の間隔 */
  margin-bottom: 16px;
}

.employee-name {
  font-size: 20px;
  border-left: 3px solid #169bd1;
  padding-left: 12px;
  margin: 0;
}

.employee-join {
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
}

.qa-card {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.accordion {
  width: 100%;
  background: #fff;
  color: #0073e6;
  font-weight: 600;
  text-align: left;
  padding: 16px 20px;
  border: none;
  outline: none;
  cursor: pointer;
  transition: background 0.3s;
}

.accordion:hover {
  background: #f8f9fa;
}

.panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
  background: #fff;
  padding: 0 20px;
}

.panel p {
  margin: 16px 0;
  color: #333;
  line-height: 1.6;
  font-size: 14px;
}

.accordion.active + .panel {
  max-height: 400px;
  padding-bottom: 16px;
}





/****************************************************************************************************
************************************** page-benefits *******************************************************
*****************************************************************************************************/
.benefits {
  margin-top: 80px;
  padding: 48px 0;
  width: 100%;
  background: rgba(240, 248, 255, 0.5);
}

.benefits-content {
  margin: 32px auto 0;
  width: 100%;
  max-width: 95%;
}

.benefits-table-wrapper {
  padding: 16px;
  overflow-x: auto; /* スマホでも横スクロール可能 */
  background: #fff;
}

.benefits-name {
  font-size: 1.4rem;
  border-left: 3px solid #169bd1;
  padding-left: 12px;
  margin: 0;
}

.benefits-table {
  margin-top: 32px;
  width: 100%;
  border-collapse: collapse;
  min-width: 600px; /* 小さい画面で横スクロール */
  font-size: 14px;
}

.benefits-table th,
.benefits-table td {
  padding: 12px 16px;
  border-bottom: 1px solid #e0e0e0;
  text-align: left;
  vertical-align: top;
}

.benefits-table tr:last-child th,
.benefits-table tr:last-child td {
  border-bottom: none;
}

.benefits-table th {
  background-color: #f8f9fa;
  color: #0073e6;
  font-weight: 600;
  width: 80px; /* 左列固定 */
}

.benefits-table tbody tr:hover {
  background-color: #f1f7ff;
}




/****************************************************************************************************
************************************** page-entry *******************************************************
*****************************************************************************************************/
.entry {
  margin-top: 80px;
  /* padding: 64px 0; */
  width: 100%;
  /* background: rgba(240, 248, 255, 0.5); */
}

.entry-content {
  margin: 32px auto 0;
  padding: 24px;
  width: 90%;
  /* max-width: 720px; */
  background: rgba(240, 248, 255, 0.5);
}

/* ========= フォーム要素の統一スタイル ========= */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.wpcf7-form p {
  margin: 0;
  font-size: 14px;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: #0073e6;
  box-shadow: 0 0 6px rgba(0, 115, 230, 0.3);
  outline: none;
}

.wpcf7-form textarea {
  min-height: 120px;
  resize: vertical;
}

/* ========= 生年月日 横並び ========= */
.birthday-row {
  display: flex;
  gap: 10px;
}

.birthday-row select {
  flex: 1;
  min-width: 0;
}

/* ========= 性別 横並び ========= */
.gender-row {
  display: flex;
  gap: 20px;
  align-items: center;
}

.gender-row label {
  /* font-weight: 400; */
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ========= 送信ボタン ========= */
.wpcf7-form input[type="submit"] {
  margin-top: 32px;
  background: #1f4fe8;
  color: #fff;
  font-size: 16px;
  padding: 16px 64px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.3s, transform 0.2s;
}

.wpcf7-form input[type="submit"]:hover {
  background: #169bd1;
  transform: translateY(-2px);
}

/* ========= エラーメッセージ/成功メッセージ ========= */
.wpcf7-not-valid-tip {
  color: #d93025;
  font-size: 13px;
  margin-top: 4px;
}

.wpcf7-response-output {
  margin-top: 20px;
  padding: 12px 16px;
  border-radius: 6px;
  font-size: 14px;
}

.wpcf7-mail-sent-ok {
  background: #e6f4ea;
  border: 1px solid #34a853;
  color: #196732;
}

.wpcf7-validation-errors {
  background: #fce8e6;
  border: 1px solid #d93025;
  color: #a50e0e;
}


/* 共通のドロップダウンスタイル */
.wpcf7 select {
  width: 100%;
  padding: 10px 36px 10px 12px; /* 右側に余白を多めにとる */
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  appearance: none;          /* デフォルトの矢印を非表示 */
  -webkit-appearance: none;  /* Safari対応 */
  -moz-appearance: none;     /* Firefox対応 */
  background: #fff url('data:image/svg+xml;utf8,<svg fill="%23666" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 12px center; 
  background-size: 16px 16px;
}

/* 職種と現在の職業だけ短めにする */
.wpcf7 select[name="job"], 
.wpcf7 select[name="current-job"] {
  max-width: 300px;   /* 横幅を短くする */
  display: block;
}

/* optinフォント */
.wpcf7 select[name="job"], 
.wpcf7 select[name="current-job"],
.wpcf7 select[name="birth-year"] {
  color: #3a3a3a;
  font-weight: 300;
}

/* 必須項目 */
.entry-content .required,
.contact-content .required {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 400;
  color: #fff;
  background-color: #d9534f;
  /* border: 1px solid #d9534f; */
  border-radius: 4px;
  line-height: 1.2;
}




/****************************************************************************************************
************************************** page-contact *******************************************************
*****************************************************************************************************/
.contact {

}

.contact-content {
  margin: 32px auto 0;
  padding: 20px;
  width: 90%;
  max-width: 720px;
}

.contact-content-note {
  text-align: center;
  font-weight: 400;
  font-size: 14px;
}

/****************************************************************************************************
************************************** privacy-policy *******************************************************
*****************************************************************************************************/
body.page-id-20 .page-content {
  width: 90%;
  margin: 0 auto; /* 中央寄せしたい場合 */
  font-size: 14px;
}

body.page-id-20 .page-content li {
  list-style: inside;
}