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

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
figure {
	border: 0;
	font-size: 100%;
	font-weight: normal;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}

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

ol,
ul {
	list-style: none;
}

img {
	block-size: auto;
	max-inline-size: 100%;
	vertical-align: middle;
}

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

button {
	background: transparent;
	border: none;
	box-shadow: none;
	cursor: pointer;
	font: inherit;
	margin: 0;
	padding: 0;
}

input,
select,
textarea {
	color: inherit;
	font: inherit;
	vertical-align: top;
}

:where([style*="display:flex"],
[style*="display:inline-flex"],
[style*="display:grid"]) > * {
	min-inline-size: 0;
}

html {
	font-size: 62.5%;
}

body {
	background-color: #ffffff;
	color: #181818;
	font-family: "Noto Serif JP", serif;
	font-size: 1.8rem;
	font-weight: 200;
	line-height: 2.2777;
}

.l-wrapper {
	display: block;
	overflow-x: hidden;
}

.l-wrapper__header {
	inline-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
	position: fixed;
	z-index: 30;
}

.l-wrapper__drawer-button {
	inset-block-start: 3rem;
	inset-inline-end: 2.5rem;
	position: fixed;
	z-index: 70;
}

.l-wrapper__to-top {
	block-size: -moz-fit-content;
	block-size: fit-content;
	inline-size: -moz-fit-content;
	inline-size: fit-content;
	inset-block-end: 58px;
	inset-inline-end: 66px;
	opacity: 0;
	position: fixed;
	transform: translateY(10px);
	transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
	visibility: hidden;
	z-index: 10;
}

.l-wrapper__to-top.is-show {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
}

.l-inner {
	margin-inline: auto;
	max-inline-size: 100%;
	padding-inline: 2rem;
}

.c-to-top {
	aspect-ratio: 1/1;
	background: url(../img/icon_to-top.jpg) no-repeat center center/cover;
	display: block;
	inline-size: 70px;
	opacity: 1;
	transition: opacity 0.3s;
}

.c-to-top:focus-visible {
	opacity: 0.7;
}

.c-form-text {
	background: #ffffff;
	border: 1px solid #000;
	box-sizing: border-box;
	color: inherit;
	font: inherit;
	padding: 0.5rem 1.5rem;
	vertical-align: top;
	width: 100%;
}

.c-form-textarea {
	background: #ffffff;
	border: 1px solid #000;
	box-sizing: border-box;
	color: inherit;
	font: inherit;
	height: 13.3rem;
	padding: 0.5rem 1.5rem;
	vertical-align: top;
	width: 100%;
}

.c-button-default {
	background-color: #336d33;
	color: #fff;
	display: inline-block;
	font-weight: 400;
	inline-size: 37.4rem;
	max-inline-size: 100%;
	padding: 2.1rem 2rem;
	text-align: center;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 2rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
	opacity: 1;
	transition: opacity 0.3s;
}

.c-button-default:focus-visible {
	opacity: 0.7;
}

.c-button-default + .wpcf7-spinner {
	display: none !important;
}

.c-button-default:disabled {
	cursor: not-allowed;
}

.c-button-default--bg-white {
	background-color: #ffffff;
	border: 1px solid currentColor;
	color: #336d33;
}

.c-section-heading {
	font-size: 2.5rem;
	letter-spacing: 0.67em;
	line-height: 1.64;
}

.c-section-heading::after {
	color: #336d33;
	content: attr(data-en);
	display: block;
	font-family: "ivyora-text", serif;
	font-size: 2.2rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1.8636;
}

.c-section-heading--row {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 5.9rem;
	align-items: flex-end;
	align-items: center;
	column-gap: 5.9rem;
}

.c-section-heading--row::after {
	margin-block-start: 0;
}

.c-drawer-button {
	aspect-ratio: 1/1;
	background-color: transparent;
	border: none;
	display: none;
	inline-size: 4rem;
	opacity: 1;
	opacity: 1;
	overflow: hidden;
	padding: 0;
	transition: opacity 0.3s;
}

.c-drawer-button:focus-visible {
	opacity: 0.7;
}

.c-drawer-button.is-checked .c-drawer-button__bar:nth-of-type(1) {
	background-color: #ffffff;
	inset-block-start: 50%;
	transform: rotate(45deg);
}

.c-drawer-button.is-checked .c-drawer-button__bar:nth-of-type(2) {
	opacity: 0;
}

.c-drawer-button.is-checked .c-drawer-button__bar:nth-of-type(3) {
	background-color: #ffffff;
	inset-block-start: 50%;
	transform: rotate(-45deg);
}

.c-drawer-button__bar {
	--bar-height: 3px;
	background-color: #000;
	block-size: var(--bar-height);
	inline-size: 100%;
	inset-inline: 0;
	margin-inline: auto;
	position: absolute;
	transition: transform 0.3s linear, inset 0.3s linear, inline-size 0.3s linear, background 0.3s linear, opacity 0.3s linear;
}

.c-drawer-button__bar:nth-of-type(1) {
	inset-block-start: 0;
}

.c-drawer-button__bar:nth-of-type(2) {
	inset-block: 0;
	margin-block: auto;
}

.c-drawer-button__bar:nth-of-type(3) {
	inset-block-start: calc(100% - var(--bar-height));
}

.c-fade-in,
.c-fade-in-up,
.c-fade-in-down,
.c-fade-in-right,
.c-fade-in-left {
	opacity: 0;
}

