/* --- レスポンシブ調整 (760px以下) --- */
@media (max-width: 760px) {

	.container {
		padding: 0;
	}

	/* 1. PC用を隠し、スマホ用(sp-only)を確実に表示する */
	.pc-only {
		display: none !important;
	}

	.sp-only {
		display: flex !important;
	}


	.header {
		height: 70px !important;
		z-index: 9999;
		position: relative;
	}

	.header__inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		height: 70px !important;
		padding: 0 !important;
	}

	/* 3. 左側（ロゴ）の調整 */
	.header__left {
		flex: 0 1 auto;
		padding: 0 10px !important;
		height: 70px;
		display: flex;
		align-items: center;
	}

	.header__bottom {
		align-items: center;
	}

	.header__logo {
		padding-right: 40px;
		padding-bottom: 0;
	}

	.header__logo .logo-img {
		width: auto;
		margin-bottom: 0;
	}

	/* 4. 右側（青いメニューボタン）の調整 */
	.header__right {
		display: flex;
		height: 70px !important;
		flex-shrink: 0;
		justify-content: flex-end;
		width: auto !important;
	}

	/* 以下、PC用の要素を隠す設定 */
	.header__top,
	.header__nav,
	.header__subnav {
		display: none !important;
	}

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

	/**************************************
      				採用情報
  **************************************/
	.section-title {
		text-align: center;
	}

	.recruit {
		padding: 40px 0;
	}

	.recruit-wrapper {
		flex-direction: column;
	}

	.recruit-content,
	.recruit-image {
		width: 100%;
		margin-left: 0;
	}

	.recruit-card {
		padding: 20px 20px 80px 20px;
	}

	.recruit-links {
		flex-direction: column;
		gap: 15px;
	}

	.recruit-links .btn-group .label {
		display: block;
		text-align: center;
		font-size: 16px !important;
	}

	.btn-white {
		max-width: 220px;
		width: 100%;
		margin: 0 auto 15px auto;
	}

	.btn-white:last-child {
		margin-bottom: 0;
	}

	.btn-group {
		width: 100%;
	}

	.line-area {
		width: 100%;
		display: flex;
	}

	.line-area p {
		margin-right: 10px;
		font-size: 15px;
	}

	.line-btn {
		margin-top: 0;
	}

	.recruit-wrapper .img-placeholder {
		display: block !important;
		width: 75%;
		margin: -50px auto 0 auto;
		position: relative;
		z-index: 99;
	}



	/**************************************
     				お知らせ
**************************************/
	.news-flex-container {
		flex-wrap: wrap;
	}

	.news-list-container {
		padding: 0 20px;
	}

	.news-title-area {
		display: block;
		text-align: center;
	}

	.news-left {
		width: 100%;
	}

	.news-right {
		width: 100%;
	}

	.section-title-en {
		font-size: 40px;
		text-align: center;
	}

	.section-title-jp {
		font-size: 18px;
		text-align: center;
	}

	.news-list li a {
		flex-direction: column;
		align-items: flex-start;
		padding: 15px 5px;
	}

	.news-date {
		margin-right: 0;
		margin-bottom: 5px;
		font-size: 14px;
	}

	.news-text {
		white-space: normal;
		/* 折り返しを許可 */
		font-size: 15px;
		line-height: 1.5;
	}

	.btn-news-list {
		margin: 30px auto 0 auto;
	}

	/**************************************
       				事業内容
  **************************************/

	.service-flex-container {
		flex-wrap: wrap;
	}

	.service-left {
		width: 100%;
	}

	.service-right {
		width: 100%;
	}

	.service-flex-container {
		padding: 0 20px;
	}

	.service-description {
		margin-bottom: 20px;
	}

	.service-description p {
		font-size: 16px;
	}

	.service-right {
		flex-direction: column;
		gap: 15px;
	}

	.service-btn {
		max-width: 225px;
		width: 100%;
	}

	.service-img {
		aspect-ratio: 16 / 9;
		/* スマホでは横長の方が見やすい */
	}

	/* --- CONTACT セクション --- */

	.contact {
		background: url('../images/common/contact_bg_sp.png') no-repeat center center;
		background-size: cover;
		padding: 35px 0;
	}

	.contact-inner {
		padding: 0 20px;
	}

	.contact-info-content {
		flex-wrap: wrap;
		gap: 15px;
	}

	.contact-title-en {
		font-size: 36px;
	}

	.contact-tel-fax {
		width: 100%;
	}

	.contact-tel-fax p {
		font-size: 28px;
		text-align: center;
	}

	.contact-mail {
		max-width: 100%;
	}

	.btn-mail {
		padding: 25px 0;
		font-size: 18px;
	}

	/* --- FOOTER セクション --- */

	.footer {
		padding-top: 15px;
	}

	.footer-upper {
		max-width: 100%;
		flex-wrap: wrap;
		padding: 0 20px 15px;
		text-align: center;
	}

	.footer-info {
		width: 100%;
		margin-bottom: 0;
	}

	.footer-address {
		margin-bottom: 0;
	}

	.footer-nav {
		display: none;
		width: 100%;
		flex-direction: column;
		gap: 20px;
	}

	.footer-sub-links {
		display: none;
	}

	/**************************************
						次階層
**************************************/
	.photo_box .photo_col {
		width: 100%;
		margin-right: 0;
		margin-bottom: 20px;
	}

	.next_menu ul li a {
		padding: 15px 7px;
		font-size: 13px;
	}

	.sp-philosophy {
		flex-wrap: wrap;
		background-color: #ffffd4;
		padding: 20px;
	}

	.philosophy-section {
		background-size: contain;
		padding: 30px 15px 31% 15px;
		font-size: 14px;
	}

	.about_header .philosophy-section {
		background-size: contain;
		padding: 30px 15px 31% 15px;
		font-size: 14px;
	}

	.about_header .philosophy-section {
		width: 100%;
		background-image: url("/company/images/company_about_header_sp.png");
		background-repeat: no-repeat;
		background-position: center top;
		background-size: cover;
	}

	.philosophy-title {
		font-size: 28px;
		margin-bottom: 25px;
	}

	.philosophy-list {
		font-size: 14px;
	}

	#next p {
		display: block;
		font-size: 14px;
	}

	.indent2 {
		margin-left: .5em;
	}

	.next_header h1 {
		width: 100%;
		padding: 0 15px;
		font-size: 30px;
	}

	.next_header h1 span {
		font-size: 18px;
	}

	.line_box p.line_title {
		width: 100%;
	}

	.description {
		font-size: 16px;
	}

	.line-registration-container {
		flex-direction: column;
		align-items: center;
	}

	.registration-item {
		margin-bottom: 0;
		width: 100%;
	}

	.next_inner {
		padding: 20px;
	}

	.btn_style1 a {
		font-size: 20px;
	}

	.btn_style1 a:after {
		position: initial;
		transform: initial;
		display: inline-block;
		vertical-align: middle;
		line-height: 1;
		padding-left: 15px;
	}

	.next_inner h3 {
		font-size: 24px;
	}

	.next_inner_white {
		padding: 10px;
	}

	.photo_box .photo_col p.title {
		font-size: 18px !important;
	}

	/**************************************
							会社案内
	**************************************/
	.photo_box .photo_col {
		padding: 15px;
	}

	.greeting_box {
		flex-wrap: wrap;
		gap: 20px;
	}

	.greeting_ph {
		width: 100%;
		margin: 0;
		order: 2;
	}

	.greeting_ph img {
		max-width: 60%;
		margin: 0 auto;
		display: block;
	}

	.greeting_text {
		width: 100%;
		order: 1;
	}


	.about_box {
		flex-wrap: wrap;
		gap: 20px;
	}

	.about_text {
		margin: 0;
		padding-top: 0;
		width: 100%;
	}

	.about_ph {
		width: 100%;
	}

	.about_ph img {
		max-width: 60%;
		margin: 0 auto;
		display: block;
	}

	.history-table {
		font-size: 12px;
		min-width: auto;
	}

	.history-table span.small_txt {
		margin-left: 0;
		font-size: 12px;
	}

	.history-table th {
		font-size: 12px;
	}

	.history-table td {
		font-size: 12px;
	}

	/* テーブル全体の囲み（横スクロール対応） */
	.history-table-wrapper {
		width: 100%;
		overflow-x: auto;
		margin: 5px 0;
	}

	/* 2列目（月日）の幅固定 */
	.history-table td:nth-child(2) {
		white-space: wrap;
	}

	.sikaku_box {
		flex-wrap: wrap;
		gap: 20px;
	}

	.sikaku_col {
		width: 100%;
		margin: 0;
	}

	.sikaku_col_long {
		flex-wrap: wrap;
		width: 100%;
	}

	.sikaku_col_long_inner {
		flex-wrap: wrap;
		width: 100%;
	}

	.col_long_sec {
		width: 100%;
	}

	.history_section img {
		width: 40%;
		margin: 0 auto;
		display: block;
	}

	.dl_btn a {
		font-size: 19px;
		padding: 15px 10px;
	}

	.dl_btn a:after {
		position: static;
		transform: initial;
		display: inline-block;
		vertical-align: middle;
		line-height: 1;
		padding-left: 15px;
	}

	.access_section p {
		font-size: 14px;
	}

	.achivements_title:after {
		position: initial;
		display: block;
		margin-top: 15px;
		text-align: center;
	}

	.list_box {
		padding: 0 .5em;
		gap: 10px;
	}

	.list_box p {
		width: calc(100% / 2 - 5px);
		font-size: 12px;
	}





	.number_table {
		max-width: 100%;
	}

	.number_table th {
		width: 40%;
		font-size: 15px;
		padding: 10px 5px;
	}

	.number_table td {
		width: 60%;
		font-size: 15px;
		padding: 10px 5px;
	}

	.number_table td span {
		font-size: 18px;
	}


	.number_table td span.large {
		font-size: 20px;
	}


	/**************************************
						採用情報
**************************************/

	.recruit_section {
		padding: 15px 15px 65px 15px;
	}

	.recruit_box {
		flex-wrap: wrap;
	}

	.recruit_left {
		flex: 0 0 100%;
		margin-right: 0;
		margin-bottom: 30px;
	}

	.recruit_box2 {
		flex-wrap: wrap;
	}

	.recruit_left2 {
		flex: 1;
		margin-right: 0;
		margin-bottom: 30px;
	}

	.recruit_right2 {
		flex: 0 0 100%;
	}

	.recruit_left .hibarai {
		margin-top: 20px;
	}

	.recruit_left .hibarai p {
		text-align: center;
	}

	#next .recruit_section p.keibi {
		display: flex !important;
	}

	#next .recruit_section p.keibi span {
		display: block;
		font-size: 26px !important;
	}

	#next .recruit_section p.keibi {
		font-size: 14px !important;
	}

	.label li {
		font-size: 18px !important;
	}

	.recruit_img {
		margin: 0 auto !important;
		text-align: center;
	}

	.recruit_img img {
		display: block;
		margin: 0 auto;
	}

	#next .wages p {
		text-align: left;
	}

	.welfare_title {
		font-size: 18px !important;
	}

	.recruit_section table td p.recruit_entry_btn:after {
		content: "";
		display: block;
		clear: both;
	}

	.recruit_section table td p.recruit_entry_btn a:before {
		float: left;
	}

	.recruit_section table td p.recruit_entry_btn a {
		font-size: 16px !important;
	}

	.recruit_section table td p.recruit_line a {
		font-size: 16px !important;
	}

	.recruit_section table td p.recruit_tel span {
		font-size: 19px;
	}

	.recruit_section table th {
		width: 22%;
		font-size: 14px;
		padding: 10px 8px;
	}

	.recruit_section table td {
		padding-left: 25px !important;
		font-size: 14px;
	}

	.welfare_detail ul.disc {
		flex-wrap: wrap;
	}

	.welfare_detail ul.disc li {
		width: 100% !important;
	}

}


