/*!
Theme Name: gym_webaite
Author: KOP Inc.
Author URI: https://www.kop.co.jp/
Version: 1.0.0
*/

/* =========================================================
	 Foundation
========================================================= */
:root {
	--main-color: #2C2C2C;
	--main-color-rgb: 44, 44, 44;
	--on-main-color: #FFFFFF;
	--main-readable-color: #676767;
	--main-readable-color-rgb: 103, 103, 103;
	--sub-color: #4F4F4F;
	--sub-color-rgb: 79, 79, 79;
	--on-sub-color: #FFFFFF;
	--point-color: #CCFF00;
	--point-color-rgb: 204, 255, 0;
	--on-point-color: #111111;
	--point-readable-color: #CCFF00;
	--point-readable-color-rgb: 204, 255, 0;
	--bg-color: #121212;
	--bg-color-rgb: 18, 18, 18;
	--bg-sub-color: #272727;
	--bg-sub-color-rgb: 39, 39, 39;
	--surface-color: #1F1F1F;
	--surface-color-rgb: 31, 31, 31;
	--border-color: #464646;
	--border-color-rgb: 70, 70, 70;
	--text-color: #F5F5F5;
	--text-color-rgb: 245, 245, 245;
	--font: "Hiragino Sans","Yu Gothic","BIZ UDPGothic",Meiryo,sans-serif;
	--eng-font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
	--inner-s: 42rem;
	--inner-m: 58rem;
	--inner-l: 72rem;
	--inner-xl: 82rem;
	--inner-max: 90rem;
	--side-padding: 2rem;
	--section-space: 6rem;
	--section-space-s: 3.5rem;
	--header-height: 6rem;
	--radius-s: .375rem;
	--radius-m: .75rem;
	--border-width: .0625rem;
	--duration: .2s;
}

html {
	font-size: calc(100vw * 16 / 1440);
	line-height: 1.7;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

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

body {
	min-width: 20rem;
	margin: 0;
	background: var(--bg-color);
	color: var(--text-color);
	font-family: var(--font);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

body.show {
	overflow: hidden;
}

main,
header,
footer,
section,
nav,
article,
aside {
	display: block;
}

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

ul,
ol {
	padding: 0;
}

li {
	list-style: none;
}

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

img {
	height: auto;
}

svg {
	fill: currentColor;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--duration), background-color var(--duration), border-color var(--duration), opacity var(--duration);
}

a:hover {
	opacity: .75;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: .125rem solid var(--point-readable-color);
	outline-offset: .1875rem;
}

button,
input,
select,
textarea {
	max-width: 100%;
	color: inherit;
	font: inherit;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
	cursor: pointer;
}

input,
select,
textarea {
	width: 100%;
	padding: .75em .875em;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .38);
	border-radius: var(--radius-s);
	background: var(--bg-sub-color);
}

input[type="checkbox"],
input[type="radio"] {
	width: auto;
	margin-right: .4em;
}

textarea {
	min-height: 9rem;
	resize: vertical;
}

label {
	display: inline-block;
	margin-bottom: .4em;
}

table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

th,
td {
	padding: 1rem 1.25rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .3);
	text-align: left;
	vertical-align: top;
}

th {
	width: 13rem;
	background: rgba(var(--sub-color-rgb), .09);
	font-weight: 700;
}

hr {
	margin: 2rem 0;
	border: 0;
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .3);
}

::selection {
	background: var(--point-color);
	color: var(--on-point-color);
}

/* =========================================================
	 Layout and shared utilities
========================================================= */
.main {
	min-height: 50vh;
}

section {
	padding-block: var(--section-space);
}

section + section {
	border-top: var(--border-width) solid var(--border-color);
}

.writerSection {
	padding-block: var(--section-space-s) 0;
	border: 0;
}

.innerS,
.innerM,
.innerL,
.innerXL,
.innerMAX {
	width: 100%;
	margin-inline: auto;
	padding-inline: var(--side-padding);
}

.innerS { max-width: calc(var(--inner-s) + var(--side-padding) * 2); }
.innerM { max-width: calc(var(--inner-m) + var(--side-padding) * 2); }
.innerL { max-width: calc(var(--inner-l) + var(--side-padding) * 2); }
.innerXL { max-width: calc(var(--inner-xl) + var(--side-padding) * 2); }
.innerMAX { max-width: calc(var(--inner-max) + var(--side-padding) * 2); }

.colorSection {
	background:
		linear-gradient(135deg, rgba(var(--main-readable-color-rgb), .08), transparent 38%),
		linear-gradient(180deg, rgba(var(--sub-color-rgb), .08), transparent 70%),
		var(--bg-sub-color);
}

.center {
	text-align: center;
}

.emptyPost {
	padding: 2rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	background: rgba(var(--sub-color-rgb), .06);
	text-align: center;
}

.mask {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--radius-m);
	background: rgba(var(--sub-color-rgb), .14);
}

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

.image > img,
.contents img {
	border-radius: var(--radius-m);
}

.ratio_16-9 { aspect-ratio: 16 / 9; }
.ratio_3-2 { aspect-ratio: 3 / 2; }
.ratio_1-1 { aspect-ratio: 1 / 1; }

.image {
	margin-block: 2.5rem;
}

.image:first-child { margin-top: 0; }
.image:last-child { margin-bottom: 0; }

.noImage {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	background: rgba(var(--sub-color-rgb), .12);
	color: rgba(var(--text-color-rgb), .62);
	font-family: var(--eng-font);
	font-size: .8rem;
	letter-spacing: .08em;
}

/* =========================================================
	 Rich text
========================================================= */
.contents {
	line-height: 1.9;
}

