@charset "utf-8";
/* CSS Document */
/*====================
header
=============================================*/
.logo a{
	display: flex;
	align-items: center;
	flex-direction: column;
	gap:20px;
	margin-bottom: 40px;
}
.logomark{
	width: 60px;
	object-fit: contain;
}
.logotxt{
	width: 100%;
	max-width: 210px;
	margin: 0 auto;
	object-fit: contain;
	object-position: center;
}

.global-nav li{
	position: relative;
	padding-left: 20px;
	margin-bottom: 10px;
}
.global-nav li a{
	font-size: 16px;
	display: block;
	width: 100%;
}
.global-nav li::before{
	position: absolute;
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border:2px solid #8bc53f;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
.global-nav li:hover::before{
	background: #8bc53f;
	transition: background .4s;
}
.global-nav li a{
	display:inline-block;
	position:relative;
	color:#333;
	text-decoration:none;
}

/* 下線 */
.global-nav li a::after{
	content:"";
	position:absolute;
	left:0;
	bottom:-4px;
	width:100%;
	height:1px;
	background:#8bc53f;

	transform:scaleX(0);
	transform-origin:left center;
	transition:transform .4s ease;
}

/* hover */
.global-nav li:hover a::after{
	transform:scaleX(1);
}

.header-info{
	font-size: 13px;
}

.cname{
	font-size: 18px;
	font-weight: 600;
}
.tel-box{
	text-align: center;
	margin: 10px auto;
}
.tel-box a{
	font-size: 24px;
	color: #8bc53f;
	font-weight: 600;
}
.tel-box a span{
	font-size: 16px;
}
.note{
	font-size: 12px;
}

.contact-btn a{
	position: relative;
	overflow: hidden;

	display:flex;
	align-items:center;
	gap:10px;

	padding:8px 20px;
	background:#235429;
	border:2px solid #235429;

	font-size:18px;
	font-weight:600;
	color:#fff;

	transition:color .4s;
	z-index:1;
}

.contact-btn a .icon{
	width: 28px;
	font-size: 20px;
	object-fit: contain;
	display: flex;
}
.contact-btn a::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:0;
	height:100%;

	background:#fff;
	transition:width .4s ease;
	z-index:-1;
}

/* Hover */
.contact-btn a:hover{
	color:#235429;
}

.contact-btn a:hover::before{
	width:100%;
}

/*body.scrolled */
body.scrolled .header-inner {
    padding: 60px 18px;
}
body.scrolled .contact-btn a{
	padding:8px 15px;	
}
body.scrolled .tel-box a {
    font-size: 22px;
}
/*====================
fv
=============================================*/
.fv{
	position:relative;
	height:100vh;
	overflow:hidden;
	padding: 0;
}

.fv-slider,
.fv-slider .slick-list,
.fv-slider .slick-track,
.fv-slide{
	height:100%;
}

.fv-slide{
	position:relative;
}

.fv-slide img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

/* キャッチ */
.fv-copy{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	z-index:10;
	width:min(60vw,900px);
}

.fv-copy img{
	width:100%;
	height:auto;
	display:block;
}

/* 左グリーン */
.shape-left{
	position:absolute;
	top:0;
	left:0;
	width:20%;
	height:70%;
	background:rgba(55,100,50,.60);
	clip-path:polygon(0 0,100% 0,0 100%,0 100%);
	z-index:5;
}

/* 右グリーン */
.shape-right{
	position:absolute;
	bottom:0;
	right:0;
	width:20%;
	height:70%;
	background:rgba(55,100,50,.60);
	clip-path:polygon(100% 0,100% 0,100% 100%,0 100%);
	z-index:5;
}

/*===top-info======================*/
.top-info{
	padding: 20px 0;
/*	background:#235429;
	color:#fff;*/
	background:#fff;
border-top:1px solid rgba(35,84,41,.1);
border-bottom:1px solid rgba(35,84,41,.1);
	color: #235429;
}

.top-info__inner{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	max-width:1400px;
	margin:auto;
}

