@charset "utf-8";
/*
 * make8.jp デザイン変更（テーマ 1.5.0）
 *
 * custom.css（以前からのデザイン）の後に読み込み、次の部分を作り直す。
 *   1. 共通の決まり（色・書体・余白・ボタン）
 *   2. ヘッダー（パソコン・スマホ）、スマホのメニュー、スマホ下部の固定ボタン
 *   3. トップページ（写真、ご挨拶、事業内容、企業理念、私たちの強み、お問い合わせ）
 *   4. 下層ページのお問い合わせの帯とフッター
 *   5. 下層ページの既存部品（ページ見出し、ボタン、強みのカード、フォームのボタン）の上書き
 *
 * 新しく作った部品の名前は m8- で始める（以前の CSS と混ざらないようにするため）。
 * 雰囲気（紺と山吹色、明朝体）は以前のものを引き継いでいる。
 * 画面幅の切り替えは以前と同じ 750px（それ以下をスマホとする）。
 */

/* ==========================================================================
   1. 共通の決まり
   ========================================================================== */

:root {
	--m8-navy: #2c3963;
	--m8-navy-deep: #1f2947;
	--m8-navy-ink: #141b34;
	--m8-gold: #e5a600;
	--m8-gold-deep: #9c7300;       /* 白地の上の文字用（読みやすい濃さ） */
	--m8-gold-pale: #fbf5e4;
	--m8-ink: #1d2235;
	--m8-muted: #545b6e;
	--m8-line: #e2e4eb;
	--m8-bg-soft: #f6f6f3;
	--m8-white: #fff;

	--m8-serif: "Noto Serif JP", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "Yu Mincho", "游明朝", serif;
	--m8-en: "Cormorant Garamond", "Noto Serif JP", "Hiragino Mincho ProN", serif;
	--m8-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴシック", "Yu Gothic", "游ゴシック", "Meiryo", sans-serif;

	--m8-header-h: 104px;          /* パソコンのヘッダーの高さ（下層ページの上の余白に使う） */
	--m8-header-h-sp: 56px;
	--m8-spbar-h: 60px;
	--m8-ease: cubic-bezier(.22, .61, .36, 1);
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--m8-header-h) + 16px);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

/* 下層ページは固定ヘッダーの分だけ下げる（トップページは写真の上に重ねる） */
body:not(.home) {
	padding-top: var(--m8-header-h);
}

.m8-container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}

.m8-section {
	padding: 120px 0;
}

.m8-sp {
	display: none;
}

/* 英字書体（Cormorant）の数字は、既定だと高さが不ぞろいな飾り数字になるため、そろった形にする */
.m8-card__num,
.m8-feature__num,
.m8-tel__num,
.m8-header__tel-num,
.m8-news__date,
.m8-drawer__contact .m8-btn--outline-light {
	font-variant-numeric: lining-nums;
}

.m8-icon {
	flex: 0 0 auto;
	vertical-align: -.15em;
}

/* 読み上げソフト向けの文字（画面には出さない） */
.m8-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* キーボードで操作したときの位置を分かりやすくする */
.m8-header a:focus-visible,
.m8-header button:focus-visible,
.m8-drawer a:focus-visible,
.m8-drawer button:focus-visible,
.m8-home a:focus-visible,
.m8-cta a:focus-visible,
.m8-footer a:focus-visible,
.m8-spbar a:focus-visible {
	outline: 2px solid var(--m8-gold);
	outline-offset: 3px;
}

/* 「本文へ移動」（キーボード操作のときだけ出る） */
.m8-skip {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 3000;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	background: var(--m8-white);
	color: var(--m8-navy) !important;
	font-size: 14px;
	text-decoration: none;
}

.m8-skip:focus {
	width: auto;
	height: auto;
	padding: 10px 16px;
	clip: auto;
}

/* 見出し（英字の大見出し＋日本語の小見出し） */
.m8-heading {
	margin: 0 0 48px;
}

.m8-heading__en {
	margin: 0;
	font-family: var(--m8-en);
	font-size: 52px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .02em;
	color: var(--m8-navy);
}

.m8-heading__ja {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 16px 0 0;
	font-family: var(--m8-serif);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .2em;
	color: var(--m8-gold-deep);
}

.m8-heading__ja::before {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
}

.m8-heading--center {
	text-align: center;
}

.m8-heading--center .m8-heading__ja {
	justify-content: center;
}

.m8-heading--center .m8-heading__ja::after {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
}

.m8-heading--light .m8-heading__en {
	color: var(--m8-white);
}

.m8-heading--light .m8-heading__ja {
	color: var(--m8-gold);
}

/* ボタン */
.m8-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	min-height: 52px;
	padding: 12px 28px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-family: var(--m8-serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .06em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .3s var(--m8-ease), color .3s var(--m8-ease), border-color .3s var(--m8-ease), box-shadow .3s var(--m8-ease);
}

.m8-btn .m8-icon--arrow {
	transition: transform .3s var(--m8-ease);
}

.m8-btn:hover .m8-icon--arrow {
	transform: translateX(4px);
}

/* 山吹色の地に紺の文字（白い文字だと読みにくいため） */
.m8-btn--gold,
.m8-btn--gold:link,
.m8-btn--gold:visited {
	background: var(--m8-gold);
	color: var(--m8-navy-ink) !important;
}

.m8-btn--gold:hover {
	background: var(--m8-navy);
	color: var(--m8-white) !important;
	box-shadow: 0 8px 20px rgba(20, 27, 52, .18);
}

.m8-btn--navy,
.m8-btn--navy:link,
.m8-btn--navy:visited {
	background: var(--m8-navy);
	color: var(--m8-white) !important;
}

.m8-btn--navy:hover {
	background: var(--m8-gold);
	color: var(--m8-navy-ink) !important;
}

