* {
	box-sizing: border-box;
	overflow-wrap: break-word;
}

:root {
	--blue: #0875dc;
	--blue-dark: #005fb8;
	--text: #15181d;
	--muted: #6e7780;
	--line: #e0e4e8;
	--pale: #f3f5f7;
	--pale-2: #eeeeee;
	--white: #ffffff;
	--footer: #24272b;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--white);
	color: var(--text);
	font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: 0;
}

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

h1,
h2,
h3,
p {
	margin: 0;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 30;
	border-bottom: 1px solid var(--line);
	background: rgba(255, 255, 255, 0.96);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(1180px, calc(100% - 48px));
	height: 64px;
	margin: 0 auto;
	gap: 24px;
}

.logo,
.footer-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 92px;
	height: 34px;
	background: var(--pale-2);
	color: #9aa0a6;
	font-size: 11px;
	font-weight: 700;
}

.global-nav,
.footer-nav {
	display: flex;
	gap: 24px;
	font-size: 12px;
	font-weight: 700;
}

.global-nav a:hover,
.footer-nav a:hover {
	color: var(--blue);
}

.header-actions,
.cta-buttons {
	display: flex;
	align-items: center;
	gap: 10px;
}

.header-tel {
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 116px;
	min-height: 38px;
	padding: 8px 18px;
	border: 1px solid var(--blue);
	border-radius: 2px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.btn-primary {
	background: var(--blue);
	color: var(--white);
}

.btn-primary:hover {
	background: var(--blue-dark);
}

.btn-outline {
	background: var(--white);
	color: var(--blue);
}

.btn-large {
	min-width: 260px;
	min-height: 52px;
	font-size: 14px;
}

.hero,
.page-hero {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 430px;
	padding: 76px 24px;
	background: var(--pale);
	text-align: center;
}

.page-hero {
	min-height: 340px;
}

.eyebrow,
.section-label {
	color: var(--muted);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
}

.hero .eyebrow,
.page-hero .eyebrow {
	position: absolute;
	top: 36px;
	right: max(24px, calc((100vw - 1080px) / 2));
}

.hero h1,
.page-hero h1 {
	max-width: 920px;
	font-size: 34px;
	font-weight: 800;
	line-height: 1.55;
}

.page-hero h1 {
	font-size: 38px;
}

.hero-lead,
.page-hero p:last-child {
	max-width: 780px;
	margin-top: 20px;
	color: #3a4148;
	font-weight: 700;
}

.hero .cta-buttons {
	margin-top: 30px;
}

.floating-movie {
	position: absolute;
	right: max(24px, calc((100vw - 1180px) / 2));
	bottom: -74px;
	width: 188px;
	padding: 16px 18px;
	background: var(--blue);
	color: var(--white);
	text-align: center;
}

.floating-movie::after {
	content: "×";
	position: absolute;
	top: -15px;
	right: -15px;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border: 2px solid var(--blue);
	border-radius: 50%;
	background: var(--white);
	color: var(--blue);
	font-weight: 800;
}

.floating-movie button {
	width: 60px;
	height: 60px;
	border: 0;
	border-radius: 50%;
	background: var(--white);
	color: var(--blue);
	font-size: 22px;
}

.floating-movie p {
	margin-top: 8px;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.5;
}

.section,
.cta-final {
	width: min(1040px, calc(100% - 48px));
	margin: 118px auto 0;
	text-align: center;
}

.section h2,
.cta-final h2 {
	margin-top: 6px;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.55;
}

.section > p:not(.section-label),
.split-section p:not(.section-label) {
	color: var(--muted);
}

.summary-text {
	margin-top: 24px;
	font-size: 18px;
	font-weight: 800;
	color: var(--text) !important;
}

.icon-grid,
.feature-grid,
.service-grid,
.article-grid,
.stat-grid,
.mv-grid,
.process-grid {
	display: grid;
	gap: 24px;
	margin-top: 34px;
}

.icon-grid.six {
	grid-template-columns: repeat(3, 1fr);
}

.icon-grid.four,
.feature-grid,
.stat-grid {
	grid-template-columns: repeat(4, 1fr);
}

.service-grid {
	grid-template-columns: repeat(2, 1fr);
}

.contact-example-list,
.merit-list,
.related-card-list,
.voice-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 34px;
}

.contact-example-list {
	grid-template-columns: repeat(4, 1fr);
}

.reason-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 34px;
}

.article-grid,
.mv-grid,
.process-grid {
	grid-template-columns: repeat(3, 1fr);
}

.icon-card,
.service-card,
.text-card,
.stat-item {
	background: var(--pale);
	text-align: left;
}

