/* ==============================
下層ページ共通
============================== */
.subpage {
	padding-top: 100px;
}

.subpage .dots01 {
	position: absolute;
	top: 0;
	right: 0;
	width: 72%;
	height: 543px;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px
}

.subpage .dots02 {
	position: absolute;
	top: 543px;
	left: 0;
	width: 27%;
	height: 563px;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px
}

.subpage .dots03 {
	position: absolute;
	top: 903px;
	right: 5%;
	width: 27%;
	height: 563px;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px
}

.sub-visual {
	position: relative;
	height: 400px;
	background: #fff;
}

.sub-visual__image {
	position: absolute;
	top: 0;
	right: 0;
	width: 85%;
	height: 400px;
	overflow: hidden;
}

.sub-visual__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.sub-visual__title {
	position: absolute;
	top: 70px;
	left: 5%;
	z-index: 3;
	color: #70CAC0;
}

.sub-visual__title h1 {
	font-family: "Caveat", cursive;
	font-size: 128px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .04em;
	text-shadow: 2px 2px 0 #fff, -1px -1px 0 #fff;
}

.sub-visual__title p {
	color: #70CAC0;
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: .08em;
}

.sub-visual__deco {
	position: absolute;
	z-index: 4;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
}

.sub-visual__deco--blue {
	bottom: -85px;
	left: 0;
	width: 180px;
	height: 180px;
	background-image: url("../images/watercolor-blue.png");
}

.sub-visual__deco--yellow {
	bottom: -100px;
	left: 150px;
	width: 90px;
	height: 90px;
	background-image: url("../images/watercolor-orange.png");
}

/* ==============================
共通タイトル
============================== */
.lower-title {
	position: relative;
	z-index: 2;
	text-align: center;
}

.lower-title h2 {
	position: relative;
	display: inline-block;
	font-family: "Noto Serif JP", serif;
	font-size: 40px;
	font-weight: 600;
	letter-spacing: .1em;
	z-index: 99;
}

.lower-title h2::before {
	position: absolute;
	right: -60px;
	bottom: -80px;
	width: 243px;
	height: 249px;
	background-image: url("../images/watercolor-red.png");
	background-size: contain;
	background-repeat: no-repeat;
	content: "";
	pointer-events: none;
	z-index: -1;
}

