/*----------------------------------------*/
/* .front-page */
/*----------------------------------------*/

.front-page .container {
	max-width: 1600px;
}

/*----------------------------------------*/
/* .fv */
/*----------------------------------------*/

.front-page .fv {
	position: relative;
}
.front-page .fv .img-wrap {
	height: 600px;
}
.front-page .fv .txt-wrap {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 20px 50px;
}
@media (max-width: 1199px) {
	.front-page .fv .img-wrap {
		height: 550px;
	}
	.front-page .fv .txt-wrap {
		padding: 20px 30px;
	}
}
@media (max-width: 767px) {
	.front-page .fv .img-wrap {
		aspect-ratio: 390 / 352;
		height: auto;
	}
	.front-page .fv .txt-wrap {
		padding: 20px;
	}
	.front-page .fv .txt-wrap img {
		
	}
}

/*----------------------------------------*/
/* 基本, .section */
/*----------------------------------------*/

.front-page .page-body {
	letter-spacing: 0.02em;
	line-height: 2;
}
@media (min-width: 768px) {
	
}
@media (max-width: 767px) {
	.front-page .page-body {
		line-height: 1.8;
	}
	.front-page .page-body .en-title-wrap + P {
		padding: 0 10px;
	}
	
}

/*----------------------------------------*/
/* .news */
/*----------------------------------------*/

/* 基本レイアウト */
.front-page .news {
	background-color: #FAFAFA;
	padding: 60px 0 100px 0;
}
.front-page .news .slider-wrap {
	position: relative;
	overflow: hidden;
}
@media (min-width: 992px) {
	.front-page .news .row-news {
		position: relative;
	}
	.front-page .news .row-news .col-title {
		position: absolute;
		left: 30px;
		top: 10px;
	}
	.front-page .news .row-news .col-slider {
		position: relative;
		padding-left: 440px;
	}
}
@media (max-width: 991px) {
	.front-page .news .slider-wrap {
		margin-left: -10px;
	}
}
@media (max-width: 767px) {
	.front-page .news {
		padding: 50px 0 50px 0;
	}
	.front-page .news .en-title-wrap {
		margin-bottom: 30px;
	}
	.front-page .news .slider-wrap {
		margin: 0 -30px;
	}
}

/* .swiper */
.front-page .news .swiper-wrapper {
	padding: 10px 0;
}
.front-page .news .swiper-wrapper > * {
	display: flex;
	height: auto;
}
.front-page .news .swiper-nav {
	margin-top: 30px;
}
.front-page .news .swiper-button-prev,
.front-page .news .swiper-button-next {
	top: auto;
	margin: 0;
}
@media (min-width: 768px) {
	.front-page .news .swiper-news {
		width: 1360px;
		overflow: hidden;
	}
	.front-page .news .swiper-wrapper {
		padding-left: 10px;
	}
}
@media (min-width: 1680px) {
	.front-page .news .swiper-button-prev {
		top: 45%;
		transform: translateY(-50%);
		margin: 0;
		left: 380px;
	}
	.front-page .news .swiper-button-next {
		top: 45%;
		transform: translateY(-50%);
		margin: 0;
		right: -70px;
	}
}
@media (max-width: 1679px) {
	.front-page .news .swiper-nav {
		position: relative;
		justify-content: center;
		padding: 0 70px;
	}
	.front-page .news .swiper-button-prev,
	.front-page .news .swiper-button-next {
		top: 0;
	}
}
@media (max-width: 767px) {
	.front-page .news .swiper {
		overflow: visible;
		padding: 0;
	}
	.front-page .news .swiper-wrapper {
		padding: 0 0 10px 0;
	}
	.front-page .news .swiper-slide {
		width: calc(100% - 60px);
	}
	.front-page .news .swiper-nav {
		padding: 0 50px;
		margin-top: 20px;
	}
	.front-page .news .swiper-button-prev {
		left: -10px;
	}
	.front-page .news .swiper-button-next {
		right: -10px;
	}
}

