/*
Theme Name: htb_2025
Theme URI: 
Author: 
Author URI: 
Description: 
Version: 1.0
License: 
License URI: 
Tags: 
Text Domain: 
*/
@charset "UTF-8";
/*------------------------------------------------------------------
********************************************************************
 * ▼構成
 * ・ベースとなるCSS
 * ・スマホ用（@media screen and (max-width: 767px) {} ）
 * 
 * リセットCSS      css / destyle.min.css
 * モジュール系CSS  css / default.css
 * ページ共通CSS    style.css
 * 各ページCSS      css / (top.css, business.css, message.css,,,)
********************************************************************
--------------------------------------------------------------------*/

:root {
	/* グレー系 */
	--black-base:    #333333; /* ベースの黒 - 主にテキストに使用 */
	--gray-dark:     #3F3F3F; /* 濃いグレー - 背景に使用 */
	--gray-darker:   #B1B1B1; /* 暗めのグレー */
	--gray-line:     #D2D2D2; /* 暗めのグレー - 線に使用 */
	--gray-bg-dark:  #D9D9D9; /* 暗めのグレー - 背景に使用 */
	--gray-bg-light: #F5F5F5; /* 明るめのグレー - 背景に使用 */
	
	/* 青系 */
	--blue-dark:           #1668C1; /* 暗めの青 - ベースカラー */
	--blue-bright:         #077EFF; /* 明るめの青 */
	--blue-gradient-start: #0652D5; /* グラデーション開始 */
	--blue-gradient-end:   #004EA2; /* グラデーション終了 */
	--blue-light:          #6AB2FF; /* 明るめの青（別トーン） */
	--blue-extra-light:    #EBF4FF; /* かなり明るい青 */
	
	/* オレンジ系 */
	--orange-main:  #F84B38; /* オレンジ（濃いめ） */
	--orange-light: #FF9185; /* オレンジ（明るめ） */
	
	/* 黄緑系 */
	--green-yellow:       #06C655; /* 黄緑（鮮やか） */
	--green-yellow-light: #76D99F; /* 黄緑（明るめ） */

	/* その他の色 */
	--white: #fff;
	
	/* コンテンツ幅 */
	--content-width: 1280px;
	--content-max-width: 1728px;
}


/*--------------------------------------------------
**************************************************
  基本
**************************************************
--------------------------------------------------*/
html {
	scroll-behavior: smooth; /* スムーススクロール */
	font-size: 62.5%; /* ブラウザ標準16pxの62.5% → 1rem = 10px */
}
@media (max-width: 767px) {
	html {
		font-size: 2.6vw;
	}
}

body {
	margin: 0px;
	padding: 0px;
	background: none repeat scroll 0% 0%;
	background-attachment: scroll;
	font-family: "Noto Sans JP", YuGothic, "Yu Gothic Medium", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	line-height: 1.6;
	letter-spacing: 0.8px;
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--black-base);
}

/* スマホでハンバーガーメニューを開いた時にスクロールさせない */
body.no_scroll {
	overflow: hidden;
	height: 100vh; /* iOS対策 */
}

img{
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	font-style: italic;
	background-repeat: no-repeat;
	background-size: cover;
	shape-margin: 0.75rem;
}

.inner {
	max-width: var(--content-width);
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

/* SP */
@media screen and (max-width: 767px) {
	.container.menu_open::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		z-index: 10;
		display: block;
		width: 100%;
		height: 100vh;
		min-height: 100vh;
		background: #f5f5f5;
	}
}


/*--------------------------------------------------
**************************************************
  Webフォント
**************************************************
--------------------------------------------------*/
.poppins {
	font-family: "Poppins", sans-serif;
}


/*--------------------------------------------------
**************************************************
  色
**************************************************
--------------------------------------------------*/
.txt_blue_1 {
	color: var(--blue-dark);
}


/*--------------------------------------------------
**************************************************
  リンク系
**************************************************
--------------------------------------------------*/
a {
	color: var(--black-base);
	text-decoration: none;
	transition: all 1s ease;
}

a:hover {
	color: var(--blue-dark);
}

a img{
	transition: 0.5s;
}

a img:hover {
	opacity: 0.7;
	transition: 0.5s;
}

a[href^="tel:"] {
	pointer-events: none;
	color: var(--black-base);
}

/* SP */
@media screen and (max-width: 767px) {
	a[href^="tel:"] {
		pointer-events: auto;
	}
}

/* PC */
@media (min-width: 768px) {
	.text_link_underline {
		position: relative;
		text-decoration: none;
		color: var(--black-base);
		transition: color 0.3s ease;
	}

	.text_link_underline:hover {
		color: var(--blue-dark);
	}

	.text_link_underline::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: -2px;
		width: 0;
		height: 1px;
		background-color: var(--blue-dark);
		transition: width 0.3s ease;
	}

	.text_link_underline:hover::before {
		width: 100%;
	}
}


/*--------------------------------------------------
**************************************************
  ヘッダー
**************************************************
--------------------------------------------------*/
header {
	position: relative;
	z-index: 50;
	width: min(1852px, 100% - 24px);
	margin: 0 auto;
	box-shadow: 0px 0px 15px 0px #0000000D;
	background: rgba(255, 255, 255, 0.95);
	border-radius: 50px;
}

