@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

/* base
-------------------------------------------------------- */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	font: inherit;
	font-size: 100%;
	vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section {
	display: block;
}

html {
	line-height: 1;
}

ul,
ol {
	list-style-type: none;
}

table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

caption,
th,
td {
	text-align: left;
	vertical-align: middle;
}

q,
blockquote {
	quotes: none;
}

q:before,
q:after,
blockquote:before,
blockquote:after {
	content: "";
	content: none;
}

a img {
	border: none;
}

img {
	vertical-align: bottom;
	border: none;
	max-width: 100%;
	height: auto;
}

img[src*=".svg"] {
	width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

*,
:before,
:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font: inherit;
	border: none;
	border-radius: 0;
	outline: none;
	padding: 0;
}

textarea {
	resize: vertical;
}

input[type='checkbox'],
input[type='radio'] {
	display: none;
}

input[type='submit'],
input[type='button'],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

* {
	-webkit-tap-highlight-color: transparent;
}

button::before,
button::after {
	/* 変形や透過のレンダリングを滑らかにする */
	will-change: transform, opacity;
}

/* --------------------------------------------------------
	フォントと背景
-------------------------------------------------------- */
html {
	font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	font-family: "Noto Sans JP", sans-serif;
	color: #333;
	font-size: 1.6rem;
	font-weight: 500;
	background: #fff;
	letter-spacing: 0.8px;
	line-height: 2;
}

.mon {
	font-family: "Montserrat", sans-serif;
}

/* フォント */
.bold {
	font-weight: 700;
}

.heavy {
	font-weight: 900;
}

.tal {
	text-align: left;
}

.tac {
	text-align: center;
}

.tar {
	text-align: right;
}

/* 文字色 */
.blue {
	color: var(--c-sky);
}

.c_blue {
	color: var(--c-blue);
}

.c_gray {
	color: var(--c-gray-text);
}


/* 文字サイズ */
h1,
h2,
h3 {
	font-weight: 700;
}

h2 {
	font-size: 2.8rem;
	line-height: 1.7;
	letter-spacing: 1.4px;
}

hgroup p.en {
	font-family: Montserrat;
	color: var(--c-sky);
	font-size: 1.4rem;
	font-weight: 600;
	line-height: normal;
	letter-spacing: 0.7px;
}

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

	body,
	hgroup p.en {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	h2 {
		font-size: clamp(16px, 100vw * (24 / 402), 24px);
	}
}


/* --------------------------------------------------------
	リンク
-------------------------------------------------------- */
a {
	color: inherit;
	transition: .5s;
}

.opa:hover {
	opacity: 0.5;
	transition: .3s;
}

::-moz-selection {
	color: #fff;
	background: #0f3233;
}

::selection {
	color: #fff;
	background: #0f3233;
}


/* テキストリンク
-------------------------------------------------------- */
a.underline {
	text-decoration: underline;
}

/* アンカーリンク
-------------------------------------------------------- */

/* --------------------------------------------------------
	ロード画面
-------------------------------------------------------- */
/* ロード画面全体 */
#loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: #0f3233;
	/* 背景色 */
	display: flex;
	justify-content: center;
	/* 左右中央 */
	align-items: center;
	/* 上下中央 */
	z-index: 9999;
	transition: opacity 0.8s ease, visibility 0.8s ease;
	/* 画面全体が消える動き */
}

/* ロゴの初期設定とフェードイン指定 */
.loading-logo img {
	width: 152px;
	/* ロゴのサイズ（自由に調整OK） */
	height: auto;
	opacity: 0;
	/* 最初は透明にする */

	/* 0.2秒待ってから、1.2秒かけてフェードインさせる */
	animation: fadeInLogo 1.2s ease-out 0.2s forwards;
}

/* ロゴが不透明度0から1になるアニメーション */
@keyframes fadeInLogo {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

/* ロード完了時に画面全体を非表示にする */
#loading.loaded {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* --------------------------------------------------------
	共通
-------------------------------------------------------- */

.dib {
	display: inline-block;
}

.inner {
	max-width: 1200px;
	width: 90%;
	margin: auto;
}

.txt_vertical {
	writing-mode: vertical-rl;
}



/* iframe */
.iframe {
	position: relative;
}

.iframe.youtube {
	padding-top: 56.25%;
}

.iframe iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}


/* flex */
.flex {
	display: -webkit-box;
	display: flex;
	flex-wrap: wrap;
}

.flex.flex_reverse {
	flex-direction: row-reverse;
}

.nowrap {
	flex-wrap: nowrap;
}

.fd_c {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
}

.fd_rr {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	flex-direction: row-reverse;
}

.ai_fs {
	-webkit-box-align: start;
	align-items: flex-start;
}

.ai_fe {
	-webkit-box-align: end;
	align-items: flex-end;
}

.ai_c {
	-webkit-box-align: center;
	align-items: center;
}

.jc_fs {
	-webkit-box-pack: start;
	justify-content: flex-start;
}

.jc_fe {
	-webkit-box-pack: end;
	justify-content: flex-end;
}

.jc_c {
	-webkit-box-pack: center;
	justify-content: center;
}

.jc_sb {
	-webkit-box-pack: justify;
	justify-content: space-between;
}

.jc_sa {
	justify-content: space-around;
}

.order1 {
	-ms-flex-order: 1;
	-webkit-order: 1;
	order: 1;
}

.order2 {
	-ms-flex-order: 2;
	-webkit-order: 2;
	order: 2;
}

/* grid */
.grid03 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2px;
}

/* 装飾 */
.deco01,
.deco02,
.deco03,
.deco04,
.deco05,
.deco06 {
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	z-index: 5;
}

@media screen and (max-width: 768px) {
	.grid03 {
		grid-template-columns: 1fr;
		max-width: 400px;
		margin: 0 auto;
	}
}


/* 背景 */
.bg_p_blue {
	background: #E9F4FF;
}

.bg_white {
	background: #FFF;
}

/* --------------------------------------------------------
	アニメーション
-------------------------------------------------------- */
.trigger {
	opacity: 0;
}

/* 下から上へ */
.animation.animation01 {
	animation: fadeup 1s ease forwards;
}

/* 左から右へ */
.animation.animation02 {
	animation: faderight 1s ease forwards;
}

/* 右から左へ */
.animation.animation03 {
	animation: fadeleft 1s ease forwards;
}

/* 上から下へ */
.animation.animation04 {
	animation: fadeInDown 1s ease-out forwards;
}