.c-fade-in.is-in-view,
.c-fade-in-up.is-in-view,
.c-fade-in-down.is-in-view,
.c-fade-in-right.is-in-view,
.c-fade-in-left.is-in-view {
	opacity: 1;
}

.c-fade-in {
	transition: opacity 1s;
}

.c-fade-in-up {
	transform: translateY(30px);
	transition: opacity 1s, transform 1s;
}

.c-fade-in-up.is-in-view {
	transform: translateY(0);
}

.c-fade-in-down {
	transform: translateY(-24px);
	transition: opacity 1s, transform 1s;
}

.c-fade-in-down.is-in-view {
	transform: translateY(0);
}

.c-fade-in-right {
	transform: translateX(-300px);
	transition: opacity 1s, transform 1s;
}

.c-fade-in-right.is-in-view {
	transform: translateY(0);
}

.c-fade-in-left {
	transform: translateX(300px);
	transition: opacity 1s, transform 1s;
}

.c-fade-in-left.is-in-view {
	transform: translateY(0);
}

.c-form-acceptance {
	display: inline-block;
	position: relative;
}

.c-form-acceptance .wpcf7-acceptance label {
	cursor: pointer;
}

.c-form-acceptance .wpcf7-acceptance input {
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	clip: rect(0 0 0 0);
	border: 0;
	clip-path: inset(50%);
	white-space: nowrap;
}

.c-form-acceptance .wpcf7-acceptance input:checked + .wpcf7-list-item-label::after {
	opacity: 1;
}

.c-form-acceptance .wpcf7-acceptance input:focus-visible + .wpcf7-list-item-label::before {
	border: 2px solid #2c70d2;
}

.c-form-acceptance .wpcf7-acceptance .wpcf7-list-item-label {
	display: block;
	line-height: 1.5;
	padding-inline-start: 63px;
	position: relative;
	text-align: start;
}

.c-form-acceptance .wpcf7-acceptance .wpcf7-list-item-label::before,
.c-form-acceptance .wpcf7-acceptance .wpcf7-list-item-label::after {
	content: "";
	inset-block: 0;
	margin-block: auto;
	position: absolute;
}

.c-form-acceptance .wpcf7-acceptance .wpcf7-list-item-label::before {
	block-size: 25px;
	border: 1px solid #000;
	inline-size: 25px;
	inset-inline-start: 0;
}

.c-form-acceptance .wpcf7-acceptance .wpcf7-list-item-label::after {
	block-size: 7px;
	border-block-end: 2px solid #336d33;
	border-inline-start: 2px solid #336d33;
	inline-size: 12px;
	inset-block-start: -3px;
	inset-inline-start: 6px;
	opacity: 0;
	transform: rotate(-45deg);
}

.c-confirm-area {
	display: none;
	scroll-margin-top: 100px;
}

.c-confirm-area + .wpcf7-response-output {
	display: none;
}

.c-confirm-area__heading {
	font-size: 2.4rem;
}

.c-confirm-area__buttons {
	display: flex;
	flex-direction: row;
	justify-content: center;
	-moz-column-gap: 10rem;
	column-gap: 10rem;
}

.p-header {
	block-size: 10rem;
	color: #333;
	display: flex;
}

.p-header__inner {
	inline-size: 186.2rem;
	margin-inline-start: auto;
	max-inline-size: 100%;
	padding-inline-start: 2rem;
}

.p-header__contents {
	align-items: center;
	block-size: 100%;
	display: flex;
	justify-content: space-between;
}

.p-header__logo {
	inline-size: 242px;
}

.p-header__logo-link {
	opacity: 1;
	transition: opacity 0.3s;
}

.p-header__logo-link:focus-visible {
	opacity: 0.7;
}

.p-header__right {
	block-size: 100%;
	display: flex;
	justify-content: end;
}

.p-header__lists {
	align-items: center;
	display: flex;
	-moz-column-gap: 7rem;
	block-size: 100%;
	column-gap: 7rem;
}

.p-header__nav-link {
	font-weight: 500;
	letter-spacing: 0.25em;
	opacity: 1;
	padding-inline: 0.5rem;
	transition: opacity 0.3s;
}

.p-header__nav-link:focus-visible {
	opacity: 0.7;
}

.p-header__sns {
	margin-block: auto;
	margin-inline-start: 11.6rem;
}

.p-header__sns-link {
	display: block;
	inline-size: 40px;
	opacity: 1;
	transition: opacity 0.3s;
}

.p-header__sns-link:focus-visible {
	opacity: 0.7;
}

.p-header__contact {
	margin-inline-start: 10.2rem;
}

.p-header__contact-button {
	align-items: center;
	background-color: #336d33;
	block-size: 100%;
	border: 12px solid #669266;
	color: #fff;
	display: flex;
	font-family: "ivyora-text", serif;
	font-weight: 400;
	inline-size: 30rem;
	justify-content: center;
	letter-spacing: 0.2em;
	opacity: 1;
	text-align: center;
	transition: opacity 0.3s;
}

.p-header__contact-button:focus-visible {
	opacity: 0.7;
}

.p-mv-top {
	block-size: 941px;
	inline-size: 100%;
	padding-block-start: 10rem;
}

.p-mv-top__contents {
	align-items: center;
	block-size: 100%;
	display: flex;
	justify-content: center;
	position: relative;
	z-index: 1;
}

.p-mv-top__heading-wrap {
	padding-block-end: 4rem;
}