@media (min-width: 761px) {
	.sp-only {
		display: none !important;
	}
}

@media (min-width: 971px) {
	.drawer-nav {
		display: none !important;
	}

	.drawer-hamburger {
		display: none !important;
	}
}


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

	header {
		z-index: 9999;
		position: relative;
	}

	.header__nav {
		display: none;
	}

	.header__subnav {
		display: none;
	}

	/* --- ドロワーメニュー内 (添付画像デザイン再現) --- */
	/* --- ドロワーメニュー内 (最新修正版) --- */
	.drawer-nav {
		background-color: #ffffd4 !important;
		padding-top: 20px;
	}

	/* 1. 親項目の背景色と縞々デザイン */
	.drawer-menu li {
		border-bottom: 1px solid #515151;
	}

	/* 偶数番目を薄い黄色に */
	.drawer-menu li.drawer-dropdown:nth-of-type(even),
	.drawer-menu li:nth-child(even) {
		background-color: #ffffd4;
	}

	.drawer-menu-item,
	.drawer-brand a {
		padding: 15px !important;
		text-decoration: none;
		display: block;
		position: relative;
	}

	/* 英語部分（青文字） */
	.drawer-menu-item,
	.drawer-brand a {
		color: #1c529b !important;
		font-weight: bold;
		font-size: 11px;
		line-height: 1.2;
	}

	/* 日本語部分（黒文字） */
	.drawer-menu-item span,
	.drawer-brand span {
		display: block;
		color: #000 !important;
		font-size: 18px;
		margin-top: 4px;
	}

	/* 右側の矢印（三角形） */
	.drawer-caret {
		position: absolute;
		right: 20px;
		top: 20px;
	}

	/* 2. アコーディオン子要素（グレー背景） */
	.drawer-dropdown-menu {
		background-color: #f7f7f7 !important;
		padding: 0;
		margin: 0;
	}

	.drawer-dropdown-menu li {
		background-color: transparent !important;
		border-bottom: 1px dashed #515151 !important;
	}

	.drawer-dropdown-menu li:last-child {
		border-bottom: none !important;
	}

	.drawer-dropdown-menu li a {
		padding: 15px 25px !important;
		font-size: 15px !important;
		color: #333 !important;
		font-weight: bold;
		display: flex;
		align-items: center;
		text-decoration: none;
	}

	/* 子要素の青い「>」 */
	.drawer-dropdown-menu li a::before {
		content: url("../images/common/nav_arw.svg");
		display: inline-block;
		margin-right: 12px;
		vertical-align: baseline;
		line-height: 1;
	}

	/* 3. お問い合わせ・LINEボタン (アイコンの右にテキスト) */
	.drawer-menu-btns {
		display: flex;
		padding: 25px 10px !important;
		gap: 8px;
		background-color: transparent !important;
		border: none !important;
	}

	.drawer-btn-mail,
	.drawer-btn-line {
		flex: 1;
		display: flex !important;
		flex-direction: row !important;
		/* 横並びを強制 */
		align-items: center;
		justify-content: center;
		padding: 12px 2px !important;
		border-radius: 6px;
		color: #000000 !important;
		font-weight: bold;
		font-size: 14px;
		/* 収まりを良くするため少し調整 */
		text-decoration: none;
		white-space: nowrap;
	}

	.drawer-btn-mail span,
	.drawer-btn-line span {
		margin-right: 7px;
	}

	/* アイコン画像の設定 */
	.drawer-btn-mail img,
	.drawer-btn-line img {
		/* デザインに合わせたサイズ */
		height: auto;
		/* アイコン右側の余白 */
		display: block;
	}

	/* プライバシーポリシー */
	.drawer-menu-item.no-sub {
		font-size: 15px !important;
		color: #333 !important;
		padding: 15px 20px !important;
	}

	.drawer-menu-item.no-sub:before {
		content: url("../images/common/nav_arw.svg");
		display: inline-block;
		margin-right: 12px;
		vertical-align: baseline;
		line-height: 1;
	}


	/* トップページ　リクルート */
	.section-title {
		text-align: center;
	}

	.recruit {
		padding: 40px 0;
	}

	.recruit-wrapper {
		flex-direction: column;
	}

	.recruit-content,
	.recruit-image {
		width: 100%;
		margin-left: 0;
	}

	.recruit-card {
		padding: 20px 20px 80px 20px;
	}

	.recruit-links {
		flex-direction: column;
		gap: 15px;
	}

	.recruit-links .btn-group .label {
		display: block;
		text-align: center;
		font-size: 16px !important;
	}

	.btn-white {
		max-width: 220px;
		width: 100%;
		margin: 0 auto 15px auto;
	}

	.btn-white:last-child {
		margin-bottom: 0;
	}

	.btn-group {
		width: 100%;
	}

	.line-area {
		width: 100%;
		display: flex;
		justify-content: center;
	}

	.line-area p {
		margin-right: 10px;
		font-size: 15px;
	}

	.line-btn {
		margin-top: 0;
	}

	.recruit-wrapper .img-placeholder {
		display: block !important;
		width: 75%;
		margin: -50px auto 0 auto;
		position: relative;
		z-index: 99;
	}



	#next .recruit_section p.lead_title {
		font-size: 26px !important;
	}

	#next .recruit_section p.keibi {
		font-size: 16px;
	}

	#next .recruit_section p.keibi span {
		font-size: 34px;
	}

	#next .recruit_section p.lead_title span.small {
		font-size: 21px;
	}

	#next .wages p {
		font-size: 18px;
	}


}


@media screen and (min-width: 761px) and (max-width: 1180px) {

	.header__nav a {
		font-size: 13px;
		padding: 0 20px;
	}

	.header__right {
		width: auto;
	}

	.btn {
		width: 110px;
	}
}




@media screen and (max-width: 1100px) {
	#next .recruit_section p.large {
		font-size: 18px !important;
	}

	#next .recruit_section p.lead_title {
		font-size: 32px;
	}

	#next .recruit_section p.lead_title2 {
		font-size: 21px !important;
	}

	#next .recruit_section p.keibi {
		font-size: 18px;
	}

	#next .recruit_section p.keibi span {
		font-size: 40px;
	}

	#next .recruit_section p.lead_title span.small {
		font-size: 30px;
	}

	#next .wages p {
		font-size: 20px;
	}

}