@charset "UTF-8";

/* =========================================================
   NAIGAI theme
   PC基準: 1440px / コンテンツ幅 960px
   ブレークポイント: 1100px（ナビ切替） / 767px（SP）
   ========================================================= */
:root {
	--c-main: #005580;
	--c-text: #333;
	--c-gray: #525252;
	--c-gray2: #808080;
	--c-line: #ccc;
	--c-pale: #ebf7ff;
	--c-link: #0070d9;
	/* デザインは #0088ff。文字のコントラスト比 4.5:1 を満たすよう少し濃くしている */
	--c-red: #e00000;
	/* デザインは #ff0000。同上 */
	--g1: linear-gradient(97deg, #4b8dae 0%, #1d6c93 53%, #1a5775 100%);
	--g2: linear-gradient(97deg, #0095c7 0%, #006e93 50%, #005875 100%);
	--f-ja: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--f-en: "Roboto", "Noto Sans JP", sans-serif;
	--header-h: 80px;
	--inner: 960px;
	--gutter: 20px;
	--shadow: 0 5px 10px rgba(0, 0, 0, .1);
	--shadow-btn: 2px 2px 10px rgba(0, 0, 0, .1);
}

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

html {
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 20px);
}

body {
	margin: 0;
	font-family: var(--f-ja);
	font-size: 16px;
	line-height: 2;
	letter-spacing: .1em;
	color: var(--c-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
dd,
figure,
blockquote,
table {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: inherit;
	text-decoration: none;
	transition: opacity .2s, color .2s, background-color .2s, border-color .2s;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
}

button {
	cursor: pointer;
}

table {
	border-collapse: collapse;
}

address {
	font-style: normal;
}

small {
	font-size: inherit;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: #fff;
	padding: 8px 16px;
}

.skip-link:focus {
	left: 8px;
	top: 8px;
}

:focus-visible {
	outline: 2px solid var(--c-link);
	outline-offset: 2px;
}

.u-sp {
	display: none;
}

@media (max-width: 767px) {
	.u-sp {
		display: inline;
	}

	.u-pc {
		display: none;
	}
}

/* ---------- layout ---------- */
.l-inner {
	width: 100%;
	max-width: calc(var(--inner) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.l-main {
	display: block;
	padding-top: var(--header-h);
	position: relative;
	overflow: clip;
}

/* ---------- header ---------- */
.l-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: var(--header-h);
	background: #fff;
	box-shadow: var(--shadow);
}

.l-header__inner {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 30px 0 41px;
}

.l-header__logo {
	margin: 0;
	line-height: 1;
	flex-shrink: 0;
}

.l-header__logo img {
	width: 166px;
}

.l-gnav {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.l-gnav__list {
	display: flex;
	align-items: center;
}

.l-gnav__item {
	position: relative;
}

.l-gnav__item>a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 22px 0 23px;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: .1em;
	border-right: 1px solid var(--c-text);
	height: 18px;
}

.l-gnav__item>a:hover {
	color: var(--c-main);
}

.l-gnav__item.has-child>a {
	padding-right: 17px;
}

.l-gnav__caret {
	width: 7px;
	color: var(--c-main);
}

.l-gnav__toggle {
	display: none;
}

.l-gnav__sub {
	position: absolute;
	top: calc(100% + 31px);
	left: 50%;
	min-width: 240px;
	padding: 12px 0;
	background: #fff;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
	border-top: 2px solid var(--c-main);
	translate: -50% 8px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s, translate .2s, visibility .2s;
}

.l-gnav__sub::before {
	content: "";
	position: absolute;
	inset: -33px 0 100%;
}

.l-gnav__item.has-child:hover .l-gnav__sub,
.l-gnav__item.has-child:focus-within .l-gnav__sub {
	opacity: 1;
	visibility: visible;
	translate: -50% 0;
}

.l-gnav__sub a {
	display: block;
	padding: 8px 24px;
	font-size: 14px;
	line-height: 1.6;
	white-space: nowrap;
}

.l-gnav__sub a:hover {
	background: var(--c-pale);
	color: var(--c-main);
}

.l-gnav__contact {
	margin-left: 30px;
}

.l-gnav__sp {
	display: none;
}

.l-header__burger {
	display: none;
}

/* mail pill button */
.c-mailbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-width: 196px;
	height: 48px;
	padding: 0 28px;
	border-radius: 48px;
	background: var(--g2);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1;
	box-shadow: var(--shadow-btn);
}

.c-mailbtn svg {
	width: 21px;
	flex-shrink: 0;
}

.c-mailbtn:hover {
	opacity: .85;
}

.c-mailbtn.is-l {
	width: 264px;
	min-width: 0;
	padding: 0 19px 0 25px;
	white-space: nowrap;
	justify-content: flex-start;
	gap: 10px;
	font-size: 18px;
	letter-spacing: .05em;
}

@media (max-width: 1240px) {
	.l-gnav__item>a {
		padding: 0 14px;
	}

	.l-gnav__contact {
		margin-left: 18px;
	}
}

@media (max-width: 1100px) {
	:root {
		--header-h: 64px;
	}

	.l-header__inner {
		padding: 0 0 0 20px;
	}

	.l-header__logo img {
		width: 140px;
	}

	.l-header__burger {
		display: block;
		position: relative;
		width: 64px;
		height: 64px;
		margin-left: auto;
		border: 0;
		background: var(--g2);
	}

	.l-header__burger span:not(.screen-reader-text) {
		position: absolute;
		left: 21px;
		width: 22px;
		height: 2px;
		background: #fff;
		transition: transform .3s, opacity .3s;
	}

	.l-header__burger span:nth-child(1) {
		top: 24px;
	}

	.l-header__burger span:nth-child(2) {
		top: 31px;
	}

	.l-header__burger span:nth-child(3) {
		top: 38px;
	}

	.is-menu-open .l-header__burger span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.is-menu-open .l-header__burger span:nth-child(2) {
		opacity: 0;
	}

	.is-menu-open .l-header__burger span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.l-gnav {
		position: fixed;
		top: var(--header-h);
		left: 0;
		right: 0;
		bottom: 0;
		display: block;
		margin: 0;
		padding: 20px 20px 40px;
		background: #fff;
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transition: opacity .3s, visibility .3s;
	}

	.is-menu-open .l-gnav {
		opacity: 1;
		visibility: visible;
	}

	.is-menu-open {
		overflow: hidden;
	}

	.l-gnav__list {
		display: block;
	}

	.l-gnav__item {
		border-bottom: 1px solid var(--c-line);
	}

	.l-gnav__item>a {
		height: auto;
		padding: 16px 48px 16px 4px;
		border: 0;
		font-size: 16px;
	}

	.l-gnav__caret {
		display: none;
	}

	.l-gnav__toggle {
		display: block;
		position: absolute;
		right: 0;
		top: 6px;
		width: 44px;
		height: 44px;
		border: 0;
		background: none;
	}

	.l-gnav__toggle::before,
	.l-gnav__toggle::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 14px;
		height: 2px;
		background: var(--c-main);
		translate: -50% -50%;
		transition: rotate .3s;
	}

	.l-gnav__toggle::after {
		rotate: 90deg;
	}

	.l-gnav__toggle[aria-expanded="true"]::after {
		rotate: 0deg;
	}

	.l-gnav__sub {
		position: static;
		left: auto;
		min-width: 0;
		padding: 0 0 12px;
		box-shadow: none;
		border: 0;
		translate: none;
		opacity: 1;
		visibility: visible;
		display: none;
	}

	.l-gnav__sub::before {
		display: none;
	}

	.l-gnav__sub.is-open {
		display: block;
	}

	.l-gnav__item.has-child:hover .l-gnav__sub,
	.l-gnav__item.has-child:focus-within .l-gnav__sub {
		translate: none;
	}

	.l-gnav__sub a {
		padding: 8px 16px;
		font-size: 14px;
	}

	.l-gnav__sub a::before {
		content: "−";
		margin-right: 8px;
		color: var(--c-main);
	}

	.l-gnav__contact {
		display: flex;
		margin: 30px auto 0;
		width: 100%;
		max-width: 320px;
		height: 56px;
	}

	.l-gnav__sp {
		display: block;
		margin-top: 24px;
		text-align: center;
	}

	.l-gnav__tel {
		font-family: var(--f-en);
		font-size: 24px;
		font-weight: 600;
		color: var(--c-main);
		letter-spacing: 0;
	}

	.l-gnav__hours {
		font-size: 12px;
	}
}

/* ---------- common parts ---------- */
/* 大きな英字の背景文字 */
.c-bigen {
	position: absolute;
	z-index: 0;
	margin: 0;
	font-family: var(--f-en);
	font-weight: 700;
	font-size: 300px;
	line-height: 253px;
	letter-spacing: 0;
	white-space: nowrap;
	background: var(--g1);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: .07;
	pointer-events: none;
	user-select: none;
}

/* セクション見出し */
.c-sechead {
	position: relative;
	padding-left: 20px;
}

.c-sechead::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	bottom: 7px;
	width: 2px;
	background: var(--c-main);
}

.c-sechead__en {
	font-family: var(--f-en);
	font-weight: 700;
	font-size: 21px;
	line-height: 32px;
	letter-spacing: .05em;
	color: var(--c-main);
	margin: 0;
}

.c-sechead__ja {
	margin-top: 3px;
	font-size: 32px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: .1em;
}

.c-sechead.is-top {
	padding-left: 2px;
}

.c-sechead.is-top::before {
	display: none;
}

.c-sechead.is-top .c-sechead__ja {
	font-size: 50px;
	line-height: 72px;
	margin-top: 1px;
}

.c-sechead.is-white .c-sechead__en,
.c-sechead.is-white .c-sechead__ja {
	color: #fff;
}

.c-sechead.is-white::before {
	background: #fff;
}

.c-h3 {
	position: relative;
	padding-left: 20px;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.46;
	letter-spacing: .1em;
}

.c-h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--c-main);
}

.c-h4 {
	font-size: 26px;
	font-weight: 600;
	line-height: 1.46;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-h5 {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .05em;
}

.c-lead {
	margin-top: 40px;
	font-size: 16px;
	line-height: 2;
	letter-spacing: .1em;
}

/* 丸矢印 */
.c-arrow {
	position: relative;
	display: inline-block;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--g2);
}

.c-arrow::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	translate: -70% -50%;
	rotate: 45deg;
}

.c-arrow.is-white {
	background: #fff;
}

.c-arrow.is-white::after {
	border-color: #1d6c93;
}

.c-arrow.is-solid {
	background: var(--c-main);
}

.c-arrow.is-s {
	width: 18px;
	height: 18px;
}

.c-arrow.is-s::after {
	width: 5px;
	height: 5px;
	border-width: 1.5px;
}

/* ボタン */
.c-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: 340px;
	max-width: 100%;
	height: 76px;
	padding: 0 20px 0 15px;
	background: #fff;
	border: 1px solid var(--c-main);
	border-radius: 5px;
	box-shadow: var(--shadow-btn);
	color: var(--c-main);
}

.c-btn__ja {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.5;
}

.c-btn__en {
	margin-left: auto;
	font-family: var(--f-en);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1;
}

.c-btn:hover {
	background: var(--c-pale);
}

.c-btn .c-arrow {
	transition: translate .2s;
}

.c-btn:hover .c-arrow {
	translate: 3px 0;
}

