@charset "UTF-8";
@import url("https://use.typekit.net/ovh0jui.css");

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

:root {
	--wh: #fff;
	--iv1: #F9F9F9;
	--iv2: #f4f5f7;
	--gn1: #E2E9F1;
	--gn2: #012C55;
	--gn3: #1A4E85;
	--gy1: #585858;
	--gy2: #333333;
	--bk: #070707;
	--br_l: 37px;
	--br_m: 8px;
	--br_s: 4px;
}

::-moz-selection {
	background: rgba(238, 238, 238, 0.5);
	color: #111;
}

::selection {
	background: rgba(238, 238, 238, 0.5);
	color: #111;
}

.en,.membercard .txtarea .mbtiicon {
	font-family: "roc-grotesk", sans-serif;
	font-weight: 500;
	font-style: normal;
}

html {
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}

@media screen and (min-width:769px) {

	/* PC 769px以上 */
	html {
		font-size: 16px;
	}
}

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

	/* タブレット 768px以下 */
	html {
		font-size: 2vw;
	}
}

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

	/* スマートフォン 480px以下 */
	html {
		font-size: 14px;
	}
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 1rem;
	font-weight: 400;
	color: var(--bk);
	line-height: 2.5;
	background: var(--iv1);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

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

	/* スマートフォン 480px以下 */
	body {
		line-height: 2;
		font-size: 14px;
	}
}

article,
aside,
footer,
header,
nav,
section,
main {
	display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.2;
	font-weight: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
a,
p,
span,
em,
small,
strong,
sub,
sup,
mark,
del,
ins,
strike,
abbr,
dfn,
blockquote,
q,
cite,
code,
pre,
ol,
ul,
li,
dl,
dt,
dd,
div,
section,
article,
main,
aside,
nav,
header,
hgroup,
footer,
img,
figure,
figcaption,
address,
time,
audio,
video,
canvas,
iframe,
details,
summary,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
	margin: 0;
	padding: 0;
	border: 0;
}

a,
a::after,
a::before {
	color: inherit;
	outline: none;
	text-decoration: none;
	position: relative;
	display: inline-block;
	transition: all .3s;
	-webkit-transition: all .3s;
	-o-transition: all .3s;
	-moz-transition: all .3s
}

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

video {
	max-width: 100%;
	height: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, sans-serif;
	font-size: inherit;
}

ul,
ol {
	list-style: none;
}

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

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


blockquote,
q {
	quotes: none;
}

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

address {
	font-style: normal;
}

input,
textarea,
select {
	max-width: 100%;
}

/*-----------------------
/*clearfix
---------------------------------*/
/* For modern browsers */
.cf:before,
.cf:after {
	content: " ";
	display: table;
}

.cf:after {
	clear: both;
}

/* For IE 6/7 only */
.cf {
	*zoom: 1;
}



/*-----------------------
component パーツ
-----------------------*/



/*ローディング*/
/*
.c-loading {
	background: #fff;
	height: 100%;
	width: 100%;
	position: fixed;
	visibility: visible;
	opacity: 1;
	top: 0;
	left: 0;
	z-index: 2;
	transition: all 1s ease 0s;
	
}

[data-loading=true] .c-loading {
	visibility: hidden;
	opacity: 0;
}

.c-loading__content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
*/

.content {
	opacity: 0;
	pointer-events: none;
}

body.appear .content {
	animation-name: PageAnime-content;
	animation-duration: .8s;
	animation-delay: .8s;
	animation-fill-mode: forwards;
	opacity: 0;
	pointer-events: auto;
}

.animation .content {
	opacity: 1;
	pointer-events: auto;
}

@keyframes PageAnime-content {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

.ltr .animation-bg {
	background: var(--gn1);
	display: block;
	content: "";
	position: fixed;
	z-index: 999;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;
	animation-duration: 1s;
	animation-timing-function: ease-in-out;
	animation-fill-mode: forwards;
	animation-name: PageAnime-ltr;
}

@keyframes PageAnime-ltr {
	0% {
		transform-origin: left;
		transform: scaleX(0);
	}

	50% {
		transform-origin: left;
		transform: scaleX(1);
	}

	50.001% {
		transform-origin: right;
	}

	100% {
		transform-origin: right;
		transform: scaleX(0);
	}
}

/*モーダル*/
.c-modal {
	z-index: 100;
}

.c-modal__content {
	-webkit-transform: translate(-50%, -50%);
	background: #fff;
	left: 50%;
	opacity: 0;
	padding: 2em 2.4em;
	position: fixed;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: all .3s ease 0s;
	visibility: hidden;
	z-index: 100;
}

.c-modal__close {
	background: #000;
	display: none;
	height: 100%;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	transition: all .3s ease 0s;
	width: 100%;
	z-index: 99;
}

.is-checked .c-modal__close {
	display: block;
	opacity: .4;
}

.is-checked .c-modal__content {
	opacity: 1;
	visibility: visible;
}

.c-modal__content--cover {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	transform: none;
}

.c-title {
	font-size: 50px;
	font-weight: 700;
	letter-spacing: .03em;
}

/*タブ*/
.c-tab__nav {
	border-bottom: 2px solid #e0e0e0;
	display: flex;
	justify-content: center;
}

.c-tab__item {
	background: #e0e0e0;
	display: block;
	margin-bottom: -2px;
	padding: .8em 1.6em;
}

.c-tab__item.is-checked {
	background: #757575;
	color: #fff;
}

.c-tab__content {
	display: none;
}

.c-tab__content.is-checked {
	display: block;
}

/*ナビ*/
.c-navigation {
	display: flex
}

.c-navigation a {
	display: block;
	text-decoration: none;
	transition: all .3s ease 0s
}

.c-navigation > li {
	margin-right: 1.2em;
	position: relative;
	text-align: center;
}

.c-navigation > li:last-child {
	margin-right: 0
}

.c-navigation > li > ul {
	display: block;
	left: 0;
	opacity: 0;
	position: absolute;
	text-align: left;
	top: calc(100% - .2em);
	transition: all .5s ease 0s;
	visibility: hidden;
	width: 200px;
	z-index: 31
}

/*テーブル*/
.c-table {
	background: #fff;
	border: 1px solid #bdbdbd;
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%
}

.c-table td,
.c-table th {
	border: 1px solid #bdbdbd;
	padding: .7rem
}

.c-table th {
	font-weight: 700
}

.c-table--fixed {
	table-layout: fixed
}

.c-table--striped tr:nth-of-type(even) {
	background: #e0e0e0
}

.c-table--horizon {
	border: none
}

.c-table--horizon tr {
	border-bottom: 1px solid #bdbdbd;
	border-top: 1px solid #bdbdbd
}

.c-table--horizon tr:first-of-type {
	border-top: none
}

.c-table--horizon tr:last-of-type {
	border-bottom: none
}

.c-table--horizon td,
.c-table--horizon th {
	border: none
}

.c-table-responsive {
	-webkit-overflow-scrolling: touch;
	display: block;
	overflow-x: auto;
	padding: .2em 0;
	width: 100%
}

.c-navigation > li:hover > ul {
	opacity: 1;
	top: 100%;
	visibility: visible
}

/*dlリスト*/

.c-list dt,
.c-list dd {
	padding: 1em 0;
	border-bottom: 1px solid #baaca6;
}

.c-list dt {
	width: 200px;
	padding-right: 1em;
}

.c-list dd {
	width: calc(100% - 200px);
	padding-right: 1em;
	padding-left: 1em;
}

/*ラジオボタン*/
.c-radio,
[type=radio] {
	display: none
}

.c-radio + span,
[type=radio] + span {
	cursor: pointer;
	display: inline-block;
	margin: 0;
	padding: 0 1em 0 1.9em;
	position: relative
}

.c-radio + span::before,
[type=radio] + span::before {
	-webkit-transform: translateY(-50%);
	background: #fff;
	border: 1px solid #bdbdbd;
	border-radius: 50%;
	content: "";
	display: block;
	height: 1.5em;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1.5em
}

.c-radio + span::after,
[type=radio] + span::after {
	-webkit-transform: translateY(-50%);
	background: var(--gn2);
	border: 1px solid #9e9e9e;
	border-radius: 50%;
	box-shadow: 0 0 0 .1em #fff inset;
	content: "";
	display: block;
	height: 1.5em;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: all .3s ease 0s;
	width: 1.5em
}
.wpcf7-list-item {
    display: inline-block;
    margin: 0;
}
.c-radio:checked + span::before,
:checked[type=radio] + span::before {
	border: 1px solid #9e9e9e
}

.c-radio:checked + span::after,
:checked[type=radio] + span::after {
	opacity: 1
}

/*チェックボックス*/
.c-checkbox,
[type=checkbox] {
	display: none
}

.c-checkbox + span,
[type=checkbox] + span {
	cursor: pointer;
	display: inline-block;
	margin: 0;
	padding: 0 1em 0 1.4em;
	position: relative
}

.c-checkbox + span::before,
[type=checkbox] + span::before {
	-webkit-transform: translateY(-50%);
	background: #fff;
	border: 1px solid #bdbdbd;
	border-radius: 2px;
	content: "";
	display: block;
	height: 1em;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1em
}

.c-checkbox + span::after,
[type=checkbox] + span::after {
	-webkit-transform: translateY(-50%) rotate(-45deg);
	border-bottom: 3px solid #616161;
	border-left: 3px solid #616161;
	content: "";
	display: block;
	height: .6em;
	left: 0;
	margin-top: -.2em;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	transition: all .3s ease 0s;
	width: 1em
}

.c-checkbox:checked + span::before,
:checked[type=checkbox] + span::before {
	border: 1px solid #9e9e9e
}

.c-checkbox:checked + span::after,
:checked[type=checkbox] + span::after {
	opacity: 1
}

/*セレクトボックス*/
.c-select,
select {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	background-image: url(./img/arrow-bottom-w.png);
	background-position: center right .2em;
	background-repeat: no-repeat;
	background-size: 16px auto;
	border: 1px solid #bdbdbd;
	border-radius: 0;
	color: inherit;
	cursor: pointer;
	font-family: inherit;
	font-size: 1em;
	padding: .4em 2.4em .4em .8em;
	width: auto
}

.c-select::-ms-expand,
select::-ms-expand {
	display: none
}

.c-select:focus,
select:focus {
	border: 1px solid #9e9e9e;
	box-shadow: none;
	outline: 0
}

.c-select[multiple],
select[multiple] {
	background-image: none;
	height: 100px;
	padding: 0
}

.c-select[multiple] option,
select[multiple] option {
	padding: .4em 1.2em .4em .4em
}

/*アコーディオン*/
.c-accordion__title {
	cursor: pointer;
	padding: .4em .8em
}

.c-accordion__content {
	display: none;
	padding: .4em .8em
}

.c-accordion__title--arrow {
	padding-right: 2.4em;
	position: relative
}

.c-accordion__title--arrow::after {
	-webkit-transform: translateY(-50%);
	background: transparent url(./img/arrow-bottom-w.png) no-repeat top center/cover;
	content: "";
	height: .8em;
	position: absolute;
	right: .4em;
	top: 50%;
	transform: translateY(-50%);
	transition: all .5s ease 0s;
	width: .8em
}

.is-checked .c-accordion__title--arrow::after {
	-webkit-transform: translateY(-50%) rotateX(180deg);
	transform: translateY(-50%) rotateX(180deg)
}

.c-floating {
	bottom: 1em;
	opacity: 0;
	position: fixed;
	right: 1em;
	transition: all .3s ease 0s;
	visibility: hidden;
	z-index: 3
}

[data-scroll=true] .c-floating {
	opacity: 1;
	visibility: visible;
}

.c-icon-arrow-top {
	width: 32px;
	height: 32px;
	background: url(../images/icon/ico_arrow_r_s.svg);
	position: fixed;
	bottom: 10px;
	right: 10px;
	background-size: cover;
	transform: rotate(270deg);
	z-index: 90
}

/*-----------------------
icon アイコン
-----------------------*/
.ico {
	display: inline-block;
}

.ico_arrow_r_c {
	background: url(../images/icon/ico_arrow_r_c.svg)no-repeat;
	background-size: cover;
	width: 36px;
	height: 36px;
}

.ico_arrow_r_s_gn {
	background: url(../images/icon/ico_arrow_r_c_gn.svg)no-repeat;
	background-size: cover;
	width: 36px;
	height: 36px;
}

.ico_arrow_r_s {
	background: url(../images/icon/ico_arrow_r_s.svg)no-repeat;
	background-size: cover;
	width: 32px;
	height: 32px;
}

.ico_arrow_r {
	width: 15px;
	height: 13px;
}

.ico_arrow_r._bk {
	background: url(../images/icon/ico_arrow_r_bk.svg)no-repeat;
	background-size: cover;
}

.ico_arrow_r._wh {
	background: url(../images/icon/ico_arrow_r_wh.svg)no-repeat;
	background-size: cover;
}


.ico_link {
	width: 12px;
	height: 12px;
}

.ico_link._bk {
	background: url(../images/icon/ico_link_bk.svg)no-repeat;
	background-size: cover;
}

.ico_link._wh {
	background: url(../images/icon/ico_link_wh.svg)no-repeat;
	background-size: cover;
}

.ico_mail {
	width: 25px;
	height: 17px
}

.ico_mail._wh {
	background: url(../images/icon/ico_mail_wh.svg)no-repeat;
	background-size: cover;
}

.ico_mail._bk {
	background: url(../images/icon/ico_mail_bk.svg)no-repeat;
	background-size: cover;
}

.ico_hand {
	width: 63px;
	height: 36px
}

.ico_hand._bk {
	background: url(../images/icon/ico_hand_bk.svg)no-repeat;
	background-size: cover;
}

.ico_hand._wh {
	background: url(../images/icon/ico_hand_wh.svg)no-repeat;
	background-size: cover;
}

#js-cursor {
	pointer-events: none;
	position: fixed;
	top: 0;
	left: 15px;
	width: 15px;
	height: 13px;
	background: url(../images/icon/ico_arrow_r_wh.svg);
	transform: translate(0, 0);
	transition: width 0.3s ease-out, height 0.3s ease-out;
	z-index: 10000;
	opacity: 0;
}