/* カルーセル内コンテンツ */
.front-page .news .card-wrap {
	position: relative;
	display: block;
	background-color: #ffffff;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	padding-bottom: 35px;
}
.front-page .news .card-wrap .thum-wrap {
	position: relative;
	aspect-ratio: 8 / 5;
}
.front-page .news .card-wrap .thum-wrap img {
	position: relative;
	z-index: 0;
	transition: 0.3s;
}
.front-page .news .card-wrap .txt-wrap {
	padding: 20px 20px 15px 20px;
}
.front-page .news .card-wrap .txt-wrap .date {
	font-size: var(--font-14);
}
.front-page .news .card-wrap .txt-wrap .title {
	font-size: var(--font-16);
	font-weight: 500;
	line-height: 1.6;
	margin: 5px 0 0 0;
}
.front-page .news .card-wrap .more {
	position: absolute;
	right: 15px;
	bottom: 10px;
	display: flex;
	align-items: center;
	font-size: var(--font-14);
	font-weight: 500;
	color: #747474;
}
.front-page .news .card-wrap .more::after {
	font-family: "Material Symbols Sharp";
	content: "\e941";
	font-size: 20px;
	font-weight: 300;
}
@media (min-width: 768px) {
	.front-page .news .card-wrap:hover .thum-wrap img {
		scale: 1.1;
	}
}
@media (max-width: 767px) {
	
}

/* task */
.front-page .news .card-wrap .thum-wrap .label {
	position: absolute;
	left: 0;
	top: 0;
	font-size: var(--font-14);
	font-weight: 500;
	line-height: 1.4;
	color: #ffffff;
	background-repeat: no-repeat;
	background-position: left 10px center;
	background-size: 16px;
	padding: 5px 10px 5px 30px;
	z-index: 1;
}
.front-page .news .card-wrap .thum-wrap .recruiting {
	background-color: #007AC6;
	background-image: url("../img/common/label-01.png");
}
.front-page .news .card-wrap .thum-wrap .ongoing {
	background-color: #01865B;
	background-image: url("../img/common/label-02.png");
}
.front-page .news .card-wrap .thum-wrap .completed {
	background-color: var(--red);
	background-image: url("../img/common/label-03.png");
}
.front-page .news .card-wrap .thum-wrap .txt {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	font-size: var(--font-24);
	font-weight: 700;
	line-height: 1.4;
	color: #ffffff;
	padding: 20px;
}

/* post */
.front-page .news .card-wrap .thum-wrap .accepting {
	background-color: #007AC6;
	background-image: url("../img/common/label-04.png");
}
.front-page .news .card-wrap .thum-wrap .ended {
	background-color: var(--red);
	background-image: url("../img/common/label-05.png");
}
.front-page .news .card-wrap .thum-wrap .archived {
	background-color: var(--red);
	background-image: url("../img/common/label-03.png");
}
.front-page .news .card-wrap .thum-wrap .activity-report {
	background-color: #01865B;
	background-image: url("../img/common/label-06.png");
}

/*----------------------------------------*/
/* .message */
/*----------------------------------------*/

.front-page .message {
	position: relative;
	background-color: #FAFAFA;
	margin-top:  50px;
	padding: 140px 0 120px 0;
}
.front-page .message .container {
	max-width: 1300px;
}
.front-page .message .img-wrap {
	position: relative;
	content: "";
	background-color: var(--red);
}
.front-page .message .img-wrap img {
	position: relative;
	width: 100%;
	z-index: 1;
}
.front-page .message .img-wrap::after {
	position: absolute;
	content: "";
	width: 65%;
	height: 65%;
	background-color: var(--red);
	z-index: 0;
}
.front-page .message .red-title {
	line-height: 1.6;
	margin-bottom: 30px;
}
.front-page .message .row-wrap .col-txt p {
	line-height: 1.8;
}
.front-page .message .row-name {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-top: 20px; 
}
.front-page .message .row-name .col-mayor {
	padding-right: 1em;
}
.front-page .message .row-name .col-name img {
	mix-blend-mode: multiply;
}
@media (min-width: 768px) {
	.front-page .message .row-wrap {
		display: flex;
		justify-content: space-between;
		margin: 0 -20px;
	}
	.front-page .message .row-wrap > * {
		padding: 0 20px;
	}
	.front-page .message .row-wrap .col-img {
		order: 1;
		width: 240px;
	}
	.front-page .message .row-wrap .col-txt {
		flex: 1;
	}
}
@media (min-width: 992px) {
	.front-page .message .img-wrap {
		position: absolute;
		left: 30px;
		top: 30px;
		width: 200px;
	}
	.front-page .message .img-wrap::after {
		left: -30px;
		top: -30px;
	}
	.front-page .message .inner {
		padding-left: 220px;
	}
}
@media (min-width: 1200px) {
	.front-page .message .img-wrap {
		left: 80px;
		top: 80px;
		width: calc(50vw - 410px);
		max-width: 750px;
	}
	.front-page .message .img-wrap::after {
		left: -80px;
		top: -80px;
	}
	.front-page .message .inner {
		max-width: 810px;
		margin-left: auto;
		padding: 0;
	}
	.front-page .message .row-wrap .col-txt {
		max-width: 595px;
	}
}
@media (max-width: 991px) {
	.front-page .message .img-wrap {
		display: none;
	}
}
@media (max-width: 767px) {
	.front-page .message {
		padding: 100px 0;
	}
	.front-page .message .container {
		padding: 0 30px;
	}
	.front-page .message .row-wrap .col-img {
		text-align: center;
		margin-bottom: 30px;
	}
	.front-page .message .red-title {
		text-align: center;
		margin-bottom: 20px;
	}
}