@keyframes fadeup {
	from {
		opacity: 0;
		transform: translateY(2em);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes faderight {
	from {
		opacity: 0;
		transform: translateX(-2em);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fadeleft {
	from {
		opacity: 0;
		transform: translateX(2em);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fadeInDown {
	from {
		opacity: 0;
		transform: translateY(-2em);
		/* 上にズレた状態から */
	}

	to {
		opacity: 1;
		transform: translateY(0);
		/* 元の位置へ */
	}
}

/* アニメーション時間差 */
.animation.delay01 {
	animation-delay: .1s !important;
}

.animation.clip.delay01 {
	transition-delay: .1s !important;
}

.animation.delay02 {
	animation-delay: .2s !important;
}

.animation.clip.delay02 {
	transition-delay: .2s !important;
}

.animation.delay03 {
	animation-delay: .3s !important;
}

.animation.clip.delay03 {
	transition-delay: .3s !important;
}

.animation.delay04 {
	animation-delay: .4s !important;
}

.animation.clip.delay04 {
	transition-delay: .4s !important;
}

.animation.delay05 {
	animation-delay: .5s !important;
}

.animation.clip.delay05 {
	transition-delay: .5s !important;
}

.animation.delay06 {
	animation-delay: .6s !important;
}

.animation.clip.delay06 {
	transition-delay: .6s !important;
}

.animation.delay07 {
	animation-delay: .7s !important;
}

.animation.clip.delay07 {
	transition-delay: .7s !important;
}

.animation.delay08 {
	animation-delay: .8s !important;
}

.animation.clip.delay08 {
	transition-delay: .8s !important;
}

.animation.delay09 {
	animation-delay: .9s !important;
}

.animation.clip.delay09 {
	transition-delay: .9s !important;
}

.animation.delay10 {
	animation-delay: 1s !important;
}

.animation.clip.delay10 {
	transition-delay: 1s !important;
}

.animation.delay11 {
	animation-delay: 1.1s !important;
}

.animation.clip.delay11 {
	transition-delay: 1.1s !important;
}

.animation.delay12 {
	animation-delay: 1.2s !important;
}

.animation.clip.delay12 {
	transition-delay: 1.2s !important;
}

.animation.delay13 {
	animation-delay: 1.3s !important;
}

.animation.clip.delay13 {
	transition-delay: 1.3s !important;
}

.animation.delay14 {
	animation-delay: 1.4s !important;
}

.animation.clip.delay14 {
	transition-delay: 1.4s !important;
}

.animation.delay15 {
	animation-delay: 1.5s !important;
}

.animation.clip.delay15 {
	transition-delay: 1.5s !important;
}

.animation.delay16 {
	animation-delay: 1.6s !important;
}

.animation.clip.delay16 {
	transition-delay: 1.6s !important;
}

.animation.delay17 {
	animation-delay: 1.7s !important;
}

.animation.clip.delay17 {
	transition-delay: 1.7s !important;
}

.animation.delay18 {
	animation-delay: 1.8s !important;
}

.animation.clip.delay18 {
	transition-delay: 1.8s !important;
}

.animation.delay19 {
	animation-delay: 1.9s !important;
}

.animation.clip.delay19 {
	transition-delay: 1.9s !important;
}

.animation.delay20 {
	animation-delay: 2s !important;
}

.animation.clip.delay20 {
	transition-delay: 2s !important;
}

.animation.delay21 {
	animation-delay: 2.1s !important;
}

.animation.clip.delay21 {
	transition-delay: 2.1s !important;
}

.animation.delay24 {
	animation-delay: 2.4s !important;
}

.animation.clip.delay24 {
	transition-delay: 2.4s !important;
}

.floating-object {
	position: absolute;
	opacity: 0;
	--float-x: 0px;
	--float-y: 0px;
	transform: scale(0.8) translate(var(--float-x), var(--float-y));
	transition:
		opacity 1s cubic-bezier(0.17, 0.89, 0.32, 1.28),
		transform 1s cubic-bezier(0.17, 0.89, 0.32, 1.28);
	will-change: transform, opacity;
}

.floating-object.is-visible {
	opacity: 1;
	transform: scale(1) translate(var(--float-x), var(--float-y));
}

/* アクセシビリティ: 動きを減らす設定のユーザーには揺れを止める */
@media (prefers-reduced-motion: reduce) {
	.floating-object {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

/* アニメーション時間を少し速く（0.8秒）する */
.animation.animation_clip {
	animation: clipDown 3s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* 1行目がほぼ終わり切るタイミングで次を発動させる */
.animation.delay_step2 {
	animation-delay: 1.6s !important;
	/* 2行目：0.7秒後に開始 */
}

.animation.delay_step3 {
	animation-delay: 3.6s !important;
	/* 3行目：1.4秒後に開始 */
}

@keyframes clipDown {
	0% {
		opacity: 1;
		clip-path: inset(0 0 100% 0);
	}

	100% {
		opacity: 1;
		clip-path: inset(0 0 0 0);
	}
}

/* --------------------------------------------------------
	余白
-------------------------------------------------------- */




/* --------------------------------------------------------
	PC SP
-------------------------------------------------------- */
.is-sp {
	display: none;
}

.is-tb {
	display: none;
}

.is-pc {
	display: block;
}

.pc-only {
	display: block;
}

.tb-only {
	display: none;
}

.is-1470 {
	display: none;
}

@media screen and (max-width: 1470px) {
	.is-1470 {
		display: block;
	}
}

@media screen and (max-width: 1024px) {
	.is-tb {
		display: block;
	}

	.tb-only {
		display: block;
	}
}


@media screen and (max-width: 768px) {
	.is-pc {
		display: none;
	}

	.is-sp {
		display: block;
	}

	.pc-only {
		display: none;
	}

	.tb-only {
		display: none;
	}
}

/* --------------------------------------------------------
	背景色あり
-------------------------------------------------------- */


/* --------------------------------------------------------
	ボタン
-------------------------------------------------------- */
.btn_l-blue {
	display: inline-flex;
	height: 50px;
	padding: 8px 24px;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	letter-spacing: 0.8px;

	border-radius: 25px;
	background: #1F6BC8;
	color: #fff;

	margin-top: 40px;
}

.btn_l-blue:hover,
main .btn_l-blue:hover {
	background-color: var(--c-sky);
}

.btn_d-blue {
	display: inline-flex;
	height: 50px;
	padding: 8px 24px;
	justify-content: center;
	align-items: center;

	border-radius: 25px;
	background: #001C57;
	color: #fff;
}

.btn_d-blue:hover {
	background-color: var(--c-sky);
}

/* main内の.btn_l-blueは高さ・角丸・左右paddingのみ上書き */
main .btn_l-blue {
	height: 60px;
	padding-left: 64px;
	padding-right: 32px;
	border-radius: 30px;
	position: relative;
}

.arrow {
	overflow: hidden;
	position: absolute;
	top: calc(50% - 8px);
	left: 32px;
	width: 20px;
	height: 20px;
	margin: auto 0;
	line-height: 1;
}

.arrow:before,
.arrow:after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 16px;
	background-image: url(../img/common/arrow.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 0;
	animation-fill-mode: forwards;
	animation-duration: 0.6s;
}

.arrow:after {
	transform: translateX(-100%);
}

.arrow_b {
	display: flex;
	justify-content: center;
	align-items: center;
}

.arrow_b .arrow {
	display: inline-block;
}

main .btn_l-blue:hover .arrow:before,
#index .sec04 .grid03 li:hover .arrow:before,
.arrow_b:hover .arrow:before {
	animation-name: transformRightLeft;
	/* 修正: hover時のアニメーションを指定 */
	animation-delay: 0s;
}

main .btn_l-blue:hover .arrow:after,
#index .sec04 .grid03 li:hover .arrow:after,
.arrow_b:hover .arrow:after {
	animation-name: transformLeftRight;
	/* 修正: hover時のアニメーションを指定 */
	animation-delay: 0.2s;
}

#index .sec04 .grid03 li div.arrow_b {
	display: block;
	width: 80px;
	height: 60px;
	background-color: #fff;
	position: relative;
	border-radius: 30px;
	margin: 30px auto 0;
}

.arrow_b .arrow::before,
.arrow_b .arrow::after {
	background-image: url(../img/common/arrow_b.svg);
}


@keyframes transformLeftRight {
	0% {
		transform: translateX(-100%);
	}

	100% {
		transform: translateX(0);
	}
}

@keyframes transformRightLeft {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(100%);
	}
}

.arrow_b.prev .arrow::before,
.arrow_b.prev .arrow::after {
	background-image: url(../img/common/arrow_b_prev.svg);
}

.arrow_b.prev .arrow:after {
	/* prevは逆方向のため、非ホバー時の待機位置を右側にする */
	transform: translateX(100%);
}

.arrow_b.prev:hover .arrow:before {
	animation-name: transformCenterToLeft;
	/* 修正: hover時のアニメーションを指定 */
	animation-delay: 0s;
}

.arrow_b.prev:hover .arrow:after {
	animation-name: transformRightToCenter;
	/* 修正: hover時のアニメーションを指定 */
	animation-delay: 0.2s;
}

/* 右外から中央へ移動 */
@keyframes transformRightToCenter {
	0% {
		transform: translateX(100%);
	}

	100% {
		transform: translateX(0);
	}
}

/* 中央から左外へ移動 */
@keyframes transformCenterToLeft {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-100%);
	}
}





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

	.btn_l-blue,
	.btn_d-blue,
	main .btn_l-blue {
		font-weight: 500;
	}

	.arrow:before,
	.arrow:after {
		width: min(20px, calc(100vw * (20 / 402)));
		height: min(16px, calc(100vw * (16 / 402)));
	}

	main .btn_l-blue {
		margin-top: min(29px, calc(100vw * (29 / 402)));
	}
}

/* --------------------------------------------------------
	ロゴ
-------------------------------------------------------- */

/* --------------------------------------------------------
	header
-------------------------------------------------------- */
header {
	display: flex;
	width: 100%;
	height: 80px;
	padding: 0 24px;
	justify-content: space-between;
	align-items: center;

	position: fixed;
	top: 0;
	z-index: 50;

	background: #00BEFF;
}

.news-card {
	scroll-margin-top: 100px;
}

.hd_logo {
	display: flex;
	align-items: center;
	width: 337px;
	max-width: 337px;
	height: auto;
	flex-shrink: 0;
	aspect-ratio: 337/20;
}

.gnav.pc ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.gnav.pc ul li {
	color: #FFF;

	/* Navigation/Label */
	font-family: "Noto Sans JP";
	font-size: 16px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0.8px;

	margin-right: 24px;
}

.gnav.pc ul li:nth-child(4) {
	margin-right: 8px;
}

.gnav.pc ul li:last-child {
	margin-right: 0;
}

.gnav.pc ul li.hv_underline:hover {
	position: relative;
	padding-bottom: 8px;
	transition: .3s;
}

.gnav.pc ul li.hv_underline:hover::after {
	content: '';
	width: 100%;
	height: 2px;
	background-color: #fff;
	position: absolute;
	left: 0;
	bottom: 0;
	transition: .3s;
}

.gnav.pc ul li .btn_l-blue {
	margin-top: 0;
}

header>div:not(.drawer),
header>nav {
	position: relative;
	z-index: 1;
}

.hamb {
	display: none;
}

.drawer {
	display: none;
}

.gnav.sp .child {
	margin: 0 0 16px;
}

.gnav.sp .child li:not(:last-child) {
	margin: 0 0 8px;
}

.gnav.sp .child li a {
	font-size: 1.5rem;
}

.gnav.sp .child li a::before {
	content: "\03e";
	margin: 0 8px 0 0;
}

@media screen and (max-width: 1060px) {
	header {
		width: 100%;
		top: 0;
		gap: calc(100vw * (22 / 750));
		height: 70px;
	}

	.is_scroll header {
		height: 60px;
	}

	.news-card {
		scroll-margin-top: 90px;
	}

	.hd_logo {
		width: 82%;
	}

	.hamb {
		width: 50px;
		height: 50px;
		display: flex;
		justify-content: center;
		align-items: center;

		background-color: #1F6BC8;
		border-radius: 10px;
	}

	.hamb_icon {
		width: 24px;
		height: auto;
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	/* アニメーション基本設定 */
	.hamb_icon svg .bar {
		transition: transform 0.3s ease;
	}

	/* 各バーの回転軸は「SVG中心」ではなく「そのバー自身の中心」にする
   （SVG中心を軸にすると回転時に位置がズレてXの形が崩れるため） */
	.hamb_icon svg .bar-top {
		transform-origin: 30px 12px;
	}

	.hamb_icon svg .bar-bot {
		transform-origin: 30px 48px;
	}

	.hamb_icon svg rect {
		transition: opacity 0.3s ease;
	}

	/* 初期状態：1本線の方は隠しておく */
	.hamb_icon svg .full-line {
		opacity: 0;
	}

	.hamb_icon svg .gap-line {
		opacity: 1;
	}


	/* --- 開いた時 (.is_hamb_open) の切り替え --- */

	/* 1本目：中央に移動して45度回転 ＋ 1本線に切り替え */
	.is_hamb_open .hamb_icon svg .bar-top {
		transform: translateY(18px) rotate(45deg);
	}

	.is_hamb_open .hamb_icon svg .bar-top .gap-line {
		opacity: 0;
	}

	.is_hamb_open .hamb_icon svg .bar-top .full-line {
		opacity: 1;
	}

	/* 2本目：フェードアウト */
	.is_hamb_open .hamb_icon svg .bar-mid {
		opacity: 0;
	}

	/* 3本目：中央に移動して-45度回転 ＋ 1本線に切り替え */
	.is_hamb_open .hamb_icon svg .bar-bot {
		transform: translateY(-18px) rotate(-45deg);
	}

	.is_hamb_open .hamb_icon svg .bar-bot .gap-line {
		opacity: 0;
	}

	.is_hamb_open .hamb_icon svg .bar-bot .full-line {
		opacity: 1;
	}


	/* --- ドロワー周り（変更なし） --- */
	.hdr_logo {
		max-width: none;
		width: 35vw;
	}

	.drawer {
		display: block;
		width: 226px;
		/* 初期状態から幅を226pxに固定します */
		height: 508px;
		position: fixed;
		top: 90px;
		left: 100%;
		z-index: 100;
		overflow-y: auto;
		/* transformとvisibility（フェード/移動）のみにアニメーションを限定 */
		transition: transform 0.5s ease, visibility 0.5s ease;
		background: #00BEFF;
		border-radius: 20px 0 0 20px;
		visibility: hidden;
		/* 閉じている時は非表示にして誤動作を防ぐ */
	}

	.is_scroll .drawer {
		top: 70px;
	}

	.drawer .gnav.sp {
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.drawer .gnav.sp ul.humb_menu {
		display: grid;
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.is_hamb_open .drawer {
		transform: translateX(-100%);
		visibility: visible;
	}

	.gnav.pc {
		display: none;
	}

	.gnav.sp ul li a {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		font-size: 1.4rem;
		line-height: 1.7;
	}

	.gnav.sp ul li a.btn_l-blue,
	.gnav.sp ul li a.btn_d-blue {
		margin-top: 0;
		justify-content: center;
		align-items: center;
	}

	.gnav.sp ul li a,
	.flex.humb_menu_bottom {
		color: #fffbf5;
	}

	.gnav.sp ul li.underline_dot {
		position: relative;

	}

	.gnav.sp ul li.underline_dot::after {
		content: '';
		display: inline-block;
		width: calc(100vw * (9 / 750));
		height: calc(100vw * (8 / 750));
		max-width: 9px;
		max-height: 8px;
		background-image: url(../img/common/dot01.svg);
		background-repeat: no-repeat;
		background-size: contain;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: .5em;
	}

	.gnav.sp ul li.sub {
		padding-left: 1.5em;
	}

	#wrap header .drawer .gnav.sp ul.flex {
		gap: 2rem;
		margin: 8vw 0 0;
		margin-top: 76px;
		padding-left: 290px;
	}

	#wrap header .drawer .gnav.sp ul.flex li a {
		background-color: #fff;
		border-radius: 10rem;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 56px;
		height: 56px;
		padding: 20%;
	}
}

@media screen and (max-width: 768px) {
	header {
		padding-left: min(25px, calc(100vw * (25 / 402)));
		padding-right: min(25px, calc(100vw * (20 / 402)));
		top: 0;
		height: 80px;
		z-index: 61;
	}

	.is_scroll header {
		justify-content: space-between;
		align-items: center;
		padding: 0 3.75%;
		height: 60px;
	}

	.hdr_logo {
		width: 66vw;
	}

	#wrap header .drawer .gnav.sp ul.flex {
		margin-top: calc(100vw * (100 / 750));
		padding-left: 0;
	}

	#wrap header .drawer .gnav.sp ul.flex li a {
		width: calc(100vw * (100 / 750));
		height: calc(100vw * (100 / 750));
	}

	.gnav.sp ul li a {
		font-size: 14px;
	}

	.hamb {
		width: 50px;
		height: 50px;
		border-radius: min(10px, calc(100vw * (10 / 402)));
	}

	.hamb_icon {
		width: min(24px, calc(100vw * (24 / 402)));
		gap: min(14px, calc(100vw * (14 / 402)));
	}
}

/* 背景幕の基本設定 */
.nav_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.6);
	z-index: 60;
	/* ヘッダー(50)より低く設定 */
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s;
}

/* メニューが開いた時だけ表示 */
.is_hamb_open .nav_overlay {
	opacity: 1;
	visibility: visible;
}


/* ==========================================================================
   ハンバーガーメニュー・モーダル展開時にPAGE TOPボタンを非表示にする
   ========================================================================== */
body.is_hamb_open .pagetop,
body:has(.modal-overlay.active) .pagetop {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* --------------------------------------------------------
	トップページ
-------------------------------------------------------- */
/* メインビジュアル
-------------------------------------------------------- */
#index .mv,
.contact,
#p_lower .mv {
	display: flex;
	width: 100%;
	height: clamp(730px, calc(100vw * (900 / 1600)), 900px);
	justify-content: center;
	align-items: flex-start;
	gap: 48px;

	position: relative;

	background: #00BEFF url(../img/common/bg_mv.svg);
	background-repeat: repeat;
	background-position: left top;
	background-size: cover;

	overflow: clip;
}

#index .mv::after,
#p_lower .mv::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 10px;
	background-color: #fff;
	z-index: 1;
}

#p_lower .mv::after {
	bottom: -1px;
}

#index .mv h1 {
	color: #FFF;
	font-size: 4rem;
	letter-spacing: 2px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 80px;
	line-height: 1;

	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 21.7%;

}

#index .mv h1 span {
	display: block;
	letter-spacing: 8px;
}

.mark_brackets {
	position: relative;
}