.ico_arrow_s {
	position: relative
}

.ico_arrow_s:before {
	content: '';
	width: 32px;
	height: 32px;
	background: url(../images/icon/ico_arrow_r_s.svg);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	background-size: cover
}

.ico_arrow {
	position: relative
}

.ico_arrow:before {
	content: '';
	width: 15.78px;
	height: 13.81px;
	background: url(../images/icon/ico_arrow_r_bk.svg);
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	z-index: 1
}

#js-mouse {
	pointer-events: none;
	position: fixed;
	top: -30px;
	left: -30px;
	width: 100px;
	height: 100px;
	background-color: rgba(1, 44, 85, 0.22);
	border-radius: 50%;
	transform: translate(0, 0);
	transition: width 0.3s ease-out, height 0.3s ease-out;
	z-index: 9999;
	opacity: 0;
	mix-blend-mode: color-burn;
}

#js-mouse.js-hover {
	width: 80px;
	height: 80px;
}

/*-----------------------
btn ボタン
-----------------------*/
.h_left {
	position: relative;
	z-index: 1;
	overflow: hidden;
}

.h_left::before {
	content: "";
	width: 120%;
	height: 200%;
	position: absolute;
	top: -50%;
	right: 0;
	z-index: -1;
	background: var(--gy2);
	border-radius: 0 10em 10em 0;
	transform: translateX(-100%);
	transition: transform ease .6s;
}

._bk .h_left::before,
._gn .h_left::before {
	background: var(--wh);
}

._bk .h_left:hover,
._gn .h_left:hover {
	color: var(--bk);
}

._wh .h_left::before {
	background: var(--gy2);
}

._wh .h_left:hover {
	color: var(--wh);
}

.h_left:hover::before {
	transform: translateX(10%);
}

.h_zoom .img {
	overflow: hidden;
	display: block;
}

.h_zoom .img img {
	transition: .3s all;
	transform: scale(1)
}

.h_zoom:hover .img img {
	transform: scale(1.1)
}

.btn,
.btn > * {
	display: flex;
	transition: all 0.3s ease-out;
}

.btn > * {
	align-items: center;
	line-height: 1;
	letter-spacing: 1px
}

/*.btn1*/
.btn1 > * {
	font-size: 13px;
	padding: 1.05em 1.2307em;
	border-radius: var(--br_s);
	box-shadow: 0 6px 3px 0px rgba(0, 0, 0, 0.08);
	border: 1px solid #707070;
}

.standby .btn1 > *,
.standby .btn1._wh a {
	padding: 1em;
	font-size: 12px
}

.btn1 > * .ico {
	margin-right: 10px
}

.btn1._wh a {
	background-color: var(--wh);
	padding: 1em 1.8307em;
}

.btn1._bk a {
	background-color: var(--gn2);
	color: var(--wh);
}

.btn1._bk a:hover .ico_mail {
	background: url(../images/icon/ico_mail_bk.svg)no-repeat;
	background-size: cover;
}

/*.btn2*/
.btn2 {
	width: min(330px, 90%);
}

.btn2 > * {
	font-size: 16px;
	padding: 1.3em;
	border-radius: var(--br_s);
	box-shadow: 0 6px 3px 0px rgba(0, 0, 0, 0.08);
	width: 100%;
	justify-content: space-between;

}

.btn2 > * .ico {
	margin-left: 10px
}

.btn2._wh a {
	background: var(--wh);
	color: var(--bk);
}

.btn2._gn a {
	background-color: var(--gn2);
	color: var(--wh);
}

.btn2._bk a {
	background-color: var(--gn2);
	color: var(--wh);
}

.btn2._wh a:hover .ico_link {
	background: url(../images/icon/ico_link_wh.svg)no-repeat;
	background-size: cover;
}

.btn2._right {
	margin: 0 0 0 auto;
}

.btn2._left {
	margin: 0 auto 0 0;
}

.btn2._center {
	margin: 0 auto 0;
}

/*.btn3*/
.btn3 {
	width: min(756px, 90%);
	border-radius: var(--br_m);
}

.btn3 > * {
	font-size: 1.6875rem;
	font-weight: 700;
	border-radius: var(--br_m);
	padding: 2em;
	box-shadow: 0 10px 16px 0px rgba(0, 0, 0, 0.08);
	width: 100%;
	justify-content: center;
	transition: all 0.1s ease-out;
}

.btn3 > * .ico {
	margin-right: 10px
}

.btn3._wh {
	background: var(--wh)
}

.btn3._wh:hover {
	color: var(--wh)
}

.btn3._wh:hover .ico_hand {
	background: url(../images/icon/ico_hand_wh.svg) no-repeat;
}

.btn3._wh .h_left::before {
	background: var(--gn2)
}

.btn3.is-anim .ico_hand {
	animation: .3s linear forwards rotation1;
}

.btn3._gn {
	background: var(--gn2);
	color: #fff
}

.btn3._gn:hover {
	color: var(--gn2);
	background: #fff
}

.btn3._gn:hover .ico_hand {
	background: url(../images/icon/ico_hand_bk.svg) no-repeat;
}

