@charset "UTF-8";
/*
Theme Name: emakoubou
Version: 1.0.0
*/

::after,
::before,
* {
	--font-size: calc((var(--fs) / 16) * 1rem);
	font-size: var(--font-size);
}

html {
	scroll-behavior: smooth;
}

body {
	--container: 1130px;
	color: var(--color-body-1);
	font-family: var(--font-family);
	line-height: calc(28 / 16);
	--fs: var(--p)
}

body.home {
	background: #FFF7ED;
}

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

a {
	color: var(--color-body-1);
	text-decoration: none;
}

:where(a, button):hover {
	opacity: .7;
}

[id] {
	scroll-margin-top: 100px;
}

@media(max-width: 991px) {
	body.noscroll {
		overflow: hidden;
		touch-action: pinch-zoom;
	}
}

@media (min-width: 768px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}


@media(max-width: 767px) {
	[id] {
		scroll-margin-top: 75px;
	}
}

.container {
	padding-right: var(--padding);
	padding-left: var(--padding);
	max-width: calc(var(--container) + var(--padding) + var(--padding));
}

/*		ヘッダー		*/

.header {
	position: absolute;
	top: 40px;
	left: 50%;
	width: 100%;
	transform: translateX(-50%);
	z-index: 500;
	transition: 0.3s;
}

.header.show {
	position: fixed;
	top: 0;
	padding-top: 15px;
	padding-bottom: 15px;
	animation: headershow .8s ease forwards;
}

@keyframes headershow {
	from {
		top: 0;
		background: #FFF;
		transform: translate(-50%,-100%);
	}
	to {
		top: 0;
		background: #FFF;
		transform: translateX(-50%);
	}
}

.header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 30px;
	max-width: calc(1275px + var(--padding) * 2);
	padding-right: var(--padding);
	padding-left: var(--padding);
	margin-inline: auto;
}

.header-menu {
	display: flex;
	gap: 20px;
}

.header-menu-list {
	display: flex;
	align-items: center;
	list-style: none;
	gap: 10px;
	background: #FFF;
	min-height: 54px;
	border-radius: 40px;
	padding: 5px 25px;
	margin-bottom: 0;
}

.header-menu-item {
	height: 100%;
}

.header-menu-link {
	position: relative;
	display: grid;
	align-items: center;
	--fs: 15;
	font-weight: 500;
	letter-spacing: 0.05em;
	cursor: pointer;
	height: 100%;
	padding: 5px 10px;
}

.header-menu-link:hover {
	opacity: 0.6;
}

.header-menu-link:hover::before,
.header-menu-link:has( + .header-sub-menu:hover )::before {
	content: "";
	width: calc(100% - 20px);
	height: 1px;
	background: var(--color-theme-1);
	position: absolute;
	bottom: 5px;
	left: 50%;
	transform: translateX(-50%);
}

.header-sub-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
	max-width: 955px;
	width: 100%;
	background: #FFF;
	border: 1px solid var(--color-theme-1);
	border-radius: 15px;
	position: absolute;
	bottom: 0;
	left: 50%;
	padding: 10px 15px;
	margin-bottom: 0;
	box-shadow: 0 4px 4px 0 rgba(0,0,0,0.25);
	transform: translate(-50%,100%);
	transition: .4s ease-in-out;
	transition-delay: 0.1s;
	visibility: hidden;
	opacity: 0;
}

.header-sub-menu::before {
	content: "";
	width: calc(100% + 20px);
	height: calc(100% + 40px);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}

.header-menu-link:hover + .header-sub-menu,
.header-sub-menu:hover {
	bottom: -10px;
	opacity: 1;
	visibility: visible;
}

.header-sub-menu-link {
	position: relative;
	display: block;
	max-width: 320px;
	width: 100%;
	padding: 15px 30px;
}

.header-sub-menu-link::before {
	content: "";
	height: 70%;
	width: 0px;
	border-right: 1px dashed #767474;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(50%,-50%);
}

/* .header-sub-menu-link::after {
	content: "";
	width: 50%;
	aspect-ratio: 1 / 1;
	background: var(--theme-color);
	opacity: 0.5;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	filter: blur(10px);
	opacity: 0;
	visibility: hidden;
	transition: 0.3s;
	z-index: -1;
} */

.header-sub-menu-link:hover {
	opacity: 1;
}

.header-sub-menu-link:hover img {
	transform: scale(1.1);
}

/* .header-sub-menu-link:hover::after {
	opacity: 0.4;
	visibility: visible;
} */
	

.header-sub-menu li:nth-child(3) .header-sub-menu-link::before,
.header-sub-menu li:nth-child(5) .header-sub-menu-link::before {
	content: none;
}

.header-sub-menu-link img {
	display: block;
	margin-inline: auto;
	margin-bottom: 10px;
	transition: 0.2s;
}

.header-sub-menu-link p {
	--fs: 20;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}

.header-sub-menu-link span {
	position: relative;
	display: block;
	--fs: 14;
	line-height: 1.4;
	letter-spacing: 0.1em;
	font-weight: 500;
	color: #FFF;
	background: var(--theme-color);
	border-radius: 30px;
	padding: 0px 10px;
	margin-right: 35px;
}

.header-sub-menu-link span::after {
	content: "";
	width: 22px;
	aspect-ratio: 22 / 19;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
	background-color: var(--theme-color);
	position: absolute;
	top: 50%;
	right: -35px;
	transform: translateY(-50%);
}

.header-menu-quote {
	position: relative;
}

.header-menu-quote-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 165px;
	min-height: 54px;
	--fs: 15;
	font-weight: 500;
	color: #FFF;
	background: #000;
	border-radius: 30px;
	cursor: pointer;
}

.header-menu-quote-link::before {
	content: "";
	width: 15px;
	aspect-ratio: 15 / 22;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-quote.svg);
    mask-image: url(img/icon-quote.svg);
    background-color: #FFF;
}

.header-sub-menu-quote {
	width: 200px;
	background: #FFF;
	border: 1px solid var(--color-theme-1);
	border-radius: 15px;
	list-style: none;
	padding: 10px 15px;
	margin-bottom: 0;
	position: absolute;
	bottom: 0;
	left: 50%;
	box-shadow: 0 4px 4px 0 rgba(0,0,0,0.25);
	transform: translate(-50%,100%);
	transition: .4s ease-in-out;
	transition-delay: 0.1s;
	opacity: 0;
	visibility: hidden;
}

.header-sub-menu-quote::before {
	content: "";
	width: calc(100% + 20px);
	height: calc(100% + 40px);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}

.header-menu-quote-link:hover + .header-sub-menu-quote,
.header-sub-menu-quote:hover {
	bottom: -10px;
	opacity: 1;
	visibility: visible;
}

.header-sub-menu-quote a {
	display: block;
	--fs: 15;
	font-weight: 500;
	text-align: center;
	width: 100%;
	padding: 8px 0;
}

.header-sub-menu-quote li:not(:last-child) {
	border-bottom: 1px dashed #767474;
}

.global-nav-button {
	position: relative;
	width: 55px;
	aspect-ratio: 1 / 1;
	background: var(--color-theme-1);
	border: none;
	border-radius: 50%;
}

.global-nav-button span {
	width: 25px;
	height: 3px;
	background: #FFF;
	border-radius: 3px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	transition: 0.4s;
}

.global-nav-button span:nth-child(1) {
	transform: translate(-50%,calc(-50% - 8px));
}

.global-nav-button span:nth-child(2) {
	transform: translate(-50%,-50%);
}

.global-nav-button span:nth-child(3) {
	transform: translate(-50%,calc(-50% + 8px));
}

body.noscroll .global-nav-button span:nth-child(1) {
	transform: translate(-50%,-50%) rotate(45deg);
}

body.noscroll .global-nav-button span:nth-child(2) {
	display: none;
}

body.noscroll .global-nav-button span:nth-child(3) {
	transform: translate(-50%,-50%) rotate(-45deg);
}

.fixed-content {
	position: fixed;
	display: grid;
	gap: 10px;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	z-index: 400;
}

.fixed-content a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	--fs: 15;
	font-weight: 500;
	writing-mode: vertical-rl;
	letter-spacing: 0.05em;
	color: #FFF;
	min-width: 73px;
	min-height: 175px;
	background: #81ABA4;
	border: 2px solid #FFF;
	border-right: 0;
	border-radius: 30px 0 0 30px;
	padding-left: 2px;
}

.fixed-content a:nth-child(2) {
	background: #EE7E6E;
}

@media(max-width: 1330px) {
	.header-sub-menu-quote {
		width: 180px;
	}
	.header-sub-menu-quote::before {
		width: 100%;
	}
}

@media(max-width: 1199px) {
	.header-menu {
		gap: 15px;
	}
	.header-menu-list {
		gap: 10px;
		padding: 5px 15px;
	}
	.header-menu-link {
		padding: 5px;
	}
}