.mark_brackets::before {
	content: '';
	display: inline-block;
	width: 21px;
	height: 17px;
	background-image: url(../img/top/mv_h1_deco01.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	top: -24px;
	right: -21px;
}

.mark_brackets::after {
	content: '';
	display: inline-block;
	width: 21px;
	height: 17px;
	background-image: url(../img/top/mv_h1_deco02.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	bottom: -19px;
	left: -16px;
}

.mv_logo_area {
	width: calc(100vw * (252 / 1600));
	height: calc(100vw * (113 / 1600));
	position: absolute;
	top: calc(100vw * (147 / 1600));
	left: calc(100vw * (324 / 1600));
}

.deco_cloud {
	position: absolute;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.deco_cloud.deco01 {
	width: 100px;
	height: 41px;
	background-image: url(../img/common/mv_cloude01.svg);
	left: calc(100vw * (-19 / 1600));
	top: calc(100vw * (360 / 1600));
}

.deco_cloud.deco02 {
	width: 87px;
	height: 47px;
	background-image: url(../img/common/mv_cloude02.svg);
	left: calc(100vw * (137 / 1600));
	top: calc(100vw * (255 / 1600));
}

.deco_cloud.deco03 {
	width: 90px;
	height: 43px;
	background-image: url(../img/common/mv_cloude03.svg);
	left: calc(100vw * (240 / 1600));
	top: calc(100vw * (367 / 1600));
}

.deco_cloud.deco04 {
	width: 87px;
	height: 40px;
	background-image: url(../img/common/mv_cloude04.svg);
	right: calc(100vw * (302 / 1600));
	top: calc(100vw * (366 / 1600));
}

.deco_cloud.deco05 {
	width: 92px;
	height: 47px;
	background-image: url(../img/common/mv_cloude05.svg);
	right: calc(100vw * (126 / 1600));
	top: calc(100vw * (232 / 1600));
}

.deco_cloud.deco06 {
	width: 81px;
	height: 37px;
	background-image: url(../img/common/mv_cloude06.svg);
	right: calc(100vw * (33 / 1600));
	top: calc(100vw * (387 / 1600));
}

.deco_town {
	position: absolute;
	width: 100%;
	height: 157px;
	background-image: url(../img/common/bg_town.svg);
	background-repeat: repeat-x;
	/* 高さに合わせて横幅を自動調整（画像が引き伸ばされるのを防ぐ） */
	background-size: auto 100%;
	background-position: 0 bottom;
	bottom: 0;
	left: 0;

	/* アニメーションの設定（20sは移動速度。お好みで調整してください） */
	animation: flow_bg 120s linear infinite;
}

@keyframes flow_bg {
	0% {
		background-position: 0 bottom;
	}

	100% {
		background-position: 1600px bottom;
		/* 画像の元の横幅などに合わせて指定 */
	}
}

.deco_people01 {
	position: absolute;
	width: 1333px;
	height: 286px;
	background-image: url(../img/top/people.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	bottom: 0;
	left: calc(50% - 666.5px);
	z-index: 2;
}

@media screen and (max-width: 1360px) {
	.deco_people01 {
		width: calc(100vw * (1333 / 1360));
		height: calc(100vw * (286 / 1360));
		left: calc(50% - min(666.5px, calc(100vw * (666.5 / 1360))));
	}
}

@media screen and (max-width: 768px) {
	.mark_brackets::before {
		top: clamp(-25px, calc(100vw * (-25 / 402)), 0px);
		right: clamp(-16px, calc(100vw * (-16 / 402)), 0px);
	}

	.mark_brackets::after {
		bottom: clamp(-19px, calc(100vw * (-19 / 402)), 0px);
		left: clamp(-13px, calc(100vw * (-13 / 402)), 0px);
	}

	.mv_logo_area {
		width: min(251px, calc(100vw * (251 / 402)));
		height: min(113px, calc(100vw * (113 / 402)));
		top: min(103px, calc(100vw * (103 / 402)));
		left: calc(50% - min(125px, calc(100vw * (125 / 402))));
	}

	#index .mv {
		height: min(950px, calc(100vw * (950 / 402)));
	}

	#index .mv::after {
		height: 5px;
	}

	#index .mv h1 {
		font-size: min(32px, calc(100vw * (32 / 402)));
		gap: min(48px, calc(100vw * (48 / 402)));
		top: min(268px, calc(100vw * (268 / 402)));
	}

	#index .mv h1 span {
		letter-spacing: 6px;
	}

	.deco_town {
		bottom: min(235px, calc(100vw * (235 / 402)));
	}

	.deco_town.is-sp {
		bottom: 5px;
		animation-direction: reverse;
	}

	.deco_people01 {
		width: min(306px, calc(100vw * (306 / 402)));
		height: min(172px, calc(100vw * (172 / 402)));
		background-image: url(../img/top/people_sp01.svg);
		bottom: min(219px, calc(100vw * (219 / 402)));
		left: min(13px, calc(100vw * (13 / 402)));
	}

	.deco_people02 {
		width: min(374px, calc(100vw * (374 / 402)));
		height: min(174px, calc(100vw * (174 / 402)));
		position: absolute;
		background-image: url(../img/top/people_sp02.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom right;
		/* ★画像を枠内の底面に密着させる */

		bottom: -3px;
		/* ★切れないよう数px上に上げる */
		right: min(3px, calc(100vw * (3 / 402)));
		z-index: 20;
		transform: translateZ(10px);
	}

	.deco_cloud.deco01,
	.deco_cloud.deco06 {
		display: none;
	}

	.deco_cloud.deco02 {
		width: min(68px, calc(100vw * (68 / 402)));
		height: min(37px, calc(100vw * (37 / 402)));
		left: max(-29px, calc(100vw * (-29 / 402)));
		top: min(140px, calc(100vw * (140 / 402)));
	}

	.deco_cloud.deco03 {
		width: min(70px, calc(100vw * (70 / 402)));
		height: min(33px, calc(100vw * (33 / 402)));
		left: min(16px, calc(100vw * (16 / 402)));
		top: min(83px, calc(100vw * (83 / 402)));
	}

	.deco_cloud.deco04 {
		width: min(68px, calc(100vw * (68 / 402)));
		height: min(31px, calc(100vw * (31 / 402)));
		right: max(-20px, calc(100vw * (-20 / 402)));
		top: min(189px, calc(100vw * (189 / 402)));
	}

	.deco_cloud.deco05 {
		width: min(72px, calc(100vw * (72 / 402)));
		height: min(37px, calc(100vw * (37 / 402)));
		right: max(-25px, calc(100vw * (-25 / 402)));
		top: min(109px, calc(100vw * (109 / 402)));
	}

}

/* --------------------------------------------------------
	sec01 お客様一人ひとりに最適な選択を
-------------------------------------------------------- */
#index .sec01 {
	padding-top: 120px;
	padding-bottom: 100px;
	text-align: center;
	position: relative;
	overflow: clip;
}

#index hgroup {
	margin-bottom: 40px;
}

#index hgroup h2 {
	margin-bottom: 10px;
}

#index .sec01 .deco_sec01 {
	position: absolute;
	z-index: 1;
}

#index .sec01 .deco_sec01 .img_wrap {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

/* --------------------------------------------------
   deco01：位置固定＋中心基準で縮小
-------------------------------------------------- */
#index .sec01 .deco_sec01.deco01 {
	/* 位置は画面中央(50%)基準で固定 */
	left: calc(50% - 426.5px);
	top: 206.5px;

	/* サイズだけが画面幅1600px以下で小さくなる */
	width: clamp(0px, calc(100vw * (309 / 1600)), 309px);
	height: clamp(0px, calc(100vw * (289 / 1600)), 289px);

	/* 配置を中心に設定 */
	transform: translate(-50%, -50%);
}

#index .sec01 .deco_sec01.deco01 .img_wrap {
	background-image: url(../img/top/sec01_img01.png);
}

/* --------------------------------------------------
   deco02：元の設定に戻す
-------------------------------------------------- */
#index .sec01 .deco_sec01.deco02 {
	right: clamp(0px, calc(100vw * (87 / 1600)), 87px);
	top: clamp(0px, calc(100vw * (29 / 1600)), 29px);
	width: clamp(0px, calc(100vw * (372 / 1600)), 372px);
	height: clamp(0px, calc(100vw * (312 / 1600)), 312px);
}

#index .sec01 .deco_sec01.deco02 .img_wrap {
	background-image: url(../img/top/sec01_img02.png);
}

/* --------------------------------------------------
   deco03：元の設定に戻す
-------------------------------------------------- */
#index .sec01 .deco_sec01.deco03 {
	left: clamp(0px, calc(100vw * (44 / 1600)), 44px);
	bottom: clamp(0px, calc(100vw * (20 / 1600)), 20px);
	width: clamp(0px, calc(100vw * (372 / 1600)), 372px);
	height: clamp(0px, calc(100vw * (305 / 1600)), 305px);
}

#index .sec01 .deco_sec01.deco03 .img_wrap {
	background-image: url(../img/top/sec01_img03.png);
}

/* --------------------------------------------------
   deco04：元の設定に戻す
-------------------------------------------------- */
#index .sec01 .deco_sec01.deco04 {
	right: clamp(0px, calc(100vw * (223 / 1600)), 223px);
	bottom: clamp(0px, calc(100vw * (26 / 1600)), 26px);
	width: clamp(0px, calc(100vw * (259 / 1600)), 259px);
	height: clamp(0px, calc(100vw * (262 / 1600)), 262px);
}

#index .sec01 .deco_sec01.deco04 .img_wrap {
	background-image: url(../img/top/sec01_img04.png);
}

@media screen and (max-width: 1199px) {
	#index .sec01 {
		padding-bottom: clamp(0px, calc(100vw * (400 / 402)), 764px);
	}

	#index .sec01 .deco_sec01.deco01 {
		transform: none;
	}

	/* 画面端（100vw）ではなく、中央基準（50%）からの距離で配置する */
	#index .sec01 .deco_sec01.deco01 {
		width: clamp(0px, calc(100vw * (165 / 402)), 315px);
		height: clamp(0px, calc(100vw * (154 / 402)), 294px);
		top: auto;
		bottom: clamp(0px, calc(100vw * (145 / 402)), 298px);
		/* 中央（50%）から左へ○px離す指定 */
		left: calc(50% - clamp(0px, calc(100vw * (170 / 402)), 320px));
	}

	#index .sec01 .deco_sec01.deco02 {
		width: clamp(0px, calc(100vw * (206 / 402)), 393px);
		height: clamp(0px, calc(100vw * (173 / 402)), 330px);
		top: auto;
		bottom: clamp(0px, calc(100vw * (165 / 402)), 339px);
		/* 中央（50%）から右へ○px離す指定 */
		left: calc(50% + clamp(0px, calc(100vw * (20 / 402)), 40px));
		right: auto;
	}

	#index .sec01 .deco_sec01.deco03 {
		width: clamp(0px, calc(100vw * (167 / 402)), 319px);
		height: clamp(0px, calc(100vw * (137 / 402)), 261px);
		top: auto;
		bottom: clamp(-7px, calc(100vw * (-7 / 402)), 0px);
		left: calc(50% - clamp(0px, calc(100vw * (160 / 402)), 300px));
	}

	#index .sec01 .deco_sec01.deco04 {
		width: clamp(0px, calc(100vw * (145 / 402)), 277px);
		height: clamp(0px, calc(100vw * (147 / 402)), 280px);
		top: auto;
		bottom: calc(100vw * (18 / 402));

		/* 画面幅402px時の配置位置（中央からの距離） */
		left: calc(50% + clamp(0px, calc(100vw * (120 / 402)), 230px));
		right: auto;

		/* ★要素の中心を基準点にする補正を入れる */
		transform: translate(-50%, 0);
	}
}

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

	#index hgroup,
	#index hgroup p.en {
		text-align: center;
		margin-bottom: min(26px, calc(100vw * (26 / 402)));
	}

	#index hgroup h2 {
		letter-spacing: 1px;
		margin-bottom: calc(100vw * (10 / 402));
	}

	#index .sec01 {
		padding-top: min(80px, calc(100vw * (80 / 402)));
	}

	#index .sec01 .inner {
		width: 88%;
	}

	#index .sec01 p {
		text-align: left;
		line-height: 1.7;
		letter-spacing: 0;
	}
}

/* --------------------------------------------------------
	sec02　地域に寄り添う保険代理店
-------------------------------------------------------- */
#index .sec02 {
	position: relative;
	margin-top: calc(100vw * (200 / 1600));
}

#index .sec02::before {
	content: '';
	display: inline-block;
	width: 100%;
	height: calc(100vw * (200 / 1600));
	background-image: url(../img/top/bg_sec03.svg);
	position: absolute;
	top: calc(100vw * (-198 / 1600));
	left: 0;
}

#index .sec02 hgroup {
	margin-bottom: 34px;
}

#index .sec02 .flex.flex_reverse {
	flex-direction: row-reverse;
	position: relative;
	z-index: 1;
	/* 擬似要素の上に重ねるため */
	transform: translateY(calc(100vw * (-50 / 1600)));
}

#index .sec02 .flex.flex_reverse .img_wrap {
	width: 50%;
	height: 0;
	max-width: 600px;
	border-radius: 20px;
	padding-top: 33.333%;
	position: absolute;
	top: 150px;
	left: 0;
	overflow: hidden;
	justify-content: flex-end;
	align-items: flex-start;
}

#index .sec02 .flex.flex_reverse .img_wrap img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#index .sec02 .flex.flex_reverse .txt_wrap {
	width: 53.333%;
	max-width: 640px;
	background-color: #fff;
	padding: 5% 6.65%;
	border-radius: 20px;
}

#index .sec02 .flex.flex_reverse .txt_wrap p {
	line-height: 1.7;
	letter-spacing: 0;
}

#index .sec02 .flex.flex_reverse .txt_wrap p.en {
	letter-spacing: 0.7px;
}

@media screen and (max-width: 1023px) {
	#index .sec02 hgroup {
		text-align: center;
	}

	#index .sec02 .flex.flex_reverse {
		flex-direction: column-reverse;
	}

	#index .sec02 .flex.flex_reverse .img_wrap {
		width: 600px;
		padding-top: 400px;
		top: 13px;
		left: 50%;
		transform: translateX(-50%);
	}

	#index .sec02 .flex.flex_reverse .txt_wrap {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 100%;
		max-width: none;
		padding-top: calc(100vw * (70 / 402));
		padding-bottom: min(50px, calc(100vw * (50 / 402)));
		padding-left: calc(100vw * (30 / 402));
		padding-right: calc(100vw * (30 / 402));
		margin-top: clamp(0px, calc(193px + (100vw - 402px) * (119 / 366)), 312px);
	}

	#index .sec02 .flex.flex_reverse .txt_wrap a.btn_l-blue {
		margin: 0 auto;
		margin-top: calc(100vw * (30 / 402));
	}
}

@media screen and (max-width: 820px) {
	#index .sec02 .flex.flex_reverse .img_wrap {
		width: 83%;
		padding-top: 54.2%;
	}
}

@media screen and (max-width: 768px) {
	#index .sec02 {
		margin-top: calc(100vw * (100 / 402));
	}

	#index .sec02::before {
		height: calc(100vw * (100 / 402));
		background-image: url(../img/top/bg_sec03_sp.svg);
		background-size: contain;
		top: calc(100vw * (-99 / 402));
	}

	#index .sec02 hgroup {
		margin-bottom: min(26px, calc(100vw * (25 / 402)));
	}

	#index .sec02 hgroup p.en {
		margin-bottom: 0;
	}

	#index .sec02 .flex.flex_reverse .img_wrap {
		padding-top: 55.3%;
	}
}

@media screen and (max-width: 402px) {
	#index .sec02 .flex.flex_reverse .txt_wrap {
		margin-top: calc(100vw * (193 / 402));
	}
}

/* --------------------------------------------------------
    sec03 お知らせ
-------------------------------------------------------- */
#index .sec03 {
	padding: 120px 0 0;
	text-align: center;
}

#index .sec03 .t_news_list {
	padding: 20px 40px;
	background-color: #fff;
	border-radius: 20px;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

#index .sec03 .t_news_list li {
	padding: 19px 0;
	border-bottom: 1px solid #E5E7EB;
	/* ベースのグレー線 */
	position: relative;
	/* ::afterの位置指定用に必要 */
}