.btn3._gn .h_left::before {
	background: var(--wh)
}  
@keyframes rotation1 {
	0% {
		transform: rotate(270deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

.box1 {
	border: 1px solid var(--gy2);
	border-radius: 0 var(--br_l) 0 var(--br_l);
	position: relative
}

.box1.ttl8list {
	padding: 4em 5% 1.5em
}

.box1 .ttl8 {
	text-align: center;
	background: var(--iv2);
	padding: 0 2em;
	display: inline-block;
	position: absolute;
	top: -.5em;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	min-width: 70%;
}

.box1 .ttl8 span {
	position: relative
}
.box1 .ttl8 span:after,.box1 .ttl8 span:before{
	   content: '';
	 width: 20px;
    height: 34px;
    position: absolute;
	bottom: 4px;
}
.box1 .ttl8 span:after {
    background: url(../images/icon/ico-line2_l.svg) no-repeat;
    background-size: cover;
    left: -39px;
}
.box1 .ttl8 span:before {
    background: url(../images/icon/ico-line2_r.svg) no-repeat;
    background-size: cover;
    right: -39px;
}

.txtlink {
	text-align: right;
	margin: 20px 0 0 auto;
}

.txt-jp {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	text-orientation: upright;
	white-space: pre;
       display: inline-block;
}


/*-----------------------
ttl タイトル
-----------------------*/
.ttl {
	line-height: 1.8;
	font-weight: 500
}

.ttlwrap {
	position: relative;
	display: inline-block;
}

.ttlwrap1 {
	position: relative;
	display: inline-block;
	margin: 60px auto 25px;
}

.ttlwrap1 .ttl1 {
	position: absolute;
	top: -60px;
	right: 0;

}

.ttlwrap1 .ttl6 {
	position: absolute;
	bottom: -60px;
	left: 0;

}

.ttl1,
.ttl6 {
	letter-spacing: 3px;
	display: inline-block;
	position: relative;
}

.ttl1 {
	padding: 10px 1.6em 15px 0;
	font-size: clamp(12px, 9.887px + 0.563vw, 18px);
}

.ttl6 {
	padding: 10px 0 15px 1.6em;
	font-size: clamp(12px, 9.887px + 0.563vw, 18px);
}


.ttl1.animated {
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
}

.ttl6.animated {
	border-left: 1px solid #000;
	border-top: 1px solid #000
}

.ttl1.animated:before {
	width: 1px;
	height: 28px;
	content: "";
	background-color: #000;
	transform: rotate(45deg);
	position: absolute;
	bottom: -14px;
	left: calc(50% - 10px);
}

.ttl6.animated:before {
	width: 1px;
	height: 28px;
	content: "";
	background-color: #000;
	transform: rotate(45deg);
	position: absolute;
	top: -14px;
	left: calc(50% - 10px);
}

.ttl2,
.ttl5 {
	font-family: "roc-grotesk", sans-serif;
	font-weight: 500;
	letter-spacing: 3px;
	position: relative;
	display: inline-block;
	line-height: 1
}

.ttl2 {
	font-size: clamp(3.188rem, 2.038rem + 4.904vw, 7.188rem);
}

.ttl2:after {
	content: '';
	width: 0em;
	height: 5px;
	background: var(--bk);
	position: absolute;
	bottom: 0;
	right: 8px;
	transition: all 0.3s ease-in-out;
}

.ttl2.animated:after {
	width: .73em;
}

.ttl3,
.ttl4 {
	font-size: clamp(1.5rem, 1.283rem + 0.927vw, 2.25rem);
	margin-bottom: 1em;
	letter-spacing: .05em
}

.ttl4 {
	padding-left: 1em;
	position: relative;
	font-weight: 700
}

.ttl4:before {
	content: '';
	position: absolute;
	top: .55em;
	left: 0;
	width: .63em;
	height: 1px;
	background: #000;
}

.ttl5 {
	font-size: clamp(3.188rem, 2.038rem + 4.904vw, 4.1rem);
}

.ttl8 {
	font-size: clamp(20px, 18.276px + 0.46vw, 26px);
}

.ttlline {
	position: relative
}

.ttlline:before,
.ttlline:after {
	position: relative;
	display: inline-block;
	content: "";
	background: var(--bk);
	width: 3px;
	height: .9em;
	margin: 0 .7em;
	margin-top: -.2em;
	vertical-align: middle;
}

.ttlline:before {
	transform: rotate(-35deg);
}

.ttlline:after {
	transform: rotate(35deg);
}

.ttl5.ttlline .txtparts {
	position: absolute;
	top: -38px;

}
.p-about .ttl5.ttlline .txtparts {
top: -48px;
    width: 310px;
}
	.p-instagram .ttl5.ttlline .txtparts {
		width: 260px;
    top: -58px;
	}

/*アニメーション*/
.anim1.is-anim {
	--x: 0;
}

.anim1 .char {
	overflow: hidden;
}

.anim1 .char-text {
	display: inline-block;
	transform: translateX(var(--x, -101%));
	transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
	transition-delay: calc(0.05s * var(--char-index));
}


.amin2 span {
	display: inline-block;
	transition: transform 0.6s cubic-bezier(0.65, 0.02, 0.23, 1);
	transform: translate(20%, 100%);
	position: relative;
	z-index: 1;
}

.amin2 span:before {
	content: '';
	position: absolute;
	z-index: 1;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: translateY(-40%);
	transition: transform 0.6s cubic-bezier(0.65, 0.02, 0.23, 1);
}

.amin2 span.row {
	overflow: hidden;
	display: block;
	transform: none;
}

.amin2 span.row:before {
	display: none;
}

.amin2 .animate {
	transform: translate(0, 0);
}

.amin2 .animate:before {
	transform: translateY(100%);
}

span.amin2.animated {
	display: inline-flex;
}

.p-anima-5 {
	display: inline-block;
	position: relative;
}

.p-anima-5::before {
	content: "";
	display: block;
	background-color: #333;
	position: absolute;
	top: 0;
	left: 0;
	right: 100%;
	bottom: 0;
}

.p-anima-5.__anima::before {
	animation: anima_bg_5 0.9s ease-out 1 forwards;
}

.p-anima-5 span {
	position: relative;
	z-index: 1;
	opacity: 0;
}

.p-anima-5.__anima span {
	animation: anima_fadein_5 0.5s ease-out 0.7s 1 forwards;
}

@keyframes anima_fadein_5 {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes anima_bg_5 {
	0% {
		left: 0;
		right: 100%;
	}

	40% {
		left: 0;
		right: 0;
	}

	60% {
		left: 0;
		right: 0;
	}

	100% {
		left: 100%;
		right: 0;
	}
}


/*-----------------------
list リスト
-----------------------*/
.list1 li {
	padding-left: 1.9em;
	font-weight: 600;
	position: relative;
	font-size: clamp(1rem, 0.925rem + 0.319vw, 1.26rem);
}

.list1 li:before {
	content: '';
	background: url(../images/icon/ico_check.svg)no-repeat;
	background-size: cover;
	width: 1.3em;
	height: 1.3em;
	position: absolute;
	top: .6em;
	left: 0
}

.list2 {
	border-top: 1px solid var(--gy2);
	border-bottom: 1px solid var(--gy2);
	padding: 20px 0;
	display: flex;
	min-height: 160px
}

.list2 .ttl {
	display: flex;
	justify-content: center;
	align-items: center;
	border-right: 1px solid var(--gy2);
	width: 250px
}

.list2 .inner {
	padding: 0 20px;
	gap: 8px;
	width: calc(100% - 250px);
	align-items: center;
}

.list2 .bnr {
	width: calc(100% / 3 - 6px);
}
.list2 p{
line-height: 1.8;
    margin-bottom: 1em;
}

/*-----------------------
layout レイアウト
-----------------------*/
.l-inner {
	margin: 0 auto;
	width: min(1200px, 100%);
	position: relative;
	z-index: 1
}

.l-section {
	padding-bottom: 130px
}

.w700 {
	width: min(710px, 100%);
	margin: 0 auto
}

.l-row {
	display: flex;
	flex-wrap: wrap;
}

.l-row_64,
.l-row_55 {
	column-gap: 4%;
}

.col6 {
	width: 64%;
}

.col4 {
	width: 32%;
}

.col5 {
	width: 48%;
}

.nowrap {
	flex-wrap: nowrap
}

.l-row--middle {
	align-items: center;
}

.l-row--baseline {
	align-items: baseline;
}

.l-row--end {
	align-items: flex-end;
}

.l-row--center {
	justify-content: center;
}

.l-row--between {
	justify-content: space-between;
}

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

/*-----------------------
header
-----------------------*/
.l-header {
	justify-content: space-between;
	align-items: center;
	height: 145px;
	padding: 0 1.1% 0 1.3559%;
	position: relative;
	z-index: 12;
	width: 100%;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.top .l-header {
	background: var(--iv2);
}

.under .l-header {
	background: var(--iv1);
}
.is-open .l-header{
	background: var(--gn1);
}
/*
.l-header.js_hide {
	transform: translateY(-100%);
	opacity: 0;
}
*/
.l-header .sitelogo {
	transition: all 0.3s ease;
}

.sitelogo img {
	width: 100%;
	height: auto;
}

.l-header.standby .sitelogo {
	width: min(250px, 58%);
	transition: all 0.3s ease;
}


.headernav_pc_t {
	justify-content: flex-end
}

.headernav_pc_t .btn:first-child {
	margin-right: 8px
}

.headernav_menu a {
	font-weight: 500;
    line-height: 1;
    padding: 1.3em 0.72em;
    font-size: 15px;
    letter-spacing: 0.5px;
    white-space: nowrap;
}
.headernav_menu .menuttl{
	font-size: 14px;
	margin-bottom: 1em;
	font-weight: 400;
}

.headernav_menu a:hover {
	color: var(--gn3)
}

.headernav_menu li:last-child a {
	padding-right: 0;
}



.l-header.standby {
	position: fixed;
	transform: translateY(-100%);
	height: 65px;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgb(255 255 255 / 50%);
	backdrop-filter: blur(100px);
	-webkit-backdrop-filter: blur(100px);
	transform: translateY(-100%);
	opacity: 1;
	width: 100%;
}

.l-header.standby .headernav_pc {
	width: calc(100% - 250px);
	justify-content: end;
	display: flex;
	flex-direction: row-reverse;
}

.l-header.standby .headernav_menu a {
	padding: 1.3em .42em;
	font-size: 12px;
	letter-spacing: 0
}
.l-header.standby .headernav_menu a .ico{
	margin-left: 3px
}
.l-header.standby .headernav_menu .snslist{
	grid-row-gap: 0;
}
.l-header.standby .headernav_menu .snslist a{
	padding: 0
}
.l-header.standby .headernav_menu li:last-child a {
	margin-right: 1em
}

.l-header.fixed {
	transform: translateY(0);
}

.headernav_sp{
	overflow-y: auto;
}

.headernav_sp .headernav_menu .list span {
	display: block
}

.headernav_sp .headernav_menu .list .en {
	font-size: clamp(1.9rem, 1.283rem + 1.87vw, 4.25rem);
	margin-bottom: 5px;
}

.headernav_sp .headernav_menu .list .jp {
	font-size: clamp(0.8rem, 0.709rem + 0.388vw, 1rem);
}

.headernav_sp .headernav_menu .list {
	display: flex;
	flex-wrap: wrap;
	column-gap: 200px;
	margin-bottom: 40px;
	padding-bottom: 40px;
	border-bottom: 1px solid var(--gy1);
}

.headernav_sp .headernav_menu .list li {
	width: calc(50% - 100px);
}

.headernav_sp .headernav_menu .btnwrap .box {
	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
}
.headernav_sp .headernav_menu .btnwrap .box .btn3{
	width: 100%
}


.headernav_menu .btn3 a {
	font-size: 1.6875rem
}

.drawer {
	display: none;
	justify-content: center;
	align-items: center;
	width: 75px;
	border: 1px solid var(--gy1);
	border-radius: var(--br_s);
	background: var(--wh);
	cursor: pointer;
	padding: 11px 8px;
	position: relative;
	z-index: 11;
	top: -1px
}

.drawer .line {
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-right: 4px
}

.drawer .line span {
	width: 15px;
	height: 2px;
	background: var(--bk);
	display: block;
	margin: 4px 0;
	transition: .3s all
}

.drawer .ttl {
	font-size: 11px;
	letter-spacing: 1px;
	line-height: 1;
}

.is-open .drawer .line span:first-child {
	transform: rotate(35deg);
	top: 2px;
	position: relative;
}

.is-open .drawer .line span:last-child {
	transform: rotate(-35deg);
	top: -4px;
	position: relative;
}

.headernav_sp {
	background: var(--gn1);
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 65px;
	left: 0;
	z-index: 10;
	opacity: 0;
	visibility: hidden;
	transition: 0.3s all;
	padding: 35px 5%
}

.is-open .headernav_sp {
	opacity: 1;
	transition:  0.3s all;
	visibility: inherit;
}

/*-----------------------
Utility
-----------------------*/
.sp {
	display: none;
}

.bold {
	font-weight: bold;
}
.center{
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}
.rlcenter {
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
}

.tbcenter {
	top: 50%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

.t-left {
	text-align: left
}

.t-center {
	text-align: center
}

.t-right {
	text-align: right
}

.t-wh {
	color: var(--wh);
}

.t-gn {
	color: var(--gn2);
}

.t-japanease {
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	overflow: hidden;
	writing-mode: vertical-rl
}

.mgb1x {
	margin-bottom: 1em;
}

.mgb2x {
	margin-bottom: 2em;
}

.mgb3x {
	margin-bottom: 3em;
}

.mgb4x {
	margin-bottom: 4em;
}

.mgb5x {
	margin-bottom: 5em;
}

.mgb6x {
	margin-bottom: 6em;
}

.mgb8x {
	margin-bottom: 8em;
}

.mgt2x {
	margin-top: 2em;
}

.u-hover:hover {
	opacity: .8;
	transition: all .5s ease 0s
}

.u-hover-scale-wrap {
	width: auto;
	overflow: hidden;
}

.u-hover-scale {
	-webkit-transform: scale(1.1, 1.1);
	transform: scale(1.1, 1.1);
	transition: all .5s ease 0s
}

.u-hover-scale:hover {
	-webkit-transform: scale(1, 1);
	transform: scale(1, 1)
}

.u-hover-up {
	-webkit-transform: translate(0, 0);
	transform: translate(0, 0);
	transition: all .5s ease 0s
}

.u-hover-up:hover {
	-webkit-transform: translate(0, -.3em);
	transform: translate(0, -.3em)
}

.u-hover-down {
	-webkit-transform: translate(0, 0);
	transform: translate(0, 0);
	transition: all .5s ease 0s
}

.u-hover-down:hover {
	-webkit-transform: translate(0, .3em);
	transform: translate(0, .3em)
}

.u-fadein {
	opacity: 0;
	transition: all 1.8s ease 0s;
}

.u-fadein.is-anim {
	opacity: 1
}

.u-fadein-up {
	-webkit-transform: translate(0, 1.8rem);
	opacity: 0;
	transform: translate(0, 1.8rem);
	transition: all 0.8s ease 0s;
}

.u-fadein-up.is-anim {
	-webkit-transform: translate(0, 0);
	opacity: 1;
	transform: translate(0, 0);
}

.u-fadein-left {
	-webkit-transform: translateX(-1.8rem);
	opacity: 0;
	transform: translateX(-1.8rem);
	transition: all 0.8s ease 0s;
}

.u-fadein-left.is-anim {
	-webkit-transform: translateX(0);
	opacity: 1;
	transform: translateX(0);
}

.u-fadein-down {
	-webkit-transform: translateY(-1.8rem);
	opacity: 0;
	transform: translateY(-1.8rem);
	transition: all 0.8s ease 0s;
}

.u-fadein-down.is-anim {
	-webkit-transform: translateY(0);
	opacity: 1;
	transform: translateY(0);
}

.u-remarks {
	position: relative;
	color: #DD3641;
	font-size: 90%;
	padding-left: 17px;
	line-height: 1.4;
}

.u-remarks:before {
	position: absolute;
	content: '※';
	left: 0;
}

main {
	overflow: hidden;
}

.bg_gn,
.bg_iv1,
.bg_iv2,
.bg_wh{
	position: relative;
}

.bg_gn {
	background: var(--gn1);
}

.bg_iv1 {
	background: var(--iv1);
}

.bg_iv2 {
	background: var(--iv2);
}
.bg_wh {
	background: var(--wh);
}

.contact_top {
	padding-bottom: 25vh
}

.widewwrap {
	margin: 0 5%;
	column-gap: 20px;
	padding-bottom: 100px
}

.widewwrap > * {
	width: calc(100% / 2 - 10px)
}

.top-circle {
	position: relative;
}

.top-circle:after {
	content: '';
	width: 160%;
	height: 100vh;
	position: absolute;
	top: -15vh;
	left: -30%;
	border-radius: 50%;
}

.bottom-circle_top {
	position: relative;
	padding-bottom: 25vh;
}

.bottom-circle_top:after {
	content: '';
	width: 160%;
	height: 100vh;
	position: absolute;
	bottom: -82vh;
	left: -30%;
	border-radius: 50%;
}

.bottom-circle_bottom {
	position: relative;
	padding-bottom: 5vh;
}

.bottom-circle_bottom:after {
	content: '';
	width: 160%;
	height: 60vh;
	position: absolute;
	bottom: -25vh;
	left: -30%;
	border-radius: 50%;
	z-index: 1
}

.bottom-circle_top._iv:after,
.bottom-circle_bottom._iv:after {
	background: var(--iv1);
}

.top-circle._gn:after {
	background: var(--gn1);
}

.txtarea .read {
	margin-bottom: 2em;
	letter-spacing: 1px;
}

.stripe2 {
	position: relative;
	padding: 15px;
	width: min(1200px, 90%);
	margin: 0 auto;
	z-index: 2
}

.stripe2::before {
	background: var(--iv1);
	content: '';
	width: calc(100% - 30px);
	height: calc(100% - 30px);
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 1;
	border-radius: 1.5em;
}

.stripe2::after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: repeating-linear-gradient(-45deg, var(--gn2), var(--gn2) 3px, var(--iv1) 3px, var(--iv1) 6px);
	background-color: black;
	content: '';
	z-index: 0;
	width: 100%;
	height: 100%;
	border-radius: 2em;
}

/*-----------------------
top MV
-----------------------*/
.t-mv {
	background: rgb(244, 245, 247);
	background: linear-gradient(180deg, var(--iv2) 75%, rgba(226, 233, 241, 1) 75%);
}

.t-mv .txtarea {
	width: 50.1977%;
	position: relative;
	z-index: 2
}

.t-mv .imgarea {
	width: 60.6779%;
	margin-left: -10.8756%;
	position: relative;
	z-index: 1;
}

.t-mv .imgarea .swiper {
	clip-path: inset(0 0 round 100px 0 0 100px);
}

.t-mv .imgarea img {
	width: 100%;
	/*	height: 80vh;*/
	object-fit: cover;
}

.t-mv_ttl {
	font-size: clamp(2.1rem, 2.337rem + 1.477vw, 3.7rem);
	line-height: 1.4354;
	letter-spacing: .08em;
	padding-left: 11.5%;
	font-weight: 600;
	margin-top: 78px;
	margin-bottom: .5em;
	position: relative;
	overflow: hidden;
	color: transparent;
}

.t-mv_ttl:not(strong) {
	text-shadow: 1px 1px 1px var(--iv2);
}

.t-mv_ttl strong {
	background: linear-gradient(90deg, #012C55 0%, #14568F 40%, #2E86C9 80%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-size: 110%;
	text-shadow: none;
	font-weight: 600
}

.t-mv_ttl .br {
	display: block
}

.t-mv_ttl::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background-color: var(--gn1);
	transition: left 0.4s ease, transform 0.4s ease 1.6s, opacity 0.8s ease 1.6s;
	opacity: 1;
	transform: translateX(0);
}

.appear .t-mv_ttl {
	color: inherit;
}

.appear .t-mv_ttl::before {
	left: 0;
	transform: translateX(100%);

}

.t-mv .read {
	font-size: clamp(1rem, 0.825rem + 0.489vw, 1.56rem);
	padding-left: 13%;
	line-height: 1.75;
	letter-spacing: .2em;
	font-weight: 600;
	text-shadow: 1px 1px 1px var(--iv2);
}

@keyframes zoomUp {
	0% {
		transform: scale(1);
	}

	100% {
		transform: scale(1.15);
	}
}

.swiper-slide-active .swiper-img,
.swiper-slide-duplicate-active .swiper-img,
.swiper-slide-prev .swiper-img {
	animation: zoomUp 7s linear 0s normal both;
}

.swiper-slide img {
	height: auto;
	width: 100%;
}

.scrolldown {
	position: absolute;
	left: 0;
	bottom: 34%;
	z-index: 1;
	letter-spacing: 2px;
}

.scrolldown .en {
	transform: rotate(270deg);
}

.c-scrolldown {
	width: 1px;
	height: 60px;
	margin: 25px auto 0;
	overflow: hidden;
}

.c-scrolldown .c-line {
	width: 100%;
	height: 100%;
	display: block;
	background: linear-gradient(to bottom, #121212 50%, rgba(255, 255, 255, 0) 50%);
	background-position: 0 -60px;
	background-size: 100% 200%;
	animation: scrolldown 2.2s cubic-bezier(0.76, 0, 0.3, 1) forwards infinite;
}

@keyframes scrolldown {
	0% {
		background-position: 0 -60px;
	}

	75% {
		background-position: 0 0;
	}

	100% {
		background-position: 0 60px;
	}
}

.topnews {
	background: #fff;
	position: absolute;
	bottom: 45px;
	right: 0;
	z-index: 10;
	align-items: center;
	display: flex;
	padding: 0 0 0 3em;
	border-radius: 3em 0 0 3em;
	width: min(676px, 100%);
	justify-content: space-between;
	height: 85px;
	overflow: hidden;
}

.topnews.sp {
	display: none
}

.newslist {
	width: calc(100% - 130px);
}

.news_link {
	display: flex;
	align-items: center;
	width: 100%;
	height: 85px;
}

.newslist .day {
	font-size: 14px;
	margin-right: .8em;
	width: 80px;
	line-height: 1.8;
	color: var(--gy1)
}

.newslist .cate {
	font-size: .85rem;
	padding: 4px 1em;
	border: 1px solid var(--bk);
	border-radius: 3em;
	line-height: 1.3;
	min-width: 84px;
	display: inline-block;
	text-align: center;
	margin-right: 2em;
}

.newslist .txt {
	width: min(393px, 100%);
	line-height: 1.4;
	transition: .3s all;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.newslist a:hover .txt {
	text-decoration: underline;
}

.topnews .arrow {
	width: 130px;
	font-size: 15px;
	margin-right: 23px;
	font-weight: 500;
}

.topnews .arrow a {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.topnews .arrow .ico {
	margin-left: 8px
}
.p-news .ttlwrap1{
	width: 100%
}
/*-----------------------
top keyword
-----------------------*/
.t-keyword ._inner {
	width: min(1426px, 100%);
	margin: 0 auto
}

.t-keywordwrap {
	padding: 4.5rem 0;
}

.ttl_keyword {
	margin-top: -130px;
	width: min(342px, 30%);
}

.keywordlist {
	width: min(1053px, 74%);
}

.keywordlist li {
	margin-right: 10px;

}

.keywordlist li:first-child {
	margin-left: 2em
}

.keywordlist li a {
	font-size: 1.3125rem;
	border: 1px solid #9aa4b0;
	border-radius: 3em;
	padding: .8em 1.4em;
	line-height: 1
}

.keywordlist li a:hover {
	color: var(--wh)
}

.keywordlist.swiper-wrapper {
	transition-timing-function: linear;
}

/*-----------------------
top vision
-----------------------*/
.t-vision {
	width: min(1200px, 90%);
	margin: 0 auto
}

.t-vision .ttlwrap1 .ttlimg {
	position: absolute;
	right: -230px;
	top: -220px;
	width: 210px
}

.t-vision .txtarea .read strong {
	font-weight: 700
}

.t-vision .txtarea {
	width: 56%;
	margin-top: 70px;
	margin-right: 2%
}

.t-vision .imgarea {
	    width: min(635px, 50%);
    position: absolute;
    right: -10%;
    top: -190px;
}

/*-----------------------
top feature
-----------------------*/
.t-feature > .txtarea {
	text-align: center;
	margin-bottom: 100px
}

.t-feature .btn2 {
	margin-bottom: 8em
}

.featurelist {
	width: min(1160px, 90%);
	margin: 0 auto 74px;
	column-gap: 40px;
	grid-row-gap: 90px;
	justify-content: center
}

.featurelist_box {
	width: calc(100% / 3 - 30px);
	position: relative
}

.featurelist_box a {
	padding: 0 40px 35px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 0.875rem;
	line-height: 1.9;
}

.featurelist_box .ico_value {
	background: var(--iv1);
	padding: 0 30px;
	margin: -36px 0 20px;
	width: min(150px, 90%);
}

.featurelist_box .img {
	margin: 0 auto 5px;
	width: min(187px, 68%);
	transition: .3s all
}

.featurelist_box a:hover .img {
	opacity: .7;
}

.featurelist_box .ttl {
	font-size: clamp(36px, 22.310px + 1.584vw, 55px);
	letter-spacing: 1px;
}

.featurelist_box .ico_arrow_r_s {
	width: 32px;
	height: 32px;
	position: absolute;
	right: 2px;
	bottom: 3px
}

.cloud_img1,
.about_cloud .txtarea {
	position: relative;
	z-index: 1;
}

.about_cloud {
	padding: 30px 5.58%
}

.about_cloud .img {
	position: relative;
	z-index: 2;
}

.cloud_img1 {
	width: min(709px, 80%);
	margin: -80px auto 30px;
	background: var(--iv1);
	padding: 0 30px
}

.about_cloud .img {
	width: 58%;
}

.about_cloud .txtarea {
	width: 42%;
	padding-left: 5.58%
}

/*-----------------------
top service
-----------------------*/
.t-service {
	padding-top: 52vh
}

.t-service .ttlwrap1 {
	margin: 0 0 40px;
}

.servicelist {
	column-gap: 30px;
	grid-row-gap: 20px;
	margin-bottom: 30px
}

.servicelist_box {
	width: calc(100% / 3 - 20px);
}

.servicelist_box a {
	height: 110px;
	width: 100%;
	display: flex;
	align-items: center;
	background: rgba(255, 255, 255, .6);
	transition: .8s all;
	border-radius: var(--br_m);
	font-size: clamp(16px, 14.592px + 0.376vw, 20px);
}

.servicelist_box a:hover {
	background: #fff;
	box-shadow: 0 6px 3px 0px rgba(0, 0, 0, 0.08);
}

.servicelist_box a.h_left::before {
	background: var(--wh);
}

.servicelist_box .img {
	width: 110px;
	height: 110px;
	display: flex;
	background: #fff;
	justify-content: center;
	align-items: center;
	border-radius: 8px 0 0 8px;
}

.servicelist_box .txt {
	width: calc(100% - 110px);
	padding: 0 13px;
	line-height: 1.5
}

/*-----------------------
top about
-----------------------*/
.p-about {
	padding-bottom: 190px
}

.circlebox {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-top: -380px;
}

.circle_top {
	border-radius: 50%;
	background: var(--wh);
	padding: 90px 54px 230px;
	width: min(610px,100%)
}

.aboutbox_bottom {
	background: var(--wh);
	margin-top: -240px;
	padding: 30px 105px 60px;
	border-radius: var(--br_l);
	width: min(1200px, 100%);
}

.aboutmenu {
	column-gap: 65px;
}

.aboutmenu li {
	width: calc(100% / 2 - 40px);
}

.aboutmenu li a {
	padding: 30px 32px 30px 0;
	border-bottom: 1px solid var(--gy1);
	width: 100%;
	display: flex;
	align-items: center;
	position: relative
}

.aboutmenu li a:hover {
	background: #eee;
}

.aboutmenu li a .img {
	max-width: 110px;
	height: 100px;
}

.aboutmenu li a .img img {
	width: 100%;
	height: 100%;
	display: block;
}

.aboutmenu li:first-child a .img img {
	height: auto
}

.aboutmenu li a .ttl {
	width: calc(100% - 110px);
	padding-left: 36px;
	font-size: 1.5rem;
	line-height: 1.7;
}

.aboutmenu li .ico_pickup {
	position: absolute;
	top: 0;
	right: 0
}

.aboutmenu li .ico_pickup {
	right: 52px;
	position: absolute;
	top: 9px;
}

.otherlinkbox .ttlwrap1 {
	margin: 0px auto 60px;
}

.otherlinkbox .ttl1 {
	top: auto;
	right: auto;
	left: 0;
	bottom: -35px
}

.otherlinkbox .img {
	border: 1px solid var(--bk);
	border-radius: var(--br_l)
}

.otherlinkbox .img img {
	/*
	border: 1px solid var(--bk);
	border-radius: var(--br_l)
*/
}

.otherlinkbox .txt {
	display: block;
	padding: 20px 42px 20px var(--br_l);
	position: relative;
}

.bnrarea {
	width: min(1200px, 100%);
	margin: 0 auto
}

.t_voice {
	padding-top: 80px;
	padding-bottom: 130px
}

/*contact*/
.p-contact {
	position: relative;
	z-index: 1;
	padding-bottom: 100px;
}

.p-contact .ttlwrap1 {
	margin: 100px auto 20px;
	position: relative;
	z-index: 1;
}

.p-contact .ttl3 {
	position: relative;
	z-index: 1
}

.p-contact .btn3 {
	margin: 0 auto 80px;
}

.p-contact .imgwrap .img {
	margin-right: calc(50% - 50vw);
}

.p-contact .imgwrap .img img {
	border-radius: 100px 0 0 100px
}

.p-instagram {
	padding: 200px 0 0
}

.p-instagram .ttlline {
	display: flex;
	justify-content: center;
	background: var(--iv1);
	padding: 0 30px;
	margin: -110px auto 20px;
	width: min(618px, 90%);
}

.p-instagram .box1 {
	padding: 100px 5% 40px;
}

/*p-news*/
.p-news {
	padding: 100px 0;
}

.p-news .txtarea {
	width: min(355px, 100%);
}

.p-news .newslist {
	width: min(690px, 100%);
}

.p-news .newslist li a {
	padding: 30px 42px 30px 0;
	border-bottom: 1px solid var(--bk);
	width: 100%;
	display: flex;
	align-items: flex-start;
	position: relative
}

.p-news .newslist li a:after {
	content: '';
	width: 32px;
	height: 32px;
	background: var(--iv1);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	z-index: 0;
	border-radius: 50%
}

.p-news .newslist .ttl {
	width: calc(100% - 154px);
	line-height: 1.6
}

.p-news .newslist li a:hover .ttl {
	text-decoration: underline
}

.p-news .newslist li a:hover:before {
	content: '';
	width: 15.78px;
	height: 13.81px;
	background: url(../images/icon/ico_arrow_r_wh.svg);
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}

.p-news .newslist li a:hover:after {
	background: var(--gy1);
}

.p-footer {
	padding: 120px 0 40px
}

.p-footer copy {
	text-align: right;
	display: block;
	font-size: 12px
}

.footer_top {
	padding-bottom: 58px;
	border-bottom: 1px solid var(--gy1)
}

.footer_top .left {
	width: 40.33%;
}

.footer_top .sitelogo {
	margin-bottom: 48px
}

.footer_top .subnav a {
	font-size: 13px;
	display: block;
	padding-bottom: .5em;

}

.footer_top .right {
	width: 59.666%;
	column-gap: 20px
}

.footer_top .footernavbox {
	width: calc(100% / 4 - 15px);
}

.footer_top .footernavbox a {
	font-weight: 600;
	margin-bottom: 1em;
	line-height: 1;
}

.footer_top .footernavbox .child a {
	font-weight: 400;
	font-size: 14px;
	padding-left: 1.5em;
}

.footer_top .footernavbox .child a:after {
	content: '';
	width: 1em;
	height: 1px;
	background: var(--gy1);
	position: absolute;
	left: 0;
	top: 50%
}

.footer_middle {
	padding: 58px 0;
	border-bottom: 1px solid var(--bk);
	margin-bottom: 58px
}

.footer_middle .left {
	width: min(400px, 100%);
	padding-right: 40px
}

.footer_middle .right {
	width: min(calc(100% - 400px), 100%);
	column-gap: 20px
}

.footer_middle .right > * {
	width: calc(100% / 2 - 10px)
}

.footer_middle .addrinfo .img {
	margin-bottom: 20px
}

.map iframe {
	width: 100%;
	height: 225px
}


.snslist {
	column-gap: 10px;
	grid-row-gap: 10px;
	margin-bottom: 94px
}
.snslist .w100 {
    width: calc(100% / 6* 2 - 45px);
}
.snslist .w50 {
    width: calc(100% / 6* 1 - 10px);
}
.telnum {
	font-size: 30px;
	padding-left: 1em;
	position: relative;
	display: block;
	line-height: 1;
	font-weight: 600;
}

.telnum:before {
	content: '';
	background: url(../images/icon/ico_phone.svg)no-repeat;
	background-size: cover;
	position: absolute;
	top: 6px;
	left: 0;
	width: 22px;
	height: 22px
}

.tel .txt {
	font-size: 14px;
}

.addr {
	margin-bottom: 1em;
	line-height: 1.7;
}

@media screen and (max-width:1520px) {
	.t-mv .imgarea {
		margin-left: -20.8756%;
	}

	.t-mv .txtarea {
		width: 60.1977%;
	}
}

@media screen and (max-width:1328px) {
	.l-header {
		height: 65px
	}

	.headernav_pc,
	.l-header.standby .headernav_pc,
	.topnews.sp {
		display: none
	}

	.headernav_menu a {
		width: 100%;
		letter-spacing: 0;
	}

	.drawer {
		display: flex
	}

	.l-header .sitelogo {
		width: min(250px, 58%);
		padding: 10px 0;
		position: relative;
		z-index: 11
	}

	.ttl_keyword {
		margin-top: -60px;
		width: min(342px, 20%);
		margin-left: 5%
	}

	.keywordlist li {
		margin-right: 4px;
		margin-bottom: -3px;
	}

	.keywordlist li a {
		font-size: 1rem;
		padding: .6em 1em
	}

	.t-vision .imgarea {
		position: initial;
		width: min(335px, 32%);
	}
}

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

	.tb {
		display: none
	}

	.t-mv_ttl .br {
		display: none
	}

	.scrolldown {
		left: -14px;
	}

/*
	.headernav_menu {
		opacity: 0;
		transition: all 0.3s ease 0.6s;
	}

	.is-open .headernav_menu {
		opacity: 1;
	}
*/

	.headernav_menu a {
		padding: 1.1em 0;
	}
	.headernav_menu .snslist a{
		padding: 0
	}
	.headernav_sp,
	.t-vision .txtarea {
		width: 100%;
	}

	.t-mv {
		background: rgb(244, 245, 247);
	}

	.t-mv .imgarea {
		width: 100%
	}

	.t-mv .txtarea {
		order: 2;
		width: 94%;
		margin-bottom: 10px;
		background: var(--iv2);
		position: relative;
		margin-top: 0;
		border-radius: 0 var(--br_l) 0 0;
	}

	.t-mv .imgarea {
		order: 1;
		width: 95%;
		margin: 0 0 0 auto;
	}

	.t-mv .imgarea img {
		height: 570px;
		object-fit: cover
	}

	.t-mv .imgarea .swiper {
		clip-path: inset(0 0 round 100px 0px 0px 0px);
	}

	.t-mv_ttl {
		font-size: clamp(27px, 16.545px + 2.788vw, 50px);
	}

	.t-mv_ttl,
	.t-mv .read {
		padding-left: 5%
	}

	.t-mv_ttl {
		margin-top: 30px
	}

	.t-mv .read {
		font-size: 16px
	}

	.topnews,
	.news_link {
		height: 65px;
	}

	.t-vision .imgarea {
		position: absolute;
		right: 0;
		top: 0;
	}

	.tb {
		display: block;
	}

	.t-service .nowrap {
		flex-wrap: wrap;
		padding: 0 5%
	}

	.t-service .ttlwrap1 {
		margin: 0 auto 10px 0
	}

	.t-service .ttlwrap1 .ttl1 {
		right: -50px;
		width: min(286px, 100%);
		padding-right: 1em;
	}

	.circle_top,.about_top {
		padding: 90px 54px 190px;
	}

	.circlebox,aboutbox {
		margin-top: auto

	}

	.circlebox_bottom {
		padding: 30px 35px 30px;
		margin-top: -200px;
	}
	.aboutbox_bottom{
		padding: 30px 35px 30px;
		margin-top: 0;
		border-radius: 0
	}
	.aboutmenu li a {
		padding: 8px 32px 8px 0;
		border-bottom: 1px solid var(--gy1);
	}

	.aboutmenu li a .ttl {
		width: calc(100% - 60px);
		padding-left: 15px;
		font-size: 15px;
	}

	.ico_arrow_s:before {
		width: 24px;
		height: 24px;
	}

	.aboutmenu li .ico_pickup {
		right: 2px;
		position: inherit;
		top: -1px;
		width: 60px
	}

	.aboutmenu li a .img {
		width: 60px;
		height: 60px;
	}

	.p-news .l-inner {
		padding-left: 5%;
		padding-right: 5%;
	}

	.p-news .newslist {
		width: calc(100% - 360px);
	}
	.circle_top,
	.p-instagram .ttl5 {
		border-radius: 0;
		padding: 90px 0 0;
		text-align: center;
		width: 100%
	}
	.p-about{
		padding-bottom: 120px
	}
}

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

	.pc,
	.topnews.pc,
	.tb {
		display: none
	}
	.reverse_sp{
		flex-direction: column-reverse
	}
	.sp,.wpcf7-list-item {
		display: block
	}
	.ttl{
		font-weight: 600;
	}
	.ttl1 {
		font-size: 12px
	}

	.btn3 > * {
		font-size: 1.3875rem;
	}

	.topnews.sp {
		position: relative;
		display: flex;
		padding: 0 5%;
		border-radius: 3em;
		width: 90%;
		overflow: hidden;
		border: 1px solid var(--gy2);
		margin: 0px auto;
		bottom: auto;
	}

	.circlebox_bottom {
		padding: 5%
	}

	.t-keyword {
		padding-top: 3.5rem
	}

	.t-vision .txtarea,
	.featurelist_box,
	.about_cloud .img,
	.about_cloud .txtarea,
	.circlebox_bottom,
	.aboutmenu li,
	.widewwrap > *,
	.p-news .newslist .ttl,
	.footer_top .left,
	.footer_top .right,
	.footer_middle .left,
	.footer_middle .right,
	.footer_middle .right > *,
	.p-news .newslist {
		width: 100%;
	}

	.ttl2:after {
		bottom: -1px;
		right: 4px;
		height: 4px;
	}

	.ttlwrap1 {
		margin-bottom: 10px
	}

	.btn2 {
		width: auto;
		max-width: 290px;
	}

	.btn2._right {
		margin: 0 auto;
	}

	.bottom-circle_top {
		padding-bottom: 120px;
	}

	.bottom-circle_top:after {
		width: 220%;
		left: -60%;
		bottom: -36vh;
		height: 45vh;
	}

	.bottom-circle_bottom:after {
		width: 220%;
		left: -60%;
		bottom: -8vh;
		height: 45vh;
	}

	.top-circle:after {
		width: 220%;
		left: -60%;
		top: -8vh;
		height: 45vh;
	}

	.footer_top .footernavbox {
		width: calc(100% / 2 - 15px);
	}

	.t-mv .txtarea {
		margin-top: -3.5rem;
	}

	.t-mv .imgarea img {
		height: 50vh;
	}

	.p-news .newslist li a {
		flex-wrap: wrap;
		padding: 15px 42px 15px 0;
		border-bottom: 1px solid #d8d8d8;
	}


	.topnews .ttl {
		line-height: 1;
		margin-right: 16px;
		margin-top: 3px
	}

	.news_link {
		flex-wrap: wrap;
		padding: 15px 0;
		align-items: center
	}

	.newslist {
		width: 100%;
	}

	.newslist .day {
		font-size: 12px;
		margin-right: 0;
		width: auto;
		line-height: 1.2;
	}

	.newslist .txt {
		width: 100%;
		-webkit-line-clamp: 1;
		text-decoration: underline;
	}

	.topnews .arrow {
		width: 134px;
		font-size: 15px;
		margin-right: 0;
		font-weight: 500;
	}

	.t-keywordwrap {
		padding: 3.5rem 0 1.5rem;
	}

	.ttl_keyword {
		margin-top: 0;
		width: 100%;
		margin-left: 0;
		text-align: center
	}

	.ttl_keyword > * {
		display: inline-block;
		line-height: 1;
	}

	.ttl_keyword .en {
		font-size: clamp(2.188rem, 1.038rem + 4.904vw, 7.188rem);
	}

	.ttl_keyword .jp {
		font-size: clamp(1rem, 0.925rem + 0.319vw, 1.26rem);
		margin-bottom: 2em
	}

	.keywordlist {
		width: 100%;
		justify-content: center;
	}

	.t-vision {
		flex-direction: column-reverse
	}

	.t-vision .imgarea {
		width: min(300px, 65%);
		position: relative;
		right: auto;
		top: -100px;
		margin: 0 auto;
	}

	.t-vision .txtarea {
		margin-top: -80px;
		margin-right: 0;
	}

	.t-vision .ttlwrap1 {
		margin-top: 0;
		margin-bottom: 20px
	}

	.t-feature > .txtarea {
		text-align: left;
		padding: 0 5%;
		margin-bottom: 50px
	}

	.featurelist {
		grid-row-gap: 40px;
		margin-bottom: 40px
	}

	.featurelist_box a {
		padding: 20px 38px 32px 38px;
		flex-direction: row;
		justify-content: flex-start;
		font-size: 1rem;
		flex-wrap: wrap;
	}

	.featurelist_box .ico_value {
		padding: 0 22px;
		margin: 0 auto;
		width: 90px;
		position: absolute;
		left: calc(50% - 45px);
		top: -26px;
	}

	.featurelist_box .img {
		margin: 0 10px 0 0;
		width: 70px;
	}

	.featurelist_box .ttl {
		font-size: 36px;
	}

	.featurelist_box .txt {
		width: 100%;
		margin: 10px auto 0
	}

	.stripe2::before {
		width: calc(100% - 20px);
		height: calc(100% - 20px);
		top: 10px;
		left: 10px;
		z-index: 1;
		border-radius: .6em;
	}

	.stripe2::after {
		background: repeating-linear-gradient(-45deg, var(--gn2), var(--gn2) 2px, var(--iv1) 2px, var(--iv1) 4px);
		border-radius: 1em;
	}

	.t-mv_ttl::before {
		background: var(--iv2)
	}

	.t-service {
		padding-top: 24vh
	}

	.servicelist {
		column-gap: 8px;
		grid-row-gap: 8px;
		padding: 0 5%;
		margin-bottom: 30px;
		margin-top: 20px
	}

	.servicelist_box {
		width: calc(100% / 2 - 4px);
	}

	.t-service .ttlwrap1 .ttl1 {
		width: auto;
	}

	.servicelist_box a {
		height: 80px
	}

	.servicelist_box .img {
		width: 50px;
		height: 80px;
		padding: 0 8px;
	}

	.servicelist_box .txt {
		width: calc(100% - 50px);
		padding: 0 8px;
		font-size: 14px;
	}

	.l-section {
		padding-bottom: 80px;
	}

	.circlebox,
	.circlebox_bottom {
		margin-top: 0;
		background: #ffffff;
	}

	

	.about-img img {
		aspect-ratio: 1.4 / 1;
		object-fit: cover;
	}

	.circlebox .ttl5,
	.p-instagram .ttl5 {
		font-size: clamp(2.188rem, 1.038rem + 4.904vw, 7.188rem)
	}

	.aboutmenu li:last-child a {
		border-bottom: none
	}

	.p-about {
		padding-bottom: 40px
	}

	.otherlinkbox .ttlwrap1 {
		margin-bottom: 50px
	}

	.otherlinkbox .img {
		border: 1px solid var(--bk);
		border-radius: var(--br_m);
	}

	.otherlinkbox .txt {
		padding: 10px 32px 40px 0;
	}

	.widewwrap {
		padding-bottom: 0
	}

	.t_voice {
		margin: 0 auto;
		width: 80%;
		padding-top: 40px;
		padding-bottom: 40px
	}

	.t_voice .ttl1 {
		top: auto;
		right: auto;
		left: 0;
		bottom: -35px;
	}

	.t_voice .ttlwrap1 {
		margin-bottom: 50px;
		margin-top: 0;
	}

	.contact_top {
		padding-bottom: 8vh
	}

	.p-contact {
		padding-bottom: 40px
	}

	.p-contact .btn3 {
		margin-bottom: 40px
	}

	.p-contact .imgwrap .img {
		width: 95%;
		margin: 0 calc(50% - 50vw) 0 auto;
	}

	.p-contact .imgwrap .img img {
		aspect-ratio: 1.35 / 1;
		object-fit: cover;
	}

	.p-instagram {
		padding: 70px 0 40px;
	}

	.p-instagram .box1 {
		padding: 0 5%;
		border: none;
		border-radius: 0;
	}

	.p-instagram .ttlline {
		width: 100%;
		padding-top: 20px;
		margin-top: 0;
	}

	.p-instagram .ttl5.ttlline .txtparts {
		width: 160px;
		top: -18px;
	}

	.p-news {
		padding: 0 5% 80px
	}

	.p-news .ttlwrap1 .ttl6 {
		border-left: 1px solid #000;
		border-top: none;
		border-bottom: 1px solid #000;
		position: absolute;
		bottom: auto;
		left: auto;
		top: -55px;
		right: 0;
		width: 190px;
	}

	.p-news .ttl6.animated:before {
		top: auto;
		bottom: -14px;
	}

	.newslist .cate {
		font-size: 10px;
		padding: 1px .5em;
		border: 1px solid #bdbdbd;
		border-radius: 3em;
		line-height: 1.3;
		min-width: 64px;
		margin-right: 0;
		margin-left: 1em;
		margin: -1px 0 0 .4em;
	}

	.p-footer {
		padding-top: 60px
	}

	.footer_top .sitelogo {
		width: min(252px, 58%);
		margin-bottom: 34px;
	}

	.footer_top .right,
	.footer_middle,
	.footer_bottom {
		padding-right: 5%;
		padding-left: 5%;
	}

	.footer_middle .left {
		margin-bottom: 40px
	}

	.snslist .w100 {
		width: 100%;
	}

	.snslist .w50 {
		width: calc(100% / 2 - 5px);

	}

	.snslist li a img {
		width: 100%;
		height: auto;
	}

	.snslist li a {
		width: 100%;
	}

	.p-footer copy {
		text-align: center;
		font-size: 10px
	}

	.headernav_sp .headernav_menu .list {
		column-gap: 20px;
		margin-bottom: 20px;
		padding-bottom: 20px
	}

	.headernav_sp .headernav_menu .list li {
		width: calc(100% / 2 - 10px);
	}

	.standby .headernav_menu a {
		padding: 1.1em 0;
	}

	.headernav_menu .ico_arrow:before {
		display: none
	}

	.headernav_sp .headernav_menu .btnwrap .box .ttl {
		font-size: 15px
	}

	.cloud_img1 {
		padding: 0 10px
	}
	.list2{
		display: block;
		min-height: auto;
		margin-bottom: 50px
	}
	.list2 .ttl{
		border-right: none;
		margin-bottom: 1em;
		width: 100%
	}
	.list2 .inner{
		width: 100%;
	}
	.list2 .bnr {
    width: calc(100% / 2 - 6px);
}
	.p-about .ttl5.ttlline .txtparts{
		    top: -38px;
    width: 220px;
	}
}
/*----------------------------
voice banner (CSS版)
----------------------------*/
.voicebnr {
	display: flex;
	align-items: center;
	background: var(--wh);
	border-radius: 24px;
	overflow: hidden;
	color: #111;
}

.voicebnr_img {
	width: 61%;
	flex-shrink: 0;
	align-self: stretch;
}

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

.voicebnr_body {
	flex: 1;
	min-width: 0;
	padding: 48px 5.5%;
}

.voicebnr_txt {
	font-size: clamp(18px, 1.75vw, 25px);
	font-weight: 700;
	line-height: 1.8;
	white-space: nowrap;
	margin-bottom: 1.4em;
}

.voicebnr_note img {
	width: 5em;
	vertical-align: -0.42em;
	margin-right: 0.15em;
}

.voicebnr_cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
}

.voicebnr_btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	width: 100%;
	background: var(--gn2);
	color: var(--wh);
	font-size: 16px;
	font-weight: 500;
	border-radius: 10px;
	padding: 17px 14px 17px 1.6em;
	transition: background 0.3s ease;
}

.voicebnr_arrow {
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--gn3) url(../images/icon/ico_arrow_r_wh.svg) no-repeat center / 36% auto;
	transition: transform 0.3s ease;
}

.voicebnr:hover .voicebnr_btn {
	background: var(--gn3);
}

.voicebnr:hover .voicebnr_arrow {
	transform: translateX(4px);
}

@media screen and (max-width:768px) {
	.voicebnr {
		flex-direction: column;
		border-radius: 20px;
	}

	.voicebnr_img {
		width: 100%;
	}

	.voicebnr_body {
		width: 100%;
		padding: 34px 6% 42px;
	}

	.voicebnr_txt {
		text-align: center;
		font-size: clamp(17px, 5.4vw, 22px);
		margin-bottom: 1.2em;
	}

	.voicebnr_notelogo {
		width: min(150px, 38vw);
	}

	.voicebnr_btn {
		width: auto;
		padding: 0;
		background: none;
	}

	.voicebnr_btntxt {
		display: none;
	}

	.voicebnr_arrow {
		width: 56px;
		height: 56px;
		background-color: var(--gn2);
	}

	.voicebnr:hover .voicebnr_btn {
		background: none;
	}
}

/*----------------------------
コラム機能
----------------------------*/
.p-column {
	padding-bottom: 100px;
}

.p-column .txtarea p {
	line-height: 2;
}


.column_archivettl {
	font-size: clamp(24px, 1.283rem + 0.927vw, 34px);
	font-weight: 700;
	line-height: 1.5;
	padding-top: 24px;
	margin-bottom: 40px;
}

.column_archivettl span {
	color: var(--gn2);
	font-weight: 700;
}

/* カード一覧 */
.columnlist {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 28px;
}

.columncard a {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--wh);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(1, 44, 85, 0.06);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.columncard a:hover {
	box-shadow: 0 10px 28px rgba(1, 44, 85, 0.14);
	transform: translateY(-4px);
}

.columncard_img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.columncard_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.columncard a:hover .columncard_img img {
	transform: scale(1.05);
}

.columncard_body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	flex: 1;
	padding: 20px 22px 22px;
}

.columncard_cate {
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	color: var(--wh);
	background: var(--gn2);
	border-radius: var(--br_s);
	padding: 0.5em 1.2em;
}

.columncard_ttl {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.65;
	color: #1a1a1a;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	transition: color 0.25s ease;
}

.columncard a:hover .columncard_ttl {
	color: var(--gn2);
}

.columncard_date {
	margin-top: auto;
	font-size: 13px;
	color: #8a94a3;
	letter-spacing: 0.05em;
}

.columnlist_empty {
	text-align: center;
	padding: 60px 0;
	color: #666;
}

/* 記事詳細 */
.column_article {
	width: 100%;
	min-width: 0;
}

.column_header {
	margin-bottom: 36px;
}

.column_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
}

.column_cate {
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	color: var(--wh);
	background: var(--gn2);
	border-radius: var(--br_s);
	padding: 0.5em 1.3em;
	transition: opacity 0.25s ease;
}

.column_cate:hover {
	opacity: 0.8;
}

.column_date {
	font-size: 14px;
	color: #8a94a3;
	letter-spacing: 0.05em;
}

.column_ttl {
	font-size: clamp(1.5rem, 1.283rem + 0.927vw, 2.25rem);
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: 18px;
}

.column_thumbnail {
	margin-bottom: 44px;
}

.column_thumbnail img {
	width: 100%;
	border-radius: 14px;
}

/* 記事本文タイポグラフィ */
.column_entry {
	line-height: 2.1;
	font-size: 16px;
}

.column_entry > * + * {
	margin-top: 1.6em;
}

.column_entry h2 {
	font-size: 23px;
	font-weight: 700;
	line-height: 1.6;
	background: #eef2f7;
	border-left: 5px solid var(--gn2);
	border-radius: 0 8px 8px 0;
	padding: 0.7em 1em;
	margin-top: 2.6em;
}

.column_entry h3 {
	font-size: 19px;
	font-weight: 700;
	line-height: 1.6;
	border-bottom: 2px solid #cfdae6;
	padding-bottom: 0.5em;
	margin-top: 2.2em;
}

.column_entry h4 {
	font-size: 17px;
	font-weight: 700;
	color: var(--gn2);
	margin-top: 2em;
}

.column_entry ul,
.column_entry ol {
	padding-left: 1.6em;
}

.column_entry li {
	margin-bottom: 0.5em;
}

.column_entry ul li::marker {
	color: var(--gn2);
}

.column_entry a {
	color: #14568f;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.column_entry a:hover {
	opacity: 0.75;
}

.column_entry blockquote {
	border-left: 3px solid #c3cedb;
	background: #f6f8fb;
	border-radius: 0 8px 8px 0;
	padding: 1.2em 1.5em;
	color: #555;
}

.column_entry table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.column_entry th,
.column_entry td {
	border: 1px solid #cfdae6;
	padding: 0.8em 1em;
	text-align: left;
}

.column_entry th {
	background: #eef2f7;
	font-weight: 700;
}

.column_entry img {
	border-radius: 10px;
}

/* タグ */
.column_tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 44px;
}

