:root {
	--content-width: 1200px;
	--gutter: 48px;
	--site-header-height: 120px;
	--color-ink: #0a3225;
	--color-deep: #36554c;
	--color-green: #0e9542;
	--color-pale: #edf5f1;
	--color-mint: #dff7ed;
	--color-orange: #ff3b00;
	--color-gold: #e2d3a8;
	--font-base: "Noto Sans JP", sans-serif;
	--font-display: "M PLUS 1p", sans-serif;
}

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
	scroll-padding-top: var(--site-header-height);
}

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

body {
	margin: 0;
	background: #fff;
	color: var(--color-ink);
	font-family: var(--font-base);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}

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

img,
video {
	display: block;
	max-width: 100%;
}

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

button,
input,
textarea {
	font: inherit;
}

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

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

.l-container {
	width: min(calc(100% - var(--gutter) * 2), var(--content-width));
	margin-inline: auto;
}

.u-sp {
	display: none;
}

.c-skip-link {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 9999;
	padding: 8px 16px;
	background: #fff;
	color: var(--color-ink);
	transform: translateY(-150%);
}

.c-skip-link:focus {
	transform: translateY(0);
}

.l-header {
	position: absolute;
	inset: 0 0 auto;
	z-index: 100;
	display: flex;
	height: var(--site-header-height);
	align-items: center;
	justify-content: space-between;
	padding-inline: 47px 50px;
	background: transparent;
}

.l-header__logo {
	display: block;
	width: 244px;
}

.l-header__logo img {
	width: 100%;
	height: auto;
}

.l-header__nav {
	display: flex;
	align-items: center;
	gap: 39px;
	font-size: 16px;
	font-weight: 700;
}

.l-header__nav > a:not(.c-button) {
	transition: color .25s ease;
}

.l-header__nav > a:not(.c-button):hover,
.l-header__nav > a:not(.c-button):focus-visible {
	color: var(--color-orange);
}

.l-header__menu-button {
	display: none;
}

.c-button {
	display: inline-flex;
	min-width: 280px;
	height: 60px;
	align-items: center;
	justify-content: center;
	gap: 44px;
	padding: 0 20px;
	border: 1px solid var(--color-orange);
	border-radius: 999px;
	background: var(--color-orange);
	color: #fff;
	font-weight: 700;
	line-height: 1;
	transition: background-color .25s ease, color .25s ease;
}

.c-button--header {
	min-width: 240px;
	gap: 44px;
}

.c-button__arrow {
	display: grid;
	width: 18px;
	height: 18px;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	color: var(--color-orange);
	font-size: 11px;
}

.c-button.c-button--header,
.c-button.p-home-hero__button {
	position: relative;
	gap: 0;
}

.c-button.c-button--header .c-button__arrow,
.c-button.p-home-hero__button .c-button__arrow {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
}

.c-button:hover,
.c-button:focus-visible {
	background: #fff;
	color: var(--color-orange);
}

.c-button:hover .c-button__arrow,
.c-button:focus-visible .c-button__arrow {
	background: var(--color-orange);
	color: #fff;
}

.c-drawer {
	display: none;
}

.c-section-title {
	font-family: var(--font-display);
	font-size: 46px;
	font-weight: 700;
	line-height: 1.48;
	font-feature-settings: "palt";
}

.c-section-title span {
	color: var(--color-orange);
}

.c-section-title--center {
	text-align: center;
}

/* Front page hero: Figma 1920 × 1080. */
.p-home-hero {
	--hero-height: 100vh;
	--hero-intro-teacher-duration: 1.32s;
	--hero-intro-catch-delay: .1152s;
	--hero-intro-catch-duration: .96s;
	--hero-intro-follow-duration: .92s;
	--hero-intro-eyebrow-delay: 1.2s;
	--hero-intro-lead-delay: 1.376s;
	--hero-intro-button-delay: 1.552s;
	--hero-intro-people-delay: 1.696s;
	--hero-intro-people-duration: .92s;
	--hero-intro-people-step: .144s;
	--hero-intro-capsule-delay: 2.016s;
	--hero-intro-capsule-duration: .92s;
	--hero-intro-capsule-step: .176s;
	--hero-copy-top: 155px;
	--hero-copy-width: max-content;
	--hero-eyebrow-padding-block: 4px;
	--hero-eyebrow-border-width: 4px;
	--hero-eyebrow-font-size: 24px;
	--hero-title-margin-top: 15px;
	--hero-title-font-size: 46px;
	--hero-lead-margin-top: 12px;
	--hero-lead-font-size: 20px;
	--hero-button-margin-top: 30px;
	--hero-button-width: 280px;
	--hero-button-height: 60px;
	--hero-button-font-size: 16px;
	--hero-button-padding-inline: 20px;
	--hero-button-arrow-right: 20px;
	--hero-button-arrow-size: 18px;
	--hero-button-arrow-font-size: 11px;
	position: relative;
	height: var(--hero-height);
	overflow: hidden;
	background: #effaf5;
}

.p-home-hero__background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	pointer-events: none;
}

.p-home-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: min(calc(100% - 80px), 1316px);
	height: 100%;
	margin-inline: auto;
	padding-bottom: 5vh;
	box-sizing: border-box;
}

.p-home-hero__copy {
	position: absolute;
	top: var(--hero-copy-top);
	left: 0;
	z-index: 2;
	width: var(--hero-copy-width);
}

.p-home-hero__eyebrow {
	width: max-content;
	padding-block: var(--hero-eyebrow-padding-block);
	border-block: var(--hero-eyebrow-border-width) solid var(--color-gold);
	font-family: var(--font-display);
	font-size: var(--hero-eyebrow-font-size);
	font-weight: 700;
	line-height: 1.5;
	white-space: nowrap;
}

.p-home-hero h1 {
	margin-top: var(--hero-title-margin-top);
	font-family: var(--font-display);
	font-size: var(--hero-title-font-size);
	font-weight: 700;
	line-height: 1.39;
	font-feature-settings: "palt";
	white-space: nowrap;
}

.p-home-hero h1 span {
	display: inline-block;
	margin-inline: 6px;
	padding-inline: 8px;
	background: var(--color-ink);
	color: var(--color-gold);
}

.p-home-hero__lead {
	margin-top: var(--hero-lead-margin-top);
	font-size: var(--hero-lead-font-size);
	font-weight: 500;
	line-height: 1.6;
}

.p-home-hero__button {
	width: var(--hero-button-width);
	min-width: 0;
	height: var(--hero-button-height);
	margin-top: var(--hero-button-margin-top);
	padding-inline: var(--hero-button-padding-inline);
	font-size: var(--hero-button-font-size);
}

.c-button.p-home-hero__button .c-button__arrow {
	right: var(--hero-button-arrow-right);
	width: var(--hero-button-arrow-size);
	height: var(--hero-button-arrow-size);
	font-size: var(--hero-button-arrow-font-size);
}

.p-home-hero__visual {
	position: relative;
	z-index: 1;
	width: min(120vh, 1024px, 100%);
	aspect-ratio: 4 / 3;
	pointer-events: none;
}

.p-home-hero__visual-base {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
}

.p-home-hero__visual-motion {
	position: absolute;
	z-index: 1;
	display: block;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
}

.p-home-hero__visual-motion--01 {
	top: 50.2604%;
	left: 9.5703%;
	width: 34.5703%;
}

.p-home-hero__visual-motion--02 {
	top: 50.7813%;
	left: 34.1797%;
	width: 30.4688%;
}

.p-home-hero__visual-motion--03 {
	top: 51.0417%;
	left: 55.4688%;
	width: 31.8359%;
}

.p-home-hero__services {
	--hero-service-top: 138px;
	--hero-service-right: 3.5938vw;
	--hero-service-group-width: 339px;
	--hero-service-group-height: 341px;
	--hero-service-font-size: 18px;
	--hero-service-mark-height: 126px;
	--hero-service-video-width: 121px;
	--hero-service-video-scale: 1.1;
	--hero-service-logo-1-width: 154px;
	--hero-service-logo-1-height: 33.2973px;
	--hero-service-logo-1-offset-x: -.5px;
	--hero-service-logo-2-width: 138px;
	--hero-service-logo-2-height: 40.0645px;
	--hero-service-logo-2-offset-x: 0px;
	--hero-service-logo-3-width: 104px;
	--hero-service-logo-3-height: 32.5657px;
	--hero-service-logo-3-offset-x: -.5px;
	--hero-service-1-left: 0px;
	--hero-service-1-top: 0px;
	--hero-service-1-width: 147px;
	--hero-service-1-gap: 4px;
	--hero-service-2-left: 195px;
	--hero-service-2-top: 0px;
	--hero-service-2-width: 144px;
	--hero-service-2-gap: 0px;
	--hero-service-3-left: 110px;
	--hero-service-3-top: 181px;
	--hero-service-3-width: 123px;
	--hero-service-3-gap: 4px;
	position: absolute;
	top: var(--hero-service-top);
	right: var(--hero-service-right);
	left: auto;
	width: var(--hero-service-group-width);
	height: var(--hero-service-group-height);
}