.m8-btn--outline,
.m8-btn--outline:link,
.m8-btn--outline:visited {
	border-color: var(--m8-navy);
	background: transparent;
	color: var(--m8-navy) !important;
}

.m8-btn--outline:hover {
	background: var(--m8-navy);
	color: var(--m8-white) !important;
}

.m8-btn--outline-light,
.m8-btn--outline-light:link,
.m8-btn--outline-light:visited {
	border-color: rgba(255, 255, 255, .7);
	background: transparent;
	color: var(--m8-white) !important;
}

.m8-btn--outline-light:hover {
	border-color: var(--m8-white);
	background: var(--m8-white);
	color: var(--m8-navy) !important;
}

.m8-btn--lg {
	min-height: 60px;
	padding: 14px 36px;
	font-size: 16px;
}

.m8-btn--block {
	display: flex;
	width: 100%;
}

/* 電話番号（大きく見せる） */
.m8-tel,
.m8-tel:link,
.m8-tel:visited {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	color: var(--m8-navy) !important;
	text-decoration: none;
}

.m8-tel__num {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--m8-en);
	font-size: 46px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .02em;
}

.m8-tel__num .m8-icon {
	font-size: 30px;
	color: var(--m8-gold);
}

.m8-tel__time {
	margin-top: 4px;
	font-size: 13px;
	letter-spacing: .08em;
	color: var(--m8-muted);
}

/* ==========================================================================
   2. ヘッダー
   ========================================================================== */

/* 以前のヘッダー部品（出力していないが、念のため隠す） */
.contact_btn,
.sp_hd,
.sp_contactBox,
#menu,
.slicknav_menu {
	display: none !important;
}

.m8-header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1000;
	transition: background-color .35s var(--m8-ease), box-shadow .35s var(--m8-ease);
}

.admin-bar .m8-header {
	top: 32px;
}

.m8-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	max-width: 1360px;
	height: var(--m8-header-h);
	margin: 0 auto;
	padding: 0 32px;
	transition: height .35s var(--m8-ease);
}

.m8-header__logo,
.m8-header__logo:link,
.m8-header__logo:visited {
	color: inherit !important;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 0 0 auto;
	text-decoration: none;
}

.m8-header__tagline {
	font-family: var(--m8-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.3;
	transition: opacity .3s;
}

.m8-header__logo img {
	display: block;
	width: 180px;
	height: auto;
	transition: width .35s var(--m8-ease);
}

.m8-gnav {
	margin-left: auto;
}

.m8-gnav__list {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

.m8-gnav__list a,
.m8-gnav__list a:link,
.m8-gnav__list a:visited {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 10px 18px;
	text-decoration: none;
	color: inherit !important;
}

.m8-gnav__en {
	font-family: var(--m8-en);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .04em;
}

.m8-gnav__ja {
	margin-top: 3px;
	font-size: 11px;
	letter-spacing: .12em;
	opacity: .8;
}

.m8-gnav__list a::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: 2px;
	left: 18px;
	height: 1px;
	background: var(--m8-gold);
	transform: scaleX(0);
	transition: transform .3s var(--m8-ease);
}

.m8-gnav__list a:hover::after {
	transform: scaleX(1);
}

.m8-header__contact {
	display: flex;
	align-items: center;
	gap: 22px;
}

.m8-header__tel,
.m8-header__tel:link,
.m8-header__tel:visited {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	color: inherit !important;
	text-decoration: none;
}

.m8-header__tel-num {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--m8-en);
	font-size: 26px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .02em;
}

.m8-header__tel-num .m8-icon {
	font-size: 17px;
	color: var(--m8-gold);
}

.m8-header__tel-time {
	margin-top: 4px;
	font-size: 11px;
	letter-spacing: .06em;
	opacity: .8;
}

.m8-header__cta {
	min-height: 48px;
	padding: 10px 22px;
	font-size: 14px;
}

.m8-menu-btn {
	display: none;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	margin-left: auto;
	padding: 6px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}

.m8-menu-btn__bars {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 26px;
}

.m8-menu-btn__bars span {
	display: block;
	height: 2px;
	background: currentColor;
}

.m8-menu-btn__label {
	font-size: 10px;
	letter-spacing: .1em;
	line-height: 1;
}

/* トップページ：写真の上に透明で重ね、下へ動かすと紺の帯にする */
.m8-header--top {
	color: var(--m8-white);
	background: linear-gradient(to bottom, rgba(20, 27, 52, .55), rgba(20, 27, 52, 0));
}

.m8-header--top .m8-header__logo-dark {
	display: none !important;
}

.m8-header--top.is-scrolled {
	background: rgba(44, 57, 99, .97);
	box-shadow: 0 6px 24px rgba(10, 14, 30, .18);
}

/* 下層ページ：白い帯に紺のロゴ */
.m8-header--page {
	color: var(--m8-navy);
	background: rgba(255, 255, 255, .98);
	border-bottom: 1px solid var(--m8-line);
}

.m8-header--page .m8-header__logo-light {
	display: none !important;
}

.m8-header--page .m8-header__tagline {
	color: var(--m8-navy);
}

.m8-header--page.is-scrolled {
	box-shadow: 0 6px 24px rgba(20, 27, 52, .08);
}

/* 下へ動かしたら少し低くする */
.m8-header.is-scrolled .m8-header__inner {
	height: 78px;
}

.m8-header.is-scrolled .m8-header__logo img {
	width: 150px;
}

.m8-header.is-scrolled .m8-header__tagline {
	display: none;
}

/* 幅が狭いパソコンでは、電話番号→メニューの順に省き、メニューのボタンに切り替える */
@media (max-width: 1240px) {
	.m8-header__tel {
		display: none !important;
	}
}

@media (max-width: 1000px) {
	.m8-gnav,
	.m8-header__contact {
		display: none;
	}

	.m8-menu-btn {
		display: flex;
	}
}

/* スマホのメニュー（画面の右から開く） */
.m8-drawer {
	position: fixed;
	inset: 0;
	z-index: 2000;
}