.icon-card,
.service-card {
	display: grid;
	grid-template-columns: 82px 1fr;
	align-items: center;
	gap: 18px;
	min-height: 132px;
	padding: 26px 28px;
}

.icon-card p,
.service-card p,
.text-card p,
.article-card p {
	color: var(--muted);
	font-size: 13px;
}

.circle-icon {
	display: grid;
	place-items: center;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: var(--white);
	color: #a8afb7;
	font-size: 11px;
	font-weight: 700;
}

.service-card h3,
.text-card h3,
.article-card h3 {
	color: var(--blue);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.55;
}

.service-card h3 {
	margin-bottom: 4px;
}

.split-section {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 48px;
	text-align: left;
}

.split-section h2 {
	margin-bottom: 16px;
}

.split-section .btn {
	margin-top: 26px;
}

.image-placeholder {
	display: grid;
	place-items: center;
	min-height: 210px;
	background: var(--pale-2);
	color: #a7adb4;
	font-size: 12px;
	font-weight: 700;
}

.image-placeholder.large {
	min-height: 300px;
}

.image-placeholder.portrait {
	min-height: 360px;
}

.number-card {
	background: var(--pale);
	text-align: center;
}

.number-card .number {
	display: grid;
	place-items: center;
	height: 178px;
	color: #a8aeb5;
	font-size: 48px;
	font-weight: 800;
}

.number-card h3 {
	padding: 0 22px;
	color: var(--text);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.55;
}

.number-card p {
	padding: 10px 22px 28px;
	color: var(--muted);
	font-size: 13px;
}

.section-button {
	margin-top: 30px;
}

.service-flow-diagram {
	display: grid;
	grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr;
	align-items: center;
	gap: 10px;
	margin-top: 34px;
}

.flow-item {
	display: grid;
	place-items: center;
	min-height: 92px;
	background: var(--pale);
	color: var(--blue);
	font-size: 16px;
	font-weight: 800;
}

.flow-arrow {
	color: var(--blue);
	font-size: 22px;
	font-weight: 800;
	transform: rotate(-90deg);
}

.service-detail-content {
	display: grid;
	grid-template-columns: 44% 1fr;
	align-items: start;
	gap: 42px;
	margin-top: 34px;
	text-align: left;
}

.service-text h3 {
	margin-top: 24px;
	color: var(--blue);
	font-size: 17px;
	font-weight: 800;
}

.service-text h3:first-child {
	margin-top: 0;
}

.service-text p,
.service-text li {
	color: var(--muted);
	font-size: 13px;
}

.service-text ul,
.check-list {
	display: grid;
	gap: 12px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.service-text li,
.check-list li {
	position: relative;
	padding-left: 24px;
}

.service-text li::before,
.check-list li::before {
	content: "";
	position: absolute;
	top: 0.75em;
	left: 0;
	width: 10px;
	height: 10px;
	background: var(--blue);
}

.check-list {
	width: min(820px, 100%);
	margin: 34px auto 0;
	padding: 28px;
	background: var(--pale);
	text-align: left;
}

.check-list.two-column {
	grid-template-columns: repeat(2, 1fr);
}

.step-list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
	margin-top: 34px;
}

.step-list.four {
	grid-template-columns: repeat(4, 1fr);
}

.step-item {
	min-height: 138px;
	padding: 24px 18px;
	background: var(--pale);
	text-align: center;
}

.step-item span {
	display: block;
	color: var(--blue);
	font-size: 12px;
	font-weight: 800;
}

.step-item h3 {
	margin-top: 8px;
	font-size: 17px;
	line-height: 1.5;
}

.step-item p {
	margin-top: 10px;
	color: var(--muted);
	font-size: 12px;
	text-align: left;
}

.faq-list {
	display: grid;
	gap: 12px;
	margin-top: 34px;
	text-align: left;
}

.faq-list details {
	border: 1px solid var(--line);
	background: var(--white);
}

.faq-list summary {
	position: relative;
	padding: 18px 56px 18px 22px;
	color: var(--text);
	font-weight: 800;
	cursor: pointer;
}

.faq-list summary::after {
	content: "+";
	position: absolute;
	right: 22px;
	color: var(--blue);
	font-size: 20px;
	font-weight: 800;
}

.faq-list details[open] summary::after {
	content: "-";
}

.faq-list p {
	padding: 0 22px 20px;
	color: var(--muted);
}

.case-story-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	text-align: left;
}

.case-story-grid .text-card {
	margin-top: 0;
}

.case-story-grid h2 {
	margin-bottom: 14px;
	font-size: 21px;
}

.result-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 34px;
}

.result-item {
	padding: 34px 18px;
	background: var(--pale);
	text-align: center;
}

.result-item p {
	color: var(--muted);
	font-weight: 800;
}