#index .sec03 .t_news_list li:last-child {
	border-bottom: 1px solid #fff;
}

/* 最後の要素は青色の擬似要素も非表示にする */
/* #index .sec03 .t_news_list li:last-child::after {
	display: none;
} */

/* アニメーション用の青色下線 */
#index .sec03 .t_news_list li::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	/* border-bottom（1px）の位置にぴったり重ねる */
	width: 100%;
	height: 1px;
	background-color: #00AAFF;
	/* ご希望の色 */
	transform: scale(0, 1);
	/* 横方向0倍 */
	transform-origin: left top;
	/* 左端から変形 */
	transition: transform 0.5s;
	/* 0.5秒のアニメーション */
}

/* ホバー時に横幅を1倍に伸ばす */
#index .sec03 .t_news_list li:hover::after {
	transform: scale(1, 1);
}

#index .sec03 .t_news_list li .flex {
	flex-wrap: nowrap
}

#index .sec03 .t_news_list li a {
	display: flex;
}

#index .sec03 .t_news_list time {
	color: var(--c-sky);
	font-weight: 600;
	margin-right: 20px;
}

#index .sec03 .t_news_list li a span {
	display: flex;
	width: 80px;
	height: 30px;
	justify-content: center;
	align-items: center;
	border-radius: 4px;
	background: var(--c-sky);
	color: #fff;
	margin-right: 24px;
	font-size: 1.4rem;
	padding-bottom: 1px;
}

#index .sec03 .t_news_list li p {
	transition: color 0.3s;
	text-align: left;
}

#index .sec03 .t_news_list li:hover p {
	color: var(--c-sky);
}

@media screen and (max-width: 768px) {
	#index .sec03 {
		padding-top: min(70px, calc(100vw * (69 / 402)));
		padding-bottom: 0;
	}

	#index .sec03 hgroup {
		margin-bottom: min(30px, calc(100vw * (30 / 402)))
	}

	#index .sec03 hgroup p.en {
		margin-bottom: 0;
	}

	#index .sec03 .t_news_list {
		padding: 6% 8.2%;
	}

	#index .sec03 .t_news_list li a {
		display: block;
	}

	#index .sec03 .t_news_list li a div.flex {
		margin-bottom: calc(100vw * (10 / 402));
		align-items: center;
	}

	#index .sec03 .t_news_list time {
		margin-right: min(8px, calc(100vw * (8 / 402)))
	}

	#index .sec03 .t_news_list li a span {
		width: 70px;
		font-size: 12px;
	}

	#index .sec03 .t_news_list li a p {
		text-align: left;
		line-height: 1.7;
	}
}

/* --------------------------------------------------------
	sec04 ボタンセクション
-------------------------------------------------------- */
#index .sec04 {
	padding: 120px 0;
}

#index .sec04 .grid03 li {
	position: relative;
	/* 疑似要素の基準点 */
	height: 300px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	/* 角丸からはみ出るのを防ぐ */
}

/* 個別の背景画像を設定（グラデーションは消して画像のみ） */
#index .sec04 .grid03 li:nth-child(1) {
	background-image: url(../img/top/sec04_img01.jpg);
	border-top-left-radius: 20px;
	border-bottom-left-radius: 20px;
}

#index .sec04 .grid03 li:nth-child(2) {
	background-image: url(../img/top/sec04_img02.jpg);
}

#index .sec04 .grid03 li:nth-child(3) {
	background-image: url(../img/top/sec04_img03.jpg);
	border-top-right-radius: 20px;
	border-bottom-right-radius: 20px;
}

/* 上にかぶせる色の層 */
#index .sec04 .grid03 li::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #00AAFF;
	opacity: 0.7;
	/* 通常時は透過（0.7） */
	transition: opacity 0.3s ease;
	/* opacityなら確実にふわっと動く */
	z-index: 1;
}

/* ホバーしたら不透明度を1（完全なベタ塗り）にする */
#index .sec04 .grid03 li:hover::before {
	opacity: 1;
}

/* リンク（テキスト）を色の層より上に出す */
#index .sec04 .grid03 li a {
	position: relative;
	z-index: 2;
	display: flex;
	width: 100%;
	height: 100%;
	justify-content: center;
	align-items: center;
}

#index .sec04 .grid03 li h2 {
	color: #fff;
	font-size: 2.8rem;
	font-weight: 700;
}

@media screen and (max-width: 768px) {
	#index .sec04 {
		padding-top: min(80px, calc(100vw * (80 / 402)));
		padding-bottom: min(80px, calc(100vw * (80 / 402)));
	}

	#index .sec04 .grid03 li h2 {
		font-size: clamp(16px, 100vw * (24 / 402), 24px);
	}

	#index .sec04 .grid03 li {
		height: min(300px, calc(100vw * (250 / 402)));
	}

	#index .sec04 .grid03 li:nth-child(1) {
		border-top-left-radius: calc(100vw * (20 / 402));
		border-top-right-radius: calc(100vw * (20 / 402));
		border-bottom-left-radius: 0;
	}

	#index .sec04 .grid03 li:nth-child(3) {
		border-top-right-radius: 0;
		border-bottom-left-radius: calc(100vw * (20 / 402));
		border-bottom-right-radius: calc(100vw * (20 / 402));
	}

	#index .sec04 .grid03 li .btn_inner {
		margin-bottom: min(4px, calc(100vw * (4 / 402)));
	}

	#index .sec04 .grid03 li span.arrow_b {
		margin-top: min(24px, calc(100vw * (24 / 402)));
	}
}

/* --------------------------------------------------------
	sec05　お問い合わせ
-------------------------------------------------------- */
.contact {
	height: auto;
	padding: 120px 0 100px;
	text-align: center;
	border-bottom: 0;
}

.contact .inner {
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.contact hgroup,
.contact hgroup p.en {
	color: #fff;
}

.contact .flex {
	gap: 40px;
	justify-content: center;
}

.contact .flex .form_wrap,
.contact .flex .tel_wrap {
	background-color: #fff;
	border-radius: 20px;
	padding: 40px 32px;
	width: 50%;
	max-width: 430px;
}

.contact .flex h3 {
	font-size: 1.8rem;
	line-height: 1.7;
	font-weight: 700;
	letter-spacing: 0.9px;
	margin-bottom: 16px;
}

.contact .flex .btn_l-blue {
	margin-top: 12px;
}

.contact .flex .tel_wrap a.link_tel {
	display: inline-block;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.4px;
	color: #1F6BC8;
	position: relative;
	padding-left: 40px;
	margin-top: 16px;
}

.contact .flex .tel_wrap a.link_tel::before {
	content: '';
	display: inline-block;
	width: 32px;
	height: 32px;
	background-image: url(../img/common/icon_tel.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
}

.contact .deco_town {
	bottom: 0;
	z-index: 0;
}

@media screen and (max-width: 768px) {
	.contact {
		padding-top: min(80px, calc(100vw * (80 / 402)));
		padding-bottom: min(80px, calc(100vw * (80 / 402)));
	}

	.contact hgroup {
		margin-bottom: min(50px, calc(100vw * (50 / 402)));
	}

	.contact .flex {
		gap: min(40px, calc(100vw * (40 / 402)));
	}

	.contact .flex .form_wrap,
	.contact .flex .tel_wrap {
		width: 100%;
		padding-top: calc(100vw * (40 / 402));
		padding-bottom: calc(100vw * (40 / 402));
	}

	.contact .flex h3 {
		font-size: clamp(14px, 100vw * (18 / 402), 18px);
	}

	.contact .flex .tel_wrap a.link_tel {
		font-size: clamp(20px, 100vw * (28 / 402), 28px);
	}
}

/* --------------------------------------------------------
	footer
-------------------------------------------------------- */
footer {
	padding: 80px 0 20px;
	text-align: center;
}

.ft_logo {
	gap: 40px;
	justify-content: center;
	align-items: center;
	margin: 0 auto 46px;
}

.ft_logo01 {
	width: 405px;
	height: 42px;
}

.ft_logo02 {
	width: 227px;
	height: 70px;
}

.ft_nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
	margin-bottom: 37px;
	letter-spacing: 0;
}

.ft_nav li:hover {
	color: var(--c-sky);
}

.ft_bnr_list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
	padding-top: 50px;
	margin-bottom: 44px;
	border-top: 1px solid var(--c-sky);
}

#copyright {
	font-size: 1.4rem;
	color: #1f6bc8;
	letter-spacing: 0;
}

@media screen and (max-width: 1023px) {
	.ft_nav {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		width: 89%;
		padding-bottom: min(37px, calc(100vw * (37 / 402)));
		margin: 0 auto;
		margin-bottom: min(32px, calc(100vw * (32 / 402)));
		gap: 0 5%;
	}

	.ft_nav li {
		text-align: left;
	}
}

@media screen and (max-width: 950px) {
	.ft_nav {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 768px) {
	footer {
		padding-top: min(71px, calc(100vw * (71 / 402)));
	}

	.ft_logo {
		display: block;
		width: 90%;
		margin-bottom: min(39px, calc(100vw * (40 / 402)));
	}

	.ft_logo01 {
		width: 100%;
		height: auto;
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.ft_logo02 {
		width: calc(100vw * (227 / 402));
		height: calc(100vw * (70 / 402));
		margin: 0 auto;
	}

	.ft_nav {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 10% 5%;
	}

	.ft_bnr_list {
		padding-top: min(40px, calc(100vw * (40 / 402)));
		margin-bottom: min(35px, calc(100vw * (35 / 402)));

		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: calc(100vw * (10 / 402));
	}

	#copyright {
		font-size: 12px;
		font-weight: 400;
	}
}

/* ==========================================================================
	news.html（style_2.cssより統合）
	ヘッダー・フッター（下部の会社情報バー）はindex.htmlと共通のクラスを使用するため、
	ここではnews.html固有のパーツ（お知らせ一覧まわり）のみを統合しています。
	========================================================================== */
:root {
	--c-blue: #1f6bc8;
	--c-sky: #09a7fc;
	--c-black: #333;
	--c-white: #fff;
	--c-border: #d3d3d3;
	--c-gray-text: #979797;
	--c-tab-inactive: #cfe6fe;

	--font-en: "Montserrat", sans-serif;

	--container-width: 900px;
}

/* ブレークポイントをまたぐリサイズの瞬間、ナビ等のtransitionが一瞬走って見た目がちらつくのを防ぐ */
html.is-resizing * {
	transition: none !important;
}

/* --------------------------------------------------------
	下層ページ共通
-------------------------------------------------------- */
#p_lower.is_scroll header {
	z-index: 61;
}

#p_lower .mv {
	height: 380px;
	display: flex;
	justify-content: center;
	align-items: center;
}

#p_lower .mv hgroup {
	color: #fff;
	font-size: 2.8rem;
	font-weight: 700;
	letter-spacing: 1.4px;
	line-height: 1.7;
	text-align: center;
	margin-top: 55px;

	position: relative;
	z-index: 54;
}

#p_lower .mv hgroup p.en {
	font-family: Montserrat;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: normal;
	letter-spacing: 0.7px;
	color: #fff;
	margin-top: 10px;
}

#p_lower .mv .deco_cloud {
	z-index: 51;
}

#p_lower .mv .deco_cloud.deco01 {
	top: calc(100vw * (146 / 1600));
	left: -12px;
}

#p_lower .mv .deco_cloud.deco02 {
	top: calc(100vw * (123 / 1600));
	left: 260px;
}

#p_lower .mv .deco_cloud.deco03 {
	top: calc(100vw * (94 / 1600));
	left: 574px;
}

#p_lower .mv .deco_cloud.deco04 {
	top: calc(100vw * (127 / 1600));
	left: 913px;
}

#p_lower .mv .deco_cloud.deco05 {
	top: calc(100vw * (142 / 1600));
	left: 1146px;
}

#p_lower .mv .deco_cloud.deco06 {
	top: calc(100vw * (110 / 1600));
	left: 1420px;
}

#p_lower .mv .deco_people01 {
	width: 156px;
	height: 267px;
	background-image: url(../img/news/mv-person.svg);
	left: calc(50% - 395.2px);
	z-index: 54;
}

#p_lower .mv .deco_town {
	height: 163px;
	bottom: 9px;
}

#p_lower section.content .inner {
	width: 90%;
	max-width: 900px;
	padding: 26px 0 120px;
}

.breadcrumb {
	font-size: 1.4rem;
	margin-bottom: 36px;
}

.breadcrumb ul {
	justify-content: flex-end;
}

.breadcrumb .icon_breadcrumb {
	position: relative;
	padding-left: 20px;
	padding-right: 22px;
	letter-spacing: 0;
}

.breadcrumb .icon_breadcrumb::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	background-image: url(../img/common/icon_breadcrumb.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

.breadcrumb .icon_breadcrumb::after {
	content: '/';
	display: inline-block;
	font-size: 1.4rem;

	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

.breadcrumb .hv_underline {
	position: relative;
	display: inline-block;
}

.breadcrumb .hv_text {
	display: inline-block;
	transition: .3s;
}

.breadcrumb .hv_underline::after {
	content: '';
	width: 100%;
	height: 1px;
	background-color: var(--c-gray-text);
	position: absolute;
	left: 0;
	bottom: -2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s;
}

.breadcrumb .icon_breadcrumb:hover .hv_underline::after {
	transform: scaleX(1);
}

.breadcrumb .c_blue {
	padding-left: 16px;
	letter-spacing: 0;
}

#p_lower .contact hgroup {
	margin-bottom: 40px;
}

#p_lower .contact hgroup h2 {
	margin-bottom: 10px;
}

