/**
 * Mouton Library — おまかせ編曲便
 *
 * @package Mouton
 */

.library-arrangement-service {
	--arr-bg: #f8f9f6;
	--arr-text: #333333;
	--arr-blue-start: #6a82d2;
	--arr-blue-end: #4b64c0;
	--arr-red: #d9534f;
	--arr-blue: #4a90e2;

	background-color: var(--arr-bg);
	color: var(--arr-text);
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	line-height: 1.8;
	letter-spacing: 0.05em;
}

.library-arrangement-service img {
	max-width: 100%;
	height: auto;
	display: block;
}

.library-arrangement-service__container {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 20px;
}

.library-arrangement-service__section-subtitle {
	font-size: 0.9rem;
	font-weight: bold;
	margin-bottom: 5px;
	text-align: center;
}

.library-arrangement-service__section-subtitle--red {
	color: var(--arr-red);
	text-align: left;
}

.library-arrangement-service__section-subtitle--blue {
	color: var(--arr-blue);
}

.library-arrangement-service__section-title {
	font-size: 2.2rem;
	font-weight: bold;
	margin: 0 0 50px;
	text-align: center;
}

.library-arrangement-service__section-title--left {
	text-align: left;
	margin-bottom: 20px;
}

.library-arrangement-service__fade-in {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.library-arrangement-service__fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.library-arrangement-service__hero {
	padding: 80px 0 60px;
	background-color: var(--arr-bg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.library-arrangement-service__hero-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 60px;
	flex-wrap: wrap;
	gap: 40px;
}

.library-arrangement-service__hero-text-area {
	flex: 1;
	min-width: 300px;
}

.library-arrangement-service__hero-catch {
	font-size: 1.2rem;
	color: #555;
	margin-bottom: 10px;
}

.library-arrangement-service__hero-title {
	font-size: 3rem;
	font-weight: bold;
	margin: 0;
}

.library-arrangement-service__hero-image-area {
	flex: 1;
	min-width: 300px;
	display: flex;
	justify-content: flex-end;
}

.library-arrangement-service__hero-image {
	width: 100%;
	max-width: 450px;
	aspect-ratio: 4 / 3;
	border-top-left-radius: 150px;
	border-bottom-right-radius: 10px;
	border-top-right-radius: 10px;
	border-bottom-left-radius: 10px;
	object-fit: cover;
}

.library-arrangement-service__hero-description {
	text-align: center;
	max-width: 800px;
	margin: 0 auto;
	font-size: 1.05rem;
}

.library-arrangement-service__hero-description p {
	margin: 0;
}

.library-arrangement-service__img-placeholder {
	background-color: #ccc;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #666;
	font-weight: bold;
	font-size: 0.9rem;
	text-align: center;
	padding: 16px;
}

.library-arrangement-service__merit {
	background: linear-gradient(135deg, var(--arr-blue-start), var(--arr-blue-end));
	color: #fff;
	padding: 100px 0;
	margin: 0 0 60px;
}

.library-arrangement-service__merit-inner {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 40px;
}

.library-arrangement-service__merit-left {
	flex: 0 0 35%;
	min-width: 300px;
}

.library-arrangement-service__merit-title {
	color: #fff;
	margin-bottom: 0;
}

.library-arrangement-service__merit-right {
	flex: 1;
	min-width: 300px;
}

.library-arrangement-service__merit-item {
	margin-bottom: 40px;
}

.library-arrangement-service__merit-item:last-child {
	margin-bottom: 0;
}

.library-arrangement-service__merit-num {
	font-size: 1rem;
	opacity: 0.8;
	margin-bottom: 5px;
}

.library-arrangement-service__merit-item-title {
	font-size: 1.3rem;
	font-weight: bold;
	margin-bottom: 10px;
}

.library-arrangement-service__merit-item-desc {
	font-size: 0.95rem;
	opacity: 0.9;
}

.library-arrangement-service__flow {
	padding: 60px 20px;
}

.library-arrangement-service__flow-list {
	max-width: 700px;
	margin: 0 auto;
}

.library-arrangement-service__flow-item {
	display: flex;
	align-items: center;
	gap: 30px;
	margin-bottom: 40px;
	flex-wrap: wrap;
}

.library-arrangement-service__flow-image {
	width: 220px;
	aspect-ratio: 3 / 2;
	border-radius: 8px;
	object-fit: cover;
}

.library-arrangement-service__flow-text {
	flex: 1;
	min-width: 250px;
}

.library-arrangement-service__flow-num {
	font-size: 1.5rem;
	color: #aaa;
	margin-bottom: 5px;
}

.library-arrangement-service__flow-item-title {
	font-size: 1.2rem;
	font-weight: bold;
	margin-bottom: 10px;
}

.library-arrangement-service__flow-item-desc {
	font-size: 0.95rem;
	color: #555;
}

.library-arrangement-service__price {
	padding: 60px 20px;
}

.library-arrangement-service__price-box {
	border: 1px solid #dcdcdc;
	border-radius: 8px;
	padding: 50px 40px;
	max-width: 800px;
	margin: 0 auto;
	background-color: transparent;
}

.library-arrangement-service__price-main {
	text-align: center;
	font-size: 1.8rem;
	font-weight: normal;
	margin-bottom: 40px;
}

.library-arrangement-service__price-list-title {
	font-weight: bold;
	margin-bottom: 15px;
}

.library-arrangement-service__price-list {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}

.library-arrangement-service__price-list li {
	margin-bottom: 10px;
	padding-left: 1em;
	text-indent: -1em;
}

.library-arrangement-service__price-note {
	font-size: 0.85rem;
	color: #666;
	margin-top: 20px;
}

.library-arrangement-service__notes {
	padding: 60px 20px 100px;
}

.library-arrangement-service__notes-title {
	font-size: 1.5rem;
	font-weight: bold;
	text-align: center;
	margin: 0 0 50px;
}

.library-arrangement-service__notes-list {
	max-width: 800px;
	margin: 0 auto;
}

.library-arrangement-service__note-item {
	margin-bottom: 40px;
}

.library-arrangement-service__note-item-title {
	font-weight: bold;
	margin-bottom: 10px;
	font-size: 1.05rem;
}

.library-arrangement-service__note-item-desc {
	font-size: 0.95rem;
	color: #555;
}

body.mouton-page-library-arrangement-service .site-header,
body.mouton-page-library-arrangement-service .menu-toggle,
body.mouton-page-library-arrangement-service .nav-modal,
body.mouton-page-library-arrangement-service .site-footer {
	display: none !important;
}

body.mouton-page-library-arrangement-service #page.site {
	max-width: none;
}

body.mouton-page-library-arrangement-service .site-main,
body.mouton-page-library-arrangement-service .site-main--library-arrangement-service {
	width: 100%;
	max-width: none !important;
	padding: 0 !important;
}

@media (max-width: 768px) {
	.library-arrangement-service__container {
		padding: 0 max(24px, 6%);
	}

	.library-arrangement-service__hero-title {
		font-size: 2.2rem;
	}

	.library-arrangement-service__hero-description {
		text-align: left;
	}

	.library-arrangement-service__flow.library-arrangement-service__container {
		padding: 48px max(28px, 7%);
	}

	.library-arrangement-service__price.library-arrangement-service__container {
		padding: 48px max(28px, 7%);
	}

	.library-arrangement-service__notes.library-arrangement-service__container {
		padding: 48px max(28px, 7%) 80px;
	}

	.library-arrangement-service__flow-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}

	.library-arrangement-service__flow-image {
		width: 100%;
		max-width: 300px;
	}

	.library-arrangement-service__price-box {
		padding: 30px 24px;
	}
}