.c-btn.is-white {
	background: transparent;
	border-color: #fff;
	color: #fff;
	box-shadow: 2px 2px 10px rgba(0, 0, 0, .25);
}

.c-btn.is-white .c-arrow {
	background: #fff;
}

.c-btn.is-white .c-arrow::after {
	border-color: #37617a;
}

.c-btn.is-white:hover {
	background: rgba(255, 255, 255, .12);
}

.c-btn.is-m {
	width: 290px;
}

.c-btnrow {
	display: flex;
	justify-content: flex-end;
	margin-top: 50px;
}

.c-btnrow.is-center {
	justify-content: center;
}

/* ピルボタン */
.c-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	height: 50px;
	padding: 0 40px;
	border: 1px solid var(--c-main);
	border-radius: 50px;
	background: #fff;
	color: var(--c-main);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .1em;
	box-shadow: var(--shadow-btn);
}

.c-pill:hover {
	background: var(--c-pale);
}

.c-pill.is-fill {
	background: var(--g2);
	border: 0;
	color: #fff;
}

.c-pill.is-fill:hover {
	opacity: .85;
	background: var(--g2);
}

.c-pill.is-l {
	width: 394px;
	max-width: 100%;
	height: 72px;
	border-radius: 48px;
	font-size: 18px;
}

.c-pill.is-m {
	width: 344px;
	max-width: 100%;
	height: 56px;
	font-size: 16px;
}

/* もっと見る */
.c-more {
	display: flex;
	width: fit-content;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-more svg {
	width: 8px;
}

.c-more svg[viewBox="0 0 14 14"] {
	width: 14px;
}

.c-more:hover {
	opacity: .7;
}

/* パンくず */
.c-bread {
	margin-top: 24px;
	font-size: 12px;
	line-height: 1.2;
	letter-spacing: .05em;
}

.c-bread ol {
	display: flex;
	flex-wrap: wrap;
}

.c-bread li {
	color: #767676;
}

.c-bread li:not(:last-child)::after {
	content: "＞";
	margin: 0 1em;
	color: var(--c-text);
}

.c-bread a {
	color: var(--c-text);
}

.c-bread a:hover {
	color: var(--c-main);
}

/* 画像なし */
.c-noimg {
	display: block;
	width: 100%;
	height: 100%;
	background: #d9d9d9;
}

/* カード */
.c-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 80px;
}

.c-card {
	background: #fff;
	border-radius: 10px;
	box-shadow: var(--shadow);
	overflow: hidden;
}

.c-card__link {
	display: block;
	height: 100%;
}

.c-card__img {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #d9d9d9;
}

.c-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale .4s;
}

.c-card__link:hover .c-card__img img {
	scale: 1.05;
}

.c-card__body {
	min-height: 223px;
	padding: 30px 20px 26px;
}

.c-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 10px;
}

.c-card__ttl {
	margin-top: 20px;
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: .1em;
	color: var(--c-main);
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.c-card__link:hover .c-card__ttl {
	text-decoration: underline;
}

.c-cat {
	display: inline-block;
	min-width: 110px;
	padding: 5px 12px;
	border-radius: 20px;
	background: var(--c-gray2);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: .1em;
	text-align: center;
}

.c-date {
	font-size: 14px;
	font-weight: 700;
	line-height: 18px;
	letter-spacing: .08em;
	color: var(--c-gray2);
	white-space: nowrap;
}

.c-date span {
	font-family: var(--f-en);
	font-size: 15px;
	letter-spacing: 0;
}

.c-card--case .c-card__body {
	min-height: 0;
	padding: 30px 20px 40px;
}

.c-card__item {
	font-size: 18px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-card__spec {
	width: 100%;
	margin-top: 20px;
	border-top: 1px solid var(--c-line);
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-card__spec tr {
	border-bottom: 1px solid var(--c-line);
}

.c-card__spec th {
	width: 100px;
	padding: 5px 10px 4px;
	background: var(--c-pale);
	font-weight: 600;
	text-align: left;
	border-right: 1px solid var(--c-line);
	white-space: nowrap;
}

.c-card__spec td {
	padding: 5px 0 4px 14px;
}

.c-card--case .c-card__spec {
	margin-top: 0;
}

.c-card--case .c-card__body {
	padding: 24px 20px 28px;
}

/* 加工事例：写真クリックで拡大 */
.c-card__zoom {
	position: relative;
	display: block;
	cursor: zoom-in;
}

.c-card__zoom:hover img {
	scale: 1.05;
}

.c-card__zoomicon {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

.c-card__zoomicon::before {
	content: "";
	position: absolute;
	left: 9px;
	top: 9px;
	width: 13px;
	height: 13px;
	border: 2px solid var(--c-main);
	border-radius: 50%;
}

.c-card__zoomicon::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 22px;
	width: 7px;
	height: 2px;
	background: var(--c-main);
	rotate: 45deg;
	transform-origin: left center;
}

.c-lightbox {
	max-width: min(92vw, 1200px);
	max-height: 92vh;
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

.c-lightbox::backdrop {
	background: rgba(0, 0, 0, .8);
}

.c-lightbox img {
	display: block;
	max-width: min(92vw, 1200px);
	max-height: calc(92vh - 50px);
	width: auto;
	height: auto;
	margin: 0 auto;
	border-radius: 6px;
}

.c-lightbox__cap {
	margin-top: 12px;
	color: #fff;
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
}

.c-lightbox__close {
	position: absolute;
	right: -6px;
	top: -46px;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}

.c-lightbox__close::before,
.c-lightbox__close::after {
	content: "";
	position: absolute;
	left: 11px;
	top: 19px;
	width: 18px;
	height: 2px;
	background: var(--c-text);
	rotate: 45deg;
}

.c-lightbox__close::after {
	rotate: -45deg;
}

/* ニュース */
.c-newslist {
	margin-top: 40px;
	border-top: 1px solid var(--c-line);
}

.c-news {
	display: grid;
	grid-template-columns: 176px 148px 1fr;
	gap: 0;
	align-items: center;
	padding: 30px 20px 29px 20px;
	border-bottom: 1px solid var(--c-line);
}

.c-news__date {
	font-family: var(--f-en);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
}

.c-news__cat {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	border: 1px solid var(--c-main);
	border-radius: 40px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .1em;
	color: var(--c-main);
	line-height: 1;
}

.c-news__body {
	margin-left: 40px;
}

.c-news__ttl {
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
	max-width: 556px;
}

.c-news__body .c-more {
	margin-top: 6px;
}

.c-empty {
	margin-top: 40px;
}

/* ページャー */
.c-pager {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	margin-top: 80px;
	font-family: var(--f-en);
}

.c-pager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	border-radius: 50%;
	font-size: 24px;
	font-weight: 500;
	line-height: 1;
	color: var(--c-text);
	letter-spacing: 0;
}

.c-pager .page-numbers.current {
	background: var(--c-main);
	color: #fff;
}

.c-pager .page-numbers.dots {
	min-width: 20px;
}

.c-pager .prev,
.c-pager .next {
	gap: 10px;
	padding: 0;
	border-radius: 0;
	font-family: var(--f-ja);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .1em;
}

.c-pager .prev {
	margin-right: 22px;
}

.c-pager .next {
	margin-left: 22px;
}

.c-pager .prev svg,
.c-pager .next svg {
	width: 7px;
}

.c-pager .prev svg {
	rotate: 180deg;
}

.c-pager a.page-numbers:not(.prev):not(.next):hover {
	background: var(--c-pale);
}

.c-pager a.prev:hover,
.c-pager a.next:hover {
	color: var(--c-main);
}

.c-pager .is-disabled {
	color: #999;
}

.p-listbtn {
	margin-top: 60px;
}

/* ---------- 下層ページヘッダー ---------- */
.p-head {
	position: relative;
	padding-top: 149px;
}

.p-head__big {
	text-transform: uppercase;
	position: absolute;
	left: -11px;
	top: -13px;
	margin: 0;
	font-family: var(--f-en);
	font-weight: 700;
	font-size: 300px;
	line-height: 253px;
	letter-spacing: 0;
	white-space: nowrap;
	background: var(--g1);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: .07;
	pointer-events: none;
}

.p-head__inner {
	position: relative;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 var(--gutter);
	text-align: right;
}

.p-head__ttl {
	font-size: 50px;
	font-weight: 600;
	line-height: 72px;
	letter-spacing: .1em;
}

.p-head__img {
	position: relative;
	margin: 40px 0 0 calc(50% - 480px);
	height: 350px;
	overflow: hidden;
}

.p-head__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-headsimple {
	padding-top: 40px;
}

.p-headsimple .c-bread {
	margin-top: 0;
}

/* ---------- section spacing ---------- */
.p-sec {
	position: relative;
	padding-top: 120px;
}

.p-sec+.p-sec {
	padding-top: 120px;
}

.p-sec__txt {
	margin-top: 36px;
}

.p-sec__txt p+p {
	margin-top: 1em;
}

/* ---------- FAQ / Contact 帯 ---------- */
.p-fc {
	position: relative;
	margin-top: 120px;
	border-radius: 100px 100px 0 0;
	overflow: hidden;
	background: var(--g1);
	box-shadow: var(--shadow);
	color: #fff;
}

.p-fc::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../img/texture-hex.webp) center / cover;
	mix-blend-mode: color-burn;
}

.p-fc__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 316px;
}

.p-fc__inner::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 30px;
	bottom: 30px;
	width: 1px;
	background: #fff;
}

.p-fc__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
}

.p-fc__ja {
	font-size: 18px;
	font-weight: 600;
	line-height: 27px;
	letter-spacing: .05em;
}

.p-fc__item+.p-fc__item .p-fc__ja {
	letter-spacing: .1em;
}

.p-fc__en {
	position: relative;
	top: 7px;
	font-family: var(--f-en);
	font-size: 80px;
	font-weight: 500;
	line-height: 76px;
	letter-spacing: .1em;
}

.p-fc__item+.p-fc__item .p-fc__en {
	letter-spacing: .005em;
}

.p-fc__arrow {
	position: relative;
	width: 40px;
	height: 40px;
	margin-top: 25px;
	border-radius: 50%;
	background: #fff;
	transition: translate .2s;
}

.p-fc__arrow::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 9px;
	height: 9px;
	border-top: 2px solid #1d6c93;
	border-right: 2px solid #1d6c93;
	translate: -70% -50%;
	rotate: 45deg;
}

.p-fc__item:hover {
	background: rgba(255, 255, 255, .06);
}

.p-fc__item:hover .p-fc__arrow {
	translate: 4px 0;
}

/* ---------- 採用バナー ---------- */
.p-recruitbn {
	position: relative;
	padding: 80px 0 120px;
	color: #fff;
	overflow: hidden;
}

.p-recruitbn__bg {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.p-recruitbn__bg {
	opacity: .8;
}

.p-recruitbn__bg span {
	background: center / cover no-repeat;
}

.p-recruitbn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to left, rgba(51, 51, 51, .165), rgba(51, 51, 51, .3025));
}

.p-recruitbn::after {
	content: "";
	position: absolute;
	z-index: 1;
	left: calc(50% - 499px);
	top: 45px;
	width: 487px;
	height: 487px;
	border-radius: 50%;
	background: rgba(51, 51, 51, .4);
	filter: blur(100px);
}