@media screen and (max-width: 768px) {
	#p_lower .mv {
		height: 284px;
	}

	#p_lower .mv hgroup {
		position: relative;
		z-index: 20;
		margin-top: 45px;
	}

	#p_lower .mv hgroup h1 {
		font-size: 24px;
	}

	#p_lower .mv .deco_town {
		height: 146px;
		bottom: 0;
	}

	#p_lower .mv .deco_people01 {
		bottom: 3px;
		height: 165px;
		left: calc(50% - 200px);
		background-image: url(../img/news/mv-person_sp.svg);
	}

	#p_lower .mv .deco_cloud.deco01,
	#p_lower .mv .deco_cloud.deco02,
	#p_lower .mv .deco_cloud.deco06 {
		display: none;
	}

	#p_lower .mv .deco_cloud.deco03 {
		width: min(70px, calc(100vw * (70 / 402)));
		height: min(33px, calc(100vw * (33 / 402)));
		top: 119px;
		left: -29px;
	}

	#p_lower .mv .deco_cloud.deco04 {
		top: 118px;
		left: auto;
		right: -16px;
	}

	#p_lower .mv .deco_cloud.deco05 {
		top: 89px;
		left: auto;
		right: 70px;
	}

	#p_lower section.content .inner {
		padding-top: min(18px, calc(100vw * (18 / 402)));
		padding-bottom: min(80px, calc(100vw * (80 / 402)));
	}

	.breadcrumb {
		font-size: 12px;
		gap: 10px;
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.breadcrumb__icon {
		width: 18px;
		height: 18px;
	}

	.breadcrumb .c_blue {
		padding-left: 10px;
	}

	.breadcrumb .icon_breadcrumb {
		padding-right: 14px;
	}

	.breadcrumb .icon_breadcrumb::after {
		font-size: 12px;
	}

	#p_lower .contact {
		padding-bottom: min(88px, calc(100vw * (88 / 402)));
	}

	#p_lower .contact hgroup {
		margin-bottom: min(51px, calc(100vw * (51 / 402)));
	}

	#p_lower .mv hgroup h1,
	#p_lower .mv hgroup p.en {
		text-shadow: none;
	}
}

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


/* カテゴリフィルター */
.category-filter {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 4px;
	border-bottom: 4px solid var(--c-blue);
	margin-bottom: 36px;
}

.category-filter__btn {
	flex: 1 0 0;
	height: 55px;
	padding-top: 4px;
	border-radius: 10px 10px 0 0;
	background: var(--c-tab-inactive);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.7px;
	color: var(--c-black);
	transition: background 0.2s ease;
}

.category-filter__btn.is-active {
	background: var(--c-blue);
	height: 60px;
	color: var(--c-white);
}

.category-filter__btn:not(.is-active):hover {
	background: #bcdcff;
}

/* ニュースカード */
.news-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.news-card {
	border: 1px solid var(--c-border);
	border-radius: 10px;
	background: var(--c-white);
}

.news-card__inner {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 38px;
}

.news-card__meta {
	display: flex;
	align-items: center;
	gap: 24px;
}

.news-card__date {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.8px;
	color: var(--c-sky);
}

.news-card__tag {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 30px;
	border-radius: 4px;
	background: var(--c-sky);
	color: var(--c-white);
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
}

.news-card__title {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.9px;
	line-height: 1.7;
}

.news-card__divider {
	display: none;
	margin: 0;
	border: none;
	border-top: 1px solid var(--c-border);
}

.news-card__body {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.7;
}

.news-card__body p:not(:last-child),
.news-card__body ul:not(:last-child),
.news-card__body ol:not(:last-child),
.news-card__body figure:not(:last-child),
.news-card__body .wp-block-file:not(:last-child) {
	margin-bottom: 1em;
}

.news-card__body strong {
	font-weight: 700;
}

.news-card__body u {
	text-decoration: underline;
}

.news-card__body img {
	height: auto;
}

.news-card__body a {
	text-decoration: underline;
	word-break: break-all;
	transition: .3s;
}

.news-card__body a:hover {
	color: var(--c-sky);
}

/* ページネーション */
.pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}

.pagination__arrow,
.pagination__page {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background: none;
	border-radius: 30px;
}

.pagination__arrow.arrow_b {
	position: relative;
}

.pagination__arrow.prev {
	margin-right: 10px;
}

.pagination__arrow.next {
	margin-left: 10px;
}

.pagination__arrow.arrow_b .arrow,
.pagination__arrow.arrow_b .arrow::before,
.pagination__arrow.arrow_b .arrow::after {
	width: 16px;
	height: 12px;
}

.pagination__arrow.arrow_b .arrow {
	top: auto;
	left: auto;
}

.pagination__page {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.8px;
	color: var(--c-blue);
}

.pagination__page.is-current {
	background: var(--c-blue);
	color: var(--c-white);
}

.pagination__arrow:hover,
.pagination__page:not(.is-current):hover {
	background: var(--c-tab-inactive);
}

@media screen and (max-width: 768px) {
	.news-list {
		gap: min(30px, calc(100vw * (30 / 402)));
	}

	.category-filter {
		margin-top: min(27px, calc(100vw * (27 / 402)));
		margin-bottom: min(26px, calc(100vw * (26 / 402)));
	}


	.category-filter__btn {
		height: 55px;
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.category-filter__btn.is-active {
		height: 60px;
		margin-bottom: -1px;
	}

	.news-card {
		border-radius: 20px;
	}

	.news-card__inner {
		padding: min(28px, calc(100vw * (30 / 402)));
		gap: 10px;
	}

	.news-card__meta {
		gap: 12px;
	}

	.news-card__tag {
		width: 64px;
		height: 28px;
		padding: 4px 8px;
		font-size: 12px;
	}

	.news-card__title {
		font-size: 18px;
	}

	.news-card__divider {
		display: block;
	}

	.news-card__body {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		letter-spacing: 0;
	}

	.pagination {
		gap: 8px;
		justify-content: center;
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	.pagination__arrow,
	.pagination__page {
		width: min(47px, calc(100vw * (47 / 402)));
		height: min(47px, calc(100vw * (47 / 402)));
		font-size: min(12px, calc(100vw * (14 / 402)));
	}

	.pagination__arrow img {
		width: 19px;
		height: 15px;
	}

	.pagination__arrow.next,
	.pagination__arrow.prev {
		margin: 0;
	}

}

/* --------------------------------------------------------
	共通パーツ（複数ページで使用）
-------------------------------------------------------- */

/* 見出し（丸ドット付き） */
h2.yellow_dot {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.4px;
	color: var(--c-black);
}

h2.yellow_dot::before {
	content: '';
	display: inline-block;
	flex-shrink: 0;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #FFD504;
}

/* 外部リンク風の斜め矢印 */
.arrow_dia {
	display: inline-flex;
	overflow: hidden;
	position: relative;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	line-height: 1;
}

.arrow_dia::before,
.arrow_dia::after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background: url(../img/common/arrow_2.svg) no-repeat center / 13px 13px;
	position: absolute;
	top: 0;
	left: 0;
	animation-fill-mode: forwards;
	animation-duration: 0.6s;
}

.arrow_dia::after {
	transform: translate(-100%, 100%);
}

@keyframes transformDiaOut {
	0% {
		transform: translate(0, 0);
	}

	100% {
		transform: translate(100%, -100%);
	}
}

@keyframes transformDiaIn {
	0% {
		transform: translate(-100%, 100%);
	}

	100% {
		transform: translate(0, 0);
	}
}

@media screen and (max-width: 768px) {
	h2.yellow_dot {
		font-size: clamp(20px, calc(100vw * (24 / 402)), 24px);
		gap: 6px;
	}

	.arrow_dia {
		width: 16px;
		height: 16px;
		background-size: 11px 11px;
	}
}

/* --------------------------------------------------------
	fd.html
-------------------------------------------------------- */

#p_lower.fd .mv .deco_people01 {
	background-image: url(../img/fd/mv-person01.svg);
	width: 148px;
	height: 179px;

	left: calc(50% + 326px);
}

#p_lower.fd .mv .deco_people02 {
	background-image: url(../img/fd/mv-person02.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	width: 122px;
	height: 189px;

	position: absolute;
	left: calc(50% + 474px);
	bottom: 0;
	z-index: 2;
}

#p_lower.fd .mv .deco_people03 {
	background-image: url(../img/fd/mv-person03.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	width: 166px;
	height: 116px;

	position: absolute;
	left: calc(50% + 500px);
	bottom: 0;
	z-index: 2;
}

@media screen and (max-width: 1100px) {
	#p_lower.fd .mv .deco_people01 {
		width: calc(100vw * (148 / 1100));
		height: calc(100vw * (179 / 1100));
	}

	#p_lower.fd .mv .deco_people02 {
		width: calc(100vw * (122 / 1100));
		height: calc(100vw * (189 / 1100));
	}

	#p_lower.fd .mv .deco_people03 {
		width: calc(100vw * (166 / 1100));
		height: calc(100vw * (116 / 1100));
	}
}

@media screen and (max-width: 1330px) {
	#p_lower.fd .mv .deco_people01 {
		left: auto;
		right: calc(100vw * (192 / 1330));
	}

	#p_lower.fd .mv .deco_people02 {
		left: auto;
		right: calc(100vw * (70 / 1330));
	}

	#p_lower.fd .mv .deco_people03 {
		left: auto;
		right: 0;
	}
}

.top_txt {
	line-height: 1.7;
	padding-bottom: 40px;
	border-bottom: 1px solid var(--c-border);
	letter-spacing: 0;
}

.fd_list li {
	margin-top: 40px;
}

.fd_list hgroup,
.fd_list h2,
.bg_blue h2 {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	font-size: 2.2rem;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.7;
	color: var(--c-blue);
}

.fd_list hgroup {
	margin-bottom: 15px;
}

.bg_blue h2 {
	margin-bottom: 20px;
}

.fd_list_no {
	margin-right: 16px;
}

.fd_list_no_m {
	margin-right: 5px;
}

.bg_blue h2 span {
	display: inline-block;
}

.fd_list hgroup .small,
.bg_blue h2 .small {
	font-size: 1.6rem;
	font-weight: 700;
	margin-left: 9px;
	letter-spacing: 0;
}

.fd_list p {
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0;
}

.bg_blue {
	background: #E9F4FF;
	border-radius: 20px;
	padding: 40px;
	margin-top: 40px;
}

.bg_blue dl {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
	line-height: 1.25;
}

.bg_blue dl:nth-child(3),
.bg_blue dl:nth-child(4) {
	margin-top: 14px;
}

.bg_blue dt {
	color: var(--c-blue);
	border-left: 3px solid var(--c-blue);
	padding-left: 13px;
	font-weight: 700;
	letter-spacing: 0;
}

.bg_blue dd {
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0;
}

#p_lower.fd p.tar {
	margin-top: 40px;
	letter-spacing: 0;
	line-height: 1.7;
}

@media screen and (max-width: 768px) {
	#p_lower.fd .mv {
		height: 384px;
	}

	#p_lower.fd .mv hgroup {
		margin-top: -16px;
		line-height: 1.65;
	}

	#p_lower.fd .mv hgroup h1 span.small {
		letter-spacing: 0.9px;
	}

	#p_lower.fd .mv .deco_people01 {
		background-image: url(../img/fd/mv-person01_sp.svg);
		width: 94px;
		height: 112px;
		right: 144px;
	}

	#p_lower.fd .mv .deco_people02 {
		background-image: url(../img/fd/mv-person02_sp.svg);
		width: 80px;
		height: 125px;

		position: absolute;
		right: 62px;
		bottom: 0;
		z-index: 2;
	}

	#p_lower.fd .mv .deco_people03 {
		background-image: url(../img/fd/mv-person03_sp.svg);
		width: 88px;
		height: 80px;

		position: absolute;
		right: 0;
		z-index: 2;
	}

	#p_lower.fd .mv h1 span.small {
		font-size: clamp(14px, calc(100vw * (18 / 402)), 18px);
	}

	#p_lower.fd .mv .deco_cloud.deco02 {
		display: block;
		top: 99px;
		left: 40px;
	}

	#p_lower.fd .mv .deco_cloud.deco03 {
		top: 162px;
		left: -27px;
	}

	.top_txt {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		padding-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.fd_list li {
		margin-top: min(40px, calc(100vw * (40 / 402)));
	}

	.fd_list li:first-child {
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	.fd_list hgroup {
		display: block;
		margin-bottom: 10px;
		line-height: 1;
	}

	.fd_list h2,
	.bg_blue h2 {
		font-size: clamp(16px, calc(100vw * (20 / 402)), 20px);
		gap: 6px;
	}

	.fd_list h2 {
		align-items: flex-start;
		line-height: 1.5;
		gap: 0;
	}

	.fd_list hgroup .small,
	.bg_blue h2 .small,
	.fd_list p,
	.bg_blue dd {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.fd_list hgroup .small {
		margin-left: 2.5em;
	}

	.bg_blue {
		border-radius: 14px;
		padding: min(30px, calc(100vw * (30 / 402)));
	}

	.bg_blue dl {
		gap: 10px;
	}

	.bg_blue dl:not(:last-child) {
		margin-bottom: 10px;
	}

	.bg_blue dt {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	#p_lower.fd p.tar {
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	.fd_list_no {
		margin-right: 10px;
	}

	.fd_list_no_m {
		margin-right: 0;
	}
}

@media screen and (max-width: 401px) {
	.bg_blue h2 .small {
		margin-left: 0;
	}
}

/* --------------------------------------------------------
	solicitation-policy.html
-------------------------------------------------------- */

#p_lower.solicitation-policy .mv .deco_people01 {
	background-image: url(../img/solicitation-policy/mv-person.svg);
	width: 149px;
	height: 274px;
	left: calc(50% - 308.8px);
}

#p_lower.solicitation-policy .fd_list li h2 {
	margin-bottom: 15px;
}

@media screen and (max-width: 768px) {
	#p_lower.solicitation-policy .mv .deco_people01 {
		background-image: url(../img/solicitation-policy/mv-person_sp.svg);
		width: 94px;
		height: 169px;
		left: calc(50% - 178.1px);
	}

	#p_lower.solicitation-policy .fd_list li h2 {
		margin-bottom: min(10px, calc(100vw * (10 / 402)));
	}
}