.lower-title--orange h2::before {
	background-image: url("../images/watercolor-orang04.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 199px;
	height: 202px;
	right: 50px;
	bottom: -34px;
}

.lower-title--green h2::before {
	background-image: url("../images/watercolor-green02.png");
	background-size: contain;
	background-repeat: no-repeat;
	width: 178px;
	height: 186px;
	right: -65px;
	bottom: -34px;
}

/* ==============================
会社の特徴
============================== */
.about-feature {
	position: relative;
	padding: 120px 0 150px;
	overflow: hidden;
	background: #fff;
}

.about-feature__inner {
	position: relative;
	z-index: 2;
	width: min(1280px, 90%);
	margin: auto;
}

.about-feature__stage {
	position: relative;
	width: 65%;
	margin: -70px auto 0 0;
	padding: 75px 0 90px;
	background: linear-gradient(135deg, #c7f7f1 0%, #70CAC0 100%);
}

.about-feature__item {
	position: relative;
	min-height: 540px;
	margin-top: 120px;
}

.about-feature__item+.about-feature__item {
	margin-top: 57px;
}

.about-feature__image {
	position: absolute;
	top: 0;
}

.about-feature__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-feature__content {
	position: absolute;
	top: 55px;
	z-index: 3;
	width: 75%;
	min-height: 442px;
	padding: 30px 25px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 5px 10px rgba(0, 0, 0, .18);
}

.about-feature__number {
	color: #DA5F3D;
	font-family: "Caveat", cursive;
	font-size: 70px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .06em;
	margin: -30px -20px 0;
}

.about-feature__content h3 {
	margin-top: 30px;
	color: #FA9648;
	font-family: "Noto Serif JP", serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .06em;
}

.about-feature__text {
	margin-top: 25px;
	font-size: 16px;
	font-weight: 500;
	line-height: 2;
}

.about-feature__text p+p {
	margin-top: 8px;
}

.about-feature__item--01 .about-feature__image,
.about-feature__item--03 .about-feature__image {
	right: -52%;
}

.about-feature__item--01 .about-feature__content,
.about-feature__item--03 .about-feature__content {
	left: 5%;
}

.about-feature__item--02 .about-feature__image {
	left: 5%;
}

.about-feature__item--02 .about-feature__content {
	right: -52%;
}

.about-feature__deco {
	position: absolute;
	z-index: 3;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
}

.about-feature__deco--blue {
	right: 0;
	top: 0;
	width: 145px;
	height: 216px;
	background-image: url("../images/watercolor-blue02.png");
}

.about-feature__deco--blue02 {
	right: 2%;
	bottom: 0;
	width: 239px;
	height: 219px;
	background-image: url("../images/watercolor-blue.png");
}

/* ==============================
代表挨拶
============================== */
.greeting {
	position: relative;
	padding: 190px 20px 120px;
	z-index: 99;
}

.greeting::before {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 913px;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px;
	content: "";
	pointer-events: none;
}

.greeting__wave {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.greeting__wave img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: fill;
}

.greeting__inner {
	position: relative;
	z-index: 2;
	width: min(1100px, 90%);
	margin: auto;
}

.greeting__content {
	width: min(1082px, 100%);
	margin: 70px auto 0;
	padding: 48px 55px;
	border-radius: 12px;
	background: #fff;
	font-weight: 500;
	line-height: 2;
}

.greeting__content p+p {
	margin-top: 7px;
}

.greeting__name {
	text-align: right;
	font-size: 24px;
	font-weight: 500;
}

.greeting__decoration--right {
	position: absolute;
	right: 0;
	bottom: -160px;
	width: 243px;
	height: 249px;
	background-image: url("../images/watercolor-red.png");
	background-size: contain;
	background-repeat: no-repeat;
	z-index: 1;
}

/* ==============================
会社概要
============================== */
.company {
	position: relative;
	padding: 250px 0 130px;
	overflow: hidden;
	background: #fff;
}

.company__inner {
	position: relative;
	z-index: 2;
	width: min(1282px, 90%);
	margin: auto;
}

.company__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
	align-items: start;
	gap: 27px;
	margin-top: 90px;
}

.company__table {
	font-weight: 500;
}

.company__row {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 30px;
	padding: 15px 0;
	border-bottom: 1px dotted #999;
}

.company__row dt {
	font-weight: 600;
}

.company__row dd {
	margin: 0;
}

.company__map {
	height: 563px;
	overflow: hidden;
}

.company__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ==============================
PDF書類
============================== */
.document {
	position: relative;
	padding: 80px 0 300px;
	overflow: hidden;
	background: #fff;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px;
}

.document__inner {
	position: relative;
	z-index: 2;
	width: min(1058px, 90%);
	margin: auto;
}

.document__group {
	margin-top: 69px;
}

@media(max-width:1100px) {

	.company__layout {
		gap: 45px;
	}

	.document__inner {
		width: min(950px, 92%);
	}
}

@media(max-width:820px) {
	.subpage {
		padding-top: 0;
	}

	.sub-visual__title {
		top: 105px;
		left: 5%;
	}

	.sub-visual__deco--blue {
		width: 125px;
		height: 125px;
	}

	.sub-visual__deco--yellow {
		left: 88px;
		width: 55px;
		height: 55px;
	}

	.about-feature__deco--blue {
		width: 100px;
	}

	.about-feature {
		padding-bottom: 100px;
	}

	.about-feature__stage {
		width: 70%;
		padding-top: 55px;
	}

	.about-feature__item {
		min-height: 370px;
	}

	.about-feature__image {
		width: 90%;
		height: 310px;
	}

	.about-feature__content {
		top: 55px;
		width: 90%;
		min-height: 245px;
		padding: 25px;
	}

	.about-feature__content h3 {
		font-size: 17px;
	}

	.about-feature__item--01 .about-feature__image,
	.about-feature__item--03 .about-feature__image {
		right: -38%;
	}

	.about-feature__item--02 .about-feature__content {
		right: -38%;
	}

	.about-feature__deco--blue02 {
		width: 160px;
	}

	.greeting__decoration--right {
		width: 160px;
	}

	.company__layout {
		grid-template-columns: 1fr;
		gap: 55px;
	}

	.company__map {
		height: 380px;
	}

	.document__list--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media(max-width:767px) {
	.subpage .dots01 {
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
	}

	.subpage .dots02 {
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
	}

	.subpage .dots03 {
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
	}

	.sub-visual {
		height: 285px;
	}

	.sub-visual__title {
		top: 95px;
		left: 18px;
	}

	.sub-visual__title h1 {
		font-size: 70px;
	}

	.sub-visual__deco--blue {
		left: -25px;
		width: 95px;
		height: 95px;
	}

	.sub-visual__deco--yellow {
		left: 60px;
		width: 40px;
		height: 40px;
	}

	.sub-visual__image {
		height: 285px;
	}

	.lower-title h2 {
		font-size: 30px;
	}

	.lower-title h2::before {
		width: 130px;
		right: 10px;
		bottom: -140px;
	}

	.about-feature {
		padding: 100px 0 80px;
	}

	.about-feature__inner {
		width: 100%;
	}

	.about-feature__stage {
		width: 85%;
		padding: 55px 0;
		margin-top: -55px;
	}

	.about-feature__item {
		display: flex;
		flex-direction: column;
		min-height: 0;
		margin-top: 50px;
	}

	.about-feature__item+.about-feature__item {
		margin-top: 60px;
	}

	.about-feature__image {
		position: relative;
		top: auto;
		right: -30px !important;
		left: auto !important;
		width: 100%;
		height: 250px;
		border-radius: 9px;
	}

	.about-feature__content {
		position: relative;
		top: auto;
		right: auto !important;
		left: 5% !important;
		width: 108%;
		min-height: 0;
		margin: -35px 0 0 0;
		padding: 22px 20px 25px;
		border-radius: 9px;
	}

	.about-feature__number {
		font-size: 50px;
		margin: -20px -10px 0;
	}

	.about-feature__content h3 {
		margin-top: 12px;
		font-size: 16px;
		line-height: 1.7;
	}

	.about-feature__text {
		margin-top: 15px;
		font-size: 14px;
		line-height: 2;
	}

	.about-feature__item--02 .about-feature__image {
		order: 1;
	}

	.about-feature__item--02 .about-feature__content {
		order: 2;
	}

	.about-feature__deco--blue {
		right: -30px;
		bottom: 5px;
		width: 105px;
		height: 105px;
	}

	.about-feature__deco--blue02 {
		width: 120px;
		bottom: -55px;
	}

	.greeting {
		min-height: 0;
		padding: 125px 15px 80px;
	}

	.greeting::before {
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
		height: 500px;
	}

	.greeting__inner {
		width: 100%;
	}

	.greeting__content {
		margin-top: 95px;
		padding: 28px 23px;
		font-size: 14px;
		line-height: 2;
	}

	.greeting__name {
		font-size: 16px;
	}

	.greeting__decoration--right {
		width: 135px;
	}

	.company {
		padding: 95px 15px 80px;
	}

	.company__inner {
		width: 100%;
	}

	.company__layout {
		margin-top: 60px;
		gap: 45px;
	}

	.company__row {
		grid-template-columns: 85px 1fr;
		gap: 12px;
		padding: 12px 0;
	}

	.company__map {
		height: 285px;
	}

	.company__deco {
		top: 40px;
		left: 58%;
		width: 72px;
		height: 72px;
	}

	.document {
		padding: 55px 15px 100px;
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
	}

	.document__inner {
		width: 100%;
	}
}

.service-intro {
	position: relative;
	padding: 100px 0 80px;
	overflow: hidden;
	background: #fff;
}

.service-intro .dots01 {
	left: 0;
	right: auto;
}

.service-intro .dots02 {
	left: auto;
	right: 0;
}

.service-intro .dots03 {
	left: 0;
	right: auto;
}

.service-intro__inner {
	position: relative;
	z-index: 2;
	width: min(1280px, 92%);
	margin: auto
}

.service-intro__title {
	position: relative;
	z-index: 3;
	margin-bottom: 55px;
	text-align: center;
	font-family: "Noto Serif JP", serif;
	font-size: 28px;
	font-weight: 500;
	letter-spacing: .12em
}

.service-intro__bg {
	position: absolute;
	top: 0;
	right: 0;
	width: 65%;
	height: 107%;
	background: linear-gradient(135deg, #c7f7f1 0%, #70CAC0 100%);
}

.service-intro__deco {
	position: absolute;
	z-index: 1;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.service-intro__deco--right {
	right: 0;
	top: 0;
	width: 145px;
	height: 216px;
	background-image: url(../images/watercolor-blue02.png);
	z-index: 9;
}

.subpage .service-card {
	position: relative;
	width: 83%;
	min-height: 415px;
	margin: 130px auto 0;
	padding: 50px 42% 48px 50px;
	background: #fff;
	border-radius: 0 0 16px 16px;
	box-shadow: 0 5px 0 rgba(0, 0, 0, .14);
}

.subpage .service-card:nth-of-type(even) {
	margin-left: auto;
}

.subpage .service-card__content {
	position: relative;
	z-index: 2;
}

.subpage .service-card__content h3 {
	position: relative;
	padding-left: 36px;
	color: #DA5F3D;
	font-family: "Noto Serif JP", serif;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: .06em;
}

.subpage .service-card__content h3::before {
	position: absolute;
	top: 4px;
	left: 0;
	width: 17px;
	height: 47px;
	background: #DA5F3D;
	content: "";
}

.subpage .service-card__text {
	margin-top: 30px;
	line-height: 2.2;
	font-weight: 500;
}

.subpage .service-card__text p+p {
	margin-top: 4px;
}

.subpage .service-card__image {
	position: absolute;
	top: -36px;
	right: -85px;
	z-index: 3;
	width: 48%;
	height: 374px;
	overflow: hidden;
	border-radius: 15px;
	background: #d8d8d8;
}

.subpage .service-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.flow {
	position: relative;
	padding: 190px 0;
	background: #fff
}

.flow .lower-title h2::before {
	position: absolute;
	right: 40px;
	bottom: -50px;
	width: 178px;
	height: 178px;
	background-image: url("../images/watercolor-orange.png");
	content: "";
	pointer-events: none;
	z-index: -1;
}

.flow__heading {
	position: relative;
	z-index: 2;
	text-align: center
}

.flow__heading h2 {
	display: inline-block;
	font-family: "Noto Serif JP", serif;
	font-size: 28px;
	font-weight: 500;
	letter-spacing: .12em
}

.flow__dots {
	position: absolute;
	top: 17%;
	width: 100%;
	height: 650px;
	background-image: radial-gradient(rgba(145, 218, 235, .25) 4px, transparent 4px);
	background-size: 16px 16px;
}

.flow__inner {
	position: relative;
	padding: 120px 0;
	z-index: 2;
	width: min(789px, 90%);
	margin: 140px auto 0;
}

.flow-item {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-height: 120px;
	padding: 30px 50px;
	background: #fffaf2;
	box-shadow: 0 4px 0 rgba(0, 0, 0, .12)
}

.flow-item__number {
	position: absolute;
	top: -50px;
	left: -50px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 100px;
	background-image: url("../images/watercolor-orange.png");
	background-size: cover;
	font-family: "Caveat", cursive;
	line-height: 1;
	font-weight: 700;
}

.flow-item__number span {
	font-size: 26px;
}

.flow-item__number strong {
	margin-top: 3px;
	font-size: 34px;
}

.flow-item__content {
	width: 100%
}

.flow-item__content h3 {
	padding-bottom: 12px;
	border-bottom: 1px solid #DA5F3D;
	font-size: 20px;
	font-weight: 500;
	margin-left: 10px;
}

.flow-item__content p {
	margin-top: 12px;
	line-height: 2;
	font-weight: 500;
}

.flow-item__content p+p {
	margin-top: 2px
}

.flow__arrow {
	display: block;
	width: 0;
	height: 0;
	margin: 30px auto 40px;
	border-top: 40px solid #FA9648;
	border-right: 54px solid transparent;
	border-left: 54px solid transparent
}

.flow__deco {
	position: absolute;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain
}

.flow__deco--blue {
	right: 2%;
	top: -80px;
	width: 239px;
	height: 219px;
	background-image: url("../images/watercolor-blue.png");
	z-index: 2;
}

.fade-up {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity .9s ease, transform .9s ease
}

.fade-up.is-show {
	opacity: 1;
	transform: translateY(0)
}

@media(max-width:1024px) {

	.subpage .service-card {
		width: 92%
	}

	.service-intro__bg {
		left: 24%;
		width: 67%
	}
}

@media(max-width:767px) {
	.service-intro {
		padding-bottom: 180px;
	}

	.service-intro__inner {
		width: 100%
	}

	.service-intro__title {
		margin-bottom: 40px;
		font-size: 22px
	}

	.service-intro__bg {
		top: 0;
		left: auto;
		width: 85%;
		height: 105%;
	}

	.service-intro__deco--right {
		right: -30px;
		bottom: 5px;
		width: 105px;
		height: 105px;
	}

	.subpage .service-card,
	.subpage .service-card:nth-of-type(even) {
		display: flex;
		flex-direction: column;
		width: 90%;
		min-height: 0;
		margin: 50px auto;
		padding: 34px 22px 24px;
	}

	.subpage .service-card__content {
		width: 100%;
	}

	.subpage .service-card__content h3 {
		padding-left: 20px;
		font-size: 16px;
	}

	.subpage .service-card__content h3::before {
		width: 6px;
		height: 25px;
	}

	.subpage .service-card__text {
		margin-top: 23px;
		line-height: 1.95;
		font-size: 14px;
	}

	.subpage .service-card__image {
		position: relative;
		top: auto;
		right: auto;
		width: 100%;
		height: 190px;
		margin-top: 25px;
		border-radius: 12px;
	}

	.flow {
		padding: 20px 0 120px
	}

	.flow__heading h2 {
		font-size: 22px
	}

	.flow .lower-title h2::before {
		width: 140px;
	}

	.flow__dots {
		top: 100px;
		background-image: radial-gradient(rgba(145, 218, 235, .25) 3px, transparent 3px);
	}

	.flow__inner {
		width: calc(100% - 30px);
		margin-top: 30px;
		padding-top: 60px;
	}

	.flow-item {
		min-height: 0;
		padding: 28px 20px 24px 48px
	}

	.flow-item__number {
		top: -18px;
		left: -10px;
		width: 62px;
		height: 62px
	}

	.flow-item__number span {
		font-size: 18px
	}

	.flow-item__number strong {
		font-size: 20px
	}

	.flow-item__content h3 {
		font-size: 16px
	}

	.flow-item__content p {
		font-size: 14px
	}

	.flow__arrow {
		margin: 18px auto;
		border-top-width: 18px;
		border-right-width: 23px;
		border-left-width: 23px
	}

	.flow__deco--blue {
		top: -185px;
		right: 0;
		width: 120px;
		height: 105px
	}

	.flow__deco--orange {
		width: 60px;
		height: 60px
	}
}

.pamphlet-page {
	overflow: hidden;
	background: #fff
}

.pamphlet-list {
	position: relative;
	padding: 280px 0 500px;
	background: #fff;
	overflow: hidden;
}

.pamphlet-list__inner {
	position: relative;
	z-index: 2;
	width: min(1240px, 92%);
	margin: auto
}

.pamphlet-list__deco {
	position: absolute;
	z-index: 1;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.pamphlet-list__deco--blue-top {
	right: 0;
	top: 0;
	width: 145px;
	height: 216px;
	background-image: url("../images/watercolor-blue02.png");
}

.pamphlet-list__deco--pink {
	top: 800px;
	left: 48%;
	width: 159px;
	height: 154px;
	background-image: url("../images/watercolor-red.png")
}

.pamphlet-list__deco--blue-bottom {
	left: -30px;
	bottom: 220px;
	width: 239px;
	height: 219px;
	background-image: url("../images/watercolor-blue.png")
}

.pamphlet-card {
	position: relative;
	width: 93%;
	min-height: 472px;
	margin: 0 auto 344px;
	padding: 100px 163px 48px;
	background: #fff;
	border: 1px solid #FA9648;
	box-shadow: 0 4px 0 rgba(0, 0, 0, .25)
}

.pamphlet-card:last-child {
	margin-bottom: 0
}

.pamphlet-card__title-wrap {
	position: absolute;
	top: -72px;
	left: -54px;
	z-index: 3;
	width: auto;
	max-width: 1103px;
	max-height: 117px;
	padding: 25px;
	border: 3px solid #fff;
	outline: 3px solid #FA9648;
	background: #FA9648
}

.pamphlet-card__title {
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 51px;
	letter-spacing: .06em
}

.pamphlet-card__title span {
	font-size: 32px;
}

.pamphlet-card__badge-image {
	position: absolute;
	top: -130px;
	right: -20px;
	z-index: 4;
	display: block;
	width: 300px;
	height: auto;
	pointer-events: none;
}

.pamphlet-card__body {
	line-height: 2.2
}

.pamphlet-card__body p+p {
	margin-top: 7px
}

.pamphlet-card__note {
	margin-top: 27px !important;
	font-weight: 700
}

.pamphlet-card__body .more-button {
	margin: 40px auto 0;
	letter-spacing: 0;
}

.pamphlet-card__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 250px;
	min-height: 51px;
	margin: 40px auto 0;
	padding: 7px 7px 7px 30px;
	border-radius: 30px;
	background: #FA9648;
	color: #fff;
	font-size: 13px;
	letter-spacing: .1em;
	box-shadow: 0 5px 14px rgba(255, 145, 77, .22);
	transition: transform .3s ease, box-shadow .3s ease
}

.pamphlet-card__button i {
	position: relative;
	display: block;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #fff
}

.pamphlet-card__button i::before {
	position: absolute;
	top: 50%;
	left: 9px;
	width: 14px;
	height: 1px;
	background: #FA9648;
	content: "";
	transform: translateY(-50%)
}

.pamphlet-card__button i::after {
	position: absolute;
	top: 50%;
	right: 9px;
	width: 7px;
	height: 7px;
	border-top: 1px solid #FA9648;
	border-right: 1px solid #FA9648;
	content: "";
	transform: translateY(-50%) rotate(45deg)
}

.pamphlet-card__button:hover {
	box-shadow: 0 8px 20px rgba(255, 145, 77, .4);
	transform: translateY(-3px)
}

.pamphlet-card--red .pamphlet-card__title-wrap {
	background: #FF5A2D;
	outline-color: #FF5A2D;
	padding: 0 25px;
}

.pamphlet-card--red .more-button {
	background: #FF5A2D
}

.pamphlet-card--red .more-button i::before {
	background: #FF5A2D
}

.pamphlet-card--red .more-button i::after {
	border-color: #FF5A2D
}

.pamphlet-card--green {
	border-color: #75cbc2
}

.pamphlet-card--green .pamphlet-card__title-wrap {
	background: #70CAC0;
	outline-color: #70CAC0;
	padding: 0 25px;
}

.pamphlet-card--green .more-button {
	background: #70CAC0
}

.pamphlet-card--green .more-button i::before {
	background: #70CAC0
}

.pamphlet-card--green .more-button i::after {
	border-color: #70CAC0
}

.pamphlet-card--green .pamphlet-card__badge-image {
	top: 30px;
	right: -115px;
}

@media(max-width:1024px) {
	.sub-mv__heading h1 {
		font-size: 62px
	}

	.sub-mv__image {
		height: 300px
	}

	.pamphlet-card {
		width: 95%;
		padding-right: 45px;
		padding-left: 45px
	}

	.pamphlet-card__title-wrap {
		left: -30px;
	}

	.pamphlet-card__title {
		font-size: 20px
	}

	.pamphlet-card__title span {
		font-size: 16px;
	}

	.pamphlet-card--green .pamphlet-card__badge-image {
		top: -130px;
		right: -20px;
	}

	.pamphlet-card__badge-image {
		width: 230px;
	}
}

@media(max-width:820px) {
	.pamphlet-list__deco--blue-top {
		width: 100px;
	}

	.pamphlet-list__deco--blue-bottom {
		width: 175px;
	}

	.pamphlet-card--green .pamphlet-card__badge-image {
		top: -175px;
	}
}

@media(max-width:767px) {
	.sub-mv {
		padding-top: 64px
	}

	.sub-mv__heading {
		top: 83px;
		left: 20px
	}

	.sub-mv__heading h1 {
		font-size: 46px
	}

	.sub-mv__heading p {
		font-size: 11px
	}

	.sub-mv__image {
		width: 87%;
		height: 230px
	}

	.sub-mv__deco--blue {
		left: -30px;
		bottom: -35px;
		width: 100px;
		height: 100px
	}

	.sub-mv__deco--orange {
		left: 54px;
		bottom: -28px;
		width: 52px;
		height: 52px
	}

	.pamphlet-list {
		padding: 150px 0;
	}

	.pamphlet-list__inner {
		width: 100%
	}

	.pamphlet-list__deco--pink {
		top: 800px;
		left: 42%;
		width: 82px;
		height: 82px
	}

	.pamphlet-list__deco--blue-bottom {
		left: -35px;
		bottom: 170px;
		width: 120px;
		height: 120px
	}

	.pamphlet-card {
		width: 92%;
		min-height: 0;
		margin-bottom: 140px;
		padding: 105px 22px 35px
	}

	.pamphlet-card__title-wrap {
		top: -2px;
		left: -10px;
		width: calc(100% - 25px);
		padding: 13px 15px;
		border-width: 2px;
		outline-width: 2px
	}

	.pamphlet-card__title {
		line-height: 1.55;
		font-size: 18px;
	}

	.pamphlet-card__body {
		line-height: 2
	}

	.pamphlet-card__note {
		margin-top: 16px !important
	}

	.pamphlet-card__button {
		width: 220px;
		min-height: 46px;
		margin-top: 28px;
		padding-left: 24px;
		font-size: 11px
	}

	.pamphlet-card__button i {
		width: 32px;
		height: 32px
	}

	.pamphlet-card__badge-image {
		top: -100px;
		right: -20px;
		width: 170px;
	}

	.pamphlet-card__body .more-button {
		width: 300px;
		font-size: 16px;
	}

	.pamphlet-card--green .pamphlet-card__badge-image {
		top: -100px;
	}
}

.gallery-archive {
	position: relative;
	min-height: 1800px;
	padding: 120px 0 250px;
	background: #fff;
	overflow: hidden;
}

.gallery-archive__inner {
	position: relative;
	z-index: 2;
	width: min(1180px, 94%);
	margin: auto
}

.gallery-archive__dots {
	position: absolute;
	background-image: radial-gradient(rgba(133, 216, 235, .28) 2px, transparent 2px);
	background-size: 10px 10px;
	pointer-events: none
}

.gallery-archive__dots--top {
	top: 0;
	right: 0;
	width: 72%;
	height: 600px
}

.gallery-archive__dots--middle {
	top: 700px;
	right: 8%;
	width: 34%;
	height: 520px
}

.gallery-archive__deco {
	position: absolute;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.gallery-archive__deco--pink {
	top: 100px;
	left: 48%;
	width: 120px;
	height: 120px;
	background-image: url("../images/watercolor-red.png")
}

.gallery-archive__deco--orange {
	top: 820px;
	left: 44%;
	width: 120px;
	height: 120px;
	background-image: url("../images/watercolor-orange.png")
}

.gallery-category+.gallery-category {
	margin-top: 250px
}

.gallery-category__heading {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 130px;
	margin-bottom: 70px;
	text-align: center
}

.gallery-category__heading h2 {
	position: relative;
	z-index: 2;
	font-family: "Noto Serif JP", serif;
	font-size: 30px;
	font-weight: 500;
	letter-spacing: .12em
}

.gallery-category__heading::before {
	position: absolute;
	width: 125px;
	height: 125px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: ""
}

.gallery-category__heading--domestic::before {
	background-image: url("../images/watercolor-red.png")
}

.gallery-category__heading--overseas::before {
	background-image: url("../images/watercolor-orange.png")
}

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 55px 14px;
	margin-top: 130px;
}

.gallery-item a {
	display: block
}

.gallery-item__image {
	position: relative;
	overflow: hidden;
	background: #ddd
}

.gallery-item__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	transition: transform .7s ease
}

.gallery-item__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(69, 190, 181, .72);
	opacity: 0;
	transition: opacity .35s ease
}

.gallery-item__overlay span {
	color: #fff;
	font-family: sans-serif;
	letter-spacing: .2em;
	font-weight: 500;
}

.gallery-item a:hover .gallery-item__image img {
	transform: scale(1.07)
}

.gallery-item a:hover .gallery-item__overlay {
	opacity: 1
}

.gallery-category__more {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 250px;
	min-height: 50px;
	margin: 65px auto 0;
	padding: 7px 7px 7px 28px;
	border-radius: 30px;
	background: #FA9648;
	color: #fff;
	font-size: 12px;
	letter-spacing: .08em;
	transition: transform .3s ease, box-shadow .3s ease
}

.gallery-category__more i {
	position: relative;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: #fff
}

.gallery-category__more i::before {
	position: absolute;
	top: 50%;
	left: 9px;
	width: 13px;
	height: 1px;
	background: #FA9648;
	content: "";
	transform: translateY(-50%)
}

.gallery-category__more i::after {
	position: absolute;
	top: 50%;
	right: 9px;
	width: 6px;
	height: 6px;
	border-top: 1px solid #FA9648;
	border-right: 1px solid #FA9648;
	content: "";
	transform: translateY(-50%) rotate(45deg)
}

.gallery-category__more:hover {
	box-shadow: 0 7px 18px rgba(255, 145, 77, .35);
	transform: translateY(-3px)
}

.gallery-empty {
	grid-column: 1/-1;
	text-align: center;
	font-size: 16px;
	font-weight: 500;
}

.gallery-single__section {
	position: relative;
	padding: 120px 20px 160px;
	background: #fff;
	overflow: hidden;
}

.gallery-single__dots {
	position: absolute;
	top: 0;
	right: 0;
	width: 70%;
	height: 520px;
	background-image: radial-gradient(rgba(133, 216, 235, .28) 2px, transparent 2px);
	background-size: 10px 10px
}

.gallery-single__inner {
	position: relative;
	z-index: 2;
	width: min(920px, 94%);
	margin: auto
}

.gallery-article {
	padding: 65px 70px 80px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 12px 35px rgba(0, 0, 0, .09)
}

.gallery-article__meta {
	display: flex;
	align-items: center;
	gap: 15px
}

.gallery-article__meta time {
	letter-spacing: .1em;
}

.gallery-article__category {
	padding: 4px 14px;
	border-radius: 20px;
	background: #70CAC0;
	color: #fff;
	font-size: 12px
}

.gallery-article__title {
	margin-top: 22px;
	padding-bottom: 28px;
	border-bottom: 1px solid #d9e9e7;
	font-family: "Noto Serif JP", serif;
	font-size: 32px;
	font-weight: 500;
	line-height: 1.55
}

.gallery-article__thumbnail {
	margin-top: 45px;
	overflow: hidden;
	border-radius: 15px
}

.gallery-article__thumbnail img {
	display: block;
	width: 100%;
	height: auto
}

.gallery-article__content {
	margin-top: 50px;
	font-size: 15px;
	line-height: 2.1
}

.gallery-article__content p {
	margin-bottom: 2em
}

.gallery-article__content h2 {
	margin: 65px 0 28px;
	padding: 15px 20px;
	border-left: 7px solid #70CAC0;
	background: #edf9f7;
	font-size: 24px
}

.gallery-article__content h3 {
	margin: 50px 0 22px;
	padding-bottom: 12px;
	border-bottom: 2px solid #70CAC0;
	font-size: 20px
}

.gallery-article__content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px
}

.gallery-single-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 30px;
	margin-top: 60px
}

