/*基本*/

body {
font-family: 'Nunito', sans-serif;
margin:0;
padding:0;
}

#wrapper{
width: 100%;
}

a {
color: #4b5564;
text-decoration: none;
}

a:hover {
color: #000;
}

ul {
padding: 0;
list-style: none;
}

hr {
height: 1px;
border: 0;
border-top: 1px solid #e5e7eb;
}

/*ヘッダーエリア*/

header{
/*text-align: center;*/
max-width: 1200px;
margin: 10px auto 0 auto;
display:flex;
}

.sub_area {
font-size: 12px;
padding: 10px;
width: 100%;
max-width: 1200px;
margin: 0 auto;
display: block;
box-sizing: border-box;
}

h1{
margin:0;
padding:0;
}

.logo_l{
width: 140px;
}

.login_area{
display:flex;
gap:10px;
margin: 0 0 0 auto;
padding: 0px;
}

.login_area span{
display: block;
margin: 10px 0 10px 0;
}

.login_area .logins a{
border: 1px solid #ccc;
padding: 6px 10px;
border-radius: 10px;
display: inline;
font-size: 14px;
background-color: #fff;
color: #26a34e;
}

.login_area .new a{
border: 1px solid #4fab63;
padding: 6px 10px;
border-radius: 10px;
display: inline;
font-size: 14px;
background-color: #4fab63;
color: #fff;
}

/*スクロールしたらおりてくるヘッダーエリア*/
.fixed-header {
position: fixed;
top: -80px;
left: 0;
z-index: 2000;
transition: all 0.2s ease-in-out;
visibility: hidden;
width: 100%;margin: 0 auto;display: block;
}

.fixed-header.is-show {
top: 0;
visibility: visible;
width: 100%;
background-color: #fff;
border-bottom: 1px solid #ccc;
}

#header-inner{
width: 100%;
margin: 20px auto 0 auto;
display:flex;
max-width: 1200px;
}

#main_header{
width: 100%;
max-width: 1200px;
margin: 0 auto;
}

#inner_header{
display: flex;
width: 100%;
max-width: 1200px;
margin: 0 auto;
}


/*中央画像エリア*/

.main_pc{
display:block;
width:60%;
margin: 0 auto;
}

.main_sp{
display:none;
}

.image_area{
width: 100%;
margin: 0 auto;
position: relative;
}

/*掲載企業用メインエリア*/

.image_area_recruit{
width: 100%;
margin: 0 auto;
position: relative;
background-color: #00B91C;
}


/* コンテンツエリア */
.contents_area{
max-width: 1200px;
margin: 50px auto;
}

h2 {
  position: relative;
  padding-bottom: 0.5em;
  margin-bottom: 1.5em;
}

h2:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #ccc; /* やさしいグレーライン */
}

/*地域選択エリア*/

#select_area{
margin: 0 auto;
text-align: center;
}

.select_text{
display: block;
margin: 20px auto;
font-size: 15px;
}

.area_outer{
display: flex;
width: 90%;
margin: 0 auto;
gap: 20px;
justify-content: center;
flex-wrap: wrap;
}


.area_name a{
padding: 8px 20px;
border: 1px solid #ccc;
border-radius: 8px;
width: 200px;
display: block;
margin: 0 auto 10px auto;
background-color: #4fab63;
color: #fff;
font-weight: 500;
}

.area_name a:hover{
background-color: #8cba96;
}

/*新規登録*/

#regist_form{
width: 400px;
margin: 0 auto;
}

/*利用規約*/

.text_head_under{
text-align: center;
font-size: 14px;
color: #333333;
display: block;
margin: 0 auto;
}

.inline_box {
width: 600px;
height: 250px;
overflow: auto;
background: #ffffff;
border: 1px solid #cccccc;
padding: 10px;
margin: 40px auto;
font-size: 14px;
line-height: 2em;
}

.inline_box p{
margin-bottom: 30px;
}

/*フッター*/
.footer {
padding: 2rem;
font-size: 15px;
color: #4b5564;
background: #fff;
max-width: 1200px;
margin: 0 auto 20px auto;
text-align: center;
}