@media(max-width: 991px) {
	.header {
		top: 20px;
	}
	body.noscroll .header {
		position: fixed;
	}
	.header-logo {
		position: relative;
		z-index: 999;
	}
	.global-nav-button {
		z-index: 999;
	}
	.header-nav {
		width: 100%;
		height: 100vh;
		background: #FFF7ED;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		padding-top: 105px;
		padding-bottom: 100px;
		opacity: 0;
		visibility: hidden;
		z-index: 888;
		overflow: scroll;
	}
	.header-nav::before {
		content: "";
		width: 100%;
		height: 100px;
		background: #FFF7ED;
		position: fixed;
		top: -20px;
		left: 0;
		right: 0;
		z-index: 10;
	}
	body.noscroll .header-nav {
		opacity: 1;
		visibility: visible;
	}
	.header-menu {
		display: block;
	}
	.header-menu-list {
		display: block;
		background: transparent;
		padding: 0;
	}
	.header-menu-item {
		border-bottom: 1px solid #000;
	}
	.header-menu-item:first-child {
		border-top: 1px solid #000;
	}
	.header-menu-link {
		--fs: 18;
		padding: 30px 50px;
	}
	.header-menu-link:hover,
	.header-menu-link:has( + .header-sub-menu:hover ) {
		opacity: 1;
		color: var(--color-theme-1);
	}
	.header-menu-link:hover::before,
	.header-menu-link:has( + .header-sub-menu:hover )::before {
		content: none;
	}
	.header-menu-link:has( + .header-sub-menu )::after {
		content: "";
		width: 15px;
		height: 15px;
		border-top: 2px solid #000;
		border-right: 2px solid #000;
		position: absolute;
		top: 50%;
		right: 50px;
		border-radius: 0px;
		transform: translateY(-75%) rotate(135deg);
		transition: 0.2s;
	}
	.header-menu-link:has( + .header-sub-menu.show )::after {
		transform: translateY(-25%) rotate(-45deg);
	}
	.header-sub-menu {
		height: 0;
		max-width: 100%;
		border: none;
		border-radius: 0;
		position: initial;
		padding: 0;
		box-shadow: none;
		transform: none;
		visibility: hidden;
		opacity: 0;
		transition: 0s;
	}
	.header-sub-menu::before {
		content: none;
	}
	.header-menu-link:hover + .header-sub-menu,
	.header-sub-menu:hover {
		opacity: 0;
		visibility: hidden;
	}
	.header-sub-menu.show {
		height: auto;
		opacity: 1!important;
		visibility: visible!important;
		padding: 15px 0 20px;
	}
	.header-sub-menu > * {
		display: none;
	}
	.header-sub-menu.show > * {
		display: block;
	}
	.header-sub-menu-link {
		padding: 15px;
	}
	.header-sub-menu-link span {
		--fs: 13;
		padding: 3px 10px;
		margin-right: 20px;
	}
	.header-sub-menu-link span::after {
		width: 16px;
		right: -20px;
	}
	.header-menu-quote {
		border-bottom: 1px solid #000;
	}
	.header-menu-quote-link {
		--fs: 18;
		color: #000;
		min-width: auto;
		min-height: auto;
		justify-content: flex-start;
		background: transparent;
		border-radius: 0;
		padding: 30px 50px;
	}
	.header-menu-quote-link::before {
		background: #000;
	}
	.header-menu-quote-link::after {
		content: "";
        width: 15px;
        height: 15px;
        border-top: 2px solid #000;
        border-right: 2px solid #000;
        position: absolute;
        top: 50%;
        right: 50px;
        border-radius: 0px;
        transform: translateY(-75%) rotate(135deg);
        transition: 0.2s;
	}
	.header-menu-quote-link:hover {
		color: var(--color-theme-1);
	}
	.header-menu-quote-link:hover::before {
		background: var(--color-theme-1);
	}
	.header-sub-menu-quote {
		width: 100%;
		border: none;
		border-radius: 0;
		height: 0;
		padding: 0;
		position: initial;
		box-shadow: none;
		transform: none;
		transition: 0s;
	}
	.header-menu-quote-link:hover + .header-sub-menu-quote,
	.header-sub-menu-quote:hover {
		opacity: 0;
		visibility: hidden;
	}
	.header-sub-menu-quote.show {
		height: auto;
		opacity: 1!important;
		visibility: visible!important;
	}
	.header-sub-menu-quote::before {
		content: none;
	}
	.header-sub-menu-quote > * {
		display: none;
	}
	.header-sub-menu-quote.show > * {
		display: block;
	}
	.header-sub-menu-quote a {
		text-align: start;
		padding: 20px 50px;
	}
	.fixed-content {
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		transform: none;
	}
	.fixed-content a {
		height: 60px;
		min-height: 0;
		writing-mode: horizontal-tb;
		border: none;
		border-top: 2px solid #FFF;
		border-radius: 0;
	}
	.fixed-content a:nth-child(1) {
		display: none; 
	}
}

@media(max-width: 767px) {
	.header.show {
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.global-nav-button {
		width: 45px;
	}
	.global-nav-button:hover {
		opacity: 1;
	}
	.global-nav-button span {
		width: 19px;
		height: 3px;
		border-radius: 3px;
	}
	.global-nav-button span:nth-child(1) {
		transform: translate(-50%,calc(-50% - 7px));
	}
	.global-nav-button span:nth-child(2) {
		transform: translate(-50%,-50%);
	}
	.global-nav-button span:nth-child(3) {
		transform: translate(-50%,calc(-50% + 7px));
	}
	.header-nav {
		padding-top: 85px;
	}
	.header-nav::before {
		height: 85px;
	}
	.header-menu-link {
		--fs: 16;	
		padding: 25px;
	}
	.header-menu-link:has( + .header-sub-menu )::after {
		width: 12px;
		height: 12px;
		right: 30px;
	}
	.header-sub-menu {
		display: grid;
		grid-template-columns: repeat(2,1fr);
	}
	.header-sub-menu-link {
		max-width: 100%;
		width: 100%;
		padding: 10px 30px;
	}
	.header-sub-menu li:nth-child(even) .header-sub-menu-link::before {
		content: none;
	}
	.header-sub-menu li:nth-child(3) .header-sub-menu-link::before,
	.header-sub-menu li:nth-child(5) .header-sub-menu-link::before {
		content: "";
	}
	.header-menu-quote-link {
		--fs: 16;
		padding: 25px;
	}
	.header-menu-quote-link::before {
		width: 13px;
	}
	.header-menu-quote-link::after {
		width: 12px;
        height: 12px;
        right: 30px;
	}
	.header-sub-menu-quote a {
		padding: 15px 25px;
	}
}

@media(max-width: 575px) {
	.header-logo img {
		width: 126px;
	}
	.header-sub-menu-link {
		padding: 10px 15px;
	}
	.header-sub-menu-link img {
		margin-bottom: 0;
	}
	.header-sub-menu-link p {
		--fs: 16;
		text-align: center;
	}
	.header-sub-menu-link span {
		--fs: 11;
		letter-spacing: 0;
		text-align: center;
		padding: 3px 5px;
		margin: 0;
	}
	.header-sub-menu-link span::after {
		content: none;
	}
}

/*		フッター		*/

.footer {
	position: relative;
	background: #4E4B46;
	padding-top: 95px;
	padding-bottom: 75px;
}

.footer-logo {
	display: inline-block;
	margin-bottom: 25px;
}

.footer address {
	--fs: 13;
	line-height: calc(24 / 13);
	font-weight: 500;
	color: #FFF;
	margin-bottom: 0;
}

.footer-nav {
	display: grid;
	grid-template-columns: auto auto auto;
	gap: 70px 60px;
}

.footer-menu {
	list-style: none;
	padding: 0;
	margin-bottom: 0;
}

.footer-menu li {
	margin-bottom: 15px;
}

.footer-menu li :where(a,span) {
	--fs: 15;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: #FFF;
}

.footer-sub-menu {
	list-style: none;
	padding-left: 10px;
	margin-bottom: 0;
}

.footer-sub-menu li {
	margin-bottom: 0;
}

.footer-sub-menu li::before {
	content: "-";
	color: #FFF;
	margin-right: 5px;
}

.footer-sub-menu li a {
	--fs: 14;
	letter-spacing: 0.05em;
}

.footer-other-menu {
	grid-column: 1 / -1;
}

.footer-other-menu {
	display: flex;
	gap: 100px;
}

.footer-other-menu a {
	--fs: 14;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: #FFF;
}

.copyright {
	--fs: 13;
	color: #FFF;
	letter-spacing: 0.05em;
	margin-top: 90px;
	margin-bottom: 0;
}

.pagetop {
	width: 50px;
	aspect-ratio: 1 / 1;
	background: #FFF;
	border: 1px solid #4E4B46;
	border-radius: 50%;
	position: fixed;
	bottom: 70px;
	right: 3%;
	opacity: 0;
	visibility: hidden;
	transition: 0.3s;
	z-index: 100;
}

.pagetop.show {
	opacity: 1;
	visibility: visible;
}

.pagetop::before {
	content: "";
	width: 10px;
	aspect-ratio: 1 / 1;
	border-top: 2px solid #44413C;
	border-right: 2px solid #44413C;
	border-radius: 1px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-40%) rotate(-45deg);
}

@media(max-width: 767px) {
	.footer {
		padding-top: 60px;
		padding-bottom: 80px;
	}
	.footer-logo {
		display: block;
		max-inline-size: max-content;
		margin-inline: auto;
	}
	.footer address {
		text-align: center;
		max-inline-size: max-content;
		margin-inline: auto;
	}
	.footer-other-menu {
		text-align: center;
		gap: 10px;
		flex-direction: column;
	}
	.copyright {
		text-align: center;
		margin-top: 50px;
	}
	.pagetop {
		bottom: 70px;
	}
}

/*		トップ 共通		*/
.top-section-title {
	display: grid;
	gap: 20px;
}

.top-section-title-ja {
	--fs: 28;
	font-size: var(--font-size);
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1em;
	margin-bottom: 0;
}

.top-section-title-en {
	display: block;
	--fs: 110;
	font-size: var(--font-size);
	font-weight: 700;
	color: var(--color-theme-1);
	line-height: 1;
	order: -1;
}

.more-link {
	position: relative;
	display: grid;
	place-items: center;
	max-width: 290px;
	width: 100%;
	min-height: 96px;
	background: #FFF7ED;
	--fs: 20;
	font-weight: 500;
	border: 3px solid #000;
	border-radius: 60px;
	padding: 10px 35px;
	transition: 0.2s;
}

.more-link::before {
	content: "";
	width: 14px;
	aspect-ratio: 14 / 13;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
	background: #000;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}

.more-link:hover {
	opacity: 1;
	color: var(--color-theme-1);
	border-color: var(--color-theme-1);
}

.more-link:hover::before {
	background: var(--color-theme-1);
}

@media(max-width: 767px) {
	.top-section-title {
		gap: 15px;
	}
	.top-section-title-ja {
		--fs: 22;
	}
	.top-section-title-en {
		--fs: 60;
	}
	.more-link {
		--fs: 18;
		max-width: 260px;
		min-height: 80px;
		border: 2px solid #000;
	}
}

/*		トップ下層共通パーツ		*/
.common-contact {
	position: relative;
	padding-top: 160px;
	padding-bottom: 120px;
	
}

.common-contact::before {
	content: "";
	width: 100%;
	height: 100%;
	background: #FFF7ED;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	clip-path: polygon(50% 0%, 100% 200px, 100% 100%, 0 100%, 0 200px);
}

.common-contact::after {
	content: "";
	width: 145px;
	aspect-ratio: 145 / 91;
	background: url(img/ribbon.svg) no-repeat center / contain;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%,-35%);
}

body.home .common-contact {
	margin-top: -200px;
}

.common-contact > * {
	position: relative;
	z-index: 1;
}

.common-contact .top-section-title {
	justify-content: center;
	text-align: center;
	gap: 15px;
	margin-bottom: 40px;
}

.common-contact .top-section-title-ja {
	--fs: 25;
}

.common-contact .top-section-title-en {
	--fs: 70;
	letter-spacing: 0.1em;
}

.common-contact-link {
	display: grid;
	place-items: center;
	max-width: 390px;
	width: 100%;
	min-height: 96px;
	background: var(--color-theme-1);
	--fs: 20;
	font-size: var(--font-size);
	font-weight: 500;
	color: #FFF;
	border-radius: 90px;
	border: none;
	margin-inline: auto;
}