/* --------------------------------------------------------
	service.html
-------------------------------------------------------- */

#p_lower.service .mv .deco_people01 {
	background-image: url(../img/service/mv-person.svg);
	width: 247px;
	height: 243px;
	left: calc(50% - 341px);
}

#p_lower.service section.content .inner {
	max-width: 1200px;
}

.p_service_cta h2.yellow_dot {
	color: var(--c-white);
}

.p_service_sec03_btn:hover .arrow_dia::before,
.p_service_cta .right_wrap li a:hover .arrow_dia::before {
	animation-name: transformDiaOut;
	animation-delay: 0s;
}

.p_service_sec03_btn:hover .arrow_dia::after,
.p_service_cta .right_wrap li a:hover .arrow_dia::after {
	animation-name: transformDiaIn;
	animation-delay: 0.2s;
}

/* sec01 取扱保険会社 */
.p_service_sec01 h2 {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.4px;
	color: var(--c-black);
	margin-bottom: 40px;
	text-align: center;
}

.p_service_sec01>p {
	line-height: 1.7;
	letter-spacing: 0;
	text-align: center;
}

.p_service_sec01 h3 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.1px;
	color: var(--c-blue);
	margin-top: 40px;
	text-align: center;
	position: relative;
}

.p_service_sec01 h3::before {
	content: '';
	display: inline-block;
	width: 18px;
	height: 24px;
	background-image: url(../img/service/line01.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	position: absolute;
	top: calc(50% - 12px);
	left: calc(50% - 98px);
}

.p_service_sec01 h3::after {
	content: '';
	display: inline-block;
	width: 18px;
	height: 24px;
	background-image: url(../img/service/line02.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	top: calc(50% - 12px);
	right: calc(50% - 98px);
}

.p_service_sec01 .bg_blue {
	padding: 40px;
	margin-top: 10px;
}

.grid05 {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
}

.grid05 li {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 80px;
	padding: 10px 20px;
	background: var(--c-white);
}

.grid05 li:nth-child(13) {
	padding: 10px 15px;
}

.grid05 li img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* sec02 取り扱い保険商品 */
.p_service_sec02,
.p_service_sec03,
.p_service_sec04 {
	margin-top: 120px;
}

.p_service_sec02 .color_box {
	margin-top: 60px;
}

.p_service_sec02 .color_box.yellow {
	margin-top: 100px;
}

.p_service_sec02 .color_box h3 {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 24px;
	font-size: 2.2rem;
	font-weight: 700;
	letter-spacing: 1.1px;
	line-height: 1.7;
	color: var(--c-white);
	border-radius: 10px 10px 0 0;
}

.p_service_sec02 .color_box.pink h3 {
	background: #FC938D;
}

.p_service_sec02 .color_box.yellow h3 {
	background: #F2A90D;
}

.p_service_sec02 .color_box h3 {
	position: relative;
}

.p_service_sec02 .color_box h3::before {
	content: '';
	display: inline-block;
	width: 216px;
	height: 127px;
	background-image: url(../img/service/sec02_illust01.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	bottom: 0;
	left: calc(50% - 378px);
}

.p_service_sec02 .color_box.yellow h3::before {
	width: 220px;
	height: 146px;
	background-image: url(../img/service/sec02_illust02.svg);
	left: calc(50% - 380px);
}

.p_service_sec02 .color_box .bg_pink {
	padding: 4.2% 7.2%;
	border-radius: 0 0 10px 10px;
	border: 2px solid;
	border-top: 0;
}

.p_service_sec02 .color_box.pink .bg_pink {
	background: #FFF6F5;
	border-color: #FC938D;
}

.p_service_sec02 .color_box.yellow .bg_pink {
	background: #FFFBF3;
	border-color: #F2A90D;
}

.p_service_sec02 .color_box .grid03 {
	grid-template-columns: repeat(3, 1fr);
	justify-content: center;
	gap: 40px 32px;
	max-width: none;
	margin: auto;
}

.p_service_sec02 .color_box .grid03 li {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.p_service_sec02 .color_box .img_wrap {
	width: 100%;
	height: 0;
	padding-top: 66.875%;
	position: relative;
	overflow: hidden;
}

.p_service_sec02 .color_box .img_wrap img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p_service_sec02 .color_box h4 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.1px;
	color: var(--c-black);
	text-align: center;
}

/* sec03 ネット保険 */
.p_service_sec03>p {
	line-height: 1.7;
	letter-spacing: 0;
	margin-top: 10px;
}

.p_service_sec03 .grid03 {
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

.p_service_sec03 .grid03 li {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 30px 24px;
	background: #E9F4FF;
	border-radius: 20px;
}

.p_service_sec03 .grid03 h3 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.1px;
	color: var(--c-black);
	text-align: center;
}

.p_service_sec03 .img_wrap {
	aspect-ratio: 400 / 160;
	overflow: hidden;
}

.p_service_sec03 .img_wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p_service_sec03 .grid03 p {
	flex-grow: 1;
	line-height: 1.7;
	letter-spacing: 0;
	color: var(--c-black);
}

.p_service_sec03_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 250px;
	height: 60px;
	border-radius: 30px;
	font-weight: 500;
	letter-spacing: 0.8px;
	color: var(--c-white);
	cursor: pointer;
	margin: 0 auto;
}

.p_service_sec03_btn.btn01 {
	background: #63AADC;
}

.p_service_sec03_btn.btn02 {
	background: #C30E2F;
}

.p_service_sec03_btn.btn03 {
	background: #01493D;
}

.p_service_sec03_btn:hover {
	background-color: var(--c-sky);
}

/* sec04 お客様の声 */
.voice_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

.voice_list li {
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	overflow: hidden;
}

.voice_list .ttl_wrap {
	display: flex;
	height: 100px;
	align-items: center;
	padding-left: 100px;
	padding-top: 5px;
	padding-right: 24px;
	background: #FC938D;
	position: relative;
}

.voice_list .ttl_wrap::before {
	content: '';
	display: inline-block;
	width: 61px;
	height: 80px;
	background-image: url(../img/service/sec04_illust01.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	bottom: 0;
	left: 24px;
}

.voice_list li:nth-child(3) .ttl_wrap {
	padding-left: 110px;
}

.voice_list li:nth-child(3) .ttl_wrap::before {
	width: 70px;
	height: 80px;
	background-image: url(../img/service/sec04_illust03.svg);
}

.voice_list .ttl_wrap p {
	font-weight: 700;
	line-height: 1.7;
	color: var(--c-white);
	letter-spacing: 0;
}

.voice_list .txt_wrap {
	flex-grow: 1;
	padding: 30px 22px;
	background: #FFF6F5;
	border: 2px solid #FC938D;
	border-top: 0;
	border-radius: 0 0 20px 20px;
}

.voice_list .txt_wrap p {
	line-height: 1.7;
	letter-spacing: 0;
	color: var(--c-black);
}

.voice_list .txt_wrap p.cat {
	margin-top: 18px;
	font-weight: 700;
	color: #FD776F;
}

.voice_list li:nth-child(3n+2) .ttl_wrap {
	background: #F2A90D;
	padding-left: 109px;
}

.voice_list li:nth-child(3n+2) .ttl_wrap::before {
	width: 69px;
	height: 80px;
	background-image: url(../img/service/sec04_illust02.svg);
}

.voice_list li:nth-child(3n+2) .txt_wrap {
	background: #FFFBF3;
	border-color: #F2A90D;
}

.voice_list li:nth-child(3n+2) .txt_wrap p.cat {
	color: #E78E00;
}

/* 緊急時の連絡先 */
.p_service_cta {
	background: #001C57;
	padding: 80px 0 120px;
	scroll-margin-top: 80px;
}

.p_service_cta>h2,
.p_service_cta>.flex {
	width: 90%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.p_service_cta>.flex {
	gap: 24px;
	margin-top: 40px;
	flex-wrap: nowrap;
}

.p_service_cta .left_wrap,
.p_service_cta .right_wrap {
	padding: 36px 40px;
	background: var(--c-white);
	border-radius: 20px;
}

.p_service_cta .left_wrap {
	width: 32.7%;
}

.p_service_cta .right_wrap {
	width: 65.3%;
}

.p_service_cta .left_wrap h3 {
	font-weight: 700;
	color: var(--c-blue);
	margin-bottom: 15px;
	letter-spacing: 0;
}

.p_service_cta .left_wrap dl {
	display: flex;
	align-items: center;
	gap: 24px;
}

.p_service_cta .left_wrap dl:not(:last-child) {
	margin-bottom: 10px;
}

.p_service_cta .left_wrap dt {
	flex-shrink: 0;
	width: 80px;
	padding-left: 12px;
	font-weight: 700;
	color: var(--c-blue);
	border-left: 3px solid var(--c-blue);
	line-height: 1.28;
	letter-spacing: 0;
}

.p_service_cta .left_wrap dd {
	font-weight: 500;
	letter-spacing: 0;
}

.p_service_cta .right_wrap>p {
	letter-spacing: 0;
	margin-bottom: 30px;
}

.p_service_cta .right_wrap .grid03 {
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.p_service_cta .right_wrap .grid03 li a {
	display: flex;
	flex-direction: column;
}

.p_service_cta .right_wrap .img_wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 80px;
	padding: 12px 20px;
	background: var(--c-white);
	border: 2px solid;
}

.p_service_cta .right_wrap .img_wrap img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.p_service_cta .right_wrap li p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	height: 45px;
	font-weight: 500;
	letter-spacing: 0.8px;
	color: var(--c-white);
	transition: opacity .3s;
}

.p_service_cta .right_wrap li.btn01 .img_wrap {
	border-color: #CD002C;
}

.p_service_cta .right_wrap li.btn01 p {
	background: #CD002C;
}

.p_service_cta .right_wrap li.btn02 .img_wrap {
	border-color: #00665A;
}

.p_service_cta .right_wrap li.btn02 p {
	background: #00665A;
}

.p_service_cta .right_wrap li.btn03 .img_wrap {
	border-color: #231916;
}

.p_service_cta .right_wrap li.btn03 p {
	background: #231916;
}

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

	.p_service_cta .left_wrap,
	.p_service_cta .right_wrap {
		padding: 36px calc(100vw * (40 / 1330));
	}
}

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

	.p_service_cta .left_wrap,
	.p_service_cta .right_wrap {
		padding: 36px calc(100vw * (20 / 1024));
	}
}

@media screen and (max-width: 1024px) {
	.grid05 {
		grid-template-columns: repeat(4, 1fr);
	}

	.p_service_sec02 .color_box .grid03,
	.p_service_sec03 .grid03 {
		grid-template-columns: repeat(2, 1fr);
	}

	.p_service_sec03 .grid03 li:last-child {
		grid-column: 1 / 3;
		max-width: calc(50% - 12px);
		margin: 0 auto;
	}

	.voice_list {
		grid-template-columns: 1fr;
		max-width: 540px;
		margin: 40px auto 0;
	}

	.p_service_cta>.flex {
		display: block;
		gap: 24px;
		margin-top: min(30px, calc(100vw * (30/ 402)));
	}

	.p_service_cta .left_wrap,
	.p_service_cta .right_wrap {
		flex: 1 0 100%;
		padding: min(30px, calc(100vw * (30/ 402)));
		width: 100%;
		max-width: 540px;
		margin: 0 auto;
	}

	.p_service_cta .right_wrap {
		margin-top: min(30px, calc(100vw * (30/ 402)));
	}

	.p_service_cta .left_wrap dl {
		gap: min(10px, calc(100vw * (10/ 402)));
	}

	.p_service_cta .left_wrap dl:not(:last-child) {
		margin-bottom: min(11px, calc(100vw * (10/ 402)));
	}

	.p_service_cta .left_wrap dt {
		width: 66px;
		font-size: 14px;
		padding-left: min(7px, calc(100vw * (7/ 402)));
	}

	.p_service_cta .left_wrap dd {
		font-size: 14px;
	}

	.p_service_cta .right_wrap>p {
		font-size: 14px;
		margin-bottom: min(20px, calc(100vw * (20/ 402)));
		line-height: 1.75;
	}

	.p_service_cta .right_wrap .grid03 {
		width: 100%;
		max-width: 224px;
		grid-template-columns: 1fr;
		gap: min(20px, calc(100vw * (20/ 402)));
		margin: 0 auto;
	}

	.p_service_cta .right_wrap li p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		height: 40px;
	}
}