.contents > * + * {
	margin-top: 1.25em;
}

.contents h2,
.contents h3,
.contents h4,
.contents h5,
.contents h6 {
	line-height: 1.45;
}

.contents h2 { font-size: 1.75rem; }
.contents h3 { font-size: 1.4rem; }
.contents h4 { font-size: 1.2rem; }
.contents h5,
.contents h6 { font-size: 1rem; }

.contents a {
	color: var(--main-readable-color);
	text-decoration: underline;
	text-underline-offset: .18em;
}

.contents ul,
.contents ol {
	padding-left: 1.5em;
}

.contents ul > li {
	list-style: disc;
}

.contents ol > li {
	list-style: decimal;
}

.contents li + li {
	margin-top: .35em;
}

.contents blockquote {
	padding: 1rem 1.25rem;
	border-left: .25rem solid var(--main-readable-color);
	background: rgba(var(--main-readable-color-rgb), .08);
}

.contents pre {
	overflow-x: auto;
	padding: 1rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-s);
	background: var(--surface-color);
}

.contents table {
	display: table;
	overflow-wrap: normal;
}

.contents img {
	max-width: 100%;
}

/* =========================================================
	 Headings, navigation and buttons
========================================================= */
.sectionTitle {
	display: grid;
	gap: .35rem;
	margin-bottom: 2.5rem;
}

.sectionTitleJa,
.contentTitleJa,
.titleL,
.titleM,
.titleS,
.headline,
.filledDivTitle,
.bulletPointsTitle,
.singleNotesTitle {
	line-height: 1.4;
}

.sectionTitleJa {
	font-size: 2rem;
}

.sectionTitleEn,
.contentTitleEn {
	color: var(--sub-color);
	font-family: var(--eng-font);
	font-size: .8rem;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.titleL { margin-bottom: 2rem; font-size: 2rem; }
.titleM { margin-bottom: 1.75rem; font-size: 1.65rem; }
.titleS { margin-bottom: 1.25rem; font-size: 1.3rem; }
.headline { margin-bottom: 2rem; font-size: 2rem; }

.contentTitleDiv {
	padding-block: 2rem;
	background: var(--bg-sub-color);
}

.contentTitle {
	display: grid;
	gap: .25rem;
}

.contentTitleJa {
	font-size: 2.25rem;
}

.btn,
.ctaBtn,
.inPageNav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	min-height: 3.25rem;
	padding: .7rem 1.35rem;
	border: var(--border-width) solid currentColor;
	border-radius: var(--radius-s);
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
}

.btn {
	margin-top: 2rem;
	border-color: var(--main-color);
	background: var(--main-color);
	color: var(--on-main-color);
}

.btn .ph,
.inPageNav .ph {
	flex: 0 0 auto;
	margin-left: auto;
}

.ctaBtns {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

.ctaBtn {
	flex: 1 1 12rem;
	min-width: 0;
	background: var(--point-color);
	color: var(--on-point-color);
}

.ctaBtn.form {
	background: var(--main-color);
	color: var(--on-main-color);
}

.ctaBtnSvg {
	display: grid;
	flex: 0 0 1.25rem;
	width: 1.25rem;
	height: 1.25rem;
	place-items: center;
}

.ctaBtnSvg svg {
	width: 100%;
	height: 100%;
}

.inPageNav {
	padding: 1rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	background: var(--surface-color);
}

.inPageNav ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
}

.inPageNav a {
	min-height: 2.75rem;
	border-color: rgba(var(--main-readable-color-rgb), .55);
	background: rgba(var(--main-readable-color-rgb), .08);
	color: var(--main-readable-color);
	font-size: .9rem;
}

.breadcrumbs {
	padding-block: .75rem;
	border-bottom: var(--border-width) solid var(--border-color);
	font-size: .8rem;
}

.breadcrumbs a {
	text-decoration: underline;
	text-underline-offset: .18em;
}

/* =========================================================
	 Header
========================================================= */
.header {
	position: sticky;
	z-index: 100;
	top: 0;
	width: 100%;
	min-height: var(--header-height);
	border-bottom: var(--border-width) solid var(--border-color);
	background: rgba(var(--bg-color-rgb), .96);
}

.headerInner,
.headerDiv {
	min-width: 0;
}

.headerHtag {
	position: absolute;
	width: .0625rem;
	height: .0625rem;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.headerDiv {
	display: flex;
	align-items: stretch;
	gap: 1rem;
	min-height: var(--header-height);
}

.siteTitle {
	display: flex;
	flex: 0 1 12rem;
	align-items: center;
	gap: .75rem;
	min-width: 8rem;
	padding-block: .75rem;
}

.siteLogo {
	display: block;
	flex: 0 1 10rem;
	max-width: 10rem;
}

.siteLogo img {
	display: block;
	width: auto;
	max-height: 3.5rem;
	object-fit: contain;
}

.siteName {
	display: block;
	min-width: 0;
	font-size: 1.5rem;
	line-height: 1.35;
}

.siteTitleHasLogoText {
	flex-basis: 14rem;
}

.siteTitle.siteTitleHasLogoText .siteLogo {
	flex-basis: 6.5rem;
	max-width: 6.5rem;
}

.siteTitle.siteTitleHasLogoText .siteLogo img {
	max-height: 3rem;
}

.siteTitleHasLogoText .siteName {
	flex: 0 1 auto;
	white-space: nowrap;
	font-size: clamp(.875rem, 1.25vw, 1.25rem);
	line-height: 1.15;
}

.headerGnav {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem;
	min-width: 0;
}

.headerNavWrap {
	display: grid;
	flex: 1 1 auto;
	gap: 0;
	min-width: 0;
}

.headerTel {
	display: flex;
	justify-content: flex-end;
	font-family: var(--eng-font);
	line-height: 1.35;
}

.headerTel li {
	display: flex;
	align-items: baseline;
	gap: .5rem;
}

.headerTel span {
	color: var(--sub-color);
	font-size: .7rem;
	letter-spacing: .08em;
}

.headerTel a {
	font-weight: 700;
	white-space: nowrap;
	font-size: 1.125rem;
}

.headerNav ul {
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-end;
	gap: .9rem;
}

.headerNav a {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding-block: .2rem;
	font-size: .82rem;
	font-weight: 700;
	line-height: 1.35;
	white-space: nowrap;
}

.headerCta {
	display: grid;
	flex: 0 1 20rem;
	grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
	gap: .5rem;
}

.headerCta .ctaBtn {
	min-width: 0;
	min-height: 2.75rem;
	padding: .55rem .65rem;
	font-size: .75rem;
	white-space: nowrap;
}

.headerCta .ctaBtnText {
	white-space: nowrap;
}

.headerCta .ctaBtnSvg {
	flex-basis: 1rem;
	width: 1rem;
	height: 1rem;
}

.snsIcons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}