@media(max-width: 767px) {
	.common-contact {
		padding-top: 100px;
		padding-bottom: 60px;
	}
	body.home .common-contact {
		margin-top: -100px;
	}
	.common-contact::before {
		clip-path: polygon(50% 0%, 100% 100px, 100% 100%, 0 100%, 0 100px);
	}
	.common-contact::after {
		width: 85px;
	}
	.common-contact .top-section-title-ja {
		--fs: 20;
	}
	.common-contact .top-section-title-en {
		--fs: 60;
	}
	.common-contact-link {
		--fs: 18;
		max-width: 300px;
		min-height: 70px;
	}
}

/*		トップ MV		*/
.mv {
	position: relative;
	padding-top: 150px;
	padding-bottom: 60px;
	overflow-x: clip;
}

.mv-content {
	position: relative;
	max-width: calc(1140px + var(--padding) * 2);
	width: 100%;
	padding: 20px var(--padding);
	margin-inline: auto;
}

.mv-title {
	display: grid;
	gap: 20px;
}

.mv-title h1 {
	display: grid;
	--fs: 87;
	font-size: var(--font-size);
	font-family: var(--font-size);
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.2;
	color: var(--color-theme-1);
	margin-bottom: 0;
}

.mv-title h1 span {
	--fs: 28;
	font-weight: 500;
	letter-spacing: 0;
	margin-left: 0.2em;
}

.mv-title p {
	--fs: 18;
	color: #FFF;
	max-inline-size: max-content;
	background: var(--color-theme-1);
	border-radius: 20px;
	padding: 2px 40px;
	margin-bottom: 0;
}

.mv-text {
	--fs: 38;
	font-weight: 500;
	color: #EC6B57;
	writing-mode: vertical-rl;
	white-space: nowrap;
	letter-spacing: 0.3em;
	line-height: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 30px;
	position: absolute;
	top: 50%;
	right: 15%;
	margin-bottom: 0;
	transform: translateY(-60%);
}

.mv-text span {
	display: inline-block;
	background: #FFF;
	padding: 15px 10px 20px;
}

.mv-text span:nth-child(2) {
	margin-top: 90px;
}

.mv .splide__track {
	overflow: visible;
}

.mv .splide__list {
	align-items: center;
}

.mv .splide__slide img {
	filter: drop-shadow(4px 4px 10px rgba(0,0,0,0.25));
}

.mv .splide__slide.odd img {
	animation: odd_rotate 2s steps(1) infinite;
	transform: rotate(20deg);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.mv .splide__slide.even img {
	animation: even_rotate 2s steps(1) infinite;
	transform: rotate(-20deg);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.mv-splide02 {
	position: relative;
}

.mv-splide02::before,
.mv-splide02::after {
	content: "";
	width: 250px;
	aspect-ratio: 252 / 170;
	background: url(./img/tree01@2x.png) center / cover;
	position: absolute;
	top: 0;
	z-index: -1;
}

.mv-splide02::before {
	left: 0;
	transform: translate(-35%,-30%) rotate(20deg);
}

.mv-splide02::after {
	right: 0;
	transform: translate(35%,-25%) rotate(157deg) scale(1,-1);
}

@keyframes odd_rotate {
	0% { transform: rotate(20deg); }
	50% { transform: rotate(25deg); }
	100% { transform: rotate(20deg); }
}

@keyframes even_rotate {
	0% { transform: rotate(-20deg); }
	50% { transform: rotate(-25deg); }
	100% { transform: rotate(-20deg); }
}

@media(max-width: 991px) {
	.mv {
		display: flex;
		flex-direction: column;
		padding-top: 100px;
		padding-bottom: 100px;
	}
	.mv-content {
		order: 3;
	}
	.mv-title {
		justify-content: center;
	}
	.mv-title h1 {
		text-align: center;
	}
	.mv-title p {
		margin-inline: auto;
	}
	.mv-text {
		top: 200px;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		z-index: 5;
	}
	.mv-splide01 {
		margin-bottom: 150px;
	}
}

@media(max-width: 767px) {
	.mv {
		padding-top: 85px;
	}
	.mv-title h1 {
		--fs: 46;
	}
	.mv-title h1 span {
		--fs: 18;
	}
	.mv-title p {
		--fs: 15;
		padding: 2px 20px;
	}
	.mv-text {
		--fs: 35;
		gap: 25px;
		top: 150px;
	}
	.mv-text span:nth-child(2) {
		padding-bottom: 0;
	}
	.mv-splide01 {
		margin-bottom: 200px;
	} 
	.mv-splide02::before {
		width: 160px;
		transform: translate(-35%,-115%) rotate(20deg);
	}
	.mv-splide02::after {
		width: 130px;
		transform: translate(45%,-70%) rotate(157deg) scale(1,-1);
	}
}

@media(max-width: 575px) {
	.mv-text {
		--fs: 30;
		gap: 20px;
		top: 120px;
	}
	.mv-splide01 {
		margin-bottom: 130px;
	}
}

/*		トップ 絵馬工房とは？		*/

.top-about {
	position: relative;
	margin-bottom: 50px;
	overflow-x: clip;
	margin-top: 125px;
}

.top-about-content {
	position: relative;
	display: grid;
	grid-template-columns: 47% 1fr;
	align-items: flex-start;
	gap: 30px;
	align-items: center;
	padding: 0 15px;
}

.top-about-content::before {
	content: "";
	width: 311px;
	aspect-ratio: 311 / 149;
	background: url(img/site-deco01.svg) center / cover;
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(-65%,0%);
	z-index: -1;
}

.top-about-content::after {
	content: "";
	width: 220px;
	aspect-ratio: 220 / 89;
	background: url(img/site-deco02.svg) center / cover;
	position: absolute;
	right: 0;
	bottom: 0;
	transform: translate(85%,35%);
	z-index: -1;
}

/*.top-about-text {
	max-width: 600px;
}
*/
@media(max-width: 991px) {
	.top-about-content {
		grid-template-columns: 1fr;
	}
/*	.top-about-text {
		max-width: 100%;
	}*/
}

@media(max-width: 767px) {
	.top-about {
		margin-bottom: 0px;
		margin-top: 100px;
	}
	.top-about-content::before {
		width: 250px;
		transform: translate(-40%,-60%);
	}
	.top-about-content::after {
		width: 160px;
		transform: translate(40%,60%);
	}
}


/*		トップ ぴったりの絵馬		*/
.top-pickup {
	position: relative;
	--container: 1220px; 
	margin-bottom: 140px;
	overflow-x: clip;
}

.top-pickup::before {
	content: "";
	width: 349px;
	aspect-ratio: 349 / 236;
	background: url(img/tree01@2x.png) no-repeat center / contain;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(-40%,75%) rotate(21deg);
	z-index: 1;
}

.top-pickup-content {
	position: relative;
	display: grid;
	grid-template-columns: 55% 1fr;
}

.top-pickup-content::before {
	content: "";
	width: 54px;
	aspect-ratio: 54 / 66;
	background: url(img/site-deco03.svg) center / cover;
	position: absolute;
	right: 0;
	bottom: 0;
	transform: translate(-50%,180%);
}

.top-pickup-text {
	position: relative;
	padding-top: 60px;
	padding-bottom: 60px;
}

.top-pickup-text::before {
	content: "";
	width: calc((100vw - 1220px) / 2 + 100%);
	height: 100%;
	background: var(--color-theme-1);
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
}

.top-pickup-text h2 {
	position: relative;
	--fs: 28;
	font-size: var(--font-size);
	line-height: calc(42 / 28);
	color: #FFF;
	max-width: 545px;
	padding-bottom: 30px;
	margin-bottom: 35px;
}

.top-pickup-text h2::before {
	content: "";
	width: 185px;
	height: 0;
	border-bottom: 1px dashed #FFF;
	position: absolute;
	bottom: 0;
	left: 0;
}

.top-pickup-text h2::after {
	content: "";
	width: 173px;
	aspect-ratio: 173 / 129;
	background: url(img/top-pickup-deco.png?v2) center / cover;
	position: absolute;
	bottom: 0;
	left: 215px;
	transform: translateY(50%);
}

.top-pickup-text h2 .large {
	--fs: 35;
}

.top-pickup-text h2 .dot {
	position: relative;
}

.top-pickup-text h2 .dot::before {
	content: "";
	width: 4px;
	aspect-ratio: 1 / 1;
	background: #FFF;
	border-radius: 50%;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.top-pickup-text ul {
	position: relative;
	max-inline-size: max-content;
	list-style: none;
	padding: 0;
	margin-bottom: 0;
}

.top-pickup-text ul::before {
	content: "";
	width: 188px;
	aspect-ratio: 188 / 146;
	background: url(img/top-pickup-strong.svg) center / cover;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(90%,-50%);
}

.top-pickup-text ul li {
	position: relative;
	--fs: 23;
	color: #FFF;
	line-height: 1.3;
	padding-left: 50px;
	margin-bottom: 20px;
}

.top-pickup-text ul li::before {
	content: "";
	width: 37px;
	aspect-ratio: 37 / 27;
	background: url(img/icon-check.svg) center / cover;
	position: absolute;
	top: 0;
	left: -5px;
}

.top-pickup-image {
	margin-right: calc((100vw - 1220px) / -2);
}

.top-pickup-image img {
	width: 100%;
	max-height: 530px;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
}

@media(max-width: 1249px) {
	.top-pickup-text::before {
		width: calc(var(--padding) + 100%);
	}
	.top-pickup-image {
		margin-right: calc(var(--padding) * -1);
	}
}

@media(max-width: 991px) {
	.top-pickup-content {
		grid-template-columns: 1fr;
	}
	.top-pickup-text {
		padding-top: 30px;
		padding-bottom: 30px;
	}
	.top-pickup-text::before {
		width: calc(var(--padding) * 2 + 100%);
		right: calc(var(--padding) * -1);
	}
	.top-pickup-text h2 {
		margin-inline: auto;
	}
	.top-pickup-text ul {
		max-width: 545px;
		margin-inline: auto;
	}
	.top-pickup-text ul::before {
		transform: translate(50%,-50%);
	}
	.top-pickup-image {
		margin-left: calc(var(--padding) * -1);
	}
	.top-pickup-image img {
		max-height: 400px;
	}
}

@media(max-width: 767px) {
	.top-pickup::before {
		width: 200px;
	}
	.top-pickup-content::before {
		width: 40px;
		z-index: 1;
	}
	.top-pickup-text h2 {
		--fs: 22;
	}
	.top-pickup-text h2 .large {
		--fs: 30;
	}
	.top-pickup-text h2::after {
		content: none;
	}
	.top-pickup-text ul::before {
		width: 130px;
		right: -10px;
		transform: translate(0,-65%);
	}
	.top-pickup-text ul li {
		--fs: 18;
		padding-left: 30px;
	}
	.top-pickup-text ul li::before {
		width: 30px;
	}
}

/*		トップ 商品一覧		*/
.top-lineup {
	position: relative;
	overflow-X: clip;
	margin-bottom: 140px;
}

.top-lineup-inner {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: flex-start;
	gap: 40px;
}

.top-lineup-inner::before {
	content: "";
	width: 68px;
	aspect-ratio: 68 / 83;
	background: url(img/site-deco04.svg) no-repeat center / cover;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-50%,-180%);
	z-index: -1;
}

.top-lineup-inner::after {
	content: "";
	width: 311px;
	aspect-ratio: 311 / 149;
	background: url(img/site-deco01.svg) no-repeat center / contain;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-60%,100%) scale(-1,1);
	z-index: -1;
}

.top-lineup .top-section-title {
	grid-template-columns: auto auto;
	gap: 0;
	align-items: flex-start;
}

.top-lineup .top-section-title-ja {
	position: relative;
	writing-mode: vertical-rl;
	padding-bottom: 25px;
	margin: 0;
}

.top-lineup .top-section-title-ja::before {
	content: "";
	width: 2px;
	height: 255px;
	background: var(--color-theme-1);
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%,100%);
}