.p-recruitbn__body {
	position: relative;
	z-index: 2;
}

.p-recruitbn__body .c-sechead__ja {
	margin-top: 1px;
}

.p-recruitbn__txt {
	max-width: 480px;
	margin-top: 40px;
	font-size: 16px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: .1em;
	text-shadow: 0 0 3px #000;
}

.p-recruitbn .c-btn {
	margin-top: 50px;
}

/* ---------- コラム・ニュース（共通フッター上部） ---------- */
.p-cn {
	position: relative;
	overflow-x: clip;
}

.p-colsec {
	position: relative;
	padding: 112px 0 109px;
}

.p-colsec::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../img/bg-column.webp) center top / cover no-repeat;
	opacity: .5;
}

.p-colsec::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 82%;
	background: linear-gradient(to bottom, #fff 50%, rgba(255, 255, 255, 0));
}

.p-colsec>.l-inner,
.p-newssec>.l-inner {
	position: relative;
	z-index: 2;
}

.c-bigen--col {
	left: 0;
	top: -15px;
	z-index: 1;
}

.p-newssec {
	position: relative;
	padding: 115px 0 120px;
}

.p-newssec::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../img/bg-news.webp) center top / cover no-repeat;
	opacity: .2;
}

.c-bigen--news {
	left: calc(50% - 94px);
	top: -9px;
	z-index: 1;
}

/* ---------- footer ---------- */
.l-footer {
	position: relative;
	z-index: 1;
	background: #fff;
	box-shadow: 0 -5px 10px rgba(0, 0, 0, .1);
}

.l-footer__inner {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	max-width: 1440px;
	margin: 0 auto;
	padding: 79px 122px 100px 120px;
}

.l-footer__info {
	flex: 0 0 364px;
}

.l-footer__logo {
	margin-top: 18px;
}

.l-footer__logo img {
	width: 277px;
}

.l-footer__address {
	margin-top: 69px;
	font-size: 14px;
	line-height: 2;
	letter-spacing: .1em;
	color: var(--c-gray);
}

.l-footer__sister {
	display: flex;
	width: fit-content;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .05em;
	line-height: 30px;
	color: var(--c-main);
}

.l-footer__sister:hover {
	opacity: .7;
}

.l-footer__contact {
	display: flex;
	width: 218px;
	margin: 30px 0 0 -3px;
	padding: 0 22px 0 31px;
	justify-content: flex-start;
	gap: 20px;
	font-size: 18px;
	letter-spacing: .05em;
}

.l-footer__nav {
	display: flex;
	gap: 85px;
	padding-top: 0;
}

.l-footer__col:nth-child(1) {
	width: 173px;
}

.l-footer__col:nth-child(2) {
	width: 191px;
}

.l-footer__main {
	width: 200px;
}

.l-footer__ttl {
	margin-top: 8px;
	font-size: 16px;
	font-weight: 600;
	line-height: 40px;
	letter-spacing: .1em;
	color: var(--c-gray);
}

.l-footer__list {
	margin-top: 20px;
	padding-left: 20px;
	border-left: 1px solid var(--c-line);
}

.l-footer__list li {
	font-size: 14px;
	line-height: 38px;
	letter-spacing: .1em;
	color: var(--c-gray);
}

.l-footer__list li a {
	display: inline;
}

.l-footer__list li.is-2l {
	line-height: 21px;
	padding: 8px 0 9px;
}

.l-footer__list a:hover,
.l-footer__main a:hover,
.l-footer__ttl a:hover {
	color: var(--c-main);
}

.l-footer__main li {
	font-size: 18px;
	font-weight: 600;
	line-height: 54px;
	letter-spacing: .1em;
	color: var(--c-gray);
}

.l-footer__list li,
.l-footer__main li {
	white-space: nowrap;
}

@media (max-width: 1380px) {
	.l-footer__inner {
		padding-left: 40px;
		padding-right: 40px;
	}

	.l-footer__nav {
		flex: 1 1 auto;
		justify-content: space-between;
		gap: 24px;
	}
}

.l-footer__copy {
	margin: 0;
	background: var(--c-gray);
	color: #fff;
	font-size: 14px;
	line-height: 63px;
	letter-spacing: .05em;
	text-align: center;
}

.c-totop {
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 90;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--f-en);
	font-size: 18px;
	line-height: 32px;
	letter-spacing: .05em;
	color: var(--c-main);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, visibility .3s;
	filter: drop-shadow(2px 2px 5px rgba(255, 255, 255, .9));
}

.c-totop.is-show {
	opacity: 1;
	visibility: visible;
}

.c-totop__icon {
	position: relative;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--c-main);
	box-shadow: 2px 2px 10px rgba(0, 0, 0, .3);
}

.c-totop__icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
	translate: -50% -25%;
	rotate: 45deg;
}

.c-totop:hover {
	opacity: .75;
}

/* =========================================================
   TOP
   ========================================================= */
.p-fv {
	position: relative;
	height: 659px;
	color: #fff;
	overflow: hidden;
}

.p-fv__bg {
	position: absolute;
	inset: 0;
}

.p-fv__bg picture {
	display: block;
	height: 100%;
}

.p-fv__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 0 100%;
}

.p-fv__shape {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	mix-blend-mode: multiply;
}

.p-fv__bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(64, 126, 161, .9);
	opacity: .4;
	mix-blend-mode: multiply;
}

.p-fv__body {
	position: relative;
	z-index: 2;
	max-width: 1440px;
	margin: 0 auto;
	padding: 90px 120px 0;
}

.p-fv__sub {
	font-size: 28px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .1em;
	text-shadow: 0 0 20px #002856;
}

.p-fv__ttl {
	margin-top: 20px;
	font-size: 74px;
	font-weight: 700;
	line-height: 100px;
	letter-spacing: .1em;
	text-shadow: 0 0 23px #002856;
}

.p-fv__ttl small {
	font-size: 50px;
	line-height: 1;
}

.p-fv__txt {
	margin-top: 30px;
	font-size: 16px;
	line-height: 2;
	letter-spacing: .1em;
	text-shadow: 0 0 20px #002856;
}

.p-fv__btn {
	width: 430px;
	margin-top: 40px;
}

/* 1440px未満は見出しを画面幅に比例させて、途中で改行されないようにする */
@media (min-width: 768px) and (max-width: 1439px) {
	.p-fv__body {
		padding: 6.25vw 8.333vw 0;
	}

	.p-fv__sub {
		font-size: 1.944vw;
	}

	.p-fv__ttl {
		margin-top: 1.389vw;
		font-size: 5.139vw;
		line-height: 6.944vw;
	}

	.p-fv__ttl small {
		font-size: 3.472vw;
	}

	.p-fv__txt {
		font-size: max(13px, 1.111vw);
	}
}

.p-fv__scroll {
	position: absolute;
	z-index: 2;
	right: 30px;
	bottom: 31px;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--f-en);
	font-size: 18px;
	line-height: 32px;
	letter-spacing: .05em;
	filter: drop-shadow(0 0 10px rgba(0, 0, 0, .5));
}

.p-fv__scroll i {
	position: relative;
	width: 28px;
	height: 28px;
	border: 1px solid #fff;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	backdrop-filter: blur(4px);
}

.p-fv__scroll i::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 7px;
	height: 7px;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	translate: -50% -75%;
	rotate: 45deg;
	animation: fvscroll 1.6s ease-in-out infinite;
}

@keyframes fvscroll {

	0%,
	100% {
		translate: -50% -85%;
	}

	50% {
		translate: -50% -45%;
	}
}

.p-about {
	position: relative;
	padding: 135px 0 105px;
}

.p-about::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -81px;
	height: 887px;
	background: url(../img/bg-about.webp) center / cover no-repeat;
	opacity: .1;
	z-index: -2;
}

.p-about::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -1px;
	height: 784px;
	background: var(--g1);
	opacity: .07;
	z-index: -1;
}

.p-about .c-bigen {
	left: calc(50% - 257px);
	top: -15px;
}

.p-about__inner {
	position: static;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 20px 0 120px;
}

.p-about__body {
	position: relative;
	z-index: 2;
	max-width: 680px;
}

.p-about__en {
	width: max-content;
	white-space: nowrap;
	font-family: var(--f-en);
	font-size: 101px;
	font-weight: 800;
	line-height: 32px;
	padding: 34px 0;
	margin: -34px 0;
	letter-spacing: .05em;
	background: var(--g2);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.p-about__ttl {
	margin-top: 60px;
	font-size: 32px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .1em;
}

.p-about__txt {
	max-width: 600px;
	margin-top: 40px;
}

.p-about__btns {
	display: flex;
	gap: 20px;
	margin-top: 50px;
}

.p-about__btns .c-btn {
	width: 290px;
}

.p-tsvc {
	position: relative;
	z-index: 2;
	padding: 120px 0 158px;
	color: #fff;
}

.p-tsvc__bg {
	position: absolute;
	left: -6.944%;
	right: -7.292%;
	top: 0;
	bottom: 0;
	z-index: -1;
}

.p-tsvc__bg svg {
	display: block;
	width: 100%;
	height: 100%;
}

.p-tsvc .c-bigen {
	left: -12px;
	top: -12px;
	background: none;
	color: #fff;
	opacity: .1;
}

.p-tsvc__txt {
	margin-top: 40px;
}

.p-tsvc__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 50px 30px;
	margin-top: 80px;
}

.p-tsvc__item a {
	display: block;
}

.p-tsvc__img {
	aspect-ratio: 3 / 2;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var(--shadow);
}

.p-tsvc__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale .4s;
}

.p-tsvc__item a:hover .p-tsvc__img img {
	scale: 1.05;
}

.p-tsvc__en {
	display: block;
	margin-top: 20px;
	font-family: var(--f-en);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .05em;
}

.p-tsvc__ja {
	display: flex;
	align-items: center;
	gap: 19px;
	margin-top: 9px;
	font-size: 20px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: .1em;
}

.p-tsvc__ja svg {
	width: 8px;
	transition: translate .2s;
}

.p-tsvc__item a:hover .p-tsvc__ja svg {
	translate: 4px 0;
}

.p-tcase {
	position: relative;
	padding: 122px 0 0;
}

.p-tcase .c-bigen {
	left: calc(50% - 24px);
	top: 14px;
}

@media (max-width: 1100px) {
	.p-about__btns {
		flex-wrap: wrap;
	}

	.p-about__en {
		font-size: clamp(56px, 8.4vw, 101px);
	}

	.p-about__inner {
		padding-left: 40px;
	}

	.l-footer__inner {
		flex-wrap: wrap;
	}

	.l-footer__info,
	.l-footer__nav {
		flex: 1 1 100%;
	}
}

/* =========================================================
   下層共通パーツ
   ========================================================= */
.u-main {
	color: var(--c-main);
	font-weight: 600;
}

.c-accline {
	position: relative;
	display: block;
	height: 1px;
	background: var(--c-line);
}

.c-accline::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 20px;
	height: 1px;
	background: var(--c-main);
}

/* 枠付きリスト */
.c-boxlist {
	display: grid;
	gap: 10px;
}

.c-boxlist__row {
	display: grid;
	grid-template-columns: 104px 1fr;
	align-items: center;
	padding: 39px;
	border: 1px solid rgba(82, 82, 82, .25);
	border-radius: 3px;
}

