@charset "utf-8";

/***************************************************************
Home
****************************************************************/
/* z-index メモ

*/
.home {
	padding: 0;
}

body {
	background-color: #F4F8F1;
}


.home .widget:nth-child(odd) {
	background-color: #F0F4F2;
}

.home__title {
    margin-top: 0;
	line-height: 1.29;
	font-family: "Noto Serif JP", serif;
	font-weight: 500;
}
.home__title::after {
	bottom: -8px;
}
.home_reason2 {
	padding: 40px 4.267vw 10px;
}

.home .widget_home_greeting {
	background-color: #F0F4F2 !important;
}

.home_reason2-main-div {
	align-items: center;
}
.home_reason2-main-div__img {
	width: 343px;
	height: 200px;
}
.home_reason2-main-div__title.theme-color {
	color: var(--sub-color) !important;
}
.home_greeting {
	padding: 40px 4.267vw;
}
.home_greeting-top {
	height: auto;
}
.home_greeting-main {
	padding: 16px 0 0;
}
.home_greeting-top__image {
	max-width: 640px;
	width: 91.47vw;
	aspect-ratio: 343 / 157;
}
.home_greeting-main__title {
    font-size: 28rem;
    font-weight: bold;
    text-align: center;
	font-family: "Noto Serif JP", serif;
}
.home_greeting-main__sub-title {
	margin-top: 16px;
    font-size: 14rem;
    font-weight: bold;
    text-align: center;
}
.home_greeting__name {
    display: block;
    margin-left: auto;
}
.content--home .home__button {
    max-width: 91.4vw;
    width: 91.4vw;
	color: var(--sub-color) !important;
}
.content--home .home__button:hover {
		color: #ffffff!important;
	}

.home__button--greeting {
    margin-top: 30px;
}

.home__button--greeting::after {
    right: 20px;
    font-size: 12rem;
}
/* home_mirai akademi */
.widget_home.widget_home-mirai_akademi {
	background: none;
}
.home_akademi {
	position: relative;
	overflow: hidden;
	width: 100vw;
}
.home_parallax-img-div {
	position: absolute;
	width: 100vw;
    height: 100%;
    overflow: hidden;
	z-index: -1;
	margin-top: 1px;
	margin-bottom: 1px;
}
.home_parallax-img--sp {
	width: 100vw;
}
.home_akademi-wrapper {
	background: linear-gradient(95deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.78) 70%, rgba(255, 255, 255, 0.5) 90%, rgba(255, 255, 255, 0.3) 100%);
}
.home_akademi-main {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	margin: auto;
	padding: 40px 4.267vw 40px;
	box-sizing: border-box;
}
.home_akademi-main--mirai {
	padding-top: 0;
}
.home_akademi-main_left--mammals {
	padding-bottom: 30px;
}
.home_akademi-main_left__title {
	font-size: 27rem;
	line-height: 1.4;
	font-weight: bold;
}
.home_akademi-main_left__text {
	margin-top: 23px;
	font-size: 16rem;
}
.home_akademi-main_left__button {
	margin: 24px 0 30px 0;
	padding: 15px 0;
	width: 176px;
	height: 48px;
	box-sizing: border-box;
}
.home_akademi-main_left__button::after {
		position: absolute;
		top: 16px;
		right: 21px;
	}
.home_akademi-main_left__button--mammals {
	display: none;
	margin-bottom: 0;
	padding-bottom: 30px;
}
.home_akademi-main_right__image {
	width: 91.4vw;
	max-width: 552px;
	aspect-ratio: 23 / 14;
	/* border: solid 5px #fff; */
	outline: 5px solid #fff;
	outline-offset: -5px;
}

/* ============================================
   philosophy（事務所理念）
   ============================================ */
.philosophy {
	padding: 72px 5.33vw 80px;
	text-align: center;
}

.philosophy__inner {
	max-width: 790px;
	margin: 0 auto;
}

.philosophy__title {
	font-family: "Noto Serif JP", serif;
	font-size: 28px;
	font-weight: 400;
	color: #163128;
	margin: 0;
	line-height: 1.4;
}

.philosophy__separator {
	width: 40px;
	background-color: #b8932a;
	margin: 16px auto 0;
	border: solid 2px #A18D68;
}

.philosophy__subtitle {
	margin: 32px 0 0;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	color: #222;
	line-height: 1.6;
	font-size: 24px;
}

.philosophy__body {
	margin-top: 28px;
	text-align: left;
}