.m8-drawer[hidden] {
	display: none;
}

.m8-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 14, 30, .55);
	opacity: 0;
	transition: opacity .3s var(--m8-ease);
}

.m8-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(420px, 100%);
	padding: 0 24px 32px;
	overflow-y: auto;
	background: var(--m8-navy);
	color: var(--m8-white);
	transform: translateX(100%);
	transition: transform .35s var(--m8-ease);
	overscroll-behavior: contain;
}

.m8-drawer.is-open .m8-drawer__backdrop {
	opacity: 1;
}

.m8-drawer.is-open .m8-drawer__panel {
	transform: none;
}

.m8-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--m8-header-h-sp);
	flex: 0 0 auto;
}

.m8-drawer__head img {
	width: 120px;
	height: auto;
}

.m8-drawer__close {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 6px;
	border: 0;
	background: none;
	color: var(--m8-white);
	font-size: 10px;
	letter-spacing: .1em;
	cursor: pointer;
}

.m8-drawer__close .m8-icon {
	font-size: 26px;
}

.m8-drawer__nav {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.m8-drawer__nav li {
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.m8-drawer__nav a,
.m8-drawer__nav a:link,
.m8-drawer__nav a:visited {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 4px;
	color: var(--m8-white) !important;
	text-decoration: none;
}

.m8-drawer__ja {
	font-family: var(--m8-serif);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .08em;
}

.m8-drawer__en {
	font-family: var(--m8-en);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--m8-gold);
}

.m8-drawer__contact {
	display: grid;
	gap: 12px;
	margin-top: 32px;
}

.m8-drawer__contact .m8-btn--outline-light {
	font-family: var(--m8-en);
	font-size: 22px;
	letter-spacing: .02em;
}

.m8-drawer__time {
	margin: 0;
	font-size: 12px;
	letter-spacing: .06em;
	text-align: center;
	opacity: .8;
}

/* メニューを開いている間は、後ろのページを動かさない */
html.m8-menu-open {
	overflow: hidden;
}

/* スマホ下部の固定ボタン（スマホだけ） */
.m8-spbar {
	display: none;
}

/* ==========================================================================
   3. トップページ
   ========================================================================== */

/* 写真（メインビジュアル） */
.m8-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(640px, 100vh, 900px);
	padding: calc(var(--m8-header-h) + 40px) 0 140px;
	background: var(--m8-navy-ink) url(../../../uploads/2020/10/nyc.jpg) center / cover no-repeat;
	color: var(--m8-white);
	isolation: isolate;
}

.m8-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(20, 27, 52, .86) 0%, rgba(20, 27, 52, .6) 42%, rgba(20, 27, 52, .12) 78%),
		linear-gradient(to top, rgba(20, 27, 52, .55), rgba(20, 27, 52, 0) 40%);
}

.m8-hero__inner {
	position: relative;
}

.m8-hero__en {
	position: relative;
	margin: 0;
	padding-top: 28px;
	font-family: var(--m8-en);
	font-size: clamp(64px, 7.4vw, 108px);
	font-weight: 600;
	line-height: .95;
	letter-spacing: .01em;
}

.m8-hero__en::before {
	content: "";
	position: absolute;
	top: 0;
	left: 2px;
	width: 64px;
	height: 2px;
	background: var(--m8-gold);
}

.m8-hero__title {
	margin: 32px 0 0;
	font-family: var(--m8-serif);
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .1em;
}

.m8-hero__title span {
	display: block;
	margin-top: 10px;
	font-size: clamp(15px, 1.25vw, 18px);
	font-weight: 500;
	letter-spacing: .12em;
	opacity: .88;
}

.m8-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 48px;
}

/* お知らせ（記事があるときだけ写真の下に出る） */
.m8-news {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(31, 41, 71, .92);
	backdrop-filter: blur(4px);
}

.m8-news__inner {
	display: flex;
	align-items: center;
	gap: 40px;
	min-height: 76px;
}

.m8-news__label {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	font-family: var(--m8-en);
	font-size: 22px;
	font-weight: 600;
	color: var(--m8-gold);
}

.m8-news__label span {
	font-family: var(--m8-serif);
	font-size: 12px;
	letter-spacing: .12em;
}

.m8-news__item,
.m8-news__item:link,
.m8-news__item:visited {
	display: flex;
	flex: 1;
	gap: 24px;
	min-width: 0;
	color: var(--m8-white) !important;
	text-decoration: none;
}

.m8-news__date {
	font-family: var(--m8-en);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .04em;
}

.m8-news__title {
	overflow: hidden;
	font-size: 15px;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.m8-news__item:hover .m8-news__title {
	text-decoration: underline;
}

.m8-news__more,
.m8-news__more:link,
.m8-news__more:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	letter-spacing: .08em;
	color: var(--m8-white) !important;
	text-decoration: none;
}

/* ご挨拶 */
.m8-intro {
	background: var(--m8-white) url(../../../uploads/2020/10/top_introduction_bg.png) center / cover no-repeat;
	text-align: center;
}

.m8-intro__inner {
	max-width: 900px;
}

.m8-intro__catch {
	margin: 0;
	font-family: var(--m8-serif);
	font-size: 30px;
	font-weight: 600;
	letter-spacing: .12em;
	color: var(--m8-gold-deep);
}

.m8-intro__text {
	margin: 28px 0 0;
	font-size: 17px;
	line-height: 2.2;
	letter-spacing: .06em;
	color: var(--m8-ink);
}

/* 事業内容 */
.m8-service {
	background: var(--m8-white);
	border-top: 1px solid var(--m8-line);
}

.m8-service__head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: end;
	gap: 56px;
	margin-bottom: 56px;
}

.m8-service__head .m8-heading {
	margin: 0;
}