.c-boxlist dt {
	font-size: 20px;
	font-weight: 600;
	line-height: 32px;
	letter-spacing: .05em;
}

.c-boxlist dd {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-left: 37px;
	border-left: 1px solid var(--c-line);
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-boxlist dd small {
	display: block;
	font-size: 14px;
	line-height: 1.3;
	margin-top: 2px;
}

.c-boxlist.is-divided .c-boxlist__row {
	grid-template-columns: 191px 1fr;
	padding-left: 0;
}

.c-boxlist.is-divided dt {
	text-align: center;
}

.c-boxlist.is-divided dd {
	padding-left: 40px;
}

.c-boxlist.is-tall .c-boxlist__row {
	min-height: 134px;
}

.c-boxlist.is-process .c-boxlist__row {
	min-height: 114px;
	padding-left: 31px;
	grid-template-columns: 113px 1fr;
}

.page-other .c-boxlist.is-divided .c-boxlist__row {
	grid-template-columns: 144px 1fr;
	padding-left: 40px;
}

.page-other .c-boxlist.is-divided dt {
	text-align: left;
	padding-left: 0;
}

.page-other .c-boxlist.is-divided dd {
	margin-left: 0;
}

.p-sec__box {
	margin-top: 60px;
}

.p-sec__box+.p-sec__txt {
	margin-top: 60px;
}

.p-svcitems__h {
	margin: 60px 0 20px;
}

/* サービス一覧 */
.p-svclist {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 30px;
	margin-top: 36px;
}

.p-svclist__item a {
	display: block;
}

.p-svclist__img {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.p-svclist__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale .4s;
}

.p-svclist__item a:hover img {
	scale: 1.05;
}

.p-svclist__en {
	display: block;
	margin-top: 20px;
	font-family: var(--f-en);
	font-size: 14px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: .05em;
}

.p-svclist__ttl {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 9px;
	font-size: 20px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.p-svclist__ttl .c-arrow {
	margin: -2px 20px -2px 0;
	transition: translate .2s;
}

.p-svclist__item a:hover .c-arrow {
	translate: 4px 0;
}

.p-svclist .c-accline {
	margin: 20px 0 -1px;
}

.p-svclist__txt {
	margin-top: 20px;
	min-height: 128px;
}

/* お見積り */
.p-estimate {
	max-width: 1180px;
	margin: 120px auto 0;
	padding: 0 20px;
}

.p-estimate__box {
	padding: 100px 47px 100px;
	border-radius: 10px;
	background: var(--c-pale);
	text-align: center;
}

.p-estimate__ttl {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .1em;
	color: var(--c-main);
}

.p-estimate__lead {
	margin-top: 10px;
}

.p-estimate__cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 60px;
}

.p-estimate__col {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.p-estimate__ic {
	height: 120px;
	width: auto;
	object-fit: contain;
	object-position: bottom;
}

.p-estimate__label {
	margin-top: 33px;
	font-size: 16px;
	font-weight: 600;
	line-height: 32px;
	letter-spacing: .05em;
}

.p-estimate__num {
	margin-top: 8px;
	font-family: var(--f-en);
	font-size: 24px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: 0;
	color: var(--c-main);
}

.p-estimate__hours {
	font-size: 14px;
	font-weight: 500;
	line-height: 32px;
	letter-spacing: 0;
	margin-top: -3px;
}

.p-estimate .c-mailbtn {
	margin-top: 10px;
}

.p-estimate__note {
	font-size: 14px;
	line-height: 32px;
	text-align: right;
}

.p-estimate {
	margin-bottom: -9px;
}

.page-service .p-estimate {
	margin-bottom: 0;
}

/* 写真＋ボックス */
.p-feats {
	display: grid;
	gap: 120px;
	margin-top: 80px;
}

.p-feat {
	position: relative;
	padding-top: 40px;
}

.p-feat__img {
	width: 72.917%;
	aspect-ratio: 700 / 467;
}

.p-feat__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-feat__box {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	width: 55.833%;
	padding: 0 0 58px 56px;
	background: rgba(255, 255, 255, .85);
}

.p-feat__txt {
	margin-top: 40px;
	padding-left: 0;
	text-shadow: 0 0 10px #fff;
}

.p-feat__txt p+p {
	margin-top: 0;
}

.p-feat__more {
	margin-top: 18px;
}

.p-feat.is-rev .p-feat__more {
	display: flex;
	justify-content: flex-end;
	width: fit-content;
	margin-left: auto;
}

.p-feat__num {
	position: absolute;
	z-index: 2;
	left: 777px;
	top: 314px;
	font-family: var(--f-en);
	font-size: 200px;
	font-weight: 700;
	line-height: 253px;
	letter-spacing: -.05em;
	background: var(--g1);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: .05;
	pointer-events: none;
}

/* 字間を詰めているため最後の数字が枠からはみ出し、はみ出た部分にグラデーションが塗られず欠ける → 右側だけ枠を広げる（位置は変えない） */
.p-feat__num {
	padding-right: .12em;
	margin-right: -.12em;
}

.p-feat.is-rev .p-feat__img {
	margin-left: auto;
}

.p-feat.is-rev .p-feat__box {
	right: auto;
	left: 0;
	padding: 0 56px 54px 0;
	background: rgba(255, 255, 255, .9);
}

.p-feat.is-rev .p-feat__num {
	left: -8px;
	top: 313px;
}

/* 背景なしのイラスト・図（枠いっぱいに切り抜かず全体を見せる） */
.p-feat.is-illust .p-feat__img {
	width: 40%;
	aspect-ratio: 480 / 360;
}

.p-feat.is-illust .p-feat__img img {
	object-fit: contain;
}

.p-feat.is-s .p-feat__img.is-contain {
	display: flex;
	align-items: center;
	width: 41.667%;
	min-height: 373px;
	aspect-ratio: auto;
}

.p-feat__img.is-contain img {
	height: auto;
}

/* デザイン品目アイコン */
.p-dicons {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 15px;
}

.p-dicons li {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	min-height: 134px;
	padding: 20px;
	border: 1px solid rgba(82, 82, 82, .25);
	border-radius: 3px;
	font-size: 20px;
	font-weight: 600;
	line-height: 26px;
	letter-spacing: .05em;
	text-align: center;
}

.p-dicons img {
	flex-shrink: 0;
	width: auto;
	max-height: 80px;
}

.p-dicons small {
	display: block;
	font-size: 14px;
	line-height: 22px;
	letter-spacing: 0;
}

/* 試作品製作 */
.p-proto__h {
	margin-top: 60px;
}

.p-proto {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	margin-top: 36px;
}

.p-proto__txt {
	width: 509px;
}

.p-proto__txt p+p {
	margin-top: 32px;
}

.p-proto__imgs {
	flex: 0 0 404px;
}

.p-proto__img {
	width: 100%;
	height: auto;
}

/* 塗装 */
.p-paint {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 60px;
}

.p-paint__img {
	aspect-ratio: 3 / 2;
}

.p-paint__img .c-noimg {
	background: #c4c4c4;
}

.p-paint__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-paint p {
	margin-top: 20px;
	font-size: 20px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: .1em;
}

.p-paint li:first-child p {
	letter-spacing: .05em;
}

/* 汎用リスト・テーブル */
.u-ul {
	text-decoration: underline;
}

.u-ib {
	display: inline-block;
	max-width: 100%;
}

.c-link {
	color: var(--c-link);
	font-weight: 600;
	text-decoration: underline;
	word-break: break-all;
}

.c-link:hover {
	opacity: .7;
}

.c-frame {
	padding: 39px;
	border: 1px solid rgba(82, 82, 82, .25);
	border-radius: 3px;
}

.c-frame>p+p {
	margin-top: 10px;
}

.c-dotlist li {
	position: relative;
	padding-left: 16px;
}

.c-dotlist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 13px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--c-main);
}

.c-dotlist.c-frame li {
	padding-left: 16px;
}

.c-dotlist.c-frame li+li {
	margin-top: 20px;
}

.c-numlist {
	counter-reset: num;
}

.c-numlist>li {
	position: relative;
	padding-left: 28px;
	counter-increment: num;
}