.result-item strong {
	display: block;
	margin-top: 8px;
	color: var(--blue);
	font-size: 34px;
	line-height: 1.2;
}

.voice-box {
	display: grid;
	grid-template-columns: 300px 1fr;
	align-items: center;
	gap: 34px;
	margin-top: 34px;
	padding: 28px;
	background: var(--pale);
	text-align: left;
}

.voice-box.reverse .image-placeholder {
	order: 2;
}

.voice-box p {
	color: var(--text);
	font-size: 17px;
	font-weight: 800;
}

.voice-item {
	background: var(--pale);
	text-align: left;
}

.voice-item .image-placeholder {
	min-height: 170px;
}

.voice-item p {
	padding: 18px;
	color: var(--muted);
}

.form-panel {
	display: grid;
	gap: 18px;
	width: min(820px, 100%);
	margin: 34px auto 0;
	padding: 34px;
	background: var(--pale);
	text-align: left;
}

.form-row {
	display: grid;
	grid-template-columns: 210px 1fr;
	gap: 20px;
	align-items: start;
}

.form-row label,
.form-privacy {
	font-weight: 800;
}

input,
select,
textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: 2px;
	background: var(--white);
	color: var(--text);
	font: inherit;
}

input,
select {
	min-height: 46px;
	padding: 8px 12px;
}

textarea {
	min-height: 180px;
	padding: 12px;
	resize: vertical;
}

.form-privacy {
	padding-left: 230px;
	color: var(--muted);
	font-size: 13px;
}

.form-privacy input {
	width: auto;
	min-height: 0;
	margin-right: 8px;
}

.form-submit {
	padding-left: 230px;
}

.stat-item {
	padding: 26px 14px;
	text-align: center;
}

.stat-item span {
	display: block;
	color: var(--muted);
	font-size: 13px;
	font-weight: 700;
}

.stat-item strong {
	display: block;
	margin-top: 8px;
	color: var(--blue);
	font-size: 30px;
	line-height: 1.25;
}

.article-card {
	text-align: left;
}

.article-card h3 {
	margin-top: 16px;
}

.article-card p + p {
	margin-top: 2px;
}

.article-card.compact .image-placeholder {
	min-height: 160px;
}

.ceo-message {
	margin-top: 96px;
}

.news-list {
	margin-top: 30px;
	border-top: 1px solid var(--line);
	text-align: left;
}

.news-list a {
	display: grid;
	grid-template-columns: 130px 120px 1fr;
	align-items: center;
	gap: 18px;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
}

.news-list time,
.news-list span {
	color: var(--muted);
	font-size: 12px;
	font-weight: 700;
}

.news-list span {
	display: inline-flex;
	justify-content: center;
	padding: 3px 10px;
	background: var(--pale);
}

.news-list strong {
	color: var(--blue);
	font-size: 13px;
}

.cta-final {
	width: 100%;
	margin-top: 118px;
	padding: 66px 24px 76px;
	background: var(--pale);
}

.cta-final h2 {
	margin-bottom: 28px;
}

.cta-final .cta-buttons {
	justify-content: center;
}

.download-box {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	width: min(820px, 100%);
	margin: 34px auto 0;
	padding: 20px 28px;
	background: var(--white);
}

.download-box span {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 1px solid var(--text);
	border-radius: 50%;
	font-weight: 800;
}

.download-box p {
	flex: 1;
	color: var(--text);
	font-size: 13px;
	text-align: left;
}

.site-footer {
	background: var(--footer);
	color: var(--white);
}

.footer-inner {
	display: flex;
	justify-content: space-between;
	width: min(1040px, calc(100% - 48px));
	margin: 0 auto;
	padding: 58px 0;
	gap: 48px;
}

.footer-logo {
	margin-bottom: 24px;
	background: #3a3d42;
	color: #777e86;
}

.footer-inner p {
	color: #b9bec4;
	font-size: 12px;
}

.footer-nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(96px, 1fr));
	align-content: start;
	gap: 14px 36px;
}

.text-card {
	padding: 30px;
}

.text-card span {
	display: inline-block;
	margin-bottom: 12px;
	color: #a8aeb5;
	font-size: 28px;
	font-weight: 800;
}

table {
	width: 100%;
	margin-top: 30px;
	border-collapse: collapse;
	text-align: left;
}

th,
td {
	padding: 18px 22px;
	border: 1px solid var(--line);
}

th {
	width: 28%;
	background: var(--pale);
	font-weight: 800;
}

td {
	color: var(--muted);
}