.m8-service__lead {
	margin: 0;
	font-family: var(--m8-serif);
	font-size: 16px;
	line-height: 2;
	letter-spacing: .06em;
	color: var(--m8-muted);
}

.m8-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.m8-card {
	height: 100%;
}

.m8-card__link,
.m8-card__link:link,
.m8-card__link:visited {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--m8-line);
	background: var(--m8-white);
	color: var(--m8-ink) !important;
	text-decoration: none;
	transition: transform .35s var(--m8-ease), box-shadow .35s var(--m8-ease), border-color .35s var(--m8-ease);
}

.m8-card__link:hover {
	border-color: transparent;
	box-shadow: 0 18px 40px rgba(20, 27, 52, .12);
	transform: translateY(-4px);
}

.m8-card__img {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--m8-bg-soft);
}

.m8-card__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--m8-ease);
}

.m8-card__link:hover .m8-card__img img {
	transform: scale(1.05);
}

.m8-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px 28px 30px;
}

.m8-card__num {
	font-family: var(--m8-en);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--m8-gold-deep);
}

.m8-card__title {
	position: relative;
	margin-top: 6px;
	padding-bottom: 16px;
	font-family: var(--m8-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .06em;
	color: var(--m8-navy);
}

.m8-card__title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 32px;
	height: 2px;
	background: var(--m8-gold);
}

.m8-card__text {
	margin-top: 18px;
	font-size: 14px;
	line-height: 1.95;
	letter-spacing: .03em;
	color: var(--m8-muted);
}

.m8-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 22px;
	font-family: var(--m8-serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--m8-navy);
}

.m8-card__more .m8-icon {
	transition: transform .3s var(--m8-ease);
}

.m8-card__link:hover .m8-card__more {
	color: var(--m8-gold-deep);
}

.m8-card__link:hover .m8-card__more .m8-icon {
	transform: translateX(4px);
}

/* 企業理念 */
.m8-vision {
	position: relative;
	padding: 120px 0 0;
	overflow: hidden;
	background: radial-gradient(ellipse at 50% 0%, #34447a 0%, var(--m8-navy) 55%, var(--m8-navy-deep) 100%);
	color: var(--m8-white);
	text-align: center;
}

.m8-vision__inner {
	max-width: 960px;
}

.m8-vision__catch {
	margin: 0;
	font-family: var(--m8-serif);
	font-size: 25px;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: .1em;
	color: var(--m8-gold);
}

.m8-vision__text {
	margin: 32px 0 0;
	font-size: 16px;
	line-height: 2.2;
	letter-spacing: .05em;
	text-align: left;
	color: rgba(255, 255, 255, .88);
}

.m8-vision__skyline {
	margin-top: 64px;
	line-height: 0;
}

.m8-vision__skyline img {
	display: block;
	width: 100%;
	height: auto;
	opacity: .9;
}

/* 私たちの強み */
.m8-strength {
	background: var(--m8-bg-soft);
}

.m8-features {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.m8-feature {
	position: relative;
	padding: 52px 34px 40px;
	border-top: 3px solid var(--m8-gold);
	background: var(--m8-white);
	box-shadow: 0 10px 30px rgba(20, 27, 52, .06);
	text-align: center;
}

.m8-feature__num {
	position: absolute;
	top: 18px;
	left: 22px;
	font-family: var(--m8-en);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--m8-gold-deep);
}

.m8-feature__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: var(--m8-gold-pale);
}

.m8-feature__icon img {
	width: 78px;
	height: auto;
}

.m8-feature__title {
	margin: 26px 0 0;
	font-family: var(--m8-serif);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: .14em;
	color: var(--m8-navy);
}

.m8-feature__text {
	margin: 18px 0 0;
	font-size: 14px;
	line-height: 1.95;
	letter-spacing: .03em;
	text-align: left;
	color: var(--m8-muted);
}

/* お問い合わせ（トップページ） */
.m8-contact {
	padding: 120px 0;
	background: var(--m8-white) url(../../../uploads/2020/08/top_contact_bg-scaled.jpg) center / cover no-repeat;
}

.m8-contact__box {
	max-width: 1000px;
	margin: 0 auto;
	padding: 72px 56px 64px;
	border-top: 3px solid var(--m8-navy);
	background: var(--m8-white);
	box-shadow: 0 20px 50px rgba(20, 27, 52, .1);
}

.m8-contact__box .m8-heading {
	margin-bottom: 24px;
}

.m8-contact__lead {
	margin: 0;
	font-size: 15px;
	line-height: 2;
	letter-spacing: .06em;
	text-align: center;
	color: var(--m8-muted);
}

.m8-contact__actions {
	display: grid;
	grid-template-columns: 1fr 1px 1fr;
	align-items: center;
	gap: 48px;
	margin-top: 44px;
}

.m8-contact__actions::before {
	content: "";
	grid-column: 2;
	grid-row: 1;
	align-self: stretch;
	background: var(--m8-line);
}

.m8-contact__actions .m8-tel {
	grid-column: 1;
	grid-row: 1;
	justify-self: center;
}

.m8-contact__actions .m8-btn {
	grid-column: 3;
	grid-row: 1;
}

/* ==========================================================================
   4. 下層ページのお問い合わせの帯とフッター
   ========================================================================== */

.m8-cta {
	padding: 80px 0;
	background: var(--m8-bg-soft);
	border-top: 1px solid var(--m8-line);
}

.m8-cta__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 48px;
}

.m8-cta__en {
	margin: 0;
	font-family: var(--m8-en);
	font-size: 40px;
	font-weight: 600;
	line-height: 1;
	color: var(--m8-navy);
}

.m8-cta__title {
	margin: 12px 0 0;
	font-family: var(--m8-serif);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .1em;
	color: var(--m8-navy);
}

.m8-cta__lead {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.9;
	color: var(--m8-muted);
}

.m8-cta__actions {
	display: flex;
	align-items: center;
	gap: 40px;
}