.c-numlist>li::before {
	content: counter(num) ".";
	position: absolute;
	left: 0;
	top: 0;
	font-family: var(--f-en);
	font-size: 18px;
	font-weight: 500;
	line-height: 32px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-numlist>li+li {
	margin-top: 20px;
}

.c-numlist--paren {
	margin-top: 10px;
}

.c-numlist--paren>li {
	padding-left: 50px;
}

.c-numlist--paren>li::before {
	content: "（" counter(num) "）";
	letter-spacing: 0;
}

.c-numlist--paren>li+li {
	margin-top: 10px;
}

.c-table {
	width: 100%;
	border-top: 1px solid var(--c-line);
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-table tr {
	border-bottom: 1px solid var(--c-line);
}

.c-table th,
.c-table td {
	padding-bottom: 9px !important;
}

.c-table th {
	width: 144px;
	padding: 10px;
	background: var(--c-pale);
	border-right: 1px solid var(--c-line);
	font-weight: 400;
	text-align: center;
	vertical-align: top;
}

.c-table td {
	padding: 10px 19px;
}

.c-tablenote {
	margin-top: 10px;
	font-size: 14px;
	line-height: 32px;
	letter-spacing: .05em;
	text-align: right;
}

.c-code {
	margin: 0;
	padding: 40px;
	border: 1px solid rgba(82, 82, 82, .25);
	border-radius: 3px;
	font-family: var(--f-ja);
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
	white-space: pre-wrap;
	word-break: break-all;
}

/* 写真＋ボックス（内外の特徴用） */
.p-strengths {
	display: grid;
	gap: 120px;
	margin-top: 36px;
	padding-bottom: 80px;
}

/* 最後の「06」が次のセクションに重なって欠けないよう余白を確保 */
.p-feat.is-s {
	padding-top: 0;
}

.p-feat.is-s .p-feat__img {
	width: 56.25%;
	aspect-ratio: 540 / 373;
}

.p-feat.is-s .p-feat__box {
	top: 0;
	width: 53.125%;
	padding: 0 0 56px 56px;
}

.p-feat.is-s.is-rev .p-feat__box {
	padding: 0 56px 56px 0;
	background: rgba(255, 255, 255, .85);
}

.p-feat.is-s .p-feat__num {
	font-size: 180px;
	left: 769px;
	top: 176px;
}

.p-feat.is-s:last-child .p-feat__num {
	top: 187px;
}

.p-feat.is-s.is-rev .p-feat__num {
	left: -8px;
	top: 170px;
}

.p-feat__ttl2 {
	font-size: 20px;
	font-weight: 600;
	line-height: 29px;
	letter-spacing: 0;
}

.p-feat.is-s .c-accline {
	margin: 20px 0 -1px;
}

.p-feat.is-s .p-feat__txt {
	margin-top: 20px;
}

.p-fintro {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	margin-top: 36px;
}

.p-fintro__txt {
	width: 530px;
}

.p-fintro__txt .c-dotlist {
	margin: 20px 0 20px;
}

.p-fintro__txt .c-dotlist li {
	padding-left: 10px;
	line-height: 32px;
}

.p-fintro__txt .c-dotlist li+li {
	margin-top: 10px;
}

.p-fintro__img {
	flex: 0 0 371px;
	margin-top: -19px;
	aspect-ratio: 1;
}

.p-fintro__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* サイトマップ */
.p-sec--simple {
	padding-top: 80px;
}

.p-smap {
	margin-top: 80px;
}

.p-smap__top {
	padding-bottom: 10px;
	border-bottom: 1px solid var(--c-main);
	font-size: 18px;
	font-weight: 600;
	line-height: 40px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.p-smap__cols {
	display: grid;
	grid-template-columns: 260px 289px 1fr;
	margin-top: 20px;
	padding-bottom: 80px;
	border-bottom: 1px solid var(--c-line);
}

.p-smap__ttl {
	font-size: 18px;
	font-weight: 600;
	line-height: 40px;
	letter-spacing: .1em;
}

.p-smap__list {
	margin-top: 20px;
}

.p-smap__list li {
	position: relative;
	padding-left: 30px;
	font-size: 14px;
	line-height: 38px;
	letter-spacing: .1em;
}

.p-smap__list li::before {
	content: "";
	position: absolute;
	left: 10px;
	top: 16px;
	width: 6px;
	height: 6px;
	border-top: 1px solid var(--c-text);
	border-right: 1px solid var(--c-text);
	rotate: 45deg;
}

.p-smap a:hover {
	color: var(--c-main);
}

.p-smap__links {
	display: flex;
	flex-wrap: wrap;
	gap: 40px 60px;
	margin-top: 80px;
}

/* 採用情報 */
.p-recruit__h {
	margin: 80px 0 36px;
}

.p-recruit__h--qa {
	margin-top: 120px;
}

.p-recruit__links {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	margin-top: 40px;
}

.c-pill.is-xl {
	font-size: 22px;
	line-height: 30px;
	letter-spacing: .05em;
}

.c-qa {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 30px;
}

.c-qa__q {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
	min-height: 96px;
	padding: 30px 40px 30px 32px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 10px;
	box-shadow: 0 5px 10px rgba(51, 51, 51, .1);
	text-align: left;
	font-size: 20px;
	font-weight: 600;
	line-height: 34px;
	letter-spacing: .05em;
}

.c-qa__mark {
	flex-shrink: 0;
	min-width: 38px;
	align-self: flex-start;
	margin-top: 2px;
	font-family: var(--f-en);
	font-size: 30px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
}

.c-qa__qtxt {
	flex: 1;
}

.c-qa__icon {
	position: relative;
	flex-shrink: 0;
	align-self: center;
	width: 25px;
	height: 25px;
}

.c-qa__icon::before,
.c-qa__icon::after {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	width: 25px;
	height: 1px;
	background: var(--c-text);
	transition: rotate .3s;
}

.c-qa__icon::after {
	rotate: 90deg;
}

.c-qa__q[aria-expanded="true"] .c-qa__icon::after {
	rotate: 0deg;
}

.c-qa__q:hover {
	border-color: var(--c-main);
}

.c-qa__a {
	display: flex;
	gap: 24px;
	padding: 30px 0 30px 33px;
}

.c-qa__a[hidden] {
	display: none;
}

.c-qa__a .c-qa__mark {
	color: var(--c-main);
}

.c-qa__atxt {
	flex: 1;
	min-width: 0;
}

/* 会社案内 */
.p-cintro {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	margin-top: 36px;
}

.p-cintro__txt {
	width: 580px;
}

.p-cintro__img {
	flex: 0 0 300px;
	margin-top: -14px;
	aspect-ratio: 3 / 2;
}

.p-cintro__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-company {
	display: flex;
	gap: 84px;
	margin-top: 70px;
}

.p-company__side {
	flex: 0 0 158px;
	min-width: 0;
}

.p-company__side ul {
	position: sticky;
	top: calc(var(--header-h) + 40px);
	display: grid;
	gap: 30px;
}

.p-company__side a {
	position: relative;
	display: block;
	white-space: nowrap;
	padding-left: 16px;
	font-size: 16px;
	line-height: 26px;
	letter-spacing: .1em;
	opacity: .7;
}

.p-company__side a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--c-main);
	opacity: 0;
	transition: opacity .2s;
}

.p-company__side a:hover,
.p-company__side a.is-current {
	opacity: 1;
}

.p-company__side a.is-current {
	font-weight: 600;
}

.p-company__side a.is-current::before {
	opacity: 1;
}

.p-company__main {
	flex: 1;
	min-width: 0;
}

.p-csec+.p-csec {
	margin-top: 120px;
}

.p-csec>.c-h3 {
	margin-bottom: 36px;
}

.p-csec__txt+.c-frame,
.p-csec__txt+.p-policy {
	margin-top: 60px;
}

.c-frame+.p-csec__txt {
	margin-top: 20px;
}

#iso .p-csec__txt {
	letter-spacing: .05em;
}

.p-csec__txt+.p-cert {
	margin-top: 40px;
}

.p-csec__h5 {
	margin: 60px 0 20px;
}

.p-csec__txt+.p-csec__h5 {
	margin-top: 60px;
}

.p-csec__ex {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	white-space: nowrap;
}

.p-csec__ex .c-link {
	letter-spacing: .05em;
}

.p-csec__date {
	margin-top: 20px;
}

.c-table--company th {
	width: 127px;
}

.p-officers {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 1em;
}

.p-officers dt {
	min-width: 5em;
}

.p-map {
	position: relative;
	max-width: 515px;
	aspect-ratio: 515 / 302;
	margin: 10px 0;
	background: #d9d9d9;
}

.p-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.p-business {
	display: grid;
	gap: 60px;
}

.p-business__item {
	display: flex;
	align-items: flex-start;
	gap: 26px;
}

.p-business__img {
	flex: 0 0 238px;
	min-width: 0;
	aspect-ratio: 238 / 158;
}

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

.p-business__body {
	flex: 1;
}

.p-business__ttl {
	font-size: 20px;
	font-weight: 600;
	line-height: 29px;
	letter-spacing: 0;
}

.p-business .c-accline {
	margin: 20px 0 -1px;
}

.p-business__txt {
	margin: 20px 0 20px;
}

.p-policy {
	counter-reset: pol;
	display: grid;
	gap: 30px;
}

.p-policy li:nth-child(2) {
	margin-bottom: -10px;
}

.p-policy li {
	position: relative;
	counter-increment: pol;
}

.p-policy h3 {
	position: relative;
	padding-left: 32px;
	font-size: 20px;
	font-weight: 600;
	line-height: 32px;
	letter-spacing: .05em;
}

.p-policy h3::before {
	content: counter(pol) ".";
	position: absolute;
	left: 0;
	top: 2px;
	font-family: var(--f-en);
	font-size: 26px;
	font-weight: 500;
	letter-spacing: .05em;
	color: var(--c-main);
}

.p-policy p {
	margin-top: 10px;
}

.p-cert {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}

.p-cert img {
	flex-shrink: 0;
}

/* フォーム */
.p-telbox {
	margin-top: 120px;
	padding: 80px 20px 80px;
	border-radius: 30px;
	background: var(--c-pale);
	text-align: center;
}

.p-telbox__ttl {
	font-size: 38px;
	font-weight: 700;
	line-height: 57px;
	letter-spacing: 0;
	color: var(--c-main);
}

.p-telbox__cols {
	display: flex;
	justify-content: center;
	gap: 0;
	margin-top: 61px;
}

.p-telbox__cols .p-estimate__col {
	width: 348px;
}

.p-telbox .p-estimate__num {
	margin-top: 16px;
}

.p-telbox a.p-estimate__num {
	font-weight: 700;
}

.p-telbox .p-estimate__hours {
	margin-top: 3px;
}

.p-formwrap {
	margin-top: 120px;
}

.p-formwrap.is-near {
	margin-top: 120px;
}

.c-form__ttl {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--c-line);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.46;
	letter-spacing: 0;
	color: var(--c-main);
}

.c-form__alert {
	margin-top: 20px;
	padding: 14px 20px;
	border: 1px solid #e33;
	border-radius: 3px;
	background: #fff5f5;
	color: #d00;
	font-size: 15px;
}

.c-form__row {
	display: grid;
	grid-template-columns: 318px 1fr;
	padding: 30px 0 29px;
	border-bottom: 1px solid var(--c-line);
}