.timeline {
	display: grid;
	gap: 18px;
	margin: 34px 0 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

.timeline li {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 24px;
	align-items: start;
	padding: 24px;
	background: var(--pale);
}

.timeline span {
	color: var(--blue);
	font-size: 20px;
	font-weight: 800;
}

.timeline h3 {
	font-size: 17px;
	line-height: 1.55;
}

.timeline p {
	color: var(--muted);
}

.timeline.slim li {
	grid-template-columns: 160px 1fr;
}

@media (max-width: 1020px) {
	.header-inner {
		width: min(100% - 28px, 760px);
		height: auto;
		padding: 14px 0;
		flex-wrap: wrap;
	}

	.global-nav {
		order: 3;
		width: 100%;
		justify-content: center;
		flex-wrap: wrap;
		gap: 14px 20px;
	}

	.header-actions {
		margin-left: auto;
	}

	.icon-grid.six,
	.icon-grid.four,
	.feature-grid,
	.service-grid,
	.article-grid,
	.stat-grid,
	.mv-grid,
	.process-grid,
	.contact-example-list,
	.merit-list,
	.related-card-list,
	.voice-list,
	.reason-list,
	.result-list {
		grid-template-columns: repeat(2, 1fr);
	}

	.split-section {
		grid-template-columns: 1fr;
	}

	.service-flow-diagram {
		grid-template-columns: 1fr;
	}

	.flow-arrow {
		transform: none;
	}

	.service-detail-content,
	.voice-box,
	.case-story-grid {
		grid-template-columns: 1fr;
	}

	.step-list,
	.step-list.four {
		grid-template-columns: repeat(2, 1fr);
	}

	.floating-movie {
		display: none;
	}
}

@media (max-width: 680px) {
	body {
		font-size: 13px;
	}

	.header-actions {
		width: 100%;
		justify-content: center;
		flex-wrap: wrap;
	}

	.hero,
	.page-hero {
		min-height: 360px;
		padding: 52px 20px;
	}

	.hero .eyebrow,
	.page-hero .eyebrow {
		position: static;
		margin-bottom: 20px;
	}

	.hero h1,
	.page-hero h1 {
		font-size: 25px;
	}

	.section,
	.cta-final {
		width: min(100% - 28px, 520px);
		margin-top: 72px;
	}

	.cta-final {
		width: 100%;
		padding: 48px 14px;
	}

	.section h2,
	.cta-final h2 {
		font-size: 21px;
	}

	.icon-grid.six,
	.icon-grid.four,
	.feature-grid,
	.service-grid,
	.article-grid,
	.stat-grid,
	.mv-grid,
	.process-grid,
	.contact-example-list,
	.merit-list,
	.related-card-list,
	.voice-list,
	.reason-list,
	.result-list,
	.check-list.two-column,
	.step-list,
	.step-list.four {
		grid-template-columns: 1fr;
	}

	.icon-card,
	.service-card {
		grid-template-columns: 70px 1fr;
		padding: 22px;
	}

	.circle-icon {
		width: 62px;
		height: 62px;
	}

	.cta-buttons,
	.download-box {
		flex-direction: column;
	}

	.btn,
	.btn-large {
		width: 100%;
		min-width: 0;
	}

	.news-list a,
	.timeline li,
	.timeline.slim li {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.form-row {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.form-panel {
		padding: 22px;
	}

	.form-privacy,
	.form-submit {
		padding-left: 0;
	}

	.voice-box.reverse .image-placeholder {
		order: 0;
	}

	th,
	td {
		display: block;
		width: 100%;
	}

	.footer-inner {
		width: min(100% - 28px, 520px);
		flex-direction: column;
		padding: 42px 0;
	}

	.footer-nav {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Medical Learning Association top page */
html {
	overflow-x: hidden;
}

body.mla-top {
	--mla-orange: #ff9000;
	--mla-orange-deep: #f25f00;
	--mla-text: #2f3135;
	--mla-cream: #eee9e3;
	--mla-soft: #f6f6f8;
	--mla-dark: #303030;
	background: #fff;
	color: var(--mla-text);
	font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, Arial, sans-serif;
	font-size: 16px;
	line-height: 2;
	overflow-x: hidden;
	width: 100%;
}

.mla-top img {
	display: block;
	max-width: 100%;
}

.mla-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.98);
	box-shadow: 0 3px 9px rgba(0, 0, 0, 0.16);
}

.mla-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(1530px, calc(100% - 48px));
	height: 116px;
	margin: 0 auto;
	gap: 32px;
}

.mla-logo {
	display: block;
	flex: 0 0 auto;
	width: 380px;
	color: #191919;
	line-height: 1.2;
}

.mla-logo img {
	width: 100%;
	height: auto;
}

.mla-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(28px, 4vw, 70px);
	flex: 1;
	font-size: 18px;
	font-weight: 900;
	white-space: nowrap;
}

.mla-nav a,
.mla-contact-button {
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.mla-nav a:hover,
.mla-contact-button:hover {
	opacity: 0.78;
}

.mla-contact-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 254px;
	min-height: 61px;
	padding: 14px 34px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--mla-orange) 0%, var(--mla-orange-deep) 100%);
	color: #fff;
	font-size: 18px;
	font-weight: 900;
	white-space: nowrap;
}