.snsIcons a {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .46);
	border-radius: 50%;
	color: var(--sub-color);
}

.snsIcons svg {
	width: .9rem;
	height: .9rem;
}

.headerSns {
	flex: 0 0 auto;
	flex-wrap: nowrap;
}

.headerSpNav {
	display: none;
}

/* =========================================================
	 First view and home sections
========================================================= */
.topMv {
	position: relative;
	display: grid;
	min-height: 38rem;
	align-items: center;
	padding-block: var(--section-space);
	overflow: hidden;
}

.topMvBgImage {
	position: absolute;
	inset: 0;
}

.topMvBgImage::after {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(var(--bg-color-rgb), .82), rgba(var(--bg-color-rgb), .48)),
		linear-gradient(135deg, rgba(var(--main-readable-color-rgb), .18), transparent 44%);
	content: "";
}

.topMvBgImage > div,
.topMvBgImage img {
	width: 100%;
	height: 100%;
}

.topMvBgImage img {
	object-fit: cover;
}

.topMv .innerXL {
	position: relative;
	z-index: 1;
}

.topMvContent {
	width: min(100%, 44rem);
}

.topMvTagline {
	font-size: 3rem;
	line-height: 1.3;
}

.topMvTaglineEn {
	margin-top: .75rem;
	color: var(--point-readable-color);
	font-family: var(--eng-font);
	font-size: .85rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.topMvTaglineTopic {
	margin-top: 2rem;
	font-size: 1.35rem;
	line-height: 1.5;
}

.topMvTaglineText {
	margin-top: 1rem;
}

.topMvTaglineBtn {
	max-width: 34rem;
	margin-top: 2rem;
}

.topPosts {
	display: grid;
	grid-template-columns: minmax(10rem, 16rem) minmax(0, 1fr);
	grid-template-areas:
		"title list"
		"button list";
	column-gap: 4rem;
	row-gap: 1.25rem;
	align-items: start;
}

.topPosts > .sectionTitle {
	grid-area: title;
	margin-bottom: 0;
}

.topPosts > .newsList {
	grid-area: list;
}

.topPosts > .btn {
	grid-area: button;
	width: fit-content;
	margin-top: 0;
}

.topAdvantage {
	padding-top: calc(var(--section-space) + 1.5rem);
}

.topAdvantageDiv {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.topAdvantageItem {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
}

.topAdvantageInfo {
	display: flex;
	flex-direction: column;
	gap: .9rem;
	padding: 1.5rem;
}

.topAdvantageNum {
	display: block;
	color: var(--main-color);
	font-family: var(--eng-font);
	font-weight: 700;
	font-size: 2.5rem;
	line-height: 1;
}

.topAdvantageTitle {
	font-size: 1.35rem;
	line-height: 1.5;
}

.topAdvantageText {
	margin-top: auto;
}

/* =========================================================
	 Lists and cards
========================================================= */
.newsList {
	display: grid;
}

.newsList li {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	align-items: center;
	gap: 1rem;
	min-width: 0;
	padding-block: 1.15rem;
	border-bottom: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
}

.newsList li:first-child {
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
}

.newsList time {
	font-family: var(--eng-font);
	font-size: .85rem;
	white-space: nowrap;
}

.serviceListSlug,
.postCategoryName,
.worksType span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .25rem .65rem;
	border: var(--border-width) solid rgba(var(--main-readable-color-rgb), .46);
	border-radius: 100vmax;
	background: rgba(var(--main-readable-color-rgb), .08);
	color: var(--main-readable-color);
	font-size: .72rem;
	line-height: 1.35;
}

.serviceListSlug {
	color: var(--sub-color);
	font-family: var(--eng-font);
	letter-spacing: .09em;
	text-transform: uppercase;
	align-self: flex-start;
	margin-bottom: 0.5rem;
}

.worksType .worksLinkedService {
	border-color: var(--main-color);
	background: var(--main-color);
	color: var(--on-main-color);
}

.newsList a {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 0;
}

.newsList a .ph {
	flex: 0 0 auto;
	margin-left: auto;
}

.serviceTypeGroup + .serviceTypeGroup {
	margin-top: var(--section-space-s);
}

.serviceTypeHeader {
	display: grid;
	grid-template-columns: minmax(12rem, .7fr) minmax(0, 1.3fr);
	gap: 2rem;
	align-items: start;
	margin-bottom: 2rem;
}

.serviceTypeTitle {
	font-size: 1.5rem;
	line-height: 1.4;
}

.serviceList,
.worksList,
.staffList,
.priceMidGroupWrap,
.aboutImages,
.worksImages {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1.5rem;
}

.staffList {
	max-width: calc(23rem * 3 + 1.5rem * 2);
	margin-inline: 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-content: start;
}

.staffListFew {
	margin-inline: auto;
}

.staffListCount1 { grid-template-columns: minmax(0, 23rem); }
.staffListCount2 { grid-template-columns: repeat(2, minmax(0, 23rem)); }
.staffListCount3 { grid-template-columns: repeat(3, minmax(0, 23rem)); }

.serviceList > li,
.worksList > li,
.staffList > li,
.priceItem {
	min-width: 0;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
	border-radius: var(--radius-m);
	background: var(--surface-color);
	overflow: hidden;
}

.serviceList > li > a,
.worksList > li > a,
.staffList > li > a {
	display: flex;
	height: 100%;
	min-width: 0;
	flex-direction: column;
}

.serviceListContent,
.staffListContent {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
	flex-direction: column;
	gap: .35rem;
	padding: 1.25rem;
}

.staffListName {
	font-size: 1.15rem;
	line-height: 1.5;
}

.serviceListTitle {
	font-size: 1.35rem;
	line-height: 1.5;
}

.serviceListText {
	font-size: .9rem;
}

.serviceListLink {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-top: auto;
	padding-top: .5rem;
	color: var(--main-readable-color);
	font-size: .85rem;
}

.worksList > li > a {
	padding: 1rem;
}

.worksList {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	justify-content: stretch;
}

.worksListTitle {
	font-size: 1rem;
	line-height: 1.5;
}

.worksType {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .75rem;
}

.staffListTitle,
.staffTitle {
	font-size: .85rem;
	opacity: .72;
}

.pager {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin-top: 3rem;
}

.pager .page-numbers {
	display: grid;
	min-width: 2.75rem;
	height: 2.75rem;
	padding-inline: .6rem;
	place-items: center;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .36);
	border-radius: var(--radius-s);
}