.c-form__label {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 9px 27px 0 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-form__req {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 30px;
	margin-top: 1px;
	background: var(--c-main);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .05em;
}

.c-form input[type="text"],
.c-form input[type="email"],
.c-form input[type="tel"],
.c-form textarea,
.c-select select {
	width: 100%;
	height: 50px;
	padding: 0 20px;
	border: 1px solid var(--c-line);
	border-radius: 3px;
	background: #fff;
	font-size: 16px;
	letter-spacing: .1em;
}

.c-form textarea {
	height: 200px;
	padding: 9px 20px;
	line-height: 32px;
	resize: vertical;
}

.c-form ::placeholder {
	color: #999;
}

.c-form input:focus,
.c-form textarea:focus,
.c-select select:focus {
	outline: 2px solid rgba(0, 85, 128, .3);
	border-color: var(--c-main);
}

.c-select {
	position: relative;
}

.c-select::after {
	content: "";
	position: absolute;
	right: 22px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-right: 1px solid var(--c-text);
	border-bottom: 1px solid var(--c-text);
	translate: 0 -75%;
	rotate: 45deg;
	pointer-events: none;
}

.c-select select {
	appearance: none;
	padding-right: 50px;
	cursor: pointer;
}

.c-radios {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

.c-radio,
.c-check {
	position: relative;
	display: flex;
	align-items: center;
	cursor: pointer;
}

.c-radio {
	height: 50px;
	padding-left: 53px;
	border: 1px solid var(--c-line);
	border-radius: 3px;
	background: #fff;
}

.c-radio input,
.c-check input {
	position: absolute;
	opacity: 0;
}

.c-radio span::before {
	content: "";
	position: absolute;
	left: 21px;
	top: 13px;
	width: 22px;
	height: 22px;
	border: 1px solid var(--c-line);
	border-radius: 50%;
	background: #fff;
}

.c-radio input:checked+span::after {
	content: "";
	position: absolute;
	left: 27px;
	top: 19px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--c-main);
}

.c-radio input:focus-visible+span::before,
.c-check input:focus-visible+span::before {
	outline: 2px solid var(--c-link);
}

.c-check {
	margin-top: 20px;
	padding-left: 32px;
}

.c-check span::before {
	content: "";
	position: absolute;
	left: 0;
	top: 5px;
	width: 22px;
	height: 22px;
	border: 1px solid var(--c-line);
	border-radius: 3px;
	background: #fff;
}

.c-check input:checked+span::after {
	content: "";
	position: absolute;
	left: 8px;
	top: 8px;
	width: 6px;
	height: 11px;
	border-right: 2px solid var(--c-main);
	border-bottom: 2px solid var(--c-main);
	rotate: 45deg;
}

.c-form__field>p {
	padding-top: 9px;
}

.c-form__pp {
	text-decoration: underline;
}

.c-form__pp:hover {
	color: var(--c-main);
}

.c-files {
	display: grid;
	gap: 20px;
}

.c-file {
	display: flex;
	align-items: center;
	gap: 30px;
	cursor: pointer;
}

.c-file input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.c-file__btn {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	width: 300px;
	height: 50px;
	padding: 0 20px;
	border: 1px solid var(--c-line);
	border-radius: 3px;
	background: #fff;
}

.c-file:hover .c-file__btn {
	border-color: var(--c-main);
}

.c-file input:focus-visible+.c-file__btn {
	outline: 2px solid var(--c-link);
}

.c-file__name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.c-files__kept {
	display: grid;
	gap: 10px;
}

.c-files__kept .c-check span {
	word-break: break-all;
}

.c-files__note {
	font-size: 13px;
	line-height: 1.6;
	color: var(--c-gray);
}

.c-form__note {
	font-size: 13px;
	line-height: 1.6;
	color: #666;
}

.c-form__err {
	margin-top: 8px;
	color: #d00;
	font-size: 14px;
	line-height: 1.6;
}

.c-form__row.is-error input,
.c-form__row.is-error select,
.c-form__row.is-error textarea {
	border-color: #e33;
	background: #fff8f8;
}

.c-form__hp {
	position: absolute;
	left: -9999px;
}

.c-form__submit {
	margin-top: 80px;
	text-align: center;
}

.c-form button.c-pill {
	cursor: pointer;
	font-family: inherit;
}

.c-pill.is-l.is-xl:not(.is-fill) {
	border: 2px solid #1d6c93;
}

.c-form.is-confirm .c-form__row {
	padding: 30px 0;
}

.c-form.is-confirm .c-form__label {
	padding-top: 0;
}

.c-form__value {
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-form__files li+li {
	margin-top: 20px;
}

.c-form__btns {
	display: flex;
	justify-content: center;
	gap: 30px;
	margin-top: 60px;
}

.p-confirm {
	padding-top: 120px;
}

.p-confirm__ttl {
	margin-bottom: 80px;
	font-size: 32px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: .1em;
	text-align: center;
}

/* 送信完了 */
.p-thanks {
	padding-top: 120px;
	text-align: center;
}

.p-thanks__icon {
	width: 99px;
	margin-left: 11px;
}

.p-thanks__ttl {
	margin-top: 40px;
	font-size: 32px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: .1em;
}

.p-thanks__txt {
	margin-top: 20px;
}

.p-thanks__box {
	max-width: 829px;
	margin: 60px auto 0;
	padding: 40px 20px;
	border: 1px solid var(--c-line);
	border-radius: 3px;
}

.p-thanks__contact {
	width: 701px;
	max-width: 100%;
	margin: 20px auto 0;
	padding-top: 20px;
	border-top: 1px solid var(--c-line);
	font-size: 18px;
	font-weight: 500;
}

.p-thanks .c-btnrow {
	margin-top: 58px;
}

/* コラム一覧 */
.c-cards--list {
	margin-top: 20px;
	row-gap: 50px;
}

.c-cards--case {
	margin-top: 36px;
}

.p-colcat__h {
	margin-top: 36px;
	font-size: 26px;
	font-weight: 600;
	line-height: 51px;
	letter-spacing: .05em;
}

.p-colcat__h--list {
	margin-top: 120px;
}

.p-colcat {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-top: 40px;
}

.p-colcat a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 230px;
	min-height: 50px;
	padding: 0 12px;
	border: 1px solid var(--c-main);
	border-radius: 3px;
	background: #fff;
	color: var(--c-main);
	font-size: 16px;
	font-weight: 700;
	line-height: 27px;
	letter-spacing: .05em;
	text-align: center;
}

.p-colcat a:hover {
	background: var(--c-pale);
}

.p-colcat a.is-current {
	background: var(--c-main);
	color: #fff;
}

/* 記事詳細 */
.p-single {
	padding-top: 80px;
}

.p-single__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.c-cat.is-main {
	background: var(--c-main);
}

a.c-cat:hover {
	opacity: .8;
}

.c-date.is-main {
	color: var(--c-main);
}

.p-single__meta .c-news__cat {
	width: 148px;
}

.p-single__en {
	margin-bottom: 4px;
}

.p-single__ttl {
	margin-top: 20px;
	font-size: 32px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: .1em;
}

.p-single__en+.p-single__ttl {
	margin-top: 0;
}

.p-single__eyecatch {
	margin-top: 40px;
	aspect-ratio: 3 / 2;
	background: #94a3b8;
}

.p-single__eyecatch img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-single .c-entry {
	margin-top: 40px;
}

.p-single__btns {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 30px;
	margin-top: 80px;
}

.p-casedetail {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: start;
	margin-top: 40px;
}

.p-casedetail__img {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.p-casedetail__img img,
.p-casedetail__img .c-noimg {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 本文（エディタ出力） */
.c-entry {
	font-size: 16px;
	line-height: 2;
	letter-spacing: .1em;
	overflow-wrap: anywhere;
}

.c-entry>*+* {
	margin-top: 32px;
}

.c-entry>p+p {
	margin-top: 28px;
}

.c-entry h2 {
	position: relative;
	margin-top: 80px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--c-line);
	font-size: 32px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: .1em;
}

.c-entry h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 42px;
	height: 1px;
	background: var(--c-main);
}

.c-entry h3 {
	margin-top: 80px;
	font-size: 26px;
	font-weight: 600;
	line-height: 38px;
	letter-spacing: 0;
}

.c-entry h4 {
	margin-top: 80px;
	font-size: 26px;
	font-weight: 600;
	line-height: 38px;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-entry h5,
.c-entry h6 {
	margin-top: 80px;
	font-size: 20px;
	font-weight: 600;
	line-height: 29px;
	letter-spacing: 0;
}

.c-entry h2+*,
.c-entry h3+*,
.c-entry h4+*,
.c-entry h5+*,
.c-entry h6+* {
	margin-top: 20px;
}

.c-entry>.is-section {
	margin-top: 80px;
}

.c-entry>.is-label {
	margin-top: 80px;
	font-weight: 600;
	line-height: 23px;
	letter-spacing: 0;
}

.c-entry>.is-label+* {
	margin-top: 20px;
}

.c-entry strong,
.c-entry b {
	font-weight: 600;
	letter-spacing: 0;
}

.c-entry .is-red,
.c-entry .has-red-color {
	color: var(--c-red);
	font-weight: 600;
}

.c-entry mark {
	padding: 2px 11px;
	border-radius: 2px;
	background: #ffeda3;
	color: inherit;
}

.c-entry a {
	color: var(--c-link);
	font-weight: 600;
	letter-spacing: 0;
	text-decoration: underline;
}

.c-entry a:hover {
	opacity: .7;
}

.c-entry .is-note,
.c-entry small {
	font-size: 14px;
}

.c-entry .is-note {
	line-height: 20px;
}

.c-entry>.is-section>strong:first-child {
	display: inline-block;
	width: 219px;
}

.c-entry>.is-section>mark {
	display: inline-block;
	width: 210px;
	margin: 0 50px 0 0;
	line-height: 28px;
}

.c-entry>.is-note.is-section {
	margin-top: 74px;
}

.c-entry ul:not([class*="blocks-gallery"])>li {
	position: relative;
	padding-left: 16px;
	line-height: 32px;
}

.c-entry ul:not([class*="blocks-gallery"])>li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 13px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--c-main);
}

.c-entry ol {
	counter-reset: eol;
}

.c-entry ol>li {
	position: relative;
	padding-left: 28px;
	counter-increment: eol;
	line-height: 32px;
}

.c-entry ol>li::before {
	content: counter(eol) ".";
	position: absolute;
	left: 0;
	top: 0;
	font-family: var(--f-en);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: .1em;
	color: var(--c-main);
}

.c-entry li+li {
	margin-top: 8px;
}

.c-entry blockquote {
	position: relative;
	padding: 40px;
	border: 0;
	border-radius: 3px;
	background: #f2f2f2;
}

.c-entry blockquote::before {
	content: "“";
	position: absolute;
	left: 11px;
	top: -25px;
	font-size: 120px;
	font-weight: 600;
	line-height: 174px;
	letter-spacing: .1em;
	color: #e6e6e6;
	z-index: 0;
}

.c-entry blockquote>* {
	position: relative;
}

.c-entry blockquote cite {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	font-style: normal;
	color: #666;
}

.c-entry figure {
	margin-inline: 0;
}

.c-entry figcaption {
	margin-top: 8px;
	font-size: 13px;
	color: #666;
	text-align: center;
}

.c-entry .wp-block-table {
	overflow-x: auto;
}

.c-entry table {
	width: 100%;
	max-width: 843px;
	border-collapse: collapse;
	border-top: 1px solid var(--c-line);
}

.c-entry .wp-block-table thead {
	border-bottom: 0;
}

.c-entry th,
.c-entry td {
	padding: 10px 16px 9px;
	border: 0;
	border-bottom: 1px solid var(--c-line);
	border-right: 1px solid var(--c-line);
	text-align: center;
	line-height: 32px;
}

.c-entry th:last-child,
.c-entry td:last-child {
	border-right: 0;
}

.c-entry thead th,
.c-entry thead td {
	padding: 13px 16px 13px;
	background: var(--c-pale);
	font-size: 15px;
	font-weight: 600;
	line-height: 21px;
	letter-spacing: 0;
}

.c-entry dl {
	display: grid;
	grid-template-columns: 146px 1fr;
	max-width: 843px;
	border-top: 1px solid var(--c-line);
}

.c-entry dt,
.c-entry dd {
	padding: 10px 20px 9px;
	border-bottom: 1px solid var(--c-line);
	line-height: 32px;
}

.c-entry dt {
	background: var(--c-pale);
	border-right: 1px solid var(--c-line);
	text-align: center;
	padding-inline: 10px;
}

.c-entry img {
	height: auto;
}

.c-entry .wp-block-image img {
	display: block;
}

.c-entry .aligncenter {
	margin-inline: auto;
	text-align: center;
}

.c-entry .wp-block-buttons a {
	text-decoration: none;
}

/* FAQ */
.c-qa--faq {
	gap: 0;
	margin-top: 71px;
}

.c-qa--faq .c-qa__item:last-child .c-qa__a {
	padding-bottom: 0;
}

.c-qa--faq .c-qa__item+.c-qa__item {
	margin-top: 30px;
}

.c-qa--faq .c-qa__item.is-open+.c-qa__item {
	margin-top: 30px;
}

.c-qa--faq .c-qa__q {
	gap: 32px;
	align-items: flex-start;
	padding-top: 28px;
	padding-bottom: 28px;
	line-height: 36px;
}

.c-qa--faq .c-qa__q .c-qa__mark {
	line-height: 35px;
	margin-top: 2px;
}

.c-qa--faq .c-qa__q .c-qa__icon {
	align-self: center;
}

.c-qa--faq .c-qa__a .c-qa__mark {
	min-width: 20px;
	line-height: 35px;
	margin-top: -2px;
}

.c-qa--faq .c-qa__mark {
	min-width: 23px;
}

.c-qa--faq .c-qa__a {
	gap: 33px;
	padding: 32px 0 30px 34px;
}

.c-qa__atxt>*+* {
	margin-top: 20px;
}

.c-qa__atxt .c-frame {
	padding: 39px;
	border-color: var(--c-line);
}

.c-qa__atxt .c-boxlist__row {
	border-color: var(--c-line);
}

.c-boxlist--faq .c-boxlist__row {
	grid-template-columns: 81px 1fr;
}

.c-scroll {
	overflow-x: auto;
}

.c-sizetable {
	width: 700px;
	font-size: 16px;
	line-height: 32px;
	letter-spacing: .1em;
}