.p-home-hero__services a {
	position: absolute;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	font-size: var(--hero-service-font-size);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-home-hero__services a:nth-child(1) {
	top: var(--hero-service-1-top);
	left: var(--hero-service-1-left);
	width: var(--hero-service-1-width);
	gap: var(--hero-service-1-gap);
}

.p-home-hero__services a:nth-child(2) {
	top: var(--hero-service-2-top);
	left: var(--hero-service-2-left);
	width: var(--hero-service-2-width);
	gap: var(--hero-service-2-gap);
}

.p-home-hero__services a:nth-child(3) {
	top: var(--hero-service-3-top);
	left: var(--hero-service-3-left);
	width: var(--hero-service-3-width);
	gap: var(--hero-service-3-gap);
}

.p-home-hero__services video {
	display: block;
	width: var(--hero-service-video-width);
	height: var(--hero-service-mark-height);
	object-fit: contain;
	transform: scale(var(--hero-service-video-scale));
}

.p-home-hero__service-logo,
.p-home-hero__service-logo img {
	display: block;
}

.p-home-hero__service-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.p-home-hero__services a:nth-child(1) .p-home-hero__service-logo {
	width: var(--hero-service-logo-1-width);
	height: var(--hero-service-logo-1-height);
	transform: translateX(var(--hero-service-logo-1-offset-x));
}

.p-home-hero__services a:nth-child(2) .p-home-hero__service-logo {
	width: var(--hero-service-logo-2-width);
	height: var(--hero-service-logo-2-height);
	transform: translateX(var(--hero-service-logo-2-offset-x));
}

.p-home-hero__services a:nth-child(3) .p-home-hero__service-logo {
	width: var(--hero-service-logo-3-width);
	height: var(--hero-service-logo-3-height);
	transform: translateX(var(--hero-service-logo-3-offset-x));
}

.p-home-hero[data-hero-intro] .p-home-hero__visual-base,
.p-home-hero[data-hero-intro] .p-home-hero__visual-motion,
.p-home-hero[data-hero-intro] .p-home-hero__eyebrow,
.p-home-hero[data-hero-intro] h1,
.p-home-hero[data-hero-intro] .p-home-hero__lead,
.p-home-hero[data-hero-intro] .p-home-hero__button,
.p-home-hero[data-hero-intro] .p-home-hero__services a {
	opacity: 0;
}

.p-home-hero[data-hero-intro] .p-home-hero__button,
.p-home-hero[data-hero-intro] .p-home-hero__services a {
	pointer-events: none;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__visual-base {
	animation: home-hero-teacher-in var(--hero-intro-teacher-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready h1 {
	transform-origin: center center;
	animation: home-hero-catch-in var(--hero-intro-catch-duration) var(--hero-intro-catch-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__eyebrow {
	animation: home-hero-follow-in var(--hero-intro-follow-duration) var(--hero-intro-eyebrow-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__lead {
	animation: home-hero-follow-in var(--hero-intro-follow-duration) var(--hero-intro-lead-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__button {
	animation: home-hero-follow-in var(--hero-intro-follow-duration) var(--hero-intro-button-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__visual-motion {
	animation: home-hero-person-in var(--hero-intro-people-duration) var(--hero-intro-people-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__visual-motion--02 {
	animation-delay: calc(var(--hero-intro-people-delay) + var(--hero-intro-people-step));
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__visual-motion--03 {
	animation-delay: calc(var(--hero-intro-people-delay) + var(--hero-intro-people-step) + var(--hero-intro-people-step));
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__services a {
	animation: home-hero-capsule-in var(--hero-intro-capsule-duration) var(--hero-intro-capsule-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__services a:nth-child(2) {
	animation-delay: calc(var(--hero-intro-capsule-delay) + var(--hero-intro-capsule-step));
}

.p-home-hero[data-hero-intro].is-hero-intro-ready .p-home-hero__services a:nth-child(3) {
	animation-delay: calc(var(--hero-intro-capsule-delay) + var(--hero-intro-capsule-step) + var(--hero-intro-capsule-step));
}

@keyframes home-hero-teacher-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes home-hero-catch-in {
	0% { opacity: 0; transform: translateY(24px) scale(.94); }
	62% { opacity: 1; transform: translateY(0) scale(1.08); }
	68% { opacity: 1; transform: translateY(0) scale(1.08); }
	100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes home-hero-follow-in {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); pointer-events: auto; }
}

@keyframes home-hero-person-in {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes home-hero-capsule-in {
	from { opacity: 0; transform: translateY(14px) scale(.9); }
	to { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
}

.p-problem {
	--problem-character-duration: .288s;
	--problem-character-step: .0416s;
	--problem-video-delay: 0s;
	--problem-video-duration: 1.52s;
	--problem-icons-delay: .68s;
	--problem-icons-duration: 1.52s;
	--problem-icon-step: .136s;
	--problem-list-delay: .68s;
	--problem-list-duration: .76s;
	--problem-list-step: .24s;
	--problem-height: 829px;
	--problem-padding-top: 118px;
	--problem-padding-bottom: 0px;
	--problem-layout-margin-top: 85px;
	--problem-visual-column-width: 581px;
	--problem-list-width: 561px;
	--problem-layout-gap: 70px;
	--problem-visual-height: 560px;
	--problem-video-left: 107px;
	--problem-video-width: 384px;
	--problem-video-height: 560px;
	--problem-list-offset-top: -8px;
	--problem-list-gap: 32px;
	--problem-item-height: 80px;
	--problem-item-padding-left: 96px;
	--problem-item-font-size: 24px;
	--problem-check-left: 36px;
	--problem-check-left-lower: 30px;
	--problem-check-width: 48px;
	--problem-check-height: 32px;
	height: var(--problem-height);
	min-height: var(--problem-height);
	padding-block: var(--problem-padding-top) var(--problem-padding-bottom);
}

.p-problem > .l-container {
	container-type: inline-size;
}

.p-problem__title-break { display: none; }

.p-problem__layout {
	display: grid;
	grid-template-columns: var(--problem-visual-column-width) var(--problem-list-width);
	gap: var(--problem-layout-gap);
	align-items: start;
	margin-top: var(--problem-layout-margin-top);
}

.p-problem__visual {
	position: relative;
	height: var(--problem-visual-height);
}

.p-problem__visual video {
	position: absolute;
	top: 0;
	left: var(--problem-video-left);
	z-index: 1;
	width: var(--problem-video-width);
	height: var(--problem-video-height);
	object-fit: contain;
}

.p-problem__icons {
	position: absolute;
	z-index: 2;
	inset: 0;
}

.p-problem__icons span {
	position: absolute;
	display: grid;
	width: 140px;
	height: 140px;
	place-items: center;
	border: 3px solid var(--color-ink);
	border-radius: 50%;
	background: #f2f7f4;
}

.p-problem__icons img {
	position: absolute;
	object-fit: contain;
}

.p-problem__icons span:nth-child(1) { top: -68px; left: 39px; }
.p-problem__icons span:nth-child(2) { top: -65px; left: 429px; }
.p-problem__icons span:nth-child(3) { top: 98px; left: 0; }
.p-problem__icons span:nth-child(4) { top: 99px; left: 465px; }
.p-problem__icons span:nth-child(1) img { width: 99px; height: 91px; }
.p-problem__icons span:nth-child(2) img { width: 86px; height: 88px; }
.p-problem__icons span:nth-child(3) img { width: 98px; height: 69px; }
.p-problem__icons span:nth-child(4) img { width: 66px; height: 68px; }
.p-problem__icons span:nth-child(1) img { top: 25px; left: 16px; }
.p-problem__icons span:nth-child(2) img { top: 27px; left: 26px; }
.p-problem__icons span:nth-child(3) img { top: 36px; left: 21px; }
.p-problem__icons span:nth-child(4) img { top: 36px; left: 41px; }

.p-problem__list {
	display: grid;
	width: var(--problem-list-width);
	gap: var(--problem-list-gap);
	margin-top: var(--problem-list-offset-top);
}

.p-problem__list li {
	position: relative;
	display: flex;
	height: var(--problem-item-height);
	min-height: var(--problem-item-height);
	align-items: center;
	padding: 0 20px 0 var(--problem-item-padding-left);
	border: 2px solid var(--color-ink);
	border-radius: 10px;
	background: #fff;
	font-size: var(--problem-item-font-size);
	font-weight: 700;
	line-height: 1.4;
}

.p-problem__list li span {
	position: absolute;
	top: 50%;
	left: var(--problem-check-left);
	width: var(--problem-check-width);
	height: var(--problem-check-height);
	background: url("../img/icon-check.svg") center / contain no-repeat;
	font-size: 0;
	transform: translateY(-50%);
}

.p-problem__list li:nth-child(n + 3) span { left: var(--problem-check-left-lower); }

.p-problem[data-problem-reveal] [data-character-reveal] {
	visibility: hidden;
}

.p-problem[data-problem-reveal] [data-character-reveal].is-character-ready {
	visibility: visible;
}

.p-problem__character {
	display: inline-block;
	font-style: inherit;
	opacity: 0;
	transform: translateX(-.45em);
}

.p-problem[data-problem-reveal] .p-problem__visual video,
.p-problem[data-problem-reveal] .p-problem__icons span,
.p-problem[data-problem-reveal] .p-problem__list li {
	opacity: 0;
}

.p-problem[data-problem-reveal].is-problem-title-ready .p-problem__character {
	animation: problem-character-in var(--problem-character-duration) cubic-bezier(.22, 1, .36, 1) both;
	animation-delay: calc(var(--problem-character-index) * var(--problem-character-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__visual video {
	animation: problem-video-in var(--problem-video-duration) var(--problem-video-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__icons span {
	animation: problem-icon-in var(--problem-icons-duration) var(--problem-icons-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__icons span:nth-child(2) {
	animation-delay: calc(var(--problem-icons-delay) + var(--problem-icon-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__icons span:nth-child(3) {
	animation-delay: calc(var(--problem-icons-delay) + var(--problem-icon-step) + var(--problem-icon-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__icons span:nth-child(4) {
	animation-delay: calc(var(--problem-icons-delay) + var(--problem-icon-step) + var(--problem-icon-step) + var(--problem-icon-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__list li {
	animation: problem-list-item-in var(--problem-list-duration) var(--problem-list-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__list li:nth-child(2) {
	animation-delay: calc(var(--problem-list-delay) + var(--problem-list-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__list li:nth-child(3) {
	animation-delay: calc(var(--problem-list-delay) + var(--problem-list-step) + var(--problem-list-step));
}

.p-problem[data-problem-reveal].is-problem-teacher-ready .p-problem__list li:nth-child(4) {
	animation-delay: calc(var(--problem-list-delay) + var(--problem-list-step) + var(--problem-list-step) + var(--problem-list-step));
}

@keyframes problem-character-in {
	from { opacity: 0; transform: translateX(-.45em); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes problem-video-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes problem-icon-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes problem-list-item-in {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: translateY(0); }
}

.p-proposal {
	--proposal-band-open-duration: .64s;
	--proposal-band-content-delay: .544s;
	--proposal-band-content-duration: .4s;
	--proposal-copy-duration: .6s;
	--proposal-woman-duration: 1s;
	--proposal-benefits-delay: .096s;
	--proposal-benefit-duration: .352s;
	--proposal-benefit-step: .1792s;
	--proposal-benefit-text-delay: .32s;
	--proposal-benefit-text-duration: .352s;
	--proposal-height: 1033px;
	--proposal-band-margin-top: 140px;
	--proposal-band-height: 119px;
	--proposal-band-font-size: 68px;
	--proposal-band-logo-width: 387px;
	--proposal-band-logo-height: 55px;
	--proposal-band-gap: 4px;
	--proposal-copy-padding-top: 62px;
	--proposal-title-font-size: 44px;
	--proposal-body-margin-top: 17px;
	--proposal-body-font-size: 18px;
	--proposal-benefits-margin-top: 68px;
	--proposal-visual-top: 387.63px;
	position: relative;
	height: var(--proposal-height);
	min-height: var(--proposal-height);
	overflow: hidden;
	background: var(--color-deep);
	color: #fff;
}

.p-proposal::before,
.p-proposal::after {
	position: absolute;
	z-index: 1;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	content: "";
	opacity: .1;
	pointer-events: none;
}

.p-proposal::before {
	top: min(.9964vw, 19.131px);
	left: min(43.7687vw, 840.358px);
	width: min(63.0873vw, 1211.276px);
	height: min(61.7199vw, 1185.023px);
	background-image: url("../img/proposal-watermark-ring-pc.svg");
}

.p-proposal::after {
	top: min(18.2462vw, 350.328px);
	left: min(51.5627vw, 990.004px);
	width: min(54.6686vw, 1049.638px);
	height: min(30.7936vw, 591.238px);
	background-image: url("../img/proposal-watermark-mark-pc.svg");
}

.p-proposal__band {
	position: relative;
	z-index: 2;
	display: flex;
	width: calc(100% - min(5vw, 60px));
	height: var(--proposal-band-height);
	align-items: center;
	justify-content: center;
	gap: var(--proposal-band-gap);
	margin: var(--proposal-band-margin-top) auto 0;
	padding: 0 20px;
	background: #fff;
	color: var(--color-orange);
	font-family: var(--font-display);
	font-size: var(--proposal-band-font-size);
	font-weight: 700;
	line-height: normal;
	text-align: center;
}

.p-proposal__band img {
	width: var(--proposal-band-logo-width);
	height: var(--proposal-band-logo-height);
	object-fit: contain;
	transform: translateY(3px);
}

.p-proposal__band span { white-space: nowrap; transform: translate(1.5px, 3px); }
.p-proposal__band b { color: var(--color-ink); font-weight: 700; }

.p-proposal__inner {
	position: relative;
	z-index: 2;
	container-type: inline-size;
}

.p-proposal__copy {
	padding-top: var(--proposal-copy-padding-top);
	text-align: center;
}

.p-proposal__copy h2 {
	color: var(--color-gold);
	font-family: var(--font-display);
	font-size: var(--proposal-title-font-size);
	font-weight: 700;
	line-height: normal;
}

.p-proposal__copy p {
	width: 698px;
	margin: var(--proposal-body-margin-top) auto 0;
	font-size: var(--proposal-body-font-size);
	font-weight: 500;
	line-height: 1.8;
	text-align: center;
	white-space: nowrap;
}

.p-proposal__sp-break { display: none; }

.p-proposal__benefits {
	display: grid;
	grid-template-columns: repeat(3, 260px);
	gap: 40px;
	margin-top: var(--proposal-benefits-margin-top);
}

.p-proposal__benefits > div {
	position: relative;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background: #fff;
	color: var(--color-deep);
	text-align: center;
}

.p-proposal__benefits strong {
	position: absolute;
	left: 0;
	width: 100%;
	color: var(--color-orange);
	font-family: var(--font-display);
	font-size: 42px;
	line-height: 1.3;
}

.p-proposal__benefits span {
	position: absolute;
	left: 0;
	width: 100%;
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	line-height: normal;
}

.p-proposal__benefits > div:nth-child(1) strong { top: 55px; }
.p-proposal__benefits > div:nth-child(1) span { top: 173px; }
.p-proposal__benefits > div:nth-child(2) strong { top: 78px; line-height: normal; }
.p-proposal__benefits > div:nth-child(2) span { top: 145px; }
.p-proposal__benefits > div:nth-child(3) strong { top: 49px; }
.p-proposal__benefits > div:nth-child(3) span { top: 171px; }

.p-proposal__visual {
	position: absolute;
	top: var(--proposal-visual-top);
	right: -41.287px;
	bottom: auto;
	width: 384px;
	height: 384px;
	object-fit: contain;
}

.p-proposal[data-proposal-reveal] .p-proposal__band {
	background: transparent;
	isolation: isolate;
	transform: none;
	transform-origin: center;
}

.p-proposal[data-proposal-reveal] .p-proposal__band::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: #fff;
	content: "";
	transform: scaleX(0);
	transform-origin: center;
}

.p-proposal[data-proposal-reveal] .p-proposal__band img,
.p-proposal[data-proposal-reveal] .p-proposal__band span,
.p-proposal[data-proposal-reveal] .p-proposal__copy h2,
.p-proposal[data-proposal-reveal] .p-proposal__copy p,
.p-proposal[data-proposal-reveal] .p-proposal__visual,
.p-proposal[data-proposal-reveal] .p-proposal__benefits strong,
.p-proposal[data-proposal-reveal] .p-proposal__benefits span {
	opacity: 0;
}

.p-proposal[data-proposal-reveal] .p-proposal__band img,
.p-proposal[data-proposal-reveal] .p-proposal__band span {
	position: relative;
	z-index: 1;
}

.p-proposal[data-proposal-reveal] .p-proposal__copy h2,
.p-proposal[data-proposal-reveal] .p-proposal__copy p {
	transform: translateY(22px);
}

.p-proposal[data-proposal-reveal] .p-proposal__benefits > div {
	--proposal-benefit-item-delay: 0s;
	transform: scale(0);
	transform-origin: center;
}

.p-proposal[data-proposal-reveal] .p-proposal__benefits > div:nth-child(2) {
	--proposal-benefit-item-delay: var(--proposal-benefit-step);
}

.p-proposal[data-proposal-reveal] .p-proposal__benefits > div:nth-child(3) {
	--proposal-benefit-item-delay: calc(var(--proposal-benefit-step) + var(--proposal-benefit-step));
}

.p-proposal[data-proposal-reveal].is-proposal-band-ready .p-proposal__band::before {
	animation: proposal-band-open var(--proposal-band-open-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-proposal[data-proposal-reveal].is-proposal-band-ready .p-proposal__band img,
.p-proposal[data-proposal-reveal].is-proposal-band-ready .p-proposal__band span {
	animation: proposal-band-content-in var(--proposal-band-content-duration) var(--proposal-band-content-delay) ease-out both;
}

.p-proposal[data-proposal-reveal].is-proposal-heading-ready .p-proposal__copy h2,
.p-proposal[data-proposal-reveal].is-proposal-lead-ready .p-proposal__copy p {
	animation: proposal-copy-in var(--proposal-copy-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-proposal[data-proposal-reveal].is-proposal-woman-ready .p-proposal__visual {
	animation: proposal-woman-in var(--proposal-woman-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-proposal[data-proposal-reveal].is-proposal-benefits-ready .p-proposal__benefits > div {
	animation: proposal-benefit-open var(--proposal-benefit-duration) calc(var(--proposal-benefits-delay) + var(--proposal-benefit-item-delay)) cubic-bezier(.22, 1, .36, 1) both;
}

.p-proposal[data-proposal-reveal].is-proposal-benefits-ready .p-proposal__benefits strong,
.p-proposal[data-proposal-reveal].is-proposal-benefits-ready .p-proposal__benefits span {
	animation: proposal-benefit-text-in var(--proposal-benefit-text-duration) calc(var(--proposal-benefits-delay) + var(--proposal-benefit-item-delay) + var(--proposal-benefit-text-delay)) ease-out both;
}

@keyframes proposal-band-open {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes proposal-band-content-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes proposal-copy-in {
	from { opacity: 0; transform: translateY(22px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes proposal-woman-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes proposal-benefit-open {
	from { transform: scale(0); }
	to { transform: scale(1); }
}

@keyframes proposal-benefit-text-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.p-services {
	--services-item-reveal-duration: .72s;
	--services-card-reveal-step: .144s;
	--services-intro-reveal-delay: .176s;
	--services-item-reveal-offset: 40px;
	--services-min-height: 933px;
	--services-padding-top: 137px;
	--services-padding-bottom: 123px;
	min-height: var(--services-min-height);
	padding-block: var(--services-padding-top) var(--services-padding-bottom);
}

.p-services > .l-container {
	--services-title-height: min(7.9167vw, 95px);
	--services-title-font-size: min(5vw, 60px);
	--services-title-logo-width: min(31.75vw, 381px);
	--services-title-logo-height: min(4.5vw, 54px);
	--services-title-logo-offset-y: min(.2083vw, 2.5px);
	--services-title-of-width: min(5.3333vw, 64px);
	--services-title-of-margin-left: min(.8333vw, 10px);
	--services-title-of-margin-right: min(.8333vw, 10px);
	--services-title-label-width: min(36.0833vw, 433px);
	--services-title-label-height: min(7vw, 84px);
	--services-title-label-margin-left: 0px;
	--services-title-label-padding: min(1.4167vw, 17px);
	--services-title-label-font-size: min(5vw, 60px);
	--services-title-label-offset-y: calc(0px - min(.125vw, 1.5px));
	--services-intro-width: min(100%, 538px);
	--services-intro-margin-top: min(2.6667vw, 32px);
	--services-intro-font-size: clamp(15px, calc(12px + .5vw), 18px);
	--services-intro-line-height: normal;
	--services-grid-margin-top: min(5.1667vw, 62px);
	--services-grid-gap: min(5vw, 60px);
	--service-card-height: clamp(324px, 38.1667vw, 458px);
	--service-card-padding-top: min(1.5vw, 18px);
	--service-card-padding-inline: min(1.5vw, 18px);
	--service-card-padding-bottom: min(2vw, 24px);
	--service-card-border-width: min(.1667vw, 2px);
	--service-card-radius: min(.8333vw, 10px);
	--service-visual-width: 100%;
	--service-visual-height: min(17.4167vw, 209px);
	--service-visual-radius: min(.5vw, 6px);
	--service-ledger-image-width: min(18.5833vw, 223px);
	--service-ledger-image-height: min(11.5833vw, 139px);
	--service-ledger-image-offset-x: min(.0417vw, .5px);
	--service-ledger-image-offset-y: min(.4167vw, 5px);
	--service-scan-image-width: min(22.25vw, 267px);
	--service-scan-image-height: min(12.9167vw, 155px);
	--service-scan-image-offset-y: min(.0833vw, 1px);
	--service-komon-image-width: min(17.25vw, 207px);
	--service-komon-image-height: min(14.1667vw, 170px);
	--service-komon-image-offset-y: min(.0417vw, .5px);
	--service-card-title-height: min(4.75vw, 57px);
	--service-card-title-margin-top: min(1.6667vw, 20px);
	--service-ledger-logo-width: min(24.6667vw, 296px);
	--service-ledger-logo-height: min(5.3333vw, 64px);
	--service-ledger-logo-offset-y: max(-3.5px, -.2917vw);
	--service-scan-logo-width: min(22.0833vw, 265px);
	--service-scan-logo-height: min(6.4113vw, 76.9355px);
	--service-scan-logo-offset-x: max(-.5px, -.0417vw);
	--service-scan-logo-offset-y: max(-3.0323px, -.2527vw);
	--service-komon-logo-width: min(16.5vw, 198px);
	--service-komon-logo-height: min(5.1667vw, 62px);
	--service-komon-logo-offset-y: max(-1.5px, -.125vw);
	--service-card-body-width: min(100%, 25vw, 300px);
	--service-card-body-margin-top: min(1.4167vw, 17px);
	--service-card-body-font-size: clamp(14px, calc(12px + .3333vw), 16px);
	--service-card-link-offset: min(1.5vw, 18px);
	--service-card-link-font-size: clamp(16px, calc(12px + .6667vw), 20px);
}

.p-services__title,
.p-reasons > .p-reasons__panel > h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-size: 60px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.p-services__title {
	height: var(--services-title-height);
	font-size: var(--services-title-font-size);
}

.p-services__title img {
	width: var(--services-title-logo-width);
	height: var(--services-title-logo-height);
	object-fit: contain;
	transform: translateY(var(--services-title-logo-offset-y));
}

.p-reasons h2 b {
	margin-inline: 10px;
	font-weight: 700;
}

.p-services__title b {
	width: var(--services-title-of-width);
	flex: 0 0 var(--services-title-of-width);
	margin: 0 var(--services-title-of-margin-right) 0 var(--services-title-of-margin-left);
	font-weight: 700;
}

.p-services__title span {
	display: grid;
	width: var(--services-title-label-width);
	height: var(--services-title-label-height);
	flex: 0 0 var(--services-title-label-width);
	place-items: center;
	margin-left: var(--services-title-label-margin-left);
	padding: 0 var(--services-title-label-padding);
	background: var(--color-ink);
	color: var(--color-gold);
	font-size: var(--services-title-label-font-size);
	white-space: nowrap;
	transform: translateY(var(--services-title-label-offset-y));
}

.p-services__intro {
	width: var(--services-intro-width);
	margin: var(--services-intro-margin-top) auto 0;
	font-size: var(--services-intro-font-size);
	font-weight: 500;
	line-height: var(--services-intro-line-height);
	text-align: center;
}

.p-services__intro-break { display: none; }

.p-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--services-grid-gap);
	margin-top: var(--services-grid-margin-top);
}

.p-services[data-services-reveal] .p-services__title,
.p-services[data-services-reveal] .p-services__intro {
	opacity: 0;
	transform: translateY(var(--services-item-reveal-offset));
}

.p-services[data-services-reveal].is-services-copy-ready .p-services__title {
	animation: services-item-in var(--services-item-reveal-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-services[data-services-reveal].is-services-copy-ready .p-services__intro {
	animation: services-item-in var(--services-item-reveal-duration) var(--services-intro-reveal-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-services[data-services-reveal] .c-service-card {
	--services-card-reveal-delay: 0s;
	opacity: 0;
	transform: translateY(var(--services-item-reveal-offset));
}

.p-services[data-services-reveal] .c-service-card:nth-child(2) {
	--services-card-reveal-delay: var(--services-card-reveal-step);
}

.p-services[data-services-reveal] .c-service-card:nth-child(3) {
	--services-card-reveal-delay: calc(var(--services-card-reveal-step) + var(--services-card-reveal-step));
}

.p-services[data-services-reveal] .c-service-card.is-services-card-ready {
	animation: services-item-in var(--services-item-reveal-duration) var(--services-card-reveal-delay) cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes services-item-in {
	from { opacity: 0; transform: translateY(var(--services-item-reveal-offset)); }
	to { opacity: 1; transform: translateY(0); }
}

.c-service-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	min-height: var(--service-card-height);
	padding: var(--service-card-padding-top) var(--service-card-padding-inline) var(--service-card-padding-bottom);
	border: var(--service-card-border-width) solid #000;
	border-radius: var(--service-card-radius);
	background: #fff;
	overflow: visible;
}

.c-service-card--ledger {
	--service-card-logo-width: var(--service-ledger-logo-width);
	--service-card-logo-height: var(--service-ledger-logo-height);
	--service-card-logo-offset-x: 0px;
	--service-card-logo-offset-y: var(--service-ledger-logo-offset-y);
	background: #fce7e2;
}

.c-service-card--scan {
	--service-card-logo-width: var(--service-scan-logo-width);
	--service-card-logo-height: var(--service-scan-logo-height);
	--service-card-logo-offset-x: var(--service-scan-logo-offset-x);
	--service-card-logo-offset-y: var(--service-scan-logo-offset-y);
	background: #faefc2;
}

.c-service-card--komon {
	--service-card-logo-width: var(--service-komon-logo-width);
	--service-card-logo-height: var(--service-komon-logo-height);
	--service-card-logo-offset-x: 0px;
	--service-card-logo-offset-y: var(--service-komon-logo-offset-y);
	background: #d5e9fa;
}

.c-service-card__visual {
	display: grid;
	width: var(--service-visual-width);
	height: var(--service-visual-height);
	flex: 0 0 var(--service-visual-height);
	align-self: center;
	place-items: center;
	border: var(--service-card-border-width) solid #000;
	border-radius: var(--service-visual-radius);
}

.c-service-card__visual img {
	object-fit: contain;
}

.c-service-card--ledger .c-service-card__visual { background: #ff7b5c; }
.c-service-card--scan .c-service-card__visual { background: #ffd319; }
.c-service-card--komon .c-service-card__visual { background: #51c1fc; }

.c-service-card--ledger .c-service-card__visual img {
	width: var(--service-ledger-image-width);
	height: var(--service-ledger-image-height);
	transform: translate(var(--service-ledger-image-offset-x), var(--service-ledger-image-offset-y));
}

.c-service-card--scan .c-service-card__visual img {
	width: var(--service-scan-image-width);
	height: var(--service-scan-image-height);
	transform: translateY(var(--service-scan-image-offset-y));
}

.c-service-card--komon .c-service-card__visual img {
	width: var(--service-komon-image-width);
	height: var(--service-komon-image-height);
	transform: translateY(var(--service-komon-image-offset-y));
}

.c-service-card h3 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr);
	height: var(--service-card-title-height);
	flex: 0 0 var(--service-card-title-height);
	place-items: center;
	margin-top: var(--service-card-title-margin-top);
	overflow: visible;
}

.c-service-card__logo {
	display: block;
	width: var(--service-card-logo-width);
	height: var(--service-card-logo-height);
	transform: translate(var(--service-card-logo-offset-x), var(--service-card-logo-offset-y));
}

.c-service-card__logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.c-service-card p {
	width: var(--service-card-body-width);
	flex: 0 0 auto;
	margin: var(--service-card-body-margin-top) auto 0;
	font-size: var(--service-card-body-font-size);
	line-height: 1.6;
}

.c-service-card > a {
	position: absolute;
	top: calc(100% + var(--service-card-link-offset));
	right: calc(0px - var(--service-card-border-width));
	font-size: var(--service-card-link-font-size);
	font-weight: 700;
	line-height: normal;
}

.c-service-card > a span {
	color: var(--color-orange);
}

.p-reasons {
	--reasons-copy-reveal-duration: .72s;
	--reasons-copy-reveal-offset: 40px;
	--reasons-card-open-duration: .48s;
	--reasons-card-reveal-step: .256s;
	--reasons-card-text-duration: .36s;
	--reasons-visual-reveal-duration: .88s;
	--reasons-min-height: 1502px;
	--reasons-padding-top: 69px;
	--reasons-peek-top: -43px;
	--reasons-peek-offset-x: 80px;
	--reasons-peek-width: 340px;
	--reasons-peek-height: 139px;
	--reasons-panel-offset: max(0px, calc((100vw - var(--reasons-content-width)) / 2 - var(--reasons-panel-padding-inline)));
	--reasons-panel-height: 1360px;
	--reasons-panel-padding-top: 137px;
	--reasons-panel-padding-inline: 80px;
	--reasons-panel-padding-bottom: 70px;
	--reasons-panel-radius: 20px;
	--reasons-content-width: min(calc(100vw - var(--gutter) * 2), 1200px);
	--reasons-content-left: calc((100vw - var(--reasons-content-width)) / 2 - var(--reasons-panel-offset));
	--reasons-title-width: 818px;
	--reasons-title-height: 94px;
	--reasons-title-font-size: 63px;
	--reasons-title-shift-x: -132px;
	--reasons-title-logo-width: 374px;
	--reasons-title-logo-height: 53px;
	--reasons-title-logo-gap: 3px;
	--reasons-lead-width: 753px;
	--reasons-lead-height: 65px;
	--reasons-lead-margin-top: 8px;
	--reasons-lead-margin-left: 456px;
	--reasons-lead-font-size: 18px;
	--reasons-lead-line-height: 32.4px;
	--reasons-layout-margin-top: 3px;
	--reasons-layout-gap: 38px;
	--reasons-layout-card-gap-share: 23.88px;
	--reasons-card-width: 800px;
	--reasons-card-height: 158px;
	--reasons-card-gap: 20px;
	--reasons-card-border-width: 2px;
	--reasons-card-radius: 10px;
	--reasons-card-padding-inline: 38px;
	--reasons-number-size: 78px;
	--reasons-number-font-size: 36px;
	--reasons-card-column-gap: 20px;
	--reasons-copy-title-width: 290px;
	--reasons-copy-body-width: 290px;
	--reasons-copy-gap: 42px;
	--reasons-card-title-font-size: 26px;
	--reasons-card-title-line-height: 36.4px;
	--reasons-card-body-font-size: 16px;
	--reasons-card-body-line-height: 25.6px;
	--reasons-visual-width: 473px;
	--reasons-visual-height: 966px;
	--reasons-visual-shift-x: -92px;
	position: relative;
	min-height: var(--reasons-min-height);
	padding: var(--reasons-padding-top) 0 0;
}

.p-reasons__peek {
	position: absolute;
	z-index: 2;
	top: var(--reasons-peek-top);
	left: calc(50vw - var(--reasons-peek-offset-x));
	width: var(--reasons-peek-width);
	height: var(--reasons-peek-height);
	object-fit: cover;
	pointer-events: none;
}

.p-reasons__panel {
	width: min(calc(100% - var(--reasons-panel-offset)), 1640px);
	min-height: var(--reasons-panel-height);
	margin-right: 0;
	padding: var(--reasons-panel-padding-top) 0 var(--reasons-panel-padding-bottom);
	border-radius: var(--reasons-panel-radius) 0 0 var(--reasons-panel-radius);
	background: #f2f7f4;
	overflow: hidden;
}

.p-reasons > .p-reasons__panel > h2 {
	width: var(--reasons-content-width);
	height: var(--reasons-title-height);
	margin-left: var(--reasons-content-left);
	font-size: var(--reasons-title-font-size);
	line-height: var(--reasons-title-height);
	transform: none;
}

.p-reasons h2 img {
	width: var(--reasons-title-logo-width);
	height: var(--reasons-title-logo-height);
	object-fit: contain;
	transform: translateY(2px);
}

.p-reasons h2 b {
	margin: 0 0 0 var(--reasons-title-logo-gap);
}

.p-reasons h2 span {
	color: var(--color-orange);
}

.p-reasons__lead {
	width: var(--reasons-lead-width);
	height: var(--reasons-lead-height);
	margin: var(--reasons-lead-margin-top) 0 0 calc(var(--reasons-content-left) + (var(--reasons-content-width) - var(--reasons-lead-width)) / 2);
	font-size: var(--reasons-lead-font-size);
	font-weight: 500;
	line-height: var(--reasons-lead-line-height);
	text-align: center;
}

.p-reasons__layout {
	display: grid;
	grid-template-columns: min(66.6667%, var(--reasons-card-width)) minmax(0, 1fr);
	width: var(--reasons-content-width);
	gap: var(--reasons-layout-gap);
	align-items: center;
	margin: var(--reasons-layout-margin-top) 0 0 var(--reasons-content-left);
}

.p-reasons__list {
	display: grid;
	min-width: 0;
	gap: var(--reasons-card-gap);
	container-type: inline-size;
	container-name: reasons-list;
	transform: translateY(-5px);
}

.p-reasons__list li {
	--reasons-card-padding-inline: min(4.75cqw, 38px);
	--reasons-number-size: min(9.75cqw, 78px);
	--reasons-number-font-size: clamp(20px, 4.5cqw, 36px);
	--reasons-card-column-gap: min(2.5cqw, 20px);
	--reasons-copy-title-width: min(36.25cqw, 290px);
	--reasons-copy-body-width: min(36.25cqw, 290px);
	--reasons-copy-gap: min(5.25cqw, 42px);
	--reasons-card-title-font-size: min(3.25cqw, 26px);
	--reasons-card-title-line-height: 1.4;
	--reasons-card-body-font-size: clamp(13px, 2cqw, 16px);
	--reasons-card-body-line-height: 1.6;
	display: grid;
	grid-template-columns: var(--reasons-number-size) 1fr;
	width: 100%;
	height: var(--reasons-card-height);
	align-items: center;
	gap: var(--reasons-card-column-gap);
	padding: 0 var(--reasons-card-padding-inline);
	border: var(--reasons-card-border-width) solid var(--color-ink);
	border-radius: var(--reasons-card-radius);
	background: #fff;
}

.p-reasons__list li > div {
	display: grid;
	grid-template-columns: var(--reasons-copy-title-width) var(--reasons-copy-body-width);
	align-items: center;
	gap: var(--reasons-copy-gap);
}

.p-reasons__list li > span {
	display: grid;
	width: var(--reasons-number-size);
	height: var(--reasons-number-size);
	place-items: center;
	border-radius: 50%;
	background: var(--color-deep);
	color: #fff;
	font-family: var(--font-display);
	font-size: var(--reasons-number-font-size);
	font-weight: 700;
}

.p-reasons__list h3 {
	color: var(--color-green);
	font-family: var(--font-display);
	font-size: var(--reasons-card-title-font-size);
	line-height: var(--reasons-card-title-line-height);
	font-feature-settings: "palt";
	white-space: nowrap;
}

.p-reasons__list p {
	font-size: var(--reasons-card-body-font-size);
	font-weight: 500;
	line-height: var(--reasons-card-body-line-height);
}

.p-reasons__visual {
	width: var(--reasons-visual-width);
	height: auto;
	max-height: none;
	max-width: none;
	aspect-ratio: 473 / 966;
	justify-self: start;
	object-fit: fill;
	object-position: bottom;
	transform: translateX(var(--reasons-visual-shift-x));
}

.p-reasons[data-reasons-reveal] > .p-reasons__panel > h2,
.p-reasons[data-reasons-reveal] .p-reasons__lead {
	opacity: 0;
	transform: translateY(var(--reasons-copy-reveal-offset));
}

.p-reasons[data-reasons-reveal].is-reasons-heading-ready > .p-reasons__panel > h2,
.p-reasons[data-reasons-reveal].is-reasons-lead-ready .p-reasons__lead {
	animation: reasons-copy-in var(--reasons-copy-reveal-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.p-reasons[data-reasons-reveal] .p-reasons__list li {
	--reasons-card-reveal-delay: 0s;
	position: relative;
	border-color: transparent;
	background: transparent;
	isolation: isolate;
}

.p-reasons[data-reasons-reveal] .p-reasons__list li::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	border-radius: max(0px, calc(var(--reasons-card-radius) - var(--reasons-card-border-width)));
	background: #fff;
	clip-path: inset(0 100% 0 0);
	content: "";
	pointer-events: none;
}

.p-reasons[data-reasons-reveal] .p-reasons__list li:nth-child(2) {
	--reasons-card-reveal-delay: var(--reasons-card-reveal-step);
}

.p-reasons[data-reasons-reveal] .p-reasons__list li:nth-child(3) {
	--reasons-card-reveal-delay: calc(var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step));
}

.p-reasons[data-reasons-reveal] .p-reasons__list li:nth-child(4) {
	--reasons-card-reveal-delay: calc(var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step));
}

.p-reasons[data-reasons-reveal] .p-reasons__list li:nth-child(5) {
	--reasons-card-reveal-delay: calc(var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step) + var(--reasons-card-reveal-step));
}

.p-reasons[data-reasons-reveal] .p-reasons__list li > * {
	position: relative;
	z-index: 1;
	opacity: 0;
}

.p-reasons[data-reasons-reveal].is-reasons-cards-ready .p-reasons__list li {
	animation: reasons-card-border-in var(--reasons-card-text-duration) calc(var(--reasons-card-reveal-delay) + var(--reasons-card-open-duration)) ease-out both;
}

.p-reasons[data-reasons-reveal].is-reasons-cards-ready .p-reasons__list li::before {
	animation: reasons-card-open var(--reasons-card-open-duration) var(--reasons-card-reveal-delay) cubic-bezier(.22, 1, .36, 1) both;
}

.p-reasons[data-reasons-reveal].is-reasons-cards-ready .p-reasons__list li > * {
	animation: reasons-card-text-in var(--reasons-card-text-duration) calc(var(--reasons-card-reveal-delay) + var(--reasons-card-open-duration)) ease-out both;
}

.p-reasons[data-reasons-reveal] .p-reasons__visual {
	opacity: 0;
}

.p-reasons[data-reasons-reveal].is-reasons-visual-ready .p-reasons__visual {
	animation: reasons-visual-in var(--reasons-visual-reveal-duration) ease-out both;
}

@keyframes reasons-copy-in {
	from { opacity: 0; transform: translateY(var(--reasons-copy-reveal-offset)); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes reasons-card-open {
	from { clip-path: inset(0 100% 0 0); }
	to { clip-path: inset(0 0 0 0); }
}

@keyframes reasons-card-text-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes reasons-card-border-in {
	from { border-color: transparent; }
	to { border-color: var(--color-ink); }
}

@keyframes reasons-visual-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

.p-brand-message {
	--brand-reveal-duration: .72s;
	--brand-reveal-step: .192s;
	--brand-reveal-offset: 40px;
	--brand-height: 811px;
	--brand-padding-top: 90px;
	height: var(--brand-height);
	padding-top: var(--brand-padding-top);
}

.p-brand-message__inner {
	display: grid;
	grid-template-columns: 523px 1fr;
	gap: 44px;
	align-items: start;
}

.p-brand-message video {
	width: 523px;
	height: 523px;
	object-fit: fill;
}

.p-brand-message__content {
	min-width: 0;
	padding-top: 60px;
}

.p-brand-message h2 {
	width: 468px;
	font-family: var(--font-display);
	font-size: 52px;
	font-weight: 700;
	line-height: 67.6px;
	font-feature-settings: "palt";
	text-align: center;
	white-space: nowrap;
}

.p-brand-message h2 span {
	color: var(--color-orange);
}

.p-brand-message__copy {
	margin-top: 24px;
	font-size: 24px;
	font-weight: 500;
	line-height: 48px;
}

.p-brand-message__copy--sp {
	display: none;
}

.p-brand-message[data-brand-reveal] video,
.p-brand-message[data-brand-reveal] h2,
.p-brand-message[data-brand-reveal] .p-brand-message__copy {
	--brand-item-reveal-delay: 0s;
	opacity: 0;
	transform: translateY(var(--brand-reveal-offset));
}

.p-brand-message[data-brand-reveal] h2 {
	--brand-item-reveal-delay: var(--brand-reveal-step);
}

.p-brand-message[data-brand-reveal] .p-brand-message__copy {
	--brand-item-reveal-delay: calc(var(--brand-reveal-step) + var(--brand-reveal-step));
}

.p-brand-message[data-brand-reveal].is-brand-ready video,
.p-brand-message[data-brand-reveal].is-brand-ready h2,
.p-brand-message[data-brand-reveal].is-brand-ready .p-brand-message__copy {
	animation: brand-item-in var(--brand-reveal-duration) var(--brand-item-reveal-delay) cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes brand-item-in {
	from { opacity: 0; transform: translateY(var(--brand-reveal-offset)); }
	to { opacity: 1; transform: translateY(0); }
}

.c-contact-cta {
	--cta-height: 750px;
	--cta-brand-gap: 15px;
	--cta-brand-font-size: 70px;
	--cta-brand-line-height: 101px;
	--cta-logo-width: 395px;
	--cta-logo-height: 56px;
	--cta-logo-shift-y: 5px;
	--cta-title-margin-top: 71px;
	--cta-title-font-size: 36px;
	--cta-title-line-height: 52px;
	--cta-title-letter-spacing: -.72px;
	--cta-copy-margin-top: 25px;
	--cta-copy-font-size: 18px;
	--cta-copy-line-height: 32.4px;
	--cta-button-margin-top: 57px;
	--cta-button-width: 653px;
	--cta-button-height: 120px;
	--cta-button-font-size: 24px;
	--cta-button-arrow-right: 38px;
	--cta-button-arrow-size: 40px;
	--cta-button-arrow-font-size: 24px;
	--cta-inner-shift-y: 0px;
	position: relative;
	display: grid;
	height: var(--cta-height);
	place-items: center;
	overflow: hidden;
	background: var(--color-deep);
	color: #fff;
}

.c-contact-cta__inner {
	position: relative;
	z-index: 1;
	text-align: center;
	transform: translateY(var(--cta-inner-shift-y));
}

.c-contact-cta__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--cta-brand-gap);
	color: var(--color-gold);
	font-size: var(--cta-brand-font-size);
	font-weight: 700;
	line-height: var(--cta-brand-line-height);
	letter-spacing: -.02em;
	white-space: nowrap;
}

.c-contact-cta__brand img {
	width: var(--cta-logo-width);
	height: var(--cta-logo-height);
	object-fit: contain;
	transform: translateY(var(--cta-logo-shift-y));
}

.c-contact-cta h2 {
	margin-top: var(--cta-title-margin-top);
	font-size: var(--cta-title-font-size);
	line-height: var(--cta-title-line-height);
	letter-spacing: var(--cta-title-letter-spacing);
	white-space: nowrap;
}

.c-contact-cta p:not(.c-contact-cta__brand) {
	margin-top: var(--cta-copy-margin-top);
	font-size: var(--cta-copy-font-size);
	font-weight: 500;
	line-height: var(--cta-copy-line-height);
	white-space: nowrap;
}

.c-button.c-button--large {
	position: relative;
	width: min(var(--cta-button-width), 100%);
	height: var(--cta-button-height);
	margin-top: var(--cta-button-margin-top);
	gap: 0;
	font-size: var(--cta-button-font-size);
}

.c-button.c-button--large .c-button__arrow {
	position: absolute;
	top: 50%;
	right: var(--cta-button-arrow-right);
	width: var(--cta-button-arrow-size);
	height: var(--cta-button-arrow-size);
	font-size: var(--cta-button-arrow-font-size);
	transform: translateY(-50%);
}

.l-footer {
	--footer-height: 85px;
	--footer-padding-inline: 50px;
	--footer-rule-inset: 31px;
	--footer-nav-gap: 42px;
	--footer-font-size: 16px;
	--footer-line-height: 23px;
	position: relative;
	display: flex;
	height: var(--footer-height);
	align-items: center;
	justify-content: space-between;
	padding-inline: var(--footer-padding-inline);
	background: var(--color-deep);
	color: #fff;
	font-size: var(--footer-font-size);
	line-height: var(--footer-line-height);
}

.l-footer::before {
	position: absolute;
	top: 0;
	right: var(--footer-rule-inset);
	left: var(--footer-rule-inset);
	height: 1px;
	background: rgba(255,255,255,.35);
	content: "";
}

.l-footer__nav {
	display: flex;
	gap: var(--footer-nav-gap);
	font-weight: 700;
}

.l-footer__copyright {
	font-weight: 500;
}

.l-footer a:hover,
.l-footer a:focus-visible {
	color: var(--color-gold);
}

/* Inner-page shared hero: desktop Figma x50–1870, h280. */
.p-service-page,
.p-contact-page {
	display: flow-root;
}

.c-page-hero {
	--page-hero-height: 280px;
	--page-hero-margin-top: 120px;
	--page-hero-margin: 50px;
	--page-hero-content-padding-left: 73px;
	--page-hero-content-gap: 20px;
	--page-hero-title-size: 46px;
	--page-hero-title-line-height: 68px;
	--page-hero-en-size: 18px;
	--page-hero-en-line-height: 27px;
	--page-hero-w-width: 720.203px;
	--page-hero-w-height: 405.675px;
	--page-hero-w-right: 48.234px;
	--page-hero-w-top: -93.179px;
	--page-hero-ring-width: 831.11px;
	--page-hero-ring-height: 813.096px;
	--page-hero-ring-right: 40.005px;
	--page-hero-ring-top: -320.428px;
	position: relative;
	height: var(--page-hero-height);
	margin: var(--page-hero-margin-top) var(--page-hero-margin) 0;
	overflow: hidden;
	border-radius: 18px;
	background: #ddf8ec;
}

.c-page-hero__inner {
	position: relative;
	display: flex;
	height: 100%;
	align-items: center;
	gap: var(--page-hero-content-gap);
	padding-left: var(--page-hero-content-padding-left);
}

.c-page-hero__inner::after {
	position: absolute;
	inset: 0;
	background:
		url("../img/page-hero-w-pc.svg") right var(--page-hero-w-right) top var(--page-hero-w-top) / var(--page-hero-w-width) var(--page-hero-w-height) no-repeat,
		url("../img/page-hero-ring-pc.svg") right var(--page-hero-ring-right) top var(--page-hero-ring-top) / var(--page-hero-ring-width) var(--page-hero-ring-height) no-repeat;
	content: "";
	opacity: .58;
	pointer-events: none;
}

.c-page-hero h1 {
	position: relative;
	z-index: 1;
	font-family: var(--font-display);
	font-size: var(--page-hero-title-size);
	font-weight: 700;
	line-height: var(--page-hero-title-line-height);
}

.c-page-hero span {
	position: relative;
	z-index: 1;
	font-family: var(--font-display);
	font-size: var(--page-hero-en-size);
	font-weight: 700;
	line-height: var(--page-hero-en-line-height);
}

.p-service-detail {
	--service-detail-min-height: 600px;
	--service-detail-copy-width: 440px;
	--service-detail-heading-size: 36px;
	--service-detail-heading-line-height: 54px;
	--service-detail-heading-box-height: 89.081px;
	--service-detail-logo-width: 412px;
	--service-detail-logo-height: 89.081px;
	--service-detail-logo-shift-x: 0px;
	--service-detail-logo-shift-y: -.844px;
	--service-detail-copy-gap: 22.075px;
	--service-detail-copy-size: 16px;
	--service-detail-copy-line-height: 25.6px;
	--service-detail-link-margin-top: 18px;
	--service-detail-link-font-size: 20px;
	--service-detail-image-width: 540px;
	--service-detail-image-height: 533px;
	--service-detail-image-shift-x: 0px;
	--service-detail-image-shift-y: 3px;
	min-height: var(--service-detail-min-height);
}

.p-service-detail--ledger {
	margin-top: 50px;
}

.p-service-detail--scan {
	--service-detail-heading-box-height: 54px;
	--service-detail-logo-width: 368px;
	--service-detail-logo-height: 106.839px;
	--service-detail-logo-shift-y: -14.425px;
	--service-detail-copy-gap: 23.156px;
	--service-detail-image-width: 597px;
	--service-detail-image-height: 531px;
	--service-detail-image-shift-y: -1px;
	background: var(--color-pale);
}

.p-service-detail--komon {
	--service-detail-heading-box-height: 54px;
	--service-detail-logo-width: 276px;
	--service-detail-logo-height: 86.424px;
	--service-detail-logo-shift-y: -17.632px;
	--service-detail-copy-gap: 21.156px;
	--service-detail-image-width: 537px;
	--service-detail-image-height: 534px;
	--service-detail-image-shift-x: -3px;
	--service-detail-image-shift-y: -15px;
}

.p-service-detail__inner {
	display: flex;
	min-height: var(--service-detail-min-height);
	align-items: center;
	justify-content: space-between;
	gap: 0;
}

.p-service-detail--scan .p-service-detail__copy {
	order: 2;
}

.p-service-detail--scan .p-service-detail__visual {
	order: 1;
}

.p-service-detail__copy {
	width: var(--service-detail-copy-width);
	flex: 0 0 var(--service-detail-copy-width);
}

.p-service-detail__copy h2 {
	display: grid;
	width: 100%;
	height: var(--service-detail-heading-box-height);
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr);
	place-items: center start;
	font-family: var(--font-display);
	font-size: var(--service-detail-heading-size);
	line-height: var(--service-detail-heading-line-height);
}

.p-service-detail__logo {
	display: block;
	width: var(--service-detail-logo-width);
	height: var(--service-detail-logo-height);
	transform: translate(var(--service-detail-logo-shift-x), var(--service-detail-logo-shift-y));
}

.p-service-detail__logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.p-service-detail__copy p {
	margin-top: var(--service-detail-copy-gap);
	color: var(--color-deep);
	font-size: var(--service-detail-copy-size);
	line-height: var(--service-detail-copy-line-height);
	text-align: justify;
}

.p-service-detail__link {
	display: block;
	width: max-content;
	margin: var(--service-detail-link-margin-top) 0 0 auto;
	font-size: var(--service-detail-link-font-size);
	font-weight: 700;
	line-height: normal;
}

.p-service-detail__link span {
	color: var(--color-orange);
}

.p-service-detail__visual {
	width: var(--service-detail-image-width);
	height: var(--service-detail-image-height);
	align-self: flex-end;
	object-fit: contain;
	transform: translate(var(--service-detail-image-shift-x), var(--service-detail-image-shift-y));
}

.p-faq {
	--faq-answer-open-duration: .75s;
	--faq-answer-easing: cubic-bezier(.4, 0, .2, 1);
	--faq-padding-top: 148px;
	--faq-padding-bottom: 150px;
	--faq-heading-size: 36px;
	--faq-heading-line-height: 54px;
	--faq-list-margin-top: 48px;
	--faq-list-gap: 30px;
	--faq-card-radius: 10px;
	padding-block: var(--faq-padding-top) var(--faq-padding-bottom);
	background: var(--color-pale);
}

.p-faq__inner {
	width: min(calc(100% - var(--gutter) * 2), 1200px);
}

.p-faq h2 {
	font-family: var(--font-display);
	font-size: var(--faq-heading-size);
	line-height: var(--faq-heading-line-height);
	text-align: center;
}

.p-faq__list {
	display: grid;
	gap: var(--faq-list-gap);
	margin-top: var(--faq-list-margin-top);
}

.c-faq > button,
.c-faq__answer {
	width: 100%;
	border: 0;
	border-radius: var(--faq-card-radius);
	background: #fff;
	color: var(--color-ink);
	text-align: left;
}

.c-faq > button {
	display: grid;
	min-height: 80px;
	grid-template-columns: 48px 1fr 28px;
	align-items: center;
	gap: 20px;
	padding: 16px 20px;
	cursor: pointer;
	font-size: 20px;
	font-weight: 500;
}

.c-faq__mark {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: var(--color-deep);
	color: #fff;
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 700;
}

.c-faq__mark--answer {
	background: var(--color-orange);
}

.c-faq__toggle {
	position: relative;
	display: block;
	width: 24px;
	height: 24px;
}

.c-faq__toggle::before,
.c-faq__toggle::after {
	position: absolute;
	top: calc(50% - 1px);
	left: 0;
	width: 24px;
	height: 2px;
	background: var(--color-deep);
	content: "";
}

.c-faq__toggle::after {
	transform: rotate(90deg);
	transition: transform .25s ease;
}

.c-faq.is-open .c-faq__toggle::after {
	transform: rotate(0);
}

.c-faq__answer {
	display: grid;
	width: calc(100% - 20px);
	min-height: 0;
	grid-template-rows: 0fr;
	margin: 0 0 0 20px;
	padding: 0 20px;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	visibility: hidden;
	transition: grid-template-rows var(--faq-answer-open-duration) var(--faq-answer-easing), min-height var(--faq-answer-open-duration) var(--faq-answer-easing), margin-top var(--faq-answer-open-duration) var(--faq-answer-easing), padding-top var(--faq-answer-open-duration) var(--faq-answer-easing), padding-bottom var(--faq-answer-open-duration) var(--faq-answer-easing), opacity .3s ease, transform var(--faq-answer-open-duration) var(--faq-answer-easing), visibility 0s linear var(--faq-answer-open-duration);
}

.c-faq.is-open .c-faq__answer {
	min-height: 115px;
	grid-template-rows: 1fr;
	margin-top: 20px;
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
	transition: grid-template-rows var(--faq-answer-open-duration) var(--faq-answer-easing), min-height var(--faq-answer-open-duration) var(--faq-answer-easing), margin-top var(--faq-answer-open-duration) var(--faq-answer-easing), padding-top var(--faq-answer-open-duration) var(--faq-answer-easing), padding-bottom var(--faq-answer-open-duration) var(--faq-answer-easing), opacity .48s ease .12s, transform var(--faq-answer-open-duration) var(--faq-answer-easing), visibility 0s;
}

.c-faq__answer-inner {
	display: grid;
	min-height: 0;
	grid-template-columns: 48px 1fr;
	align-items: center;
	gap: 20px;
	overflow: hidden;
}

.c-faq__answer p {
	font-size: 16px;
	line-height: 25.6px;
}

/* Contact form */
.p-contact-page {
	background: var(--color-pale);
}

.p-contact-form {
	--contact-padding-top: 150px;
	--contact-padding-bottom: 150px;
	--contact-form-gap: 40px;
	--contact-label-column-width: 380px;
	--contact-row-gap: 20px;
	--contact-label-gap: 23px;
	--contact-label-font-size: 18px;
	--contact-label-line-height: 26px;
	--contact-badge-width: auto;
	--contact-badge-height: 32px;
	--contact-badge-padding-inline: 10px;
	--contact-badge-radius: 4px;
	--contact-badge-font-size: 14px;
	--contact-badge-line-height: 20px;
	--contact-field-height: 70px;
	--contact-textarea-height: 240px;
	--contact-field-radius: 8px;
	--contact-choices-padding-top: 19px;
	--contact-choices-row-gap: 20px;
	--contact-choices-gap-y: 40px;
	--contact-choices-gap-x: 40px;
	--contact-choice-control-size: 16px;
	--contact-choice-control-offset-y: 1px;
	--contact-choice-label-gap: 8px;
	--contact-choice-font-size: 16px;
	--contact-choice-line-height: 19px;
	--contact-message-padding-top: 19px;
	--contact-message-label-offset: 19px;
	--contact-submit-width: 300px;
	--contact-submit-height: 60px;
	--contact-submit-margin-top: 60px;
	--contact-submit-font-size: 16px;
	padding-block: var(--contact-padding-top) var(--contact-padding-bottom);
}

.p-contact-thanks {
	--thanks-title-size: min(3vw, 36px);
	--thanks-title-gap: min(3.3333vw, 40px);
	--thanks-copy-size: clamp(14px, calc(12px + .3333vw), 16px);
	--thanks-copy-gap: min(1.6667vw, 20px);
	--thanks-button-gap: min(5vw, 60px);
	text-align: center;
}

.p-contact-thanks .p-contact-thanks__content h2 {
	display: block;
	margin-bottom: var(--thanks-title-gap);
	font-size: var(--thanks-title-size);
	line-height: 1.5;
}

.p-contact-thanks__content p {
	font-size: var(--thanks-copy-size);
	line-height: 1.8;
}

.p-contact-thanks__content p + p {
	margin-top: var(--thanks-copy-gap);
}

.c-button.p-contact-thanks__button {
	position: relative;
	width: min(100%, 300px);
	min-width: 0;
	margin-top: var(--thanks-button-gap);
	padding-inline: 40px;
}

.p-contact-thanks__button .c-button__arrow {
	position: absolute;
	right: 20px;
}

.p-contact-form__inner {
	max-width: 1200px;
}

.p-contact-form h2 {
	margin-bottom: 70px;
	font-size: 36px;
	text-align: center;
}

.c-form-message {
	margin: -38px auto 44px;
	padding: 14px 20px;
	text-align: center;
}

.c-form-message--success { background: #dff7ed; color: #087233; }
.c-form-message--error { background: #fff0eb; color: #b72b00; }

.c-contact-form {
	display: grid;
	gap: var(--contact-form-gap);
}

.c-contact-form .wpcf7-form-control-wrap {
	display: block;
	min-width: 0;
	width: 100%;
}

.c-contact-form__row {
	display: grid;
	grid-template-columns: var(--contact-label-column-width) minmax(0, 1fr);
	align-items: center;
	gap: var(--contact-row-gap);
	margin: 0;
	padding: 0;
	border: 0;
}

.c-contact-form__row > label,
.c-contact-form__row > legend,
.c-contact-form__row > .c-contact-form__label {
	display: flex;
	align-items: center;
	gap: var(--contact-label-gap);
	font-size: var(--contact-label-font-size);
	font-weight: 500;
	line-height: var(--contact-label-line-height);
}

.c-contact-form__required,
.c-contact-form__optional {
	display: grid;
	width: var(--contact-badge-width);
	height: var(--contact-badge-height);
	flex: 0 0 auto;
	place-items: center;
	padding-inline: var(--contact-badge-padding-inline);
	border-radius: var(--contact-badge-radius);
	background: var(--color-green);
	color: #fff;
	font-size: var(--contact-badge-font-size);
	line-height: var(--contact-badge-line-height);
}

.c-contact-form__optional {
	background: #fff;
	color: var(--color-ink);
}

.c-contact-form input[type="text"],
.c-contact-form input[type="email"],
.c-contact-form input[type="tel"],
.c-contact-form textarea {
	width: 100%;
	border: 1px solid transparent;
	border-radius: var(--contact-field-radius);
	background: #fff;
	color: var(--color-ink);
	outline: 0;
}

.c-contact-form input[type="text"],
.c-contact-form input[type="email"],
.c-contact-form input[type="tel"] {
	height: var(--contact-field-height);
	padding-inline: 18px;
}

.c-contact-form textarea {
	height: var(--contact-textarea-height);
	padding: 18px;
	resize: vertical;
}

.c-contact-form input:focus,
.c-contact-form textarea:focus {
	border-color: var(--color-green);
	box-shadow: 0 0 0 3px rgba(14,149,66,.15);
}

.c-contact-form input.wpcf7-not-valid,
.c-contact-form textarea.wpcf7-not-valid {
	border-color: #b72b00;
}

.c-contact-form .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: #b72b00;
	font-size: 13px;
	line-height: 1.5;
}

.c-contact-form__row--choices {
	grid-template-columns: var(--contact-label-column-width) minmax(0, 1fr);
	gap: var(--contact-choices-row-gap);
	padding-top: var(--contact-choices-padding-top);
}

.c-contact-form__choices {
	display: flex;
	flex-wrap: wrap;
	gap: var(--contact-choices-gap-y) var(--contact-choices-gap-x);
}

.c-contact-form__choices-wrap,
.c-contact-form__choices-wrap .wpcf7-form-control-wrap {
	min-width: 0;
	width: 100%;
}

.c-contact-form__choices .wpcf7-list-item {
	margin: 0;
}

.c-contact-form__choices label {
	display: inline-flex;
	align-items: center;
	gap: var(--contact-choice-label-gap);
	font-size: var(--contact-choice-font-size);
	line-height: var(--contact-choice-line-height);
	white-space: nowrap;
}

.c-contact-form__choices input {
	display: grid;
	width: var(--contact-choice-control-size);
	height: var(--contact-choice-control-size);
	flex: 0 0 auto;
	place-content: center;
	margin: 0;
	appearance: none;
	border: 1px solid var(--color-deep);
	border-radius: 0;
	background: #fff;
	transform: translateY(var(--contact-choice-control-offset-y));
}

.c-contact-form__choices input:checked {
	background: var(--color-green);
	box-shadow: inset 0 0 0 3px #fff;
}

.c-contact-form__choices input:focus-visible {
	outline: 2px solid var(--color-green);
	outline-offset: 2px;
}

.c-contact-form__row--message {
	align-items: start;
	padding-top: var(--contact-message-padding-top);
}

.c-contact-form__row--message > label {
	margin-top: var(--contact-message-label-offset);
}

.c-contact-form__submit {
	display: block;
	width: var(--contact-submit-width);
	height: var(--contact-submit-height);
	margin: var(--contact-submit-margin-top) auto 0;
	border: 1px solid #23564a;
	background: #23564a;
	color: #fff;
	font-size: var(--contact-submit-font-size);
	font-weight: 700;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}

.c-contact-form__submit-wrap {
	position: relative;
}

.c-contact-form__submit-wrap .wpcf7-spinner {
	position: absolute;
	top: calc(var(--contact-submit-margin-top) + var(--contact-submit-height) / 2);
	left: calc(50% + var(--contact-submit-width) / 2 + 12px);
	margin: 0;
	transform: translateY(-50%);
}

.c-contact-form__submit:hover,
.c-contact-form__submit:focus-visible {
	background: #fff;
	color: #23564a;
}

.p-contact-form .wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 14px 20px;
	border: 0;
	text-align: center;
}

.p-contact-form .wpcf7 form.sent .wpcf7-response-output {
	background: #dff7ed;
	color: #087233;
}

.p-contact-form .wpcf7 form.invalid .wpcf7-response-output,
.p-contact-form .wpcf7 form.unaccepted .wpcf7-response-output,
.p-contact-form .wpcf7 form.spam .wpcf7-response-output,
.p-contact-form .wpcf7 form.failed .wpcf7-response-output,
.p-contact-form .wpcf7 form.aborted .wpcf7-response-output {
	background: #fff0eb;
	color: #b72b00;
}

.p-contact-page + .l-footer {
	--footer-height: 84px;
}

.p-default {
	min-height: 60vh;
	padding-block: 80px;
}

@media (min-width: 1201px) and (max-width: 1396px) {
	.p-home-hero__services {
		--hero-service-right: calc(24.002vw - 284.899px);
	}
}

@media (min-width: 601px) and (max-width: 1200px) {
	:root {
		--gutter: min(4vw, 48px);
		--site-header-height: min(10vw, 120px);
	}

	.l-header {
		padding-inline: min(3.9167vw, 47px) min(4.1667vw, 50px);
	}

	.l-header__logo { width: min(20.3333vw, 244px); }
	.l-header__nav { gap: min(3.25vw, 39px); font-size: min(1.3333vw, 16px); }
	.c-button--header { min-width: min(20vw, 240px); height: min(5vw, 60px); }

	.p-home-hero {
		--hero-height: calc(100vh * (100vw / 1200px));
		--hero-copy-top: min(12.9167vw, 155px);
		--hero-eyebrow-padding-block: min(.3333vw, 4px);
		--hero-eyebrow-border-width: min(.3333vw, 4px);
		--hero-eyebrow-font-size: min(2vw, 24px);
		--hero-title-margin-top: min(1.25vw, 15px);
		--hero-title-font-size: min(3.8333vw, 46px);
		--hero-lead-margin-top: min(1vw, 12px);
		--hero-lead-font-size: clamp(14px, calc(8px + 1vw), 20px);
		--hero-button-margin-top: min(2.5vw, 30px);
		--hero-button-width: min(23.3333vw, 280px);
		--hero-button-height: min(5vw, 60px);
		--hero-button-font-size: min(1.3333vw, 16px);
		--hero-button-padding-inline: min(1.6667vw, 20px);
		--hero-button-arrow-right: min(1.6667vw, 20px);
		--hero-button-arrow-size: min(1.5vw, 18px);
		--hero-button-arrow-font-size: min(.9167vw, 11px);
	}

	.p-home-hero__inner { width: calc(100% - min(6.6667vw, 80px)); }
	.p-home-hero__services {
		--hero-service-top: min(11.5vw, 138px);
		--hero-service-right: calc(3.5938vw - min(3.3333vw, 40px));
		--hero-service-group-width: min(28.25vw, 339px);
		--hero-service-group-height: min(28.4167vw, 341px);
		--hero-service-font-size: min(1.5vw, 18px);
		--hero-service-mark-height: min(10.5vw, 126px);
		--hero-service-video-width: min(10.0833vw, 121px);
		--hero-service-logo-1-width: min(12.8333vw, 154px);
		--hero-service-logo-1-height: min(2.7748vw, 33.2973px);
		--hero-service-logo-1-offset-x: max(-.5px, -.0417vw);
		--hero-service-logo-2-width: min(11.5vw, 138px);
		--hero-service-logo-2-height: min(3.3387vw, 40.0645px);
		--hero-service-logo-3-width: min(8.6667vw, 104px);
		--hero-service-logo-3-height: min(2.7138vw, 32.5657px);
		--hero-service-logo-3-offset-x: max(-.5px, -.0417vw);
		--hero-service-1-left: 0px;
		--hero-service-1-top: 0px;
		--hero-service-1-width: min(12.25vw, 147px);
		--hero-service-1-gap: min(.3333vw, 4px);
		--hero-service-2-left: min(16.25vw, 195px);
		--hero-service-2-top: 0px;
		--hero-service-2-width: min(12vw, 144px);
		--hero-service-2-gap: 0px;
		--hero-service-3-left: min(9.1667vw, 110px);
		--hero-service-3-top: min(15.0833vw, 181px);
		--hero-service-3-width: min(10.25vw, 123px);
		--hero-service-3-gap: min(4px, calc(2px + .1667vw));
	}

	.c-section-title { font-size: min(3.8333vw, 46px); }
	.p-problem {
		--problem-height: min(69.0833vw, 829px);
		--problem-padding-top: min(9.8333vw, 118px);
		--problem-padding-bottom: 0px;
		--problem-layout-margin-top: min(7.0833vw, 85px);
		--problem-visual-column-width: min(48.4167vw, 581px);
		--problem-list-width: min(46.75vw, 561px);
		--problem-layout-gap: min(5.8333vw, 70px);
		--problem-visual-height: min(46.6667vw, 560px);
		--problem-video-left: min(8.9167vw, 107px);
		--problem-video-width: min(32vw, 384px);
		--problem-video-height: min(46.6667vw, 560px);
		--problem-list-offset-top: max(-8px, -.6667vw);
		--problem-list-gap: min(2.6667vw, 32px);
		--problem-item-height: min(6.6667vw, 80px);
		--problem-item-padding-left: min(8vw, 96px);
		--problem-item-font-size: min(2vw, 24px);
		--problem-check-left: min(3vw, 36px);
		--problem-check-left-lower: min(2.5vw, 30px);
		--problem-check-width: min(4vw, 48px);
		--problem-check-height: min(2.6667vw, 32px);
	}
	.p-problem__icons span {
		width: min(11.6667vw, 140px);
		height: min(11.6667vw, 140px);
		border-width: min(.25vw, 3px);
	}
	.p-problem__icons span:nth-child(1) { top: max(-68px, -5.6667vw); left: min(3.25vw, 39px); }
	.p-problem__icons span:nth-child(2) { top: max(-65px, -5.4167vw); left: min(35.75vw, 429px); }
	.p-problem__icons span:nth-child(3) { top: min(8.1667vw, 98px); left: 0; }
	.p-problem__icons span:nth-child(4) { top: min(8.25vw, 99px); left: min(38.75vw, 465px); }
	.p-problem__icons span:nth-child(1) img { top: min(2.0833vw, 25px); left: min(1.3333vw, 16px); width: min(8.25vw, 99px); height: min(7.5833vw, 91px); }
	.p-problem__icons span:nth-child(2) img { top: min(2.25vw, 27px); left: min(2.1667vw, 26px); width: min(7.1667vw, 86px); height: min(7.3333vw, 88px); }
	.p-problem__icons span:nth-child(3) img { top: min(3vw, 36px); left: min(1.75vw, 21px); width: min(8.1667vw, 98px); height: min(5.75vw, 69px); }
	.p-problem__icons span:nth-child(4) img { top: min(3vw, 36px); left: min(3.4167vw, 41px); width: min(5.5vw, 66px); height: min(5.6667vw, 68px); }
	.p-problem__list li { border-width: min(.1667vw, 2px); border-radius: min(.8333vw, 10px); }

	.p-proposal {
		--proposal-height: min(86.0833vw, 1033px);
		--proposal-band-margin-top: min(11.6667vw, 140px);
		--proposal-band-height: min(9.9167vw, 119px);
		--proposal-band-font-size: min(5.6667vw, 68px);
		--proposal-band-logo-width: min(32.25vw, 387px);
		--proposal-band-logo-height: min(4.5833vw, 55px);
		--proposal-band-gap: min(.3333vw, 4px);
		--proposal-copy-padding-top: min(5.1667vw, 62px);
		--proposal-title-font-size: min(3.6667vw, 44px);
		--proposal-body-margin-top: min(1.4167vw, 17px);
		--proposal-body-font-size: clamp(15px, calc(12px + .5vw), 18px);
		--proposal-benefits-margin-top: min(5.6667vw, 68px);
		--proposal-visual-top: min(32.3025vw, 387.63px);
	}
	.p-proposal__band img { transform: translateY(min(.25vw, 3px)); }
	.p-proposal__band span { transform: translate(min(.125vw, 1.5px), min(.25vw, 3px)); }

	.p-services { --services-min-height: min(77.75vw, 933px); --services-padding-top: min(11.4167vw, 137px); --services-padding-bottom: min(10.25vw, 123px); }

	.p-reasons {
		--reasons-min-height: min(125.1667vw, 1502px);
		--reasons-padding-top: min(5.75vw, 69px);
		--reasons-peek-top: max(-43px, -3.5833vw);
		--reasons-peek-offset-x: min(6.6667vw, 80px);
		--reasons-peek-width: min(28.3333vw, 340px);
		--reasons-peek-height: min(11.5833vw, 139px);
		--reasons-panel-offset: max(0px, calc((100vw - var(--reasons-content-width)) / 2 - var(--reasons-panel-padding-inline)));
		--reasons-panel-height: min(113.3333vw, 1360px);
		--reasons-panel-padding-top: min(11.4167vw, 137px);
		--reasons-panel-padding-inline: min(6.6667vw, 80px);
		--reasons-panel-padding-bottom: min(5.8333vw, 70px);
		--reasons-panel-radius: min(1.6667vw, 20px);
		--reasons-title-height: min(7.8333vw, 94px);
		--reasons-title-font-size: min(5.25vw, 63px);
		--reasons-title-shift-x: max(-132px, -11vw);
		--reasons-title-logo-width: min(31.1667vw, 374px);
		--reasons-title-logo-height: min(4.4167vw, 53px);
		--reasons-title-logo-gap: min(.25vw, 3px);
		--reasons-lead-width: min(62.75vw, 753px);
		--reasons-lead-height: min(5.4167vw, 65px);
		--reasons-lead-margin-top: min(.6667vw, 8px);
		--reasons-lead-margin-left: min(38vw, 456px);
		--reasons-lead-font-size: clamp(15px, calc(12px + .5vw), 18px);
		--reasons-lead-line-height: min(2.7vw, 32.4px);
		--reasons-layout-margin-top: min(.25vw, 3px);
		--reasons-layout-gap: min(3.1667vw, 38px);
		--reasons-layout-card-gap-share: min(1.99vw, 23.88px);
		--reasons-card-height: min(13.1667vw, 158px);
		--reasons-card-gap: min(1.6667vw, 20px);
		--reasons-card-border-width: min(.1667vw, 2px);
		--reasons-card-radius: min(.8333vw, 10px);
		--reasons-visual-width: min(39.4167vw, 473px);
		--reasons-visual-shift-x: max(-92px, -7.6667vw);
	}

	.p-reasons__list li {
		min-height: var(--reasons-card-height);
		height: auto;
	}

	.p-brand-message { --brand-height: min(67.5833vw, 811px); --brand-padding-top: min(7.5vw, 90px); }
	.p-brand-message__inner { grid-template-columns: min(43.5833vw, 523px) 1fr; gap: min(3.6667vw, 44px); }
	.p-brand-message video { width: min(43.5833vw, 523px); height: min(43.5833vw, 523px); }
	.p-brand-message__content { padding-top: min(5vw, 60px); }
	.p-brand-message h2 { width: min(39vw, 468px); font-size: min(4.3333vw, 52px); line-height: min(5.6333vw, 67.6px); }
	.p-brand-message__copy { margin-top: min(2vw, 24px); font-size: clamp(14px, calc(4px + 1.6667vw), 24px); line-height: clamp(25.6px, calc(3.2px + 3.7333vw), 48px); }

	.c-contact-cta {
		--cta-height: min(62.5vw, 750px);
		--cta-brand-gap: min(1.25vw, 15px);
		--cta-brand-font-size: min(5.8333vw, 70px);
		--cta-brand-line-height: min(8.4167vw, 101px);
		--cta-logo-width: min(32.9167vw, 395px);
		--cta-logo-height: min(4.6667vw, 56px);
		--cta-logo-shift-y: min(.4167vw, 5px);
		--cta-title-margin-top: min(5.9167vw, 71px);
		--cta-title-font-size: min(3vw, 36px);
		--cta-title-line-height: min(4.3333vw, 52px);
		--cta-title-letter-spacing: max(-.72px, -.06vw);
		--cta-copy-margin-top: min(2.0833vw, 25px);
		--cta-copy-font-size: clamp(15px, calc(12px + .5vw), 18px);
		--cta-copy-line-height: clamp(24px, calc(15.6px + 1.4vw), 32.4px);
		--cta-button-margin-top: min(4.75vw, 57px);
		--cta-button-width: min(54.4167vw, 653px);
		--cta-button-height: min(10vw, 120px);
		--cta-button-font-size: clamp(14px, 2vw, 24px);
		--cta-button-arrow-right: min(3.1667vw, 38px);
		--cta-button-arrow-size: min(3.3333vw, 40px);
		--cta-button-arrow-font-size: min(2vw, 24px);
	}
	.l-footer {
		--footer-height: min(7.0833vw, 85px);
		--footer-padding-inline: min(4.1667vw, 50px);
		--footer-rule-inset: min(2.5833vw, 31px);
		--footer-nav-gap: min(3.5vw, 42px);
		--footer-font-size: clamp(14px, calc(12px + .3333vw), 16px);
		--footer-line-height: clamp(20px, calc(17px + .5vw), 23px);
	}

	.c-page-hero {
		--page-hero-height: min(23.3333vw, 280px);
		--page-hero-margin-top: min(10vw, 120px);
		--page-hero-margin: min(4.1667vw, 50px);
		--page-hero-content-padding-left: min(6.0833vw, 73px);
		--page-hero-content-gap: min(1.6667vw, 20px);
		--page-hero-title-size: min(3.8333vw, 46px);
		--page-hero-title-line-height: min(5.6667vw, 68px);
		--page-hero-en-size: min(1.5vw, 18px);
		--page-hero-en-line-height: min(2.25vw, 27px);
		--page-hero-w-width: min(60.0169vw, 720.203px);
		--page-hero-w-height: min(33.8063vw, 405.675px);
		--page-hero-w-right: min(4.0195vw, 48.234px);
		--page-hero-w-top: max(-93.179px, -7.7649vw);
		--page-hero-ring-width: min(69.2592vw, 831.11px);
		--page-hero-ring-height: min(67.758vw, 813.096px);
		--page-hero-ring-right: min(3.3338vw, 40.005px);
		--page-hero-ring-top: max(-320.428px, -26.7023vw);
	}
	.p-service-detail {
		--service-detail-min-height: min(50vw, 600px);
		--service-detail-copy-width: min(36.6667vw, 440px);
		--service-detail-heading-size: clamp(20px, 3vw, 36px);
		--service-detail-heading-line-height: clamp(30px, 4.5vw, 54px);
		--service-detail-heading-box-height: min(7.4234vw, 89.081px);
		--service-detail-logo-width: min(34.3333vw, 412px);
		--service-detail-logo-height: min(7.4234vw, 89.081px);
		--service-detail-logo-shift-y: max(-.844px, -.0703vw);
		--service-detail-copy-gap: min(1.8396vw, 22.075px);
		--service-detail-copy-size: clamp(14px, calc(12px + .3333vw), 16px);
		--service-detail-copy-line-height: clamp(22.4px, calc(19.2px + .5333vw), 25.6px);
		--service-detail-link-margin-top: min(1.5vw, 18px);
		--service-detail-link-font-size: clamp(16px, calc(12px + .6667vw), 20px);
	}
	.p-service-detail--ledger {
		--service-detail-image-width: min(45vw, 540px);
		--service-detail-image-height: min(44.4167vw, 533px);
		--service-detail-image-shift-y: min(.25vw, 3px);
		margin-top: min(4.1667vw, 50px);
	}
	.p-service-detail--scan {
		--service-detail-heading-box-height: min(4.5vw, 54px);
		--service-detail-logo-width: min(30.6667vw, 368px);
		--service-detail-logo-height: min(8.9033vw, 106.839px);
		--service-detail-logo-shift-y: max(-14.425px, -1.2021vw);
		--service-detail-copy-gap: min(1.9297vw, 23.156px);
		--service-detail-image-width: min(49.75vw, 597px);
		--service-detail-image-height: min(44.25vw, 531px);
		--service-detail-image-shift-y: max(-1px, -.0833vw);
	}
	.p-service-detail--komon {
		--service-detail-heading-box-height: min(4.5vw, 54px);
		--service-detail-logo-width: min(23vw, 276px);
		--service-detail-logo-height: min(7.202vw, 86.424px);
		--service-detail-logo-shift-y: max(-17.632px, -1.4693vw);
		--service-detail-copy-gap: min(1.763vw, 21.156px);
		--service-detail-image-width: min(44.75vw, 537px);
		--service-detail-image-height: min(44.5vw, 534px);
		--service-detail-image-shift-x: max(-3px, -.25vw);
		--service-detail-image-shift-y: max(-15px, -1.25vw);
	}
	.p-faq {
		--faq-padding-top: min(12.3333vw, 148px);
		--faq-padding-bottom: min(12.5vw, 150px);
		--faq-heading-size: clamp(20px, 3vw, 36px);
		--faq-heading-line-height: clamp(30px, 4.5vw, 54px);
		--faq-list-margin-top: min(4vw, 48px);
		--faq-list-gap: min(2.5vw, 30px);
		--faq-card-radius: min(10px, calc(2px + .6667vw));
	}
	.c-faq > button {
		min-height: clamp(64px, 6.6667vw, 80px);
		grid-template-columns: clamp(38px, 4vw, 48px) 1fr clamp(20px, 2vw, 24px);
		gap: clamp(12px, 1.6667vw, 20px);
		padding-inline: clamp(16px, 1.6667vw, 20px);
		font-size: clamp(16px, calc(12px + .6667vw), 20px);
	}
	.c-faq__mark {
		width: clamp(38px, 4vw, 48px);
		height: clamp(38px, 4vw, 48px);
		font-size: clamp(22px, 2.3333vw, 28px);
	}
	.c-faq__toggle,
	.c-faq__toggle::before,
	.c-faq__toggle::after { width: clamp(20px, 2vw, 24px); }
	.c-faq__answer {
		padding-inline: clamp(16px, 1.6667vw, 20px);
	}
	.c-faq__answer-inner {
		grid-template-columns: clamp(38px, 4vw, 48px) 1fr;
		gap: clamp(12px, 1.6667vw, 20px);
	}
	.c-faq__answer p {
		font-size: clamp(14px, calc(12px + .3333vw), 16px);
		line-height: clamp(22.4px, calc(19.2px + .5333vw), 25.6px);
	}
	.p-contact-form {
		--contact-padding-top: min(12.5vw, 150px);
		--contact-padding-bottom: min(12.5vw, 150px);
		--contact-form-gap: min(3.3333vw, 40px);
		--contact-label-column-width: clamp(300px, calc(219.733px + 13.3111vw), 380px);
		--contact-row-gap: min(1.6667vw, 20px);
		--contact-label-gap: min(1.9167vw, 23px);
		--contact-label-font-size: clamp(15px, calc(12px + .5vw), 18px);
		--contact-label-line-height: clamp(22px, calc(18px + .6667vw), 26px);
		--contact-badge-width: auto;
		--contact-badge-height: min(2.6667vw, 32px);
		--contact-badge-padding-inline: min(.8333vw, 10px);
		--contact-badge-radius: min(.3333vw, 4px);
		--contact-badge-font-size: clamp(12px, calc(10px + .3333vw), 14px);
		--contact-badge-line-height: clamp(17px, calc(14px + .5vw), 20px);
		--contact-field-height: min(5.8333vw, 70px);
		--contact-textarea-height: min(20vw, 240px);
		--contact-field-radius: min(.6667vw, 8px);
		--contact-choices-padding-top: min(1.5833vw, 19px);
		--contact-choices-row-gap: min(1.6667vw, 20px);
		--contact-choices-gap-y: min(3.3333vw, 40px);
		--contact-choices-gap-x: min(3.3333vw, 40px);
		--contact-choice-control-size: min(1.3333vw, 16px);
		--contact-choice-control-offset-y: min(.0833vw, 1px);
		--contact-choice-label-gap: min(.6667vw, 8px);
		--contact-choice-font-size: clamp(14px, calc(12px + .3333vw), 16px);
		--contact-choice-line-height: clamp(17px, calc(15px + .3333vw), 19px);
		--contact-message-padding-top: min(1.5833vw, 19px);
		--contact-message-label-offset: min(1.5833vw, 19px);
		--contact-submit-width: min(25vw, 300px);
		--contact-submit-height: min(5vw, 60px);
		--contact-submit-margin-top: min(5vw, 60px);
		--contact-submit-font-size: clamp(13px, calc(10px + .5vw), 16px);
	}
	.p-contact-page + .l-footer { --footer-height: min(7vw, 84px); }
}

/* The measured PC problem layout spans 1,212px (581 + 70 + 561).
 * Scale from the available content width after the fluid side gutters. */
@media (min-width: 601px) and (max-width: 1296px) {
	.p-problem__layout {
		grid-template-columns: 47.9373% 46.2871%;
		gap: 5.7756%;
	}

	.p-problem__visual,
	.p-problem__list {
		container-type: inline-size;
	}

	.p-problem__icons span {
		width: min(24.0964cqw, 140px);
		height: min(24.0964cqw, 140px);
		border-width: min(.5164cqw, 3px);
	}

	.p-problem__icons span:nth-child(1) { top: max(-68px, -11.704cqw); left: min(6.7126cqw, 39px); }
	.p-problem__icons span:nth-child(2) { top: max(-65px, -11.1876cqw); left: min(73.8382cqw, 429px); }
	.p-problem__icons span:nth-child(3) { top: min(16.8675cqw, 98px); left: 0; }
	.p-problem__icons span:nth-child(4) { top: min(17.0396cqw, 99px); left: min(80.0344cqw, 465px); }
	.p-problem__icons span:nth-child(1) img { top: min(4.3029cqw, 25px); left: min(2.7539cqw, 16px); width: min(17.0396cqw, 99px); height: min(15.6627cqw, 91px); }
	.p-problem__icons span:nth-child(2) img { top: min(4.6472cqw, 27px); left: min(4.475cqw, 26px); width: min(14.8021cqw, 86px); height: min(15.1463cqw, 88px); }
	.p-problem__icons span:nth-child(3) img { top: min(6.1962cqw, 36px); left: min(3.6145cqw, 21px); width: min(16.8675cqw, 98px); height: min(11.8761cqw, 69px); }
	.p-problem__icons span:nth-child(4) img { top: min(6.1962cqw, 36px); left: min(7.0568cqw, 41px); width: min(11.3597cqw, 66px); height: min(11.704cqw, 68px); }

	.p-problem__list {
		width: 100%;
		gap: 0;
		margin-top: max(-8px, -.6601cqw);
	}

	.p-problem__list li {
		height: min(14.2602cqw, 80px);
		min-height: min(14.2602cqw, 80px);
		padding-right: min(3.5651cqw, 20px);
		padding-left: min(17.1123cqw, 96px);
		border-width: min(.3565cqw, 2px);
		border-radius: min(1.7825cqw, 10px);
		font-size: min(4.2781cqw, 24px);
	}

	.p-problem__list li + li { margin-top: min(5.7041cqw, 32px); }

	.p-problem__list li span {
		left: min(6.4171cqw, 36px);
		width: min(8.5561cqw, 48px);
		height: min(5.7041cqw, 32px);
	}

	.p-problem__list li:nth-child(n + 3) span { left: min(5.3476cqw, 30px); }

	.p-proposal__copy p {
		width: min(56.2336cqw, 698px);
	}

	.p-proposal__benefits {
		grid-template-columns: repeat(3, min(20.9461cqw, 260px));
		gap: min(3.2225cqw, 40px);
	}

	.p-proposal__benefits > div {
		container-type: inline-size;
		width: min(20.9461cqw, 260px);
		height: min(20.9461cqw, 260px);
	}

	.p-proposal__benefits strong { font-size: min(16.1538cqw, 42px); }
	.p-proposal__benefits span { font-size: min(9.2308cqw, 24px); }
	.p-proposal__benefits > div:nth-child(1) strong { top: min(21.1538cqw, 55px); }
	.p-proposal__benefits > div:nth-child(1) span { top: min(66.5385cqw, 173px); }
	.p-proposal__benefits > div:nth-child(2) strong { top: min(30cqw, 78px); }
	.p-proposal__benefits > div:nth-child(2) span { top: min(55.7692cqw, 145px); }
	.p-proposal__benefits > div:nth-child(3) strong { top: min(18.8462cqw, 49px); }
	.p-proposal__benefits > div:nth-child(3) span { top: min(65.7692cqw, 171px); }

	.p-proposal__visual {
		left: min(69.0676cqw, 857.287px);
		right: auto;
		width: min(30.9361cqw, 384px);
		height: min(30.9361cqw, 384px);
	}
}

@media (max-width: 600px) {
	.p-contact-thanks {
		--thanks-title-size: 20px;
		--thanks-title-gap: 24px;
		--thanks-copy-size: 14px;
		--thanks-copy-gap: 16px;
		--thanks-button-gap: 32px;
	}
	:root {
		--content-width: 335px;
		--gutter: 20px;
		--site-header-height: 80px;
		--sp-design-width: 375px;
	}

	body { font-size: 14px; }
	body.is-menu-open { overflow: hidden; }
	.u-pc { display: none; }

	.l-header {
		position: absolute;
		inset: 0 0 auto;
		z-index: 102;
		height: 80px;
		padding-inline: 20px;
		background: transparent;
	}

	body.admin-bar .l-header { top: 46px; }
	body.admin-bar .c-drawer { top: 46px; }

	.l-header__logo { position: relative; z-index: 102; width: 200px; }
	.l-header__nav { display: none; }

	.l-header__menu-button {
		position: relative;
		z-index: 102;
		display: block;
		width: 32px;
		height: 30px;
		padding: 0;
		border: 0;
		background: transparent;
	}

	.l-header__menu-button span {
		position: absolute;
		left: 0;
		width: 32px;
		height: 1px;
		background: var(--color-ink);
		transform-origin: left center;
		transition: background-color .35s ease, transform .45s cubic-bezier(.22, 1, .36, 1), width .45s cubic-bezier(.22, 1, .36, 1);
	}

	.l-header__menu-button span:first-child { top: 8px; }
	.l-header__menu-button span:last-child { top: 20px; }
	.l-header__menu-button[aria-expanded="true"] span { width: 34.65px; background: var(--color-ink); }
	.l-header__menu-button[aria-expanded="true"] span:first-child { transform: rotate(20.25deg); }
	.l-header__menu-button[aria-expanded="true"] span:last-child { transform: rotate(-20.25deg); }

	body.is-menu-open .l-header {
		z-index: 102;
		pointer-events: none;
	}

	body.is-menu-open .l-header__logo { z-index: 102; }
	body.is-menu-open .l-header__menu-button { z-index: 102; pointer-events: auto; }

	.c-drawer {
		--drawer-rule-color: #cfd6d2;
		--drawer-title-height: 55px;
		--drawer-ledger-height: 100px;
		--drawer-scan-height: 104px;
		--drawer-komon-height: 104px;
		--drawer-side-padding: 40px;
		position: fixed;
		inset: 0;
		z-index: 101;
		display: block;
		border-radius: 6px;
		background: #fff;
		opacity: 0;
		overflow-y: auto;
		pointer-events: none;
		visibility: hidden;
		transition: opacity .5s ease, visibility 0s linear .5s;
	}

	.c-drawer[aria-hidden="false"] {
		opacity: 1;
		pointer-events: auto;
		visibility: visible;
		transition-delay: 0s;
	}

	.c-drawer__nav {
		position: absolute;
		top: 80px;
		left: 0;
		display: flex;
		width: 100%;
		flex-direction: column;
		padding: 0 0 30px;
		background: transparent;
		opacity: 0;
		transform: translateY(-12px);
		transition: opacity .45s ease, transform .65s cubic-bezier(.22, 1, .36, 1);
	}

	.c-drawer[aria-hidden="false"] .c-drawer__nav {
		opacity: 1;
		transform: translateY(0);
		transition-delay: .1s;
	}

	.c-drawer__title {
		display: flex;
		height: var(--drawer-title-height);
		flex: 0 0 var(--drawer-title-height);
		align-items: flex-start;
		justify-content: center;
		padding: 16px var(--drawer-side-padding) 0;
		border-bottom: 1px solid var(--drawer-rule-color);
		font-size: 16px;
		font-weight: 700;
		line-height: 23px;
	}

	.c-drawer__services {
		display: grid;
		grid-template-rows: var(--drawer-ledger-height) var(--drawer-scan-height) var(--drawer-komon-height);
	}

	.c-drawer__service {
		display: flex;
		align-items: center;
		justify-content: center;
		padding-inline: var(--drawer-side-padding);
		border-bottom: 1px solid var(--drawer-rule-color);
	}

	.c-drawer__service img {
		display: block;
		max-width: 100%;
		height: auto;
		object-fit: contain;
	}

	.c-drawer__service--ledger img {
		width: 296px;
		transform: translateY(2px);
	}

	.c-drawer__service--scan img {
		width: 265px;
	}

	.c-drawer__service--komon img {
		width: 198px;
	}

	.c-drawer .c-button {
		position: relative;
		width: 277px;
		min-width: 0;
		height: 60px;
		margin: 30px auto 0;
		padding: 0 20px;
		border: 1px solid var(--color-orange);
		font-size: 14px;
		letter-spacing: 0;
	}

	.c-drawer .c-button__arrow {
		position: absolute;
		top: 50%;
		right: 20px;
		width: 18px;
		height: 18px;
		font-size: 11px;
		transform: translateY(-50%);
	}

	.c-button { min-width: 277px; height: 60px; gap: 54px; font-size: 14px; }
	.c-section-title { font-size: 22px; line-height: 1.4; }

	.p-home-hero {
		--hero-height: 860px;
		--hero-copy-top: 104px;
		--hero-eyebrow-padding-block: 3.5px;
		--hero-eyebrow-border-width: 3px;
		--hero-eyebrow-font-size: 17px;
		--hero-title-margin-top: 10px;
		--hero-title-font-size: 33px;
		--hero-lead-margin-top: 8px;
		--hero-lead-font-size: 14px;
		--hero-visual-top: 333px;
		--hero-visual-width: 375px;
		--hero-button-margin-top: 0px;
		--hero-button-width: 277px;
		--hero-button-height: 60px;
		--hero-button-font-size: 14px;
		--hero-button-padding-inline: 20px;
		--hero-button-arrow-right: 20px;
		--hero-button-arrow-size: 18px;
		--hero-button-arrow-font-size: 11px;
	}

	.p-home-hero__inner { width: min(100%, var(--sp-design-width)); }
	.p-home-hero__copy { left: 20px; }
	.p-home-hero h1 { line-height: 1.39; }
	.p-home-hero h1 span { margin-inline: 3px; padding-inline: 6px; }
	.p-home-hero__lead { line-height: 1.6; }
	.c-button.p-home-hero__button {
		position: absolute;
		top: calc(var(--hero-height) - var(--hero-copy-top) - 90px);
		bottom: auto;
		left: 29px;
	}
	.p-home-hero__visual {
		position: absolute;
		top: var(--hero-visual-top);
		left: 50%;
		display: block;
		width: min(100%, var(--hero-visual-width));
		max-width: none;
		transform: translateX(-50%);
	}
	.p-home-hero__services {
		--hero-service-top: 614px;
		--hero-service-group-width: 335px;
		/* Shared row; align the main names rather than the artwork/tagline centers. */
		--hero-service-logo-row-height: max(var(--hero-service-logo-1-height), var(--hero-service-logo-2-height), var(--hero-service-logo-3-height));
		/* Measured name centers in the supplied WebPs: y=129.5/195, 139.5/250, 127.5/274. Account for object-fit: contain. */
		--hero-service-logo-1-name-center: calc(var(--hero-service-logo-1-height) / 2 + var(--hero-service-logo-1-width) * 32 / 907);
		--hero-service-logo-2-name-center: calc(var(--hero-service-logo-2-height) * 139.5 / 250);
		--hero-service-logo-3-name-center: calc(var(--hero-service-logo-3-height) / 2 - var(--hero-service-logo-3-width) * 9.5 / 877);
		--hero-service-logo-name-axis: max(var(--hero-service-logo-1-name-center), var(--hero-service-logo-2-name-center), var(--hero-service-logo-3-name-center));
		--hero-service-logo-gap: 3px;
		--hero-service-group-height: calc(var(--hero-service-mark-height) + var(--hero-service-logo-gap) + var(--hero-service-logo-row-height));
		--hero-service-mark-height: 97px;
		--hero-service-video-width: 94px;
		--hero-service-logo-1-width: 101.0059px;
		--hero-service-logo-1-height: 21.8391px;
		--hero-service-logo-1-offset-x: 0px;
		--hero-service-logo-2-width: 90.5118px;
		--hero-service-logo-2-height: 26.2776px;
		--hero-service-logo-2-offset-x: 0px;
		--hero-service-logo-3-width: 68.2118px;
		--hero-service-logo-3-height: 21.3592px;
		--hero-service-logo-3-offset-x: 0px;
		--hero-service-font-size: 13px;
		--hero-service-1-left: 0px;
		--hero-service-1-top: 0px;
		--hero-service-1-width: 106px;
		--hero-service-1-gap: var(--hero-service-logo-gap);
		--hero-service-2-left: 119px;
		--hero-service-2-top: 0px;
		--hero-service-2-width: 104px;
		--hero-service-2-gap: var(--hero-service-logo-gap);
		--hero-service-3-left: 241px;
		--hero-service-3-top: 0px;
		--hero-service-3-width: 94px;
		--hero-service-3-gap: var(--hero-service-logo-gap);
		right: auto;
		left: 50%;
		transform: translateX(-50%);
	}
	.p-home-hero__services a {
		grid-template-rows: var(--hero-service-mark-height) var(--hero-service-logo-row-height);
		align-items: start;
	}
	.p-home-hero__services a:nth-child(1) .p-home-hero__service-logo { transform: translateY(calc(var(--hero-service-logo-name-axis) - var(--hero-service-logo-1-name-center))); }
	.p-home-hero__services a:nth-child(2) .p-home-hero__service-logo { transform: translateY(calc(var(--hero-service-logo-name-axis) - var(--hero-service-logo-2-name-center))); }
	.p-home-hero__services a:nth-child(3) .p-home-hero__service-logo { transform: translateY(calc(var(--hero-service-logo-name-axis) - var(--hero-service-logo-3-name-center))); }

	.p-problem {
		--problem-height: 630px;
		--problem-padding-top: 51px;
		--problem-padding-bottom: 0px;
		--problem-layout-margin-top: 13.4px;
		--problem-visual-height: 249px;
		--problem-video-left: 83px;
		--problem-video-width: 171px;
		--problem-video-height: 249px;
		--problem-list-width: 335px;
		--problem-list-offset-top: 0px;
		--problem-list-gap: 19px;
		--problem-item-height: 48px;
		--problem-item-padding-left: 52px;
		--problem-item-font-size: 15px;
		--problem-check-left: 16.5px;
		--problem-check-left-lower: 13px;
		--problem-check-width: 28.67px;
		--problem-check-height: 19.11px;
	}
	.p-problem > .l-container { width: min(calc(100% - 40px), 335px); }
	.p-problem__title-break { display: block; }
	.p-problem__layout { display: flex; flex-direction: column-reverse; gap: 7px; }
	.p-problem__visual { width: 100%; }
	.p-problem__visual video { top: 0; transform: none; }
	.p-problem__icons span { border-width: 2px; }
	.p-problem__icons span:nth-child(1) { top: 24px; left: 26px; width: 77px; height: 77px; }
	.p-problem__icons span:nth-child(2) { top: 24px; right: 25px; left: auto; width: 76px; height: 76px; }
	.p-problem__icons span:nth-child(3) { top: 115px; left: 5px; width: 77px; height: 76px; }
	.p-problem__icons span:nth-child(4) { top: 113px; right: 5px; left: auto; width: 77px; height: 77px; }
	.p-problem__icons span:nth-child(1) img { top: 14px; left: 9px; width: 54px; height: 49px; }
	.p-problem__icons span:nth-child(2) img { top: 14px; left: 14px; width: 47px; height: 49px; }
	.p-problem__icons span:nth-child(3) img { top: 20px; left: 11px; width: 54px; height: 37px; }
	.p-problem__icons span:nth-child(4) img { top: 20px; left: 23px; width: 36px; height: 37px; }
	.p-problem__list { width: 100%; }
	.p-problem__list li { padding-right: 8px; border-width: 2px; border-radius: 10px; }

	.p-proposal {
		--proposal-height: 733px;
		--proposal-band-margin-top: 50px;
		--proposal-band-height: 44px;
		--proposal-band-font-size: 23px;
		--proposal-band-logo-width: 145px;
		--proposal-band-logo-height: 21px;
		--proposal-band-gap: 2px;
		--proposal-copy-padding-top: 29px;
		--proposal-title-font-size: 19px;
		--proposal-body-margin-top: 13px;
		--proposal-body-font-size: 15px;
		--proposal-benefits-margin-top: 27px;
		--proposal-visual-top: 447px;
	}
	.p-proposal::before { top: 405.523px; left: 27.344px; width: 390.044px; height: 381.59px; background-image: url("../img/proposal-watermark-ring-sp.svg"); }
	.p-proposal::after { top: 512.172px; left: 75.531px; width: 337.995px; height: 190.385px; background-image: url("../img/proposal-watermark-mark-sp.svg"); }
	.p-proposal__band { width: 335px; padding: 0 6px; }
	.p-proposal__band img { transform: translateY(1.5px); }
	.p-proposal__band span { transform: translateX(1px); }
	.p-proposal__copy p { width: 328px; line-height: 24px; }
	.p-proposal__sp-break { display: block; }
	.p-proposal__benefits { grid-template-columns: repeat(2, 152px); gap: 20px 23px; width: 327px; margin: 27px auto 0; }
	.p-proposal__benefits > div:nth-child(3) { grid-column: 1; grid-row: 2; }
	.p-proposal__benefits > div { width: 152px; height: 152px; }
	.p-proposal__benefits > div:nth-child(1) strong { top: 33px; font-size: 23px; line-height: 29px; }
	.p-proposal__benefits > div:nth-child(1) span { top: 101px; font-size: 13px; }
	.p-proposal__benefits > div:nth-child(2) strong { top: 46px; font-size: 24px; line-height: normal; }
	.p-proposal__benefits > div:nth-child(2) span { top: 84px; font-size: 14px; }
	.p-proposal__benefits > div:nth-child(3) strong { top: 29px; font-size: 24px; line-height: 31px; }
	.p-proposal__benefits > div:nth-child(3) span { top: 100px; font-size: 14px; }
	.p-proposal__visual { top: 447px; right: -16px; bottom: auto; left: auto; width: 192px; height: 192px; }

	.p-services { --services-card-reveal-step: 0s; --services-min-height: 1376px; --services-padding-top: 49px; --services-padding-bottom: 124px; height: 1376px; }
	.p-services > .l-container {
		--services-title-height: 34px;
		--services-title-font-size: 22px;
		--services-title-logo-width: 139px;
		--services-title-logo-height: 20px;
		--services-title-logo-offset-y: 1px;
		--services-title-of-width: 23px;
		--services-title-of-margin-left: 3px;
		--services-title-of-margin-right: 0px;
		--services-title-label-width: 158px;
		--services-title-label-height: 31px;
		--services-title-label-margin-left: 4px;
		--services-title-label-padding: 0px;
		--services-title-label-font-size: 21px;
		--services-title-label-offset-y: -.5px;
		--services-intro-width: 255px;
		--services-intro-margin-top: 15px;
		--services-intro-font-size: 15px;
		--services-intro-line-height: 24px;
		--services-grid-margin-top: 22px;
		--services-grid-gap: 56px;
		--service-card-height: 324px;
		--service-card-padding-top: 10px;
		--service-card-padding-inline: 10px;
		--service-card-padding-bottom: 14px;
		--service-card-border-width: 2px;
		--service-card-radius: 10px;
		--service-visual-width: 193px;
		--service-visual-height: 126px;
		--service-visual-radius: 6px;
		--service-ledger-image-width: 135px;
		--service-ledger-image-height: 84px;
		--service-ledger-image-offset-x: 1px;
		--service-ledger-image-offset-y: 3px;
		--service-scan-image-width: 161px;
		--service-scan-image-height: 93px;
		--service-scan-image-offset-y: .5px;
		--service-komon-image-width: 125px;
		--service-komon-image-height: 103px;
		--service-komon-image-offset-y: .5px;
		--service-card-title-height: 35px;
		--service-card-title-margin-top: 12px;
		--service-ledger-logo-width: 186px;
		--service-ledger-logo-height: 40.2162px;
		--service-ledger-logo-offset-y: 1.6081px;
		--service-scan-logo-width: 166px;
		--service-scan-logo-height: 48.1935px;
		--service-scan-logo-offset-x: 0px;
		--service-scan-logo-offset-y: 1.5968px;
		--service-komon-logo-width: 124px;
		--service-komon-logo-height: 38.8283px;
		--service-komon-logo-offset-y: 1.9141px;
		--service-card-body-width: 188px;
		--service-card-body-margin-top: 11px;
		--service-card-body-font-size: 14px;
		--service-card-link-offset: 15px;
		--service-card-link-font-size: 16px;
	}
	.p-services__title { min-height: 34px; line-height: 1.5; }
	.p-services__title b { white-space: nowrap; }
	.p-services__intro { height: 48px; }
	.p-services__intro-break { display: block; }
	.p-services__grid { grid-template-columns: 1fr; width: 218px; margin-inline: auto; }
	.c-service-card { width: 218px; box-shadow: none; }

	.p-reasons {
		--reasons-min-height: 1735px;
		--reasons-padding-top: 0;
		--reasons-peek-top: -45px;
		--reasons-peek-width: 184px;
		--reasons-peek-height: 55px;
		--reasons-panel-offset: 0;
		--reasons-panel-height: 0;
		--reasons-panel-padding-top: 59px;
		--reasons-panel-padding-inline: max(20px, calc((100% - var(--content-width)) / 2));
		--reasons-panel-padding-bottom: 40px;
		--reasons-panel-radius: 0;
		--reasons-title-height: 33px;
		--reasons-title-font-size: 22px;
		--reasons-title-shift-x: 0;
		--reasons-title-logo-width: 134px;
		--reasons-title-logo-height: 19px;
		--reasons-title-logo-gap: 1px;
		--reasons-lead-width: 329px;
		--reasons-lead-height: 72px;
		--reasons-lead-margin-top: 17px;
		--reasons-lead-margin-left: 48px;
		--reasons-lead-font-size: 15px;
		--reasons-lead-line-height: 24px;
		--reasons-layout-margin-top: 29px;
		--reasons-layout-gap: 21px;
		--reasons-card-width: 335px;
		--reasons-card-height: 170px;
		--reasons-card-gap: 20px;
		--reasons-card-border-width: 2px;
		--reasons-card-radius: 10px;
		--reasons-card-padding-inline: 18px;
		--reasons-number-size: 56px;
		--reasons-number-font-size: 25px;
		--reasons-card-column-gap: 12px;
		--reasons-card-title-font-size: 19px;
		--reasons-card-title-line-height: 26.6px;
		--reasons-card-body-font-size: 14px;
		--reasons-card-body-line-height: 22.4px;
		--reasons-visual-width: 240px;
		--reasons-visual-height: 534px;
		--reasons-visual-shift-x: 0;
		position: relative;
		height: var(--reasons-min-height);
		background: #f2f7f4;
	}
	.p-reasons__peek { left: 50%; transform: translateX(-50%); }
	.p-reasons__panel { width: 100%; min-height: 0; margin-inline: auto; background: transparent; }
	.p-reasons > .p-reasons__panel > h2 { width: 289px; justify-content: flex-start; margin-inline: auto; }
	.p-reasons h2 img { transform: translateY(1px); }
	.p-reasons h2 b { margin: 0 0 0 1px; white-space: nowrap; }
	.p-reasons h2 span { white-space: nowrap; }
	.p-reasons__lead { height: auto; min-height: var(--reasons-lead-height); margin: var(--reasons-lead-margin-top) auto 0; }
	.p-reasons__layout { display: flex; flex-direction: column; margin: var(--reasons-layout-margin-top) auto 0; }
	.p-reasons__list { width: 335px; max-width: 100%; align-self: center; gap: 20px; transform: none; }
	.p-reasons__list li {
		--reasons-card-padding-inline: 18px;
		--reasons-number-size: 56px;
		--reasons-number-font-size: 25px;
		--reasons-card-column-gap: 12px;
		--reasons-card-title-font-size: 19px;
		--reasons-card-title-line-height: 26.6px;
		--reasons-card-body-font-size: 14px;
		--reasons-card-body-line-height: 22.4px;
		grid-template-rows: 56px 68px;
		row-gap: 8px;
		min-height: 0;
		padding: 18px;
	}
	.p-reasons__list li > div { display: contents; }
	.p-reasons__list h3 { align-self: center; }
	.p-reasons__list p { grid-column: 1 / -1; margin: 0; }
	.p-reasons__visual { align-self: center; aspect-ratio: 240 / 534; }
	.p-reasons[data-reasons-reveal] .p-reasons__list li > div {
		opacity: 1;
		animation: none;
	}
	.p-reasons[data-reasons-reveal] .p-reasons__list h3,
	.p-reasons[data-reasons-reveal] .p-reasons__list p {
		opacity: 0;
	}
	.p-reasons[data-reasons-reveal].is-reasons-cards-ready .p-reasons__list h3,
	.p-reasons[data-reasons-reveal].is-reasons-cards-ready .p-reasons__list p {
		animation: reasons-card-text-in var(--reasons-card-text-duration) calc(var(--reasons-card-reveal-delay) + var(--reasons-card-open-duration)) ease-out both;
	}

	.p-brand-message { --brand-height: 749px; --brand-padding-top: 50px; height: var(--brand-height); }
	.p-brand-message__inner { width: min(calc(100% - 40px), 335px); grid-template-columns: 1fr; gap: 20px; }
	.p-brand-message video { width: 256px; height: 257px; margin-inline: auto; }
	.p-brand-message__content { width: 100%; padding: 0 11px; }
	.p-brand-message h2 { width: 252px; font-size: 28px; line-height: 37px; text-align: center; }
	.p-brand-message__copy { width: 315px; margin-top: 10px; font-size: 18px; line-height: 32.4px; white-space: nowrap; }
	.p-brand-message__copy--pc { display: none; }
	.p-brand-message__copy--sp { display: block; }

	.u-sp { display: initial; }
	.c-contact-cta {
		--cta-height: 394px;
		--cta-brand-gap: 6px;
		--cta-brand-font-size: 27px;
		--cta-brand-line-height: 39px;
		--cta-logo-width: 160px;
		--cta-logo-height: 23px;
		--cta-logo-shift-y: 2px;
		--cta-title-margin-top: 30px;
		--cta-title-font-size: 18px;
		--cta-title-line-height: 26px;
		--cta-title-letter-spacing: -.36px;
		--cta-copy-margin-top: 10px;
		--cta-copy-font-size: 15px;
		--cta-copy-line-height: 24px;
		--cta-button-margin-top: 29px;
		--cta-button-width: 335px;
		--cta-button-height: 62px;
		--cta-button-font-size: 14px;
		--cta-button-arrow-right: 19px;
		--cta-button-arrow-size: 21px;
		--cta-button-arrow-font-size: 12px;
		--cta-inner-shift-y: -1px;
	}
	.c-contact-cta__inner { width: min(calc(100% - 40px), 335px); }
	.l-footer {
		--footer-height: 38px;
		--footer-padding-inline: 20px;
		--footer-rule-inset: 0px;
		--footer-font-size: 14px;
		--footer-line-height: 20px;
		justify-content: center;
		align-items: flex-end;
		padding-bottom: 6px;
		text-align: center;
	}
	.l-footer__nav { display: none; }
	.l-footer__copyright { white-space: nowrap; }
	.p-service-page + .l-footer { --footer-height: 48px; padding-bottom: 16px; }

	.c-page-hero {
		--page-hero-height: 109px;
		--page-hero-margin-top: 80px;
		--page-hero-margin: 10px;
		--page-hero-content-padding-left: 19px;
		--page-hero-content-gap: 12px;
		--page-hero-title-size: 24px;
		--page-hero-title-line-height: 36px;
		--page-hero-en-size: 12px;
		--page-hero-en-line-height: 18px;
		--page-hero-w-width: 281.644px;
		--page-hero-w-height: 158.644px;
		--page-hero-w-right: 10.129px;
		--page-hero-w-top: -36.439px;
		--page-hero-ring-width: 325.016px;
		--page-hero-ring-height: 317.972px;
		--page-hero-ring-right: 6.911px;
		--page-hero-ring-top: -125.307px;
		border-radius: 8px;
		background: #ddf8ec;
	}
	.c-page-hero__inner::after {
		background-image: url("../img/page-hero-w-sp.svg"), url("../img/page-hero-ring-sp.svg");
	}

	.p-service-detail {
		--service-detail-min-height: auto;
		--service-detail-copy-width: 335px;
		--service-detail-heading-size: 20px;
		--service-detail-heading-line-height: 30px;
		--service-detail-link-margin-top: 15px;
		--service-detail-link-font-size: 16px;
		/* SP service logos and heading geometry: 1.44 times their original size. */
		--service-detail-heading-box-height: 43.2px;
		--service-detail-logo-width: 267.84px;
		--service-detail-logo-height: 57.91104px;
		--service-detail-logo-shift-y: -7.35552px;
		--service-detail-copy-gap: 10px;
		--service-detail-copy-size: 14px;
		--service-detail-copy-line-height: 22.4px;
		--service-detail-image-shift-x: 0px;
		--service-detail-image-shift-y: 0px;
		padding: 48px 0 0;
	}
	.p-service-detail--ledger {
		--service-detail-image-width: 265px;
		--service-detail-image-height: 261px;
		margin-top: 0;
		padding-top: 45px;
		padding-bottom: 12px;
	}
	.p-service-detail--scan {
		--service-detail-logo-width: 239.04px;
		--service-detail-logo-height: 69.39936px;
		--service-detail-logo-shift-y: -13.09968px;
		--service-detail-image-width: 283px;
		--service-detail-image-height: 252px;
	}
	.p-service-detail--komon {
		--service-detail-logo-width: 178.56px;
		--service-detail-logo-height: 55.91232px;
		--service-detail-logo-shift-y: -6.35616px;
		--service-detail-image-width: 284px;
		--service-detail-image-height: 282px;
	}
	.p-service-detail__inner { min-height: 0; flex-direction: column; justify-content: flex-start; gap: 0; }
	.p-service-detail--scan .p-service-detail__copy,
	.p-service-detail--scan .p-service-detail__visual { order: initial; }
	.p-service-detail__copy { flex-basis: auto; }
	.p-service-detail__copy p { min-height: 180px; }
	.p-service-detail__visual { align-self: center; margin-top: 18px; transform: none; }

	.p-faq {
		--faq-padding-top: 48px;
		--faq-padding-bottom: 50px;
		--faq-heading-size: 20px;
		--faq-heading-line-height: 30px;
		--faq-list-margin-top: 23px;
		--faq-list-gap: 20px;
		--faq-card-radius: 6px;
	}
	.c-faq > button { min-height: 64px; grid-template-columns: 38px 1fr 20px; gap: 12px; padding: 12px 16px; font-size: 16px; }
	.c-faq:not(:first-child) > button { height: 86px; }
	.c-faq__mark { width: 38px; height: 38px; font-size: 22px; }
	.c-faq__toggle, .c-faq__toggle::before, .c-faq__toggle::after { width: 20px; }
	.c-faq__answer {
		width: calc(100% - 12px);
		height: auto;
		min-height: 0;
		margin: 0 0 0 12px;
		padding: 0 16px;
	}
	.c-faq.is-open .c-faq__answer { min-height: 0; margin-top: 12px; padding-top: 13px; padding-bottom: 14px; }
	.c-faq__answer-inner { grid-template-columns: 38px 1fr; grid-template-rows: auto; align-items: start; gap: 12px; }
	.c-faq__answer p { font-size: 14px; line-height: 1.6; }

	.p-contact-form {
		--contact-padding-top: 50px;
		--contact-padding-bottom: 50px;
		--contact-form-gap: 30px;
		--contact-label-column-width: 1fr;
		--contact-row-gap: 12px;
		--contact-label-gap: 12px;
		--contact-label-font-size: 15px;
		--contact-label-line-height: 22px;
		--contact-badge-width: auto;
		--contact-badge-height: 24px;
		--contact-badge-padding-inline: 8px;
		--contact-badge-radius: 4px;
		--contact-badge-font-size: 12px;
		--contact-badge-line-height: 17px;
		--contact-field-height: 50px;
		--contact-textarea-height: 200px;
		--contact-field-radius: 6px;
		--contact-choices-padding-top: 0px;
		--contact-choices-row-gap: 17px;
		--contact-choices-gap-y: 17px;
		--contact-choices-gap-x: 24px;
		--contact-choice-control-size: 14px;
		--contact-choice-control-offset-y: .5px;
		--contact-choice-label-gap: 8px;
		--contact-choice-font-size: 14px;
		--contact-choice-line-height: 17px;
		--contact-message-padding-top: 1px;
		--contact-message-label-offset: 0px;
		--contact-submit-width: 252px;
		--contact-submit-height: 50px;
		--contact-submit-margin-top: 10px;
		--contact-submit-font-size: 13px;
	}
	.p-contact-form h2 { display: none; }
	.c-form-message { margin: 0 auto 28px; }
	.c-contact-form__row,
	.c-contact-form__row--choices { grid-template-columns: 1fr; }
	.p-contact-page + .l-footer { --footer-height: 48px; padding-bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; transition-delay: 0s !important; animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; }
	.p-home-hero[data-hero-intro] .p-home-hero__visual-base,
	.p-home-hero[data-hero-intro] .p-home-hero__visual-motion,
	.p-home-hero[data-hero-intro] .p-home-hero__eyebrow,
	.p-home-hero[data-hero-intro] h1,
	.p-home-hero[data-hero-intro] .p-home-hero__lead,
	.p-home-hero[data-hero-intro] .p-home-hero__button,
	.p-home-hero[data-hero-intro] .p-home-hero__services a {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
	.p-home-hero[data-hero-intro] .p-home-hero__button,
	.p-home-hero[data-hero-intro] .p-home-hero__services a { pointer-events: auto; }
	.p-problem[data-problem-reveal] [data-character-reveal] { visibility: visible; }
	.p-problem[data-problem-reveal] .p-problem__character,
	.p-problem[data-problem-reveal] .p-problem__visual video,
	.p-problem[data-problem-reveal] .p-problem__icons span,
	.p-problem[data-problem-reveal] .p-problem__list li {
		opacity: 1;
		transform: none;
	}
	.p-proposal[data-proposal-reveal] .p-proposal__band,
	.p-proposal[data-proposal-reveal] .p-proposal__band::before,
	.p-proposal[data-proposal-reveal] .p-proposal__copy h2,
	.p-proposal[data-proposal-reveal] .p-proposal__copy p,
	.p-proposal[data-proposal-reveal] .p-proposal__visual,
	.p-proposal[data-proposal-reveal] .p-proposal__benefits > div {
		opacity: 1;
		transform: none;
		animation: none;
	}
	.p-proposal[data-proposal-reveal] .p-proposal__band img,
	.p-proposal[data-proposal-reveal] .p-proposal__band span,
	.p-proposal[data-proposal-reveal] .p-proposal__benefits strong,
	.p-proposal[data-proposal-reveal] .p-proposal__benefits span { opacity: 1; animation: none; }
	.p-services[data-services-reveal] .p-services__title,
	.p-services[data-services-reveal] .p-services__intro,
	.p-services[data-services-reveal] .c-service-card {
		opacity: 1;
		transform: none;
		animation: none;
	}
	.p-reasons[data-reasons-reveal] > .p-reasons__panel > h2,
	.p-reasons[data-reasons-reveal] .p-reasons__lead,
	.p-reasons[data-reasons-reveal] .p-reasons__list li > * {
		opacity: 1;
		transform: none;
		animation: none;
	}
	.p-reasons[data-reasons-reveal] .p-reasons__visual {
		opacity: 1;
		animation: none;
	}
	.p-reasons[data-reasons-reveal] .p-reasons__list li {
		border-color: var(--color-ink);
		animation: none;
	}
	.p-reasons[data-reasons-reveal] .p-reasons__list li::before {
		clip-path: none;
		animation: none;
	}
	.p-brand-message[data-brand-reveal] video,
	.p-brand-message[data-brand-reveal] h2,
	.p-brand-message[data-brand-reveal] .p-brand-message__copy {
		opacity: 1;
		transform: none;
		animation: none;
	}
}