header.is-hover-guide {
	border-radius: 50px 50px 0 0;
}

.header_inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	height: 100px; /* 見た目安定用 */
	padding: 30px 24px 30px 50px;
}

.site_name a {
	white-space: nowrap;
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1;
}

/* SP */
@media screen and (max-width: 767px) {
	header.is-hover-guide {
		border-radius: 50px;
	}

	.container.menu_open header {
		box-shadow: 0px 0px 10px 0px #00000040;
	}

	.header_inner {
		height: auto;
		padding: 14px 20px 16px;
	}

	.site_name a {
		font-size: 1.6rem;
	}
}

/* PC（小さい画面） */
@media screen and (max-width: 1615px) {
	.header_inner {
		padding-left: 30px;
	}

	.site_name a {
		font-size: 2.0rem;
	}
}

/* PC（タブレット） */
@media screen and (max-width: 1280px) {
	.header_inner {
		padding: 20px 24px;
	}

	.site_name a {
		font-size: 1.8rem;
		font-weight: 700;
	}
}


/*--------------------------------------------------
**************************************************
  ハンバーガーメニュー（スマホ）
**************************************************
--------------------------------------------------*/
.menu_btn {
	cursor: pointer;
	position: relative;
	width: 25px;
	height: 19px;
	background: none;
	border: none;
}

.menu_btn .bar {
	display: block;
	width: 100%;
	height: 3px;
	background: var(--black-base);
	border-radius: 99px;
	transition: all 0.3s ease;
}

.menu_btn .bar:nth-child(2) {
	position: absolute;
	top: 8px;
	left: 0;
}

.menu_btn .bar:nth-child(3) {
	position: absolute;
	left: 0;
	bottom: 0;
}

/* 開いた時 */
.menu_btn.open .bar:nth-child(1) {
	transform: rotate(45deg);
	position: absolute;
	top: 8px;
}

.menu_btn.open .bar:nth-child(2) {
	opacity: 0;
}

.menu_btn.open .bar:nth-child(3) {
	transform: rotate(-45deg);
	position: absolute;
	top: 8px;
}


/*--------------------------------------------------
**************************************************
  グローバルナビゲーション
**************************************************
--------------------------------------------------*/
.nav_list {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 32px;
	margin: 0;
	padding: 0;
}

.nav_list > li {
	position: relative;
}

.nav_list li a,
.nav_list li .no_link {
	font-size: 1.5rem;
	font-weight: 600;
}

.head_cta a {
	white-space: nowrap;
	display: inline-block;
	padding: 14px 50px;
	box-shadow: 0 3px 8px rgba(255, 75, 50, 0.35);
	background: var(--orange-main);
	border: var(--orange-main) 2px solid;
	border-radius: 9999px;
	text-align: center;
	font-weight: 800;
	color: #fff;
}