.m8-cta__actions .m8-tel__num {
	font-size: 38px;
}

.m8-footer {
	background: var(--m8-navy);
	color: var(--m8-white);
	font-family: var(--m8-sans);
}

.m8-footer a,
.m8-footer a:link,
.m8-footer a:visited {
	color: var(--m8-white) !important;
	text-decoration: none;
	transition: color .3s;
}

.m8-footer a:hover {
	color: var(--m8-gold) !important;
}

.m8-footer__main {
	display: grid;
	grid-template-columns: 1fr 1.5fr .8fr;
	gap: 56px;
	padding-top: 80px;
	padding-bottom: 56px;
}

.m8-footer__logo img {
	display: block;
	width: 200px;
	height: auto;
}

.m8-footer__tagline {
	margin: 18px 0 0;
	font-family: var(--m8-serif);
	font-size: 13px;
	letter-spacing: .08em;
	opacity: .9;
}

.m8-footer__license {
	margin: 8px 0 0;
	font-size: 12px;
	letter-spacing: .04em;
	opacity: .75;
}

.m8-footer__offices {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.m8-footer__office p {
	margin: 0;
}

.m8-footer__office-name {
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255, 255, 255, .16);
	font-family: var(--m8-serif);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .12em;
	color: var(--m8-gold);
}

.m8-footer__office-address {
	margin-top: 12px !important;
	font-size: 13px;
	line-height: 1.9;
	opacity: .9;
}

.m8-footer__office-tel {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin-top: 8px !important;
	font-size: 13px;
	letter-spacing: .04em;
}

.m8-footer__office-tel span {
	opacity: .75;
}

.m8-footer__nav-title {
	margin: 0 0 10px;
	font-family: var(--m8-en);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--m8-gold);
}

.m8-footer__nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.m8-footer__nav li a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 0;
	font-size: 14px;
	letter-spacing: .06em;
}

.m8-footer__nav .m8-icon {
	font-size: 12px;
	opacity: .7;
}

.m8-footer__banners {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding-top: 32px;
	padding-bottom: 40px;
}

.m8-footer__banners::before {
	content: "";
	position: absolute;
	top: 0;
	right: 32px;
	left: 32px;
	height: 1px;
	background: rgba(255, 255, 255, .12);
}

.m8-footer__banners a {
	display: block;
	width: 300px;
	line-height: 0;
	transition: opacity .3s;
}

.m8-footer__banners a:hover {
	opacity: .85;
}

.m8-footer__banners img {
	width: 100%;
	height: auto;
}

.m8-footer__bottom {
	background: var(--m8-navy-deep);
}

.m8-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
}

.m8-footer__sub {
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
}

.m8-footer__copy {
	margin: 0;
	font-size: 11px;
	letter-spacing: .06em;
	opacity: .7;
}

/* ==========================================================================
   5. 下層ページの既存部品の上書き
   ========================================================================== */

/* ページの見出し（写真の帯） */
.common_page_h1Box {
	padding: 110px 0 96px;
}

.common_page_h1Box::before {
	background: linear-gradient(90deg, rgba(20, 27, 52, .82) 0%, rgba(20, 27, 52, .45) 60%, rgba(20, 27, 52, .2) 100%) !important;
}

.common_page_h1_en {
	padding-bottom: 0;
	border-bottom: 0;
	font-family: var(--m8-en);
	font-size: 60px;
	font-weight: 600;
	letter-spacing: .02em;
}

.common_page_h1 {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 10px;
	font-family: var(--m8-serif) !important;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .16em;
	color: var(--m8-gold);
}

.common_page_h1::before {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
}

.common_page_h1Box .breadcrumb {
	margin-top: 28px;
	font-size: 12px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .85);
}

.common_page_h1Box .breadcrumb a {
	color: var(--m8-white) !important;
}

/* 以前のボタンを新しい形にそろえる */
.common_top_btn,
.page_contact_btn,
.page_satei_btn,
.top_contact_btn {
	text-align: center;
}

.common_top_btn a,
.common_top_btn.small a,
.page_contact_btn a,
.page_satei_btn a,
.top_contact_btn a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: .6em;
	width: auto !important;
	min-width: 280px;
	max-width: 100%;
	height: auto !important;
	min-height: 56px;
	margin: 40px auto 0;
	padding: 14px 36px !important;
	border-radius: 2px !important;
	background-image: none !important;
	font-family: var(--m8-serif) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: .06em;
	box-shadow: none;
}

.common_top_btn a::before,
.page_contact_btn a::before,
.page_satei_btn a::before,
.top_contact_btn a::before {
	display: none !important;
}

.common_top_btn a::after,
.page_contact_btn a::after,
.page_satei_btn a::after,
.top_contact_btn a::after {
	content: "→";
	font-family: var(--m8-sans);
	transition: transform .3s var(--m8-ease);
}

.common_top_btn a:hover::after,
.page_contact_btn a:hover::after,
.page_satei_btn a:hover::after,
.top_contact_btn a:hover::after {
	transform: translateX(4px);
}

.common_top_btn a,
.page_satei_btn a {
	background-color: var(--m8-navy) !important;
	color: var(--m8-white) !important;
}

.common_top_btn a:hover,
.page_satei_btn a:hover {
	background-color: var(--m8-gold) !important;
	color: var(--m8-navy-ink) !important;
	box-shadow: none !important;
}

.page_contact_btn a,
.top_contact_btn a {
	background-color: var(--m8-gold) !important;
	color: var(--m8-navy-ink) !important;
}

.page_contact_btn a:hover,
.top_contact_btn a:hover {
	background-color: var(--m8-navy) !important;
	color: var(--m8-white) !important;
}

/* 強みのカード（「不動産売買の流れ」などの下層ページ） */
.tuyomi_chart {
	gap: 28px;
}