.philosophy__text {
	font-size: 15px;
	color: #333;
	line-height: 1.9;
	margin: 0 0 20px;
}

.philosophy__text:last-child {
	margin-bottom: 0;
}

@media screen and (min-width: 1024px) {
	.philosophy {
		padding: 88px 40px 96px;
	}
	.philosophy__title {
		font-size: 32px;
	}
	.philosophy__subtitle {
		font-size: 26px;
	}
	.philosophy__text {
		font-size: 16px;
	}
}

/* ============================================
   feature（そらまめ総合特許事務所の特徴）
   ============================================ */
.feature {
	background: #163128;
	padding: 64px 5.33vw 72px;
}

.feature__inner {
	max-width: 1120px;
	margin: 0 auto;
}

.feature__title {
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	font-weight: 400;
	color: #fff;
	text-align: center;
	letter-spacing: 0.08em;
	margin: 0 0 48px;
}

.feature__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

.feature__item {
	background-color: #384F47;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 4px;
	padding: 36px 24px 32px;
	text-align: center;
	box-sizing: border-box;
	width: 100%;
}

.feature__icon-wrap {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background-color: #A18D68;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 24px;
}

.feature__icon {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.feature__item {
	font-size: 17px;
	font-weight: 700;
	color: #fff;
	margin: 0 0 16px;
	letter-spacing: 0.04em;
}

.feature__item-title {
	font-size: 17px;
	font-weight: 500;
	font-family: Noto Serif JP, serif;
	color: #fff;
	margin: 0 0 16px;
	letter-spacing: 0.04em;
	display: inline-block;
	padding-bottom: 10px;
	border-bottom: solid 2px #A18D68;
}

.feature__item-text {
	font-size: 14px;
	color: rgba(255,255,255,0.85);
	line-height: 1.85;
	margin: 0;
	text-align: left;
	font-weight: 500;
}

.home-field {
	margin: 16px 0;
}

/* --- カード --- */
.home-field__item {
	background-color: #fff;
	border-radius: 2px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
	transition: background-color 0.5s ease;
}

@media screen and (min-width: 1239px) {
	.feature__list {
		grid-template-columns: repeat(3, 1fr);
	}
	/* 4・5枚目を2列で中央寄せ */
	.feature__item:nth-child(4) {
		grid-column: 1 / 2;
	}
	.feature__item:nth-child(5) {
		grid-column: 2 / 3;
	}
}

@media screen and (min-width: 1280px) {
	.feature {
		padding: 80px 40px 88px;
	}
}

@media screen and (min-width: 1024px) {
	.feature__title {
		font-size: 30px;
		margin-bottom: 56px;
	}
	.feature__item {
		padding: 40px 32px 36px;
	}
	.feature__item-title {
		font-size: 18px;
	}
	.feature__item-text {
		font-size: 14px;
	}
	.home-field__item {
		margin: 0;
	}
}

/* ============================================
   home-field（取扱分野）
   ============================================ */

.home-field {
	max-width: 1200px;
	width: 100%;
}

/* --- タイトルエリア --- */
.home-field__head {
	text-align: center;
	margin-bottom: 48px;
}

.home-field__title {
	font-family: "Noto Serif JP", serif;
	font-size: 28px;
	font-weight: 400;
	color: #222;
	letter-spacing: 0.1em;
	margin: 0 0 12px;
}

.home-field__subtitle {
	font-size: 14px;
	color: #555;
	letter-spacing: 0.02em;
	margin: 12px;
}

/* --- グループ --- */
.home-field__group {
	margin-bottom: 48px;
}

/* セクション見出し（左ボーダー） */
.home-field__group-heading {
	font-weight: 500;
	color: #222;
	margin: 0 16px 24px 10px;
	padding: 0 0 4px 16px;
	border-left: 6px solid #1e3a28;
	line-height: 1.5;
	letter-spacing: 0.04em;
	font-family: 'Noto Serif JP';
	font-size: 20px;
	max-width: 1180px;
}

.home-field__group-heading.home-field__group-heading__sub {
	border-left: 6px solid #A18D68;
}

/* --- カードグリッド --- */
.home-field__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.home-field__link {
	display: block;
	padding: 24px 22px;
	text-decoration: none;
	height: 100%;
	box-sizing: border-box;
	transition: color 0.35s ease;
}

.home-field__item:hover {
	background-color: #1e3a28;
}

.home-field__item:hover .home-field__item-title {
	color: #fff;
}

.home-field__item:hover .home-field__item-text {
	color: rgba(255, 255, 255, 0.85);
}

.home-field__item-title {
	font-size: 18px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 10px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	transition: color 0.35s ease;
}

.home-field__item-title-sub {
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0;
}

.home-field__item-text {
	font-size: 13px;
	color: #555;
	line-height: 1.75;
	margin: 0;
	transition: color 0.35s ease;
}

/* --- フッター：一覧ボタン --- */
.home-field__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 32px;
}