.top-info__item{
	padding:35px 20px;
	text-align:center;
	position:relative;
}

.top-info__item:not(:last-child)::after{
	content:"";
	position:absolute;
	right:0;
	top:50%;
	transform:translateY(-50%);
	width:1px;
	height:40px;
	background:rgba(255,255,255,.25);
}

.top-info__label{
	display:block;
	font-size:.8rem;
	letter-spacing:.15em;
	text-transform:uppercase;
	opacity:.7;
	margin-bottom:8px;
}

.top-info__item strong{
	font-size:1.3rem;
	font-weight:700;
}


/*===Greeting======================*/
.greeting {
    padding: 120px 0;
    background: #f8f8f6;
    overflow: hidden;
}

.greeting__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    display: flex;
    gap: 40px;
}

.greeting__side {
    flex-shrink: 0;
    display: flex;
    align-items: center;
	flex-direction: column;
}

.greeting__side span {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: clamp(1.5rem, -7.955rem + 14.77vw, 3.125rem);
    font-weight: 700;
    color: rgba(35, 84, 41, 0.35);
    letter-spacing: 0.05em;
}

.greeting__content {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
	flex-wrap: wrap;
    gap: 80px;
}

.greeting__text {
    max-width: 650px;
	min-width: 450px;
	flex: 5;
}

.greeting__logo {
    margin-bottom: 30px;
}

.greeting__logo img {
    width: clamp(30px,3.5vw,60px);
}

.greeting__title {
    font-size:clamp(1.563rem, 0.618rem + 1.84vw, 2rem);
    line-height: 1.4;
    font-weight: 700;
    color: #235429;
    margin-bottom: 40px;
}

.greeting__text p {
    font-size: 1.125rem;
    line-height: 2;
    color: #333;
    margin-bottom: 18px;
}

.greeting__image {
	flex: 4
}

.greeting__image-circle {
    position: relative;
    max-width: 420px;
    max-height: 420px;
	width: 100%;
	min-width: 320px;
	min-height: 320px;
	aspect-ratio: 1 / 1;
}

.greeting__image-circle::before {
    content: "";

    position: absolute;

    width: 100%;
    height: 100%;

    border: 1px solid #7fbf4d;
    border-radius: 50%;

    top: 12px;
    left: -12px;

    pointer-events: none;
}

.greeting__image-circle img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

/*===service=========================*/
.service {
    position: relative;
    overflow: hidden;
    padding: 120px 0;
}
.service::before,
.service::after{
	position: absolute;
	content: '';
	height:67%;
	z-index: -1;
	opacity: .18;
}
.service::before{
	bottom:0;
	left:0;
	width:78%;
	background:linear-gradient(#11ae94,#009500);
	clip-path:polygon(0 0,0 0,100% 100%,0 100%);
}

.service::after{
	bottom:0;
	right:0;
	width:60%;
	background:linear-gradient(#11ae94,#009500);
	clip-path:polygon(100% 0,100% 0,100% 100%,0 100%);
}

.service__inner {
    position: relative;
    z-index: 2;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 30px;
}

.service__heading {
    text-align: center;
    margin-bottom: 80px;
}

.service__en {
    display: block;
    font-size: clamp(5rem,8vw,8rem);
    font-weight: 800;
    color: rgba(35,84,41,.18);
    line-height: 1;
}

.service__title {
    margin-top: -35px;
    font-size: 3rem;
    color: #235429;
}

.service__lead {
    margin-top: 30px;
    font-size: 1.125rem;
}
.service__cards {
	display: flex;
	justify-content: center;
	gap: 4rem;
}

.service-card {
	position: relative;
	display: block;
	width: 22rem;
	text-decoration: none;
	color: #fff;
	margin-bottom: 40px;
	transition: transform .4s ease;
}

.service-card__image {
	position: relative;
	height: 28rem;
	overflow: hidden;
	border-radius: 20px;
}

.service-card__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(0,0,0,.65) 0%,
		rgba(0,0,0,.2) 40%,
		rgba(0,0,0,0) 70%
	);
	z-index: 1;
}