.column_tags._top {
	justify-content: flex-end;
	margin: 0 0 20px;
}

.column_tags a {
	display: inline-block;
	font-size: 14px;
	line-height: 1.4;
	color: #5a7ba3;
	transition: color 0.25s ease;
}

.column_tags a:hover {
	color: var(--gn2);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* 記事下CTA */
.column_cta {
	width: 100%;
	margin: 64px auto 0;
	background: #eef2f7;
	border-radius: 16px;
	text-align: center;
	padding: 44px 6%;
}

.column_cta_txt {
	font-weight: 700;
	margin-bottom: 24px;
}

.column_cta .btn {
	display: inline-block;
}

.p-column .pnavwrap {
	width: 100%;
	margin: 56px auto 0;
}

@media screen and (max-width: 900px) {
	.columnlist {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px 20px;
	}
}

@media screen and (max-width: 768px) {
	.p-column {
		padding-bottom: 60px;
	}

	.column_entry {
		font-size: 15px;
	}

	.column_entry h2 {
		font-size: 19px;
	}

	.column_entry h3 {
		font-size: 17px;
	}
}

@media screen and (max-width: 600px) {
	.columnlist {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* トップページ: 新着コラムセクション */
.t-column {
	padding: 100px 0;
}

.t-column_list {
	margin-bottom: 48px;
}

.t-column_btn {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

@media screen and (max-width: 768px) {
	.t-column {
		padding: 60px 0;
	}

	.t-column_list {
		margin-bottom: 32px;
	}
}

/* コラム: カテゴリータイルナビ(BIZARQ風) */
.columncatnav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 2px;
}

.columncatnav a {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: #dde6f0;
	color: #1a2b3d;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	padding: 1.1em 0.5em;
	transition: background 0.25s ease, color 0.25s ease;
}

.columncatnav a:hover {
	background: #c6d5e6;
}

.columncatnav a._current {
	background: var(--gn2);
	color: var(--wh);
}

.columncatnav a._current:hover {
	background: var(--gn3);
}

.columntabs .columncatnav {
	margin-bottom: 48px;
}

.columntabs_panel[hidden] {
	display: none;
}

.columntabs_more {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

.columntabs_morebtn {
	appearance: none;
	background: none;
	border: 1px solid var(--gn2);
	border-radius: 2em;
	color: var(--gn2);
	font-size: 15px;
	font-weight: 500;
	padding: 1em 3.5em;
	cursor: pointer;
	transition: all 0.25s ease;
}

.columntabs_morebtn:hover {
	background: var(--gn2);
	color: var(--wh);
}

.columntabs_morebtn:disabled {
	opacity: 0.5;
	cursor: default;
}

/* 記事本文内の長いURL折り返し */
.column_entry {
	overflow-wrap: anywhere;
	word-break: break-word;
}

.column_entry a {
	word-break: break-all;
}

@media screen and (max-width: 768px) {
	.columncatnav {
		grid-template-columns: repeat(2, 1fr);
	}

	.columncatnav a {
		font-size: 13px;
		padding: 1em 0.4em;
	}

	.columntabs .columncatnav {
		margin-bottom: 28px;
	}

	.columntabs_morebtn {
		font-size: 14px;
		padding: 0.9em 3em;
	}

}

/* コラム: 2カラムレイアウト+サイドバー */
.column_layout {
	display: flex;
	align-items: flex-start;
	gap: 56px;
}

.column_main {
	flex: 1;
	min-width: 0;
}

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

.column_side {
	width: 300px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 44px;
}

.column_side_ttl {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	border-left: 4px solid var(--gn2);
	padding-left: 0.7em;
	margin-bottom: 20px;
}

.column_side_new li {
	border-bottom: 1px solid #dfe5ec;
}

.column_side_new li:first-child {
	border-top: 1px solid #dfe5ec;
}

.column_side_new a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 0;
	transition: opacity 0.25s ease;
}

.column_side_new a:hover {
	opacity: 0.7;
}

.column_side_img {
	width: 96px;
	aspect-ratio: 16 / 10;
	flex-shrink: 0;
	border-radius: 6px;
	overflow: hidden;
}

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

.column_side_name {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.column_side_cats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.column_side_cats a {
	display: block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	color: var(--gn2);
	background: var(--wh);
	border: 1px solid var(--gn2);
	border-radius: var(--br_s);
	padding: 0.6em 1.2em;
	transition: background 0.25s ease, color 0.25s ease;
}

.column_side_cats a:hover {
	color: var(--wh);
	background: var(--gn2);
}

.column_side_tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
}

.column_side_tags a {
	font-size: 13px;
	line-height: 1.5;
	color: #5a7ba3;
	transition: color 0.25s ease;
}

.column_side_tags a:hover {
	color: var(--gn2);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

@media screen and (max-width: 900px) {
	.column_layout {
		flex-direction: column;
		gap: 48px;
	}

	.column_side {
		width: 100%;
	}
}

@media screen and (max-width: 768px) {
	.column_layout .columnlist {
		grid-template-columns: 1fr;
	}
}

/* コラム: 監修者ボックス */
.column_supervisor {
	display: flex;
	align-items: flex-start;
	gap: 28px;
	border: 1px solid #cfdae6;
	border-radius: 12px;
	padding: 30px 32px;
	margin-top: 56px;
}

.column_supervisor_img {
	flex-shrink: 0;
	width: 100px;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
}

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

.column_supervisor_label {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	color: var(--wh);
	background: var(--gn2);
	border-radius: var(--br_s);
	padding: 0.5em 1.1em;
	margin-bottom: 12px;
}

.column_supervisor_name {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.column_supervisor_title {
	font-size: 13px;
	color: #5a7ba3;
	margin: 4px 0 12px;
	line-height: 1.4;
}

.column_supervisor_bio {
	font-size: 14px;
	line-height: 1.9;
	color: #333;
}

@media screen and (max-width: 768px) {
	.column_supervisor {
		gap: 18px;
		padding: 22px 20px;
		margin-top: 40px;
	}

	.column_supervisor_img {
		width: 72px;
	}

	.column_supervisor_name {
		font-size: 16px;
	}
}

/* コラム: 目次(Easy Table of Contents)のデザイン調整 */
div#ez-toc-container {
	background: #eef2f7;
	border: none;
	border-radius: 10px;
	padding: 24px 28px;
	margin-bottom: 2.5em;
	width: 100%;
	box-shadow: none;
}

div#ez-toc-container p.ez-toc-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--gn2);
}

div#ez-toc-container ul li a {
	font-size: 15px;
	line-height: 1.9;
	color: #333;
	text-decoration: none;
}

div#ez-toc-container ul li a:hover {
	color: var(--gn2);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

div#ez-toc-container nav ul ul li a {
	font-size: 14px;
	color: #555;
}

@media screen and (max-width: 768px) {
	div#ez-toc-container {
		padding: 18px 20px;
	}
}

/* フッター: 2拠点表記 */
.officebox {
	margin-bottom: 28px;
}

.officebox_label {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	color: var(--wh);
	background: var(--gn2);
	border-radius: var(--br_s);
	padding: 0.45em 1em;
	margin-bottom: 10px;
}

.mapwrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.map_label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--gn2);
	margin-bottom: 6px;
}