.mla-container {
	width: min(1200px, calc(100% - 48px));
	margin: 0 auto;
}

.mla-section-title {
	position: relative;
	margin: 0;
	color: var(--mla-orange);
	font-size: 28px;
	font-weight: 900;
	line-height: 1.5;
}

.mla-section-title--line {
	padding-left: 63px;
}

.mla-section-title--line::before,
.mla-section-title--white::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 42px;
	height: 1px;
	background: currentColor;
}

.mla-section-title--white {
	padding-left: 63px;
	color: #fff;
}

.mla-bang {
	position: absolute;
	width: 47px;
	height: 318px;
	pointer-events: none;
}

.mla-bang::before,
.mla-bang::after {
	content: "";
	position: absolute;
	left: 0;
	width: 47px;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--mla-orange-deep) 0%, var(--mla-orange) 100%);
}

.mla-bang::before {
	top: 0;
	height: 238px;
}

.mla-bang::after {
	bottom: 0;
	height: 47px;
}

.mla-hero {
	position: relative;
	min-height: 760px;
	padding-top: 62px;
	overflow: hidden;
	background: #fff;
}

.mla-hero__image {
	width: min(1238px, 78vw);
	margin-left: auto;
	overflow: hidden;
	border-radius: 76px 0 0 38px;
}

.mla-hero__image img {
	width: 100%;
	height: 655px;
	object-fit: cover;
	object-position: center;
}

.mla-hero__title {
	position: absolute;
	top: 265px;
	left: max(48px, calc((100vw - 1200px) / 2));
	z-index: 2;
	display: grid;
	justify-items: start;
	gap: 17px;
	margin: 0;
	color: #fff;
	font-size: clamp(34px, 4.35vw, 67px);
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: 0;
}

.mla-hero__title span {
	display: inline-block;
	padding: 15px 24px 18px;
	background: rgba(255, 144, 0, 0.96);
}

.mla-bang--hero-left {
	display: none;
	top: 0;
	left: 17%;
	height: 320px;
}

.mla-bang--hero-left::before {
	height: 149px;
}

.mla-bang--hero-left::after {
	bottom: 111px;
}

.mla-purpose {
	position: relative;
	padding: 76px 0 118px;
	background: var(--mla-cream);
}

.mla-purpose__body {
	display: grid;
	grid-template-columns: minmax(420px, 560px) minmax(0, 1fr);
	align-items: end;
	margin-top: 68px;
}

.mla-purpose__card {
	position: relative;
	z-index: 2;
	min-height: 470px;
	padding: 54px 46px;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(42, 37, 32, 0.18);
}

.mla-purpose__card h3 {
	margin-bottom: 24px;
	font-size: 24px;
	font-weight: 900;
	line-height: 1.55;
}

.mla-purpose__card p {
	margin-top: 14px;
	font-size: 17px;
	font-weight: 700;
	line-height: 2.05;
}

.mla-purpose__image {
	width: calc(100% + 130px);
	max-width: none;
	height: 449px;
	margin-left: -130px;
	border-radius: 7px;
	object-fit: cover;
	box-shadow: 0 3px 10px rgba(42, 37, 32, 0.14);
}

.mla-bang--purpose-left {
	display: none;
	top: -150px;
	left: 5.1%;
}

.mla-bang--purpose-right {
	right: 5.1%;
	bottom: 610px;
}

.mla-program {
	margin-top: 78px;
}

.mla-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 42px;
}

.mla-type-card {
	overflow: hidden;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 4px 11px rgba(42, 37, 32, 0.18);
}

.mla-type-card img {
	width: 100%;
	aspect-ratio: 1.47 / 1;
	object-fit: cover;
}

.mla-type-card div {
	min-height: 239px;
	padding: 26px 32px 33px;
	text-align: center;
}

.mla-type-card h3 {
	font-size: 26px;
	font-weight: 900;
	line-height: 1.45;
}

.mla-type-card span {
	display: block;
	width: 44px;
	height: 8px;
	margin: 16px auto 20px;
	background: var(--mla-orange);
}

.mla-type-card p {
	text-align: left;
	font-size: 17px;
	font-weight: 700;
	line-height: 2;
}

.mla-other-service {
	margin-top: 34px;
	padding: 27px 36px 34px;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 4px 11px rgba(42, 37, 32, 0.18);
	text-align: center;
}