.service-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}
.service-card:hover{
	transform: translateY(-8px);
}
.service-card:hover .service-card__image img {
	transform: scale(1.08);
}

/*カード番号*/
.service-card__num {
	position: absolute;
	top: -2.5rem;
	left: -1rem;
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    background: #235429;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 700;
	z-index: 10;
}
/*カードタイトル*/
.service-card__title {
	position: absolute;
	top: 0;
	writing-mode: vertical-rl;
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1;
	z-index: 5;
	text-shadow: 0 0 10px rgba(0,0,0,.43);
}
/*カードテキスト*/
.service-card__body {
	position: absolute;
	left: 1.5rem;
	right: 1.5rem;
	bottom: 1.8rem;
    height: 77%;
	z-index: 5;
}

.service-card__text {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.8;
    position: absolute;
    bottom: 0;	
}
/*やじるし*/
.service-card__arrow {
	position: absolute;

	right: 0;
	bottom: 0;

	width: 3.5rem;
	height: 3.5rem;

	border-radius: 50%;
	background: #235429;

	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 1.4rem;

	transition: .3s;
}

.service-card:hover .service-card__arrow {
	transform: translateX(.3rem);
}
.service__btn{
	text-align: center;
}
/*===Works==============================*/
.works__inner {
    position: relative;
    z-index: 2;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 30px;
}
.works__cards {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: clamp(15px, 2vw, 3rem);;
	margin-bottom: 50px;
}

.works-card {
	display: block;
	text-decoration: none;
	color: inherit;
	background: #fff;
	border: 1px solid #2d6a36;
	transition: .3s;
}

.works-card:hover {
	transform: translateY(-8px);
}
.works-card__label {
	height: 2rem;

	background: #235429;

	color: #fff;

	display: grid;
	grid-template-columns: 1fr 1fr;

	font-weight: 700;
	font-size: 1.1rem;
}

.works-card__label span {
	display: flex;
	align-items: center;
	padding-left: 1.5rem;
}
.works-card__compare {
	position: relative;

	display: grid;
	grid-template-columns: 1fr 1fr;

	height: 260px;
	overflow: hidden;
}

.works-card__before,
.works-card__after {
	overflow: hidden;
}

.works-card__before img,
.works-card__after img {
	width: 100%;
	height: 100%;
	object-fit: cover;

	transition: .7s;
}

.works-card:hover .works-card__before img{
	transform:scale(1.1);
}

.works-card:hover .works-card__after img{
	transform:scale(1.1);
}
.works-card__compare::before {
	content: "";

	position: absolute;

	left: 50%;
	top: 0;

	width: 4px;
	height: 100%;

	background: rgba(255,255,255,.9);

	transform: translateX(-50%);
	z-index: 2;
}
.works-card__arrow {
	position: absolute;

	left: 50%;
	top: 50%;

	transform: translate(-50%, -50%);

	width: 25px;
	height: 25px;

	border-radius: 50%;

	background: #007a4d;

	color: #fff;

	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 1rem;
	font-weight: 700;

	z-index: 3;

	transition: .3s;
}

.works-card:hover .works-card__arrow {
	transform: translate(-50%, -50%) scale(1.1);
}
.works-card__body {
	padding: 2rem;
}

.works-card__title {
	margin-bottom:clamp(8px, 1.2vw, 1rem);
	font-size:clamp(1.25rem, 1.186rem + 0.29vw, 1.4rem);
	font-weight: 700;

	color: #235429;
}

.works-card__info {
	list-style: none;
	padding: 0;
	margin: 0;
}

