body.fix {
	width: 100%;
	height: 100%;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch
}

body.fix .l-contents {
	overflow: hidden;
	height: 100vh
}

a:hover {
	text-decoration: none
}

p:first-child,
ul:first-child,
ol:first-child,
dl:first-child {
	margin-top: 0
}

p:last-child,
ul:last-child,
ol:last-child,
dl:last-child {
	margin-bottom: 0
}

ul,
ol {
	padding-left: 2em
}

img {
	vertical-align: top
}

input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=search],
input[type=url],
input[type=number],
input[type=submit],
button,
select,
textarea {
	-webkit-appearance: none;
	appearance: none;
	border-radius: 0
}

input[type=submit],
button {
	border: 0
}

input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=search],
input[type=url],
input[type=number],
select,
textarea {
	background-color: #fff
}

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

::selection {
	color: #fff;
	background-color: rgba(0, 0, 0, .8)
}

::-webkit-input-placeholder {
	color: #666
}

::-moz-placeholder {
	color: #666
}

:-ms-input-placeholder {
	color: #666
}

.l-contents {
	position: relative;
	opacity: 0
}

@media all and (max-width: 639px) {
	.l-contents {
		padding: 0
	}
}

.l-contents.is-fixed {
	/* position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 10 */
}

.l-contents.is-leaved-contents {
	opacity: 0;
	transition: opacity 1s ease .7s
}

.l-contents.is-arrived-contents {
	opacity: 1;
	transition: opacity 1s ease .7s
}

.l-contents-fixed {
	position: relative;
	opacity: 0
}

.l-contents-fixed.is-leaved-contents {
	opacity: 0;
	transition: opacity 1s ease .7s
}

.l-contents-fixed.is-arrived-contents {
	opacity: 1;
	transition: opacity 1s ease .7s
}

.l-gf {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 80px;
	padding-right: 7.5%;
	padding-bottom: 80px;
	padding-left: 7.5%;
	background: #e9e9e9
}

@media all and (max-width: 639px) {
	.l-gf {
		align-items: flex-start;
		padding: 55px 20px 45px
	}
}

.l-gf__link {
	min-width: 420px
}

@media all and (max-width: 639px) {
	.l-gf__link {
		width: 50%;
		min-width: 50%
	}
}

.l-gf__link-items {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-left: -30px
}

@media all and (max-width: 639px) {
	.l-gf__link-items {
		flex-direction: column;
		align-items: flex-end;
		margin-left: 0
	}
}

.l-gf__link-item {
	display: inherit;
	margin: 0 30px;
	padding: 0 0 12px
}

.l-gf__link-item a {
	font-size: 14px;
	font-size: .875rem;
	letter-spacing: .04em;
	line-height: 1;
	text-decoration: none;
	color: #333
}

@media all and (max-width: 639px) {
	.l-gf__link-item a {
		font-size: 12px;
		font-size: .75rem
	}
}

.l-gf__link-item a.blank {
	position: relative;
	padding: 0 22px 0 0
}

.l-gf__link-item a.blank::before {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	margin: -5.5px 0 0 0;
	width: 14px;
	height: 11px;
	background: url(../img/common/icon_blank_on.svg) center/contain no-repeat
}

.l-gf__link-item a.blank::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	margin: -5.5px 0 0 0;
	width: 14px;
	height: 11px;
	background: url(../img/common/icon_blank.svg) center/contain no-repeat
}

.l-gf__cr {
	font-size: 14px;
	font-size: .875rem;
	letter-spacing: .04em;
	line-height: 1;
	color: #333
}

@media all and (max-width: 639px) {
	.l-gf__cr {
		text-align: right;
		width: 50%;
		font-size: 12px;
		font-size: .75rem
	}
}

.l-gf__pagetop {
	display: none
}

@media all and (max-width: 639px) {
	.l-gf__pagetop {
		display: block;
		position: absolute;
		left: 20px;
		top: 55px;
		transform: rotate(180deg)
	}
}

@media all and (min-width: 640px) {
	.l-gf__link-item a {
		transition: color .3s ease .1s
	}

	.l-gf__link-item a.blank::after {
		transition: opacity .3s ease .1s
	}

	.l-gf__link-item a:hover {
		transition: color .3s ease 0s;
		color: #ff0024
	}

	.l-gf__link-item a:hover.blank::after {
		transition: opacity .3s ease 0s;
		opacity: 0
	}
}

.l-gh {
	box-sizing: border-box;
	position: fixed;
	right: 0;
	top: 0;
	padding: 33px 0 40px;
	width: 80px;
	height: 100vh;
	z-index: 100;
	mix-blend-mode: difference;
}

.l-gh * {
	color: white;
}

@media all and (max-width: 639px) {
	.l-gh {
		display: none
	}
}

.l-gh__wra {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%
}

.l-gh__nav {
	position: fixed;
	right: 30px;
	top: 24px;
	padding: 20px 10px;
	width: 19px;
	height: 16px;
	cursor: pointer;
	z-index: 300
}

@media all and (max-width: 639px) {
	.l-gh__nav {
		display: none
	}
}

.l-gh__nav-line {
	overflow: hidden;
	position: absolute;
	left: 0px;
	width: 19px;
	height: 2px;
	background: #231815
}

.l-gh__nav-line--0 {
	top: 10px
}

.l-gh__nav-line--1 {
	top: 17px
}

.l-gh__nav-line--2 {
	top: 24px
}

.l-gh__spnav {
	display: none
}

@media all and (max-width: 639px) {
	.l-gh__spnav {
		display: block;
		position: fixed;
		justify-content: space-between;
		align-items: center;
		right: 20px;
		top: 24px;
		z-index: 300
	}
}

.l-gh__spnav-line {
	width: 20px;
	height: 2px;
	background: #231815
}

.l-gh__spnav-line--1 {
	margin: 4px 0 0
}

.l-gh__spnav-line--2 {
	margin: 4px 0 0
}

.l-gh__sns {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin-bottom: 80px
}

.l-gh__sns-items {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	list-style: none
}

.l-gh__sns-item {
	margin: 10px 0;
	font-size: 18px;
	line-height: 1;
}

.l-gh__sns-item a {
	display: inline-block
}

.l-gh__scrollnav {
	position: absolute;
	left: 31px;
	bottom: 24rem;
	width: 20px;
	height: 110px
}

.l-gh__scrollnav-scroll {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 0;
	top: 0;
	transform-origin: left center;
	transition: transform .3s ease 0s
}

.l-gh__scrollnav-scroll-text {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	/* transform: rotate(180deg); */
	margin: 0 0 20px;
	font-size: 12px;
	letter-spacing: .04em;
	font-family: a-otf-ryumin-pr6n, serif !important;
	font-weight: 300;
	font-style: normal;
}

.l-gh__scrollnav-scroll-arr {
	overflow: hidden;
	position: relative;
	width: 9px;
	height: 32px
}

.l-gh__scrollnav-scroll-arr::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0;
	width: 1px;
	height: 32px;
	background: #fff;
	animation: lineAniTop 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s infinite
}

.l-gh__scrollnav-scroll-arr .head {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 0;
	border-left: 4.5px solid rgba(0, 0, 0, 0);
	border-right: 4.5px solid rgba(0, 0, 0, 0);
	border-top: 4.5px solid #fff;
	animation: arrAniTop 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s infinite
}

.l-gh__scrollnav-pagetop {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 0;
	top: 0;
	cursor: pointer;
	transform: rotateY(90deg) translateX(100%);
	transform-origin: right center;
	transition: transform .3s ease 0s;
	text-decoration: none;
	color: #111
}

.l-gh__scrollnav-pagetop-arr {
	overflow: hidden;
	position: relative;
	width: 9px;
	height: 32px
}

.l-gh__scrollnav-pagetop-arr::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0;
	width: 1px;
	height: 32px;
	background: #fff;
	transform: scaleY(0);
	transform-origin: center bottom
}

.l-gh__scrollnav-pagetop-arr .head {
	position: absolute;
	left: 0;
	top: 0;
	width: 0;
	height: 0;
	border-left: 4.5px solid rgba(0, 0, 0, 0);
	border-right: 4.5px solid rgba(0, 0, 0, 0);
	border-bottom: 4.5px solid #fff;
	transform: translateY(27px)
}

.l-gh__scrollnav-pagetop-text {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	/*   transform: rotate(180deg); */
	margin: 15px 0 0;
	font-size: 12px;
	letter-spacing: .04em;
	font-family: a-otf-ryumin-pr6n, serif !important;
	font-weight: 300;
	font-style: normal;
}

.l-gh__scrollnav.on .l-gh__scrollnav-scroll {
	transform: rotateY(-90deg) translateX(-100%)
}

.l-gh__scrollnav.on .l-gh__scrollnav-pagetop {
	transform: rotateY(0) translateX(0)
}

.l-gh__logo {
	position: fixed;
	left: 4.5rem;
	top: 0px;
	width: 23rem;
	z-index: 300
}

@media all and (max-width: 639px) {
	.l-gh__logo {
		left: 0px;
		top: 0px;
		width: 99px
	}
}

.l-gh__logo img {
	width: 100%
}

@keyframes arrAniTop {
	0% {
		transform: translateY(-32px)
	}

	30% {
		transform: translateY(5px)
	}

	60% {
		transform: translateY(5px)
	}

	100% {
		transform: translateY(5px)
	}
}

@keyframes lineAniTop {
	0% {
		transform: scaleY(0);
		transform-origin: center top
	}

	30% {
		transform: scaleY(1);
		transform-origin: center top
	}

	30.001% {
		transform: scaleY(1);
		transform-origin: center bottom
	}

	60% {
		transform: scaleY(0);
		transform-origin: center bottom
	}

	100% {
		transform: scaleY(0);
		transform-origin: center bottom
	}
}

.l-gh__nav .l-gh__nav-line--0,
.l-gh__nav .l-gh__nav-line--2 {
	transition: transform .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	transform-origin: right center
}

.l-gh__nav .l-gh__nav-line--1 {
	transition: transform .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	transform-origin: left center
}

.l-gh__nav.on .l-gh__nav-line--0 {
	transform: rotate(-45deg)
}

.l-gh__nav.on .l-gh__nav-line--1 {
	transform: scaleX(0)
}

.l-gh__nav.on .l-gh__nav-line--2 {
	transform: rotate(45deg) translate(-0.5px, -0.5px)
}