.home-field__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 24px;
	border: 1px solid #333;
	font-weight: 600;
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: background-color 0.18s, color 0.18s;
	color: #163128;
	font-size: 16px;
	font-weight: 600;
	margin: 0 10px;
}

.home-field__more:hover {
	background-color: #333;
	color: #fff;
}

.home-field__group {
	margin: 16px;
}

/* ============================================
   PC (768px+)
   ============================================ */
@media screen and (min-width: 768px) {
	.home-field__list {
		gap: 14px;
	}

	.home-field__group {

		max-width: 1200px;
		/*width: 100vw;*/
	}


	.home-field__footer {
		width: 100vw;
		max-width: 1200px;
	}

}

/* ============================================
   PC (1024px+)
   ============================================ */
@media screen and (min-width: 1240px) {

	.home-field__title {
		font-size: 32px;
	}

	.home-field__list {
		grid-template-columns: repeat(4, 1fr);
		gap: 16px;
		margin: 16px;
	}

	.home-field__link {
		padding: 28px 24px;
	}

	.home-field__item-title {
		font-size: 16px;
	}

	.home-field__item-text {
		font-size: 13px;
	}
}

/* home_flow */
.home_flow-main-item__title.theme-color {
	color: var(--sub-color) !important;
}
.home_flow-main-item:not(:first-child)::before {
	content: none;
}
.home_flow-main-item,
.home_flow-main-item__image {
	width: auto;
}

.widget_home.widget_home_middle_cta_ufw {
	background: none;
}

/* home_posts */
.home_posts {
	width: 100%;
}
.home_column {
	padding: 40px 4.267vw;
}

.home_posts__title {
	margin-top: 30px;
	font-size: 24rem;
	font-weight: normal;
}

.home_posts__title::before {
	content: '●';
	margin-right: 8px;
	color: var(--theme-color);
	font-weight: normal;
}

.home_posts-ul {
	margin-top: 30px;
	font-size: 0;
}

.home_posts-li {
	margin: 20px auto 0;
	max-width: 360px;
	width: 100%;
	display: block;
}

.home_posts-li-detail__card {
	display: inline-block;
	width: 100%;
	background-color: #fff;
	color: #0d0d0d;
	font-size: 16rem;
	/* height: 495px; */
	height: auto;
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.16);
}

.home_posts-li-detail__card:hover {
	box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.12);
}

.home>.main_full>section:nth-child(odd) .home_posts-li-detail__card {
	background-color: #fff;
}

.home_posts-li-top {
	display: inline-block;
	width: 100%;
}

.home_posts-li-top__image {
	margin: 0 auto;
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 38 / 23;
	max-width: 380px;
	overflow: hidden;
	vertical-align: top;
}