.mla-other-service h3 {
	color: var(--mla-orange);
	font-size: 20px;
	font-weight: 900;
}

.mla-other-service p {
	margin-top: 8px;
	font-size: 17px;
	font-weight: 700;
}

.mla-price {
	position: relative;
	padding: 83px 0 46px;
	background: var(--mla-soft);
}

.mla-price__row {
	display: grid;
	grid-template-columns: 128px 1fr;
	align-items: center;
	gap: 35px;
	margin-top: 68px;
}

.mla-price__row h3 {
	font-size: 27px;
	font-weight: 900;
}

.mla-price-table {
	display: grid;
	grid-template-columns: 252px repeat(3, 1fr);
	gap: 4px;
	text-align: center;
	font-size: 17px;
	font-weight: 900;
}

.mla-price-table > div {
	display: grid;
	place-items: center;
	min-height: 54px;
	border-radius: 8px;
	background: #fff;
}

.mla-price-table .is-label {
	background: var(--mla-orange);
	color: #fff;
}

.mla-price-table strong {
	color: var(--mla-orange);
	font-size: 22px;
}

.mla-price__row--corporate {
	margin-top: 88px;
	align-items: start;
}

.mla-price__contact {
	text-align: center;
}

.mla-price__contact p {
	margin-bottom: 14px;
	font-size: 17px;
	font-weight: 700;
}

.mla-price__contact a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 76px;
	width: min(380px, 100%);
	min-height: 56px;
	border: 1px solid var(--mla-orange);
	border-radius: 999px;
	background: #fff;
	color: var(--mla-orange);
	font-weight: 900;
}

.mla-price__contact span {
	font-size: 28px;
	line-height: 1;
}

.mla-bang--price-right {
	right: 6.2%;
	top: 76px;
	height: 359px;
}

.mla-bang--price-right::before {
	height: 274px;
}

.mla-reason {
	position: relative;
	padding: 64px 0 91px;
	background: var(--mla-soft);
}

.mla-reason__panel {
	display: grid;
	grid-template-columns: 1.48fr 1fr;
	margin-top: 42px;
	overflow: hidden;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 4px 11px rgba(42, 37, 32, 0.15);
}

.mla-reason__text {
	display: grid;
	align-content: center;
	gap: 34px;
	min-height: 322px;
	padding: 50px 56px;
	font-size: 22px;
	font-weight: 900;
	line-height: 2;
}

.mla-reason__panel img {
	width: 100%;
	height: 322px;
	object-fit: cover;
}

.mla-bang--reason-left {
	display: none;
	left: 5.8%;
	bottom: -117px;
}

.mla-greeting {
	padding: 88px 0 122px;
	background: var(--mla-soft);
	overflow: hidden;
}

.mla-greeting__body {
	position: relative;
	width: min(1200px, calc(100% - 48px));
	margin: 44px auto 0;
	min-height: 639px;
}

.mla-greeting__image {
	width: 780px;
	height: 612px;
	margin-left: auto;
	object-fit: cover;
	object-position: center;
}

.mla-greeting__card {
	position: absolute;
	top: 36px;
	left: 0;
	z-index: 2;
	width: min(650px, calc(100% - 96px));
	min-height: 592px;
	padding: 44px 41px 36px;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 4px 11px rgba(42, 37, 32, 0.16);
	font-size: 17px;
	font-weight: 700;
	line-height: 2;
}

.mla-greeting__card p + p {
	margin-top: 5px;
}

.mla-greeting__name {
	margin-top: 30px !important;
	text-align: right;
	font-size: 22px;
	font-weight: 900 !important;
}

.mla-greeting__name span {
	margin-right: 18px;
	font-size: 16px;
}

.mla-faq {
	position: relative;
	padding: 100px 0 116px;
	background: var(--mla-orange);
}

.mla-faq__list {
	display: grid;
	gap: 24px;
	margin-top: 37px;
}

.mla-faq details {
	border-radius: 8px;
	background: #fff;
	color: var(--mla-text);
}

.mla-faq summary {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 65px;
	padding: 14px 76px 14px 53px;
	font-weight: 900;
	line-height: 1.6;
	cursor: pointer;
	list-style: none;
}

.mla-faq summary::-webkit-details-marker {
	display: none;
}

.mla-faq summary::after {
	content: "+";
	position: absolute;
	right: 30px;
	top: 50%;
	color: var(--mla-orange);
	font-size: 36px;
	font-weight: 500;
	line-height: 1;
	transform: translateY(-50%);
}

.mla-faq details[open] summary::after {
	content: "-";
}

.mla-faq details p {
	padding: 0 53px 24px;
	font-weight: 700;
}