/* PC */
@media (min-width: 769px) {
	.main_nav {
		flex: 1;
	}

	.nav_list > li {
		position: unset;
	}

	.nav_list > li > a,
	.nav_list li .no_link {
		position: relative;
	}

	.nav_list > li:not(.head_cta) > a::before,
	.nav_list li .no_link::before {
		content: '';
		position: absolute;
		bottom: -8px;
		left: 0;
		display: block;
		width: 0;
		height: 3px;
		background: var(--blue-dark);
		transition: 0.3s;
	}

	.nav_list > li:not(.head_cta) > a:hover::before,
	.nav_list li .no_link:hover::before {
		width: 100%;
	}

	.nav_list li .no_link {
		padding-right: 20px;
	}

	.nav_list li .no_link::after {
		content: '';
		position: absolute;
		top: 40%;
		right: 0;
		transform: translateY(-40%) rotate(45deg);
		display: block;
		width: 10px;
		height: 10px;
		border-right: var(--black-base) 2px solid;
		border-bottom: var(--black-base) 2px solid;
	}

	/* サブメニューの初期状態 */
	.nav_list > li.sub .sub_wrap {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		transition: all 0.2s ease;
	}

	.nav_list > li.sub .sub_wrap::before {
		content: "";
		position: absolute;
		left: 0;
		top: -40px;     /* 隙間ぶん上に伸ばす */
		width: 100%;
		height: 40px;   /* ここを大きくすると“離れにくい” */
	}

	.nav_list > li.sub:hover .sub_wrap {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.nav_list > li.sub:hover .sub_wrap .sub_wrap_inner {
		padding: 0 2.5% 40px;
		background: rgba(255, 255, 255, 0.95);
		border-radius: 0 0 50px 50px;
	}

	.nav_list .sub_wrap_inner .sub_nav_heading {
		text-align: center;
	}

	.nav_list .sub_wrap_inner .sub_nav_heading .sub {
		font-family: "Poppins", sans-serif;
		font-size: 1.6rem;
		font-weight: 600;
		color: var(--blue-dark);
	}

	.nav_list .sub_wrap_inner .sub_nav_heading .main {
		font-size: 2.6rem;
		font-weight: 700;
	}

	.nav_list .sub_wrap_inner .sub_nav_links {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 25px;
		margin-top: 24px;
	}

	.nav_list .sub_wrap_inner .sub_nav_links > li {
		width: 170px;
	}

	.nav_list .sub_wrap_inner .sub_nav_links .thumb {
		margin-bottom: 10px;
	}

	.nav_list .sub_wrap_inner .sub_nav_links .text {
		position: relative;
		font-size: 1.4rem;
		font-weight: 500;
		transition: width 0.3s ease;
	}
	/*
	.nav_list .sub_wrap_inner .sub_nav_links .text::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: -2px;
		width: 0;
		height: 1px;
		background-color: var(--blue-dark);
		transition: width 0.3s ease;
	}

	.nav_list .sub_wrap_inner .sub_nav_links a:hover .text::before {
		width: 100%;
	}
	*/

	.head_cta a:hover {
		transform: translateY(-4px);
		box-shadow: 0px 12px 24px #00000040;
		color: var(--white);
	}
}

/* PC（小さい画面） */
@media screen and (max-width: 1615px) {
	.nav_list {
		gap: 25px;
	}

	.nav_list li a,
	.nav_list li .no_link {
		font-size: 1.2rem;
	}

	.head_cta a {
		padding: 16px 30px;
	}
}

/* PC（タブレット） */
@media screen and (max-width: 1280px) {
	.nav_list {
		gap: 20px;
	}

	.nav_list li a,
	.nav_list li .no_link {
		font-size: 1.1rem;
	}
}

/* SP */
@media screen and (max-width: 767px) {
	.main_nav {
		display: none;
	}

	.main_nav.open {
		position: absolute;
		top: 70px;
		left: 50%;
		transform: translateX(-50%);
		display: block;
		width: 100%;
		height: 85dvh;
		padding: 20px 0 30px;
		/*
		background: rgba(255, 255, 255, 0.95);
		border-radius: 15px;
		*/
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.nav_list {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0;
	}

	.nav_list > li:not(.head_cta) {
		border-bottom: #d2d2d2 1px solid;
	}

	.nav_list > li.sub {
		
	}

	.nav_list .head_cta {
		margin-bottom: 20px;
	}

	.nav_list .sub .no_link {
		position: relative;
		display: block;
		padding: 24px 0;
	}

	.nav_list .sub .no_link::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 5px;
		transform: translateY(-50%) rotate(45deg);
		display: block;
		width: 10px;
		height: 10px;
		border-right: var(--black-base) 2px solid;
		border-bottom: var(--black-base) 2px solid;
	}

	.nav_list .sub.active .no_link::after {
		top: 60%;
		transform: translateY(-50%) rotate(-135deg);
	}

	.nav_list > li > a,
	.nav_list > li .no_link {
		font-size: 1.5rem;
		font-weight: 600;
	}

	.nav_list > li > a {
		display: block;
		padding: 24px 0;
	}

	.nav_list .head_cta a {
		display: block;
		width: 90%;
		margin: 10px auto 0;
		font-size: 1.6rem;
		font-weight: 800;
	}

	.nav_list .sub_wrap {
		display: none;
	}

	.nav_list .sub_nav_links {
		margin-top: 24px;
	}
	
	.nav_list .sub_nav_links > li + li {
		margin-top: 10px;
	}

	.nav_list .sub_nav_links a {
		display: flex;
		align-items: center;
		background: var(--white);
		border-radius: 8px;
	}

	.nav_list .sub_nav_links a .thumb {
		width: 30%;
	}

	.nav_list .sub_nav_links a .text {
		padding-left: 15px;
		width: 70%;
		height: 100%;
	}
	
}


/*--------------------------------------------------
**************************************************
  パンくず
**************************************************
--------------------------------------------------*/
.breadcrumbs {
	max-width: var(--content-width);
	width: 90%;
	margin: 40px auto 0;
}

.breadcrumbs > span {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 8px;
}

.breadcrumbs span {
	font-size: 1.4rem;
	font-weight: 500;
}
/*
.breadcrumbs span span {
	white-space: nowrap;
}
*/

/* PC */
@media screen and (min-width: 768px) {
	.breadcrumbs a {
		position: relative;
		transition: color 0.3s ease;
	}

	.breadcrumbs a:hover {
		color: var(--black-base);
	}

	.breadcrumbs a::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: -2px;
		width: 0;
		height: 1px;
		background-color: var(--black-base);
		transition: width 0.3s ease;
	}

	.breadcrumbs a:hover::before {
		width: 100%;
	}
}

/* SP */
@media screen and (max-width: 767px) {
	.breadcrumbs {
		margin-top: 24px;
	}

	.breadcrumbs > span {
		gap: 5px 4px;
	}

	.breadcrumbs span {
		font-size: 1.2rem;
	}
}


/*--------------------------------------------------
**************************************************
  メインビジュアル（共通）
**************************************************
--------------------------------------------------*/
.mv {
	padding-top: 24px;
}

/* SP */
@media screen and (max-width: 767px) {
	.mv {
		padding-top: 16px;
	}
}


/*--------------------------------------------------
**************************************************
  メインビジュアル（下層ページ）
**************************************************
--------------------------------------------------*/
/* 写真なし */
.sub_page .mv.dot {
	min-height: 635px;
	margin-bottom: 120px;
}

.sub_page .mv.dot .inner {
	margin-top: 120px;
}

.sub_page .mv.dot .description {
	margin-top: 40px;
	text-align: center;
	font-weight: 500;
	line-height: 2;
}