.footer__navi-heading {
font-weight: 600;
}

.footer__logo {
display: inline-block;
margin-bottom: 0rem;
}

.footer__navi{
display: flex;
gap:20px;
justify-content: center;
}

.footer__navi li {
margin-bottom: 0.75rem;
font-size:12px;
}

.copyright{
text-align: center;
font-size: 12px;
}

/*ログインページ用ロゴ*/
.login_logo{

width: 200px;

}

.auth_logo{

width: 80px;

}

.area_ul{
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.area_li a{

    display: block;
    width: 200px;
    height: 100px;
    text-align: center;
    border: 1px solid #ccc;

}

.contents-area {
  max-width: 900px;
  margin: 0 auto;
  padding: 2em 1em;
  font-family: 'Segoe UI', sans-serif;
  color: #333;
}

.campaign-banner {
  background: #fff8f0;
  border: 2px solid #ffc8a0;
  padding: 2em;
  border-radius: 10px;
  margin-bottom: 3em;
  text-align: center;
  box-sizing: border-box;
}

.campaign-banner h2 {
  font-size: 1.6em;
  color: #c04500;
  margin-bottom: 1em;
}

.campaign-banner .lead {
  font-size: 1.1em;
  margin-bottom: 1.5em;
  line-height: 1.6;
}

.lead strong {
  color: #d9534f;            /* インパクトのある赤系 */
  font-weight: bold;
  background-color: #fff3cd; /* やわらかい黄色背景でハイライト */
  padding: 0.1em 0.4em;
  border-radius: 4px;
  font-size: 1.05em;         /* 少しだけ大きく */
}

.cta-button a {
  background-color: #ff6b3d;
  color: white;
  padding: 0.8em 2em;
  border-radius: 6px;
  font-weight: bold;
  text-decoration: none;
  font-size: 1em;
  display: inline-block;
  transition: background-color 0.3s;
}

.cta-button a:hover {
  background-color: #e55a2f;
}

.cta-button a i {
  margin-left: 8px;
}

.faq-section {
  margin: 5em 0;
}

.faq-section h2 {
  font-size: 1.5em;
  margin-bottom: 1em;
  display: flex;
  align-items: center;
  gap: 0.5em;
  color: #333;
}

.faq-list {
  max-width: 1000px;
  margin: 0 auto;
}

.faq-list dt,
.faq-list dd {
  max-width: 90%;
  padding: 12px 16px;
  border-radius: 16px;
  position: relative;
  margin-bottom: 20px;
  line-height: 1.6;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  font-size: 1rem;
  display: inline-block;
}

/* 質問 */
.faq-list dt {
  background-color: #e0f0ff;
  color: #333;
  margin-left: 0;
}

/* 質問吹き出しの三角 */
.faq-list dt::after {
  content: "";
  position: absolute;
  top: 10px;
  left: -10px;
  border: 8px solid transparent;
  border-right-color: #e0f0ff;
}

/* 回答 */
.faq-list dd {
  width: max-content;
  background-color: #f1f8e9;
  color: #333;
  margin-left: auto;
  margin-right: 0;
  display: block;
}

/* 回答吹き出しの三角 */
.faq-list dd::after {
  content: "";
  position: absolute;
  top: 10px;
  right: -10px;
  border: 8px solid transparent;
  border-left-color: #f1f8e9;
}

/* アイコン共通 */
.faq-list dt i,
.faq-list dd i {
  margin-right: 8px;
  color: inherit;
}

/* 質問アイコン：青系 */
.faq-list dt i {
  color:  #db7c4d;
}

/* 回答アイコン：緑系 */
.faq-list dd i {
  color: #186ad4; 
}

@media (max-width: 768px) {

.campaign-banner h2 {
  font-size: 1.4em;
  color: #c04500;
  margin-bottom: 1em;
}

  .lead {
    text-align: left;
  }
}


/*運営会社*/
.company {
width: 60%;
margin: 0 auto;
font-size: 14px;
}

.company th,
.company td {
border: 1px solid #ccc;
padding: 10px 20px;
}

.company th {
font-weight: normal;
background-color: #dedede; 
}

/*プライバシー*/
.p_block{
line-height: 2.0em;
font-size: 14px;
width: 100%;
max-width: 800px;
margin: 0 auto;
color: #333;
}

/*コンテンツタイトル*/
.heading-2 {
padding: 0.4em 2em;
border-bottom: 3px solid #4d934d;
background-color: #ffffff;
color: #333333;
width: fit-content;
margin: 0 auto 40px auto;
}

/*エントリーフォーム、新規登録フォーム*/
/* フォーム全体のスタイル */
form {
    background-color: white;
    padding: 20px;
    width: 90%;
    max-width: 600px;
    margin: 0 auto 40px auto;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    text-align: left;
}

/* ラベルのスタイル */
label {
    display: block;
    /*margin-top: 10px;*/
    font-weight: bold;
    color: rgb(55 65 81 / var(--tw-text-opacity, 1));
    font-size: .875rem;
    line-height: 1.25rem;
}

/* 入力欄のスタイル */
input, textarea {
    width: 100%; /* box-sizingが適用されるので、paddingやborder込みで100%に収まる */
    padding: 10px;
    margin-top: 5px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 16px;
}


.radio-2 {
    display: flex;
    flex-wrap: wrap;
    gap: .3em 2em;
    border: none;
}

/* テキストエリアの高さを調整 */
textarea {
    resize: vertical;
    height: 120px;
}

/* 送信ボタンのスタイル */
button {
    background-color: #28a745;
    color: white;
    border: none;
    padding: 10px;
    width: 100%;
    margin-top: 40px;
    border-radius: 5px;
    font-size: 16px;
    cursor: pointer;
}

/*メール再送ボタン*/
.resend{
background-color: #7fa787;
}

/*ログアウトボタン*/
.logout{
background-color: #5d615d
}

/* ホバー時のボタンスタイル */
button:hover {
    background-color: #218838;
}

.text-red-500{
color: #ff0000;
}

.new_crient_bt a{

padding: 14px 20px;
  border: 1px solid #a8a8a8;
  width: 350px;
  margin: 20px auto;
  border-radius: 10px;
  text-align: center;
  font-size: 20px;
  background-color: #44bb3a;
  color: #fff;
  display: block;
}


/* ***********************ここからスマホ用設定**********************************/

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


	#wrapper{
	    	width: 100%;
		margin: 0 auto;
	}

	.sub_area {
	  font-size: 10px;
	  padding: 4px;
	  margin: 0 auto;
	  display: block;
	}

	.logo_l{

		width:100px;

	}

	.main_pc{
		display:none;
	}
	.main_sp{

		display:block;
		width:100%;
	}

	h2{
		font-size: 16px;
		  padding: 1.5rem 0rem;
	}

	.contents_area{
		width:94%;
		margin: 20px auto;
	}

	.footer__navi{

	display: block;

	}

	.login_area{

	    position: absolute;
	top: 20px;
	        right: 10px;
	        padding: 10px;
	}

	.login_area span{
	    display: block;
	    margin: 10px 0 10px 0;
	}

	.login_area .logins a{
		border: 1px solid #ccc;
		padding: 6px 10px;
		border-radius: 10px;
		display: inline;
		font-size: 14px;
		background-color: #fff;
		color: #26a34e;
	}

	.login_area .new a{
	        border: 1px solid #4fab63;
	        padding: 6px 10px;
	        border-radius: 10px;
	        display: inline;
	        /* margin: 0 10px 10px 0; */
	        font-size: 14px;
	        background-color: #4fab63;
	        color: #fff;
	}

	.area_outer{

	    display: block;
	    width: 90%;
	    margin: 0 auto;

	}

	.area_name a{
	    padding: 8px 20px;
	    border: 1px solid #ccc;
	    border-radius: 8px;
	    width: 250px;
	    display: block;
	    margin: 0 auto 10px auto;
	    background-color: #4fab63;
	    color: #fff;
	    font-weight: 500;
	}

	  .md-flex {
	    display: block;
	  }

	  .md-justify-between {
	    justify-content: space-between;
	  }

	  .grid {
	    grid-template-columns: repeat(3, minmax(0, 1fr));
	  }

	/*新規登録*/
	#regist_form{
	        width: 94%;
		margin: 0 auto;
	}

	/*利用規約*/

	.inline_box {
	width: 94%;
	height: 250px;
	}
	.text_head_under{
	width: 94%;
	font-size: 12px;
	text-align: left;
	padding-left: 10px;
	}

	/*プライバシー*/

	/*運営会社*/

	.company {
	width: 94%;
	margin: 0 auto;
	}

	.company tr,
	.company td,
	.company th {display:block;}
	.company th {width:auto;}

}