.pager .current {
	border-color: var(--main-color);
	background: var(--main-color);
	color: var(--on-main-color);
}

/* =========================================================
	 Flow and FAQ
========================================================= */
.flow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.5rem 2rem;
	counter-reset: flow;
}

.flow dl {
	position: relative;
	display: grid;
	min-width: 0;
	align-content: start;
	gap: 1rem;
	padding: 1.5rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	background: var(--surface-color);
	counter-increment: flow;
}

.flow dl::after {
	position: absolute;
	top: 50%;
	right: -1.35rem;
	width: .7rem;
	height: .7rem;
	border-top: .125rem solid rgba(var(--sub-color-rgb), .72);
	border-right: .125rem solid rgba(var(--sub-color-rgb), .72);
	content: "";
	transform: translateY(-50%) rotate(45deg);
}

.flow dl:nth-child(3n)::after,
.flow dl:last-child::after {
	display: none;
}

.flow dt {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .75rem;
	align-items: start;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
}

.flow dt::before {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: var(--border-width) solid var(--main-color);
	border-radius: 50%;
	background: var(--main-color);
	color: var(--on-main-color);
	content: counter(flow, decimal-leading-zero);
	font-family: var(--eng-font);
	font-size: .7rem;
}

.flow dd {
	min-width: 0;
	font-size: .9rem;
}

.faq {
	display: grid;
	gap: 1rem;
}

.faq dl {
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	background: var(--surface-color);
	overflow: hidden;
}

.faq dt {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr) 1.25rem;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	cursor: pointer;
	font-weight: 700;
	line-height: 1.6;
}

.faq dt span {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: var(--border-width) solid var(--main-color);
	border-radius: 50%;
	background: var(--main-color);
	color: var(--on-main-color);
	font-family: var(--eng-font);
}

.faq dt .ph {
	justify-self: end;
	transition: transform var(--duration);
}

.faq dt.show .ph {
	transform: rotate(180deg);
}

.faq dd {
	display: none;
	padding: 1.25rem 1.5rem;
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .24);
	background: rgba(var(--sub-color-rgb), .07);
}

/* =========================================================
	 Detail pages
========================================================= */
.filledDiv,
.singleNotes,
.writer {
	margin-top: 2.5rem;
	padding: 2rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
}

.bulletPointsDiv {
	margin-top: 2.5rem;
}

.filledDiv {
	background: var(--bg-sub-color);
}

.filledDivTitle,
.bulletPointsTitle,
.singleNotesTitle,
.writerHeadline {
	margin-bottom: 1.25rem;
	font-size: 1.25rem;
}

.bulletPoints {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	grid-auto-rows: 1fr;
	gap: .75rem;
	padding-left: 0;
	counter-reset: bullet-point;
}

.contents .bulletPoints {
	padding-left: 0;
}

.contents .bulletPoints li {
	height: 100%;
	margin-top: 0;
}

.bulletPoints li {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: .75rem;
	align-items: start;
	min-width: 0;
	margin-top: 0;
	padding: 1rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
	border-radius: var(--radius-s);
	background: rgba(var(--sub-color-rgb), .07);
	list-style: none;
	counter-increment: bullet-point;
}

.bulletPoints li::before {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: var(--border-width) solid var(--main-color);
	border-radius: 50%;
	background: var(--main-color);
	color: var(--on-main-color);
	content: counter(bullet-point, decimal-leading-zero);
	font-family: var(--eng-font);
	font-size: .68rem;
	font-weight: 700;
}

.singleLeadSection > .innerL + .innerL,
.singleLeadSection > .innerM + .innerM {
	margin-top: 2.5rem;
}