.top-lineup .top-section-title-en {
	writing-mode: vertical-rl;
}

.top-lineup-content {
	position: relative;
	display: grid;
	gap: 15px;
	z-index: 1;
}

.top-lineup-item {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 35px;
	padding-right: 85px;
	position: relative;
}

.top-lineup-item:hover {
	opacity: 1;
}

.top-lineup-item::before {
	content: "";
	width: 100%;
	height: 100%;
	background: var(--theme-color);
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	clip-path: polygon(0% 0%, calc(100% - 85px) 0%, 100% 50%, calc(100% - 85px) 100%, 0% 100%);
	transition: 0.35s cubic-bezier(0.770, 0.000, 0.175, 1.000);
	z-index: -1;
}

.top-lineup-item:hover::before {
	width: calc((100vw - 1130px) / 2 + 100% + 85px);
	/* clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); */
}

.top-lineup-item:hover .top-lineup-image img {
	transform: scale(1.1);
}

.top-lineup-image {
	position: relative;
	overflow: hidden;
}

.top-lineup-image img {
	transition: 0.3s;
}

.top-lineup-text {
	padding-top: 20px;
	padding-bottom: 20px;
}

.top-lineup-text > span {
	display: inline-block;
	--fs: 18;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.2;
	color: var(--theme-color);
	background: #FFF;
	border-radius: 20px;
	padding: 2px 15px;
	margin-bottom: 10px;
}

.top-lineup-text h3 {
	--fs: 35;
	font-size: var(--font-size);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: #FFF;
	margin-bottom: 15px;
}

.top-lineup-text p {
	max-width: 300px;
	margin-bottom: 0;
}

.top-lineup-price {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	min-width: 240px;
	background: #000;
	padding: 5px 10px;
	position: absolute;
	bottom: 0;
	left: 0;
}

.top-lineup-price p {
	--fs: 14;
	line-height: calc(18 / 14);
	color: #FFF;
	margin-bottom: 0;
}

.top-lineup-price .price {
	--fs: 18;
	color: #FFF;
	font-weight: 600;
	line-height: 1;
}

.top-lineup-price .price span {
	--fs: 35;
	color: var(--theme-color);
}

@media(max-width: 1159px) {
	.top-lineup-item:hover::before {
		width: calc(100% + 85px + var(--padding));
	}
}

@media(max-width: 991px) {
	.top-lineup-inner {
		grid-template-columns: 1fr;
	}
	.top-lineup .top-section-title {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.top-lineup .top-section-title-ja {
		writing-mode: horizontal-tb;
		padding-bottom: 0;
	}
	.top-lineup .top-section-title-ja::before {
		content: none;
	}
	.top-lineup .top-section-title-en {
		writing-mode: horizontal-tb;
	}
}

@media(max-width: 767px) {
	.top-lineup {
		margin-bottom: 100px;
	}
	.top-lineup-inner::before {
		width: 55px;
	}
	.top-lineup-inner::after {
		width: 250px;
		top: auto;
		bottom: 0;
		transform: translate(-50%,70%) scale(-1,1);
	}
	.top-lineup-content {
		gap: 10px;
	}
	.top-lineup-item {
		grid-template-columns: 45% 1fr;
		align-items: flex-start;
		gap: 0;
		padding-right: 15px;
	}
	.top-lineup-item::before {
		clip-path: polygon(0% 0%, calc(100% - 30px) 0%, 100% 50%, calc(100% - 30px) 100%, 0% 100%);
	}
	.top-lineup-text {
		margin-left: -5px;
		padding-top: 30px;
		padding-bottom: 30px;
	}
	.top-lineup-text > span {
		--fs: 12;
		padding: 2px 5px;
		letter-spacing: 0;
		margin-bottom: 5px;
	}
	.top-lineup-text h3 {
		--fs: 21;
		letter-spacing: 0;
		margin-bottom: 5px;
	}
	.top-lineup-text p {
		--fs: 14;
	}
	.top-lineup-price {
		align-items: center;
		gap: 15px;
		min-width: 140px;
		padding: 5px 7px;
	}
	.top-lineup-price p {
		--fs: 12;
	}
	.top-lineup-price .price {
		--fs: 13;
	}
	.top-lineup-price .price span {
		--fs: 27;
	}
}

@media(max-width: 575px) {
	.top-lineup-text {
		padding-top: 10px;
		padding-bottom: 50px;
	}
	.top-lineup-text h3 {
		margin-bottom: 0;
	}
	.top-lineup-text p {
		display: none;
	}
}


/*		トップ リンク		*/
.top-links {
	position: relative;
	overflow-x: clip;
}

.top-links::before {
	content: "";
	width: 252px;
	aspect-ratio: 253 / 170;
	background: url(img/tree01@2x.png) no-repeat center / contain;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(40%, -70%) rotate(158deg) scale(1,-1);
	z-index: -1;
}

.top-links-content {
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	max-width: 950px;
	margin-inline: auto;
}

.top-links-content::before {
	content: "";
	width: 220px;
	aspect-ratio: 220 / 89;
	background: url(img/site-deco02.svg) no-repeat center / contain;
	position: absolute;
	bottom: 0;
	right: 0;
	transform: translate(120%,50%);
	z-index: -1;
}

@media(max-width: 991px) {
	.top-links-content {
		gap: 10px;
	}
}

@media(max-width: 767px) {
	.top-links::before {
		width: 180px;
	}
	.top-links-content {
		flex-wrap: wrap;
		justify-content: center;
	}
	.top-links-content::before {
		width: 160px;
		transform: translate(45%,40%);
	}
}

/*		トップ スライダー		*/
.top-ema-slider {
	overflow-x: clip;
	padding-top: 50px;
	padding-bottom: 50px;
}

.top-ema-slider .splide__track {
	overflow: visible;
}

.top-ema-splide .splide__list {
	align-items: center;
}

.top-ema-splide .splide__slide img {
	filter: drop-shadow(4px 4px 10px rgba(0,0,0,0.25));
}

.top-ema-splide .splide__slide:nth-child(odd) img {
	animation: odd_rotate 2s steps(1) infinite;
	transform: rotate(20deg);
}

.top-ema-splide .splide__slide:nth-child(even) img {
	animation: even_rotate 2s steps(1) infinite;
	transform: rotate(-20deg);
}

@media(max-width: 767px) {
	.top-ema-slider {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

/*		トップ よくある質問		*/
.top-faq .top-section-title {
	position: relative;
	text-align: center;
	max-inline-size: max-content;
	margin-inline: auto;
	margin-bottom: 50px;
}

.top-faq .top-section-title::before {
	content: "";
	width: 258px;
	aspect-ratio: 258 / 178;
	background: url(img/top-faq-deco01.png) center / cover;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(-120%, 0) rotate(-10deg);
}

.top-faq .top-section-title::after {
	content: "";
	width: 96px;
	aspect-ratio: 96 / 171;
	background: url(img/top-faq-deco02.svg) center / cover;
	position: absolute;
	right: 0;
	bottom: 0;
	transform: translate(165%,-5%);
}

.top-faq .top-section-title-en {
	letter-spacing: 0.1em;
}

.top-faq-content {
	position: relative;
	/* background: url(img/faq-bg.jpg) fixed center / cover; */
	padding-top: 75px;
	padding-bottom: 300px;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}

.top-faq-content::before {
	content: "";
	width: 100%;
	height: 100vh;
	background: url(img/faq-bg.jpg?v2) center / cover;
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: -1;
}

.top-faq-list {
	max-width: 800px;
	display: grid;
	gap: 20px;
	margin-bottom: 0;
	margin-inline: auto;
}

.top-faq-item {
	background: #FFF;
	border: 3px solid var(--color-theme-1);
	border-radius: 20px!important;
}

.top-faq-item h3 button {
	position: relative;
	--fs: 18;
	font-size: var(--font-size);
	font-weight: 500;
	line-height: calc(30 / 18);
	background-color: transparent!important;
	padding: 25px 60px 25px 90px;
	margin-bottom: 0;
}

.top-faq-item h3 button:focus {
	box-shadow: none;
}

.top-faq-item h3 button::before {
	content: "Q.";
	--fs: 28;
	line-height: 1;
	color: var(--color-theme-1);
	position: absolute;
	top: 22px;
	left: 60px;
}

.top-faq-item .accordion-button:not(.collapsed) {
	color: var(--color-body-1);
	box-shadow: none;
}

.top-faq-item .accordion-body {
	position: relative;
	padding: 25px 60px;
}

.top-faq-item .accordion-body::before {
	content: "";
	width: calc(100% - 120px);
	border-top: 1px dashed #555555;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.top-faq-item a{
	text-decoration: underline;
}

@media(max-width: 767px) {
	.top-faq .top-section-title {
		margin-bottom: 25px;
	}
	.top-faq .top-section-title::before {
		content: none;
	}
	.top-faq .top-section-title::after {
		width: 70px;
		transform: translate(130%,-10%);
	}
	.top-faq-content {
		padding-top: 50px;
		padding-bottom: 180px;
	}
	.top-faq-list {
		gap: 15px;
	}
	.top-faq-item {
		border: 2px solid var(--color-theme-1);
	}
	.top-faq-item h3 button {
		--fs: 16;
		padding: 20px 15px 20px 40px;
	}
	.top-faq-item h3 button::before {
		--fs: 24;
		top: 18px;
		left: 15px;
	}
	.top-faq-item .accordion-body {
		--fs: 14;
		padding: 20px 15px;
	}
	.top-faq-item .accordion-body::before {
		width: calc(100% - 30px);
	}
}

@media(max-width: 575px) {
	.top-faq-list {
		grid-template-columns: 1fr;
	}
	.top-faq .top-section-title::after {
		content: none;
	}
}


/*		下層共通		*/
.breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	--fs: 12;
	font-family: var(--noto-sans);
	margin-bottom: 20px;
}

.breadcrumbs .home span {
	display: flex;
}

.page-body {
	padding-bottom: 150px;
}

.page-body:has(.quote-form) {
	--container: 1000px;
}

.page-body:not(.page-ema) {
	padding-top: 140px;
}

@media(max-width: 767px) {
	.page-body {
		padding-bottom: 100px;
	}
}

/*		絵馬のページ		*/
.ema-mv {
	position: relative;
	background: #FFF7ED;
	padding-top: 140px;
	padding-bottom: 100px;
	margin-bottom: 60px;
	overflow-x: clip;
}

.ema-mv::before {
    content: "";
    width: 100%;
    height: 27px;
    background: linear-gradient(45deg, var(--theme-color) 25%, transparent 25%, transparent 75%, var(--theme-color) 75%), linear-gradient(45deg, var(--theme-color) 25%, transparent 25%, transparent 75%, var(--theme-color) 75%);
    background-size: 18px 18px;
    background-position: 0 0, 9px 9px;
	background-color: #FFF;
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
}

.ema-mv-content {
	display: grid;
	grid-template-columns: 1fr 55%;
	gap: 20px;
	margin-bottom: 70px;
}

.ema-mv-text {
	max-width: 370px;
}

.ema-mv-title {
	display: grid;
	justify-content: flex-start;
	gap: 15px;
	margin-bottom: 15px;
}

.ema-mv-title h1 {
	--fs: 35;
	font-size: var(--font-size);
	letter-spacing: 0.1em;
	line-height: calc(45 / 35);
	font-weight: 600;
	margin-bottom: 0;
}

.ema-mv-title span {
	display: inline-block;
	--fs: 18;
	line-height: 1.2;
	background: var(--theme-color);
	color: #FFF;
	border-radius: 20px;
	max-inline-size: max-content;
	padding: 2px 15px;
}

.ema-mv-text p {
	line-height: calc(27 / 16);
	margin-bottom: 30px;
}

.ema-mv-info {
	background: #FFF;
	border: 2px solid var(--theme-color);
	padding: 20px;
}

.ema-mv-price {
	display: flex;
	align-items: center;
	gap: 40px;
	border-bottom: 1px dashed var(--theme-color);
	padding-bottom: 15px;
	margin-bottom: 15px;
}

.ema-mv-price p {
	--fs: 15;
	font-weight: 500;
	line-height: calc(18 / 14);
	margin-bottom: 0;
}

.ema-mv-price p.price {
	--fs: 25;
	font-weight: 600;
}

.ema-mv-price p.price span {
	--fs: 48;
	line-height: 1;
	color: var(--theme-color);
	margin-right: 5px;
}

.ema-mv-time {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 5px;
}

.ema-mv-time p {
	--fs: 14;
	line-height: calc(18 / 14);
	margin-bottom: 0;
}

.ema-mv-time p span {
	--fs: 30;
	font-weight: 600;
	color: var(--theme-color);
	margin: 0 5px;
}

.ema-mv-time p strong {
	--fs: 16;
}

.ema-mv-image {
	margin-top: -35px;
}

.ema-mv-image img {
	filter: drop-shadow(4px 4px 15px rgba(0,0,0,0.25));
}

.page-ema > *:nth-child(2) {
	position: relative;
	overflow-x: clip;
}

.page-ema > *:nth-child(2)::before {
	content: "";
	width: 349px;
	aspect-ratio: 349 / 236;
	background: url(img/tree01@2x.png) no-repeat center / cover;
	position: absolute;
	top: 215px;
	left: 0;
	transform: translateX(-40%) rotate(21deg);
	z-index: -1;
}

.page-ema > *:nth-child(2)::after {
	content: "";
	width: 252px;
	aspect-ratio: 252 / 170;
	background: url(img/tree01@2x.png) no-repeat center / cover;
	position: absolute;
	top: 1580px;
	right: 0;
	transform: translateX(40%) rotate(158deg) scale(1,-1);
	z-index: -1;
}

.page-ema > *:nth-child(2) > .container {
	position: relative;
}

.page-ema > *:nth-child(2) > .container::before {
	content: "";
    width: 311px;
    aspect-ratio: 311 / 149;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco01.svg);
    mask-image: url(img/site-deco01.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 1300px;
    left: 0;
    transform: translateX(-85%) scale(-1,1);
	z-index: -1;
}

.page-ema > *:nth-child(2) > .container::after {
	content: "";
    width: 220px;
    aspect-ratio: 220 / 89;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco02.svg);
    mask-image: url(img/site-deco02.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 1750px;
    right: 0;
    transform: translateX(110%);
	z-index: -1;
}

.ema-point {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 20px 25px;
	margin-bottom: 50px;
}

.ema-point::before {
	content: "";
	width: 311px;
	aspect-ratio: 311 / 149;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco01.svg);
    mask-image: url(img/site-deco01.svg);
	background-color: #FFF;
	position: absolute;
	bottom: 0;
	left: 0;
	transform: translate(-65%,60%);
}

.ema-point-item {
	position: relative;
	background: #FFF;
	border-radius: 10px;
	padding: 60px 25px 50px;
}

.ema-point-num {
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(-10%,-30%);
}

.ema-point-item h2 {
	--fs: 20;
	font-size: var(--font-size);
	font-weight: 500;
	margin-bottom: 15px;
}

.ema-point-item p {
	line-height: calc(27 / 16);
	margin-bottom: 0;
}

.ema-gallery {
	position: relative;
	max-width: 1080px;
	display: grid;
	grid-template-columns: repeat(4,1fr);
	justify-content: space-between;
	gap: 60px;
	margin-inline: auto;
	margin-bottom: 100px;
}

.ema-gallery::before {
	content: "";
	width: 220px;
	aspect-ratio: 220 / 89;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco02.svg);
    mask-image: url(img/site-deco02.svg);
	background-color: #FFF;
	position: absolute;
	bottom: 0;
	right: 0;
	transform: translate(95%,100%);
}