/* 全体の横幅制限と中央寄せ */
.regions {
  max-width: 750px;
  margin: 40px auto;
  padding: 2em 0.2em;
  font-family: sans-serif;
  text-align: left;
}


/* 地域ブロック */
.region-block {
  margin-bottom: 3em;
}

/* 地域タイトル（下線スタイル） */

.region-title {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 0.5em;
  color: #333;
  border-bottom: 1px solid #aaa;
  padding-bottom: 0.3em;
  display: flex;
  align-items: center;
  gap: 0.5em; /* ← アイコンとテキストの間隔 */
}

.region-title i {
  color: #138a1a; /* ピンの色 */
}


/* 都道府県リンクブロック（折り返し対応） */
.prefecture-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0; /* ← 縦1em、横1.5emの間隔を確保 */
}

/* 都道府県リンクボタン */
.prefecture-links a {
  padding: 0.4em 1em;
  color: #333;
  text-decoration: none;
  border-radius: 4px;
  font-size: 1em;
}

.prefecture-links a:hover {
  background-color: #b8deca;
}


.section-heading {
  text-align: center;
  font-size: 1.8em;
  font-weight: bold;
  color: #c03030;
  margin: 2em 0 1em;
  border-bottom: 2px solid #c03030;
  display: inline-block;
  padding: 0.4em 1em;
}