.singlePostBody {
	max-width: calc(var(--inner-s) + var(--side-padding) * 2);
}

.postTitle {
	margin-bottom: 1rem;
	font-size: 2rem;
	line-height: 1.4;
}

.postDate {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
	margin-bottom: 2.5rem;
	font-size: .82rem;
}

.postLink {
	display: grid;
	grid-template-columns: 3rem minmax(6rem, auto) 3rem;
	justify-content: center;
	gap: .5rem;
	margin-top: 3rem;
}

.postLinkItem {
	display: grid;
	height: 3rem;
	place-items: center;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .36);
	border-radius: var(--radius-s);
}

.postLinkItem a {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
}

.priceLead {
	margin-bottom: 3rem;
}

.priceGroupWrap + .priceGroupWrap {
	margin-top: var(--section-space-s);
}

.priceGroupName {
	margin-bottom: 1.5rem;
	font-size: 1.5rem;
}

.priceItemContent {
	display: flex;
	height: 100%;
	flex-direction: column;
	gap: 1rem;
	padding: 1.5rem;
}

.priceItemTitle {
	font-size: 1.15rem;
	font-weight: 700;
}

.priceItemPrice {
	color: var(--point-readable-color);
	font-family: var(--eng-font);
	font-size: 1.5rem;
	font-weight: 700;
}

.priceItemMeta {
	display: grid;
	overflow: hidden;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
	border-radius: var(--radius-s);
	background: rgba(var(--sub-color-rgb), .08);
	font-size: .85rem;
}

.priceItemMeta > span {
	display: grid;
	grid-template-columns: minmax(5.25rem, auto) minmax(0, 1fr);
	align-items: baseline;
	gap: .75rem;
	min-width: 0;
	padding: .55rem .75rem;
	overflow-wrap: anywhere;
}

.priceItemMeta > span + span {
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .22);
}

.priceItemMetaLabel {
	color: var(--sub-color);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .04em;
	opacity: .7;
}

.priceItemDetail {
	margin-top: auto;
}

.priceNote {
	padding: 1.5rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
}

.priceNoteWrap {
	padding: 2rem;
	border-left: .25rem solid var(--main-readable-color);
	border-radius: var(--radius-s);
	background: rgba(var(--main-readable-color-rgb), .08);
}

.priceNoteWrap .priceGroupName {
	margin-bottom: 1rem;
	font-size: 1.25rem;
}

.priceNoteWrap .priceNote {
	padding: 0;
	border: 0;
	border-radius: 0;
}

.worksBeforeAfter {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
	gap: 1.5rem;
	margin-top: 3rem;
}

.worksBeforeAfterItem {
	min-width: 0;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	overflow: hidden;
}

.worksBeforeAfterLabel {
	padding: .75rem 1rem;
	background: rgba(var(--sub-color-rgb), .12);
	color: var(--text-color);
	font-family: var(--eng-font);
	font-weight: 700;
	letter-spacing: .08em;
}

.worksInfoBlock,
.worksBody,
.worksImages {
	margin-top: 3rem;
}

.aboutImages.items-1,
.worksImages.items-1 {
	grid-template-columns: minmax(0, 1fr);
}

.aboutImages.items-2,
.worksImages.items-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.aboutImages.items-3,
.worksImages.items-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aboutImages.items-4,
.worksImages.items-4 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.worksResultBlock {
	padding-block: 2rem;
	border-block: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
}

.worksResultBlock .worksResultOther {
	padding: 1rem 1.25rem;
	border-left: .1875rem solid var(--main-readable-color);
	background: rgba(var(--main-readable-color-rgb), .07);
}

.worksMeta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .5rem;
}

.worksMeta dl {
	padding: 1rem;
	background: rgba(var(--sub-color-rgb), .12);
}

.worksMeta dt {
	margin-bottom: 0.25rem;
	font-size: 0.75rem;
	color: var(--text-color);
	letter-spacing: 0.08em;
}

.worksTable th {
	width: 13rem;
}

.worksResultOther {
	margin-top: 1.5rem;
}

.serviceListInWorks {
	grid-template-columns: minmax(0, 1fr);
}

.serviceListInWorks > li > a {
	display: grid;
	grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr);
}

.serviceListInWorks .serviceListImage {
	height: 100%;
	min-height: 16rem;
	aspect-ratio: auto;
}

.serviceListInWorks .serviceListContent {
	justify-content: center;
}

.serviceContentList {
	display: grid;
	gap: var(--section-space-s);
}

.serviceContentItem + .serviceContentItem {
	padding-top: var(--section-space-s);
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .24);
}

.staffMeta {
	display: grid;
	grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
	gap: 2rem;
	align-items: center;
}

.staffNameWrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin-top: .75rem;
}

.staffName {
	font-size: 2rem;
	line-height: 1.35;
}

.staffMessage {
	margin-top: 2.5rem;
}

.companyGreetingCeo {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: baseline;
	gap: .75rem;
	margin-top: 2rem;
}

.companyGreetingCeoName {
	font-size: 1.2rem;
	font-weight: 700;
}

.iframe {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-m);
}

#access .innerM + .innerM {
	margin-top: 1.5rem;
}

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

.sitemap {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: .75rem;
}

.sitemap a {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-height: 3.5rem;
	padding: .75rem 1rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-s);
	background: var(--surface-color);
}

.sitemap a .ph {
	margin-left: auto;
}

.writerHeader {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 1.25rem;
	align-items: center;
}

.writerPhoto {
	width: 7rem;
}

.writerName {
	font-size: 1.2rem;
	font-weight: 700;
}

.writerContents {
	margin-top: 1.25rem;
	line-height: 1.8;
}