.ema-gallery img {
	transform: rotate(-15deg);
	filter: drop-shadow(4px 4px 10px rgba(0,0,0,0.25));
}

.ema-page-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	max-width: 965px;
	margin-inline: auto;
}

.ema-page-nav a {
	position: relative;
	max-width: 220px;
	width: 100%;
	--fs: 15;
	line-height: 1;
	color: #FFF;
	background: #000;
	border-radius: 20px;
	padding: 10px 30px 10px 20px;
}

.ema-page-nav a::before {
	content: "";
	width: 6px;
	height: 6px;
	border-bottom: 1px solid #FFF;
	border-right: 1px solid #FFF;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-60%) rotate(45deg);
}

@media(max-width: 991px) {
	.ema-mv {
		padding-top: 100px;
	}
	.ema-mv::before {
		height: 18px;
	}
	.page-body:not(.page-ema) {
		padding-top: 100px;
	}
	.ema-mv-content {
		grid-template-columns: 1fr;
	}
	.ema-mv-text {
		display: contents;
	}
	.ema-mv-title {
		order: -2;
	}
	.ema-mv-image {
		text-align: center;
		order: -1;
		margin-top: 0;
	}
	.ema-point {
		grid-template-columns: 1fr;
	}
	.ema-point::before {
		width: 250px;
		transform: translate(-30%,80%);
	}
	.ema-point-item {
		padding: 60px 50px 50px;
	}
	.ema-point-num {
		transform: translate(-10%,-20%);
	}
	.ema-gallery {
		gap: 20px;
	}
	.ema-gallery::before {
		width: 160px;
		transform: translate(25%,100%);
	}
	.ema-page-nav {
		display: grid;
		grid-template-columns: repeat(2,auto);
		gap: 10px;
	}
	.ema-page-nav a {
		width: 220px;
	}
}

@media(max-width: 767px) {
	.ema-mv-title {
		gap: 10px;
		margin-bottom: 0;
	}
	.ema-mv-title span {
		--fs: 15;
	}
	.ema-mv-title h1 {
		--fs: 30;
	}
	.ema-mv-image {
		max-width: 90%;
		margin-inline: auto;
	}
	.ema-mv-text p {
		margin-bottom: 0;
	}
	.ema-mv-info {
		padding: 15px;
	}
	.ema-mv-price {
		padding-bottom: 10px;
		margin-bottom: 10px;
	}
	.ema-mv-time p span {
		--fs: 25;
	}
	.ema-mv-time p strong {
		--fs: 15;
	}
	.ema-point-item {
		padding: 45px 20px 30px;
	}
	.ema-point-num {
		transform: translate(-15%,-30%);
	}
	.ema-point-num img {
		width: 55px;
	}
	.page-ema > *:nth-child(2)::before {
		width: 200px;
	}
	.page-ema > *:nth-child(2)::after {
		width: 180px;
		top: 2500px;
	}
	.page-ema > *:nth-child(2) > .container::before {
		width: 250px;
		top: 1200px;
		transform: translateX(-50%) scale(-1,1);
	}
	.page-ema > *:nth-child(2) > .container::after {
		width: 160px;
		top: 2620px;
		transform: translateX(50%);
	}
}

@media(max-width: 575px) {
	.ema-gallery {
		grid-template-columns: repeat(2,1fr);
	}
	.ema-page-nav {
		grid-template-columns: 1fr;
	}
	.ema-page-nav a {
		width: 100%;
		max-width: 100%;
	}
}

.ema-item {
	--container: 1000px;
	position: relative;
	margin-bottom: 150px;
	overflow-x: clip;
}

.paper .ema-item {
	--container: 930px;
}

/* .ema-item::before {
	content: "";
	width: 349px;
	aspect-ratio: 349 / 236;
	background: url(img/tree01@2x.png) no-repeat center / cover;
	position: absolute;
	top: 300px;
	left: 0;
	transform: translateX(-40%) rotate(21deg);
	z-index: -1;
}

.ema-item::after {
	content: "";
	width: 252px;
	aspect-ratio: 252 / 170;
	background: url(img/tree01@2x.png) no-repeat center / cover;
	position: absolute;
	top: 1580px;
	right: 0;
	transform: translateX(40%) rotate(158deg) scale(1,-1);
	z-index: -1;
} */

.ema-item-content {
	position: relative;
}
/* 
.ema-item-content::before {
	content: "";
    width: 311px;
    aspect-ratio: 311 / 149;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco01.svg);
    mask-image: url(img/site-deco01.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 1300px;
    left: 0;
    transform: translateX(-85%) scale(-1,1);
	z-index: -1;
}

.ema-item-content::after {
    content: "";
    width: 220px;
    aspect-ratio: 220 / 89;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco02.svg);
    mask-image: url(img/site-deco02.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 1750px;
    right: 0;
    transform: translateX(110%);
	z-index: -1;
} */