.gallery-single-nav__item a {
	display: flex;
	flex-direction: column;
	gap: 7px
}

.gallery-single-nav__item--next {
	text-align: right
}

.gallery-single-nav__item span {
	color: #70CAC0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .18em
}

.gallery-single-nav__item strong {
	font-size: 13px;
	font-weight: 400;
	line-height: 1.6
}

.gallery-single-nav__back {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 175px;
	height: 52px;
	border-radius: 30px;
	background: #FA9648;
	color: #fff;
	font-size: 14px;
	letter-spacing: .08em
}

.gallery-post-list {
	padding: 110px 20px 150px
}

.gallery-post-list__inner {
	width: min(1180px, 94%);
	margin: auto
}

.gallery-pagination {
	margin-top: 80px
}

.gallery-pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px
}

.gallery-pagination .page-numbers {
	display: grid;
	width: 42px;
	height: 42px;
	border: 1px solid #70CAC0;
	border-radius: 50%;
	color: #70CAC0;
	place-items: center
}

.gallery-pagination .page-numbers.current {
	background: #70CAC0;
	color: #fff
}

.gallery-pagination .prev,
.gallery-pagination .next {
	width: auto;
	padding: 0 20px;
	border-radius: 30px
}

@media(max-width:1024px) {
	.gallery-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr))
	}
}