.tuyomi_chart > li {
	position: relative;
	padding: 44px 30px 36px !important;
	border: 0 !important;
	border-top: 3px solid var(--m8-gold) !important;
	background: var(--m8-white);
	box-shadow: 0 10px 30px rgba(20, 27, 52, .07) !important;
}

.tuyomi_chart > li .flow_ttl {
	margin-bottom: 22px;
	font-family: var(--m8-serif);
	font-size: 21px;
	letter-spacing: .14em;
	color: var(--m8-navy);
}

.tuyomi_chart .page_tuyomi_img img {
	width: 78px;
	padding: 21px;
	box-sizing: content-box;
	border-radius: 50%;
	background: var(--m8-gold-pale);
}

.tuyomi_chart .page_tuyomi_txt {
	font-size: 14px;
	line-height: 1.95;
	color: var(--m8-muted);
}

/* お問い合わせの枠と電話番号（以前は緑だったので、紺にそろえる） */
.contact_box {
	border: 1px solid var(--m8-line) !important;
	border-top: 3px solid var(--m8-navy) !important;
	box-shadow: 0 20px 50px rgba(20, 27, 52, .08) !important;
}

.common_page_form_tel .number,
.common_page_form_tel a.number:link,
.common_page_form_tel a.number:visited {
	padding-left: 0 !important;
	background-image: none !important;
	color: var(--m8-navy) !important;
	font-family: var(--m8-en);
	font-size: 36px;
	font-variant-numeric: lining-nums;
	letter-spacing: .02em;
}

.common_page_form_tel .number::before {
	content: "";
	display: inline-block;
	width: .62em;
	height: .62em;
	margin-right: .3em;
	background: var(--m8-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z%27/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z%27/%3E%3C/svg%3E") center / contain no-repeat;
}

/* お問い合わせフォームのボタン */
#btn-wrap {
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
}

#btn-wrap button.common_page_bt,
#btn-wrap button.back-btn {
	width: auto !important;
	min-width: 220px;
	height: auto !important;
	min-height: 56px;
	margin: 0 !important;
	padding: 14px 36px !important;
	border-radius: 2px;
	font-family: var(--m8-serif) !important;
	font-size: 16px !important;
	font-weight: 600;
	line-height: 1.4 !important;
	letter-spacing: .08em;
	cursor: pointer;
}

#btn-wrap button.common_page_bt::before,
#btn-wrap button.back-btn::before {
	display: none !important;
}

#btn-wrap button.common_page_bt {
	border: 1px solid var(--m8-gold) !important;
	background-color: var(--m8-gold) !important;
	color: var(--m8-navy-ink) !important;
}

#btn-wrap button.common_page_bt:hover {
	border-color: var(--m8-navy) !important;
	background-color: var(--m8-navy) !important;
	color: var(--m8-white) !important;
}

#btn-wrap button.back-btn {
	border: 1px solid var(--m8-navy) !important;
	background-color: var(--m8-white) !important;
	color: var(--m8-navy) !important;
}

#btn-wrap button.back-btn:hover {
	background-color: var(--m8-navy) !important;
	color: var(--m8-white) !important;
}

/* フォームの上のお知らせ（管理画面の「設定」→「お問い合わせ」で入れたときだけ出る） */
.m8-contact-notice {
	margin: 0 0 32px;
	padding: 16px 20px;
	border-left: 3px solid var(--m8-gold);
	background: var(--m8-gold-pale);
	color: var(--m8-ink);
	font-size: 15px;
	line-height: 1.9;
}

/* 自動送信の確認（Cloudflare Turnstile）。幅 300px の枠が入る */
.m8-turnstile {
	min-height: 65px;
}

/* 管理画面で足せる種類の入力欄（一覧から選ぶ・ボタンで選ぶ・チェック）と、入力欄の下の説明 */
.m8-field-select {
	min-width: 50%;
	max-width: 100%;
	padding: .5em .75em;
	border: 1px solid #ccc;
	border-radius: 5px;
	background-color: var(--m8-white);
	box-shadow: 2px 2px 2px #e6e6e6 inset;
	color: var(--m8-ink);
	font-size: 14px;
}

.m8-field-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
}

.m8-field-choices label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-weight: normal;
	cursor: pointer;
}

.m8-field-choices input {
	margin: 0;
	accent-color: var(--m8-navy);
}

.m8-field-note {
	display: block;
	margin-top: 6px;
	color: var(--m8-muted);
	font-size: 13px;
}

@media (max-width: 750px) {
	.m8-field-select {
		width: 100%;
	}
}

/* ==========================================================================
   6. 事業内容のページ（/service。1.6.0 で作り直し）
   ========================================================================== */

.m8-svc-intro {
	padding: 104px 0 24px;
}

.m8-svc-intro__lead {
	max-width: 760px;
	margin: 0 auto;
	font-family: var(--m8-serif);
	font-size: 17px;
	line-height: 2.1;
	letter-spacing: .06em;
	text-align: center;
	color: var(--m8-muted);
}

/* 3つの事業へ飛べる目次 */
.m8-svc-index {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	max-width: 1000px;
	margin: 52px auto 0;
}

.m8-svc-index a,
.m8-svc-index a:link,
.m8-svc-index a:visited {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 22px;
	border: 1px solid var(--m8-line);
	background: var(--m8-white);
	color: var(--m8-navy) !important;
	text-decoration: none;
	transition: background-color .3s var(--m8-ease), border-color .3s var(--m8-ease), color .3s var(--m8-ease);
}

.m8-svc-index a:hover {
	border-color: var(--m8-navy);
	background: var(--m8-navy);
	color: var(--m8-white) !important;
}

.m8-svc-index__num {
	font-family: var(--m8-en);
	font-size: 24px;
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: lining-nums;
	color: var(--m8-gold-deep);
	transition: color .3s var(--m8-ease);
}

.m8-svc-index a:hover .m8-svc-index__num {
	color: var(--m8-gold);
}