.ema-section-title {
	--fs: 30;
	font-size: var(--font-size);
	font-weight: 600;
	line-height: calc(45 / 30);
	text-align: center;
	letter-spacing: 0.1em;
	margin-bottom: 50px;
}

@media(max-width: 767px) {
	.ema-section-title {
		--fs: 25;
		margin-bottom: 25px;
	}
}

.design-group:not(:last-child) {
	margin-bottom: 110px;
}

.design-group:last-child {
	margin-bottom: 60px;
}

.design-group:nth-child(1):last-of-type {
	display: contents;
}

.design-group.has-param {
	display: contents;
}

.design-group :where(h2,h3) {
	position: relative;
	min-width: 170px;
	text-align: center;
	--fs: 18;
	font-size: var(--font-size);
	font-family: var(--inter);
	font-weight: 600;
	line-height: 1.2;
	background: #FFF;
	border: 3px solid var(--theme-color);
	padding: 10px 30px;
	max-inline-size: max-content;
	margin-inline: auto;
	margin-bottom: 35px;
}

.design-group :where(h2,h3)::before {
	content: "";
	width: 12px;
	height: 140%;
	background: url(img/icon-roll.png) no-repeat center / 100% 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-50%,-50%);
}

.design-group :where(h2,h3)::after {
	content: "";
	width: 19px;
	aspect-ratio: 18 / 29;
	background: url(img/icon-pimp.svg) no-repeat center left / contain;
	position: absolute;
	right: 0;
	bottom: 0;
	transform: translate(calc(100% + 1px),20%);
	z-index: -1;
}

.design-group.has-param :where(h2,h3) {
	display: none;
}

.design-list {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 15px;
}

.design-list.charm-list {
	grid-template-columns: repeat(5,1fr);
}

.design-list:has(> .design-item:nth-child(3):last-child) {
	display: flex;
	justify-content: center;
}

.design-list:has(> .design-item:nth-child(3):last-child) .design-item {
	max-width: 240px;
	width: 100%;
}

.design-item {
	background: #FFF7ED;
	padding: 15px 15px 35px;
}

.design-list.charm-list .design-item {
	padding: 10px;
}

.paper .design-item {
	display: grid;
	grid-template-rows: auto 1fr auto;
}

.design-item > * {
	max-width: 200px;
	width: 100%;
	margin-inline: auto;
}

.design-item-name {
	--fs: 16;
	font-weight: 600;
	font-family: var(--inter);
	line-height: 1.3;
	margin-bottom: 10px;
}

.design-item-text {
	display: block;
	--fs: 14;
	line-height: 1.5;
	margin-bottom: 10px;
}

.design-item-image {
	text-align: center;
	margin-bottom: 20px;
}

.design-item-image img {
	max-width: 170px;
	width: 100%;
}

.paper .design-item-image img {
	filter: drop-shadow(0 4px 4px rgba(0,0,0,0.25));
}

.design-item-link {
	position: relative;
	display: grid;
	align-items: center;
	justify-content: center;
	--fs: 16;
	width: 100%;
	min-height: 44px;
	color: #FFF;
	background: var(--theme-color);
	border-radius: 40px;
	padding: 5px 40px;
}

.design-item-link::before {
	content: "";
	width: 7px;
	height: 7px;
	border-top: 1.5px solid #FFF;
	border-right: 1.5px solid #FFF;
	position: absolute;
	top: 50%;
	right: 25px;
	transform: translateY(-50%) rotate(45deg);
}

.design-other {
	border: 5px solid #F4EDE5;
	border-radius: 20px;
	padding: 55px 20px 65px;
}

.design-other > * {
	max-width: 755px;
	margin-inline: auto;
}

.design-other h3 {
	--fs: 20;
	font-size: var(--font-size);
	font-weight: 600;
	text-align: center;
	margin-bottom: 15px;
}

.design-other p.lead {
	--fs: 18;
	font-size: var(--font-size);
	font-weight: 500;
	text-align: center;
}

.design-other-link {
	display: grid;
	align-items: center;
	justify-content: center;
	max-width: 390px;
	width: 100%;
	min-height: 68px;
	--fs: 20;
	font-weight: 500;
	color: #FFF;
	background: var(--theme-color);
	border-radius: 60px;
	margin-inline: auto;
}

@media(max-width: 991px) {
	.design-list {
		grid-template-columns: repeat(3,1fr);
	}
	.design-list.charm-list {
		grid-template-columns: repeat(4,1fr);
	}
	.design-item > * {
		max-width: 250px;
	}
	.design-list:has(> .design-item:nth-child(3):last-child) {
		display: grid;	
	}
	.design-list:has(> .design-item:nth-child(3):last-child) .design-item {
		max-width: 100%;
	}
}

@media(max-width: 767px) {
	.design-group :where(h2,h3) {
		max-width: 150px;
		--fs: 17;
		margin-bottom: 25px;
	}
	.design-list {
		grid-template-columns: repeat(2,1fr);
	}
	.design-list.charm-list {
		grid-template-columns: repeat(3,1fr);
		gap: 15px 10px;
	}
	.design-item {
		padding: 15px 10px;
	}
	.design-item > * {

	}
	.design-item-name {
		--fs: 15;
		margin-bottom: 5px;
	}
	.design-list.charm-list .design-item-name {
		--fs: 14;
	}
	.design-item-text {
		margin-bottom: 5px;
	}
	.design-item-image {
		margin-bottom: 10px;
	}
	.design-item-link {
		--fs: 15;
		min-height: 35px;
		padding: 5px 20px;
	}
	.design-item-link::before {
		right: 15px;
	}
	.design-other {
		padding: 35px 15px 40px;
	}
	.design-other h3 {
		--fs: 18;
	}
	.design-other p.lead {
		--fs: 16;
	}
	.design-other-link {
		max-width: 280px;
		--fs: 18;
		min-height: 60px;
	}
}

.ema-name {
	--container: 1000px;
	margin-bottom: 150px;
}

.ema-name-content {
	display: grid;
	grid-template-columns: 45% 1fr;
	gap: 20px;
	margin-bottom: 30px;
}

.ema-name-image {
	text-align: center;
}

.ema-name-text h3 {
	--fs: 23;
	font-size: var(--font-size);
	font-weight: 600;
	margin-bottom: 15px;
}

.ema-name-text ul {
	list-style: none;
	padding: 0;
	margin-bottom: 20px;
}

.ema-name-text ul li {
    line-height: 1.4;
    text-indent: -0.5em;
    margin-left: 1em;
	margin-bottom: 5px;
}

.ema-name-text ul li::before {
	content: "・";
	display: inline-block;	
}

.form-link {
	display: grid;
	place-items: center;
	max-width: 390px;
	width: 100%;
	min-height: 96px;
	--fs: 20;
	font-weight: 500;
	color: #FFF;
	background: var(--theme-color);
	border-radius: 90px;
	padding: 10px 15px;
	margin-inline: auto;
}

@media(max-width: 767px) {
	.ema-name-text h3 {
		--fs: 20;
	}
	.form-link {
		--fs: 18;
		max-width: 300px;
		min-height: 76px;
	}
}

@media(max-width: 575px) {
	.ema-name-content {
		display: grid;
		grid-template-columns: 1fr;
		gap: 15px;
		margin-bottom: 80px;
	}
	.ema-name-text {
		display: contents;
	}
	.ema-name-text h3 {
		margin-bottom: 0;
		order: -1;
	}
	.ema-name-text p {
		margin-bottom: 0;
	}
	.ema-name-text ul {
		margin-bottom: 0;
	}
}

.ema-size {
	position: relative;
	--container: 1000px;
	margin-bottom: 150px;
	overflow-x: clip;
}

.ema-size:has(.ema-size-list) {
	--container: 1130px;
}

.ema-size .marker {
	font-weight: 600;
	position: relative;
}

.ema-size .marker::before {
	content: "";
	width: 110%;
	height: 100%;
	background: var(--theme-color);
	opacity: 0.4;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: -1;
}

.ema-size-content {
	display: grid;
	grid-template-columns: 40% 1fr;
	align-items: center;
	gap: 20px;
	margin-bottom: 100px;
}

.ema-size-image {
	display: grid;
	grid-template-rows: 1fr auto;
	align-items: center;
	justify-content: center;
	text-align: center;
	height: 100%;
}

.ema-size-image-caption {
	text-align: start;
	background: #F5F5F5;
	border-radius: 5px;
	padding: 10px 15px;
}

.ema-size-image-caption p {
	--fs: 14;
	font-weight: 500;
	line-height: 1.4;
}

.ema-size-text h4 {
	--fs: 23;
	font-size: var(--font-size);
	font-weight: 600;
	letter-spacing: 0.1em;
	margin-bottom: 20px;
}

.ema-size-text table {
	width: 100%;
}

.ema-size-text table :where(th,td) {
	--fs: 18;
	line-height: 1.4;
	border-top: 1px dashed #000000;
	padding: 10px 15px;
}

.ema-size-text table tr:last-child :where(th,td) {
	border-bottom: 1px dashed #000;
}

.ema-size-text table th {
	font-weight: 600;
	white-space: nowrap;
}

.ema-size-table {
	position: relative;
	max-width: 760px;
	width: 100%;
	margin-inline: auto;
	margin-bottom: 90px;
}

.paper .ema-size-table {
	max-width: 935px;
}

.ema-size-table::before {
	content: "";
    width: 311px;
    aspect-ratio: 311 / 149;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco01.svg);
    mask-image: url(img/site-deco01.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-120%,15%) scale(-1, 1);
    z-index: -1;
}

.ema-size-table::after {
    content: "";
    width: 220px;
    aspect-ratio: 220 / 89;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco02.svg);
    mask-image: url(img/site-deco02.svg);
    background-color: #F4EDE5;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(160%,-20%);
    z-index: -1;
}

.ema-size-modal .ema-size-table::before,
.ema-size-modal .ema-size-table::after {
	content: none;
}

.ema-size-table table {
	width: 100%;
	margin-bottom: 10px;
}

.ema-size-table table thead th {
	--fs: 18;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	background: #FFF;
	border: 1px solid #000;
	padding: 10px 15px;
}

.ema-size-table table tbody td {
	--fs: 18;
	text-align: center;
	font-weight: 600;
	line-height: 1.4;
	background: #FFF;
	border: 1px solid #000;
	padding: 10px 15px;
}

.ema-size-table table tbody tr:nth-child(odd) td {
	background: #F5F5F5;
}

.ema-size-table table tbody td .small {
	--fs: 16;
	font-weight: 500;
}