.works-card__info li {
	font-size: 1rem;
	line-height: 2;
}
/*====recruit========================*/
.recruit{
  position:relative;
  overflow:hidden;
  background:#f8f8f5;
  padding:0;
}
.recruit::before{
	content:"";
	position:absolute;
	left:0;
	top:0;

	width:150px;
	height:240px;

	background:rgb(30, 131, 35, .6);

	clip-path:polygon(
		0 0,
		100% 0,
		0 100%
	);

	z-index:5;
}
.recruit::after{
	content:"";
	position:absolute;
	right:0;
	top:0;

	width:200px;
	height:480px;

	background:rgb(30, 131, 35, .6);

	clip-path:polygon(
		100% 0,
		100% 100%,
		0 0
	);

	z-index:5;
}
.recruit__inner{
	position:relative;
	display:grid;
	grid-template-columns:44% 56%;
	min-height:650px;
}
.recruit__inner::after{
	content:"";
	position:absolute;

	right:28%;
	bottom:0;

	width:40%;
	height:100%;

	background:linear-gradient(
		180deg,
		rgba(81,227,186,.8),
		rgba(81,227,186,.45)
	);

	clip-path:polygon(
		80% 0,
		100% 0,
		100% 100%,
		0 100%
	);

	z-index:1;
}
.recruit__content{
	position:relative;
	z-index:3;
	padding:80px 0 80px 8%;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.recruit__heading {
    margin-bottom: 70px;
}

.recruit__en {
    display: block;
    font-size: clamp(5rem,8vw,8rem);
    font-weight: 800;
    color: rgba(35,84,41,.18);
	letter-spacing:.02em;
    line-height: 1;
}

.recruit__title {
    margin-top: -35px;
    font-size: 2.3rem;
	font-weight:700;
	line-height:1.5;
    color: #235429;
}

.recruit__lead {
    margin-top: 30px;
    font-size: 1.125rem;
}
.recruit__features{
	display:flex;
	margin-bottom:60px;
}

.feature{
	width:150px;
	text-align:center;
	position:relative;
}

.feature:not(:last-child){
	border-right:1px solid #9cb39d;
}

.feature i{
	display:block;
	margin-bottom:15px;
}

.feature img{
	height:42px;
	width:auto;
}

.feature span{
	display:block;
	font-size:.9rem;
	font-weight:700;
	color:#235429;
}
.recruit__image{
	position:relative;
	overflow:hidden;
	clip-path: polygon(0 0, 100% 0,100% 100%, 18% 100%);
	z-index: 2
}

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

/*===CTA=================================*/
.cta{
	padding:100px 0 50px;
}

.cta__inner{
	max-width:1400px;
	margin:auto;
	padding:60px clamp(30px, 3vw, 50px);;
	border:1px solid #5f9468;

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

.cta__content{
	width:40%;
}

.cta__title{
	font-size:1.8rem;
	line-height:1.6;
	color:#235429;
	font-weight:700;
}

.cta__text{
	margin-top:30px;
	font-size:1rem;
}

.cta__action{
	/*width:55%;*/
	display:flex;
	gap:20px;
	flex-shrink: 0;
}

.cta-card{
	flex:1;
	min-width: 320px;
	border:1px solid #5f9468;
	background:#fff;

	padding:30px clamp(15px,2vw,30px);

	display:flex;
	align-items:center;
	gap:20px;

	text-decoration:none;
	color:#235429;

	transition:.3s;
}

.cta-card:hover{
	background:#235429;
	color:#fff;
	transform:translateY(-5px);
}

.cta-card__icon{
	width:clamp(2.188rem, 1.898rem + 1.22vw, 2.813rem);
	flex-shrink:0;
}

.cta-card__icon img{
	width:100%;
}

.cta-card__body{
	display:flex;
	flex-direction:column;
}

.cta-card__label{
	font-size:.9rem;
	margin-bottom:10px;
}

.cta-card__body strong{
	font-size:1.8rem;
	line-height:1.2;
}

.cta-card__body small{
	margin-top:10px;
	font-size:.85rem;
}

/*==footer========================================*/
.footer{
		border-top:1px solid rgba(35,84,41,.15);
}

.footer__top{
	padding:50px 0 70px;
}

.footer__inner{
	max-width:1400px;
	margin:auto;
	padding:0 20px;

	display:grid;
	grid-template-columns: clamp(175px, 15vw, 280px) clamp(235px, 25vw, 400px) clamp(270px, 20vw, 300px);;
	align-items:center;
	gap:clamp(1.875rem, -5.398rem + 11.36vw, 3.125rem);;
}

.footer__logo img{
	width:100%;
	max-width:220px;
}

.footer__info{
	font-size:.95rem;
	line-height:2;
	color:#333;
}

.footer__info p+p{
	margin-top:10px;
}

.footer__nav{
	padding-left:40px;
	border-left:1px solid #97b09b;
}

.footer__nav ul{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	row-gap:12px;
	column-gap:clamp(0.938rem, 0.503rem + 1.83vw, 1.875rem);
}

.footer__nav a{
	color:#333;
	text-decoration:none;
	transition:.3s;
	font-size: 16px;
}

.footer__nav a:hover{
	color:#235429;
}

.footer__bottom{
	background:#235429;
	padding:20px;
	text-align:center;
}

.footer__bottom p{
	color:#fff;
	font-size:.875rem;
	letter-spacing:.05em;
}

/* =============================================
   SP ハンバーガー / ドロワー / ボトムバー
============================================= */

/* ハンバーガーボタン（デフォルト非表示） */
.sp-hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	flex-shrink: 0;
}
.sp-hamburger span {
	display: block;
	width: 100%;
	height: 2px;
	background: #235429;
	border-radius: 2px;
	transition: .35s ease;
}
.sp-hamburger.is-active span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
.sp-hamburger.is-active span:nth-child(2) {
	opacity: 0;
}
.sp-hamburger.is-active span:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

/* ドロワーナビ */
.sp-drawer {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: min(300px, 85vw);
	height: 100dvh;
	background: #eef1e4;
	z-index: 300;
	transform: translateX(-100%);
	transition: transform .4s ease;
	padding: 70px 30px 40px;
	overflow-y: auto;
}
.sp-drawer.is-open {
	transform: translateX(0);
}
.sp-drawer__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	background: none;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sp-drawer__close span {
	position: absolute;
	width: 22px;
	height: 2px;
	background: #235429;
	border-radius: 2px;
}
.sp-drawer__close span:nth-child(1) { transform: rotate(45deg); }
.sp-drawer__close span:nth-child(2) { transform: rotate(-45deg); }

.sp-drawer__logo {
	margin-bottom: 30px;
}
.sp-drawer__logo img {
	width: 50px;
	height: auto;
}
.sp-drawer__nav {
	list-style: none;
	padding: 0;
	margin-bottom: 40px;
}
.sp-drawer__nav li {
	border-bottom: 1px solid rgba(35,84,41,.15);
}
.sp-drawer__nav li a {
	display: block;
	padding: 14px 4px;
	color: #333;
	font-size: 15px;
	text-decoration: none;
	transition: color .3s;
}
.sp-drawer__nav li a:hover {
	color: #235429;
}
.sp-drawer__info {
	font-size: 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.sp-drawer__info a {
	color: #235429;
	font-weight: 700;
	font-size: 18px;
}

/* オーバーレイ */
.sp-nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.5);
	z-index: 290;
	opacity: 0;
	pointer-events: none;
	transition: opacity .4s;
}
.sp-nav-overlay.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* ボトムバー（デフォルト非表示） */
.sp-bottom-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 60px;
	background: #235429;
	z-index: 200;
	grid-template-columns: repeat(3, 1fr);
}
.sp-bottom-bar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	color: #fff;
	text-decoration: none;
	font-size: 10px;
	letter-spacing: .05em;
	font-weight: 600;
	background: none;
	border: none;
	cursor: pointer;
	border-right: 1px solid rgba(255,255,255,.15);
	transition: background .25s;
}
.sp-bottom-bar__item:last-child {
	border-right: none;
}
.sp-bottom-bar__item:hover,
.sp-bottom-bar__item:active {
	background: rgba(255,255,255,.12);
}
.sp-bottom-bar__item i,
.sp-bottom-bar__item .sp-bottom-menu__lines {
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sp-bottom-menu__lines {
	flex-direction: column;
	gap: 4px;
	width: 20px;
}
.sp-bottom-menu__lines span {
	display: block;
	width: 100%;
	height: 2px;
	background: #fff;
	border-radius: 2px;
}

/* =============================================
   Responsive 各微調整
============================================= */
@media (max-width: 1299px) {
	.cta__action {
		width: 55%;
		flex-direction: column;
	}
    .service__cards {
        flex-direction: column;
        align-items: center;
    }	
	.service-card {
		width: 80%;
	}
	.service-card__image {
		height: 23rem;	
	}
}
@media (max-width: 1199px) {
	.works__cards {
		grid-template-columns: repeat(2, 1fr);
	}
	.works-card:last-child{
		display: none;
	}	
}
/* =============================================
   Responsive ≤1023px：2カラム解除
============================================= */
@media (max-width: 1023px) {

	.layout {
		flex-direction: column;
	}

	.header-area {
		width: 100%;
		height: auto;
		position: fixed;
		top: 0;
		flex-shrink: 0;
	}

	.header-inner {
		height: auto;
		padding: 14px 20px;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.header-top {
		display: flex;
		align-items: center;
		gap: 30px;
		margin-bottom: 0;
	}

	.logo a {
		flex-direction: row;
		margin-bottom: 0;
		gap: 12px;
	}

	.logomark { width: 38px; }

	.logotxt {
		max-width: 160px;
		margin: 0;
	}

	.global-nav ul {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 0 15px;
	}

	.global-nav li {
		margin-bottom: 0;
		padding-left: 0;
	}

	.global-nav li::before {
		display: none;
	}

	.global-nav li a {
		font-size: 14px;
	}

	.header-info {
		display: flex;
		align-items: center;
		gap: 16px;
	}

	.address {
		display: none;
	}

	.tel-box {
		display: none;
	}

	.tel-box a {
		font-size: 18px;
	}

	.content-area {
		margin-left: 0;
		width: 100%;
	}
	.contact-btn a {
        padding: 8px 12px;
        gap: 0;
        font-size: 0;
    }
    .contact-btn a .icon {
        font-size: 28px;
    }
	body.scrolled .header-area {
		width: 100%;
	}

	body.scrolled .header-inner {
		padding: 10px 20px;
	}

	/* fv */
	.fv {
		height: auto;
		aspect-ratio: 4 / 3;
		width: 100%;
		min-height: 55vh;
	}
	
	
	/* コンテンツ幅調整 */
	.greeting__inner {
		padding: 0 30px;
	}

	.greeting__image-circle {
		min-width: 260px;
		min-height: 260px;
	}

	.service__cards {
		gap: 2rem;
	}

	.recruit__inner {
		grid-template-columns: 50% 50%;
	}

	.footer__inner {
		/*grid-template-columns: 200px 1fr 300px;*/
		gap: 30px;
	}
}

/* =============================================
   Responsive ≤767px
============================================= */
@media (max-width: 767px) {

	.global-nav {
		display: none;
	}

	.tel-box {
		display: none;
	}

	.sp-hamburger {
		display: flex;
	}

	.sp-drawer {
		display: block;
	}
	/* sections */
	.greeting__content {
		flex-direction: column;
		gap: 40px;
	}

	.greeting__image-circle {
		min-width: 200px;
		min-height: 200px;
		max-width: 320px;
		max-height: 320px;
		margin: 0 auto;
	}

	.works__cards {
		grid-template-columns: 1fr 1fr;
		gap: 1.5rem;
	}

	.recruit__inner {
		grid-template-columns: 1fr;
		min-height: auto;
	}
	.recruit__inner::after {
		right: 0;
		bottom: 0;
		width: 40%;
		height: 80%;
		clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%);
		z-index: 0;
	}
	.recruit__image {
		clip-path: none;
		height: 280px;
	}

	.recruit__content {
		padding: 60px 30px;
	}

	.recruit::after {
		display: none;
	}


	.cta__inner {
		flex-direction: column;
		padding: 40px 30px;
		gap: 30px;
	}

	.cta__content {
		width: 100%;
	}

	.cta__action {
		width: 100%;
		flex-direction: column;
	}

	.footer__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.footer__nav {
		padding-left: 0;
		border-left: none;
		border-top: 1px solid #97b09b;
		padding-top: 20px;
	}

	.top-info__inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* =============================================
   Responsive ≤600px：下部固定バーのみ
============================================= */
@media (max-width: 600px) {
	.header-area {
        position: sticky;
	}
	/* ヘッダーをロゴ＋ハンバーガーのみに */
	.header-inner {
		padding: 10px 16px;
	}

	.contact-btn {
		display: none;
	}

	.sp-hamburger {
		display: none; /* ボトムバーの Menu で代替 */
	}

	/* ボトムバー表示 */
	.sp-bottom-bar {
		display: grid;
	}

	/* ボトムバー分の余白 */
	body {
		padding-bottom: 60px;
	}

	/* フッター余白調整 */
	.footer__bottom {
		padding-bottom: calc(20px + 60px);
	}

	.logomark { width: 30px; }
	.logotxt { max-width: 110px; }

	/* FV */
	.fv-copy {
		width: min(95vw, 600px);
	}

	/* top-info */
	.top-info__inner {
		grid-template-columns: repeat(2, 1fr);
	}

	.top-info__item {
		padding: 20px 12px;
	}

	.top-info__item strong {
		font-size: 1rem;
	}

	/* greeting */
	.greeting {
		padding: 60px 0;
	}

	.greeting__inner {
		flex-direction: column;
		padding: 0 20px;
		gap: 20px;
	}

	.greeting__side {
		flex-direction: row;
		align-items: center;
		gap: 10px;
	}

	.greeting__side span {
		writing-mode: horizontal-tb;
		font-size: 2rem;
	}

	.greeting__text {
		min-width: auto;
	}
	
	.greeting__logo img {
		width: 36px;
	}

	.greeting__logo {
		margin-bottom: 0;
	}
	.greeting__title {
		font-size: clamp(1.35rem, 1.031rem + 1.42vw, 1.563rem);
	}
	.greeting__text p {
		font-size: 1rem;
	}
	/* service */
	.service__inner,.works__inner {
		padding: 0 15px;
	}	
	.service-card {
        width: 98%;
    }
	.service-card__title {
    	font-size: 1.8rem;
	}
	.service-card__num {
		width: 4rem;
		height: 4rem;
		font-size: 1.6rem;
	}
	.service-card__arrow {
		width: 2.8rem;
		height: 2.8rem;
		font-size: 1rem;	
	}
	/* works */
	.works__cards {
		grid-template-columns: 1fr;
	}
	.works-card__info li {
		font-size: .93rem;
	}

	/* recruit */
	.recruit__features {
		flex-wrap: wrap;
		gap: 16px;
		margin-bottom: 30px;
	}

	.feature {
		width: calc(33.33% - 12px);
	}

	.feature:not(:last-child) {
		border-right: none;
	}

	/* service */
	.service__en,
	.recruit__en {
		font-size: clamp(3rem, 14vw, 5rem);
	}

	.service__title,
	.recruit__title {
		font-size: 1.8rem;
	}

	/* c-btn */
	.c-btn {
		min-width: 220px;
		height: 60px;
	}

	/* cta */
	.cta__inner {
        padding: 40px 20px;
        margin: 0 10px;
	}
	.cta__title {
		font-size: 1.25rem;
	}

	.cta-card {
		padding: 20px;
		min-width: auto;
	}

	.cta-card__body strong {
		font-size: 1.4rem;
	}

	/* footer */
	.footer__nav ul {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 440px) {
	.service__lead {
		margin-top: 30px;
		font-size: 1rem;
	}
    .service__title, .recruit__title {
        font-size: 1.38rem;
    }	
}

@media (max-width: 375px) {
	.cta-card {
		flex: 1;
		min-width: auto;
	}
		.cta-card__icon {
		width: 35px;
		flex-shrink: 0;
	}
	    .cta__inner {
        padding: 40px 15px;
    }
}