@media(max-width:767px) {

	.gallery-archive {
		min-height: 0;
		padding: 85px 15px 140px
	}

	.gallery-archive__inner {
		width: 100%
	}

	.gallery-archive__dots {
		background-size: 8px 8px
	}

	.gallery-archive__dots--top {
		width: 100%;
		height: 520px
	}

	.gallery-archive__dots--middle {
		top: 700px;
		right: 0;
		width: 55%;
		height: 430px
	}

	.gallery-archive__deco--pink {
		top: 75px;
		left: 38%;
		width: 90px;
		height: 90px
	}

	.gallery-archive__deco--orange {
		top: 760px;
		left: 36%;
		width: 90px;
		height: 90px
	}

	.gallery-category+.gallery-category {
		margin-top: 150px
	}

	.gallery-category__heading {
		min-height: 100px;
		margin-bottom: 45px
	}

	.gallery-category__heading h2 {
		font-size: 23px
	}

	.gallery-category__heading::before {
		width: 95px;
		height: 95px
	}

	.gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 10px
	}

	.gallery-category__more {
		width: 225px;
		margin-top: 45px
	}

	.gallery-single__inner {
		width: 100%
	}

	.gallery-single__dots {
		width: 100%;
		height: 400px;
		background-size: 8px 8px
	}

	.gallery-article {
		padding: 38px 20px 50px;
		border-radius: 15px
	}

	.gallery-article__title {
		font-size: 23px
	}

	.gallery-article__thumbnail {
		margin-top: 30px
	}

	.gallery-article__content {
		margin-top: 35px;
		font-size: 14px
	}

	.gallery-article__content h2 {
		margin-top: 45px;
		font-size: 20px
	}

	.gallery-article__content h3 {
		margin-top: 38px;
		font-size: 18px
	}

	.gallery-single-nav {
		grid-template-columns: 1fr 1fr;
		gap: 25px 15px
	}

	.gallery-single-nav__back {
		grid-column: 1/3;
		grid-row: 2;
		width: 165px;
		margin: auto
	}

	.gallery-post-list {
		padding: 75px 15px 100px
	}
}