.m8-svc-index__title {
	font-family: var(--m8-serif);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .06em;
}

/* 下向きの矢印にする */
.m8-svc-index .m8-icon {
	margin-left: auto;
	transform: rotate(90deg);
	transition: transform .3s var(--m8-ease);
}

.m8-svc-index a:hover .m8-icon {
	transform: rotate(90deg) translateX(3px);
}

/* 各事業：写真に文章の枠を少し重ね、左右交互に並べる */
.m8-svc-list {
	padding: 24px 0 128px;
}

.m8-svc {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	align-items: center;
	margin-top: 96px;
}

.m8-svc__img {
	grid-row: 1;
	grid-column: 1 / span 6;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--m8-bg-soft);
}

.m8-svc__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.m8-svc__body {
	position: relative;
	z-index: 1;
	grid-row: 1;
	grid-column: 6 / span 7;
	padding: 56px 56px 52px;
	border-top: 3px solid var(--m8-gold);
	background: var(--m8-white);
	box-shadow: 0 24px 60px rgba(20, 27, 52, .1);
}

.m8-svc--reverse .m8-svc__img {
	grid-column: 7 / span 6;
}

.m8-svc--reverse .m8-svc__body {
	grid-column: 1 / span 7;
}

.m8-svc__num {
	margin: 0;
	font-family: var(--m8-en);
	font-size: 56px;
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: lining-nums;
	color: var(--m8-gold-deep);
}

.m8-svc__title {
	position: relative;
	margin: 12px 0 0;
	padding-bottom: 18px;
	font-family: var(--m8-serif);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .08em;
	color: var(--m8-navy);
}

.m8-svc__title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 2px;
	background: var(--m8-gold);
}

.m8-svc__text p {
	margin: 22px 0 0;
	font-size: 15px;
	line-height: 2.1;
	letter-spacing: .04em;
	color: var(--m8-ink);
}

.m8-svc__text p + p {
	margin-top: 14px;
}

.m8-svc__link {
	margin-top: 32px;
}

/* ==========================================================================
   画面幅ごとの調整
   ========================================================================== */