/* Table of contents plugin */
.contents .lwptoc {
	display: block;
	width: 100%;
	max-width: none;
	margin-block: 2rem;
}

.contents .lwptoc .lwptoc_i {
	display: block;
	width: 100%;
	max-width: none;
	padding: 1.5rem;
	border: var(--border-width) solid rgba(var(--sub-color-rgb), .32);
	border-radius: var(--radius-m);
	background: var(--bg-sub-color);
	text-align: left;
}

.contents .lwptoc_header {
	margin-bottom: 1rem;
	padding-bottom: .75rem;
	border-bottom: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
}

.contents .lwptoc_title {
	font-size: 1.1rem;
	font-weight: 700;
}

.contents .lwptoc_itemWrap {
	display: grid;
	gap: .45rem;
	padding-left: 0;
}

.contents .lwptoc_item {
	margin: 0;
	list-style: none;
}

.contents .lwptoc_item > a {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr);
	gap: .5rem;
	align-items: start;
	padding-block: .2rem;
	color: inherit;
	text-decoration: none;
}

.contents .lwptoc_item > a::before {
	content: "—";
	color: var(--main-readable-color);
	opacity: 1;
}

.contents .lwptoc_item > .lwptoc_itemWrap {
	margin: .35rem 0 0 1.75rem;
}

/* =========================================================
	 CTA, fixed banner and footer
========================================================= */
.ctaSection {
	position: relative;
	border-top: 0;
	background-color: var(--bg-color);
	background-position: center;
	background-size: cover;
}

.ctaSection::before {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(135deg, rgba(var(--main-readable-color-rgb), .22), transparent 38%),
		rgba(var(--bg-color-rgb), .76);
	content: "";
}

.ctaSection .innerL {
	position: relative;
	z-index: 1;
}

.ctaSectionContent {
	width: min(100%, 46rem);
	margin-inline: auto;
	text-align: center;
}

.ctaSectionContent .sectionTitleJa,
.ctaSectionContent .sectionTitleEn {
	color: var(--text-color);
}

.ctaSectionText {
	margin-top: 1.5rem;
}

.ctaSectionTel {
	margin-top: 1.75rem;
	color: var(--point-readable-color);
	font-family: var(--eng-font);
	font-size: 1.75rem;
	font-weight: 700;
}

.ctaSectionTel li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: .65rem;
}

.ctaSectionTel span {
	font-size: .7rem;
	letter-spacing: .1em;
}

.ctaSectionBtn {
	max-width: 36rem;
	margin: 2rem auto 0;
}

.footerBanner {
	position: fixed;
	z-index: 90;
	right: 1.5rem;
	bottom: 1.5rem;
	display: grid;
	grid-template-columns: 6rem minmax(0, 1fr);
	grid-template-areas: "image content";
	gap: .25rem 1rem;
	width: min(28rem, calc(100vw - 3rem));
	padding: .75rem 3rem .75rem .75rem;
	border: .125rem solid var(--point-color);
	border-radius: var(--radius-m);
	background:
		linear-gradient(135deg, rgba(var(--main-readable-color-rgb), .12), transparent 45%),
		var(--bg-sub-color);
	opacity: 0;
	pointer-events: none;
	transform: translateY(1rem);
	transition: opacity var(--duration), transform var(--duration);
}

.footerBannerContent {
	display: grid;
	grid-area: content;
	grid-template-areas:
		"lead"
		"message"
		"link";
	align-content: center;
	gap: .25rem;
	min-width: 0;
}

.footerBanner.scrolled {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.footerBannerImg {
	grid-area: image;
	align-self: stretch;
	min-height: 6rem;
	border-radius: var(--radius-m);
}

.footerBannerLead {
	grid-area: lead;
	align-self: end;
	font-size: .7rem;
}

.footerBannerMsg {
	grid-area: message;
	font-size: 1rem;
	line-height: 1.4;
}

.footerBannerLink {
	grid-area: link;
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: .4rem;
	align-self: start;
	padding: .35rem .75rem;
	border-radius: 100vmax;
	background: var(--point-color);
	color: var(--on-point-color);
	font-size: .75rem;
	font-weight: 700;
}

.footerBanner .closer {
	position: absolute;
	top: .6rem;
	right: .6rem;
	display: grid;
	width: 1.75rem;
	height: 1.75rem;
	place-items: center;
	border-radius: 50%;
	background: var(--point-color);
	color: var(--on-point-color);
	font-size: 1.15rem;
}

.footer {
	padding-block: 2rem 1.5rem;
	border-top: var(--border-width) solid var(--border-color);
	background: var(--surface-color);
}

.footerTop,
.footerBottom {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
}

.footerTop {
	align-items: flex-start;
}

.footerTop .siteTitle {
	padding-block: 0;
}

.footerTopNav ul,
.footerBottomNavMenu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .75rem 1.5rem;
}

.footerTopNav a,
.footerBottomNav a {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .85rem;
}

.footerBottom {
	align-items: flex-start;
	flex-direction: column;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: var(--border-width) solid rgba(var(--sub-color-rgb), .24);
}

.footerBottomNav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 1rem 1.5rem;
}

.footerBottomNavSns {
	flex: 0 0 auto;
	align-self: center;
}

.footerBottomNav .snsIcons a {
	display: grid;
}

.footerCopyright {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
	font-size: .75rem;
}

.footerCopyrightKop {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem;
	opacity: .72;
}

.footerCopyrightKop a {
	text-decoration: underline;
	text-underline-offset: .18em;
}