@media screen and (max-width: 900px) {
	.p_service_sec02 .color_box h3::before {
		width: calc(100vw * (216 / 900));
		height: calc(100vw * (127 / 900));
		left: 24px;
	}

	.p_service_sec02 .color_box.yellow h3::before {
		width: calc(100vw * (220 / 900));
		height: calc(100vw * (146 / 900));
		left: 24px;
	}
}

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

	.p_service_cta .left_wrap,
	.p_service_cta .right_wrap,
	.p_service_sec03 .grid03,
	.voice_list {
		max-width: none;
	}

	#p_lower.service .mv .deco_people01 {
		background-image: url(../img/service/mv-person_sp.svg);
		width: 155px;
		height: 151px;
		left: calc(50% - 184px);
	}

	#p_lower.service section.content .inner {
		max-width: none;
	}

	.p_service_sec01 h2 {
		font-size: clamp(20px, calc(100vw * (24 / 402)), 24px);
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.p_service_sec01>p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		text-align: left;
	}

	.p_service_sec01 h3 {
		font-size: 20px;
		margin-bottom: 0;
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	.p_service_sec01 h3::before {
		width: 16px;
		height: 24px;
		top: calc(50% - 11px);
		left: calc(50% - 85px);
	}

	.p_service_sec01 h3::after {
		width: 16px;
		height: 24px;
		top: calc(50% - 11px);
		right: calc(50% - 85px);
	}

	.p_service_sec01 .bg_blue {
		padding: min(30px, calc(100vw * (30 / 402)));
		border-radius: min(20px, calc(100vw * (20 / 402)));
	}

	.grid05 {
		grid-template-columns: repeat(2, 1fr);
		gap: min(7px, calc(100vw * (7 / 402)));
	}

	.grid05 li {
		height: min(55px, calc(100vw * (55 / 402)));
		padding-top: min(7px, calc(100vw * (7 / 402)));
		padding-bottom: min(7px, calc(100vw * (7 / 402)));
		padding-left: min(14px, calc(100vw * (14 / 402)));
		padding-right: min(14px, calc(100vw * (14 / 402)));
	}

	.p_service_sec02 {
		margin-top: min(80px, calc(100vw * (80 / 402)));
	}

	.p_service_sec02 .color_box {
		margin-top: min(40px, calc(100vw * (40/ 402)));
	}

	.p_service_sec02 .color_box h3 {
		font-size: min(18px, calc(100vw * (18/ 402)));
		height: min(76px, calc(100vw * (76/ 402)));
		justify-content: flex-start;
		padding-left: min(25px, calc(100vw * (25/ 402)));
		letter-spacing: 3px;
	}

	.p_service_sec02 .color_box h3::before {
		width: min(173px, calc(100vw * (173/ 402)));
		height: min(101px, calc(100vw * (101/ 402)));
		right: min(8px, calc(100vw * (8/ 402)));
		left: auto;
	}

	.p_service_sec02 .color_box .bg_pink {
		padding-top: min(32px, calc(100vw * (32/ 402)));
		padding-bottom: min(40px, calc(100vw * (40/ 402)));
		padding-left: min(30px, calc(100vw * (30/ 402)));
		padding-right: min(30px, calc(100vw * (30/ 402)));
	}

	.p_service_sec02 .color_box.yellow {
		margin-top: min(60px, calc(100vw * (60/ 402)));
	}

	.p_service_sec02 .color_box.yellow h3::before {
		width: min(176px, calc(100vw * (176/ 402)));
		height: min(117px, calc(100vw * (117/ 402)));
		left: auto;
		right: min(8px, calc(100vw * (8/ 402)));
	}

	.p_service_sec02 .color_box .grid03 {
		grid-template-columns: 1fr;
		gap: min(30px, calc(100vw * (30/ 402)));
		max-width: 320px;
	}

	.p_service_sec02 .color_box h4 {
		font-size: min(20px, calc(100vw * (20/ 402)));
	}

	.p_service_sec03,
	.p_service_sec04 {
		margin-top: min(80px, calc(100vw * (80 / 402)));
	}

	.p_service_sec03>p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p_service_sec03 .grid03 {
		grid-template-columns: 1fr;
		gap: min(30px, calc(100vw * (30/ 402)));
		margin-top: min(30px, calc(100vw * (30/ 402)));
	}

	.p_service_sec03 .grid03 li:last-child {
		grid-column: auto;
		max-width: none;
		margin: 0;
	}

	.p_service_sec03 .grid03 li {
		padding: min(30px, calc(100vw * (30/ 402)));
		border-radius: min(20px, calc(100vw * (20/ 402)));
	}

	.p_service_sec03 .grid03 h3 {
		font-size: min(20px, calc(100vw * (20/ 402)));
	}

	.p_service_sec03 .grid03 p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p_service_sec03_btn {
		width: min(226px, calc(100vw * (226 / 402)));
		height: min(60px, calc(100vw * (60 / 402)));
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		gap: min(8px, calc(100vw * (8/ 402)));
		padding-right: min(4px, calc(100vw * (4/ 402)));
	}

	.voice_list {
		grid-template-columns: 1fr;
		gap: min(28px, calc(100vw * (28/ 402)));
		margin-top: min(30px, calc(100vw * (30/ 402)));
	}

	.voice_list .ttl_wrap {
		padding-left: min(100px, calc(100vw * (100/ 402)));
	}

	.voice_list .ttl_wrap p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		letter-spacing: .7px;
	}

	.voice_list .txt_wrap {
		padding-top: min(30px, calc(100vw * (30/ 402)));
		padding-bottom: min(30px, calc(100vw * (30/ 402)));
		padding-left: min(28px, calc(100vw * (28/ 402)));
		padding-right: min(28px, calc(100vw * (28/ 402)));
	}

	.voice_list .txt_wrap p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		line-height: 1.74;
	}

	.p_service_cta {
		padding-top: min(78px, calc(100vw * (78/ 402)));
		padding-bottom: min(80px, calc(100vw * (80/ 402)));
	}




}

/* --------------------------------------------------------
	company.html
-------------------------------------------------------- */

#p_lower.company .mv .deco_people01 {
	background-image: url(../img/company/mv-person.svg);
	width: 126px;
	height: 279px;
	left: calc(50% - 408px);
}

#p_lower.company section.content .inner {
	max-width: 1200px;
	padding-bottom: 0;
}

.inner_900 {
	width: 90%;
	max-width: 900px;
	margin: 0 auto;
}

/* sec01 プロフィール */
.p_company_sec01 {
	position: relative;
	overflow: hidden;
	z-index: 1;
}

.p_company_sec01 .sec01_deco {
	position: absolute;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: 10;
}

.p_company_sec01 .sec01_deco.img01 {
	width: 298px;
	height: 279px;
	top: 48px;
	left: calc(50% - 802px);
	background-image: url(../img/company/img01.png);
}

.p_company_sec01 .sec01_deco.img02 {
	width: 367px;
	height: 250px;
	top: 220px;
	right: calc(50% - 780px);
	background-image: url(../img/company/img02.png);
}

.p_company_sec01 .sec01_deco.img03 {
	width: 299px;
	height: 221px;
	top: 420px;
	left: calc(50% - 726px);
	background-image: url(../img/company/img03.png);
}

.p_company_sec01 .sec01_deco.deco01 {
	width: 81px;
	height: 82px;
	top: 245px;
	left: calc(50% - 800px);
	background-image: url(../img/company/deco01.svg);
}

.p_company_sec01 .sec01_deco.deco02 {
	width: 100px;
	height: 76px;
	top: 327px;
	left: calc(50% - 575px);
	background-image: url(../img/company/deco02.png);
}

.p_company_sec01 .sec01_deco.deco03 {
	width: 93px;
	height: 63px;
	top: 108px;
	right: calc(50% - 600px);
	background-image: url(../img/company/deco03.png);
}

.p_company_sec01 .sec01_deco.deco04 {
	width: 90px;
	height: 92px;
	top: 463px;
	right: calc(50% - 768px);
	background-image: url(../img/company/deco04.png);
}

.p_company_sec01 .sec01_deco.deco05 {
	width: 87px;
	height: 79px;
	top: 555px;
	right: calc(50% - 522px);
	background-image: url(../img/company/deco05.png);
}

.p_company_sec01 .sec01_deco_tb {
	display: none;
}

@keyframes decoSpFlow {
	from {
		background-position-x: 0;
	}

	to {
		background-position-x: -3314px;
	}
}

.p_company_sec01 .bg_sec01 {
	position: relative;
	z-index: 2;
	overflow: hidden;
	padding: 60px 64px 46px;
	border-radius: 40px;
	background: url(../img/company/bg_sec01.png);
	color: var(--c-white);
	text-align: center;
}

.p_company_sec01 .bg_sec01>* {
	position: relative;
	z-index: 1;
}

.p_company_sec01 .bg_sec01 hgroup {
	margin-bottom: 30px;
}

.p_company_sec01 .bg_sec01 hgroup h2 {
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.6px;
	position: relative;
	display: inline-block;
}

.p_company_sec01 .bg_sec01 hgroup h2::before,
.p_company_sec01 .bg_sec01 hgroup h2::after {
	content: '';
	display: inline-block;
	width: 24px;
	height: 21px;
	background-image: url(../img/company/h2_deco01.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: absolute;
	top: -4px;
	left: -26px;
}

.p_company_sec01 .bg_sec01 hgroup h2::after {
	background-image: url(../img/company/h2_deco02.svg);

	top: auto;
	bottom: 0;
	left: auto;
	right: -23px;
}

.p_company_sec01 .bg_sec01 hgroup p {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 1.4px;
}

.p_company_sec01 .bg_sec01>p {
	line-height: 1.7;
	letter-spacing: 0;
	text-align: left;
}

.p_company_sec01 .bg_sec01 .tac {
	margin-top: 30px;
}

.p_company_sec01 .bg_sec01 .tac .position {
	line-height: 1.3;
	letter-spacing: 0;
}

.p_company_sec01 .bg_sec01 .tac .en {
	font-family: var(--font-en);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0.7px;
	margin-top: 10px;
}

.p_company_sec01 .bg_sec01 .tac p:last-child {
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 1.25px;
	line-height: 1.2;
}

/* sec02 会社概要 */
.p_company_sec02 {
	padding-top: 80px;
}

.p_company_sec02 .tbl01 {
	margin-top: 30px;
}

.p_company_sec02 .tbl01 tr {
	display: flex;
}

.p_company_sec02 .tbl01 th {
	flex-shrink: 0;
	width: 160px;
	padding: 19px 20px;
	border-top: 1px solid var(--c-sky);
	border-bottom: 1px solid var(--c-sky);
	font-weight: 700;
	line-height: 1.7;
	color: var(--c-blue);
	text-align: left;
	letter-spacing: 0;
}

.p_company_sec02 .tbl01 td {
	flex: 1;
	padding: 19px 20px;
	border-top: 1px solid var(--c-border);
	border-bottom: 1px solid var(--c-border);
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0;
	color: var(--c-black);
}

.p_company_sec02 .tbl01 tr+tr th,
.p_company_sec02 .tbl01 tr+tr td {
	border-top: 0;
}

/* sec03 アクセス */
.p_company_sec03 {
	padding-top: 80px;
	padding-bottom: 120px;
}

.p_company_sec03 .inner_900 {
	position: relative;
}

.p_company_sec03>h2 {
	margin-bottom: 20px;
}

.p_company_sec03 p {
	line-height: 1.7;
	letter-spacing: 0;
	margin-top: 10px;
	margin-bottom: 30px;
}

.p_company_sec03 iframe {
	display: block;
	height: 500px;
	margin: 0 auto;
	border-radius: 20px;
}

.p_company_sec03 .bubble {
	position: absolute;
	top: 28px;
	right: 94px;
	width: 129px;
	height: 115px;
	background: url(../img/company/bg_googlemap.svg) no-repeat center / contain;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	font-weight: 500;
	color: var(--c-white);
	cursor: pointer;
	letter-spacing: 0;
}

.p_company_sec03 .bubble:hover .arrow_dia::before {
	animation-name: transformDiaOut;
	animation-delay: 0s;
}

.p_company_sec03 .bubble:hover .arrow_dia::after {
	animation-name: transformDiaIn;
	animation-delay: 0.2s;
}

@media screen and (max-width: 1500px) {
	.p_company_sec01 .sec01_deco_tb {
		display: block;
		width: 100%;
		height: 235px;
		position: relative;
		overflow: hidden;
		background-image: url(../img/company/deco_sp.png);
		background-repeat: repeat-x;
		background-position: 0 center;
		background-size: auto 100%;
		animation: decoSpFlow 120s linear infinite;
		z-index: 10;
	}

	.p_company_sec01 .sec01_deco {
		display: none;
	}

	.p_company_sec01 .bg_sec01 {
		margin-top: -17px;
	}
}

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

	#p_lower.company .breadcrumb {
		margin-bottom: 4px;
	}

	.p_company_sec01 .bg_sec01 {
		margin-top: max(-17px, calc(100vw * (-17/ 402)));
		background: url(../img/company/bg_sec01_sp.png);
		background-repeat: repeat;
	}

	#p_lower.company .mv .deco_people01 {
		background-image: url(../img/company/mv-person_sp.svg);
		width: 82px;
		height: 172px;
		left: calc(50% - 167px);
	}

	.p_company_sec01 {
		padding: 0;
	}

	.p_company_sec01 .sec01_deco {
		display: none;
	}

	.p_company_sec01 .sec01_deco_sp {
		display: block;
		width: 100%;
		height: 235px;
		position: relative;
		overflow: hidden;
		background-image: url(../img/company/deco_sp.png);
		background-repeat: repeat-x;
		background-position: 0 center;
		background-size: auto 100%;
		animation: decoSpFlow 20s linear infinite;
		margin-bottom: min(-40px, calc(100vw * (-40 / 402)));
	}

	.p_company_sec01 .bg_sec01 {
		padding: min(48px, calc(100vw * (48 / 402))) min(20px, calc(100vw * (20 / 402))) min(57px, calc(100vw * (57 / 402)));
		font-size: min(20px, calc(100vw * (20 / 402)));
		width: 100%;
	}

	.p_company_sec01 .bg_sec01 hgroup {
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.p_company_sec01 .bg_sec01 hgroup h2 {
		font-size: min(28px, calc(100vw * (28 / 402)));
	}

	.p_company_sec01 .bg_sec01 hgroup h2::before {
		top: 0px;
		left: -24px;
	}

	.p_company_sec01 .bg_sec01 hgroup h2::after {
		bottom: -4px;
	}

	.p_company_sec01 .bg_sec01 hgroup p {
		font-size: min(24px, calc(100vw * (24 / 402)));
		line-height: 1.8;
	}

	.p_company_sec01 .bg_sec01>p,
	.p_company_sec01 .bg_sec01 .tac .position {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p_company_sec01 .bg_sec01 .tac p.name {
		font-size: min(25px, calc(100vw * (25 / 402)));
	}

	.p_company_sec01 .bg_sec01 .tac {
		margin-top: min(33px, calc(100vw * (33 / 402)));
	}

	.p_company_sec01 .bg_sec01 .tac .en {
		margin-top: min(9px, calc(100vw * (9 / 402)));
	}

	.p_company_sec02 {
		padding-top: min(80px, calc(100vw * (80 / 402)));
		padding-bottom: 0;
	}

	.p_company_sec02 .tbl01 {
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	.p_company_sec02 .tbl01 tr {
		flex-direction: column;
		gap: 10px;
	}

	.p_company_sec02 .tbl01 th,
	.p_company_sec02 .tbl01 td {
		width: 100%;
		padding: 20px 0;
		border-color: var(--c-border);
	}

	.p_company_sec02 .tbl01 th {
		padding-bottom: 0;
		border-bottom: none;
	}

	.p_company_sec02 .tbl01 td {
		padding-top: 0;
		border-top: 0;
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p_company_sec03 {
		padding-bottom: min(80px, calc(100vw * (80 / 402)));
	}

	.p_company_sec03>p {
		margin-bottom: 24px;
	}

	.p_company_sec03 iframe {
		border-radius: min(20px, calc(100vw * (20 / 402)));
	}

	.p_company_sec03 .bubble {
		width: 129px;
		height: 115px;
		top: min(56px, calc(100vw * (56 / 402)));
		right: min(31px, calc(100vw * (31 / 402)));
		gap: 4px;
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p_company_sec03 .bubble .arrow_dia {
		width: 16px;
		height: 16px;
		background-size: 11px 11px;
	}
}

/* --------------------------------------------------------
	contact.html
-------------------------------------------------------- */
#p_lower.p_contact .mv .deco_people01 {
	background-image: url(../img/contact/mv-person.svg);
	width: 116px;
	height: 287px;
	left: calc(50% - 359px);
}

#p_lower.p_contact section.content {
	padding-bottom: 120px;
}

#p_lower.p_contact section.content .inner {
	padding-bottom: 0;
}

#p_lower.p_contact section.content .inner.sp100 {
	padding-top: 0;
}