.p-mv-top__heading {
	align-items: center;
	background-color: rgba(51, 109, 51, 0.85);
	block-size: 8rem;
	color: #fff;
	display: flex;
	font-family: "source-han-serif-jp-subset", sans-serif;
	font-size: 2.5rem;
	font-weight: 200;
	letter-spacing: 0.45em;
	padding-inline-start: 2.9rem;
	writing-mode: vertical-rl; /* 縦書き（右→左） */
}

.p-footer {
	background-color: #ffffff;
	color: #333;
	padding-block: 6.8rem;
}

.p-footer__inner {
	block-size: 100%;
	inline-size: 190.6rem;
	margin-inline-end: auto;
	max-inline-size: 100%;
	padding-inline: 5.4rem calc(2rem + 136px);
}

.p-footer__contents {
	align-items: center;
	display: flex;
	flex-direction: row;
	justify-content: center;
	-moz-column-gap: 8.6rem;
	block-size: 100%;
	column-gap: 8.6rem;
}

.p-footer__wrap {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 5.5rem;
	align-items: center;
	column-gap: 5.5rem;
}

.p-footer__info {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 5.8rem;
	align-items: center;
	column-gap: 5.8rem;
}

.p-footer__logo {
	inline-size: 287px;
}

.p-footer__logo-link {
	opacity: 1;
	transition: opacity 0.3s;
}

.p-footer__logo-link:focus-visible {
	opacity: 0.7;
}

.p-footer__sns {
	margin-inline-start: 0.5rem;
}

.p-footer__sns-link {
	display: block;
	inline-size: 40px;
	opacity: 1;
	transition: opacity 0.3s;
}

.p-footer__sns-link:focus-visible {
	opacity: 0.7;
}

.p-footer__lists {
	align-items: center;
	display: flex;
	flex-direction: row;
	-moz-column-gap: 6rem;
	block-size: 100%;
	column-gap: 6rem;
}

.p-footer__list-link {
	font-weight: 500;
	letter-spacing: 0.25em;
	opacity: 1;
	padding-block: 0.5rem;
	padding-inline: 0.5rem;
	transition: opacity 0.3s;
}

.p-footer__list-link:focus-visible {
	opacity: 0.7;
}

.p-footer__copy {
	color: #888;
	font-size: 1.4rem;
	font-weight: 500;
}

.p-mv-low {
	background: url(../img/low_mv.jpg) no-repeat center center/cover;
	block-size: 500px;
	inline-size: 100%;
	padding-block-start: 10rem;
}

.p-mv-low__contents {
	align-items: center;
	block-size: 100%;
	display: flex;
	justify-content: center;
}

.p-mv-low__heading {
	background-color: rgba(51, 109, 51, 0.85);
	color: #fff;
	display: flex;
	font-size: 2.5rem;
	inline-size: 50rem;
	justify-content: center;
	letter-spacing: 0.67em;
	line-height: 1;
	padding-block: 2.8rem;
}

.p-business {
	padding-block: 11.4rem 14.3rem;
	text-align: center;
}

.p-business__inner {
	inline-size: 162rem;
}

.p-business__text {
	display: flex;
	justify-content: center;
}

.p-business__description {
	letter-spacing: 0.09em;
}

.p-business__sections {
	margin-block-start: 7.4rem;
}

.p-business-section {
	background-color: #f5f5f5;
	padding: 12.8rem 18.5rem 13.2rem 17.1rem;
}

.p-business-section--bg-white {
	background-color: #ffffff;
}

.p-business-section__contents {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 6.4rem;
	column-gap: 6.4rem;
}

.p-business-section__contents--row-reverse {
	flex-direction: row-reverse;
}

.p-business-section__text {
	align-items: start;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-inline-size: 50rem;
	row-gap: 6.7rem;
	text-align: start;
}

.p-business-section__img {
	flex: 1;
}

.p-company {
	padding-block: 12.2rem 16.8rem;
}

.p-company__inner {
	inline-size: 112rem;
}

.p-company__dl {
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
}

.p-company__row {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 19.8rem;
	box-shadow: 0px 5px 6px 0px rgba(0, 0, 0, 0.13);
	column-gap: 19.8rem;
	padding: 2.5rem 4rem;
}

.p-company__dt {
	color: #336d33;
	inline-size: 14.3rem;
	letter-spacing: 0.06em;
	line-height: 2.2222;
}

.p-company__dd {
	flex-grow: 1;
	letter-spacing: 0.06em;
	line-height: 2.2222;
}

.p-contact {
	font-family: "Noto Sans JP", sans-serif;
	padding-block: 7.7rem 7.1rem;
}

.p-contact form.wpcf7-form {
	scroll-margin-top: 100px;
}

.p-contact__inner {
	inline-size: 113.4rem;
}

.p-contact__description {
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 2;
}

.p-contact__contents {
	margin-block-start: 12.2rem;
}

.p-contact__thanks-button {
	margin-block-start: 8rem;
	text-align: center;
}

.p-form-field {
	align-items: center;
	display: flex;
	flex-direction: row;
	-moz-column-gap: 5.4rem;
	column-gap: 5.4rem;
}

.p-form-field--align-start {
	align-items: start;
}

.p-form-field--align-start .p-form-field__head {
	padding-block-start: 1rem;
}

.p-form-field__head {
	flex-shrink: 0;
	inline-size: 23.2rem;
}