.ema-size-table p {
	--fs: 14;
	font-weight: 500;
	margin-bottom: 0;
}

.ema-size-list {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 20px 25px;
	margin-bottom: 90px;
}

.ema-size-list > p {
	--fs:14;
	line-height: 1.2;
	font-weight: 500;
	grid-column: span 3;
}

.ema-size-item {
	position: relative;
	display: grid;
	grid-template-rows: 1fr auto;
	background: #FFF7ED;
	padding: 25px 20px;
}

.ema-size-pickup {
	width: 150px;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}

.ema-size-pickup::before {
	content: "";
	width: 90px;
	aspect-ratio: 1;
	clip-path: polygon(0 0,100% 0,0 100%);
	background: var(--theme-color);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

.ema-size-pickup p {
	display: grid;
	--fs: 12;
	line-height: calc(18 / 12);
	color: #FFF;
	font-weight: 500;
	transform: rotate(-45deg);
	margin-bottom: 0;
	position: absolute;
	top: 15px;
	left: 0;
	white-space: nowrap;
}

.ema-size-pickup p span {
	display: grid;
	place-items: center;
	width: 50px;
	height: 12px;
	--fs: 9;
	font-weight: 500;
	line-height: 1;
	color: var(--color-body-1);
	background: #FFF;
	border-radius: 10px;
	margin-inline: auto;
}

.ema-size-item-head {
	max-width: 260px;
	width: 100%;
	margin-inline: auto;
	margin-bottom: 15px;
}

.ema-size-item-head h3 {
	position: relative;
	--fs: 20;
	font-size: var(--font-size);
	line-height: 1.3;
	text-align: center;
	letter-spacing: 0.1em;
	padding-bottom: 10px;
	margin-bottom: 10px;
}

.ema-size-item-head h3::before {
	content: "";
	width: 25px;
	height: 3px;
	background: var(--theme-color);
	border-radius: 2px;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%,50%);
}

.ema-size-item-head p {
	--fs: 15;
	line-height: calc(20 / 15);
	margin-bottom: 0;
}

.ema-size-item-body {
	max-width: 235px;
	width: 100%;
	margin-inline: auto;
}

.ema-size-item-body img {
	display: block;
	max-width: 164px;
	margin-inline: auto;
	margin-bottom: 15px;
}

.ema-size-item-body p {
	--fs: 14;
	max-inline-size: max-content;
	margin-inline: auto;
	margin-bottom: 0;
}

.ema-size-item-body p.price {
	--fs: 12;
	font-weight: 500;
	margin-bottom: 15px;
}

.ema-size-item-body p.price span {
	display: inline-block;
	--fs: 23;
	font-weight: 600;
	line-height: 1;
	vertical-align: bottom;
	margin-left: 5px;
}

.ema-size-item-body hr {
	border-top: 1px dashed #000;
	margin: 10px 0;
}

.ema-size-item-body button {
	display: grid;
	align-items: center;
	justify-content: center;
	grid-template-columns: 6px auto 6px;
	gap: 10px;
	font-weight: 500;
	width: 100%;
	min-height: 44px;
	background: var(--theme-color);
	color: #FFF;
	border: none;
	border-radius: 40px;
}

.ema-size-item-body button::before {
	content: "";
}

.ema-size-item-body button::after {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 1px solid #FFF;
	border-right: 1px solid #FFF;
	transform: translateY(10%) rotate(45deg);
}

.ema-size-modal {
	--bs-modal-width: 1130px;
}

.ema-size-modal .modal-dialog {
	width: calc(100vw - var(--bs-modal-margin)); 
}

.ema-size-modal .modal-content {
	padding: 50px 20px 35px;
}

.ema-size-modal .size-modal-content {
	max-width: 935px;
	width: 100%;
	margin-inline: auto;
}

.size-title {
	position: relative;
	--fs: 20;
	font-size: var(--font-size);
	max-inline-size: max-content;
	padding-bottom: 5px;
}

.size-title::before {
	content: "";
	width: 115%;
	height: 3px;
	border-radius: 2px;
	background: var(--theme-color);
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.size-title span {
	--fs: 45;
	margin-right: 5px;
}

.ema-size-modal .ema-size-table {
	max-width: 100%;
	margin-bottom: 0;
}

.size-close {
	width: 40px;
	height: 40px;
	background: #ECECEC;
	border: none;
	border-radius: 50%;
	position: absolute;
	top: 30px;
	right: 30px;
}

.size-close span {
	width: 14px;
	height: 2px;
	border-bottom: 1px;
	background: #000;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%) rotate(45deg);
}

.size-close span:nth-child(2) {
	transform: translate(-50%,-50%) rotate(-45deg);
}

.ema-size-other,
.ema-option-item {
	max-width: 1000px;
	background: #FFF;
	border: 5px solid #F4EDE5;
	border-radius: 20px;
	padding: 40px 20px;
	margin-bottom: 50px;
	margin-inline: auto;
}

.ema-size-other-content,
.ema-option-item-inner {
	display: grid;
	grid-template-columns: 45% 1fr;
	gap: 20px;
	max-width: 870px;
	margin-inline: auto;
}

.ema-size-other-text,
.ema-option-text {
	padding: 15px 0;
}

.ema-size-other-text h3,
.ema-option-text h3 {
	--fs: 23;
	font-size: var(--font-size);
	margin-bottom: 15px;
}

.ema-size-other-text span ,
.ema-option-text span {
	display: inline-block;
	--fs: 15;
	font-weight: 500;
	line-height: 1;
	color: #FFF;
	background: #000;
	padding: 5px;
}

@media(max-width: 991px) {
	.ema-size-list {
		grid-template-columns: repeat(2,1fr);
	}
	.ema-size-list > p {
		grid-column: span 2;
	}
	.ema-size-item-head,
	.ema-size-item-body {
		max-width: 100%;
	}
}

@media(max-width: 767px) {
	.ema-size-content {
		grid-template-columns: 1fr;
		margin-bottom: 30px;
	}
	.ema-size-list {
		gap: 20px 15px;
	}
	.ema-size-modal .modal-content {
		padding: 50px 15px 35px;
	}
	.size-title {
		margin-inline: auto;
		margin-bottom: 20px;
	}
	.size-title span {
		--fs: 30;
	}
	.size-close {
		top: 15px;
		right: 15px;
	}
	.ema-size-image {
		gap: 20px;
	}
	.ema-size-text h4 {
		--fs: 20;
	}
	.ema-size-text table :where(th,td) {
		--fs: 15;
		padding: 10px 5px;
	}
	.ema-size-table-content {
		overflow: scroll;
	}
	.ema-size-table table {
		min-width: 700px;
	}
	.ema-size-table table thead th {
		--fs: 16;
		padding: 7px 10px;
	}
	.ema-size-table table tbody td {
		--fs: 16;
		padding: 7px 10px;
	}
	.ema-size-table p {
		--fs: 13;
	}
	.ema-size-other,
	.ema-option-item {
		padding: 25px 15px;
	}
	.ema-size-other-text,
	.ema-option-text {
		padding: 0;
	}
	.ema-size-other-text h3,
	.ema-option-text h3 {
		--fs: 20;
	}
}

@media(max-width: 575px) {
	.ema-size-list {
		grid-template-columns: 1fr;
	}
	.ema-size-list > p {
		grid-column: auto;
	}
	.ema-size-modal .modal-dialog {
		width: auto; 
	}
	.ema-size-other-content,
	.ema-option-item-inner {
		display: grid;
		grid-template-columns: 1fr;
	}
	.ema-size-other-image,
	.ema-option-image {
		text-align: center;
	}
}

.ema-option {
	--container: 1000px;
	margin-bottom: 100px;
}

.ema-option-content {
	display: grid;
	gap: 25px;
}

.ema-option-item {
	margin-bottom: 0;
}

.ema-section-title + p {
	max-inline-size: max-content;
	margin-inline: auto;
}

.ema-check {
	background: #FFF7ED;
	padding-top: 100px;
	padding-bottom: 85px;
	margin-bottom: 65px;
}

.ema-check .ema-section-title {
	position: relative;
	max-inline-size: max-content;
	margin-inline: auto;
	margin-bottom: 35px;
}

.ema-check .ema-section-title::before {
	content: "";
	width: 103px;
	aspect-ratio: 103 / 23;
	background: url(img/check-text.svg) no-repeat center / contain;
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(45%, -90%) rotate(12deg);
}

.ema-check-content {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 25px;
}

.ema-check-item h3 {
	--fs: 18;
	text-align: center;
	font-weight: 600;
	letter-spacing: 0.1em;
	font-size: var(--font-size);
	margin-bottom: 15px;
}

.ema-check-item img {
	margin-bottom: 15px;
}

@media(max-width: 991px) {
	.ema-check-content {
		gap: 15px;
	}
}

@media(max-width: 767px) {
	.ema-check-content {
		grid-template-columns: repeat(2,1fr);
		gap: 40px 20px;
	}
	.ema-check-item h3 {
		--fs: 16;
		letter-spacing: 0;
	}
}

@media(max-width: 575px) {
	.ema-check .ema-section-title::before {
		transform: translate(20%, -100%) rotate(2deg);
	}
	.ema-check-content {
		grid-template-columns: repeat(2,1fr);
		gap: 40px 15px;
	}
	.ema-check-item h3 {
		--fs: 15;
	}
	.ema-check-item img {
		margin-bottom: 5px;
	}
}

.ema-purpose {
	margin-bottom: 130px;
	overflow-x: clip;
}

.ema-purpose-content {
	position: relative;
}

.ema-purpose-content::before {
	content: "";
    width: 311px;
    aspect-ratio: 311 / 149;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco01.svg);
    mask-image: url(img/site-deco01.svg);
    background-color: #F4EDE5;
    position: absolute;
    top: 15%;
    left: 0;
    transform: translateX(-60%) scale(-1, 1);
    z-index: -1;
}

.ema-purpose-content::after {
	content: "";
    width: 220px;
    aspect-ratio: 220 / 89;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/site-deco02.svg);
    mask-image: url(img/site-deco02.svg);
    background-color: #F4EDE5;
    position: absolute;
    bottom: 7%;
    right: 0;
    transform: translateX(75%);
    z-index: -1;
}

.ema-purpose-content .ema-section-title {
	position: relative;
	--fs: 25;
	color: var(--theme-color);
	padding-top: 60px;
	margin-bottom: 30px;
}

.ema-purpose-content .ema-section-title::before {
	content: "";
	width: 138px;
	aspect-ratio: 138 / 51;
	-webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/ema-purpose-deco.svg);
    mask-image: url(img/ema-purpose-deco.svg);
	background-color: var(--theme-color);
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.ema-purpose-content ul {
	list-style: none;
	min-width: 300px;
	max-inline-size: max-content;
	padding: 0;
	margin-bottom: 85px;
	margin-inline: auto;
}