.inner>p.tal {
	line-height: 1.7;
	letter-spacing: 0;
	margin-bottom: 40px;
}

/* お電話でのお問い合わせ／フォームでのお問い合わせ 共通の見出しタブ */
.p_contact_cta h2,
#p-contact-form h2 {
	display: inline-flex;
	align-items: center;
	padding: 20px 24px;
	border-radius: 10px 10px 0 0;
	font-weight: 500;
	color: var(--c-white);
	font-size: 1.6rem;
	letter-spacing: 0;
}

.p_contact_cta h2 {
	background: #17A2AC;
}

#p-contact-form h2 {
	background: var(--c-blue);
}

.p_contact_cta {
	margin-bottom: 40px;
}

.p_contact_cta .green_wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	padding: 30px 40px;
	border: 2px solid #17A2AC;
	border-radius: 0 10px 10px 10px;
	width: 90%;
	max-width: 530px;
}

.p_contact_cta .green_wrap>p {
	line-height: 1.65;
	letter-spacing: 0;
	color: var(--c-black);
}

.p_contact_cta .tel {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 2.8rem;
	font-weight: 700;
	letter-spacing: 1.4px;
	color: #17A2AC;
	cursor: pointer;
}

.p_contact_cta .tel::before {
	content: '';
	display: inline-block;
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	background: url(../img/common/icon_tel_gr.svg) no-repeat center / contain;
}

/* フォームでのお問い合わせ */
.p_contact_form_wrap {
	background: #E9F4FF;
	padding: 40px 40px 60px;
	border-radius: 0 10px 10px 10px;
	width: 100%;
}

.p-contact__text {
	line-height: 1.7;
	letter-spacing: 0;
	color: var(--c-black);
	margin-bottom: 40px;
}

.p-contact-form__tbl {
	display: flex;
	flex-direction: column;
	gap: 50px;
}

.p-contact-form__tbl>div {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.p-contact-form__label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0;
	color: var(--c-blue);
}

.p-contact-form__label>span:first-child {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	height: 25px;
	min-width: 40px;
	padding: 0 6px;
	border-radius: 4px;
	background: var(--c-gray-text);
	color: var(--c-white);
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: 0;
}

.p-contact-form__label>span.m-required {
	background: var(--c-sky);
}

/* 入力パーツ共通 */
.p-contact-form__fields input[type="text"],
.p-contact-form__fields input[type="tel"],
.p-contact-form__fields input[type="email"],
.p-contact-form__fields select,
.p-contact-form__fields textarea {
	width: 100%;
	height: 50px;
	padding: 0 16px;
	background: var(--c-white);
	border: 0;
	border-radius: 4px;
	font-family: inherit;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--c-black);
}

.p-contact-form__fields textarea {
	height: 200px;
	padding-top: 16px;
	resize: vertical;
}

.p-contact-form__fields ::placeholder {
	color: var(--c-gray-text);
}

.p-contact-form__fields select {
	color: var(--c-gray-text);
	appearance: none;
	-webkit-appearance: none;
	background-image: url(../img/contact/contact_arrow.svg);
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 24px;
	padding-right: 36px;
	cursor: pointer;
}

.p-contact-form__fields select.is-selected {
	color: var(--c-black);
}

.p-contact-form__fields input.m-small {
	width: 200px;
}

/* お名前・フリガナ */
.p-contact-form__name {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.p-contact-form__name li {
	width: 200px;
}

.p-contact-form__name input {
	width: 100%;
}

/* 生年月日 */
.p-contact-form__birthday {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.p-contact-form__birthday li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.p-contact-form__birthday-break {
	display: none;
}

.p-contact-form__birthday li:first-child select {
	width: 200px;
}

.p-contact-form__birthday li:not(:last-child) {
	margin-right: 8px;
}

.p-contact-form__birthday li:not(:first-child) select {
	width: 55px;
	padding-right: 16px;
	background-image: none;
}

.p-contact-form__fields input.p-contact-form__birthday-year {
	width: 55px;
	text-align: center;
}

.p-contact-form__birthday-unit {
	color: var(--c-black);
}

/* 性別 */
.wpcf7-form-control.wpcf7-radio {
	display: flex;
	gap: 24px;
	line-height: 1.7;
	letter-spacing: 0;
}

.wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
	display: flex;
	align-items: center;
}

.wpcf7-form-control.wpcf7-radio label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label {
	position: relative;
	padding-left: 26px;
	color: var(--c-black);
}

.wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	box-sizing: border-box;
	border: 1px solid var(--c-border);
	border-radius: 50%;
	background: var(--c-white);
}

.wpcf7-form-control.wpcf7-radio input[type="radio"]:checked+.wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--c-sky);
}

/* 所在地 */
.p-contact-form__address {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.p-contact-form__address>div {
	display: flex;
	align-items: center;
	gap: 8px;
}

.p-contact-form__address>div>dt {
	flex-shrink: 0;
	width: 150px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--c-black);
}

.p-contact-form__address>div>dd {
	flex: 1;
	min-width: 0;
}

.p-contact-form__address input {
	width: 100%;
}

/* プライバシーポリシー */
.wpcf7-form-control.wpcf7-acceptance label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	line-height: 1.7;
	letter-spacing: 0;
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label {
	position: relative;
	padding-left: 26px;
	color: var(--c-black);
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	box-sizing: border-box;
	border: 1px solid var(--c-border);
	border-radius: 50%;
	background: var(--c-white);
}

.wpcf7-form-control.wpcf7-acceptance input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--c-sky);
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label a {
	color: #333;
	text-decoration: underline;
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label a:hover {
	color: var(--c-sky);
	transition: .3s;
}

/* 送信ボタン */
.p-contact-form__submit {
	display: flex;
	justify-content: center;
	margin-top: 40px;
	width: 100%;
}

.p-contact-form__submit-btn {
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
}

.p-contact-form__submit-btn p {
	position: relative;
	display: inline-block;
	margin: 0;
}

.p-contact-form__submit-btn .wpcf7-spinner {
	position: absolute;
	left: 100%;
	margin: 0 0 0 8px;
}

.p-contact-form__submit-btn button[type="submit"] {
	position: relative;
	display: inline-block;
	height: 60px;
	padding: 0 32px 0 64px;
	border: 0;
	border-radius: 30px;
	background: var(--c-blue);
	color: var(--c-white);
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.8px;
	cursor: pointer;
	transition: background-color .3s;
}

.p-contact-form__submit-btn button[type="submit"]:hover {
	background-color: var(--c-sky);
}

.p-contact-form__submit-btn button[type="submit"]:hover .arrow:before {
	animation-name: transformRightLeft;
	animation-delay: 0s;
}

.p-contact-form__submit-btn button[type="submit"]:hover .arrow:after {
	animation-name: transformLeftRight;
	animation-delay: 0.2s;
}

@media screen and (max-width: 768px) {
	#p_lower.p_contact section.content {
		padding-bottom: min(80px, calc(100vw * (80 / 402)));
	}

	#p_lower.p_contact section.content .inner {
		padding-bottom: 0;
	}

	#p_lower.p_contact .inner.sp100 {
		width: 100%;
		padding-top: 0;
	}

	#p_lower.p_contact .mv .deco_people01 {
		background-image: url(../img/contact/mv-person_sp.svg);
		width: 76px;
		height: 178px;
		left: calc(50% - 171px);
	}

	.inner>p.tal {
		font-size: 14px;
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
	}

	.p_contact_cta {
		margin-bottom: min(30px, calc(100vw * (30 / 402)));
		text-align: center;
	}

	.p_contact_cta h2,
	#p-contact-form h2 {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		padding: min(16px, calc(100vw * (16 / 402))) min(30px, calc(100vw * (30 / 402)));
		border-radius: min(20px, calc(100vw * (20 / 402))) min(20px, calc(100vw * (20 / 402))) 0 0;
	}

	.p_contact_cta .green_wrap {
		padding: min(20px, calc(100vw * (20 / 402)));
		max-width: none;
		width: 100%;
		border-radius: min(20px, calc(100vw * (20 / 402)));
	}

	.p_contact_cta .green_wrap>p {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		text-align: left;
	}

	.p_contact_cta .green_wrap>p.sp_tac {
		margin: 0 auto;
	}

	.p_contact_cta .tel {
		font-size: min(28px, calc(100vw * (28 / 402)));
		margin: 5px auto -4px;
	}

	.p_contact_form_wrap {
		padding: min(40px, calc(100vw * (40 / 402))) 5% min(60px, calc(100vw * (60 / 402)));
		border-radius: 0;
	}

	.p-contact__text {
		margin-bottom: min(40px, calc(100vw * (40 / 402)));
		text-align: left;
	}

	.p-contact-form__label>span.m-required {
		font-size: 12px;
		width: 36px;
		min-width: auto;
		height: 22px;
		padding: 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	#p-contact-form h2 {
		display: flex;
		width: fit-content;
		margin: 0 auto;
	}

	#p-contact-form .inner {
		padding: 0;
	}

	.p-contact-form__tbl {
		gap: min(40px, calc(100vw * (40 / 402)));
	}

	.p-contact-form__name {
		gap: min(10px, calc(100vw * (10 / 402)));
	}

	.p-contact-form__name li {
		width: calc(50% - 5px);
	}

	.p-contact-form__birthday {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 10px;
	}

	.p-contact-form__birthday-break {
		display: block;
		flex-basis: 100%;
		width: 0;
		height: 0;
	}

	.p-contact-form__birthday li:first-child select {
		width: 176px;
	}

	.p-contact-form__birthday li:not(:last-child) {
		margin-right: 0;
	}

	.p-contact-form__birthday li:has([name="your-birth-month"]) {
		margin-right: 12px;
	}

	.p-contact-form__address {
		gap: min(13px, calc(100vw * (13 / 402)));
	}

	.p-contact-form__address>div {
		flex-direction: column;
		align-items: flex-start;
		gap: min(8px, calc(100vw * (8 / 402)));
	}

	.p-contact-form__address>div>dt {
		width: 100%;
	}

	.p-contact-form__address>div>dd {
		width: 100%;
	}

	.p-contact-form__fields input.m-small {
		width: 100%;
		max-width: 176px;
	}

	.p-contact-form__submit {
		margin-top: min(30px, calc(100vw * (30 / 402)));

	}

	.p-contact-form__submit-btn button[type="submit"] {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.p-contact-form__fields select {
		background-size: 16px;
	}
}

/* --------------------------------------------------------
	privacy-policy.html
-------------------------------------------------------- */

.blue_dot {
	margin-bottom: 40px;
}

.blue_dot li {
	position: relative;
	padding-left: 16px;
	margin-top: 10px;
	letter-spacing: 0;
}

.blue_dot li::before {
	content: '';
	display: inline-block;
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--c-blue);
	position: absolute;
	top: 12px;
	left: 0;
}

#p_lower.privacy-policy .bg_blue h2 {
	font-size: 1.6rem;
	letter-spacing: 0;
}

#p_lower.privacy-policy .bg_blue dt {
	width: 56px;
}

@media screen and (max-width: 768px) {
	.blue_dot li {
		margin-top: 11px !important;
		line-height: 1.7;
		padding-left: 14px;
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
	}

	.blue_dot li::before {
		top: 7px;
	}

	#p_lower.privacy-policy .bg_blue {
		margin-top: min(30px, calc(100vw * (30 / 402)));
	}

	#p_lower.privacy-policy .bg_blue h2 {
		font-size: clamp(12px, 100vw * (14 / 402), 14px);
		margin-bottom: 22px;
	}
	
	#p_lower.privacy-policy .bg_blue dl {
		display: block;
		margin-bottom: 16px;
	}

	#p_lower.privacy-policy .bg_blue dl:last-child {
		margin-bottom: 0;
	}

	#p_lower.privacy-policy .bg_blue dt {
		padding-left: 7px;
		line-height: 1.45;
		margin-bottom: 8px;
	}
}