.c-sizetable thead th {
	background: var(--c-pale);
	font-family: var(--f-en);
	font-weight: 600;
	text-align: left;
	padding: 8px 0 8px 39px;
	letter-spacing: .1em;
}

.c-sizetable th,
.c-sizetable td {
	padding: 10px 0 9px;
	border-bottom: 1px solid var(--c-line);
	text-align: left;
	vertical-align: middle;
}

.c-sizetable tbody th {
	width: 277px;
	padding-left: 40px;
	font-weight: 600;
}

.c-sizetable td:nth-of-type(1),
.c-sizetable td:nth-of-type(2) {
	width: 168px;
}

/* プライバシーポリシー */
.p-pp {
	display: grid;
	gap: 60px;
	margin-top: 80px;
}

.p-pp__h {
	padding-bottom: 19px;
	border-bottom: 1px solid var(--c-line);
	font-size: 26px;
	font-weight: 600;
	line-height: 51px;
	letter-spacing: .05em;
}

.p-pp__body {
	margin-top: 40px;
	padding: 0 40px;
}

.p-pp__body p+p {
	margin-top: 10px;
}

.p-pp__list {
	margin-top: 18px;
}

.p-pp__list li+li {
	margin-top: 20px;
}

.p-pp__h3 {
	margin-top: 120px;
}

.p-404__num {
	font-family: var(--f-en);
	font-size: 120px;
	font-weight: 700;
	line-height: 1;
	background: var(--g1);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: .3;
}

/* ログイン中の管理バー分ずらす */
.admin-bar .l-header {
	top: 32px;
}

html:has(body.admin-bar) {
	scroll-padding-top: calc(var(--header-h) + 52px);
}

@media (max-width: 782px) {
	.admin-bar .l-header {
		top: 46px;
	}

	html:has(body.admin-bar) {
		scroll-padding-top: calc(var(--header-h) + 66px);
	}
}

@media (max-width: 1100px) {
	.admin-bar .l-gnav {
		top: calc(var(--header-h) + 32px);
	}
}

@media (max-width: 782px) {
	.admin-bar .l-gnav {
		top: calc(var(--header-h) + 46px);
	}
}

/* --- デザイン照合による微調整 --- */
.c-form input,
.c-form textarea,
.c-select select {
	display: block;
}

.p-recruit__h:first-of-type {
	margin-top: 70px;
}

.p-company .c-btn {
	width: 351px;
}

.c-form__field>p {
	padding-left: 20px;
	padding-top: 0 !important;
}

.c-form__row:has(.c-check) .c-form__label {
	padding-top: 0;
}

.c-form__row:has(.c-check) .c-form__req {
	margin-top: 1px;
}

.c-check {
	margin-left: 20px;
}

.page-prototype .p-head+.p-sec {
	padding-top: 134px;
}

.p-dicons {
	margin-top: 36px;
}

/* =========================================================
   SP
   ========================================================= */