.section-heading i {
  margin-right: 0.5em;
  color: #e08000;
}


.card-section {
  max-width: 1024px;
  margin: 4em auto;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.card {
  background: #ffffff;
  padding: 20px;
  border-radius: 16px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
  text-align: center;
  transition: box-shadow 0.3s ease;
}

.card:hover {
  box-shadow: 0 6px 12px rgba(0,0,0,0.1);
}

.card i {
  font-size: 28px;
  color: #6366f1;
  margin-bottom: 10px;
  display: block;
}

.card h3 {
  font-size: 16px;
  margin: 10px 0 6px;
  color: #215d31;
  font-weight: bold;
}

.card p {
  font-size: 14px;
  color: #555;
  line-height: 1.4;
  text-align: left;
}

/* PC（1024px以上）で3列 */
@media screen and (min-width: 1024px) {
  .card-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.section-title {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  gap: 12px;
  flex-wrap: nowrap;         /* 折り返し防止 */
  padding: 0 10px;           /* スマホ余白確保 */  
}

.section-title .line {
  width: 30px;            /* ← 長さを固定！ */
  height: 1px;
  background: #ccc;
  flex: none;             /* ← 伸びを止める */
}

.section-title .title-text {
  font-size: 1.6rem;
  font-weight: bold;
  white-space: nowrap;
  color: #1d6b36;
}

/* スマホ画面で文字サイズを小さくする */
@media screen and (max-width: 480px) {
  .section-title .title-text {
    font-size: 1.2rem;
  }

  .section-title {
    gap: 8px;
  }
}

.price-table-section {
  margin: 4rem auto;
  max-width: 1000px;
  padding: 0 1rem;
}

.table-wrapper {
  position: relative; /* ← 必須！ */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.compare-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}

.compare-table th,
.compare-table td {
  border: 1px solid #ddd;
  padding: 12px 16px;
  text-align: center;
  white-space: nowrap;
}

.compare-table th {
  background-color: #f3f4f6;
  font-weight: bold;
  font-size: 0.95rem;
}

.compare-table td:first-child {
  text-align: left;
  font-weight: 500;
  background: #f9fafb;
}

/* ヘッダーのバイトUP列だけ背景色 */
.compare-table th:nth-child(2) {
  background-color: #ffeef0; /* 薄いピンク系 */
  color: #FF5722;
}

/* ボディのバイトUP列だけ背景色 */
.compare-table td:nth-child(2) {
  background-color: #fff5f6; /* 少し薄めのピンク */
  font-weight: bold;
  color: #FF5722;
}

.scroll-hint {
  position: absolute;
  top: 8px;
  left: 12px;
  font-size: 13px;
  color: #555;
  background: rgba(255, 255, 255, 0.95);
  padding: 6px 10px;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
  z-index: 20;
}

.scroll-hint.visible {
  opacity: 1;
}

.scroll-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: flex-start;   /* 👈 横位置を左に */
  padding-left: 24px;            /* 👈 左から少し余白をあける */
  z-index: 30;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
  max-width: 100%;     /* ✅ はみ出し防止その1 */
  box-sizing: border-box; /* ✅ パディング含めて制限 */
}

.scroll-overlay.visible {
  opacity: 1;
  pointer-events: auto;
}

/* ✅ ヒントを画面内の中央に固定する */
.scroll-message {
  position: relative;
  background: #fff;
  color: #5d3008;
  padding: 12px 20px;
  border-radius: 6px;
  font-weight: normal;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  white-space: nowrap;
  font-size: 14px;
}

.voice-section {
  margin: 4em 0;
  padding: 0 1em;
}

.section-title {
  text-align: center;
  font-size: 1.5em;
  margin-bottom: 2em;
}

.section-title .line {
  display: inline-block;
  width: 30px;
  height: 2px;
  background-color: #333;
  margin: 0 10px;
  vertical-align: middle;
}

.card {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1.2em;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.user_image {
  width: 100%;
  height: 180px;
  background-color: #ccc;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  margin-bottom: 1em;
  overflow: hidden; /* 画像のはみ出し防止 */
  display: flex;
  align-items: center;
  justify-content: center;
}

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

.card .user_name {
  font-size: 0.9em;
  color: #666;
  margin-bottom: 0.5em;
}

/* モバイル時のSwiperラッパーに余白を追加 */
@media (max-width: 767px) {
  .voice-swiper {
    padding-left: 8px;
    padding-right: 8px;
  }
}

.price-section {
  padding: 2em 1em;
}

.price-cards {
  display: grid;
  gap: 1em;
  grid-template-columns: repeat(2, 1fr); /* スマホ: 2列 */
}

@media (min-width: 1024px) {
  .price-cards {
    grid-template-columns: repeat(4, 1fr); /* PC: 4列 */
  }
}

.price-card {
  background: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1em;
  text-align: center;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}

.price-card .days {
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 0.3em;
}

.price-card .detail {
  font-size: 0.9em;
  color: #666;
  margin-bottom: 0.5em;
}

.price-card .price {
  font-size: 1em;
  font-weight: bold;
  color: #333;
}

.price-card .free {
  display: block;
  color: #e60033;
  font-size: 0.9em;
  font-weight: bold;
}

.price-card.highlight {
  border-color: #e60033;
  background-color: #fff4f4;
}

.campaign-timer-box {
display: inline-flex;
  flex-wrap: wrap; 
  align-items: center;
  gap: 0.4em;
  font-weight: bold;
  font-size: 1.1em;
  background: #fff8e1;
  padding: 0.6em 1em;
  border: 1px dashed #48371a;
  border-radius: 8px;
  margin-top: 1em;
  white-space: nowrap;
  margin-bottom: 1em;
}

.timer-countdown {
  color: #d9534f;
  font-size: 1.2em;
}

.mobile-only {
  display: none;
}

.timer-label{
  font-size: 14px;
  color: #5b5b5b;
}

@media (max-width: 600px) {
  .mobile-only {
    display: none;
  }

  .campaign-timer-box {
    flex-direction: column;
    gap: 0.2em;
    justify-content: center;
    text-align: center;
  }
}