/* 写真つき */
.sub_page .mv.picture {
	min-height: 778px;
	margin-bottom: 120px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.sub_page .mv.picture .inner {
	margin-top: 240px;
}

.sub_page .mv.picture .mv_text .heading_01 {
	text-align: left;
}

.sub_page .mv.picture .mv_text .description {
	margin-top: 40px;
	font-weight: 500;
	line-height: 2;
}

/* PC */
@media screen and (min-width: 768px) {
	/* 写真なし */
	.sub_page .mv.dot {
		background-color: #f2f2f2;
		background-image: 
			url(imgs/other/dot_02.png),
			url(imgs/other/dot_02.png);
		background-repeat: no-repeat, no-repeat;
		background-position:
			left 20px top 20px,
			right 20px bottom 20px;
		background-size:
			509px auto,
			509px auto;
	}
}

/* SP */
@media screen and (max-width: 767px) {
	/* 写真なし */
	.sub_page .mv.dot {
		min-height: 380px;
		margin-bottom: 64px;
		padding-bottom: 40px;
		background: #f2f2f2 url(imgs/other/dot_02_sp.png) no-repeat left top / 70% auto;
	}

	.sub_page .mv.dot .inner {
		margin-top: 64px;
	}

	.sub_page .mv.dot .mv_text .heading_01 .sub {
		font-size: 1.6rem;
	}

	.sub_page .mv.dot .mv_text .heading_01 .main {
		font-size: 2.4rem;
	}

	.sub_page .mv.dot .mv_text .description {
		margin-top: 24px;
		text-align: left;
		font-size: 1.4rem;
	}

	/* 写真つき */
	.sub_page .mv.picture {
		min-height: 492px;
		margin-bottom: 64px;
		padding-bottom: 40px;
	}

	.sub_page .mv.picture .inner {
		margin-top: 128px;
	}

	.sub_page .mv.picture .mv_text .heading_01 .sub {
		font-size: 1.6rem;
	}

	.sub_page .mv.picture .mv_text .heading_01 .main {
		font-size: 2.4rem;
	}

	.sub_page .mv.picture .mv_text .description {
		margin-top: 32px;
		font-size: 1.4rem;
	}
}


/*--------------------------------------------------
**************************************************
  見出し
**************************************************
--------------------------------------------------*/
.heading_01 {
	text-align: center;
}

.heading_01 .sub {
	font-family: "Poppins", sans-serif;
	font-size: 3.0rem;
	font-weight: 600;
	color: var(--blue-gradient-end);
}

.heading_01.small .sub {
	font-size: 2.4rem;
}

.heading_01 .main {
	font-size: 5.0rem;
	font-weight: 700;
}

.heading_01.small .main {
	font-size: 4.0rem;
}

/* sp */
@media screen and (max-width: 767px) {
	.heading_01 .sub,
	.heading_01.small .sub {
		font-size: 2.0rem;
	}

	.heading_01 .main,
	.heading_01.small .main {
		font-size: 2.6rem;
	}
}


/*--------------------------------------------------
**************************************************
  Contact（フッター前）
**************************************************
--------------------------------------------------*/
.contact_wrap {
	padding: 120px 0;
	background: #f7f7f7;
}

.sub_page .contact_wrap {
	margin-top: 120px;
}

.contact_box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	width: min(var(--content-width), 100% - 100px);
	margin: auto;
	background: var(--gray-dark) url(imgs/common/footer_contact.png) no-repeat right center / auto 100%;
	border-radius: 16px;
}

.contact_box .text_box {
	max-width: calc(var(--content-width) - 410px);
	padding: 100px 50px 100px 80px;
	border-radius: 16px 0 0 16px;
}

.contact_box .heading {
	font-family: "Poppins", sans-serif;
	font-size: 10.0rem;
	font-weight: 600;
	line-height: 1;
	color: #69B1FF;
}

.contact_box .catch {
	margin-top: 39px;
	font-size: 3.0rem;
	font-weight: 800;
	color: var(--white);
}

.contact_box .text_1 {
	font-size: 1.8rem;
	font-weight: 600;
	color: var(--white);
	opacity: 0.5;
}

.contact_box .link_box {
	margin-top: 50px;
}

/* SP */
@media screen and (max-width: 767px) {
	.contact_wrap {
		padding: 80px 0 40px;
	}

	.sub_page .contact_wrap {
		margin-top: 64px;
	}

	.contact_box {
		display: block;
		width: 92%;
		padding: 0;
		background: var(--gray-dark);
	}

	.contact_box .text_box {
		padding: 64px 18px;
	}

	.contact_box .heading {
		text-align: center;
		font-size: 5.0rem;
	}

	.contact_box .catch {
		text-align: center;
		margin-top: 21px;
		font-size: 1.8rem;
	}

	.contact_box .text_1 {
		text-align: center;
		margin-top: 16px;
		font-size: 1.4rem;
	}

	.contact_box .link_box {
		margin-top: 32px;
	}
}


/*--------------------------------------------------
**************************************************
  フッター
**************************************************
--------------------------------------------------*/
footer {
	margin-top: 64px;
}

/* SP */
@media screen and (max-width: 767px) {
	footer {
		margin-top: 0;
		padding-top: 64px;
	}
}

.footer_strong_point {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 3px;
}

.footer_strong_point .text {
	padding: 3px 16px;
	background: #404040;
	border-radius: 3px;
	font-weight: 600;
	color: var(--white);
}