@media (max-width: 767px) {
	body {
		font-size: 15px;
		letter-spacing: .06em;
	}

	.l-inner {
		padding-inline: 20px;
	}

	.c-bigen,
	.p-head__big {
		font-size: 110px;
		line-height: 1;
	}

	.c-sechead__en {
		font-size: 16px;
		line-height: 24px;
	}

	.c-sechead__ja {
		font-size: 24px;
		line-height: 1.5;
	}

	.c-sechead.is-top .c-sechead__ja {
		font-size: 32px;
	}

	.c-h3,
	.c-h4 {
		font-size: 20px;
	}

	.c-h5 {
		font-size: 17px;
	}

	.c-lead {
		margin-top: 24px;
	}

	.c-btn {
		height: 64px;
	}

	.c-btn__ja {
		font-size: 16px;
	}

	.c-btnrow {
		justify-content: center;
		margin-top: 36px;
	}

	.c-cards {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 40px;
	}

	.c-card__body {
		min-height: 0;
		padding: 20px 16px 22px;
	}

	.c-card:not(.c-card--case) .c-card__link {
		display: grid;
		grid-template-columns: 38% 1fr;
	}

	.c-card:not(.c-card--case) .c-card__img {
		aspect-ratio: auto;
		min-height: 110px;
	}

	.c-card:not(.c-card--case) .c-card__body {
		padding: 14px 14px 16px;
	}

	.c-card:not(.c-card--case) .c-card__meta {
		gap: 6px;
	}

	.c-card:not(.c-card--case) .c-cat {
		min-width: 0;
		padding: 2px 10px;
		font-size: 11px;
	}

	.c-card:not(.c-card--case) .c-date {
		font-size: 11px;
	}

	.c-card:not(.c-card--case) .c-date span {
		font-size: 12px;
	}

	.c-card:not(.c-card--case) .c-card__ttl {
		margin-top: 8px;
		font-size: 14px;
		line-height: 1.6;
		-webkit-line-clamp: 3;
	}

	.c-card--case .c-card__img {
		aspect-ratio: 2 / 1;
	}

	.c-card--case .c-card__body {
		padding: 18px 16px 22px;
	}

	.c-card__spec {
		font-size: 14px;
		line-height: 1.8;
	}

	.c-card__ttl {
		margin-top: 14px;
	}

	.c-news {
		grid-template-columns: auto 1fr;
		gap: 10px 16px;
		padding: 20px 4px;
	}

	.c-news__date {
		font-size: 15px;
	}

	.c-news__cat {
		width: 110px;
		height: 30px;
		font-size: 13px;
	}

	.c-news__body {
		grid-column: 1 / -1;
	}

	.c-news__ttl {
		font-size: 15px;
		line-height: 1.8;
	}

	.c-more {
		font-size: 16px;
	}

	.c-pill.is-l {
		height: 60px;
		font-size: 16px;
	}

	.p-head {
		padding-top: 70px;
	}

	.p-head__big {
		left: -6px;
		top: 4px;
	}

	.p-head__ttl {
		font-size: 28px;
		line-height: 1.5;
	}

	.p-head__img {
		margin: 20px 0 0 20px;
		height: 160px;
	}

	.c-bread {
		margin-top: 14px;
		font-size: 11px;
	}

	.p-sec,
	.p-sec+.p-sec {
		padding-top: 70px;
	}

	.p-fc {
		margin-top: 70px;
		border-radius: 30px 30px 0 0;
	}

	.p-fc__inner {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.p-fc__inner::before {
		left: 30px;
		right: 30px;
		top: 50%;
		bottom: auto;
		width: auto;
		height: 1px;
	}

	.p-fc__item {
		padding: 36px 20px;
	}

	.p-fc__ja {
		font-size: 14px;
	}

	.p-fc__en {
		font-size: 48px;
		line-height: 1.1;
	}

	.p-fc__arrow {
		width: 32px;
		height: 32px;
		margin-top: 12px;
	}

	.p-recruitbn {
		padding: 60px 0 70px;
	}

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

	.p-recruitbn__txt {
		margin-top: 24px;
	}

	.p-recruitbn .c-btn {
		margin-top: 30px;
	}

	.p-colsec {
		padding: 80px 0 50px;
	}

	.p-newssec {
		padding: 80px 0 70px;
	}

	.c-bigen--news {
		right: -6px;
		top: 10px;
	}

	.c-newslist {
		margin-top: 30px;
	}

	.l-footer__inner {
		flex-direction: column;
		padding: 50px 20px 40px;
		gap: 40px;
	}

	.l-footer__logo img {
		width: 200px;
	}

	.l-footer__address {
		margin-top: 24px;
		font-size: 13px;
	}

	.l-footer__contact {
		width: 100%;
		max-width: 320px;
	}

	.l-footer__nav {
		flex-wrap: wrap;
		gap: 30px 20px;
	}

	.l-footer__col {
		width: calc(50% - 10px);
	}

	.l-footer__list {
		margin-top: 8px;
		padding-left: 12px;
	}

	.l-footer__list li {
		font-size: 13px;
		line-height: 1.6;
		white-space: normal;
	}

	.l-footer__list li a {
		display: inline-block;
		padding: 5px 0;
	}

	.l-footer__main {
		width: 100%;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 20px;
	}

	.l-footer__main li {
		font-size: 15px;
		line-height: 44px;
	}

	.l-footer__copy {
		font-size: 11px;
		line-height: 50px;
	}

	.c-totop {
		right: 12px;
		bottom: 12px;
	}

	.c-totop__txt {
		display: none;
	}

	.c-totop__icon {
		width: 44px;
		height: 44px;
	}

	/* TOP */
	.p-fv {
		height: auto;
		min-height: 560px;
	}

	.p-fv__bg img {
		object-position: 50% 50%;
	}

	.p-fv__body {
		padding: 60px 20px 110px;
	}

	.p-fv__sub {
		font-size: 4.1vw;
		letter-spacing: .05em;
	}

	.p-fv__ttl {
		margin-top: 14px;
		font-size: 10.667vw;
		line-height: 1.4;
	}

	.p-fv__ttl small {
		font-size: 7.467vw;
	}

	.p-fv__txt {
		margin-top: 20px;
		font-size: 13px;
		line-height: 1.9;
	}

	.p-fv__btn {
		width: 100%;
		margin-top: 28px;
	}

	.p-fv__btn .c-btn__ja {
		font-size: 15px;
	}

	.p-fv__scroll {
		right: 16px;
		bottom: 20px;
		font-size: 14px;
	}

	.p-about {
		padding: 70px 0 60px;
	}

	.p-about .c-bigen {
		left: auto;
		right: -30px;
		top: 40px;
	}

	.p-about__inner {
		padding: 0 20px;
	}

	.p-about__en {
		font-size: 48px;
	}

	.p-about__ttl {
		margin-top: 20px;
		font-size: 21px;
	}

	.p-about__txt {
		margin-top: 24px;
	}

	.p-about__btns {
		flex-direction: column;
		gap: 14px;
		margin-top: 30px;
	}

	.p-about__btns .c-btn {
		width: 100%;
	}

	.p-tsvc {
		padding: 80px 0 110px;
		margin-top: 0;
	}

	.p-tsvc__bg {
		left: -10%;
		right: -10%;
	}

	.p-tsvc__txt {
		margin-top: 24px;
	}

	.p-tsvc__list {
		grid-template-columns: 1fr 1fr;
		gap: 30px 14px;
		margin-top: 40px;
	}

	.p-tsvc__en {
		margin-top: 12px;
		font-size: 11px;
	}

	.p-tsvc__ja {
		gap: 8px;
		font-size: 14px;
		line-height: 1.4;
		margin-top: 6px;
	}

	.p-tcase {
		padding-top: 60px;
	}

	/* 下層 SP */
	.c-boxlist__row {
		grid-template-columns: 1fr;
		gap: 6px;
		min-height: 0;
		padding: 18px 20px;
	}

	.c-boxlist dt {
		font-size: 17px;
	}

	.c-boxlist dd {
		font-size: 15px;
		line-height: 1.8;
	}

	.c-boxlist.is-divided .c-boxlist__row,
	.page-other .c-boxlist.is-divided .c-boxlist__row {
		grid-template-columns: 1fr;
		padding: 20px;
		min-height: 0;
	}

	.c-boxlist.is-divided dt,
	.page-other .c-boxlist.is-divided dt {
		text-align: left;
		padding-left: 0;
	}

	.c-boxlist dd,
	.c-boxlist.is-divided dd,
	.page-other .c-boxlist.is-divided dd {
		margin: 8px 0 0;
		padding: 10px 0 0;
		border-left: 0;
		border-top: 1px solid var(--c-line);
	}

	.p-sec__box,
	.p-sec__box+.p-sec__txt {
		margin-top: 36px;
	}

	.p-svcitems__h {
		margin: 40px 0 16px;
	}

	.p-svclist {
		grid-template-columns: 1fr;
		gap: 36px;
		margin-top: 30px;
	}

	.p-svclist__ttl {
		font-size: 18px;
	}

	.p-svclist__ttl .c-arrow {
		margin-right: 0;
	}

	.p-estimate {
		margin-top: 70px;
	}

	.p-estimate__box {
		padding: 40px 20px;
	}

	.p-estimate__ttl {
		font-size: 21px;
	}

	.p-estimate__lead {
		font-size: 14px;
		text-align: left;
	}

	.p-estimate__cols {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-top: 30px;
	}

	.p-estimate__ic {
		height: 70px;
	}

	.p-estimate__label {
		margin-top: 12px;
		font-size: 14px;
	}

	.p-estimate__num {
		font-size: 22px;
	}

	.p-estimate__note {
		font-size: 12px;
		text-align: left;
	}

	.p-feats {
		gap: 50px;
		margin-top: 40px;
	}

	.p-feat {
		padding-top: 0;
	}

	.p-feat__img,
	.p-feat.is-rev .p-feat__img {
		width: calc(100% + 20px);
		margin: 0 -20px 0 0;
	}

	.p-feat.is-rev .p-feat__img {
		margin: 0 0 0 -20px;
	}

	.p-feat__box,
	.p-feat.is-rev .p-feat__box {
		position: relative;
		width: auto;
		margin: 0px 0 0 20px;
		padding: 24px 0 0 20px;
	}

	.p-feat.is-rev .p-feat__box {
		margin: 0px 20px 0 0;
		padding: 24px 20px 0 0;
	}

	.p-feat__txt {
		margin-top: 20px;
	}

	.p-feat__num {
		font-size: 90px;
		line-height: 1;
		top: -10px;
		bottom: auto;
		left: auto;
		right: 0;
	}

	.p-feat.is-rev .p-feat__num {
		top: -10px;
		left: auto;
		right: 0;
	}

	.p-feat.is-illust .p-feat__img {
		width: 100%;
		margin: 0;
	}

	.p-dicons {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.p-dicons li {
		justify-content: flex-start;
		min-height: 96px;
		font-size: 17px;
		text-align: left;
	}

	.p-dicons img {
		width: 60px;
		max-height: 56px;
		object-fit: contain;
	}

	.p-proto {
		flex-direction: column;
		gap: 30px;
	}

	.p-proto__txt {
		width: auto;
	}

	.p-proto__imgs {
		flex: none;
		width: 100%;
		max-width: 404px;
		margin: 0 auto;
	}

	.p-paint {
		grid-template-columns: 1fr 1fr;
		gap: 20px 14px;
		margin-top: 36px;
	}

	.p-paint p {
		margin-top: 10px;
		font-size: 15px;
	}

	.c-frame,
	.c-code {
		padding: 20px;
	}

	.c-code {
		font-size: 13px;
		line-height: 1.8;
	}

	.c-table {
		font-size: 14px;
		line-height: 1.7;
	}

	.c-table th {
		width: 100px;
		padding: 10px 6px;
		font-size: 13px;
	}

	.c-table td {
		padding: 10px 12px;
	}

	.p-strengths {
		gap: 60px;
		padding-bottom: 0;
	}

	.p-feat.is-s .p-feat__img {
		width: calc(100% + 20px);
	}

	.p-feat.is-s .p-feat__img.is-contain {
		width: 100%;
		min-height: 0;
		margin: 0;
	}

	.p-feat.is-s .p-feat__box,
	.p-feat.is-s.is-rev .p-feat__box {
		width: auto;
		padding: 24px 20px 0 0;
	}

	.p-feat.is-s:not(.is-rev) .p-feat__box {
		padding: 24px 0 0 20px;
	}

	.p-feat.is-s .p-feat__num,
	.p-feat.is-s:last-child .p-feat__num {
		font-size: 80px;
		top: -10px;
		bottom: auto;
		left: auto;
		right: 0;
		display: none;
	}

	.p-feat.is-s.is-rev .p-feat__num {
		top: -10px;
		left: auto;
		right: 0;
		display: none;
	}

	.p-fintro,
	.p-cintro {
		flex-direction: column;
		gap: 24px;
	}

	.p-fintro__txt,
	.p-cintro__txt {
		width: auto;
	}

	.p-fintro__img,
	.p-cintro__img {
		flex: none;
		margin: 0;
	}

	.p-smap,
	.p-sec--simple {
		margin-top: 40px;
		padding-top: 40px;
	}

	.p-smap__cols {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-bottom: 30px;
	}

	.p-smap__list {
		margin-top: 4px;
	}

	.p-smap__links {
		flex-direction: column;
		gap: 16px;
		margin-top: 30px;
	}

	.p-recruit__h {
		margin: 50px 0 20px;
	}

	.p-recruit__h--qa {
		margin-top: 70px;
	}

	.c-qa {
		gap: 14px;
	}

	.c-qa__q {
		gap: 12px;
		min-height: 64px;
		padding: 14px 16px;
		font-size: 15px;
		line-height: 1.6;
	}

	.c-qa__mark {
		min-width: 28px;
		font-size: 22px;
	}

	.c-qa__icon {
		width: 16px;
		height: 16px;
	}

	.c-qa__icon::before,
	.c-qa__icon::after {
		width: 16px;
		top: 8px;
	}

	.c-qa__a {
		gap: 12px;
		padding: 16px 4px 10px 17px;
	}

	.c-pill.is-xl {
		font-size: 17px;
	}

	.p-company {
		display: block;
		margin-top: 50px;
	}

	.p-company__side {
		display: none;
	}

	.p-csec+.p-csec {
		margin-top: 70px;
	}

	.p-csec>.c-h3 {
		margin-bottom: 20px;
	}

	.p-csec__txt+.c-frame,
	.p-csec__txt+.p-policy,
	.p-csec__txt+.p-cert,
	.c-frame+.p-csec__txt,
	.p-csec__h5,
	.p-csec__txt+.p-csec__h5 {
		margin-top: 30px;
	}

	.c-table--company th {
		width: 90px;
	}

	.p-business {
		gap: 36px;
	}

	.p-business__item {
		flex-direction: column;
		gap: 14px;
	}

	.p-business__img {
		flex: none;
	}

	.p-policy h3 {
		font-size: 17px;
	}

	.p-cert {
		flex-direction: column;
	}

	.p-csec__ex {
		flex-wrap: wrap;
		white-space: normal;
	}

	.p-cert img {
		width: 100px;
	}

	.p-telbox {
		margin-top: 40px;
		padding: 40px 16px;
		border-radius: 16px;
	}

	.p-telbox__ttl {
		font-size: 19px;
		line-height: 1.6;
	}

	.p-telbox__cols {
		flex-direction: column;
		gap: 30px;
		margin-top: 30px;
	}

	.p-telbox__cols .p-estimate__col {
		width: auto;
	}

	.p-formwrap,
	.p-formwrap.is-near {
		margin-top: 70px;
	}

	.c-form__ttl {
		font-size: 19px;
		padding-bottom: 14px;
	}

	.c-form__row {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 20px 0;
	}

	.c-form__label {
		justify-content: flex-start;
		gap: 12px;
		padding: 0;
		font-size: 16px;
	}

	.c-form__req {
		width: 44px;
		height: 24px;
		font-size: 12px;
	}

	.c-radios {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.c-file {
		gap: 12px;
	}

	.c-file__btn {
		width: 150px;
		font-size: 14px;
	}

	.c-file__name {
		font-size: 13px;
	}

	.c-form__submit {
		margin-top: 40px;
	}

	.c-form__btns {
		flex-direction: column-reverse;
		align-items: center;
		gap: 14px;
		margin-top: 40px;
	}

	.p-confirm,
	.p-thanks {
		padding-top: 60px;
	}

	.p-confirm__ttl {
		margin-bottom: 40px;
		font-size: 20px;
		line-height: 1.6;
	}

	.p-thanks__ttl {
		font-size: 24px;
		margin-top: 24px;
	}

	.p-thanks__txt {
		text-align: left;
	}

	.p-thanks__box {
		padding: 24px 16px;
		text-align: left;
	}

	.p-thanks__contact {
		font-size: 15px;
		width: auto;
	}

	.c-pager {
		gap: 6px;
		margin-top: 40px;
	}

	.c-pager .page-numbers {
		min-width: 34px;
		height: 34px;
		font-size: 18px;
	}

	.c-pager .prev span,
	.c-pager .next span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	/* 見た目は矢印のみ・読み上げ用に文字は残す */
	.p-listbtn {
		margin-top: 40px;
	}

	.c-cards--list {
		row-gap: 20px;
	}

	.p-colcat__h {
		font-size: 19px;
		line-height: 1.6;
		margin-top: 24px;
	}

	.p-colcat__h--list {
		margin-top: 50px;
	}

	.p-colcat {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		margin-top: 16px;
	}

	.p-colcat a {
		width: auto;
		min-height: 44px;
		font-size: 14px;
	}

	.p-single {
		padding-top: 40px;
	}

	.p-single__ttl {
		font-size: 22px;
		line-height: 1.6;
	}

	.p-single__btns {
		flex-direction: column;
		align-items: center;
		gap: 14px;
		margin-top: 50px;
	}

	.p-casedetail {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.c-entry {
		font-size: 15px;
		line-height: 1.9;
	}

	.c-entry h2 {
		margin-top: 50px;
		font-size: 22px;
		line-height: 1.6;
	}

	.c-entry h3,
	.c-entry h4 {
		margin-top: 50px;
		font-size: 19px;
	}

	.c-entry h5,
	.c-entry h6 {
		margin-top: 40px;
		font-size: 17px;
	}

	.c-entry h2+* {
		margin-top: 24px;
	}

	.c-entry blockquote {
		padding: 30px 20px 20px;
	}

	.c-entry dl {
		grid-template-columns: 96px 1fr;
	}

	.c-entry dt,
	.c-entry dd {
		padding: 8px 10px;
		font-size: 14px;
	}

	.c-entry th,
	.c-entry td {
		padding: 8px;
		font-size: 14px;
	}

	.c-qa--faq {
		margin-top: 40px;
	}

	.c-qa--faq .c-qa__item+.c-qa__item {
		margin-top: 14px;
	}

	.c-qa--faq .c-qa__q {
		gap: 12px;
	}

	.c-qa--faq .c-qa__a {
		gap: 12px;
		padding: 16px 0 16px 17px;
	}

	.c-qa__atxt .c-frame {
		padding: 16px;
		font-size: 14px;
	}

	.c-sizetable {
		width: 560px;
		font-size: 14px;
	}

	.c-sizetable tbody th {
		width: 150px;
		padding-left: 10px;
	}

	.p-pp {
		gap: 40px;
		margin-top: 40px;
	}

	.p-pp__h {
		padding-bottom: 12px;
		font-size: 18px;
		line-height: 1.6;
	}

	.p-pp__body {
		margin-top: 16px;
		padding: 0;
	}

	.p-pp__h3 {
		margin-top: 70px;
	}
}