.p-form-field__label {
	align-items: center;
	display: flex;
	flex-direction: row;
	-moz-column-gap: 3.3rem;
	column-gap: 3.3rem;
}

.p-form-field__head-tag {
	background-color: #336d33;
	color: #fff;
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 100%;
	padding: 0.5rem 0.8rem;
	position: relative;
}

.p-form-field__head-tag::after {
	background-color: #336d33;
	block-size: 5px;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	content: "";
	display: block;
	inline-size: 5px;
	inset-block: 0;
	inset-inline-start: 100%;
	margin-block: auto;
	position: absolute;
}

.p-form-field__body {
	flex-grow: 1;
}

.p-privacy__text {
	display: flex;
	flex-direction: column;
	row-gap: 7rem;
}

.p-privacy__description {
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
}

.p-privacy__policy {
	block-size: 17.2rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.6666;
	overflow-y: scroll;
	padding-inline-end: 4.3rem;
}

.p-privacy__policy::-webkit-scrollbar {
	inline-size: 10px;
}

.p-privacy__policy::-webkit-scrollbar-thumb {
	background: #333; /* ハンドルの色 */
}

.p-privacy__policy::-webkit-scrollbar-track {
	background: #dbdbdb; /* ハンドルの色 */
}

.p-privacy__checkbox {
	margin-block-start: 10.1rem;
	text-align: center;
}

.p-contact-form__dl {
	display: flex;
	flex-direction: column;
	row-gap: 1.3rem;
}

.p-contact-form__privacy {
	margin-block-start: 20.5rem;
}

.p-contact-form__button {
	margin-block-start: 9.5rem;
	text-align: center;
}

.p-works-single {
	padding-block: 11.5rem 15rem;
}

.p-works-single__inner {
	inline-size: 156rem;
}

.p-works-single__contents {
	display: flex;
	flex-direction: column;
	padding-inline: 10rem;
	row-gap: 10.3rem;
}

.p-works-single__slider {
	padding-inline: 10rem;
}

.p-works-single__imgs {
	display: flex;
	flex-direction: column;
	row-gap: 3.3rem;
}

.p-works-single__main-img {
	aspect-ratio: 1320/700;
	inline-size: 100%;
	overflow: hidden;
}

.p-works-single__main-img img {
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center center;
	block-size: 100%;
	inline-size: 100%;
	object-position: center center;
}

.p-works-single__sub-imgs {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	-moz-column-gap: 4.5rem;
	column-gap: 4.5rem;
	row-gap: 3rem;
}

.p-works-single__sub-img {
	aspect-ratio: 150/90;
	background: none; /* buttonのデフォルトリセット */
	border: none;
	cursor: pointer;
	inline-size: 100%;
	overflow: hidden;
	padding: 0;
}

.p-works-single__sub-img img {
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center center;
	block-size: 100%;
	inline-size: 100%;
	object-position: center center;
}

.p-works-single__sub-img.is-current {
	border: 3px solid red;
	transition: border 0.3s;
}

.p-works-single__description {
	font-weight: 300;
	letter-spacing: 0.09em;
	margin-block-start: 6.5rem;
}

.p-top-contact {
	background-color: #f5f5f5;
	padding-block-start: 11rem;
}

.p-top-contact__contents {
	display: flex;
	flex-direction: column;
	row-gap: 9rem;
}

.p-top-contact__inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: 1fr;
	inline-size: 116rem;
	grid-column-gap: 0px;
	grid-row-gap: 0px;
}

.p-top-contact__text-left {
	display: flex;
	flex-direction: column;
	row-gap: 6.2rem;
}

.p-top-contact__description {
	letter-spacing: 0.06em;
}

.p-top-contact__text-right {
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
}

.p-top-contact__button-tel {
	background-color: #336d33;
	box-shadow: 0px 5px 6px 0px rgba(0, 0, 0, 0.13);
	color: #fff;
	display: inline-block;
	font-family: "helvetica-neue-lt-pro", sans-serif;
	font-size: 5rem;
	font-weight: 400;
	inline-size: 56rem;
	letter-spacing: 0.1em;
	line-height: 1;
	max-inline-size: 100%;
	opacity: 1;
	padding-block: 1.75rem;
	text-align: center;
	transition: opacity 0.3s;
}

.p-top-contact__button-tel:focus-visible {
	opacity: 0.7;
}

.p-top-contact__button-mail {
	display: inline-flex;
	flex-direction: row;
	-moz-column-gap: 4.4rem;
	align-items: center;
	background-color: #ffffff;
	box-shadow: 0px 5px 6px 0px rgba(0, 0, 0, 0.13);
	color: #336d33;
	column-gap: 4.4rem;
	font-weight: 200;
	inline-size: 56rem;
	justify-content: center;
	letter-spacing: 0.06em;
	max-inline-size: 100%;
	opacity: 1;
	padding-block: 1.75rem;
	transition: opacity 0.3s;
}

.p-top-contact__button-mail:focus-visible {
	opacity: 0.7;
}

.p-top-contact__button-mail::after {
	aspect-ratio: 1/1;
	background: url(../img/icon_arrow-right.png) no-repeat center center/cover;
	content: "";
	inline-size: 50px;
}

.p-top-contact__map {
	aspect-ratio: 1920/500;
	inline-size: 100%;
}

.p-top-contact__map iframe {
	block-size: 100%;
	filter: grayscale(100%);
	inline-size: 100%;
	transition: filter 0.3s;
	vertical-align: top;
}