.mla-contact-placeholder {
	display: grid;
	place-items: center;
	width: min(690px, 100%);
	min-height: 513px;
	margin: 88px auto 0;
	background: #fff;
	color: #777;
	text-align: center;
	font-size: 29px;
	font-weight: 900;
	line-height: 1.45;
}

.mla-bang--faq-right {
	right: 5.3%;
	top: -139px;
	z-index: 2;
	height: 287px;
}

.mla-bang--faq-right::before {
	height: 210px;
}

.mla-profile {
	padding: 82px 0 90px;
	background: var(--mla-dark);
	color: #fff;
}

.mla-profile__list {
	display: grid;
	gap: 15px;
	margin: 32px 0 0;
	font-size: 18px;
	font-weight: 900;
}

.mla-profile__list div {
	display: grid;
	grid-template-columns: 134px 1fr;
	align-items: center;
	gap: 40px;
}

.mla-profile__list dt {
	display: grid;
	place-items: center;
	min-height: 49px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.06);
}

.mla-profile__list dd {
	margin: 0;
}

@media (max-width: 1180px) {
	.mla-header__inner {
		height: auto;
		padding: 18px 0;
		flex-wrap: nowrap;
		gap: clamp(14px, 2vw, 24px);
	}

	.mla-logo {
		width: min(300px, 28vw);
	}

	.mla-nav {
		order: 0;
		width: auto;
		flex: 1;
		flex-wrap: nowrap;
		gap: clamp(14px, 2vw, 26px);
		font-size: 16px;
	}

	.mla-contact-button {
		order: 0;
		min-width: 220px;
		min-height: 56px;
		padding: 12px 28px;
		font-size: 17px;
	}

	.mla-hero__image {
		width: min(1000px, calc(100% - 64px));
	}

	.mla-purpose__body,
	.mla-reason__panel {
		grid-template-columns: 1fr;
	}

	.mla-purpose__image {
		width: 100%;
		max-width: 100%;
		margin: 24px 0 0;
	}

	.mla-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mla-price__row {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.mla-greeting__image {
		width: 70%;
	}
}

@media (max-width: 1380px) {
	.mla-bang--purpose-right,
	.mla-bang--price-right,
	.mla-bang--faq-right {
		display: none;
	}
}

@media (max-width: 760px) {
	body.mla-top {
		font-size: 14px;
		line-height: 1.8;
	}

	.mla-header__inner,
	.mla-container {
		width: min(100% - 28px, 520px);
	}

	.mla-header__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 16px;
		padding: 22px 0;
	}

	.mla-logo {
		align-self: center;
		width: clamp(188px, 48vw, 250px);
	}

	.mla-contact-button {
		width: auto;
		min-width: 176px;
		min-height: 70px;
		padding: 14px 34px;
		border-radius: 999px;
		font-size: 26px;
	}

	.mla-nav {
		display: none;
	}

	.mla-section-title,
	.mla-section-title--white {
		font-size: 23px;
	}

	.mla-section-title--line,
	.mla-section-title--white {
		padding-left: 42px;
	}

	.mla-section-title--line::before,
	.mla-section-title--white::before {
		width: 28px;
	}

	.mla-hero {
		min-height: 760px;
		padding-top: 31px;
	}

	.mla-hero__image {
		width: calc(100% - 20px);
		margin-left: 20px;
		border-radius: 78px 0 0 66px;
	}

	.mla-hero__image img {
		height: 660px;
		object-position: 53% center;
	}

	.mla-hero__title {
		top: 374px;
		left: 40px;
		right: 40px;
		gap: 11px;
		font-size: clamp(22px, 6.5vw, 36px);
	}

	.mla-hero__title span {
		max-width: 100%;
		padding: 9px 12px 12px;
		white-space: normal;
	}

	.mla-bang:not(.mla-bang--hero-left) {
		display: none;
	}

	.mla-bang--hero-left {
		display: none;
		top: 0;
		left: 30px;
		width: 46px;
		height: 132px;
	}

	.mla-bang--hero-left::before {
		width: 46px;
		height: 132px;
		border-radius: 0;
	}

	.mla-bang--hero-left::after {
		display: none;
	}

	.mla-purpose,
	.mla-price,
	.mla-reason,
	.mla-greeting,
	.mla-profile {
		padding-top: 58px;
		padding-bottom: 64px;
	}

	.mla-purpose__body {
		margin-top: 30px;
	}

	.mla-purpose__card {
		min-height: 0;
		padding: 28px 22px;
	}

	.mla-purpose__card h3 {
		font-size: 20px;
	}

	.mla-purpose__card p,
	.mla-type-card p,
	.mla-other-service p,
	.mla-price__contact p,
	.mla-greeting__card,
	.mla-profile__list {
		font-size: 15px;
	}

	.mla-purpose__image {
		width: 100%;
		height: 260px;
	}

	.mla-card-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.mla-type-card div {
		min-height: 0;
		padding: 22px;
	}

	.mla-type-card h3 {
		font-size: 22px;
	}

	.mla-price__row {
		margin-top: 36px;
	}

	.mla-price__row--corporate {
		margin-top: 54px;
	}

	.mla-price-table {
		grid-template-columns: 1fr 1fr;
		font-size: 15px;
	}

	.mla-price-table > div {
		min-height: 48px;
	}

	.mla-price-table > div:nth-child(1) {
		order: 1;
	}

	.mla-price-table > div:nth-child(5) {
		order: 2;
	}

	.mla-price-table > div:nth-child(2) {
		order: 3;
	}

	.mla-price-table > div:nth-child(6) {
		order: 4;
	}

	.mla-price-table > div:nth-child(3) {
		order: 5;
	}

	.mla-price-table > div:nth-child(7) {
		order: 6;
	}

	.mla-price-table > div:nth-child(4) {
		order: 7;
	}

	.mla-price-table > div:nth-child(8) {
		order: 8;
	}

	.mla-price-table strong {
		font-size: 18px;
	}

	.mla-reason__text {
		min-height: 0;
		padding: 28px 22px;
		font-size: 17px;
	}

	.mla-reason__panel img {
		height: 260px;
	}

	.mla-greeting__body {
		display: grid;
		width: min(100% - 28px, 520px);
		min-height: 0;
		gap: 24px;
	}

	.mla-greeting__card {
		position: static;
		width: 100%;
		min-height: 0;
		padding: 28px 22px;
	}

	.mla-greeting__image {
		width: 100%;
		height: 350px;
		order: -1;
		border-radius: 6px;
	}

	.mla-greeting__name {
		font-size: 19px;
	}

	.mla-faq {
		padding: 62px 0 72px;
	}

	.mla-faq summary {
		min-height: 58px;
		padding: 12px 52px 12px 18px;
		font-size: 14px;
	}

	.mla-faq summary::after {
		right: 18px;
		font-size: 28px;
	}

	.mla-faq details p {
		padding: 0 18px 20px;
		font-size: 14px;
	}

	.mla-contact-placeholder {
		min-height: 320px;
		margin-top: 48px;
		font-size: 22px;
	}

	.mla-profile__list div {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.mla-profile__list dt {
		justify-content: start;
		min-height: 42px;
		padding: 0 18px;
	}
}

@media (max-width: 430px) {
	.mla-header__inner {
		width: calc(100% - 18px);
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 10px;
		padding: 17px 0;
	}

	.mla-logo {
		width: clamp(162px, 47vw, 188px);
	}

	.mla-contact-button {
		min-width: 128px;
		min-height: 58px;
		padding: 10px 18px;
		font-size: 18px;
	}

	.mla-hero {
		min-height: 715px;
		padding-top: 29px;
	}

	.mla-hero__image {
		width: calc(100% - 20px);
		margin-left: 20px;
		border-radius: 70px 0 0 58px;
	}

	.mla-hero__image img {
		height: 625px;
	}

	.mla-hero__title {
		top: 357px;
		left: 26px;
		right: 26px;
		font-size: clamp(20px, 6.5vw, 29px);
	}

	.mla-hero__title span {
		white-space: normal;
	}

	body.mla-top {
		font-size: 13px;
	}

	.mla-section-title,
	.mla-section-title--white {
		font-size: 20px;
	}

	.mla-purpose__card h3 {
		font-size: 18px;
	}

	.mla-purpose__card p,
	.mla-type-card p,
	.mla-other-service p,
	.mla-price__contact p,
	.mla-greeting__card,
	.mla-profile__list {
		font-size: 14px;
	}

	.mla-type-card h3 {
		font-size: 19px;
	}

	.mla-other-service h3 {
		font-size: 18px;
	}

	.mla-price__row h3 {
		font-size: 22px;
	}

	.mla-price-table {
		font-size: 13px;
	}

	.mla-price-table strong {
		font-size: 16px;
	}

	.mla-reason__text {
		font-size: 15px;
	}

	.mla-greeting__name {
		font-size: 17px;
	}

	.mla-faq summary {
		font-size: 13px;
		padding: 12px 46px 12px 16px;
	}

	.mla-faq details p {
		font-size: 13px;
		padding: 0 16px 18px;
	}

	.mla-profile__list {
		font-size: 14px;
	}

	.contactBLock__ttl--jp {
		font-size: 20px;
	}

	.contactBLock__ttl--en {
		font-size: 12px;
	}
}