.ema-purpose-content ul li::before {
	content: "・";
	display: inline-block;
}

.ema-purpose-content .form-link {
	margin-bottom: 100px;
}

@media(max-width: 767px) {
	.ema-purpose-content::before {
		width: 250px;
        transform: translate(-55%, -105%);
	}
	.ema-purpose-content::after {
		width: 160px;
        transform: translate(25%, 100%);
	}
	.ema-purpose-content .ema-section-title {
		--fs: 23;
		padding-top: 45px;
		margin-bottom: 20px;
	}
	.ema-purpose-content .ema-section-title::before {
		width: 100px;
	}
}

.ema-about {
	margin-bottom: 150px;
}

.paper .ema-about {
	--container: 700px;
}

.ema-about-link {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	max-width: 625px;
	gap: 30px;
	margin-inline: auto;
}

.paper .ema-about-link {
	margin-bottom: 125px;
}

@media(max-width: 575px) {
	.ema-about-link {
		grid-template-columns: 1fr;
		gap: 15px;
	}
}


/*		ご依頼までの流れ		*/
.flow-content {
	display: grid;
	gap: 25px;
}

.flow-item {
	position: relative;
	background: #FFF7ED;
	border-radius: 20px;
	padding: 40px 45px;
}

.flow-item:not(:last-child)::before {
	content: "";
    width: 53px;
    aspect-ratio: 53 / 46;
    -webkit-mask: no-repeat center center / contain;
    mask: no-repeat center center / contain;
    -webkit-mask-image: url(img/icon-arrow.svg);
    mask-image: url(img/icon-arrow.svg);
    background-color: var(--color-theme-1);
    position: absolute;
    bottom: 5px;
	left: 50%;
    transform: translate(-50%,100%) rotate(90deg);
	z-index: 1;
}

.flow-item-title {
	display: flex;
	align-items: baseline;
	gap: 20px;
	margin-bottom: 30px;
}

.flow-item-title h3 {
	--fs: 25;
	font-size: var(--font-size);
	font-weight: 600;
	border-bottom: 2px dashed var(--color-theme-1);
	padding-bottom: 10px;
	margin-bottom: 0;
}

.flow-item-title span {
	display: inline-grid;
	place-items: center;
	min-width: 80px;
	min-height: 80px;
	--fs: 45;
	font-weight: 600;
	line-height: 1;
	color: #FFF;
	font-weight: 700;
	background: var(--color-theme-1);
	border-radius: 50%;
	padding-bottom: 8px;
}

.flow-item strong {
	--fs: 18;
	font-size: var(--font-size);
}

@media(max-width: 767px) {
	.flow-content {
		gap: 15px;
	}
	.flow-item {
		border-radius: 10px;
		padding: 30px 15px;
	}
	.flow-item:not(:last-child)::before {
		width: 40px;
	}
	.flow-item-title {
		gap: 10px;
		margin-bottom: 20px;
	}
	.flow-item-title span {
		min-width: 50px;
		min-height: 50px;
		--fs: 28;
		padding-bottom: 3px;
	}
	.flow-item-title h3 {
		--fs: 20;
		border-bottom: 1px dashed var(--color-theme-1);
	}
	.flow-item strong {
		--fs: 16;
	}
}

.data-caution {
	border: 2px solid var(--color-theme-1);
	border-radius: 30px;
	padding: 30px 40px;
	margin-bottom: 80px;
}

/*.data-caution p {
	max-width: 920px;
	margin-inline: auto;
}*/

@media(max-width: 767px) {
	.data-caution {
		border-radius: 15px;
		padding: 25px 15px;
	}
}

.data-download-list {
	max-width: 840px;
	width: 100%;
	margin-inline: auto;
	margin-bottom: 30px;
}

.data-download-item {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	border-top: 1px dashed #ACACAC;
	padding: 20px 30px;
}

.data-download-item:last-child {
	border-bottom: 1px dashed #ACACAC;
}

.data-download-item p {
	font-weight: 600;
	line-height: 1.5;
	margin-bottom: 0;
}

.data-download-item p span {
	--fs: 14;
	font-weight: 400;
}

.data-download-item a {
	position: relative;
	display: grid;
	place-items: center;
	width: 255px;
	min-height: 45px;
	--fs: 14;
	font-weight: 500;
	color: #FFF;
	background: var(--color-theme-1);
	border-radius: 5px;
	padding: 5px 35px;
}

.data-download-item a::before {
	content: "";
	width: 17px;
	aspect-ratio: 1 / 1;
	background: url(img/icon-download.svg) center / cover;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
}

@media(max-width: 575px) {
	.data-download-item {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 15px;
	}
	.data-download-item a {
		width: 100%;
	}
}

.contact-content {
	max-width: 935px;
	margin-inline: auto;
}

.contact-form {
	background: #FFF7ED;
	border-radius: 20px;
	padding: 50px 20px 70px;
}

.contact-form .form-group {
	max-width: 800px;
	margin-inline: auto;
	margin-bottom: 30px;
}

.form-label {
	display: flex;
	align-items: baseline;
	gap: 15px;
	--fs: 15;
	font-size: var(--font-size);
	font-weight: 500;
}

.form-label .hissu {
	display: grid;
	place-items: center;
	width: 60px;
	min-height: 24px;
	--fs: 14;
	font-size: var(--font-size);
	color: #FFF;
	letter-spacing: 0.05em;
	background: var(--color-theme-1);
	border-radius: 30px;
}

.form-group select {
	background: #FFF;
	min-height: 50px;
	border: 1px solid #000;
	border-radius: 10px;
	padding: 10px 15px;
}

.form-control {
	border: 1px solid #000;
	border-radius: 10px;
	min-height: 50px;
	padding: 10px 15px;
}

.form-control::placeholder {
	color: #D9D9D9;
}

@media(max-width: 767px) {
	.contact-form {
		border-radius: 10px;
		padding: 40px 15px;
	}
	.form-group select {
		min-height: 40px;
		padding: 5px 15px;
	}
	.form-control {
		min-height: 40px;
		padding: 5px 15px;
	}
}

/*		見積もりフォーム		*/
.estimate-title {
	margin-bottom: 20px;
}

.estimate-title span {
	display: inline-block;
    --fs: 18;
    line-height: 1.2;
	text-align: center;
	min-width: 150px;
    background: var(--theme-color);
    color: #FFF;
    border-radius: 20px;
    max-inline-size: max-content;
    padding: 2px 15px;
	margin-bottom: 25px;
}

.estimate-title h1 {
	--fs: 30;
	font-size: var(--font-size);
	margin-bottom: 0;
}

.name-field-content {
  display: none;
}

.name-field-content.show {
  display: block;
}

.quote-form .form-group {
	float: none;
	margin-top: 50px;
	margin-bottom: 0;
}

.quote-form .form-group + .form-group {
	margin-top: 80px;
}

.quote-form .form-group .form-group{
	margin-top: 40px;
}


.quote-form .form-label {
	display: block;
	--fs: 18;
	font-size: var(--font-size);
	font-weight: 500;
	margin-bottom: 15px;
}

.quote-form .design-item {
	background: #FFF;
	border: 1px solid #000;
	padding: 15px;
}

.quote-form .design-item.other {
	grid-column: span 4;
	padding: 30px 50px;
}

.quote-form .design-item.other .design-item-text {
	--fs: 15;
}

.quote-form .form-label.required::after {
	content: "必須";
	display: inline-grid;
	place-items: center;
	width: 48px;
	min-height: 24px;
	--fs: 13;
	font-size: var(--font-size);
	color: #FFF;
	letter-spacing: 0.05em;
	background: #D90606;
	border-radius: 6px;
	margin-left: 10px;
}

.quote-form .form-group > legend:not(.form-label) {
	--fs: 18;
	font-size: var(--font-size);
	font-weight: 500;
	background: #F1F1F1;
	padding: 5px 20px;
}

.quote-form .design-item > * {
	max-width: 100%;
}

.quote-form .design-list:has(> .design-item:nth-child(3):last-child) {
	display: grid;
}

.quote-form .horizontal-item {
	display: inline-block;	
	margin-right: 10px;
	margin-bottom: 10px;
}

.quote-form .horizontal-item:last-of-type {
	margin-right: 0;
}

.quote-form .horizontal-item + .horizontal-item {
	margin-left: 0;
}

.quote-form .horizontal-item label {
	display: inline-grid;
	align-items: center;
	grid-template-columns: auto 1fr;
	--fs: 16;
	font-weight: 500;
	min-width: 235px;
	min-height: 47px;
	border: 1px solid #000;
	padding: 5px 15px;
}

.quote-form .form-control {
	min-height: 47px;
	border-radius: 0;
}

.quote-form select {
	background: #FFF;
	min-height: 47px;
	border-radius: 0;
}

.quote-form .horizontal-item:has(.checkbox-privacy) {
	margin-bottom: 0;
}

.quote-form .horizontal-item label:has(.checkbox-privacy) {
	min-height: 0;
	border: none;
	padding: 0;
}

legend {
	float: none;
	margin-bottom: 0;
}

.send-button {
	display: inline-grid;
	place-items: center;
	--fs: 15;
	font-weight: 500;
	color: #FFF;
	width: 220px;
	min-height: 46px;
	background: var(--theme-color);
	border: none;
	border-radius: 40px;
}

.send-button:hover {
	opacity: 0.6;
}

.mw_wp_form .error {
	grid-column: 1 / -1;
}

.mw_wp_form .error:has( + * ) {
	margin-bottom: 5px;
}

@media(max-width: 991px) {
	.quote-form .design-item.other {
		grid-column: span 3;
	}
}

@media(max-width: 767px) {
	.estimate-title span {
		--fs: 15;
		margin-bottom: 20px;
	}
	.estimate-title h1 {
		--fs: 24;
		letter-spacing: -0.05em;
	}
	.quote-form .design-item.other {
		grid-column: span 2;
		padding: 25px;
	}
	.quote-form .form-label {
		--fs: 16;
	}
	.quote-form .form-label.required::after {
		width: 40px;
		min-height: 20px;
		--fs: 12;
	}
	.quote-form .horizontal-item {
		font-size: var(--font-size);
		margin-right: 5px;
	}
	.quote-form .horizontal-item label {
		--fs: 15;
		min-width: 175px;
		min-height: 40px;
		padding: 5px 10px;
	}
}

.invisible {
	width: 0;
	height: 0;
}

.quote-form:has(.error)::before {
	content: "未入力の項目があります。";
    display: block;
    width: 100%;
    padding: 4px 10px;
    border: 1px solid #B70000;
    color: #B70000;
    text-align: center;
    font-weight: 500;
    margin-bottom: 20px;
    margin-top: 35px;
}