.home_posts-li-top__image source,
.home_posts-li-top__image img {
	margin: auto;
	max-width: 100%;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.home_posts-li-detail {
	position: relative;
	box-sizing: border-box;
	padding: 20px 16px 64px 24px;
	display: inline-block;
	width: 100%;
}

.home_posts-li-detail .home_posts-li-detail__title {
		display: block;
		width: 100%;
		min-height: 3em;
		font-size: 24rem;
		font-weight: bold;
		margin-bottom: 10px;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

.home_posts-li-detail .home_posts-li-detail__date {
		display: block;
		margin-top: 4px;
		font-size: 14rem;
	}

.home_posts-li-detail .home_posts-li .cpt-categories {
		margin-top: 8px;
		width: 100%;
		display: block;
	}

.home_posts-li-detail .home_posts-li-detail-categories {
		padding: 3px 31px;
		margin-top: 4px;
		font-size: 14rem;
	}

.home_posts-li-detail .home_posts-li-detail__text {
		display: block;
		margin-top: 8px;
	}

.home_posts-li-detail .home_posts-li-detail__bottom {
		position: absolute;
		bottom: 24px;
		right: 24px;
		font-size: 16rem;
		font-weight: 500;
	}

.home_posts-li-detail .home_posts-li-detail__bottom::after {
		display: inline-block;
		margin-left: 8px;
		font-size: 14rem;
	}
.home_column__link {
	margin-top: 40px;
}

/* news */

.home_news {
	padding: 0 4.267vw;
}
.home_news-main {
	margin-top: 30px;
}
.news-archive-li {
	padding: 20px 0 16px;
}
.home_news__link {
	margin-top: 30px;
}
/* ===== セクション全体 ===== */
.overview{
	padding:64px 0 56px;
}

.overview__inner {
	max-width: 1280px;
	width: 100%;
}

.overview__title{
	margin:0 0 28px;
	text-align:center;
	font-size: 40px;
	font-weight:800;
	letter-spacing:.02em;
	color:#111;
}

.overview__rows{
	display:flex;
	flex-direction:column;
	gap:22px;
	padding: 24px;
}

/* ===== 1行（カード＋画像を一体化して“くっつける”） ===== */
.ov-row {
	grid-template-columns: 1.05fr 0.95fr;
	border-radius: 10px;
	overflow: hidden;
}

/* 左カード */
.ov-card{
	background:#f0eddc;
	padding:22px 22px 20px;
	box-sizing:border-box;
	min-height:190px;
}

/* 角丸は行全体で持つので個別は不要 */
.ov-card, .ov-image{ border-radius:0; }

.ov-point{
	display:inline-block;
	padding:4px 10px 3px;
	font-size:18px;
	font-weight:800;
	line-height:1;
	border-radius:2px;
	background:#f2d400;
	color:#111;
	margin-bottom:10px;
}

.ov-card__title{
	margin:0 0 10px;
	font-size:32px;
	font-weight:900;
	color:#111;
	letter-spacing:.02em;
}

.ov-card__text{
	margin:0;
	font-size: 24px;
	line-height:1.85;
	color:#222;
	opacity:.92;
}

/* 右画像 */
.ov-image{
	margin:0;
	background:#fff;
	min-height:190px;
	text-align: center;
}

.ov-image img{
	object-fit: cover;
	width: 100vw;
	max-width: 100%;
}

/* 下リンク */
.overview__footer{
	margin-top:16px;
	display:flex;
	justify-content:flex-end;
	margin-right: 24px;
}

.overview__link{
	text-decoration:none;
	color:#111;
	font-weight:800;
	font-size: 24px;
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:6px 4px;
}
.overview__link:hover{ opacity:.75; }

.feature__inner{
	margin:0 auto;
}

.feature__head{
	text-align:center;
	margin-bottom:28px;
}

.feature__title{
	margin: 32px 48px 53px 32px;
	font-size: 32px;          /* 18px基調の見出し */
	letter-spacing: .04em;
	color: #ffffff;
}

.feature__sub{
	margin:10px 0 0;
	font-size:18px;          /* ★サブコピーも18px */
	font-weight:700;
	color:#333;
	opacity:.9;
}

/* ===== 3カラム ===== */
.feature__grid{
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:18px;
}

/* ===== カード共通 ===== */
.f-card{
	background:#f3f0dc;
	border:2px solid #fff;
	border-radius:10px;
	padding:22px 22px 16px;
	box-shadow:0 8px 0 rgba(0,0,0,.08);
	min-height:380px;        /* 文字が大きくなる分少し増やす */
	display:flex;
	flex-direction:column;
	box-sizing:border-box;
}

/* 左カード（黄色） */
.f-card:hover {
	background:#f2d400;
	border:2px solid #fff;
}

/* タイトル行（アイコン＋見出し） */
.f-card__title{
	margin:0;
	font-size:24px;          /* 見出し：18基調の1.3倍程度 */
	font-weight:900;
	color:#111;
	display:flex;
	align-items:center;
	gap:10px;
}

/* タイトル下の太字説明（画像だとここが太め） */
.f-card__lead{
	margin:12px 0 0;
	font-size:20px;          /* リードは少し大きく */
	font-weight:900;
	line-height:1.7;
	color:#111;
}

/* 箇条書き：本文は18pxで統一 */
.f-card__list{
	margin:14px 0 0;
	padding-left:22px;
	font-size:18px;          /* ★本文＝18px */
	line-height:1.9;
	color:#111;
	opacity:.92;
}

.f-card__list {
	list-style: disc;
}

.f-icon-image {
	width: 36px;
	height: auto;
}

.f-card__list li{ margin:8px 0; }

/* “詳しく見る”を下寄せ */
.f-card__more{
	margin-top:auto;
	align-self:flex-end;
	text-decoration:none;
	color:#111;
	font-size:18px;          /* ★リンクも18px */
	font-weight:900;
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:10px 2px 4px;
}
.f-card__more::after{
	content:"›";
	font-size:22px;
	line-height:1;
	transform: translateY(-1px);
}
.f-card__more:hover{ opacity:.75; }

/* ===== アイコン（疑似要素で画像を差し込み） ===== */
.f-icon::before{
	content:"";
	width:36px;
	height:36px;
	display:inline-block;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;
}

/* ▼あなたの画像に差し替え */
.f-icon--law::before{ background-image:url("../img/icon-balance-48px@2x.png"); }
.f-icon--support::before{ background-image:url("../img/icon-hands-48px@2x.png"); }
.f-icon--edu::before{ background-image:url("../img/icon-mortarboard-48px@2x.png"); }

/* ===== 右下の“サービスの特長へ” ===== */
.feature__footer{
	margin-top:18px;
	display:flex;
	justify-content:flex-end;
}

.feature__link{
	text-decoration:none;
	color:#111;
	font-weight:900;
	font-size: 24px;          /* ★18px */
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:10px 4px 0;
}
.feature__link span{
	font-size:22px;
	transform: translateY(-1px);
}
.feature__link:hover{ opacity:.75; }

/* ===== セクション ===== */
.home-flow{
	padding:56px 0 52px;
	font-size:18px;              /* ★基調 */
	line-height:1.7;
}

.home-flow__inner{
	max-width:1280px;
	margin:0 auto;
	padding:0 22px;
}

.home-flow__title{
	margin:0 0 22px;
	text-align:center;
	font-size: 40px;
	font-weight:900;
	letter-spacing:.02em;
	color:#111;
}

/* ===== 3枚グリッド ===== */
.home-flow__grid{
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:26px;
}

/* ===== カード ===== */
.home-flow__card{
	display:block;
	text-decoration:none;
	color:#111;
	border-radius:12px;
	overflow:hidden;
	background:#fff;
	box-shadow:0 10px 24px rgba(0,0,0,.12);
	border:1px solid rgba(0,0,0,.06);
	transform:translateZ(0);
}

.home-flow__card:hover .home-flow__label {
	background:#F2D400;
}

	/* hover */
.home-flow__card:hover{
	filter:brightness(0.99);
	box-shadow:0 12px 28px rgba(0,0,0,.14);
}

/* 上：写真 */
.home-flow__photo{
	height:165px;               /* 画像の縦感 */
	background:#e9e9e9;
}
.home-flow__photo img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

/* 下：ラベル帯 */
.home-flow__label{
	background:#f4f1df;         /* 薄いクリーム */
	padding:18px 18px;
	position:relative;
	min-height:64px;
	display:flex;
	align-items:center;
}


/* 文言 */
.home-flow__text{
	font-size:18px;
	font-weight:900;
	letter-spacing:.01em;
	padding-right:28px;          /* 右矢印分 */
}

/* 右矢印（疑似要素で描画） */
.home-flow__label::after{
	content:"";
	position:absolute;
	right:16px;
	top:50%;
	width:10px;
	height:10px;
	border-right:3px solid #111;
	border-bottom:3px solid #111;
	transform:translateY(-50%) rotate(-45deg);
	opacity:.9;
}



/* レスポンシブ */
@media (max-width: 980px){
	.home-flow__grid{
		grid-template-columns:1fr;
		gap:18px;
	}
	.home-flow__photo{ height:200px; }
}

/* ===== レスポンシブ ===== */
@media (max-width: 980px){
	.feature__grid{ grid-template-columns:1fr; }
	.f-card{ min-height:unset; }
	.feature__footer{ justify-content:flex-start; }
}


/* ===== レスポンシブ（スマホは縦積み、くっつけ維持） ===== */
@media (max-width: 900px){
	.ov-row{
		grid-template-columns:1fr;
	}
	.ov-image{
		min-height:210px;
	}
	.overview__footer{
		justify-content:flex-end;
		margin: 0 24px;
	}
}



/* ============================================
   home-news（新着情報）
   ============================================ */
.home-news {
	padding: 56px 5.33vw 64px;
	background-color: #fff;
}

.home-news__inner {
	max-width: 1200px;
	margin: 0 auto;
	width: 100%;
}

.home-news__title {
	font-family: "Noto Serif JP", serif;
	font-size: 26px;
	font-weight: 400;
	color: #163128;
	text-align: center;
	margin: 0 0 48px;
	letter-spacing: 0.08em;
}

.home-news__divider {
	border: none;
	border-top: 3px solid #163128;
	margin: 0;
}

.home-news__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.home-news__item {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 26px 0;
	border-bottom: 1px solid #d0d0d0;
}

.home-news__item-meta {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-shrink: 0;
}

.home-news__date {
	font-size: 16px;
	font-weight: 600;
	color: #555;
	letter-spacing: 0.04em;
	white-space: nowrap;
	min-width: 88px;
}

.home-news__category {
	display: inline-block;
	padding: 5px 18px;
	background-color: #163128;
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	text-decoration: none;
	white-space: nowrap;
	letter-spacing: 0.04em;
	transition: background-color 0.18s;
	border-radius: 16px;
}

.home-news__category:hover {
	background-color: #1f4535;
	color: #fff;
}

.home-news__item-title {
	font-size: 15px;
	color: #1a1a1a;
	text-decoration: none;
	line-height: 1.7;
	transition: opacity 0.18s;
}

.home-news__item-title:hover {
	opacity: 0.7;
}

.home-news__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 32px;
}

.home-news__more {
	display: inline-flex;
	align-items: center;
	padding: 12px 32px;
	border: 1px solid #163128;
	color: #163128;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	letter-spacing: 0.06em;
	transition: background-color 0.18s, color 0.18s;
}

.home-news__more:hover {
	background-color: #163128;
	color: #fff;
}

.widget_home_news {
	background-color: #fff !important;

}

@media screen and (max-width: 767px) {
	.home-news__item {
		flex-wrap: wrap;
		gap: 12px;
	}

	.home-news__item-meta {
		width: 100%;
	}
}

@media screen and (min-width: 1024px) {
	.home-news {
		padding: 80px 0;
	}

	.home-news__title {
		font-size: 32px;
		margin-bottom: 56px;
	}

	.home-news__item {
		padding: 28px 0;
	}

	.home-news__item-title {
		font-size: 18px;
	}

	.widget_home_news {
		margin: 0 calc((50vw - 512px) * -1);
		padding: 0 calc(50vw - 512px);

	}

}

.widget_home_news {
	padding: 0;
}

/* iphone5 */
@media screen and (max-width: 374px) {
}

@media screen and (min-width: 768px) {
    .home__title {
        margin-top: 0;
		line-height: 1.13;
    }
	.content--home .home__button {
		max-width: 640px;
        line-height: 3.25;
		font-size: 24rem;
	}
	/* home_greeting */
    .home_greeting {
        flex-flow: column;
        align-items: center;
    }
	.home_greeting-top {
		width: auto;
	}
    .home_greeting-main {
        width: 100%;
    }
    .home_greeting-main__title {
        font-size: 36rem;
    }
    .home_greeting-main__sub-title {
        font-size: 17rem;
    }
    .home__button--greeting {
        margin-top: 50px;
    }
	/* home_posts */
	/* コラムが1つのみの場合をデフォルトとして設定し、下部の条件付きで上書き */
	.home_posts-ul {
		display: flex;
		justify-content: center;
	}
	.home_posts__title {
		width: 380px;
		margin: 0 auto;
	}
	/* ipadではコラムが2つ以上ある場合のタイトルは左寄せ */
	.home_posts__title:has(+ .home_posts-ul .home_posts-li:nth-child(2)) {
		width: 100%;
	}
	/* コラムが3つ以上ある場合 */
	.home_posts-ul:has(> :nth-child(3)) {
		justify-content: space-between;
	}
	.home_posts-li {
		margin: 0 1.5vw;
	}
		.home_posts-li:first-child {
			margin-left: 0;
		}
		.home_posts-li:last-child {
			margin-right: 0;
		}
	/* home_column */
	.home_column-main {
		flex-wrap: wrap;
	}
		.home_posts-li-top__image source,
		.home_posts-li-top__image img {
			max-width: 380px;
			height: 100%;
		}
	.home_posts-li-detail__card {
		height: 555px;
	}
	.home_posts__title {
		margin-top: 80px;
	}
	.home_posts:first-child .home_posts__title {
		margin-top: 40px;
	}
	.home_column .cpt-categories {
		display: block;
	}
	.cpt-categories__li {
		margin-right: 0;
	}
	/* home_news */
	.wp-block-post-title a {
		margin-left: 32px;
	}
	/* home_flow */
	.home_flow-main {
		display: flex;
		justify-content: space-between;
	}
	.home_flow-main-item {
		width: 100%;
		max-width: 100%;
		margin: 0 1vw;
	}
	.home_flow-main-item:not(:first-child) {
		margin-top: 0;
	}
		.home_flow-main-item__image img, .home_flow-main-item__image source {
			width: 100%;
		}
	.home_flow-main-item__title {
		font-size: 18rem;
		padding: 0;
	}
	.home_flow-main-item__text {
		padding: 0;
	}

	.feature__inner{
		padding: 60px 40px 80px 40px;
	}
}
@media screen and (min-width: 920px) {
	.home_reason2-main-div {
		flex-flow: row;
		align-items: flex-start;
	}
		.home_reason2-main-div .home_reason2-main-div__left {
			margin-left: 24px;
		}
	/* home_posts */
	/* PCではコラムが2つ以上ある場合、タイトルはカードのmax-widthである360px2枚分と間の幅3vw分の幅に */
	.home_posts__title:has(+ .home_posts-ul .home_posts-li:nth-child(2)) {
		width: calc(720px + 3vw);
	}
	/* 3つ以上ある場合のタイトルは左寄せ */
	.home_posts__title:has(+ .home_posts-ul .home_posts-li:nth-child(3)) {
		width: 100%;
	}
}

@media screen and (min-width: 1280px) {
	.feature {
		margin: 0 calc((50dvw - 592px) * -1);
		padding: 0 calc(50dvw - 592px);
	}
}

@media screen and (min-width: 1024px) {
	/* home_greeting */
	.home_greeting {
		padding: 80px 0;
		width: 100%;
		max-width: 1000px;
	}
	.home_greeting-top {
		margin-top: 0;
	}
	.home_greeting-top__image {
		max-width: 1000px;
	}
	.home_greeting-main {
		padding-top: 24px;
	}
	/* home_reason */
	.home_reason2 {
		padding: 80px 0;
	}
	/* home_mirai akademi */
	.home_akademi {
		margin-left: calc((100vw - 100%) / -2);
	}
	.home_parallax-img-div {
		margin-left: calc((100vw - 100%) / -2);
		height: 519px;
		height: 100%;
	}
	.home_akademi-wrapper {
		background: linear-gradient(95deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.88) 56%, rgba(255, 255, 255, 0) 100%);
	}
	.home_akademi-main {
		flex-direction: row;
		justify-content: space-between;
		padding: 80px calc((100vw - 1024px) / 2) 52px;
		width: 100vw;
		height: auto;
	}
	.home_akademi-main--mirai {
		padding-top: 50px;
	}
	.home_akademi-main_left {
		width: 600px;
	}
	.home_akademi-main_left__title {
		font-size: 30px;
	}
	.home_akademi-main_right__image {
		width: 552px;
		height: 336px;
	}

	/* home_flow */
		.home_flow-main :first-child {
			margin-left: 0;
		}
		.home_flow-main :last-child {
			margin-right: 0;
		}
	.home_flow-main-item__title {
		font-size: 22px;
		padding: 0 2.5vw;
	}
	.home_flow-main-item__text {
		padding: 0 2.5vw;
	}
	/* home_posts */
	.home_column {
		padding-top: 80px;
		padding-bottom: 80px;
	}
	.home_column__link {
		margin-top: 50px;
	}
	.home_posts__title {
		margin-top: 40px;
	}
	/* home_news */
	.home_news {
		padding: 80px 0;
	}
	.home_news-main {
		margin-top: 40px;
	}
	.home_news__link {
		margin-top: 64px;
	}
	.home .news-archive-li__title {
		margin-left: 0;
	}

	.home .widget_home_field {
		padding: 0 0;
		background-color: #F0F4F2;
		margin: 0;
	}

}