/* =========================================================
	 Responsive: keep all media queries at the end
========================================================= */
@media screen and (max-width: 960px) {
	html {
		font-size: calc(100vw * 16 / 768);
	}

	:root {
		--side-padding: 1.75rem;
		--section-space: 5rem;
		--section-space-s: 3rem;
		--header-height: 5rem;
	}

	.headerDiv {
		justify-content: space-between;
	}

	.siteTitle {
		flex-basis: 16rem;
		padding-right: 4.5rem;
	}

	.headerGnav {
		position: fixed;
		z-index: 101;
		inset: var(--header-height) 0 0;
		display: none;
		align-content: start;
		align-items: stretch;
		justify-content: start;
		overflow-y: auto;
		overscroll-behavior: contain;
		width: 100%;
		min-height: calc(100dvh - var(--header-height));
		padding: 2rem var(--side-padding) 4rem;
		background: var(--bg-color);
	}

	.headerGnav.show {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		justify-content: stretch;
		gap: 1.5rem;
	}

	.headerNavWrap {
		display: grid;
		gap: 1.5rem;
	}

	.headerTel {
		justify-content: flex-start;
		font-size: 1rem;
	}

	.headerNav ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 1.5rem;
		justify-content: stretch;
	}

	.headerNav li {
		border-bottom: var(--border-width) solid rgba(var(--sub-color-rgb), .28);
	}

	.headerNav a {
		min-height: 3.25rem;
		font-size: .9rem;
	}

	.headerCta {
		width: min(100%, 32rem);
		flex-basis: auto;
	}

	.headerCta .ctaBtn {
		min-height: 3.25rem;
		font-size: .85rem;
	}

	.headerSns {
		align-self: start;
	}

	.headerSpNav {
		position: absolute;
		z-index: 102;
		top: 0;
		right: var(--side-padding);
		display: grid;
		height: var(--header-height);
		place-items: center;
	}

	.headerSpNavToggle {
		appearance: none;
		display: grid;
		width: 3rem;
		height: 3rem;
		align-content: center;
		gap: .38rem;
		padding: .65rem;
		border: 0;
		background: transparent;
		color: inherit;
		font: inherit;
		cursor: pointer;
	}

	.headerSpNavToggle i {
		display: block;
		width: 100%;
		height: .125rem;
		background: currentColor;
		transition: transform var(--duration), opacity var(--duration);
	}

	.headerSpNavToggle.show i:nth-child(1) {
		transform: translateY(.5rem) rotate(45deg);
	}

	.headerSpNavToggle.show i:nth-child(2) {
		opacity: 0;
	}

	.headerSpNavToggle.show i:nth-child(3) {
		transform: translateY(-.5rem) rotate(-45deg);
	}

	.topMv {
		min-height: 34rem;
	}

	.topMvTagline {
		font-size: 2.5rem;
	}

	.topPosts {
		grid-template-columns: 13rem minmax(0, 1fr);
		column-gap: 2.5rem;
	}

	.topAdvantageDiv {
		grid-template-columns: minmax(0, 1fr);
	}

	.topAdvantageItem {
		display: grid;
		grid-template-columns: 20rem minmax(0, 1fr);
	}

	.topAdvantageItemNoImage {
		grid-template-columns: minmax(0, 1fr);
	}

	.topAdvantageImage {
		align-self: stretch;
		height: auto;
		min-height: 0;
		aspect-ratio: auto;
	}

	.topAdvantageImage img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#access .innerM + .innerM {
		margin-top: 1.25rem;
	}

	.serviceTypeHeader {
		grid-template-columns: 1fr;
		gap: .75rem;
	}

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

	.flow dl:nth-child(3n)::after {
		display: block;
	}

	.flow dl:nth-child(2n)::after,
	.flow dl:last-child::after {
		display: none;
	}

	.footerTop,
	.footerBottom {
		align-items: flex-start;
		flex-direction: column;
	}

	.footerTop {
		gap: 1.5rem;
	}

	.footerTop .siteTitle {
		width: min(100%, 14rem);
		flex: 0 0 auto;
		padding-right: 0;
	}

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

	.footerTopNav ul,
	.footerBottomNavMenu,
	.footerBottomNav {
		justify-content: flex-start;
	}
}