.footer_strong_point .batsu {
	font-weight: 700;
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_strong_point .text {
		padding: 3px 12px;
		font-size: 1.3rem;
	}

	.footer_strong_point .batsu {
		font-size: 1.0rem;
	}
}

.footer_site_name {
	margin-top: 16px;
	text-align: center;
}

.footer_site_name .sub {
	font-weight: 500;
}

.footer_site_name .main {
	margin-top: -8px;
	font-size: 2.6rem;
	font-weight: 600;
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_site_name .sub {
		font-size: 1.3rem;
	}

	.footer_site_name .main {
		margin-top: -2px;
		font-size: 2.2rem;
	}
}

.footer_tel_box {
	margin-top: 24px;
	text-align: center;
}

.footer_tel_box a[href^="tel:"] {
	padding-left: 40px;
	background: url(imgs/common/icon_tel_01.png) no-repeat left center / 35px;
	font-family: "Poppins", sans-serif;
	font-size: 3.6rem;
	font-weight: 600;
	line-height: 1;
}

.footer_tel_box .tel_info {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 10px;
}

.footer_tel_box .tel_info li {
	padding: 0 16px;
	border: var(--gray-line) 1px solid;
	border-radius: 8px;
	font-size: 1.3rem;
	font-weight: 600;
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_tel_box {
		margin-top: 26px;
	}

	.footer_tel_box a[href^="tel:"] {
		padding-left: 35px;
		background: url(imgs/common/icon_tel_01_sp.png) no-repeat left center / 28px;
		font-size: 3.0rem;
	}
}

.footer_sns {
	display: flex;
	justify-content: center;
	gap: 5px;
	margin-top: 16px;
}

.footer_menu_box {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	width: min(var(--content-width), 100% - 100px);
	margin: 22px auto 0;
}

.footer_menu_box .menu_item {
	padding: 32px;
	background: var(--white);
	border-radius: 8px;
	box-shadow: 0px 0px 40px 0px #00000026;
}

.footer_menu_box .menu_item .main_link a,
.footer_menu_box .menu_item .main_link .no_link {
	font-weight: 600;
	color: var(--blue-bright);
}

.footer_menu_box .menu_item .sub_link {
	margin-top: 24px;
}

.footer_menu_box .menu_item .sub_link li {
	position: relative;
	margin-top: 5px;
}

.footer_menu_box .menu_item .sub_link li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 11px;
	transform: rotate(45deg);
	display: block;
	width: 8px;
	height: 8px;
	border-top: var(--black-base) 1px solid;
	border-right: var(--black-base) 1px solid;
}

.footer_menu_box .menu_item .sub_link a {
	display: inline-block;
	margin-left: 20px;
	font-size: 1.4rem;
	font-weight: 500;
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_menu_box {
		grid-template-columns: 1fr;
		gap: 16px;
		width: 95%;
		margin-top: 24px;
	}

	.footer_menu_box .menu_item {
		padding: 24px;
	}

	.footer_menu_box .menu_item .main_link {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.footer_menu_box .menu_item .main_link .accordion_btn {
		position: relative;
		display: block;
		width: 12px;
		height: 12px;
	}

	.footer_menu_box .menu_item .main_link .accordion_btn::before,
	.footer_menu_box .menu_item .main_link .accordion_btn::after {
		content: '';
		position: absolute;
		display: block;
		width: 100%;
		height: 2px;
		background: var(--black-base);
		border-radius: 99px;
	}

	.footer_menu_box .menu_item .main_link .accordion_btn::before {
		top: 50%;
		left: 0;
		transform: translateY(-50%);
	}

	.footer_menu_box .menu_item .main_link .accordion_btn::after {
		top: 40%;
		left: 50%;
		transform: translateX(-50%) rotate(90deg);
	}

	.footer_menu_box .menu_item .main_link .accordion_btn.open::after {
		top: 50%;
		left: 0;
		transform: translateY(-50%) rotate(0deg);
	}

	.footer_menu_box .menu_item .sub_link {
		overflow: hidden;
		transition: height .3s ease;
		height: 0;
		margin: 0;
		padding: 0;
	}

	.footer_menu_box .menu_item .sub_link a {
		font-size: 1.3rem;
	}
}

.footer_cta_box {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 30px;
	width: min(var(--content-width), 100% - 100px);
	margin: 10px auto 0;
	padding: 30px;
	box-shadow: 0px 0px 40px 0px #00000026;
}

.footer_cta_box a {
	display: block;
	width: 100%;
	padding: 54px;
	border-radius: 8px;
	text-align: center;
}

.footer_cta_box a.mail {
	background: var(--orange-main);
	border: var(--orange-main) 2px solid;
}

.footer_cta_box a.dentaku {
	background: linear-gradient(90deg, #1668C1 0%, #2089FA 100%);
	border: var(--blue-gradient-end) 2px solid;
}

.footer_cta_box a span {
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1;
	color: var(--white);
	transition: all 1s ease;
}

.footer_cta_box a.mail span {
	padding-left: 40px;
	background: url(imgs/common/icon_mail_01.png) no-repeat left top 60% / 26px;
}

.footer_cta_box a.dentaku span {
	padding-left: 40px;
	background: url(imgs/common/icon_dentaku_01.png) no-repeat left top 70% / 24px;
}

/* PC */
@media screen and (min-width: 768px) {
	/*
	.footer_cta_box a.mail:hover {
		background: var(--white);
	}

	.footer_cta_box a.dentaku:hover {
		background: var(--white);
	}

	.footer_cta_box a.mail:hover span {
		background-image: url(imgs/common/icon_mail_02.png);
		color: var(--orange-main);
	}

	.footer_cta_box a.dentaku:hover span {
		background-image: url(imgs/common/icon_dentaku_02.png);
		color: var(--blue-gradient-end);
	}
	*/
	.footer_cta_box a:hover {
		transform: translateY(-4px);
		box-shadow: 0px 12px 24px #00000040;
	}
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_cta_box {
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		gap: 10px;
		width: 95%;
		margin: 40px auto 0;
		padding: 0;
		box-shadow: none;
	}

	.footer_cta_box a {
		padding: 16px;
	}

	.footer_cta_box a span {
		font-size: 1.6rem;
	}

	.footer_cta_box a.mail span {
		padding-left: 30px;
		background: url(imgs/common/icon_mail_01.png) no-repeat left top 60% / 20px;
	}

	.footer_cta_box a.dentaku span {
		padding-left: 30px;
		background: url(imgs/common/icon_dentaku_01.png) no-repeat left top 70% / 18px;
	}
}

.footer_sub_menu_box {
	display: flex;
	justify-content: flex-end;
	gap: 16px;
	width: min(var(--content-width), 100% - 100px);
	margin: 24px auto 0;
}

.footer_sub_menu_box a {
	font-size: 1.3rem;
	font-weight: 500;
}

/* SP */
@media screen and (max-width: 767px) {
	.footer_sub_menu_box {
		justify-content: center;
		width: 95%;
		margin-top: 40px;
	}
}


/*--------------------------------------------------
**************************************************
  コピーライト
**************************************************
--------------------------------------------------*/
#copyright {
	margin: 64px 0;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-size: 1.1rem;
	font-weight: 500;
}

/* SP */
@media screen and (max-width: 767px) {
	#copyright {
		margin: 24px 0 0;
		padding-bottom: 40px;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（リンク）
**************************************************
--------------------------------------------------*/
.link_1 {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	max-width: 400px;
	width: 100%;
	height: 70px;
	padding: 12px 0 12px 28px;
	background: var(--blue-gradient-end);
	border-radius: 50px;
	font-weight: 700;
	color: #fff;
	transition: 0.3s ease;
}

.link_1 .arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--blue-bright);
	border-radius: 50%;
	width: 70px;
	height: 70px;
	text-align: left;
	font-size: 1.6rem;
	transition: 0.3s ease;
}