@media(max-width:425px) {
	.gallery-grid {
		grid-template-columns: 1fr;
		margin-top: 90px;
	}
}

.contact-page {
	overflow: hidden;
	background: #fff
}

.contact-intro {
	position: relative;
	padding: 120px 0 135px;
	background: #fff;
	overflow: hidden;
}

.contact-intro__dots {
	position: absolute;
	top: 0;
	right: 0;
	width: 72%;
	height: 100%;
	background-image: radial-gradient(rgba(133, 216, 235, .28) 2px, transparent 2px);
	background-size: 10px 10px
}

.contact-intro__inner {
	position: relative;
	z-index: 2;
	width: min(760px, 90%);
	margin: auto
}

.contact-intro__text {
	margin-top: 135px;
	font-weight: 500;
	line-height: 2.1
}

.contact-intro__text p+p {
	margin-top: 4px
}

.contact-intro__deco {
	position: absolute;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.contact-intro__deco--pink {
	top: 80px;
	left: 50%;
	width: 120px;
	height: 120px;
	background-image: url("../images/watercolor-red.png");
	transform: translateX(-10%)
}

.contact-intro__deco--blue {
	top: 20px;
	right: -25px;
	width: 155px;
	height: 155px;
	background-image: url("../images/watercolor-blue.png")
}

.contact-form-section {
	position: relative;
	min-height: 1150px;
	padding: 260px 0;
	overflow: hidden
}

.contact-form-section .lower-title--orange h2::before {
	right: 120px;
}

.contact-form-section__inner {
	position: relative;
	z-index: 2;
	width: min(900px, 92%);
	margin: auto
}

.contact-form-section__heading {
	text-align: center
}

.contact-form-section__heading h2 {
	font-family: "Noto Serif JP", serif;
	font-size: 32px;
	font-weight: 500;
	letter-spacing: .1em
}

.contact-form-section__heading::before {
	display: block;
	width: 115px;
	height: 100px;
	margin: 0 auto -70px;
	background: url("../images/watercolor-orange.png") center/contain no-repeat;
	content: ""
}

.contact-form-wrap {
	margin: 100px auto 0;
	max-width: 700px;
	width: 100%;
}

.hidden-fields-container,
.screen-reader-response {
	display: none;
}

.cf7-form {
	width: 100%
}

.cf7-row {
	display: grid;
	grid-template-columns: 230px minmax(0, 1fr);
	align-items: center;
	gap: 30px;
	margin-bottom: 38px
}

.cf7-row--textarea {
	align-items: start
}

.cf7-required {
	margin-right: 7px;
	color: #ff0000;
	font-weight: 500;
}

.cf7-field input,
.cf7-field textarea {
	display: block;
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 0;
	background: #F8F8F8;
	font: inherit
}

.cf7-field input {
	height: 40px;
	padding: 7px 10px
}

.cf7-field textarea {
	height: 180px;
	padding: 10px;
	resize: vertical
}

.cf7-field .wpcf7-form-control-wrap {
	display: block
}

.cf7-policy {
	width: min(760px, 100%);
	margin: 100px auto 0;
	padding: 24px 28px;
	border: 1px solid #777;
	background: #fff
}

.cf7-policy h3 {
	color: #ee6548;
	font-size: 18px;
	font-weight: 500
}

.cf7-policy p {
	margin-top: 15px;
	font-size: 12px;
	line-height: 2
}

.cf7-submit-wrap {
	position: relative;
	width: 330px;
	margin: 70px auto 0;
	transition: transform .3s ease, box-shadow .3s ease
}

.cf7-submit {
	display: block;
	width: 100%;
	height: 70px;
	padding: 0 55px 0 30px;
	border: 0;
	border-radius: 40px;
	background: #FA9648;
	color: #fff;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: .06em;
	cursor: pointer;
	transition: transform .3s ease, box-shadow .3s ease
}

.cf7-submit-wrap::before {
	position: absolute;
	top: 50%;
	right: 8px;
	z-index: 2;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #fff;
	content: "";
	transform: translateY(-50%);
	pointer-events: none;
}

.cf7-submit-wrap::after {
	position: absolute;
	top: 50%;
	right: 30px;
	z-index: 3;
	width: 16px;
	height: 16px;
	border-top: 2px solid #FA9648;
	border-right: 2px solid #FA9648;
	content: "";
	transform: translateY(-50%) rotate(45deg);
	pointer-events: none;
}

.cf7-submit:hover {
	box-shadow: 0 8px 20px rgba(255, 145, 77, .35);
}

.cf7-submit-wrap:hover {
	transform: translateY(-4px);
}

.wpcf7-spinner {
	position: absolute;
	margin: 12px 0 0 10px
}

.wpcf7-not-valid-tip {
	margin-top: 7px;
	font-size: 14px;
	font-weight: 500;
	color: #ff0000;
}

.wpcf7 form .wpcf7-response-output {
	margin: 35px 0 0;
	padding: 15px;
	border-width: 1px;
	font-size: 14px;
	font-weight: 500;
	color: #ff0000;
	line-height: 1.8
}

@media(max-width:767px) {

	.contact-intro {
		padding: 85px 15px 100px
	}

	.contact-intro__dots {
		width: 100%;
		background-size: 8px 8px
	}

	.contact-intro__inner {
		width: 100%
	}

	.contact-form-section h2 {
		font-size: 24px
	}

	.contact-intro__text {
		margin-top: 65px;
		font-size: 16px;
		line-height: 2
	}

	.contact-intro__deco--pink {
		top: 60px;
		width: 90px;
		height: 90px
	}

	.contact-intro__deco--blue {
		right: -40px;
		width: 110px;
		height: 110px
	}

	.contact-form-section {
		min-height: 0;
		padding: 150px 0;
	}

	.contact-form-section__inner {
		width: 100%
	}

	.contact-form-section__heading h2 {
		font-size: 24px
	}

	.contact-form-section__heading::before {
		width: 85px;
		height: 75px;
		margin-bottom: -53px
	}

	.contact-form-wrap {
		margin-top: 75px
	}

	.cf7-row {
		display: block;
		margin-bottom: 28px
	}

	.cf7-label {
		margin-bottom: 9px;
	}

	.cf7-field input {
		height: 44px
	}

	.cf7-field textarea {
		height: 170px
	}

	.cf7-policy {
		margin-top: 60px;
		padding: 20px 18px
	}

	.cf7-policy h3 {
		font-size: 16px
	}
}