.l-gh__spnav .l-gh__spnav-line--0,
.l-gh__spnav .l-gh__spnav-line--2 {
	transition: transform .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	transform-origin: right center
}

.l-gh__spnav .l-gh__spnav-line--1 {
	transition: transform .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	transform-origin: left center
}

.l-gh__spnav.on .l-gh__spnav-line--0 {
	transform: rotate(-45deg)
}

.l-gh__spnav.on .l-gh__spnav-line--1 {
	transform: scaleX(0)
}

.l-gh__spnav.on .l-gh__spnav-line--2 {
	transform: rotate(45deg) translate(1px, 1px)
}

@media all and (min-width: 640px) {
	.l-gh__nav .l-gh__nav-line::before {
		content: "";
		position: absolute;
		left: 100%;
		top: 0;
		width: 50%;
		height: 100%;
		background: #fff;
		opacity: .8;
		transition: transform .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) .1s
	}

	.l-gh__nav:hover .l-gh__nav-line--0::before {
		left: -50%;
		transition: left .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) .1s
	}

	.l-gh__nav:hover .l-gh__nav-line--1::before {
		left: -50%;
		transition: left .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) .05s
	}

	.l-gh__nav:hover .l-gh__nav-line--2::before {
		left: -50%;
		transition: left .3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
	}

	.l-gh__sns-item a {
		transition: opacity .4s ease .1s
	}

	.l-gh__sns-item a:hover {
		opacity: .6;
		transition: opacity .4s ease 0s
	}

	.l-gh__scrollnav-pagetop-arr::before {
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) .1s
	}

	.l-gh__scrollnav-pagetop-arr .head {
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) .1s
	}

	.l-gh__scrollnav:hover .l-gh__scrollnav-pagetop-arr::before {
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
		transform: scaleY(1)
	}

	.l-gh__scrollnav:hover .l-gh__scrollnav-pagetop-arr .head {
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
		transform: translateY(0)
	}
}

.l-page {
	overflow: hidden;
	visibility: visible;
	box-sizing: border-box;
	margin: 0 auto;
	width: 100%
}

@media all and (max-width: 639px) {
	.l-page {
		padding: 0;
		min-width: 100%
	}
}

.l-pjax-overlay {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	pointer-events: none
}

.l-pjax-overlay__bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%
}

.l-pjax-overlay__bg .line {
	position: absolute;
	left: 0;
	width: 100%;
	height: 20.1%;
	background: #fff;
	transform: translateX(100%)
}

.l-pjax-overlay__bg .line:nth-child(0) {
	top: -20%
}

.l-pjax-overlay__bg .line:nth-child(1) {
	top: 0%
}

.l-pjax-overlay__bg .line:nth-child(2) {
	top: 20%
}

.l-pjax-overlay__bg .line:nth-child(3) {
	top: 40%
}

.l-pjax-overlay__bg .line:nth-child(4) {
	top: 60%
}

.l-pjax-overlay__bg .line:nth-child(5) {
	top: 80%
}

.l-pjax-overlay__bg .line:nth-child(6) {
	top: 100%
}

.l-pjax-overlay__bg .line:nth-child(7) {
	top: 120%
}

.l-pjax-overlay__bg .line:nth-child(8) {
	top: 140%
}

.l-pjax-overlay__bg .line:nth-child(9) {
	top: 160%
}

.l-pjax-overlay__bg .line:nth-child(10) {
	top: 180%
}

.l-pjax-overlay__contents {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 40%;
	display:none
}

@media all and (max-width: 639px) {
	.l-pjax-overlay__contents {
		width: 80%
	}
}

.l-pjax-overlay__line-items {
	position: relative;
	overflow: hidden;
	margin: 12px 0 0;
	width: 100%;
	height: 12px;
	opacity: 0
}

@media all and (max-width: 639px) {
	.l-pjax-overlay__line-items {
		height: 8px
	}
}

.l-pjax-overlay__line-item {
	position: absolute;
	transform: translateX(200%);
	left: 0;
	top: 0;
	width: 50%;
	height: 12px;
	background: #000
}