.link_1 .arrow::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	display: inline-block;
	width: 9px;
	height: 9px;
	border-top: var(--white) 1px solid;
	border-right: var(--white) 1px solid;
}

.link_2 {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	max-width: 460px;
	width: 100%;
	height: 80px;
	padding: 12px 0 12px 28px;
	background: var(--orange-main);
	border-radius: 50px;
	font-size: 2.0rem;
	font-weight: 700;
	color: #fff;
	transition: 0.3s ease;
}

.link_2 .icon {
	padding-left: 35px;
	background: url(imgs/common/icon_mail_01.png) no-repeat left top 60% / 24px;
}

.link_2 .arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--orange-light);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	text-align: left;
	font-size: 1.6rem;
	transition: 0.3s ease;
}

.link_2 .arrow::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	display: inline-block;
	width: 9px;
	height: 9px;
	border-top: var(--white) 1px solid;
	border-right: var(--white) 1px solid;
}

.link_3 {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	max-width: 460px;
	width: 100%;
	height: 80px;
	padding: 12px 0 12px 28px;
	background: linear-gradient(90deg, var(--blue-dark) 0%, #2089FA 100%);
	border-radius: 50px;
	font-size: 2.0rem;
	font-weight: 700;
	color: #fff;
	transition: 0.3s ease;
}

.link_3 .icon {
	padding-left: 35px;
	background: url(imgs/common/icon_dentaku_01.png) no-repeat left top 60% / 20px;
}

.link_3 .arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--blue-light);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	text-align: left;
	font-size: 1.6rem;
}

.link_3 .arrow::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	display: inline-block;
	width: 9px;
	height: 9px;
	border-top: var(--white) 1px solid;
	border-right: var(--white) 1px solid;
}

.link_4 {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	max-width: 460px;
	width: 100%;
	height: 80px;
	padding: 12px 0 12px 28px;
	background: var(--green-yellow);
	border-radius: 50px;
	font-size: 2.0rem;
	font-weight: 700;
	color: #fff;
	transition: 0.3s ease;
}

.link_4 .icon {
	padding-left: 45px;
	background: url(imgs/other/line_01.png) no-repeat left top 60% / 33px;
}

.link_4 .arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--green-yellow-light);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	text-align: left;
	font-size: 1.6rem;
	transition: 0.3s ease;
}

.link_4 .arrow::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	display: inline-block;
	width: 9px;
	height: 9px;
	border-top: var(--white) 1px solid;
	border-right: var(--white) 1px solid;
}

.link_5 {
	display: inline-flex;
	align-items: center;
	/* justify-content: space-between; */
	max-width: 400px;
	width: 100%;
	height: 70px;
	padding: 12px 0 12px 0;
	background: var(--blue-gradient-end);
	border-radius: 50px;
	font-weight: 700;
	color: #fff;
	transition: 0.3s ease;
}