.p-top-message {
	block-size: 87.4rem;
	padding-block-start: 10.8rem;
}

.p-top-message__inner {
	block-size: 100%;
	inline-size: 156.2rem;
}

.p-top-message__contents {
	block-size: 100%;
	position: relative;
}

.p-top-message__img01 {
	inline-size: 591px;
	inset-block-start: 0;
	inset-inline-start: 0;
	position: absolute;
}

.p-top-message__img02 {
	display: none;
	inset-block-end: 30px;
	inset-inline-end: 0;
	position: absolute;
}

.p-top-message__message {
	block-size: -moz-fit-content;
	block-size: fit-content;
	display: flex;
	flex-direction: column; /* 縦書きでもこれでOK */
	font-family: "source-han-serif-jp-subset", sans-serif;
	font-size: 4rem;
	font-weight: 400;
	inline-size: 58rem;
	inset-block: 0;
	inset-inline-end: 0;
	letter-spacing: 0.45em;
	line-height: 2.5;
	margin-block: auto;
	position: absolute;
	text-orientation: upright; /* 文字を正立させる */
	writing-mode: vertical-rl; /* 縦書き（右→左） */
}

.p-top-message__message-top {
	display: inline-block;
}

.p-top-message__message-bottom {
	display: inline-block;
	margin-inline-start: auto;
}

.p-top-greeting {
	padding-block-end: 14.5rem;
}

.p-top-greeting__inner {
	inline-size: 157.6rem;
}

.p-top-greeting__contents {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: 1fr;
	grid-column-gap: 0px;
	grid-row-gap: 0px;
}

.p-top-greeting__text {
	display: flex;
	flex-direction: column;
	inline-size: 56rem;
	margin-inline-start: auto;
	row-gap: 4rem;
}

.p-top-greeting__img {
	inline-size: 619px;
	margin-block: auto;
	margin-inline-start: auto;
}

.p-top-sections {
	background-color: #f5f5f5;
	padding-block: 16.2rem 15.4rem;
}

.p-top-sections__inner {
	inline-size: 156rem;
}

.p-top-sections__contents {
	display: flex;
	flex-direction: column;
	inline-size: 142rem;
	margin-inline-start: auto;
	max-inline-size: 100%;
	row-gap: 13rem;
}

.p-top-sections__section {
	position: relative;
}

.p-top-sections__section::before {
	content: "";
	display: block;
	padding-top: 50.2112676056%;
}

.p-top-sections__section--reverse .p-top-sections__text {
	inset-block-end: 0;
	inset-inline-end: 0;
	inset-inline-start: auto;
}

.p-top-sections__section--reverse .p-top-sections__img {
	inset-block-start: 0;
	inset-inline-end: auto;
	inset-inline-start: 0;
}

.p-top-sections__text {
	background-color: #ffffff;
	display: flex;
	flex-direction: column;
	inline-size: 75.5rem;
	inset-block-end: 0;
	inset-inline-start: 0;
	padding-block: 6.3rem;
	padding-inline-start: 7.4%;
	position: absolute;
	row-gap: 3.8rem;
}

.p-top-sections__link {
	color: #336d33;
	display: block;
	font-size: 2rem;
	letter-spacing: 0.43em;
	margin-inline-start: auto;
	opacity: 1;
	padding-inline-end: 24rem;
	position: relative;
	text-align: end;
	transition: opacity 0.3s;
}

.p-top-sections__link:focus-visible {
	opacity: 0.7;
}

.p-top-sections__link::after {
	background-color: #336d33;
	block-size: 1px;
	content: "";
	inline-size: 121px;
	inset-block: 0;
	inset-inline-end: 78px;
	margin-block: auto;
	position: absolute;
}

.p-top-sections__img {
	inline-size: 56.338028169%;
	inset-block-start: 0;
	inset-inline-end: 0;
	position: absolute;
}

.p-mv-slide {
	overflow: hidden;
	position: relative;
}

.p-mv-slide {
	overflow: hidden;
	position: relative;
}

.p-mv-slide__img {
	animation: slider-1 16s linear infinite;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	block-size: 100%;
	inline-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
	opacity: 0;
	position: absolute;
}

.p-mv-slide__img:nth-child(1) {
	animation-delay: 0s;
	background-image: url(../img/top_mv.jpg);
}

.p-mv-slide__img:nth-child(2) {
	animation-delay: 8s;
	background-image: url(../img/top_mv.jpg);
}

.p-top-works {
	padding-block: 16.1rem 12.6rem;
	text-align: center;
}

.p-top-works__contents {
	display: flex;
	flex-direction: column;
	row-gap: 10.5rem;
}

.p-top-works__slide {
	margin-inline: -2rem;
}

.p-works-slide__link {
	aspect-ratio: 384/500;
	display: block;
	inline-size: 100%;
	overflow: hidden;
}

.p-works-slide__link img {
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center center;
	block-size: 100%;
	inline-size: 100%;
	object-position: center center;
	transition: transform 0.3s;
}

.p-works-slide__link:focus-visible img {
	transform: scale(1.2);
}

.p-drawer-contents {
	color: #fff;
	inset: 0;
	pointer-events: none;
	position: fixed;
	z-index: 50;
}