@media screen and (max-width: 632px) {
	html {
		font-size: calc(100vw * 14 / 375);
	}

	:root {
		--side-padding: 1.25rem;
		--section-space: 4rem;
		--section-space-s: 2.5rem;
		--header-height: 4.5rem;
	}

	th,
	td,
	.contents table,
	.contents tbody,
	.contents tr,
	.contents th,
	.contents td,
	.worksTable,
	.worksTable tbody,
	.worksTable tr,
	.worksTable th,
	.worksTable td {
		display: block;
		width: 100%;
	}

	th,
	.worksTable th,
	.contents th {
		border-bottom: 0;
	}

	.contentTitleDiv {
		padding-block: 1rem;
	}

	.contentTitle {
		gap: 0;
	}

	.contentTitleJa,
	.headline,
	.postTitle {
		font-size: 1.5rem;
	}

	.sectionTitleJa,
	.titleL {
		font-size: 1.6rem;
	}

	.titleM {
		font-size: 1.4rem;
	}

	.filledDiv.contents .filledDivTitle {
		font-size: 1.15rem;
	}

	.worksListTitle {
		font-size: 1rem;
	}

	.worksTitle {
		font-size: 1.25rem;
	}

	.siteTitle {
		flex-basis: 13rem;
		padding-right: 3.75rem;
	}

	.siteLogo img {
		max-height: 2.75rem;
	}

	.siteName {
		font-size: 1.125rem;
	}

	.headerNav ul,
	.headerCta {
		grid-template-columns: 1fr;
	}

	.headerSpNav {
		right: var(--side-padding);
	}

	.headerSpNavToggle {
		width: 2.75rem;
		height: 2.75rem;
	}

	.topMv {
		min-height: 31rem;
		padding-block: 4rem;
	}

	.topMvTagline {
		font-size: 2rem;
	}

	.topMvTaglineTopic {
		font-size: 1rem;
	}

	.topMvTaglineText {
		font-size: 0.8125rem;
	}

	.ctaBtns,
	.ctaBtn,
	.btn {
		width: 100%;
	}

	.ctaBtns {
		display: grid;
	}

	.ctaBtn {
		flex-basis: auto;
	}

	.topPosts {
		grid-template-columns: 1fr;
		grid-template-areas:
			"title"
			"list"
			"button";
		gap: 1.25rem;
	}

	.topPosts > .btn {
		width: fit-content;
	}

	.topAdvantage {
		padding-top: var(--section-space);
	}

	.topAdvantageDiv {
		grid-template-columns: 1fr;
	}

	.topAdvantageItem {
		display: flex;
		flex-direction: column;
	}

	.topAdvantageImage {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.newsList li {
		grid-template-columns: auto minmax(0, 1fr);
		gap: .55rem .75rem;
	}

	.newsList a {
		grid-column: 1 / -1;
	}

	.serviceList,
	.worksList,
	.staffList,
	.staffListCount1,
	.staffListCount2,
	.staffListCount3,
	.priceMidGroupWrap,
	.aboutImages,
	.worksImages,
	.worksBeforeAfter,
	.sitemap,
	.flow {
		grid-template-columns: 1fr;
	}

	#access .innerM + .innerM {
		margin-top: 1rem;
	}

	.worksImages.items-1,
	.worksImages.items-2,
	.worksImages.items-3,
	.worksImages.items-4 {
		grid-template-columns: 1fr;
	}

	.worksMeta {
		grid-template-columns: 1fr;
	}

	td {
		border-bottom: 0;
	}

	tr:last-child td {
		border-bottom: var(--border-width) solid rgba(var(--sub-color-rgb), .3);
	}

	.single-post .contents .wp-block-table table {
		display: table;
		width: 100%;
		table-layout: fixed;
	}

	.single-post .contents .wp-block-table thead {
		display: table-header-group;
	}

	.single-post .contents .wp-block-table tbody {
		display: table-row-group;
	}

	.single-post .contents .wp-block-table tr {
		display: table-row;
	}

	.single-post .contents .wp-block-table th,
	.single-post .contents .wp-block-table td {
		display: table-cell;
		width: auto;
		padding: .65rem .75rem;
		border: var(--border-width) solid rgba(var(--sub-color-rgb), .3);
		vertical-align: top;
	}

	.single-post .contents .wp-block-table th:first-child,
	.single-post .contents .wp-block-table td:first-child {
		width: 34%;
	}

	.serviceListInWorks > li > a {
		grid-template-columns: 1fr;
	}

	.serviceListInWorks .serviceListImage {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.flow dl:nth-child(n)::after {
		top: auto;
		right: 50%;
		bottom: -1.2rem;
		display: block;
		transform: translateX(50%) rotate(135deg);
	}

	.flow dl:last-child::after {
		display: none;
	}

	.faq dt {
		grid-template-columns: 2rem minmax(0, 1fr) 1rem;
		gap: .75rem;
		padding: 1rem;
	}

	.faq dd {
		padding: 1rem;
	}

	.contents .lwptoc .lwptoc_i {
		padding: 1rem;
	}

	.filledDiv,
	.bulletPointsDiv,
	.singleNotes,
	.writer {
		padding: 1.25rem;
	}

	.staffMeta {
		grid-template-columns: 1fr;
	}

	.staffMetaImage {
		width: 100%;
	}

	.writerHeader {
		grid-template-columns: 7rem minmax(0, 1fr);
		gap: 1rem;
	}

	.writerPhoto {
		width: 7rem;
	}

	.priceNoteWrap {
		padding: 1.25rem;
	}

	.staffNameWrap,
	.companyGreetingCeo {
		align-items: flex-start;
		flex-direction: column;
	}

	.ctaSectionTel {
		font-size: 1.4rem;
	}

	.footerBanner {
		right: .75rem;
		bottom: .75rem;
		grid-template-columns: var(--footer-banner-image-size, 4.5rem) minmax(0, 1fr);
		grid-template-areas: "image content";
		gap: .6rem;
		width: calc(100vw - 1.5rem);
		padding: .5rem 2.25rem .5rem .5rem;
	}

	.footerBannerImg {
		width: var(--footer-banner-image-size, 4.5rem);
		height: var(--footer-banner-image-size, 4.5rem);
		min-height: 0;
		align-self: start;
		aspect-ratio: 1 / 1;
	}

	.footerBannerContent {
		gap: .1rem;
	}

	.footerBannerLead {
		font-size: .62rem;
	}

	.footerBannerMsg {
		font-size: .85rem;
	}

	.footerBannerLink {
		align-self: start;
		margin-top: .25rem;
		padding: .35rem .55rem;
		font-size: .65rem;
		white-space: nowrap;
	}

	.footerBanner .closer {
		top: .5rem;
		right: .5rem;
		width: 1.5rem;
		height: 1.5rem;
		font-size: 1rem;
	}

	.footerTopNav ul,
	.footerBottomNavMenu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .65rem 1rem;
		width: 100%;
	}

	.footerTopNav,
	.footerBottomNav {
		width: 100%;
	}

	.footerBottomNav {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	.footerBottomNavSns {
		grid-column: 1 / -1;
		flex-wrap: nowrap;
	}

	.footer {
		padding-bottom: 5.5rem;
	}
}