.link_5 .arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--blue-bright);
	border-radius: 50%;
	width: 70px;
	height: 70px;
	margin-right: 90px;
	font-size: 1.6rem;
	transition: 0.3s ease;
}

.link_5 .arrow::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	display: inline-block;
	width: 9px;
	height: 9px;
	border-bottom: var(--white) 1px solid;
	border-left: var(--white) 1px solid;
}

/* pc */
@media screen and (min-width: 768px) {
	.link_1:hover,
	.link_2:hover,
	.link_3:hover,
	.link_4:hover,
	.link_5:hover {
		transform: translateY(-4px);
		box-shadow: 0px 12px 24px #00000040;
		color: var(--white);
	}
}

/* sp */
@media screen and (max-width: 767px) {
	.link_1,
	.link_2,
	.link_3,
	.link_4,
	.link_5 {
		height: 60px;
		font-size: 1.4rem;
	}

	.link_2,
	.link_3 {
		padding-left: 25px;
	}

	.link_4 {
		padding: 0 0 0 25px;
	}

	.link_2 .icon {
		padding-left: 30px;
		background-size: 20px;
	}

	.link_3 .icon {
		padding-left: 30px;
		background: url(imgs/common/icon_dentaku_01.png) no-repeat left top 60% / 18px;
	}

	.link_4 .icon {
		padding-left: 35px;
		background: url(imgs/other/line_01.png) no-repeat left top 60% / 25px;
	}

	.link_1 .arrow,
	.link_2 .arrow,
	.link_3 .arrow,
	.link_4 .arrow,
	.link_5 .arrow {
		width: 60px;
		height: 60px;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（コラムリスト）
**************************************************
--------------------------------------------------*/
.column_list a {
	display: block;
	height: 100%;
	box-shadow: 0px 0px 40px 0px #00000026;
	border-radius: 8px;
}

.column_list .thumb {
	height: 220px;
}

.column_list .thumb img {
	object-fit: cover;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 8px 8px 0 0;
}

.column_list .text_box {
	padding: 40px;
}

.column_list .column_ttl {
	font-size: 2.0rem;
	font-weight: 600;
}

.column_list .column_category {
	margin-top: 24px;
	font-family: "Poppins", sans-serif;
	font-size: 1.4rem;
}

.column_list .column_content {
	margin-top: 24px;
	font-size: 1.5rem;
}

.column_list .column_date {
	margin-top: 24px;
	font-family: "Poppins", sans-serif;
	font-size: 1.4rem;
}

/* PC */
@media screen and (min-width: 768px) {
	.column_list .thumb {
		overflow: hidden;
		border-radius: 8px 8px 0 0;
	}

	.column_list a:hover .thumb img {
		transform: scale(1.1);
	}
}

/* SP */
@media screen and (max-width: 767px) {
	.column_list .thumb {
		height: 190px;
	}

	.column_list .text_box {
		padding: 24px;
	}

	.column_list .column_category {
		margin-top: 16px;
	}

	.column_list .column_content {
		margin-top: 16px;
		font-size: 1.4rem;
	}

	.column_list .column_date {
		margin-top: 16px;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（項目名）
**************************************************
--------------------------------------------------*/
.item_ttl_01 {
	font-family: "Poppins", sans-serif;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1;
	color: var(--blue-bright);
}

.item_ttl_01 .num {
	font-size: 4.8rem;
}

.item_ttl_02 {
	position: relative;
}

.item_ttl_02::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 5px;
	height: 50px;
	background: linear-gradient(to bottom, var(--blue-bright) 0%, var(--blue-bright) 50%, var(--blue-gradient-end) 50%, var(--blue-gradient-end) 100%);
}

/* SP */
@media screen and (max-width: 767px) {
	.item_ttl_01 {
		font-size: 1.6rem;
	}

	.item_ttl_01 .num {
		font-size: 4.0rem;
	}

	.item_ttl_02::before {
		height: 100%;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（リストスタイル）
**************************************************
--------------------------------------------------*/
.list_edit_dots li {
	position: relative;
	padding-left: 1.5em;
}

.list_edit_dots li::before {
	content: '';
	position: absolute;
	top: 9px;
	left: 0;
	display: block;
	width: 10px;
	height: 10px;
	background: var(--blue-dark);
	border-radius: 50%;
}


/*--------------------------------------------------
**************************************************
  モジュール（チェックマーク）
**************************************************
--------------------------------------------------*/
.check_01 {
	position: relative;
	display: block;
	width: 52px;
	height: 52px;
	background: url(imgs/other/check_01.png) no-repeat center / cover;
}

.check_02 {
	position: relative;
	display: block;
	width: 28px;
	height: 28px;
	background: url(imgs/other/check_02.png) no-repeat center / cover;
}

/* SP */
@media screen and (max-width: 767px) {
	.check_01 {
		width: 30px;
		height: 30px;
		background-image: url(imgs/other/check_01_sp.png);
	}

	.check_02 {
		width: 20px;
		height: 20px;
		background-image: url(imgs/other/check_02_sp.png);
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（よくある質問）
**************************************************
--------------------------------------------------*/
.faq_question,
.faq_answer {
	position: relative;
	background: #f7f7f7;
}

.faq_question {
	cursor: pointer;
	margin-top: 8px;
	padding: 28px 83px;
	border-radius: 16px 16px;
	font-size: 1.8rem;
	font-weight: 500;
}

.faq_question.active {
	border-radius: 16px 16px 0 0;
}

.faq_answer {
	display: none;
	padding: 0 83px 28px;
	border-radius: 0 0 16px 16px;
	line-height: 2;
}

.faq_question::before,
.faq_answer::before {
	position: absolute;
	top: 24px;
	left: 40px;
	font-family: "Poppins", sans-serif;
	font-size: 2.4rem;
	font-weight: 600;
	color: var(--blue-dark);
}

.faq_question::before {
	content: 'Q';
}

.faq_answer::before {
	content: 'A';
	top: -6px;
}

.faq_question::after {
	content: '';
	position: absolute;
	top: 30px;
	right: 28px;
	display: block;
	width: 24px;
	height: 24px;
	background: url(imgs/other/plus_01.png) no-repeat center / cover;
}

.faq_question.active::after {
	top: 32px;
	right: 30px;
	width: 20px;
	height: 20px;
	background-image: url(imgs/other/minus_01.png);
}

/* SP */
@media screen and (max-width: 767px) {
	.faq_question {
		margin-top: 16px;
		padding: 17px 40px 17px 45px;
		font-size: 1.5rem;
	}

	.faq_answer {
		padding: 0 40px 16px 45px;
		font-size: 1.4rem;
		line-height: 1.8;
	}

	.faq_question::before,
	.faq_answer::before {
		top: 10px;
		left: 16px;
	}

	.faq_answer::before {
		top: -7px;
	}

	.faq_question::after {
		top: 19px;
		right: 16px;
		width: 20px;
		height: 20px;
	}

	.faq_question.active::after {
		top: 19px;
		right: 16px;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（青色グラデーションとドット画像）
**************************************************
--------------------------------------------------*/
/* PC */
@media screen and (min-width: 768px) {
	.bg_blue_gradation_dot {
		background-image: 
			url(imgs/other/dot_01.png),
			url(imgs/other/dot_01.png),
			linear-gradient(131.51deg, #237DDE 11.62%, #0252A8 99.2%);
		background-repeat: no-repeat, no-repeat, no-repeat;
		background-position:
			left 20px top 20px,
			right 20px top 404px,
			left top;
		background-size:
			509px auto,
			509px auto,
			auto;
	}

	.bg_blue_gradation_dot.image_3 {
		background-position:
			left -150px top -150px,
			right -150px bottom 0,
			left top;
	}
}

/* SP */
@media screen and (max-width: 767px) {
	.bg_blue_gradation_dot {
		background-image: linear-gradient(131.51deg, #237DDE 11.62%, #0252A8 99.2%);
	}
}


/*--------------------------------------------------
**************************************************
  「地域を知り尽くした専門家」×「実績」×「安心の伴走体制」
**************************************************
--------------------------------------------------*/
.support_points {
	position: relative;
	margin: 120px 0 380px;
	padding: 120px 0 340px;
	color: var(--white);
}

.support_points h2 {
	text-align: center;
	font-size: 4.0rem;
	font-weight: 400;
	line-height: 1.5;
}

.support_points h2 .batsu {
	font-size: 3.2rem;
}

.support_points .text_box {
	width: 100%;
	margin-top: 40px;
}

.support_points .text_box p {
	text-align: center;
	font-size: 2.0rem;
	font-weight: 600;
	line-height: 2;
}

.support_points .image_box {
	position: absolute;
	top: 350px;
	display: flex;
	justify-content: space-between;
	gap: 40px;
	width: 100%;
}

.support_points .image_box img {
	object-fit: cover;
	width: 100%;
}

.support_points .image_box img:nth-child(2) {
	border-radius: 16px;
}

/* SP */
@media screen and (max-width: 767px) {
	.support_points {
		margin: 120px 0 150px;
		padding: 80px 0 150px;
	}

	.support_points h2 {
		font-size: 2.2rem;
		line-height: 1.3;
	}

	.support_points h2 .batsu {
		font-size: 1.6rem;
	}

	.support_points .text_box p {
		font-size: 1.6rem;
	}

	.support_points .image_box {
		top: 350px;
		left: 50%;
		transform: translateX(-50%);
		display: block;
		width: 90%;
		border-radius: 16px;
	}

	.support_points .image_box img {
		border-radius: 16px;
	}
}


/*--------------------------------------------------
**************************************************
  モジュール（ページャー）
**************************************************
--------------------------------------------------*/
.wp-pagenavi {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 24px;
	margin-top: 120px;
}

.wp-pagenavi a,
.wp-pagenavi span {
	font-family: "Poppins", sans-serif;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
}

.wp-pagenavi a:hover,
.wp-pagenavi .current {
	color: #2089FA;
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 40px;
	background: var(--blue-bright);
	border: var(--blue-bright) 1px solid;
	border-radius: 50%;
	color: var(--white);
}

.wp-pagenavi .previouspostslink:hover,
.wp-pagenavi .nextpostslink:hover {
	background: var(--white);
	color: var(--blue-bright);
}

/* SP */
@media screen and (max-width: 767px) {
	.wp-pagenavi {
		margin-top: 60px;
	}
}