@media screen and (min-width: 1184px) {
	.widget_home--full,
	.home--post .widget_home {
		margin: 0 calc(50% - 50vw);
		padding: 0 calc(50vw - 50%);
	}
	
	/* home_greeting */
	.home_greeting,
	.home_greeting-top__image {
		max-width: 1184px;
	}
	/* home_mirai akademi */
	.home_akademi-main {
		padding: 80px calc((100vw - var(--main_full-width)) / 2) 52px;
	}
	.home_akademi-main--mirai {
		padding-top: 50px;
	}
	/* home_flow */
	.home_flow-main-item {
		width: 360px;
		max-width: 360px;
		margin: 0;
	}
	.home_flow-main-item__image {
		width: 360px;
	}
		.home_flow-main-item__image img {
			width: 360px;
			height: 209px;
		}
	/* home_middle-cta */
	.widget_home.widget_home_middle_cta_ufw {
		margin: 0 calc((50dvw - 592px)* -1);
	}
	/* home_posts */
	.home_column {
		padding-right: calc(50% - 592px);
		padding-left: calc(50% - 592px);
		width: var(--main_full-width);
	}
	/* PCではコラムが2つ以上ある場合、タイトルはカードのwidthである380px2枚分と間の幅22px分の幅に */
	.home_posts__title:has(+ .home_posts-ul .home_posts-li:nth-child(2)) {
		width: 782px;
	}
	/* 3つ以上ある場合のタイトルは左寄せ */
	.home_posts__title:has(+ .home_posts-ul .home_posts-li:nth-child(3)) {
		width: 100%;
	}
	/* ２つ以上ある場合のカードの間隔 */
	.home_posts-ul:has(> :nth-child(2)) {
		column-gap: 22px;
	}
	.home_posts-li {
		margin: 0;
		max-width: 380px;
	}
	.home_posts-li-top__image {
		width: 100%;
		height: 230px;
	}
		.home_posts-li-top__image source,
		.home_posts-li-top__image img {
			max-width: 380px;
			height: 230px;
		}
	.home_posts-li-detail__card {
		width: 380px;
		height: 555px;
	}
	.home_column .cpt-categories {
		display: block;
	}
	.ov-card{
		width: 50%;
	}
	.ov-image {
		width: 50%;
	}
	.ov-row {
		display: flex;
		flex-direction: row-reverse;
	}


}