.p-drawer-contents__container {
	background: #336d33;
	block-size: 100%;
	inline-size: 30rem;
	inset-block-start: 0;
	inset-inline-end: 0;
	max-inline-size: 100%;
	opacity: 0;
	padding-block-start: 10rem;
	pointer-events: none;
	position: fixed;
	transform: translateX(100%);
	transition: opacity 0.3s linear, visibility 0.3s linear, transform 0.3s linear;
	visibility: hidden;
	z-index: 50;
}

.p-drawer-contents__container.is-show {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0);
	visibility: visible;
}

.p-drawer-contents__nav-lists {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 3.2rem;
}

.p-drawer-contents__nav-list {
	line-height: 1;
}

.p-drawer-contents__nav-link {
	display: inline-block;
	font-weight: 500;
	letter-spacing: 0.25em;
	line-height: 1.5;
	opacity: 1;
	transition: opacity 0.3s;
}

.p-drawer-contents__nav-link:focus-visible {
	opacity: 0.7;
}

.p-drawer-contents__sns {
	margin-block-start: 5rem;
}

.p-drawer-contents__sns-lists {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 24px;
	column-gap: 24px;
	justify-content: center;
}

.p-drawer-contents__sns-link {
	display: block;
	inline-size: 40px;
	opacity: 1;
	position: relative;
	transition: opacity 0.3s;
}

.p-drawer-contents__sns-link:focus-visible {
	opacity: 0.7;
}

.p-drawer-contents__sns-link::after {
	aspect-ratio: 1/1;
	background-color: #fff;
	content: "";
	display: block;
	inline-size: 80%;
	inset: 0;
	margin: auto;
	position: absolute;
	z-index: -1;
}

.p-drawer-contents__cta {
	margin-block-start: 5rem;
	text-align: center;
}

.p-drawer-contents__contact-button {
	align-items: center;
	background-color: #336d33;
	block-size: 100%;
	border: 12px solid #669266;
	color: #fff;
	display: inline-flex;
	font-family: "ivyora-text", serif;
	font-weight: 400;
	inline-size: 30rem;
	justify-content: center;
	letter-spacing: 0.2em;
	opacity: 1;
	text-align: center;
	transition: opacity 0.3s;
}

.p-drawer-contents__contact-button:focus-visible {
	opacity: 0.7;
}

.p-drawer-contents__overlay {
	background: rgba(0, 0, 0, 0.7);
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	transition: opacity 0.3s, visibility 0.3s;
	visibility: hidden;
	z-index: 49;
}

.p-drawer-contents__overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.p-works-slider__slider-wrap {
	position: relative;
}

.p-works-slider__slider {
	text-align: center;
}

.p-works-slider__slider--img-contain .p-works-slider__slider-slide img {
	-o-object-fit: contain;
	object-fit: contain;
}

.p-works-slider__slider-slide {
	aspect-ratio: 1320/700;
	inline-size: 100%;
	overflow: hidden;
}

.p-works-slider__slider-slide img {
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center center;
	block-size: 100%;
	inline-size: 100%;
	object-position: center center;
}

.p-works-slider__button-next,
.p-works-slider__button-prev {
	aspect-ratio: 1/1;
	box-sizing: border-box !important;
	inline-size: 50px;
	inset-block: 0;
	margin-block: auto;
	opacity: 1 !important;
	overflow: hidden;
	position: absolute;
	transition: opacity 0.3s;
	z-index: 2 !important;
}

.p-works-slider__button-next svg,
.p-works-slider__button-prev svg {
	display: none !important;
}

.p-works-slider__button-next::after,
.p-works-slider__button-prev::after {
	aspect-ratio: 1/1;
	border-right: solid 10px #336d33;
	border-top: solid 10px #336d33;
	content: "";
	inline-size: 30px;
	inset: 0;
	margin: auto;
	position: absolute;
	transition: 0.3s;
}

.p-works-slider__button-next:focus-visible,
.p-works-slider__button-prev:focus-visible {
	opacity: 0.7 !important;
}

.p-works-slider__button-prev {
	inset-inline-start: -100px !important;
}

.p-works-slider__button-prev::after {
	transform: translateX(25%) rotate(-135deg);
}

.p-works-slider__button-next {
	inset-inline-end: -100px !important;
}

.p-works-slider__button-next::after {
	transform: translateX(-25%) rotate(45deg);
}

.p-works-slider__thumbnail {
	margin-block-start: 3.3rem;
	overflow: hidden;
	width: 100%;
}

.p-works-slider__thumbnail-wrapper {
	display: flex !important;
	width: 100% !important;
}

.p-works-slider__thumbnail-wrapper-slide {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	aspect-ratio: 150/90;
	background: transparent;
	border: none;
	cursor: pointer;
	margin: 0;
	opacity: 1 !important;
	overflow: hidden;
	overflow: hidden;
	padding: 0;
	position: relative;
}

.p-works-slider__thumbnail-wrapper-slide::before {
	background-color: #307bbf;
	block-size: 3px;
	content: "";
	inline-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
	position: absolute;
	transform: scale(0, 1);
	transform-origin: center top;
	transition: transform 0.3s;
}

.p-works-slider__thumbnail-wrapper-slide::after {
	background-color: rgba(0, 0, 0, 0.5);
	block-size: 100%;
	content: "";
	inline-size: 100%;
	inset-block-start: 0;
	inset-inline-start: 0;
	position: absolute;
	transition: background 0.3s, opacity 0.3s;
}

.p-works-slider__thumbnail-wrapper-slide.swiper-slide-thumb-active::after {
	background-color: transparent;
}