@media (max-width: 1100px) {
	.m8-service__head {
		grid-template-columns: 1fr auto;
	}

	.m8-service__lead {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.m8-footer__main {
		grid-template-columns: 1fr 1fr;
	}

	.m8-footer__offices {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.m8-cta__inner {
		grid-template-columns: 1fr;
	}
}

/* スマホ（以前と同じく 750px 以下） */
@media (max-width: 750px) {
	html {
		scroll-padding-top: calc(var(--m8-header-h-sp) + 12px);
	}

	/* 以前の CSS がスマホで付けていた上下の余白を、新しいヘッダー・下部ボタンの高さに合わせる */
	html body {
		margin: 0 !important;
		padding-top: var(--m8-header-h-sp) !important;
	}

	html body.m8-has-spbar {
		padding-bottom: calc(var(--m8-spbar-h) + env(safe-area-inset-bottom)) !important;
	}

	.m8-pc {
		display: none;
	}

	.m8-sp {
		display: inline;
	}

	.m8-container {
		padding: 0 20px;
	}

	.m8-section {
		padding: 76px 0;
	}

	.m8-heading {
		margin-bottom: 36px;
	}

	.m8-heading__en {
		font-size: 38px;
	}

	.m8-heading__ja {
		margin-top: 12px;
		font-size: 13px;
	}

	.m8-btn--lg {
		min-height: 56px;
		font-size: 15px;
	}

	/* ヘッダー：紺の帯にロゴとメニューのボタン */
	.m8-header,
	.m8-header--page,
	.m8-header--top,
	.m8-header.is-scrolled {
		background: var(--m8-navy);
		border-bottom: 0;
		color: var(--m8-white);
		box-shadow: 0 2px 12px rgba(10, 14, 30, .2);
	}

	.admin-bar .m8-header {
		top: 46px;
	}

	.m8-header__inner,
	.m8-header.is-scrolled .m8-header__inner {
		height: var(--m8-header-h-sp);
		padding: 0 12px 0 16px;
	}

	.m8-header__tagline,
	.m8-gnav,
	.m8-header__contact {
		display: none !important;
	}

	.m8-header__logo img,
	.m8-header.is-scrolled .m8-header__logo img {
		width: 118px;
	}

	.m8-header .m8-header__logo-light {
		display: block !important;
	}

	.m8-header .m8-header__logo-dark {
		display: none !important;
	}

	.m8-menu-btn {
		display: flex;
	}

	/* 画面下の固定ボタン */
	.m8-spbar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 900;
		display: grid;
		grid-template-columns: 1fr 1fr;
		padding-bottom: env(safe-area-inset-bottom);
		background: var(--m8-navy);
		box-shadow: 0 -4px 16px rgba(10, 14, 30, .16);
	}

	.m8-spbar a,
	.m8-spbar a:link,
	.m8-spbar a:visited {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		height: var(--m8-spbar-h);
		font-family: var(--m8-serif);
		font-size: 15px;
		font-weight: 600;
		letter-spacing: .1em;
		text-decoration: none;
	}

	.m8-spbar .m8-icon {
		font-size: 18px;
	}

	.m8-spbar__tel {
		color: var(--m8-white) !important;
	}

	.m8-spbar__mail {
		background: var(--m8-gold);
		color: var(--m8-navy-ink) !important;
	}

	/* 写真 */
	.m8-hero {
		min-height: min(calc(100svh - var(--m8-header-h-sp)), 640px);
		padding: 56px 0 72px;
		justify-content: flex-end;
	}

	.m8-hero::before {
		background:
			linear-gradient(to top, rgba(20, 27, 52, .9) 0%, rgba(20, 27, 52, .55) 55%, rgba(20, 27, 52, .25) 100%);
	}

	.m8-hero__en {
		padding-top: 22px;
		font-size: 54px;
	}

	.m8-hero__en::before {
		width: 48px;
	}

	.m8-hero__title {
		margin-top: 22px;
		font-size: 22px;
		letter-spacing: .08em;
	}

	.m8-hero__title span {
		font-size: 14px;
	}

	.m8-hero__actions {
		flex-direction: column;
		gap: 12px;
		margin-top: 32px;
	}

	.m8-hero__actions .m8-btn {
		width: 100%;
	}

	.m8-news {
		position: static;
	}

	.m8-hero:has(.m8-news) {
		padding-bottom: 0;
	}

	.m8-hero:has(.m8-news) .m8-hero__inner {
		padding-bottom: 48px;
	}

	.m8-news__inner {
		flex-wrap: wrap;
		gap: 8px 16px;
		padding-top: 18px;
		padding-bottom: 18px;
	}

	.m8-news__item {
		flex-basis: 100%;
		flex-direction: column;
		gap: 4px;
		order: 3;
	}

	.m8-news__more {
		margin-left: auto;
	}

	/* ご挨拶 */
	.m8-intro__catch {
		font-size: 22px;
	}

	.m8-intro__text {
		font-size: 15px;
		line-height: 2.1;
		text-align: left;
	}

	/* 事業内容 */
	.m8-service__head {
		display: block;
		margin-bottom: 36px;
	}

	.m8-service__head .m8-heading {
		margin-bottom: 20px;
	}

	.m8-service__lead {
		font-size: 15px;
	}

	.m8-service__more {
		width: 100%;
		margin-top: 24px;
	}

	.m8-cards,
	.m8-features {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.m8-card__body {
		padding: 22px 22px 24px;
	}

	.m8-card__title {
		font-size: 19px;
	}

	/* 企業理念 */
	.m8-vision {
		padding-top: 76px;
	}

	.m8-vision__catch {
		font-size: 18px;
		text-align: left;
	}

	.m8-vision__text {
		margin-top: 22px;
		font-size: 15px;
		line-height: 2.05;
	}

	.m8-vision__skyline {
		margin-top: 40px;
	}

	/* 私たちの強み */
	.m8-feature {
		padding: 44px 24px 32px;
	}

	.m8-feature__icon {
		width: 104px;
		height: 104px;
	}

	.m8-feature__icon img {
		width: 66px;
	}

	/* お問い合わせ（トップページ） */
	.m8-contact {
		padding: 64px 0;
	}

	.m8-contact__box {
		padding: 48px 22px 40px;
	}

	.m8-contact__lead {
		font-size: 14px;
	}

	.m8-contact__actions {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-top: 32px;
	}

	.m8-contact__actions::before {
		display: none;
	}

	.m8-contact__actions .m8-tel,
	.m8-contact__actions .m8-btn {
		grid-column: 1;
		grid-row: auto;
	}

	.m8-tel__num {
		font-size: 36px;
	}

	.m8-tel__num .m8-icon {
		font-size: 24px;
	}

	/* 下層ページのお問い合わせの帯 */
	.m8-cta {
		padding: 56px 0;
		text-align: center;
	}

	.m8-cta__inner {
		gap: 28px;
	}

	.m8-cta__en {
		font-size: 32px;
	}

	.m8-cta__title {
		font-size: 18px;
	}

	.m8-cta__actions {
		flex-direction: column;
		gap: 20px;
	}

	.m8-cta__actions .m8-tel__num {
		font-size: 34px;
	}

	.m8-cta__actions .m8-btn {
		width: 100%;
	}

	/* フッター */
	.m8-footer__main {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-top: 56px;
		padding-bottom: 40px;
	}

	.m8-footer__offices {
		grid-template-columns: 1fr;
		grid-row: auto;
		gap: 28px;
	}

	.m8-footer__logo img {
		width: 170px;
	}

	.m8-footer__nav ul {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2px 16px;
	}

	.m8-footer__banners::before {
		right: 20px;
		left: 20px;
	}

	.m8-footer__banners {
		flex-direction: column;
		align-items: center;
		padding-bottom: 32px;
	}

	.m8-footer__banners a {
		width: 100%;
		max-width: 360px;
	}

	.m8-footer__bottom-inner {
		flex-direction: column;
		justify-content: center;
		padding-top: 16px;
		padding-bottom: 16px;
	}

	/* 下層ページの見出し */
	.common_page_h1Box {
		padding: 56px 0 44px;
	}

	.common_page_h1_en {
		font-size: 38px;
	}

	.common_page_h1 {
		font-size: 15px;
	}

	.common_page_h1Box .breadcrumb {
		margin-top: 18px;
	}

	.common_top_btn a,
	.common_top_btn.small a,
	.page_contact_btn a,
	.page_satei_btn a,
	.top_contact_btn a {
		min-width: 0;
		width: 100% !important;
	}

	#btn-wrap {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	#btn-wrap button.common_page_bt,
	#btn-wrap button.back-btn {
		width: 100% !important;
	}

	.tuyomi_chart > li {
		margin-bottom: 20px;
	}

	/* 事業内容のページ */
	.m8-svc-intro {
		padding: 64px 0 8px;
	}

	.m8-svc-intro__lead {
		font-size: 15px;
		text-align: left;
	}

	.m8-svc-index {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-top: 32px;
	}

	.m8-svc-index a {
		padding: 16px 18px;
	}

	.m8-svc-list {
		padding: 8px 0 72px;
	}

	.m8-svc,
	.m8-svc--reverse {
		display: block;
		margin-top: 56px;
	}

	.m8-svc__body,
	.m8-svc--reverse .m8-svc__body {
		margin: -36px 12px 0;
		padding: 32px 22px 30px;
	}

	.m8-svc__num {
		font-size: 44px;
	}

	.m8-svc__title {
		font-size: 21px;
	}

	.m8-svc__text p {
		font-size: 15px;
		line-height: 2;
	}

	.m8-svc__link {
		width: 100%;
	}
}