@charset "utf-8";

/* ============================================
   home-access（事務所アクセス）
   ============================================ */
.home-access {
	padding: 64px 5.33vw 72px;
	background-color: #F0F4F2;
}

.home-access__inner {
	max-width: 1200px;
	margin: 0 auto;
}

/* --- ヘッダーエリア --- */
.home-access__head {
	text-align: center;
	margin-bottom: 32px;
}

.home-access__title {
	font-family: "Noto Serif JP", serif;
	font-size: 32px;
	font-weight: 400;
	color: #163128;
	margin: 0 0 16px;
	letter-spacing: 0.08em;
}

.home-access__subtitle {
	font-size: 14px;
	color: #444;
	line-height: 1.9;
	margin: 0;
	letter-spacing: 0.02em;
}

/* --- カードグリッド --- */
.home-access__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

/* --- カード --- */
.home-access__card {
	background-color: #fff;
	border-top: 4px solid #A18D68;
	padding: 28px 28px 24px;
	box-sizing: border-box;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.home-access__card-name {
	font-family: "Noto Serif JP", serif;
	font-size: 18px;
	font-weight: 700;
	color: #163128;
	margin: 0 0 16px;
	letter-spacing: 0.04em;
}

.home-access__card-address {
	font-size: 13px;
	color: #555;
	line-height: 1.85;
	margin: 0 0 20px;
	letter-spacing: 0.02em;
}

.home-access__card-tel {
	font-size: 24px;
	font-weight: 700;
	color: #163128;
	margin: 0 0 20px;
	letter-spacing: 0.04em;
	font-feature-settings: "tnum";
}

.home-access__card-map {
	display: inline-block;
	padding: 10px 20px;
	background-color: #163128;
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: background-color 0.18s;
}

.home-access__card-map:hover {
	background-color: #1f4535;
	color: #fff;
}

/* ============================================
   PC (768px+)
   ============================================ */
@media screen and (min-width: 768px) {
	.home-access__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
		max-width: 1120px;
		margin: 0 auto;
	}
	.home-access__card {
		max-width: 352px;
		margin: 8px;
	}

}

/* ============================================
   PC (1024px+)
   ============================================ */
@media screen and (min-width: 1024px) {
	.home-access {
		padding: 80px 0;
	}

	.home-access__title {
		font-size: 32px;
		margin-bottom: 20px;
	}

	.home-access__subtitle {
		font-size: 15px;
	}

	.home-access__card {
		padding: 32px 32px 28px;
	}

	.home-access__card-name {
		font-size: 19px;
	}

	.home-access__card-address {
		font-size: 14px;
	}

	.home-access__card-tel {
		font-size: 26px;
	}
}

@media screen and (min-width: 1184px) {
.widget_home--full, .home--post .widget_home {
	margin: 0 calc(50% - 50vw);
	padding: 0 0;
}
}

.sm-flow {
	max-width: unset;
}

.sm-footer {
	margin-top: 0 !important;
}