.p-works-slider__thumbnail-wrapper-slide.swiper-slide-thumb-active::before {
	transform: scale(1, 1);
	transform-origin: center top;
}

.p-works-slider__thumbnail-wrapper-slide img {
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center center;
	block-size: 100%;
	inline-size: 100%;
	object-position: center center;
}

.p-works-slider__thumbnail-wrapper-slide:focus-visible::before {
	transform: scale(1, 1);
	transform-origin: center top;
}

.p-works-slider__thumbnail-wrapper-slide:focus-visible::after {
	background-color: transparent;
}

.u-inline-block {
	display: inline-block;
	font-weight: inherit;
}

.u-visually-hidden {
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	clip: rect(0 0 0 0);
	border: 0;
	clip-path: inset(50%);
	white-space: nowrap;
}

@media (hover: hover) {

.c-to-top:hover {
	opacity: 0.7;
}

.c-button-default:hover {
	opacity: 0.7;
}

.c-drawer-button:hover {
	opacity: 0.7;
}

.p-header__logo-link:hover {
	opacity: 0.7;
}

.p-header__nav-link:hover {
	opacity: 0.7;
}

.p-header__sns-link:hover {
	opacity: 0.7;
}

.p-header__contact-button:hover {
	opacity: 0.7;
}

.p-footer__logo-link:hover {
	opacity: 0.7;
}

.p-footer__sns-link:hover {
	opacity: 0.7;
}

.p-footer__list-link:hover {
	opacity: 0.7;
}

.p-top-contact__button-tel:hover {
	opacity: 0.7;
}

.p-top-contact__button-mail:hover {
	opacity: 0.7;
}

.p-top-contact__map iframe:hover {
	filter: grayscale(0);
}

.p-top-sections__link:hover {
	opacity: 0.7;
}

.p-works-slide__link:hover img {
	transform: scale(1.2);
}

.p-drawer-contents__nav-link:hover {
	opacity: 0.7;
}

.p-drawer-contents__sns-link:hover {
	opacity: 0.7;
}

.p-drawer-contents__contact-button:hover {
	opacity: 0.7;
}

.p-works-slider__button-next:hover,
.p-works-slider__button-prev:hover {
	opacity: 0.7 !important;
}

.p-works-slider__thumbnail-wrapper-slide:hover::before {
	transform: scale(1, 1);
	transform-origin: center top;
}

.p-works-slider__thumbnail-wrapper-slide:hover::after {
	background-color: transparent;
}

}

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

.l-wrapper__to-top {
	inset-inline-end: 40px;
}

.p-footer {
	padding-block: 4rem;
}

.p-footer__inner {
	padding-inline: 2rem;
}

.p-footer__contents {
	flex-direction: column;
	justify-content: center;
	row-gap: 3rem;
}

.p-footer__lists {
	-moz-column-gap: 4rem;
	column-gap: 4rem;
}

}

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

.c-section-heading--row {
	-moz-column-gap: 4rem;
	column-gap: 4rem;
}

.p-header__logo {
	inline-size: 200px;
}

.p-header__lists {
	-moz-column-gap: 4rem;
	column-gap: 4rem;
}

.p-header__sns {
	margin-inline-start: 6rem;
}

.p-header__contact {
	margin-inline-start: 6rem;
}

.p-header__contact-button {
	inline-size: 20rem;
}

.p-footer__wrap {
	flex-direction: column;
	row-gap: 4rem;
}

.p-business-section {
	padding: 8rem;
}

.p-business-section__contents {
	-moz-column-gap: 4rem;
	column-gap: 4rem;
}

.p-works-single__contents {
	padding-inline: 5rem;
}

.p-works-single__sub-imgs {
	-moz-column-gap: 3rem;
	column-gap: 3rem;
}

.p-top-contact__button-tel {
	font-size: 4rem;
	inline-size: 40rem;
}

.p-top-contact__button-mail {
	inline-size: 40rem;
}

.p-top-message__inner {
	padding-inline: 6rem;
}

.p-top-message__img01 {
	inline-size: 400px;
}

.p-top-greeting__img {
	inline-size: 90%;
}

.p-top-sections__contents {
	padding-inline-start: 5rem;
}

.p-top-sections__section::before {
	padding-top: 63.3802816901%;
}

.p-top-sections__text {
	inline-size: auto;
	padding: 4rem;
}

.p-top-sections__img {
	inline-size: 500px;
}

.p-drawer-contents__contact-button {
	inline-size: 20rem;
}

.p-works-slider__button-prev {
	inset-inline-start: -50px !important;
}

.p-works-slider__button-next {
	inset-inline-end: -50px !important;
}

}

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

.c-section-heading::after {
	margin-block-start: 1rem;
}

.c-section-heading--row {
	flex-direction: column;
}

.c-drawer-button {
	display: block;
}

.c-fade-in {
	transition: none;
}

.c-fade-in-up {
	transition: none;
}

.c-fade-in-down {
	transition: none;
}

.c-fade-in-right {
	transition: none;
}

.c-fade-in-left {
	transition: none;
}

.c-confirm-area__buttons {
	-moz-column-gap: 6rem;
	column-gap: 6rem;
}

.p-header__right {
	display: none;
}

.p-footer__lists {
	flex-direction: column;
	row-gap: 2rem;
}

.p-business-section {
	padding: 8rem 5rem;
}

.p-business-section__contents {
	flex-direction: column;
	row-gap: 4rem;
}