/*----------------------------------------*/
/* .aboutus */
/*----------------------------------------*/

.front-page .aboutus {
	padding: 160px 0 160px 0;
}
.front-page .aboutus .inner {
	max-width: 1000px;
	margin: 0 auto;
}
.front-page .aboutus .img-wrap {
	margin-top: 40px;
}
.front-page .aboutus .img-wrap + p {
	font-size: var(--font-14);
	margin: 10px 0 0 0;
}
@media (min-width: 768px) {
	.front-page .aboutus .img-wrap a {}
}
@media (max-width: 767px) {
	.front-page .aboutus {
		padding: 100px 0 65px 0;
	}
	.front-page .aboutus .img-wrap {
		margin: 40px -10px 0 -10px;
	}
	.front-page .aboutus .img-wrap + p {
		margin: 10px -10px 0 -10px;
	}
}

/*----------------------------------------*/
/* .three */
/*----------------------------------------*/

.front-page .three .col-wrap a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background-color: var(--basic);
	padding: 20px;
	min-height: 470px;
}
.front-page .three .col-wrap a::after {
	position: absolute;
	right: 30px;
	bottom: 30px;
	font-family: "Material Symbols Sharp";
	content: "\e941";
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--red);
	color: #ffffff;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	font-size: 20px;
	font-weight: 300;
}
.front-page .three .col-wrap a .img-wrap {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
.front-page .three .col-wrap a .img-wrap img {
	transition: 0.3s;
}
.front-page .three .col-wrap a .txt-wrap {
	position: relative;
	color: #ffffff;
	font-size: var(--font-15);
	font-weight: 700;
	z-index: 1;
}
.front-page .three .col-wrap a .txt-wrap .en {
	margin-bottom: 5px;
}
@media (min-width: 768px) {
	.front-page .three .row-wrap {
		display: flex;
	}
	.front-page .three .row-wrap > * {
		width: 33.33%;
	}
	.front-page .three .col-wrap a:hover .img-wrap img {
		scale: 1.1;
	}
}
@media (max-width: 767px) {
	.front-page .three .col-wrap a {
		min-height: 200px;
		font-size: 
	}
	.front-page .three .col-wrap a::after {
		right: 15px;
		bottom: 15px;
	}
	.front-page .three .col-wrap a .txt-wrap {
		font-size: var(--font-14);
	}
}

/*----------------------------------------*/
/* .proposal */
/*----------------------------------------*/

.front-page .proposal {
	position: relative;
	background-color: var(--red);
	background-image: url("../img/common/bg-din.png");
	background-position: center;
	padding: 80px 0 0 0;
}
.front-page .proposal::after {
	position: absolute;
	left: 0;
	bottom: -1px;
	content: "";
	clip-path: polygon(0% 99%, 100% 0%, 100% 100%, 0% 100%);
	background-color: #ffffff;
	aspect-ratio: 1920 / 140;
	width: 100%;
}
.front-page .proposal .container {
	max-width: 1260px;
}
.front-page .proposal .section-title {
	margin-bottom: 40px;
}
.front-page .proposal .row {
	margin: 0 -12px;
}
.front-page .proposal .row > * {
	display: flex;
	padding: 0 12px;
}
.front-page .proposal .row dl {
	background-color: #ffffff;
	width: 100%;
	line-height: 1.8;
}
.front-page .proposal .row dl dd p,
.front-page .proposal .row dl dd a {
	position: relative;
	z-index: 1;
}
.front-page .proposal .row dl dd .line-grad::after {
	top: 0;
	transform: translateX(-70%);
	width: 120px;
}
.front-page .proposal .row dl dd .line-title {
	margin: 0 0 15px 0;
}
.front-page .proposal .row dl dd .btn {
	min-width: auto;
	width: 100%;
	max-width: 310px;
	margin-top: 30px;
}
@media (min-width: 768px) {
	.front-page .proposal .row dl {
		display: flex;
		align-items: center;
		padding: 60px 45px;
	}
	.front-page .proposal .row dl dt {
		position: relative;
		width: 136px;
		z-index: 1;
	}
	.front-page .proposal .row dl dd {
		flex: 1;
		padding-left: 30px;
	}
	.front-page .proposal .row dl dd .line-title {
		margin-left: 30px;
	}
}
@media (max-width: 1199px) {
	.front-page .proposal {
		padding-bottom: 80px;
	}
	.front-page .proposal .row > * + * {
		margin-top: 20px;
	}
}
@media (max-width: 767px) {
	.front-page .proposal {
		padding: 55px 0 80px 0;
	}
	.front-page .proposal .container {
		padding: 0 20px;
	}
	.front-page .proposal .section-title {
		margin-bottom: 30px;
	}
	.front-page .proposal .row dl {
		overflow: hidden;
		padding: 30px 20px;
	}
	.front-page .proposal .row dl dt {
		width: 100px;
		margin: 0 auto;
	}
	.front-page .proposal .row dl dd .line-grad {
		width: fit-content;
		margin: 0 auto;
	}
	.front-page .proposal .row dl dd .line-grad::after {
		left: 10px;
		width: 65px;
	}
	.front-page .proposal .row dl dd .line-title {
		width: fit-content;
		font-size: var(--font-22);
		margin: 30px auto 15px auto;
		padding-left: 30px;
	}
	.front-page .proposal .row dl dd .line-title::after {
		left: 0;
	}
	.front-page .proposal .row dl dd .btn {
		margin: 30px auto 0 auto;
	}
}

/*----------------------------------------*/
/* .task */
/*----------------------------------------*/

.front-page .task {
	padding: 80px 0;
}
.front-page .task .container {
	max-width: 1100px;
}
.front-page .task .line-grad,
.front-page .complete .line-grad,
.front-page .topics .line-grad {
	margin-left: 30px;
}
@media (max-width: 767px) {
	.front-page .task {
		padding: 100px 0 80px 0;
	}
	.front-page .task .line-grad,
	.front-page .complete .line-grad,
	.front-page .topics .line-grad {
		margin-left: 0;
	}
}

/*----------------------------------------*/
/* .complete */
/*----------------------------------------*/

.front-page .complete {
	background-color: #FAFAFA;
	padding: 80px 0 160px 0;
}
.front-page .complete .container {
	max-width: 1100px;
}
@media (max-width: 767px) {
	.front-page .complete {
		padding: 80px 0 80px 0;
	}
}

/*----------------------------------------*/
/* .topics */
/*----------------------------------------*/

.front-page .topics {
	padding: 120px 0 160px 0;
}
.front-page .topics .container {
	max-width: 1100px;
}
.front-page .topics .btn {
	margin: 50px auto 0 auto;
}
@media (max-width: 767px) {
	.front-page .topics {
		padding: 100px 0;
	}
}

/*----------------------------------------*/
/* .landscape */
/*----------------------------------------*/

.front-page .landscape {
	overflow: hidden;
}
.front-page .swiper-landscape .swiper-slide {
	aspect-ratio: 1 / 1; /* 正方形 */
	overflow: hidden;
}
.front-page .swiper-landscape .swiper-slide img {
	object-fit: cover;
	object-position: 50% 50%;
	width: 100%;
	height: 100%;
}
.front-page .swiper-landscape .swiper-pagination-bullet {
	border: 1px solid var(--red);
	color: var(--red);
}
.front-page .swiper-landscape .swiper-pagination-bullet-active {
	background-color: var(--red);
	color: #ffffff;
}
.front-page .swiper-landscape .swiper-controls > * {
	border: 1px solid var(--red);
	color: var(--red);
}
@media (min-width: 768px) {
	.front-page .swiper-landscape .swiper-nav {
		position: absolute;
		right: 30px;
		bottom: 20px;
	}
	.front-page .swiper-landscape .swiper-pagination-bullet:hover {
		background-color: var(--red);
		color: #ffffff;
	}
	.front-page .swiper-landscape .swiper-controls > *:hover {
		background-color: var(--red);
		color: #ffffff;
	}
}
@media (max-width: 767px) {
	.landscape-wrap {
		width: 80%;
		margin: 0 auto;
		overflow: visible;
	}
	.swiper-landscape {
		overflow: visible !important;
	}
	.swiper-landscape .swiper-wrapper {
		overflow: visible;
	}
	.front-page .swiper-landscape .swiper-nav {
		width: fit-content;
		margin: 15px auto 0 auto;
	}
}

/*----------------------------------------*/
/* .cfa */
/*----------------------------------------*/

.front-page .cfa {
	position: relative;
	padding: 120px 0 80px;
	margin-bottom: 80px;
}
.front-page .cfa > * {
	position: relative;
	z-index: 1;
}
.front-page .cfa .bg-img {
	position: absolute;
	z-index: 0;
}
.front-page .cfa .bg-img::after {
	position: absolute;
	content: "";
	background-color: #ffffff;
}
.front-page .cfa .bg-img img {
	object-position: 0% 100%;
}
.front-page .cfa .btn {
	margin-top: 50px;
}
@media (min-width: 768px) {
	.front-page .cfa .bg-img {
		top: 0;
		left: calc(50% - 40px);
		width: calc(50% + 40px);
		height: 100%;
	}
	.front-page .cfa .bg-img::after {
		left: -1px;
		bottom: 0;
		clip-path: polygon(0% 0%, 100% 0%, 1% 100%, 0% 100%);
		aspect-ratio: 425 / 650;
		height: 100%;
	}
	.front-page .cfa .row-cfa {
		display: flex;
	}
	.front-page .cfa .col-txt {
		width: calc(50% - 40px);
		padding-right: 30px;
	}
	.front-page .cfa .col-txt P {
		max-width: 630px;
	}
	.front-page .cfa .col-img {
		aspect-ratio: 79 / 45;
		width: calc(50% + 40px);
	}
}
@media (max-width: 767px) {
	.front-page .cfa {
		padding: 80px 0 55px 0;
		margin-bottom: 50px;
	}
	.front-page .cfa .col-img {
		margin: 95px -10px 0 -10px;
	}
	.front-page .cfa .bg-img {
		left: 0;
		bottom: 0;
		aspect-ratio: 390 / 340;
		width: 100%;
	}
	.front-page .cfa .bg-img::after {
		left: 0;
		top: -1px;
		clip-path: polygon(0% 0%, 100% 0%, 100% 1%, 0% 100%);
		aspect-ratio: 390 / 255;
		width: 100%;
	}
	.front-page .cfa .btn {
		margin: 30px auto 0 auto;
	}
}

/*----------------------------------------*/
/* .cfa-partner */
/*----------------------------------------*/

.front-page .cfa-partner {
	padding-top: 80px;
}
.front-page .cfa-partner .title-wrap {
	margin-bottom: 60px;
}
.front-page .cfa-partner .thum-wrap .txt {
	line-height: 1.6;
	margin-top: 20px;
}
.front-page .cfa-partner .thum-wrap .txt p {
	color: #747474;
	margin: 5px 0 0 0;
}
.front-page .cfa-partner .btn {
	margin: 50px auto 0 auto;
}
@media (min-width: 768px) {
	.front-page .cfa-partner .swiper-wrap {
		position: relative;
	}
	.front-page .cfa-partner .swiper-button-prev {
		left: -70px;
	}
	.front-page .cfa-partner .swiper-button-next {
		right: -70px;
	}
}

/* PCはSwiperが幅を計算するので指定不要 */

@media (max-width: 767px) {
  .swiper-partner .swiper-slide {
	width: 80%; /* ← 例：画面の80%幅にして左右を見切れさせる */
  }
}

/*----------------------------------------*/
/* .cfa-staff */
/*----------------------------------------*/

.front-page .cfa-staff {
	padding-bottom: 160px;
}
.front-page .cfa-staff .thum-wrap .txt p {
	border-top: 1px solid #E3E3E3;
	padding-top: 10px;
}