.l-pjax-overlay.on {
	z-index: 99
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line {
	transform: translateX(0);
	transition: transform .45s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	will-change: transition
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(0) {
	transition-delay: .5s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(1) {
	transition-delay: .45s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(2) {
	transition-delay: .4s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(3) {
	transition-delay: .35s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(4) {
	transition-delay: .3s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(5) {
	transition-delay: .25s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(6) {
	transition-delay: .2s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(7) {
	transition-delay: .15s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(8) {
	transition-delay: .1s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(9) {
	transition-delay: .05s
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line:nth-child(10) {
	transition-delay: 0s
}

.l-pjax-overlay.on .l-pjax-overlay__line-items {
	opacity: 1
}

.l-pjax-overlay.on .l-pjax-overlay__line-item--0 {
	animation: pjax-overlay-line 1.3s cubic-bezier(0.45, 0.05, 0.3, 0.93) .3s infinite
}

.l-pjax-overlay.off {
	z-index: 99
}

.l-pjax-overlay.off .l-pjax-overlay__bg .line {
	transform: translateX(-100%);
	transition: transform .6s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	will-change: transition
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(0) {
	transition-delay: .9s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(1) {
	transition-delay: .85s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(2) {
	transition-delay: .8s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(3) {
	transition-delay: .75s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(4) {
	transition-delay: .7s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(5) {
	transition-delay: .65s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(6) {
	transition-delay: .6s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(7) {
	transition-delay: .55s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(8) {
	transition-delay: .5s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(9) {
	transition-delay: .45s
}

.l-pjax-overlay.on .l-pjax-overlay__bg .line:nth-child(10) {
	transition-delay: .4s
}

.l-pjax-overlay.off .l-pjax-overlay__line-items {
	opacity: 0;
	transition: opacity .5s ease 0s
}

@keyframes pjax-overlay-line {
	0% {
		transform: translateX(200%)
	}

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

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

.l-dummy-scroll {
	position: relative
}

.l-modal-menu-pc {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 200;
	background: #fff
}

.l-modal-menu-pc::before {
	position: fixed;
	left: 0;
	bottom: 100%;
	width: 100%;
	height: 500px;
	background: #fff
}

.l-modal-menu-pc::after {
	position: fixed;
	left: 0;
	top: 100%;
	width: 100%;
	height: 500px;
	background: #fff
}

.l-modal-menu-pc__wra {
	width: 100%;
	height: 100%
}

.l-modal-menu-pc__line {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%
}

.l-modal-menu-pc__line::before,
.l-modal-menu-pc__line::after {
	content: "";
	position: absolute
}

.l-modal-menu-pc__line--ud::before {
	left: 0;
	top: 0;
	width: 100%;
	height: 10px;
	background: #000;
	transform: scaleY(0);
	transform-origin: center top
}

.l-modal-menu-pc__line--ud::after {
	left: 0;
	bottom: 0;
	width: 100%;
	height: 10px;
	background: #000;
	transform: scaleY(0);
	transform-origin: center bottom
}

.l-modal-menu-pc__line--lr::before {
	left: 0;
	top: 0;
	width: 10px;
	height: 100%;
	background: #000;
	transform: scaleX(0);
	transform-origin: left center
}

.l-modal-menu-pc__line--lr::after {
	right: 0;
	bottom: 0;
	width: 10px;
	height: 100%;
	background: #000;
	transform: scaleX(0);
	transform-origin: right center
}

.l-modal-menu-pc__sns {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: absolute;
	right: 0;
	top: 0;
	width: 80px;
	height: 100%
}

.l-modal-menu-pc__sns-items {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	list-style: none
}

.l-modal-menu-pc__sns-item {
	margin: 10px 0;
	font-size: 18px;
	line-height: 1;
}

.l-modal-menu-pc__sns-item a {
	display: inline-block
}

.l-modal-menu-pc__sns-item--0 a {
	width: 13px;
	height: 13px;
	background: url(../img/common/nav_inst.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-pc__sns-item--1 a {
	width: 8px;
	height: 14px;
	background: url(../img/common/nav_fb.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-pc__sns-item--2 a {
	width: 14px;
	height: 12px;
	background: url(../img/common/nav_twi.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-pc__body {
	position: relative;
	width: 100%;
	height: 100%;
}

.l-modal-menu-pc__body-items {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: baseline;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%)
}

.l-modal-menu-pc__body-items--fst {
	display: flex;
	height: 100%;
	top: 0%;
	transform: translateX(-50%)
}

.l-modal-menu-pc__body-items--sec {
	left: 66.666%
}

.l-modal-menu-pc__body-item {
	padding: 2rem 0;
	text-align: center
}

.l-modal-menu-pc__body-item span,
.l-modal-menu-pc__body-item a {
	display: inline-block;
	text-decoration: none;
	cursor: pointer;
	font-size: 3.8rem;
	font-family: noto-sans-cjk-jp, sans-serif !important;
	font-weight: 700;
	font-style: normal;
	color: #4c4c4c;
}

.l-modal-menu-pc__body-items.l-modal-menu-pc__body-items--sec.js-modal-secitems a span {
	font-size: 2.2rem;
}

.l-modal-menu-pc__body-items.l-modal-menu-pc__body-items--sec.js-modal-secitems .l-modal-menu-pc__body-item {
	padding: 1rem 0;
	text-align: initial;
}

.l-modal-menu-pc__body-item span.blank,
.l-modal-menu-pc__body-item a.blank {
	position: relative;
	padding: 0 22px 0 0
}

.l-modal-menu-pc__body-item span.blank::before,
.l-modal-menu-pc__body-item a.blank::before {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	margin: -5.5px 0 0 0;
	width: 14px;
	height: 11px;
	background: url(../img/common/icon_blank_on.svg) center/contain no-repeat
}

.l-modal-menu-pc__body-item span.blank::after,
.l-modal-menu-pc__body-item a.blank::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	margin: -5.5px 0 0 0;
	width: 14px;
	height: 11px;
	background: url(../img/common/icon_blank.svg) center/contain no-repeat
}

.l-modal-menu-pc__body-item span.plus,
.l-modal-menu-pc__body-item a.plus {
	position: relative;
	padding: 0 3.3rem 0 0;
}

.l-modal-menu-pc__body-item span.plus::before,
.l-modal-menu-pc__body-item a.plus::before {
	content: "";
	position: absolute;
	right: 5px;
	top: 50%;
	margin: -5.5px 0 0 0;
	display: inline-block;
	width: 1px;
	height: 11px;
	background: #111
}

.l-modal-menu-pc__body-item span.plus::after,
.l-modal-menu-pc__body-item a.plus::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	margin: -0.5px 0 0 0;
	display: inline-block;
	width: 11px;
	height: 1px;
	background: #111
}

.l-modal-menu-pc__body-item--col2 {
	display: flex
}

.l-modal-menu-pc__body-item--col2 a {
	margin: 0 14px
}

.l-modal-menu-pc__ft {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: absolute;
	right: 0;
	top: 0;
	width: 80px;
	height: 100%
}

.l-modal-menu-pc__ft-items {
	display: flex;
	flex-direction: column
}

.l-modal-menu-pc__ft-item {
	margin: 25px 0
}

.l-modal-menu-pc__ft-item a {
	display: flex;
	font-size: 14px;
	font-size: .875rem;
	letter-spacing: .1em;
	text-decoration: none;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	color: #111
}

.l-modal-menu-pc {
	display: none;
	opacity: 0;
	transform: scaleX(0.6);
	transform-origin: left top
}

.l-modal-menu-pc__sns {
	opacity: 0;
	transform: translateX(-60px)
}

.l-modal-menu-pc__body-items {
	transition: left .6s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
}

.l-modal-menu-pc__body-items.move-left {
	transition: left .6s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	left: 33.333%
}

.l-modal-menu-pc__body-item {
	opacity: 0;
	transform: translateX(120px)
}

.l-modal-menu-pc__body-item span span,
.l-modal-menu-pc__body-item a span {
	display: inline-block;
	margin: 0 3px
}

.l-modal-menu-pc__body-item span.on.plus::before,
.l-modal-menu-pc__body-item a.on.plus::before {
	transition: opacity .4s ease 0s;
	opacity: 0
}

.l-modal-menu-pc__body-item span.on.plus::after,
.l-modal-menu-pc__body-item a.on.plus::after {
	transition: color .4s ease 0s;
}

.l-modal-menu-pc__ft {
	opacity: 0;
	transform: translateX(60px)
}

.l-modal-menu-pc.on {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 1;
	transform: scale(1)
}

.l-modal-menu-pc.on .l-modal-menu-pc__sns,
.l-modal-menu-pc.on .l-modal-menu-pc__ft {
	opacity: 1;
	transform: translate(0, 0);
	transition: opacity .4s ease 1s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__line--ud::before,
.l-modal-menu-pc.on .l-modal-menu-pc__line--ud::after,
.l-modal-menu-pc.on .l-modal-menu-pc__line--lr::before,
.l-modal-menu-pc.on .l-modal-menu-pc__line--lr::after {
	transform: scale(1);
	transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst {
	transition: opacity .7s ease 0s, transform 1s ease 0s;
	opacity: 1;
	transform: translateX(0);
	letter-spacing: .1em
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst span span,
.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst a span {
	margin: 0;
	transition: margin 1s ease 0s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(1) {
	transition-delay: .25s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(1) a span {
	transition-delay: .25s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(2) {
	transition-delay: .3s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(2) a span {
	transition-delay: .3s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(3) {
	transition-delay: .35s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(3) a span {
	transition-delay: .35s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(4) {
	transition-delay: .4s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(4) a span {
	transition-delay: .4s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(5) {
	transition-delay: .45s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(5) a span {
	transition-delay: .45s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(6) {
	transition-delay: .5s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(6) a span {
	transition-delay: .5s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(7) {
	transition-delay: .55s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(7) a span {
	transition-delay: .55s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(8) {
	transition-delay: .6s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(8) a span {
	transition-delay: .6s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(9) {
	transition-delay: .65s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(9) a span {
	transition-delay: .65s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(10) {
	transition-delay: .7s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(10) a span {
	transition-delay: .7s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(11) {
	transition-delay: .75s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(11) a span {
	transition-delay: .75s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(12) {
	transition-delay: .8s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(12) a span {
	transition-delay: .8s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(13) {
	transition-delay: .85s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(13) a span {
	transition-delay: .85s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(14) {
	transition-delay: .9s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(14) a span {
	transition-delay: .9s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(15) {
	transition-delay: .95s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(15) a span {
	transition-delay: .95s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(16) {
	transition-delay: 1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(16) a span {
	transition-delay: 1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(17) {
	transition-delay: 1.05s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(17) a span {
	transition-delay: 1.05s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(18) {
	transition-delay: 1.1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(18) a span {
	transition-delay: 1.1s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(19) {
	transition-delay: 1.15s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(19) a span {
	transition-delay: 1.15s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(20) {
	transition-delay: 1.2s
}

.l-modal-menu-pc.on .l-modal-menu-pc__body-item--fst:nth-child(20) a span {
	transition-delay: 1.2s
}

.l-modal-menu-pc__body-items--sec .l-modal-menu-pc__body-item {
	transition: opacity .4s ease 0s, transform .4s ease 0s
}

.l-modal-menu-pc__body-items--sec .l-modal-menu-pc__body-item a span {
	transition: margin .4s ease 0s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item {
	transition: opacity .7s ease 0s, transform 1s ease 0s;
	opacity: 1;
	transform: translateX(0);
	letter-spacing: .1em
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item a span {
	margin: 0;
	transition: margin 1s ease 0s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(1) {
	transition-delay: .25s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(1) a span {
	transition-delay: .25s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(2) {
	transition-delay: .3s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(2) a span {
	transition-delay: .3s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(3) {
	transition-delay: .35s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(3) a span {
	transition-delay: .35s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(4) {
	transition-delay: .4s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(4) a span {
	transition-delay: .4s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(5) {
	transition-delay: .45s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(5) a span {
	transition-delay: .45s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(6) {
	transition-delay: .5s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(6) a span {
	transition-delay: .5s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(7) {
	transition-delay: .55s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(7) a span {
	transition-delay: .55s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(8) {
	transition-delay: .6s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(8) a span {
	transition-delay: .6s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(9) {
	transition-delay: .65s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(9) a span {
	transition-delay: .65s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(10) {
	transition-delay: .7s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(10) a span {
	transition-delay: .7s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(11) {
	transition-delay: .75s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(11) a span {
	transition-delay: .75s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(12) {
	transition-delay: .8s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(12) a span {
	transition-delay: .8s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(13) {
	transition-delay: .85s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(13) a span {
	transition-delay: .85s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(14) {
	transition-delay: .9s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(14) a span {
	transition-delay: .9s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(15) {
	transition-delay: .95s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(15) a span {
	transition-delay: .95s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(16) {
	transition-delay: 1s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(16) a span {
	transition-delay: 1s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(17) {
	transition-delay: 1.05s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(17) a span {
	transition-delay: 1.05s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(18) {
	transition-delay: 1.1s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(18) a span {
	transition-delay: 1.1s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(19) {
	transition-delay: 1.15s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(19) a span {
	transition-delay: 1.15s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(20) {
	transition-delay: 1.2s
}

.l-modal-menu-pc__body-items--sec.on .l-modal-menu-pc__body-item:nth-child(20) a span {
	transition-delay: 1.2s
}

.l-modal-menu-pc.off {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 0;
	transform: scaleX(0.4)
}

@media all and (min-width: 640px) {
	.l-modal-menu-pc__sns-item a {
		transition: opacity .4s ease .1s
	}

	.l-modal-menu-pc__sns-item a:hover {
		opacity: .6;
		transition: opacity .4s ease 0s
	}

	.l-modal-menu-pc__body-item span .c-head-text3,
	.l-modal-menu-pc__body-item a .c-head-text3 {
		transition: color .4s ease .1s
	}

	.l-modal-menu-pc__body-item span.blank::after,
	.l-modal-menu-pc__body-item a.blank::after {
		transition: opacity .4s ease .1s
	}

	.l-modal-menu-pc__body-item span.plus::before,
	.l-modal-menu-pc__body-item span.plus::after,
	.l-modal-menu-pc__body-item a.plus::before,
	.l-modal-menu-pc__body-item a.plus::after {
		transition: color .4s ease .1s
	}

	.l-modal-menu-pc__body-item span:hover .c-head-text3,
	.l-modal-menu-pc__body-item a:hover .c-head-text3 {
		transition: color .4s ease 0s;
	}

	.l-modal-menu-pc__body-item span:hover.blank::after,
	.l-modal-menu-pc__body-item a:hover.blank::after {
		transition: opacity .4s ease 0s;
		opacity: 0
	}

	.l-modal-menu-pc__body-item span:hover.plus::before,
	.l-modal-menu-pc__body-item span:hover.plus::after,
	.l-modal-menu-pc__body-item a:hover.plus::before,
	.l-modal-menu-pc__body-item a:hover.plus::after {
		transition: color .4s ease 0s;
	}

	.l-modal-menu-pc__ft-item a {
		transition: color .4s ease .1s
	}

	.l-modal-menu-pc__ft-item a:hover {
		transition: color .4s ease 0s;
		color: #ff0024
	}
}

.l-modal-menu-sp {
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	height: 100%;
	z-index: 200;
	background: #fff
}

.l-modal-menu-sp__wra {
	overflow: hidden;
	position: relative;
	padding: 40px 0 60px;
	width: 100%
}

.l-modal-menu-sp__line {
	pointer-events: none;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 200
}

.l-modal-menu-sp__line::before,
.l-modal-menu-sp__line::after {
	content: "";
	position: fixed
}

.l-modal-menu-sp__line--ud::before {
	left: 0;
	top: 0;
	width: 100%;
	height: 7px;
	background: #000;
	transform: scaleY(0);
	transform-origin: center top
}

.l-modal-menu-sp__line--ud::after {
	left: 0;
	bottom: 0;
	width: 100%;
	height: 7px;
	background: #000;
	transform: scaleY(0);
	transform-origin: center bottom
}

.l-modal-menu-sp__line--lr::before {
	left: 0;
	top: 0;
	width: 7px;
	height: 100%;
	background: #000;
	transform: scaleX(0);
	transform-origin: left center
}

.l-modal-menu-sp__line--lr::after {
	right: 0;
	bottom: 0;
	width: 7px;
	height: 100%;
	background: #000;
	transform: scaleX(0);
	transform-origin: right center
}

.l-modal-menu-sp__body {
	position: relative;
	padding: 45px 0 0 45px
}

.l-modal-menu-sp__body-items {
	width: 100%;
	height: 100%;
	/*   overflow-y: scroll; */
	-webkit-overflow-scrolling: touch
}

.l-modal-menu-sp__body-item {
	padding: 7px 0
}

.l-modal-menu-sp__body-item span,
.l-modal-menu-sp__body-item a {
	display: flex;
	align-items: center;
	text-decoration: none
}

.l-modal-menu-sp__body-item span.blank::after,
.l-modal-menu-sp__body-item a.blank::after {
	content: "";
	display: inline-block;
	margin: 0 0 0 6px;
	width: 14px;
	height: 11px;
	background: url(../img/common/icon_blank.svg) center no-repeat
}

.l-modal-menu-sp__body-item span.plus::after,
.l-modal-menu-sp__body-item a.plus::after {
	content: "";
	display: inline-block;
	margin: 0 0 0 6px;
	width: 11px;
	height: 11px;
	background: url(../img/common/icon_plus.svg) center no-repeat
}

.l-modal-menu-sp__body-item span.on.plus::after,
.l-modal-menu-sp__body-item a.on.plus::after {
	height: 1px;
	background: #111
}

.l-modal-menu-sp__body-item--col2 {
	display: flex
}

.l-modal-menu-sp__body-item--col2 a {
	margin: 0 18px 0 0
}

.l-modal-menu-sp__body-secitems {
	padding: 0 0 0 40px
}

.l-modal-menu-sp__body-secitem {
	padding: 6px 0
}

.l-modal-menu-sp__ft {
	position: relative;
	padding: 25px 0 0 30px
}

.l-modal-menu-sp__ft-items {
	margin: 0 0 12px 0
}

.l-modal-menu-sp__ft-item {
	margin: 0 0 6px 0
}

.l-modal-menu-sp__ft-item a {
	font-size: 14px;
	font-size: .875rem;
	letter-spacing: .06em;
	color: #111;
	text-decoration: none
}

.l-modal-menu-sp__sns {
	position: relative;
	display: flex;
	padding: 25px 0 0 45px
}

.l-modal-menu-sp__sns-items {
	display: flex
}

.l-modal-menu-sp__sns-item {
	margin: 0 30px 0 0
}

.l-modal-menu-sp__sns-item a {
	display: inline-block
}

.l-modal-menu-sp__sns-item--0 a {
	width: 13px;
	height: 13px;
	background: url(../img/common/nav_inst.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-sp__sns-item--1 a {
	width: 8px;
	height: 14px;
	background: url(../img/common/nav_fb.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-sp__sns-item--2 a {
	width: 14px;
	height: 12px;
	background: url(../img/common/nav_twi.png) no-repeat center center;
	background-size: contain
}

.l-modal-menu-sp {
	display: none;
	opacity: 0;
	transform: scaleX(0.6);
	transform-origin: left top
}

.l-modal-menu-sp__body-item {
	opacity: 0;
	transform: translateX(100px)
}

.l-modal-menu-sp__ft {
	opacity: 0;
	transform: translateX(100px)
}

.l-modal-menu-sp__sns {
	opacity: 0;
	transform: translateX(100px)
}

.l-modal-menu-sp__line {
	transform-origin: left top
}

.l-modal-menu-sp.on {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 1;
	transform: scale(1)
}

.l-modal-menu-sp.on .l-modal-menu-sp__ft,
.l-modal-menu-sp.on .l-modal-menu-sp__sns {
	transition: opacity .4s ease 1s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s;
	opacity: 1;
	transform: translateY(0)
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 1;
	transform: translateX(0)
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(1) {
	transition-delay: .25s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(2) {
	transition-delay: .3s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(3) {
	transition-delay: .35s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(4) {
	transition-delay: .4s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(5) {
	transition-delay: .45s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(6) {
	transition-delay: .5s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(7) {
	transition-delay: .55s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(8) {
	transition-delay: .6s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(9) {
	transition-delay: .65s
}

.l-modal-menu-sp.on .l-modal-menu-sp__body-item:nth-child(10) {
	transition-delay: .7s
}

.l-modal-menu-sp__line--ud.on::before,
.l-modal-menu-sp__line--ud.on::after,
.l-modal-menu-sp__line--lr.on::before,
.l-modal-menu-sp__line--lr.on::after {
	transform: scale(1);
	transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 1s
}

.l-modal-menu-sp.off,
.l-modal-menu-sp__line--ud.off,
.l-modal-menu-sp__line--lr.off {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 0;
	transform: scaleX(0.4)
}

.l-modal-menu-sp__line.off {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 0;
	transform: scaleX(0.4)
}

.l-modal-menu-sp__body-secitems {
	transition: height .4s ease 0s;
	overflow: hidden
}

.l-modal-menu-sp__body-secitem {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 0;
	transform: translateX(80px)
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem {
	transition: opacity .4s ease 0s, transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
	opacity: 1;
	transform: translateX(0)
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(1) {
	transition-delay: .05s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(2) {
	transition-delay: .1s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(3) {
	transition-delay: .15s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(4) {
	transition-delay: .2s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(5) {
	transition-delay: .25s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(6) {
	transition-delay: .3s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(7) {
	transition-delay: .35s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(8) {
	transition-delay: .4s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(9) {
	transition-delay: .45s
}

.l-modal-menu-sp__body-secitems.on .l-modal-menu-sp__body-secitem:nth-child(10) {
	transition-delay: .5s
}





.p-top-kv {
	position: relative;
	/*overflow: hidden;*/
	padding: 0;
	width: 100%;
	height: 100vh
}

@media all and (min-width: 640px) {
	.p-top-kv {
		min-height: 767px;
		padding-right: 80px;
	}
}

@media all and (max-width: 639px) {
	.p-top-kv {
		padding: 60px 0 0 0
	}
}

.p-top-kv__pc {
	display: flex;
	width: 100%;
	height: 100%;
}

@media all and (max-width: 639px) {
	.p-top-kv__pc {
		display: none
	}
}

.p-top-kv__left {
	position: relative;
	width: 122rem !important
}


.p-top-kv__right {
	position: relative;
	width: calc(120% - 122rem) !important;
}

.p-top-kv__main {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: 100%
}

.p-top-kv__main-img {
	overflow: hidden;
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	transform: scale(1.2) translateX(-20%);
	opacity: 0;
	will-change: transform, width
}

.p-top-kv__main-img-obj {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
	background-size: cover !important;
	background-position: center top !important;
}

.p-top-kv__main-img-obj.img0 {
	background: url(../img/top/main_slide/kv_mainslide_img_01.jpg)
}

.p-top-kv__main-img-obj.img1 {
	background: url(../img/top/main_slide/kv_mainslide_img_02.jpg)
}

.p-top-kv__main-img-obj.img2 {
	background: url(../img/top/main_slide/kv_mainslide_img_03.jpg)
}

.p-top-kv__main-img-obj.img3 {
	background: url(../img/top/main_slide/kv_mainslide_img_04.jpg);
		background-position: right !important;
}

.p-top-kv__main-img.on {
	transform: scale(1) translateX(0);
	width: 100%;
	z-index: 5;
	opacity: 1;
	transition: width 1.3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s, transform 1.3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
}

.p-top-kv__main-img.off {
	transform: scale(1.1) translateX(200px);
	width: 0;
	z-index: 10;
	opacity: 1;
	transition: width 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s, transform 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
}

.p-top-kv__main-bar {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 6px;
	background: #fff;
	z-index: 20
}

.p-top-kv__main-bar-bg {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 6px;
	background: #000;
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform
}

.p-top-kv__main-bar-bg.off {
	left: 100%;
	transition: left .7s ease 0s
}

.p-top-kv__main-bar-index {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	position: absolute;
	left: 0;
	top: 0;
	padding: 0px 0 0 20px;
	width: 100%;
	height: 100%;
	font-size: 12px;
	font-size: .75rem;
	letter-spacing: 0;
	line-height: 1;
	font-family: "rigid-square", sans-serif;
	display: none;
}

.p-top-kv__copy {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 80%
}

/*2025.2.26変更前*/
.p-top-kv__copy-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	position: absolute;
	left: 12rem;
	top: 50%;
	transform: translateY(-50%);
}


/*2025.2.26変更
.p-top-kv__copy-text{
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    left: 12rem;
    height: 36vh;
    margin-top: 30rem;
}
*/
.p-top-kv__copy-text-main {
	font-size: 6.4rem;
	font-family: a-otf-ryumin-pr6n, serif !important;
	font-weight: 300;
	font-style: normal;
	line-height: 9rem;
}

.external-link-img {
	width: 16px;
	height: 16px;
	display: inline-block;
  }
  
@media(max-width:1033px){
	.p-top-kv__copy-text-main{
		font-size:5.4rem;
	}
}
.p-top-kv__copy-text-sub {
	display: inline-block;
	padding: 20px 0 0;
	font-size: 2.6rem;
	letter-spacing: .01em;
	line-height: 1.4;
}


.p-top-kv__copy-text img {
	width: 100%
}

.p-top-kv__nav {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 27%
}


.p-top-kv__nav-items {
	display: flex;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%
}

.p-top-kv__nav-item {
	overflow: hidden;
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 50%;
	height: 100%;
	cursor: pointer
}

.p-top-kv__nav-item-img {
	overflow: hidden;
	position: absolute;
	transform: scale(1.1) translateX(-20%);
	top: 0;
	right: 0;
	width: 100%;
	height: calc(100% - 6px);
	opacity: 0;
	will-change: transform, width
}

.p-top-kv__nav-item-img-obj {
	position: absolute;
	right: 0;
	top: 0;
	width: 100%!important;
	height: 100%
}

.p-top-kv__nav-item-img-obj.img0 {
	background: url(../img/top/main_slide/kv_mainslide_img_01.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__nav-item-img-obj.img1 {
	background: url(../img/top/main_slide/kv_mainslide_img_02.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__nav-item-img-obj.img2 {
	background: url(../img/top/main_slide/kv_mainslide_img_03.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__nav-item-img-obj.img3 {
	background: url(../img/top/main_slide/kv_mainslide_img_04.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__nav-item-img.on {
	transform: scale(1) translateX(0);
	width: 100%;
	opacity: 1;
	transition: width 1s cubic-bezier(0.45, 0.05, 0.3, 0.93) .2s, transform 1s cubic-bezier(0.45, 0.05, 0.3, 0.93) .2s
}

.p-top-kv__nav-item-img.off {
	transform: translateX(0);
	width: 0;
	opacity: 1;
	z-index: 10;
	transition: width 1.2s cubic-bezier(0.45, 0.05, 0.3, 0.93) .2s, transform 1.2s cubic-bezier(0.45, 0.05, 0.3, 0.93) .2s
}

.p-top-kv__nav-item-bar {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 6px;
	background: #fff;
}

.p-top-kv__nav-item-bar-index {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	position: absolute;
	left: 0;
	top: 0;
	padding: 0px 0 0 20px;
	width: 100%;
	height: 100%;
	font-size: 12px;
	font-size: .75rem;
	letter-spacing: 0;
	line-height: 1;
	font-family: "rigid-square", sans-serif;
	display: none;
}

.p-top-kv__nav-arr {
	position: absolute;
	right: -21.5px;
	top: 50%;
	margin: -21.5px 0 0 0;
	border-radius: 25px;
	width: 43px;
	height: 43px;
	background: #fff;
	cursor: pointer;
	z-index: 30
}

.p-top-kv__nav-arr-obj {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 10px;
	height: 1px;
	background: #111
}

.p-top-kv__nav-arr-obj--0 {
	margin: -3.5px 0 0 -5px;
	transform: rotate(45deg)
}

.p-top-kv__nav-arr-obj--1 {
	margin: 3.5px 0 0 -5px;
	transform: rotate(-45deg)
}

.p-top-kv__sp {
	display: none
}

@media all and (max-width: 639px) {

	.p-top-kv__sp {
		display: block;
		position: relative;
		box-sizing: border-box;
		width: 100%;
		height: calc(100% - 60px)
	}

	.mvsp-slider img {
		height: calc(100vh - 13rem);
		object-fit: cover;
		width: 100%;
	}

	.mvsp-nav {
		text-align: center;
	}

	.mvsp-nav .slick-current {
		background-color: #000;
		color: white;
		transition: all .5s;
	}
}

.p-top-kv__spmain {
	overflow: hidden;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: calc(100% - 30px)
}

.p-top-kv__spmain-img {
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	height: 100%;
	transform: scale(1.2) translateX(-20%);
	will-change: transform, width
}

.p-top-kv__spmain-img-obj {
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	height: 100%
}

.p-top-kv__spmain-img-obj.img0 {
	background: url(../img/top/main_slide/kv_mainslide_img_01.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__spmain-img-obj.img1 {
	background: url(../img/top/main_slide/kv_mainslide_img_02.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__spmain-img-obj.img2 {
	background: url(../img/top/main_slide/kv_mainslide_img_03.jpg) center top no-repeat;
	background-size: cover
}

.p-top-kv__spmain-img-obj.img3 {
	background: url(../img/top/main_slide/kv_mainslide_img_04.jpg) center top no-repeat;
	background-size: cover;
		background-position: right;
}

.p-top-kv__spmain-img.on {
	transform: scale(1) translateX(0);
	width: 100%;
	z-index: 5;
	transition: width 1.3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s, transform 1.3s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
}

.p-top-kv__spmain-img.off {
	transform: scale(1.1) translateX(50px);
	width: 0;
	z-index: 10;
	transition: width 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s, transform 1.5s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s
}

.p-top-kv__spcopy {
	position: absolute;
	left: 0px;
	bottom: 75px;
	z-index: 20;
	background-color: rgba(0, 0, 0, .5);
	padding: 2rem 4rem;
}

.p-top-kv__spcopy-text-main {
	font-size: 5.2rem;
	font-family: a-otf-ryumin-pr6n, serif !important;
	font-weight: 300;
	font-style: normal;
	line-height: 8rem;
}

@media all and (max-width: 639px) {
	.p-top-kv__spcopy-text-main {
		font-size: 1.6rem;/*2rem*/
		line-height: 2.4rem;/*3rem*/
		color: white;
		margin-bottom: 0.4rem;/*1.2rem*/
	} 

	.btnlinestretches4{
		padding: 1rem 0.3rem 0rem 0 !important;
	}


}

.p-top-kv__spcopy-text-sub {
	margin: 6px 0 0;/*20px 0 0*/
	font-size: 0.8rem;/*10px*/
	font-size: .625rem;
	line-height: 1.3rem;/*13px*/
	letter-spacing: .16em;
	font-family: "urw-din-bold", sans-serif;
	color: #fff
}

.p-top-kv__spnav {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 30px;
	background: #fff;
	z-index: 20
}

.p-top-kv__spnav-items {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	height: 100%
}

.p-top-kv__spnav-item {
	margin: 0;
	padding: 0;
	width: 25%;
	height: 100%
}

.p-top-kv__spnav-bar {
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 100%
}

.p-top-kv__spnav-bar-bg {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 6px;
	background: #000;
	transform: scaleX(0);
	transform-origin: left center
}

.p-top-kv__spnav-bar-bg.off {
	left: 100%;
	transition: left 1s ease 0s
}

.p-top-kv__spnav-bar-index {
	position: relative;
	font-size: 12px;
	font-size: .75rem;
	letter-spacing: .04em;
	line-height: 1;
	font-family: "rigid-square", sans-serif
}

@media all and (min-width: 640px) {
	.p-top-kv__nav-arr::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		border-radius: 25px;
		width: 100%;
		height: 100%;
		background: #fff
	}

	.p-top-kv__nav-arr:hover::before {
		transition: transform .4s ease 0s, opacity .4s ease 0s;
		transform: scale(1.4);
		opacity: 0
	}

	.p-top-kv__nav-arr:hover .p-top-kv__nav-arr-obj {
		background: #e00022
	}

	.p-top-kv__nav-item .on div::after {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 6px;
		background: #000;
		transform: scaleX(0);
		transform-origin: center center;
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) .1s
	}

	.p-top-kv__nav-item:hover .on div::after {
		/* content: "";
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 6px;
		background: #000;
		transform: scaleX(1);
		transition: transform .4s cubic-bezier(0.45, 0.05, 0.3, 0.93) 0s;
		z-index: 30 */
	}
}


.btnlinestretches4{
	position: relative;
	color: #161616;
	padding: 1rem 0.5rem 1rem 0;
	display: inline-block;
	text-decoration: none;
	outline: none;
	font-size: 2rem;
}

/*線の設定*/
.btnlinestretches4::before,
.btnlinestretches4::after{
	content:'';
	/*絶対配置で線の位置を決める*/
	position:absolute;
	z-index:1;
	bottom:0;
	left:0;
	/*線の形状*/   
	background:#333;
	width:100%;
	height:2px;
	/*アニメーションの指定*/
	transition:all 0.3s ease-in-out;
}

/*hover時に伸びる線の形状*/   
.btnlinestretches4::after{
	width:0;
	background:#FCFCFC;
}

/*hover時に100%に伸びる*/   
.btnlinestretches4:hover::after {
	width:100%;
}

/*矢印の設定*/   
/* .btnlinestretches4 span::after {
font-family: fontawesome;
content: '\f105';
position: absolute;
top: 1.2rem;
right: 1rem;
transition: all .3s;
} */

/*hover時に矢印が移動*/   
.btnlinestretches4:hover span::after {
	right:0rem;
}

.slider-progress {
	width: 100%;
	height: 6px;
	background: #eee;
	max-width: 768px;
	margin: 0 auto;
	transform: translateY(-6px);
	border-radius: 0 !important;
}
.slider-progress .progress {
	width: 0%;
	height: 6px;
	background: #000;
	border-radius: 0 !important;
}

@media screen and (min-width: 639px) and (max-width: 926px) and (orientation: landscape) {
	.p-top-kv {
		min-height: initial !important;
	}

	.p-top-kv__copy-text {
		left: 8rem;
		top: 55%;
	}
}

/*CTA*/

	.cta-box {
	  border: 2px solid #555;
	  padding: 24px;
	  text-align: center;
	  max-width: 700px;
	  margin: 40px auto;
	  font-family: sans-serif;
	}

	.cta-message {
	  font-weight: 700;
	  font-size: 16px;
	  margin-bottom: 24px;
	}

	.cta-button {
	  display: inline-block;
	  background: #000;
	  color: #fff;
	  font-weight: 700;
	  text-decoration: none;
	  padding: 14px 50px;
	  font-size: 14px;
	}
	.cta-button:hover {
	  background: #000;
	  color: #fff;
	  text-decoration: none;
	}

/*リンク用囲み*/

	.reference-box {
	  border: 1px solid #ccc;
	  background-color: #f9f9f9;
	  padding: 12px 16px;
	  border-radius: 6px;
	  margin: 24px 0;
		line-height: 1.8;
	}

	.reference-box a {
	  color: #000;
	  text-decoration: none;
	  font-weight: 500;
	}

	.reference-box a:hover {
	  text-decoration: underline;
	}

	/*TOP追記*/
	.sub-small {
		font-size: 0.85em; /* 好みで調整可能 */
		line-height: 1.4;
		display: inline-block;
	}

/* ==========================
   TOP 実績ロゴセクション
========================== */

.top-clients{
	padding: 82px 0 24px;
  }
  
  .top-clients__inner{
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
  }
  
  /* リード文 */
  .top-clients__lead{
	text-align: center;
	font-size: 34px;
	line-height: 1.9;
	letter-spacing: .02em;
	margin: 0 0 36px;
	color: #111;
  }
  
  /* ロゴ一覧（PC：5列） */
  .top-clients__logos{
	list-style: none;
	margin: 0;
	padding: 0;
  
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr)); /* PC 5列 */
	gap: 28px 32px;
  
	align-items: center;
	justify-items: center;
  }
  
  /* ロゴ1点 */
  .top-clients__logos li{
	display: flex;
	align-items: center;
	justify-content: center;
  }
  
  /* ロゴリンク */
  .top-clients__logos a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity .2s ease, transform .2s ease;
  }
  
  .top-clients__logos a:hover{
	opacity: .7;
	transform: translateY(-2px);
  }
  
  /* ロゴ画像 */
  .top-clients__logos img{
	width: 100%;
	max-width: 150px;
	height: auto;
	display: block;
	opacity: .9;
  }
  
  /* ==========================
	 Tablet（4列）
  ========================== */
  @media (max-width: 1024px){
	.top-clients{
	  padding: 40px 0 20px;
	}

	.top-clients__inner{
		max-width: 1100px;
		margin: 50px auto;
		padding: 0 24px;
	  }
  
	.top-clients__logos{
	  grid-template-columns: repeat(4, minmax(0, 1fr));
	  gap: 22px 26px;
	}
  
	.top-clients__logos img{
	  max-width: 140px;
	}
  }
  
  /* ==========================
	 SP（2列）
  ========================== */
  @media (max-width: 640px){
	.top-clients{
	  padding: 32px 0 16px;
	}
  
	.top-clients__lead{
	  font-size: 15px;
	  line-height: 1.8;
	  margin-bottom: 20px;
	}
  
	.top-clients__logos{
	  grid-template-columns: repeat(2, minmax(0, 1fr)); /* SP 2列 */
	  gap: 14px 18px;
	}
  
	.top-clients__logos img{
	  max-width: 140px;
	}
  }

  /* ==========================
   404 Page
========================== */

.error404{
	min-height: calc(100vh - 140px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 72px 24px;
	background: #f4f4f4;
  }
  
  .error404__inner{
	width: 100%;
	max-width: 880px;
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	padding: 56px 40px;
	text-align: center;
  }
  
  .error404__code{
	margin: 0 0 14px;
	font-size: 64px;
	font-weight: 700;
	letter-spacing: .08em;
	color: #111;
  }
  
  .error404__title{
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .04em;
	color: #111;
  }
  
  .error404__text{
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #444;
  }
  
  /* アクション（トップへ戻るのみ） */
  .error404__actions{
	margin-top: 32px;
	display: flex;
	justify-content: center;
  }
  
  .error404__btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	padding: 14px 20px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .02em;
	background: #111;
	color: #fff;
	transition: opacity .2s ease, transform .2s ease;
  }
  
  .error404__btn:hover{
	opacity: .8;
	transform: translateY(-1px);
  }

  /* 404 ボタン：hoverでも文字色を白のままにする */
.error404__btn,
.error404__btn:visited,
.error404__btn:hover,
.error404__btn:active,
.error404__btn:focus{
  color: #fff !important;
  text-decoration: none;
}
  
  /* ==========================
	 SP
  ========================== */
  @media (max-width: 640px){
	.error404{
	  padding: 48px 16px;
	}
  
	.error404__inner{
	  padding: 36px 18px;
	}
  
	.error404__code{
	  font-size: 52px;
	}
  
	.error404__title{
	  font-size: 20px;
	}
  
	.error404__btn{
	  width: 100%;
	  min-width: 0;
	}
  }

  /* パスワード保護フォームを中央表示 */
.pw-wrap{
	min-height: calc(100vh - 140px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 64px 16px;
	background: #f4f4f4;
  }
  
  .pw-wrap .post-password-form{
	width: 100%;
	max-width: 520px;
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	padding: 32px 26px;
	margin: 0;
  }
  
  .pw-wrap .post-password-form p{
	margin: 0 0 14px;
	line-height: 1.8;
	color: #111;
  }
  
  .pw-wrap .post-password-form label{
	display: block;
	margin: 0 0 12px;
  }
  
  .pw-wrap .post-password-form input[type="password"]{
	width: 100%;
	height: 44px;
	padding: 0 12px;
	border: 1px solid #cfcfcf;
	border-radius: 10px;
	box-sizing: border-box;
  }
  
  .pw-wrap .post-password-form input[type="submit"]{
	width: 100%;
	height: 46px;
	border: 0;
	border-radius: 999px;
	background: #111;
	color: #fff;
	font-weight: 700;
	margin-top: 10px;
	cursor: pointer;
  }

  




/* サービスページ追加 */
  /* 共通見出し */
.section-title-sub {
    text-align: center;
    font-size: 4rem;
    margin-bottom: 3rem;
	margin-top: 4rem;

}
.section-title-sub small {
    display: block;
    font-size: 2.5rem;
    font-weight: normal;
    margin-top: 10px;
    color: #333;
}

/* サービス一覧グリッド */
.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.grid-item {
    border: 1px solid #ccc;
    padding: 30px;
    text-align: center; /* 基本はすべて中央 */
}

.grid-item .icon {
    width: 45px;
    height: 45px;
    margin: 0 auto 20px; /* ここが重要：左右をautoにして中央へ、下に20px */
    display: flex;       /* 中の画像を中央に配置しやすくする */
    align-items: center;
    justify-content: center;
}

.grid-item .icon img {
    max-width: 100%;
    height: auto;
    display: block;
}

.grid-item h3 {
    font-size: 3rem;
    margin-bottom: 15px;
    font-weight: 700;
}

/* リストを中央に寄せつつ、中身は左揃えにする */
.grid-item ul {
    display: inline-block; /* 塊にして中央寄せを可能に */
    text-align: left;      /* 箇条書きのポッチを揃える */
    padding: 0;            /* 左パディングをリセット */
    margin: 12px 0 0 0;    /* 上の間隔のみ指定 */
    list-style: none;      /* デフォルトのポッチを消す（文中の⚫︎を使用しているため） */
}

.grid-item ul li {
    text-indent: -1em;     /* 2行になった場合に備えた調整（任意） */
    padding-left: 1em;
}
/* 選ばれる理由 */
.reason-item {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 60px;
    border: 1px solid #eee;
    padding: 40px;
}
.reason-item.reverse { flex-direction: row-reverse; }
.reason-text { flex: 1; }
.reason-img { flex: 1; }
.reason-text .label { background: #000; color: #fff; padding: 10px 10px; font-size: 2rem; }
.reason-text h3 { margin: 15px 0; font-size: 3.0rem; line-height: 1.6; font-weight: 700;}
.reason-text ul { list-style: disc; margin-top: 20px; padding-left: 20px; }

.reason-img img {
    box-shadow: none !important;
}

.reason-img::before,
.reason-img::after {
    display: none !important;
}

/* 実績紹介 */
.works-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}
.img-placeholder { background: #e0e0e0; aspect-ratio: 16/9; margin-bottom: 15px; }
.view-more {
    display: inline-block;
    padding: 15px 60px;
    border: 1px solid #000;
    text-decoration: none;
    color: #000;
    transition: 0.3s;
}
.view-more:hover { background: #000; color: #fff; }

@media (max-width: 768px) {
    .grid-container, .works-grid { grid-template-columns: 1fr; }
    .reason-item, .reason-item.reverse { flex-direction: column; padding: 20px; }
}

/* 料金目安セクション */
.price-item {
    display: flex;
    gap: 30px;
    margin-bottom: 80px;
    align-items: flex-start;
}
.price-img {
    flex: 0 0 45%;
}
.price-img img {
    width: 100%;
    height: auto;
}
.price-content {
    flex: 1;
}
.price-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 15px;
}
.size-tag {
    background: #000;
    color: #fff;
    padding: 15px 15px;
    font-size: 2rem;
    font-weight: bold;
}
.amount {
    font-size: 5rem;
    font-weight: bold;
}
.amount span {
    font-size: 3rem;
    margin-left: 2px;
}
.description {
    font-size: 2.3rem;
    line-height: 1.6;
    margin-bottom: 20px;
    color: #333;
}

@media (max-width: 992px) {
    .price-item {
        flex-direction: column;
    }
    .price-img {
        flex: 0 0 100%;
        width: 100%;
    }
}

/* 関連記事 */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.blog-item a {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: opacity 0.3s;
}
.blog-item a:hover { opacity: 0.8; }
.blog-img { aspect-ratio: 4/3; overflow: hidden; margin-bottom: 15px; }
.blog-img img { width: 100%; height: 100%; object-fit: cover; }
.blog-content .date { font-size: 1.85rem; color: #999; margin-bottom: 8px; display: block; }
.blog-content h3 { font-size: 2.2rem; line-height: 1.5; font-weight: bold; }

/* CTA */
.cta-section { padding-bottom: 100px; }
.cta-box {
    border: 1px solid #333;
    padding: 60px 40px;
    text-align: center;
}
.cta-title { font-size: 3.5rem; margin-bottom: 20px; font-weight: bold; }
.cta-lead { font-size: 2.5rem; line-height: 1.8; margin-bottom: 30px; }
.cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    padding: 20px 60px;
    font-size: 3.0rem;
    text-decoration: none;
    transition: 0.3s;
}
.cta-btn:hover { background: #333; }
.cta-btn i { margin-right: 15px; }

@media (max-width: 768px) {
    .blog-grid { grid-template-columns: 1fr; }
    .cta-title { font-size: 1.5rem; }
    .cta-btn { width: 100%; padding: 15px 20px; font-size: 1.1rem; }
}

/* 文字サイズと配置の強制修正 */
#custom-lead-area {
    display: block !important;    
    width: 100% !important;
    max-width: 1100px !important;
    margin: 80px auto !important; /* 左右をautoにしてブロックごと中央へ */
    text-align: center !important;  /* 文字をセンター揃えに！ */
}

/* 「私たちはお客さまと〜」の見出し */
.custom-lead-catch {
    display: block !important;
    font-family: a-otf-ryumin-pr6n, serif !important; /* メインと同じ明朝体 */
    font-size: 32px !important;   /* 極端に大きく設定 */
	line-height: 1.5 !important;
    color: #000 !important;
    margin-bottom: 40px !important;
    letter-spacing: 0.05em !important;
}

/* 説明文（本文） */
.custom-lead-text {
    display: block !important;
    font-size: 18px !important;   /* 読みやすいサイズに固定 */
    line-height: 2.2 !important;  /* 行間を広く */
    color: #333 !important;
    margin-bottom: 30px !important;
    max-width: 100% !important;  /* 1行が長くなりすぎないよう制限 */
}

/* グレーの点 */
.custom-lead-dot {
    display: block !important;
    width: 24px;
    height: 24px;
    background-color: #e6e6e6;
    border-radius: 50%;
}

/* スマートフォンでの表示調整 */
@media (max-width: 639px) {
    #custom-lead-area {
        margin: 40px auto !important; /* スマホでも左右autoで中央を維持 */
    }
    .custom-lead-catch {
        font-size: 24px !important;
        margin-bottom: 20px !important;
    }
    .custom-lead-text {
        font-size: 15px !important;
        line-height: 1.8 !important;
    }
}

/* ====================================================
   展示会サービスページ専用の調整（選ばれる理由・実績紹介・料金目安）
==================================================== */

/* 1. 背景グレーと上下の余白（選ばれる理由・実績紹介用） */
.ls-bg-gray {
    background-color: #f7f7f7 !important; /* 薄いグレー */
    padding-top: 10rem !important;        /* 背景の上側の余白 */
    padding-bottom: 10rem !important;     /* 背景の下側の余白 */
    margin-top: 0 !important;
}

/* 2. 「選ばれる理由」の見出しを太字に */
.ls-reason-title {
    font-weight: 700 !important;
}

/* 3. 実績紹介のデザイン */
/* カテゴリ（黒背景に白文字） */
.ls-works-cat {
    display: inline-block !important;
    background-color: #000 !important;
    color: #fff !important;
    padding: 6px 18px !important;
    font-size: 1.6rem !important;
    margin-bottom: 1.5rem !important;
    font-weight: 700 !important;
}

/* タイトル（太字で少し大きく） */
.ls-works-title {
    font-weight: 700 !important;
    font-size: 2.2rem !important;
    line-height: 1.5 !important;
    margin-bottom: 1rem !important;
    color: #000 !important;
}

/* コマ数詳細 */
.ls-works-detail {
    font-size: 1.6rem !important;
    color: #333 !important;
}

/* 4. 料金目安テーブル（表）の見栄えを整える（コンパクト版） */
.price-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 1px solid #dcdcdc !important; /* 外枠を追加 */
    font-size: 1.5rem !important; /* 文字サイズを少し小さくスッキリと */
}
.price-table tr {
    border-bottom: 1px solid #dcdcdc !important; /* 行の下線 */
}
.price-table th {
    width: 12rem !important; /* 左側（項目名）の幅を少し狭く */
    text-align: left !important;
    padding: 10px 15px !important; /* 上下左右の余白を詰める */
    background-color: #f0f0f0 !important; /* 左側に薄いグレー背景 */
    font-weight: 700 !important;
    color: #111 !important;
    border-right: 1px solid #dcdcdc !important; /* 縦線を追加 */
}
.price-table td {
    padding: 10px 15px !important; /* 上下左右の余白を詰める */
    color: #333 !important;
    background-color: #fff !important; /* 右側（内容）は白背景 */
    line-height: 1.6 !important;
}

/* スマートフォンでの表示調整 */
@media (max-width: 768px) {
    .ls-bg-gray {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }
    .ls-works-cat {
        font-size: 1.2rem !important;
        padding: 4px 12px !important;
    }
    .ls-works-title {
        font-size: 1.6rem !important;
    }
    .ls-works-detail {
        font-size: 1.4rem !important;
    }
    .price-table th, .price-table td {
        padding: 10px !important;
        font-size: 1.4rem !important;
    }
}

/* ====================================================
   サービス内容一覧グリッドの上下余白調整（.my-5の上書き）
==================================================== */
.service-list-grid .grid-container.my-5 {
    margin-top: 50px !important;    /* 上（タイトル）との余白 */
    margin-bottom: 100px !important; /* 下（選ばれる理由）との余白 */
}

/* ====================================================
   実績紹介リンク用スタイル（カード全体をクリック可能に）
==================================================== */
.ls-works-link {
    display: block !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: opacity 0.3s ease !important;
}

/* マウスオーバー時に少し薄くしてクリックできることをアピール */
.ls-works-link:hover {
    opacity: 0.7 !important;
}

/* ====================================================
   実績紹介画像用スタイル（高さを揃える）
==================================================== */
.ls-works-img {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important; /* 横4：縦3の比率で固定 */
    object-fit: cover !important;   /* 枠に合わせて綺麗にトリミング */
    display: block !important;
    margin-bottom: 15px !important;
}

/* ====================================================
   スマートフォン用の表示最適化（巨大化防止・余白・中央寄せ）
==================================================== */
@media (max-width: 768px) {
    
    /* 全体的な背景グレーの上下余白をコンパクトに */
    .ls-bg-gray {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }

    /* 共通見出しの巨大化を防ぐ */
    .section-title-sub {
        font-size: 24px !important;
        margin-top: 40px !important;
        margin-bottom: 25px !important;
    }
    .section-title-sub small {
        font-size: 14px !important;
        margin-top: 10px !important;
    }

    /* ----------------------------------
       1. ボタンの中央寄せ＆実績の余白
    ---------------------------------- */
    /* 実績紹介内の余白を縮小 */
    .works-section .works-grid {
        margin-top: 20px !important;
        margin-bottom: 30px !important;
    }
    /* View moreボタンを確実に中央に配置 */
    .works-section .text-center {
        text-align: center !important;
        width: 100% !important;
    }
    .view-more {
        margin: 0 auto !important;
        display: inline-block !important;
        font-size: 16px !important;
        padding: 12px 40px !important;
    }

    /* ----------------------------------
       2. 関連記事のサイズ
    ---------------------------------- */
    .blog-content .date {
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }
    .blog-content h3 {
        font-size: 16px !important;
        line-height: 1.5 !important;
    }

    /* ----------------------------------
       3. その他のセクションの巨大化修正
    ---------------------------------- */
    /* 実績紹介のテキスト */
    .ls-works-cat { font-size: 12px !important; padding: 4px 10px !important; }
    .ls-works-title { font-size: 16px !important; line-height: 1.4 !important; }
    .ls-works-detail { font-size: 13px !important; }

    /* サービス内容一覧 */
    .grid-item { padding: 20px 15px !important; }
    .grid-item h3 { font-size: 18px !important; margin-bottom: 15px !important; }
    .grid-item p, .grid-item ul li { font-size: 14px !important; line-height: 1.6 !important; }

    /* 選ばれる理由 */
    .reason-text h3 { font-size: 18px !important; line-height: 1.5 !important; }
    .reason-text .label { font-size: 14px !important; padding: 4px 10px !important; }
    .reason-text p, .reason-text ul li { font-size: 14px !important; line-height: 1.6 !important; }

    /* 料金目安 */
    .price-item { margin-bottom: 50px !important; }
    .price-header { flex-direction: column !important; align-items: flex-start !important; }
    .amount { font-size: 28px !important; line-height: 1 !important; }
    .amount span { font-size: 16px !important; }
    .size-tag { font-size: 14px !important; padding: 6px 10px !important; }
    .description { font-size: 14px !important; line-height: 1.6 !important; margin-bottom: 20px !important; }
    
    /* 料金テーブル */
    .price-table { font-size: 13px !important; }
    .price-table th { width: 90px !important; font-size: 13px !important; padding: 10px !important; }
    .price-table td { font-size: 13px !important; padding: 10px !important; }

    /* CTA（下部のお問い合わせ） */
    .cta-title { font-size: 20px !important; }
    .cta-lead { font-size: 14px !important; line-height: 1.6 !important; }
    .cta-btn { font-size: 16px !important; padding: 15px 30px !important; width: 100% !important; box-sizing: border-box !important;}
}

/* ====================================================
   View moreボタンをPC・スマホ共通で強制的に中央配置
==================================================== */
.works-section .text-center {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin-top: 50px !important;
    clear: both !important;
}

.works-section .view-more {
    display: block !important;
    width: 250px !important;
    margin: 0 auto !important;
    text-align: center !important;
    box-sizing: border-box !important;
    padding: 18px 0 !important;
}

/* ====================================================
   TOPページ WORKSセクション：見出しとテキストの配置調整
==================================================== */
/* --- 共通の初期化 --- */
.works-section .en-title {
    text-align: left !important; /* 全体を左揃えにリセット */
}

.works-section .en-title span {
    line-height: 1 !important;
}

.works-section .en-title p {
    text-align: left !important; /* テキスト自体を左揃えに */
}

/* --- PC表示（横並び＆上端揃え） --- */
@media (min-width: 640px) {
    .works-section .en-title {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
    }
    
    .works-section .en-title span {
        width: 35% !important; /* WORKS側の幅 */
        margin-top: 0 !important;
    }

    .works-section .en-title p {
        width: 60% !important; /* テキスト側の幅 */
        margin-top: 20px !important; /* ★ここでWORKSの上端と視覚的に合わせる微調整 */
    }
}

/* --- スマホ表示（縦並び） --- */
@media (max-width: 639px) {
    .works-section .en-title {
        display: block !important; /* フレックス（横並び）を解除 */
    }

    .works-section .en-title span {
        display: block !important;
        margin-bottom: 20px !important; /* 下のテキストとの余白 */
    }

    .works-section .en-title p {
        width: 100% !important;
        margin-top: 0 !important;
    }
}

/* ====================================================
   各セクションの大見出し・中見出しを明朝体に統一（細字で上品に）
==================================================== */
.section-title-sub,
.section-title-sub small,
.reason-text h3,
.grid-item h3,
.cta-title {
    font-family: a-otf-ryumin-pr6n, serif !important;
    font-weight: 300 !important; /* ボールドを解除し、メインコピーと同じ細字に統一 */
}

/* ==========================================================================
   TOP KV — 1枚画像レイアウト（2026.5）
   既存の .p-top-kv 系スタイルに、新HTML構造（カルーセル撤去・1枚画像化）
   用のスタイルを上書きする形で追記。

   - 既存のカルーセル用スタイル（.p-top-kv__main, .p-top-kv__nav,
     .p-top-kv__left/right, .p-top-kv__spmain, .p-top-kv__spnav）は
     新HTMLで未使用となるため放置でOK。
   - 既存の「無料相談はこちら」ボタン（.more-btn.bg-black / .more-btnTopSp.bg-black）
     はそのまま流用。CTAボタン用の新スタイルは追加しない。

   文字サイズ:
   - PC〜タブレット（≥640px）= 共通固定サイズ
   - SP（≤639px）= 別の固定サイズ
   PC〜タブレット範囲内ではウインドウ幅を動かしてもサイズは変動しない。
   ========================================================================== */

/* ===========================================
   背景画像 + 黒グラデオーバーレイ
   =========================================== */
   .p-top-kv--single {
	position: relative;
	overflow: hidden;
	padding-right: 0; /* 既存の padding-right: 80px を打ち消し */
}

.p-top-kv__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.p-top-kv__bg-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../img/top/kv_progate.jpg);
	background-size: cover;
	background-position: center 75%; /* ブース部分が大きく見えるよう下寄せ */
	background-repeat: no-repeat;
}

.p-top-kv__bg-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		90deg,
		rgba(0, 0, 0, 0.75) 0%,
		rgba(0, 0, 0, 0.55) 25%,
		rgba(0, 0, 0, 0.20) 50%,
		rgba(0, 0, 0, 0)    70%
	);
}

/* 旧カルーセル要素を非表示（HTMLは残してJSのnull参照を防ぐ） */
.p-top-kv--single .p-top-kv__nav,
.p-top-kv--single .p-top-kv__left,
.p-top-kv--single .p-top-kv__spmain,
.p-top-kv--single .p-top-kv__spnav,
.p-top-kv--single .p-top-kv__btn-legacy {
	display: none !important;
}

.p-top-kv--single .p-top-kv__copy-text {
	padding-top: 7rem;
}

/* ===========================================
   PC：左右分割をやめて1カラム化
   =========================================== */
.p-top-kv--single .p-top-kv__pc {
	position: relative;
	z-index: 1;
}

.p-top-kv--single .p-top-kv__right {
	width: 100% !important;
}

/* ===========================================
   PC コピー：白文字 + 固定サイズ
   既存の .p-top-kv__copy-text-main / -sub を .p-top-kv--single スコープで
   上書き。既存の @media(max-width:1033px) の縮小ルールよりも特異度が高い
   ので、こちらが優先される。
   =========================================== */
.p-top-kv--single .p-top-kv__copy-text-main,
.p-top-kv--single .p-top-kv__copy-text-sub {
	color: #fff;
}

.p-top-kv--single .p-top-kv__copy-text-main {
	font-size: 5.6rem;
	line-height: 1.4;
}

.p-top-kv--single .p-top-kv__copy-text-sub {
	font-size: 1.8rem;
	line-height: 1.7;
}

.p-top-kv--single .p-top-kv__copy-text-sub .sub-small {
	font-size: 1.6rem;
}

/* ===========================================
   CTAボタン（白背景・黒文字・矢印付き）
   PC/SP共通スタイル
   =========================================== */
.p-top-kv__cta {
	margin-top: 4rem;
}

.p-top-kv__cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 4rem;
	min-width: 42rem;
	padding: 2rem 2.8rem;
	background: #fff;
	color: #111;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-decoration: none;
	transition: opacity .25s ease, transform .25s ease;
}

.p-top-kv__cta-btn:hover {
	opacity: .88;
	transform: translateX(4px);
}

.p-top-kv__cta-btn-text {
	flex: 1;
}

.p-top-kv__cta-btn-arrow {
	display: inline-block;
	font-size: 1.8rem;
	line-height: 1;
}

/* タブレット範囲（640px〜1033px）でも PC と同じ文字サイズを維持。
   既存の @media(max-width:1033px) で main が 5.4rem に縮むのを上書きするため、
   ここで明示的に 5.6rem を再指定する必要がある。 */
@media (min-width: 640px) and (max-width: 1033px) {
	.p-top-kv--single .p-top-kv__copy-text-main {
		font-size: 5.6rem;
	}
}

/* ===========================================
   SP（≤639px）
   =========================================== */
@media (max-width: 639px) {
	.p-top-kv--single {
		padding: 60px 0 0 0;
	}

	/* SPはグラデを縦方向に（下にいくほど濃く） */
	.p-top-kv__bg-overlay {
		background: linear-gradient(
			180deg,
			rgba(0, 0, 0, 0.35) 0%,
			rgba(0, 0, 0, 0.55) 50%,
			rgba(0, 0, 0, 0.75) 100%
		);
	}

	.p-top-kv--single .p-top-kv__sp {
		position: relative;
		z-index: 1;
		display: block;
		width: 100%;
		height: calc(100% - 60px);
	}

	/* 既存の .p-top-kv__spcopy は absolute + bottom: 75px + 半透明黒背景
	   になっているが、新構造では中央寄りに白文字で見せたいので上書き */
	.p-top-kv--single .p-top-kv__spcopy {
		position: absolute;
		left: 2.4rem;
		right: 2.4rem;
		bottom: auto;
		top: 30%;
		transform: translateY(-30%);
		background-color: transparent;
		padding: 0;
	}

	.p-top-kv--single .p-top-kv__spcopy-text-main {
		font-size: 2.2rem;
		line-height: 1.4;
		color: #fff;
		margin-bottom: 1rem;
	}

	.p-top-kv--single .p-top-kv__spcopy-text-sub {
		font-size: 1.2rem;
		line-height: 1.7;
		letter-spacing: .03em;
		font-family: a-otf-ryumin-pr6n, serif !important;
		color: #fff;
	}

	.p-top-kv--single .p-top-kv__spcopy-text-sub .sub-small {
		font-size: 1.1rem;
	}

	/* SP用CTAボタン */
	.p-top-kv__cta--sp {
		margin: 2.4rem 2.4rem 0;
	}

	.p-top-kv__cta--sp .p-top-kv__cta-btn {
		display: flex;
		min-width: 0;
		width: 100%;
		gap: 1rem;
		padding: 1.6rem 2rem;
		font-size: 1.3rem;
	}

	.p-top-kv__cta--sp .p-top-kv__cta-btn-arrow {
		font-size: 1.4rem;
	}
}

/* ==========================================================================
   TOP KV — 最終調整パッチ（2026.6）
   末尾追記推奨。文字サイズとSP最適化を確実に上書きする。
   ========================================================================== */

/* === PC・タブレット（≥640px）: 文字サイズ完全固定 === */
@media (min-width: 640px) {
	.p-top-kv--single .p-top-kv__copy-text-main {
		font-size: 5.6rem !important;
		line-height: 1.4 !important;
	}
	.p-top-kv--single .p-top-kv__copy-text-sub {
		font-size: 1.8rem !important;
		line-height: 1.7 !important;
	}
	.p-top-kv--single .p-top-kv__copy-text-sub .sub-small {
		font-size: 1.6rem !important;
	}
}

/* === SP用CTAボタン: PC幅では非表示 === */
.p-top-kv--single .p-top-kv__cta--sp {
	display: none;
}

/* === SP（≤639px）: 文字サイズ + レイアウト + ボタン === */
@media (max-width: 639px) {
	/* SPコピー文字サイズ */
	.p-top-kv--single .p-top-kv__spcopy-text-main {
		font-size: 2.2rem !important;
		line-height: 1.4 !important;
		color: #fff !important;
		margin-bottom: 1rem !important;
	}
	.p-top-kv--single .p-top-kv__spcopy-text-sub {
		font-size: 1.2rem !important;
		line-height: 1.7 !important;
		color: #fff !important;
		font-family: a-otf-ryumin-pr6n, serif !important;
	}
	.p-top-kv--single .p-top-kv__spcopy-text-sub .sub-small {
		font-size: 1.1rem !important;
	}

	/* SPコピーの位置（上から30%） */
	.p-top-kv--single .p-top-kv__spcopy {
		position: absolute !important;
		left: 2.4rem !important;
		right: 2.4rem !important;
		top: 15% !important;
		bottom: auto !important;
		transform: none !important;
		background-color: transparent !important;
		padding: 0 !important;
	}

	/* SP用CTAボタン: 表示 + 画面下部に固定 */
	.p-top-kv--single .p-top-kv__cta--sp {
		display: block !important;
		position: absolute !important;
		left: 2.4rem !important;
		right: 2.4rem !important;
		bottom: 6rem !important;
		z-index: 3 !important;
		margin: 0 !important;
	}
	.p-top-kv--single .p-top-kv__cta--sp .p-top-kv__cta-btn {
		display: flex !important;
		min-width: 0 !important;
		width: 100% !important;
		gap: 1rem !important;
		padding: 1.6rem 2rem !important;
		font-size: 1.3rem !important;
		justify-content: space-between !important;
		background: #fff !important;
		color: #111 !important;
	}
	.p-top-kv--single .p-top-kv__cta--sp .p-top-kv__cta-btn-arrow {
		font-size: 1.4rem !important;
	}
}

/* === 最安1コマ CTAボタン 調整 === */
.cta-section .cta-btn-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;            /* ボタン間の余白＝重なり解消 */
	margin-top: 32px;
}

.cta-section .cta-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	max-width: 420px;
	box-sizing: border-box;
	margin: 0;
	font-size: 1.8rem;   /* PC・タブレット共通の固定値 */
	border-radius: 6px;
	text-decoration: none;
	transition: opacity .3s, background-color .3s, color .3s;
}

/* 上＝黒背景・白文字 */
.cta-section .cta-btn:not(.cta-btn-sub) {
	background-color: #1a1a1a;
	color: #fff;
	border: 2px solid #1a1a1a;
}
.cta-section .cta-btn:not(.cta-btn-sub):hover {
	opacity: .85;
}

/* 下＝白背景・黒文字 */
.cta-section .cta-btn-sub {
	background-color: #fff;
	color: #1a1a1a;
	border: 2px solid #1a1a1a;
}
.cta-section .cta-btn-sub:hover {
	background-color: #1a1a1a;
	color: #fff;
}

@media screen and (max-width: 639px) {
	.cta-section .cta-btn {
		max-width: 100%;
		font-size: 1.5rem;   /* SPのみ固定で小さめ */
	}
}

/* 料金画像 縦2枚の間隔 */
.price-section .price-img img + img {
	margin-top: 12px;
}

/* ==========================================================================
   対応エリアセクション
   ========================================================================== */
   .service-area-section {
	padding: 0 0 100px;  /* 下側に余白を確保（パッケージの特徴との間） */
}

.service-area-section .venue-list {
	display: flex;
	justify-content: center;
	gap: 20px;
	list-style: none;
	padding: 0;
	margin: 40px 0 25px;
	flex-wrap: wrap;
}

.service-area-section .venue-item {
	padding: 18px 40px;
	border: 1px solid #333;
	background: #fff;
	font-size: 2.3rem;   /* ←1.6rem → 2.3rem に変更 */
	font-weight: 500;
	text-align: center;
	min-width: 220px;
	letter-spacing: 0.05em;
}

.service-area-section .venue-note {
	text-align: center;
	margin-top: 25px;
	font-size: 2rem;   /* ←1.4rem → 1.6rem（本文サイズ）に変更 */
	color: #666;
}

/* SP対応 */
@media (max-width: 767px) {
	.service-area-section {
		padding: 40px 0 60px;
	}
	.service-area-section .venue-list {
		flex-direction: column;
		gap: 12px;
		margin: 30px 0 20px;
	}
	.service-area-section .venue-item {
		width: 100%;
		min-width: 0;
		padding: 15px 20px;
		font-size: 1.5rem;
	}
	.service-area-section .venue-note {
		font-size: 1.3rem;
	}
}
/* ===========================================
   TOPページ KVサブコピーのh1化に伴う表示リセット
   （div時代と同一の見た目を維持するため）
   =========================================== */
h1.p-top-kv__copy-text-sub,
h1.p-top-kv__spcopy-text-sub {
	margin: 0;
	font-weight: 300;
}
h1.p-top-kv__spcopy-text-sub {
	margin: 6px 0 0;
}