.p-business-section__text {
	min-inline-size: 0;
}

.p-company__row {
	-moz-column-gap: 10rem;
	column-gap: 10rem;
}

.p-contact__contents {
	margin-block-start: 8rem;
}

.p-form-field {
	-moz-column-gap: 3rem;
	column-gap: 3rem;
}

.p-form-field__label {
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
}

.p-privacy__text {
	row-gap: 6rem;
}

.p-privacy__checkbox {
	margin-block-start: 6rem;
}

.p-contact-form__privacy {
	margin-block-start: 10rem;
}

.p-contact-form__button {
	margin-block-start: 6rem;
}

.p-works-single__sub-imgs {
	grid-template-columns: repeat(5, 1fr);
}

.p-top-contact__text {
	text-align: center;
}

.p-top-contact__inner {
	grid-template-columns: 1fr;
	grid-template-rows: repeat(2, 1fr);
	grid-column-gap: 0px;
	grid-row-gap: 0px;
}

.p-top-contact__text-right {
	justify-content: center;
}

.p-top-contact__map {
	aspect-ratio: 1920/700;
}

.p-top-message__img01 {
	inline-size: 300px;
}

.p-top-greeting__text {
	inline-size: 45rem;
}

.p-top-greeting__img {
	inline-size: 95%;
}

.p-top-sections__contents {
	padding-inline-start: 0;
}

.p-top-sections__section {
	display: flex;
	flex-direction: column-reverse;
}

.p-top-sections__section::before {
	display: none;
}

.p-top-sections__text {
	position: static;
}

.p-top-sections__link {
	padding-inline-end: 14rem;
}

.p-top-sections__link::after {
	inset-inline-end: 0;
}

.p-top-sections__img {
	inline-size: 100%;
	position: static;
}

}

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

.l-wrapper__to-top {
	inset-block-end: 20px;
	inset-inline-end: 20px;
}

.l-inner {
	padding-inline: 2rem;
}

.c-to-top {
	inline-size: 40px;
}

.c-confirm-area__buttons {
	align-items: center;
	flex-direction: column;
	row-gap: 4rem;
}

.p-footer__logo {
	inline-size: 200px;
}

.p-mv-low__heading {
	inline-size: 100%;
	max-inline-size: 35rem;
}

.p-business {
	padding-block: 6rem;
	text-align: start;
}

.p-business-section {
	padding: 2rem;
}

.p-company {
	padding-block: 8rem;
}

.p-company__row {
	flex-direction: column;
	padding: 2rem 2rem;
}

.p-contact {
	padding-block: 6rem;
}

.p-contact__contents {
	margin-block-start: 6rem;
}

.p-contact__thanks-button {
	margin-block-start: 4rem;
}

.p-form-field {
	align-items: start;
	flex-direction: column;
}

.p-form-field--align-start .p-form-field__head {
	padding-block-start: 0;
}

.p-form-field__body {
	inline-size: 100%;
}

.p-privacy__text {
	row-gap: 4rem;
}

.p-privacy__checkbox {
	margin-block-start: 4rem;
}

.p-contact-form__privacy {
	margin-block-start: 6rem;
}

.p-contact-form__button {
	margin-block-start: 4rem;
}

.p-works-single {
	padding-block: 6rem;
}

.p-works-single__contents {
	row-gap: 6rem;
}

.p-works-single__contents {
	padding-inline: 0;
}

.p-works-single__sub-imgs {
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 2rem;
	column-gap: 2rem;
	row-gap: 2rem;
}

.p-works-single__description {
	margin-block-start: 4rem;
}

.p-top-contact__map {
	aspect-ratio: 1920/960;
}

.p-top-contact__map iframe {
	filter: grayscale(0);
}

.p-top-message {
	padding-block-start: 5rem;
}

.p-top-message__img02 {
	display: block;
	inline-size: 300px;
}

.p-top-message__message {
	font-size: 2.5rem;
	inline-size: 36rem;
	inset-inline: 0;
	margin-inline: auto;
}

.p-top-greeting {
	padding-block-end: 8rem;
}

.p-top-greeting__contents {
	display: block;
}

.p-top-greeting__text {
	inline-size: auto;
}

.p-top-greeting__img {
	display: none;
}

.p-top-sections {
	padding-block: 8rem;
}

.p-top-sections__text {
	padding: 2rem;
}

.p-top-sections__link {
	padding-inline-end: 8rem;
}

.p-top-sections__link::after {
	inline-size: 60px;
}

.p-top-works {
	padding-block: 8rem;
}

.p-top-works__contents {
	row-gap: 6rem;
}

.p-works-slider__button-prev {
	inset-inline-start: -20px !important;
}

.p-works-slider__button-next {
	inset-inline-end: -20px !important;
}

}

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

.p-footer {
	padding-block-end: 6rem;
}

.p-top-contact__button-tel {
	font-size: 3rem;
	inline-size: 100%;
}

.p-top-contact__button-mail {
	inline-size: 100%;
}

.p-top-contact__button-mail::after {
	display: none;
}

.p-top-message__img01 {
	inline-size: 250px;
}

.p-top-message__img02 {
	inline-size: 250px;
}

}

@keyframes slider-1 {

0% {
	opacity: 0;
}

10% {
	opacity: 1;
}

45% {
	opacity: 1;
}

55% {
	opacity: 0;
}

100% {
	opacity: 0;
}

}

