:root {
	--viewport-min: 375; /* SPのデザインカンプの横幅 */
	--viewport-breakpoint: 768; /* ブレイクポイントの横幅 */
	--viewport-max: 1140; /* PCのデザインカンプの横幅 */
	--horizontal-spacing-min: 15; /* SPのデザインカンプの水平余白 */
	--horizontal-spacing-max: 30; /* SPのデザインカンプの水平余白 */
	--fluid-ratio-min: calc(1 / var(--viewport-min) * 100dvi);
	--fluid-ratio-breakpoint: calc(1 / var(--viewport-breakpoint) * 100dvi);
	--fluid-ratio-max: calc(1 / var(--viewport-max) * 100dvi);
	--leading-trim: calc((1em - 1lh) / 2);
	--spacing-unit: 0.5rem;
	--spacing-xs: calc(var(--spacing-unit) / 2);
	--spacing-sm: var(--spacing-unit);
	--spacing-md: calc(var(--spacing-unit) * 2);
	--spacing-lg: calc(var(--spacing-unit) * 3);
	--spacing-xl: calc(var(--spacing-unit) * 5);
	--spacing-2xl: calc(var(--spacing-unit) * 8);
	--spacing-3xl: calc(var(--spacing-unit) * 13);
	--spacing-xs-trim: calc(var(--spacing-xs) + var(--leading-trim));
	--spacing-sm-trim: calc(var(--spacing-sm) + var(--leading-trim));
	--spacing-md-trim: calc(var(--spacing-md) + var(--leading-trim));
	--spacing-lg-trim: calc(var(--spacing-lg) + var(--leading-trim));
	--spacing-xl-trim: calc(var(--spacing-xl) + var(--leading-trim));
	--spacing-2xl-trim: calc(var(--spacing-2xl) + var(--leading-trim));
	--spacing-3xl-trim: calc(var(--spacing-3xl) + var(--leading-trim));
	--border-radius: 4px;
	--border-width: 1px;
	--z-background: -1;
	--z-default: 0;
	--z-foreground: 1;
	--z-footer: 90;
	--z-header: 100;
	--z-floating: 150;
	--z-navigation: 200;
	--z-modal: 1000;
	--z-popup: 1100;
	--z-tooltip: 1200;
	--z-notification: 9000;
	--z-loader: 9100;
	--z-dev-tools: 9999;
}

:lang(en) {
	--leading-trim: calc((1cap - 1lh) / 2);
}

:root {
	--_font-family-en: "Montserrat", "Helvetica Neue", "Arial";
	--_font-family-ja: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Meiryo";
	--_font-family-base: sans-serif;
	--font-family-en: var(--_font-family-en), var(--_font-family-base);
	--font-family-ja: var(--_font-family-ja), var(--_font-family-base);
	--font-family-base: var(--_font-family-en), var(--_font-family-ja), var(--_font-family-base);
	--font-size-base: 16;
	--rem-ratio: calc(1rem / var(--font-size-base));
	--em-ratio: calc(1em / var(--font-size-base));
	--line-height-base: 1.7;
}

:lang(en) {
	font-family: var(--font-family-en);
}

:root {
	--primary-500: #f5810e;
	--secondary-500: #fabe00;
	--gradation-500: linear-gradient(180deg, #f8b819 0%, #f0d320 100%);
	--box-shadow: 0px 9px 30px 0px #f4f4f4;
	--success-100: #e8f5e9;
	--success-500: #4caf50;
	--success-900: #1b5e20;
	--warning-100: #fff3e0;
	--warning-500: #ff9800;
	--warning-900: #e65100;
	--error-100: #ffebee;
	--error-500: #f44336;
	--error-900: #b71c1c;
	--info-100: #e1f5fe;
	--info-500: #03a9f4;
	--info-900: #01579b;
	--neutral-100: #fff;
	--neutral-200: #f5f5f5;
	--neutral-300: #e0e0e0;
	--neutral-400: #bdbdbd;
	--neutral-500: #9e9e9e;
	--neutral-600: #757575;
	--neutral-700: #616161;
	--neutral-800: #424242;
	--neutral-900: #212121;
	--color-text-base: #111;
	--color-text-base-alt: #fff;
	--color-background-base: #fafafa;
	--color-background-base-alt: #fff;
	--color-text-on-primary: var(--color-text-base);
	--color-text-on-primary-alt: var(--color-text-base-alt);
	--color-background-primary: var(--primary-500);
	--color-link-primary-hover: var(--primary-500);
	--color-text-on-secondary: var(--color-text-base);
	--color-text-on-secondary-alt: var(--color-text-base-alt);
	--color-background-secondary: var(--secondary-500);
	--color-link-secondary-hover: var(--secondary-500);
	--color-text-on-gradation: var(--color-text-base);
	--color-text-on-gradation-alt: var(--color-text-base-alt);
	--color-background-gradation: var(--gradation-500);
	--color-link-gradation-hover: var(--gradation-500);
	--color-text-on-button-base: var(--color-text-base-alt);
	--color-button-base: var(--color-text-base);
	--color-text-on-button-base-hover: var(--color-text-base);
	--color-button-base-hover: var(--color-background-base-alt);
	--color-text-on-button-primary: var(--color-text-base);
	--color-button-primary: var(--color-text-base-alt);
	--color-text-on-button-primary-hover: var(--color-text-base);
	--color-button-primary-hover: var(--secondary-500);
	--color-text-on-button-disabled: #858585;
	--color-button-disabled: #ededed;
	--color-border-disabled: #818181;
	--color-success: var(--success-500);
	--color-warning: var(--warning-500);
	--color-error: var(--error-500);
	--color-info: var(--info-500);
}

:root {
	--transition-duration: 1s;
	--transition-easing: var(--ease-out-expo);
	--ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715);
	--ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1);
	--ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95);
	--ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
	--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
	--ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
	--ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
	--ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
	--ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
	--ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
	--ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
	--ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
	--ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
	--ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
	--ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
	--ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
	--ease-in-out-expo: cubic-bezier(1, 0, 0, 1);
	--ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335);
	--ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1);
	--ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
	--ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045);
	--ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
	--ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

[data-scroll-animation] {
	display: block;
	inline-size: -moz-fit-content;
	inline-size: fit-content;
}

/* ======================================================
// ふわっと表示する
// ------------------------------------------------------ */

/* ======================================================
// ふわっと消失する
// ------------------------------------------------------ */

/* ======================================================
// 下からふわっと表示する
// ------------------------------------------------------ */

/* ======================================================
// 拡大しながらふわっと表示する
// ------------------------------------------------------ */

/* ======================================================
// 要素の表示
// ------------------------------------------------------ */

/* ======================================================
// 要素の消失
// ------------------------------------------------------ */

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

:where([hidden]:not([hidden=until-found])) {
	display: none !important;
}

:where(html) {
	-webkit-text-size-adjust: none;
	color-scheme: dark light;
	-moz-tab-size: 2;
	-o-tab-size: 2;
	scrollbar-gutter: stable;
	tab-size: 2;
}

:where(html:has(dialog:modal[open])) {
	overflow: clip;
}

:where(body) {
	font-family: system-ui, sans-serif;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

:where(button) {
	all: unset;
}

:where(input,
button,
textarea,
select) {
	color: inherit;
	font: inherit;
}

:where(textarea) {
	resize: vertical;
	resize: block;
}

:where(button,
label,
select,
summary,
[role=button],
[role=option]) {
	cursor: pointer;
}

:where(:disabled) {
	cursor: not-allowed;
}

:where(label:has(> input:disabled),
label:has(+ input:disabled)) {
	cursor: not-allowed;
}

:where(a) {
	color: inherit;
	text-underline-offset: 0.2ex;
}

:where(ul,
ol) {
	list-style: none;
}

:where(img,
svg,
video,
canvas,
audio,
iframe,
embed,
object) {
	display: block;
}

:where(img,
picture,
svg,
video) {
	block-size: auto;
	max-inline-size: 100%;
}

:where(p,
h1,
h2,
h3,
h4,
h5,
h6) {
	overflow-wrap: break-word;
}

:where(h1,
h2,
h3) {
	line-height: calc(1em + 0.5rem);
	text-wrap: balance;
}

:where(hr) {
	block-size: 0;
	border: none;
	border-block-start: 1px solid;
	color: inherit;
	overflow: visible;
}

:where(dialog) {
	background: none;
	border: none;
	inset: unset;
	max-height: unset;
	max-width: unset;
}

:where(dialog:not([open],
[popover])) {
	display: none !important;
}

:where([popover]) {
	background: none;
	border: none;
	color: inherit;
	inset: unset;
}

:where([popover]:not(:popover-open)) {
	display: none !important;
}

:where(:focus-visible) {
	box-shadow: 0 0 0 5px Canvas;
	outline: 3px solid CanvasText;
	outline-offset: 1px;
}

:where(:focus-visible,
:target) {
	scroll-margin-block: 8vh;
}

:where(.visually-hidden:not(:focus-within,
:active)) {
	border: 0 !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	overflow: hidden !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	user-select: none !important;
}

*,
*::before,
*::after {
	min-block-size: 0;
	min-inline-size: 0;
}

:where(body) {
	background: var(--color-background-base);
	color: var(--color-text-base);
	font-family: var(--font-family-base);
	line-height: var(--line-height-base);
	min-block-size: 100svb;
}

:where(button) {
	box-sizing: border-box;
}

:where(button,
[type=button],
[type=reset],
[type=submit]) {
	border: none;
	touch-action: manipulation;
}

:where(input,
button,
textarea,
select) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

:where(iframe) {
	block-size: auto;
	border: none;
	max-inline-size: 100%;
}

:where(img,
picture,
svg,
video) {
	filter: var(--img-brightness);
}

:where(p,
h1,
h2,
h3,
h4,
h5,
h6) {
	max-inline-size: 100%;
}

.l-header {
	padding-block: calc(22 * var(--rem-ratio));
}

.l-header__container {
	display: block grid;
	grid-auto-flow: column;
	grid-template-rows: auto;
	place-items: center end;
}

.l-header__logo {
	inline-size: 100px;
	place-self: center start;
}

.l-header__logo img {
	filter: var(--drop-shadow);
}

.l-header__menu-button {
	z-index: var(--z-navigation);
}

.l-footer {
	background: #111;
	inset-block-start: 100%;
	padding-block: calc(18 * var(--rem-ratio));
	position: sticky;
	z-index: var(--z-footer);
}

.l-footer__container {
	display: block grid;
	place-items: center;
}

.l-footer__copy {
	color: #f5f5f5;
	font-family: var(--font-family-ja);
	font-size: calc(12 * var(--rem-ratio));
	letter-spacing: calc(0.96 * var(--rem-ratio));
	line-height: 1;
}

.l-inner {
	box-sizing: initial;
	margin-inline: auto;
	max-inline-size: calc(var(--viewport-max) * 1px);
	padding-inline: calc(var(--horizontal-spacing-min) * 1px);
}

.c-heading {
	display: block grid;
	gap: calc(14 * var(--rem-ratio));
	place-content: center;
	place-items: center;
}

.c-heading__main {
	--_font-size: clamp(min(38, 50) * var(--rem-ratio), 38 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (50 - 38) / (var(--viewport-max) - var(--viewport-min)), max(38, 50) * var(--rem-ratio));
	font-size: var(--_font-size);
	letter-spacing: calc(3.8 * var(--rem-ratio));
	line-height: 1;
	margin-block-start: calc(1 * var(--rem-ratio));
	margin-inline-start: calc(3 * var(--rem-ratio));
}

.c-heading__sub {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	font-size: var(--_font-size);
	letter-spacing: calc(1.12 * var(--rem-ratio));
	line-height: 1;
	margin-block-start: calc(-1 * var(--rem-ratio));
	margin-inline-start: calc(1 * var(--rem-ratio));
}

.c-button {
	--_border-width: 2px;
	background: var(--color-button-base);
	border: var(--_border-width) solid;
	border-radius: calc(infinity * 1px);
	color: var(--color-text-on-button-base);
	display: inline grid;
	font-weight: 700;
	letter-spacing: calc(0.48 * var(--rem-ratio));
	line-height: 1.6875;
	min-inline-size: 150px;
	padding-block: calc(10 * var(--rem-ratio) - var(--_border-width));
	padding-inline: calc(30 * var(--rem-ratio) - var(--_border-width));
	place-items: center;
	text-decoration: none;
	transition: color var(--transition-duration) var(--transition-easing), background-color var(--transition-duration) var(--transition-easing);
}

.c-button:disabled,
.c-button[data-type=primary]:disabled {
	background: var(--color-button-disabled);
	border-color: var(--color-border-disabled);
	color: var(--color-text-on-button-disabled);
}

.c-button:focus-visible {
	background: var(--color-button-base-hover);
	color: var(--color-text-on-button-base-hover);
}

.c-button[data-type=primary] {
	background: var(--color-button-primary);
	color: var(--color-text-on-button-primary);
}

.c-button[data-type=primary]:focus-visible {
	background: var(--color-button-primary-hover);
	color: var(--color-text-on-button-primary-hover);
}

.c-hamburger-icon {
	--_gap: 6px;
	--_inline-size: 36px;
	--_block-size: 3px;
	--_translate: calc(var(--_gap) + var(--_block-size));
	--_rotate: 30deg;
	display: block grid;
	gap: var(--_gap);
	inline-size: var(--_inline-size);
	transition: color var(--transition-duration) var(--transition-easing), rotate var(--transition-duration) var(--transition-easing);
}

.c-hamburger-icon.is-open {
	color: var(--color-text-on-primary);
	rotate: x 720deg;
}

.c-hamburger-icon__bar {
	background: currentcolor;
	block-size: var(--_block-size);
	border-radius: calc(infinity * 1px);
	inline-size: 100%;
	transition: opacity var(--transition-duration) var(--transition-easing), rotate var(--transition-duration) var(--transition-easing), translate var(--transition-duration) var(--transition-easing);
}

.c-hamburger-icon.is-open .c-hamburger-icon__bar:nth-of-type(1) {
	rotate: calc(var(--_rotate) * -1);
	translate: 0 var(--_translate);
}

.c-hamburger-icon.is-open .c-hamburger-icon__bar:nth-of-type(2) {
	rotate: var(--_rotate);
}

.c-hamburger-icon.is-open .c-hamburger-icon__bar:nth-of-type(3) {
	opacity: 0;
}

.c-label {
	border-radius: 2px;
	color: var(--color-text-base-alt);
	font-size: calc(11 * var(--rem-ratio));
	font-weight: 700;
	min-inline-size: 63px;
	padding-block: calc(2 * var(--rem-ratio));
	padding-inline: calc(10 * var(--rem-ratio));
	text-align: center;
}

.c-label.-notice {
	background: #e4780c;
}

.c-label.-column {
	background: #ecb815;
}

.c-label.-event {
	background: #389b47;
}

:where(table) {
	border-collapse: collapse;
	table-layout: fixed;
	white-space: nowrap;
}

.c-table {
	background: #fff;
	margin-inline: auto;
}

.c-table caption {
	--_font-size: clamp(min(20, 24) * var(--rem-ratio), 20 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (24 - 20) / (var(--viewport-max) - var(--viewport-min)), max(20, 24) * var(--rem-ratio));
	font-size: var(--_font-size);
	font-weight: 700;
	inline-size: -moz-fit-content;
	inline-size: fit-content;
	line-height: 1;
	margin-inline: auto;
}

.c-table tr {
	block-size: calc(58.5 * var(--rem-ratio));
}

.c-table td {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	font-size: var(--_font-size);
	font-weight: 700;
	letter-spacing: calc(0.42 * var(--rem-ratio));
	text-align: center;
}

.c-table thead th {
	--_font-size: clamp(min(16, 20) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (20 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 20) * var(--rem-ratio));
	font-size: var(--_font-size);
	letter-spacing: calc(1.6 * var(--rem-ratio));
}

.c-table tbody > tr {
	block-size: calc(59 * var(--rem-ratio));
	border-block-start: 2px solid #000;
}

.c-table tbody th {
	--_font-size: clamp(min(16, 20) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (20 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 20) * var(--rem-ratio));
	font-size: var(--_font-size);
	letter-spacing: calc(0.48 * var(--rem-ratio));
}

::-moz-placeholder {
	color: #adadad;
}

::placeholder {
	color: #adadad;
}

:where([type=text i],
[type=email i],
[type=tel i],
[type=url i],
[type=search i],
[type=password i]) {
	--_min-inline-size: 15em;
	--_padding-block: calc((15 - var(--_border-width)) * var(--rem-ratio))
    calc((14 - var(--_border-width)) * var(--rem-ratio));
	--_padding-inline: calc((16 - var(--_border-width)) * var(--em-ratio));
	--_border-width: 3;
	font-family: var(--font-family-ja);
	line-height: 1.6875;
	min-inline-size: calc(var(--_min-inline-size) + var(--_padding-inline) * 2);
	padding-block: var(--_padding-block);
	padding-inline: var(--_padding-inline);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: var(--color-background-base-alt);
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 5px;
	field-sizing: content;
	transition: border-color var(--transition-duration) var(--transition-easing);
}

:where([type=text i],
[type=email i],
[type=tel i],
[type=url i],
[type=search i],
[type=password i]):focus-visible {
	border-color: var(--color-link-secondary-hover);
}

:where([type=radio i]) {
	--_border-width: 3;
	aspect-ratio: 1;
	display: inline grid;
	inline-size: calc(24 * var(--rem-ratio));
	place-items: center;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 50%;
	transition: border-color var(--transition-duration) var(--transition-easing);
}

:where([type=radio i]):focus-visible {
	border-color: var(--color-link-secondary-hover);
}

:where([type=radio i]):checked::before {
	aspect-ratio: 1;
	background: var(--color-background-primary);
	border-radius: 50%;
	content: "";
	inline-size: calc(10 * var(--rem-ratio));
}

:where(select) {
	--_min-inline-size: 15em;
	--_padding-block: calc((15 - var(--_border-width)) * var(--rem-ratio))
    calc((14 - var(--_border-width)) * var(--rem-ratio));
	--_padding-inline: calc((16 - var(--_border-width)) * var(--em-ratio));
	--_border-width: 3;
	font-family: var(--font-family-ja);
	font-weight: 700;
	line-height: 1.6875;
	min-inline-size: calc(var(--_min-inline-size) + var(--_padding-inline) * 2);
	padding-block: var(--_padding-block);
	padding-inline: var(--_padding-inline);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: url("../img/arrow-icon.svg") no-repeat center right 16px/9.451px 6.969px;
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 5px;
	transition: border-color var(--transition-duration) var(--transition-easing);
}

:where(select):focus-visible {
	border-color: var(--color-link-secondary-hover);
}

:where([type=checkbox i]) {
	aspect-ratio: 1;
	border: 1px solid #111;
	border-radius: 1px;
	display: inline grid;
	inline-size: 20px;
	place-items: center;
	transition: border-color var(--transition-duration) var(--transition-easing);
}

:where([type=checkbox i]):focus-visible {
	border-color: var(--color-link-secondary-hover);
}

:where([type=checkbox i]):checked::before {
	background: url("../img/check-icon.svg") no-repeat center center/contain;
	block-size: 17.53px;
	content: "";
	inline-size: 23px;
	margin-block-start: -2px;
	margin-inline-start: -2px;
}

:where(textarea) {
	--_min-rows: 5;
	--_max-rows: 20;
	--_block-size: calc(180 * var(--em-ratio));
	--_padding-block: calc(16 * var(--em-ratio));
	--_padding-inline: calc((16 - var(--_border-width)) * var(--em-ratio));
	--_border-width: 3;
	block-size: var(--_block-size, revert);
	inline-size: 100%;
	max-block-size: calc(var(--_max-rows) * 1lh + var(--_padding) * 2);
	min-block-size: calc(var(--_min-rows) * 1lh + var(--_padding) * 2);
	padding-block: var(--_padding-block);
	padding-inline: var(--_padding-inline);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: var(--color-background-base-alt);
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 5px;
	resize: block;
	field-sizing: content;
	transition: border-color var(--transition-duration) var(--transition-easing);
}

:where(textarea):focus-visible {
	border-color: var(--color-link-secondary-hover);
}

:where(summary) {
	display: block flow;
}

:where(summary)::-webkit-details-marker {
	display: none;
}

.c-accordion {
	--_border-width: 3;
	background: #fff;
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 10px;
	position: relative;
}

.c-accordion__summary {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	align-items: center;
	display: block grid;
	font-family: var(--font-family-ja);
	font-size: var(--_font-size);
	font-weight: 700;
	gap: calc(14 * var(--rem-ratio));
	grid-template: ". icon"/1fr auto;
	letter-spacing: calc(1.12 * var(--rem-ratio));
	padding-block: calc((32 - var(--_border-width)) * var(--rem-ratio)) calc((20 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc((15 - var(--_border-width)) * var(--rem-ratio)) calc((17 - var(--_border-width)) * var(--rem-ratio));
}

.c-accordion__summary::before {
	aspect-ratio: 1;
	background: var(--color-background-primary);
	border: 3px solid;
	border-radius: 50%;
	color: var(--color-text-on-primary);
	content: "Q";
	display: block grid;
	font-family: var(--font-family-en);
	font-size: calc(22 * var(--rem-ratio));
	font-weight: 700;
	inline-size: calc(44 * var(--rem-ratio));
	inset-block-start: calc((-22 - var(--_border-width)) * var(--rem-ratio));
	line-height: 1;
	place-items: center;
	position: absolute;
}

.c-accordion__summary::after {
	aspect-ratio: 1.3557833089;
	background: url("../img/arrow-icon.svg") no-repeat center center/cover;
	content: "";
	grid-area: icon;
	inline-size: calc(9.26 * var(--rem-ratio));
}

.c-accordion__summary:where([open] > *)::after {
	rotate: 180deg;
}

.c-accordion__panel {
	contain: content;
}

.c-accordion__panel-content {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	display: block grid;
	font-family: var(--font-family-ja);
	font-size: var(--_font-size);
	font-weight: 700;
	gap: calc(8 * var(--rem-ratio));
	grid-template-columns: auto 1fr;
	letter-spacing: calc(1.12 * var(--rem-ratio));
	padding-block: calc(24 * var(--rem-ratio)) calc((20 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc((15 - var(--_border-width)) * var(--rem-ratio)) calc((22 - var(--_border-width)) * var(--rem-ratio));
}

.c-accordion__panel-content::before {
	aspect-ratio: 1;
	background: var(--color-background-secondary);
	border: 3px solid;
	border-radius: 50%;
	color: var(--color-text-on-secondary);
	content: "A";
	display: block grid;
	font-family: var(--font-family-en);
	font-size: calc(22 * var(--rem-ratio));
	font-weight: 700;
	inline-size: calc(44 * var(--rem-ratio));
	line-height: 1;
	margin-block-start: calc(-11 * var(--rem-ratio));
	place-items: center;
}

.c-arrow {
	--_vertex-angle: 80;
	--_side-length: 16;
	--_border-width: 6;
	--_color: #fff;
	display: inline flow-root;
	inline-size: calc((var(--_side-length) * sin((90 - var(--_vertex-angle) / 2) * 1deg) + var(--_border-width) * var(--_vertex-angle) / 180) * 1px);
	position: relative;
}

.c-arrow::before,
.c-arrow::after {
	background: var(--_color);
	block-size: calc(var(--_border-width) * 1px);
	border-radius: calc(infinity * 1px);
	content: "";
	inline-size: calc(var(--_side-length) * 1px);
	inset-block-start: calc(50% - var(--_border-width) / 2 * 1px);
	inset-inline-start: 0;
	position: absolute;
	transform-origin: calc(var(--_border-width) / 2 * 1px) 50%;
}

.c-arrow::before {
	transform: rotate(calc(var(--_vertex-angle) / 2 * 1deg));
}

.c-arrow::after {
	transform: rotate(calc(-1 * var(--_vertex-angle) / 2 * 1deg));
}

.c-tag {
	border-radius: 2px;
	color: var(--color-text-base-alt);
	display: inline grid;
	font-size: calc(11 * var(--rem-ratio));
	font-weight: 700;
	letter-spacing: calc(1.98 * var(--rem-ratio));
	line-height: 1;
	min-inline-size: 42px;
	padding-block: calc(5 * var(--rem-ratio));
	padding-inline: calc(8 * var(--rem-ratio));
	place-items: center;
	text-wrap: nowrap;
}

.c-tag.-required {
	background: #ee8013;
}

.c-tag.-optional {
	background: #43b549;
}

.c-close-icon {
	background: #f7c346;
	border-radius: 50%;
	display: inline grid;
	height: 37px;
	place-items: center;
	position: relative;
	transition: opacity var(--transition-duration) var(--transition-easing);
	width: 37px;
}

.c-close-icon:focus-visible {
	opacity: 0.7;
}

.c-close-icon::before,
.c-close-icon::after {
	background: #fff;
	block-size: 4px;
	border-radius: calc(infinity * 1px);
	content: "";
	inline-size: 20px;
	position: absolute;
}

.c-close-icon::before {
	rotate: -45deg;
}

.c-close-icon::after {
	rotate: 45deg;
}

.p-navigation {
	--_inline-size: 320px;
	background: var(--color-background-primary);
	block-size: 100dvb;
	color: var(--color-text-on-primary);
	inline-size: var(--_inline-size);
	inset-block-start: 0;
	inset-inline-end: calc(var(--_inline-size) * -1);
	overflow-y: auto;
	overscroll-behavior-block: contain;
	padding-block-start: calc(100 * var(--rem-ratio));
	padding-inline-end: calc(40 * var(--rem-ratio));
	position: fixed;
	transition: inset-inline-end var(--transition-duration) var(--transition-easing);
	z-index: var(--z-navigation);
}

.p-navigation.is-open {
	inset-inline-end: 0;
}

.p-navigation__list {
	display: block grid;
	gap: calc(28 * var(--rem-ratio));
	place-items: center end;
}

.p-navigation__link {
	font-weight: 700;
	letter-spacing: calc(0.48 * var(--rem-ratio));
	text-decoration: none;
	transition: color var(--transition-duration) var(--transition-easing);
}

.p-navigation__link:focus-visible {
	color: var(--color-text-on-primary-alt);
}

.p-mainvisual__container {
	display: block grid;
	grid-template: "lead" auto "description" auto "download-button" auto "image" auto/auto;
	padding-block-start: calc(50 * var(--rem-ratio));
	place-content: start center;
	place-items: center;
	position: relative;
}

.p-mainvisual__container::before {
	background-image: var(--gradation-500);
	block-size: calc(600 * var(--rem-ratio));
	border-radius: 20px;
	content: "";
	inset-block-start: 0;
	inset-inline: 0;
	margin-inline: calc(50% - 50dvi + var(--horizontal-spacing-min) * 1px);
	position: absolute;
	z-index: var(--z-background);
}

.p-mainvisual__lead {
	--_font-size: clamp(min(22, 38) * var(--rem-ratio), 22 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (38 - 22) / (var(--viewport-max) - var(--viewport-min)), max(22, 38) * var(--rem-ratio));
	display: block grid;
	font-feature-settings: "palt" on;
	font-size: var(--_font-size);
	font-weight: 700;
	gap: calc(8 * var(--rem-ratio));
	grid-area: lead;
	letter-spacing: calc(2.2 * var(--rem-ratio));
	line-height: 1;
	place-items: center;
}

.p-mainvisual__lead-text {
	background: var(--color-background-base-alt);
	border-radius: 5px;
	padding-block: calc(12 * var(--rem-ratio)) calc(8 * var(--rem-ratio));
	padding-inline: calc(10 * var(--rem-ratio)) calc(7.8 * var(--rem-ratio));
}

.p-mainvisual__description {
	--_font-size: clamp(min(16, 18) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (18 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 18) * var(--rem-ratio));
	color: var(--color-text-on-gradation);
	font-family: var(--font-family-ja);
	font-size: var(--_font-size);
	font-weight: 700;
	grid-area: description;
	letter-spacing: calc(0.48 * var(--rem-ratio));
	margin-block-start: calc(26 * var(--rem-ratio));
	text-align: center;
}

.p-mainvisual__download-button {
	grid-area: download-button;
	margin-block-start: calc(21 * var(--rem-ratio));
}

.p-mainvisual__image {
	grid-area: image;
	inline-size: min(375px, 100%);
	margin-block-start: calc(31 * var(--rem-ratio));
	z-index: var(--z-background);
}

.p-case {
	margin-block-start: 2px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-case__container {
	display: block grid;
	gap: calc(28 * var(--rem-ratio));
	margin-inline: calc((40 - var(--horizontal-spacing-min)) * 1px);
	place-items: center;
}

.p-case__heading {
	--_font-size: clamp(min(18, 20) * var(--rem-ratio), 18 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (20 - 18) / (var(--viewport-max) - var(--viewport-min)), max(18, 20) * var(--rem-ratio));
	font-size: var(--_font-size);
	font-weight: 700;
	letter-spacing: calc(1.8 * var(--rem-ratio));
	line-height: 1;
}

.p-case__items {
	display: grid;
	gap: calc(22 * var(--rem-ratio)) calc(15 * var(--rem-ratio));
	grid-template-columns: repeat(2, 1fr);
}

.p-news {
	margin-block-start: 1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-news__container {
	background: var(--color-background-base-alt);
	border-radius: 20px;
	box-shadow: var(--box-shadow);
	display: block grid;
	padding-block: calc(40 * var(--rem-ratio)) calc(48 * var(--rem-ratio));
	padding-inline: calc(12 * var(--rem-ratio));
	place-items: center;
}

.p-news__card {
	display: block grid;
	place-items: center;
}

.p-news__heading {
	--_font-size: clamp(min(38, 50) * var(--rem-ratio), 38 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (50 - 38) / (var(--viewport-max) - var(--viewport-min)), max(38, 50) * var(--rem-ratio));
	font-size: var(--_font-size);
	letter-spacing: calc(3.8 * var(--rem-ratio));
	line-height: 1;
}

.p-news__list {
	margin-block-start: calc(27 * var(--rem-ratio));
}

.p-news__link {
	font-weight: 700;
	line-height: 1;
	margin-block-start: calc(24 * var(--rem-ratio));
	place-self: center right;
	text-decoration-thickness: 2px;
	text-underline-offset: 9px;
	transition: color var(--transition-duration) var(--transition-easing);
}

.p-news__link:focus-visible {
	color: var(--color-link-secondary-hover);
}

.p-news-item {
	display: block grid;
	gap: calc(9 * var(--rem-ratio)) calc(12 * var(--rem-ratio));
	grid-template: "date labels" auto "title title" auto/auto 1fr;
	padding-block: calc(9 * var(--rem-ratio));
	place-content: start;
	place-items: center start;
	text-decoration: none;
	transition: background-color var(--transition-duration) var(--transition-easing);
}

.p-news-item:not(:first-child) {
	border-top: 1px solid #e3e3e3;
}

.p-news-item:focus-visible {
	background: #fff9e5;
}

.p-news-item__title {
	font-size: calc(16 * var(--rem-ratio));
	font-weight: 400;
	grid-area: title;
	line-height: 1.7;
	text-wrap: wrap;
}

.p-news-item__date {
	color: #333;
	font-family: var(--font-family-ja);
	grid-area: date;
}

.p-news-item__labels {
	grid-area: labels;
}

.p-about {
	overflow: clip;
	padding-block: calc(60 * var(--rem-ratio)) calc(164 * var(--rem-ratio));
}

.p-about__container {
	display: block grid;
	gap: 150px;
	place-items: center;
}

.p-about__logo {
	inline-size: 180px;
}

.p-about__content {
	display: block grid;
	place-items: center;
	position: relative;
}

.p-about__content::before {
	aspect-ratio: 1;
	background: var(--gradation-500);
	border-radius: 50%;
	content: "";
	inline-size: 1100px;
	inset-block-start: 0;
	position: absolute;
	z-index: var(--z-background);
}

.p-about__img {
	inline-size: 321px;
	inset-block-start: -110px;
	position: absolute;
}

.p-about__text {
	font-family: var(--font-family-ja);
	font-weight: 700;
	line-height: 2.31;
	margin-block-start: 288px;
	text-align: center;
}

.p-about__pop {
	font-weight: 700;
	letter-spacing: calc(1.28 * var(--rem-ratio));
	line-height: 1;
	margin-block-start: calc(43 * var(--rem-ratio));
}

.p-about__button {
	margin-block-start: calc(10 * var(--rem-ratio));
}

.p-movie {
	background-image: -webkit-image-set(url("../img/section-bg.png") 1x, url("../img/section-bg@2x.png") 2x);
	background-image: image-set(url("../img/section-bg.png") 1x, url("../img/section-bg@2x.png") 2x);
	margin-block-start: 1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-movie__container {
	display: block grid;
	gap: calc(32 * var(--rem-ratio));
	place-items: center;
}

.p-movie__iframe iframe {
	aspect-ratio: 1.7777777778;
	inline-size: 640px;
}

.p-step-item {
	--_border-width: 3;
	background: #fff;
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 30px;
	display: block grid;
	gap: calc(11 * var(--rem-ratio));
	padding-block: calc((50 - var(--_border-width)) * var(--rem-ratio)) calc((25 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc(10 * var(--rem-ratio));
	place-items: center;
	position: relative;
}

.p-step-item__head {
	aspect-ratio: 1;
	border: 3px solid;
	border-radius: 50%;
	display: block grid;
	gap: 3px;
	inline-size: calc(90 * var(--rem-ratio));
	inset-block-start: calc((-45 - var(--_border-width)) * var(--rem-ratio));
	margin-inline-start: -1px;
	place-content: center;
	place-items: center;
	position: absolute;
}

[data-type=primary] .p-step-item__head {
	background: var(--color-background-primary);
	color: var(--color-text-on-primary);
}

[data-type=secondary] .p-step-item__head {
	background: var(--color-background-secondary);
	color: var(--color-text-on-secondary);
}

.p-step-item__head-text {
	font-size: calc(13 * var(--rem-ratio));
	font-weight: 700;
	letter-spacing: calc(1.3 * var(--rem-ratio));
	line-height: 1;
	margin-inline-start: -1px;
}

.p-step-item__head-number {
	color: var(--color-text-on-primary-alt);
	font-size: calc(34 * var(--rem-ratio));
	font-weight: 700;
	letter-spacing: calc(3.4 * var(--rem-ratio));
	line-height: 1;
	margin-inline-start: 2px;
}

.p-step-item__img {
	aspect-ratio: 1;
	inline-size: 160px;
	margin-inline-start: -1px;
}

.p-step-item__text {
	font-weight: 700;
	letter-spacing: calc(0.48 * var(--rem-ratio));
	text-align: center;
}

.p-how-to-use {
	background: var(--color-background-base-alt);
	padding-block: calc(60 * var(--rem-ratio));
}

.p-how-to-use__boxes {
	display: block grid;
	gap: calc(38 * var(--rem-ratio));
	margin-block-start: calc(32 * var(--rem-ratio));
}

.p-how-to-use__box {
	background: #fffbf0;
	border-radius: 30px;
	margin-block-start: 72px;
	padding-block: 181px 48px;
	padding-inline: 5px;
	position: relative;
}

.p-how-to-use__title {
	display: block grid;
	gap: 18px;
	grid-template-areas: "image" "text";
	inset-block-start: -72px;
	inset-inline: 0;
	place-items: center;
	position: absolute;
}

.p-how-to-use__title-text {
	--_font-size: clamp(min(18, 22) * var(--rem-ratio), 18 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (22 - 18) / (var(--viewport-max) - var(--viewport-min)), max(18, 22) * var(--rem-ratio));
	font-size: var(--_font-size);
	font-weight: 700;
	grid-area: text;
	letter-spacing: calc(1.8 * var(--rem-ratio));
	text-align: center;
}

.p-how-to-use__title-img {
	grid-area: image;
}

.p-how-to-use__items {
	display: block grid;
	gap: calc(65 * var(--rem-ratio));
	margin-inline: auto;
	max-inline-size: 948px;
	place-content: center;
}

.p-how-to-use__item {
	inline-size: 265px;
}

.p-media {
	background: var(--color-background-base-alt);
	border-radius: 20px;
	padding-inline: calc(20 * var(--rem-ratio));
}

.p-media__content {
	display: block grid;
	gap: calc(18 * var(--rem-ratio));
	grid-template-areas: "image" "body";
	padding-block: calc(10 * var(--rem-ratio)) calc(24 * var(--rem-ratio));
	place-content: center;
	place-items: center;
}

.p-media__body {
	display: block grid;
	gap: calc(10 * var(--rem-ratio));
	grid-area: body;
	grid-template-areas: "head" "text";
}

.p-media__heading {
	display: block grid;
	gap: calc(14 * var(--rem-ratio));
	grid-area: head;
	grid-template-areas: "number title";
	place-content: start;
	place-items: center;
}

.p-media__heading-title {
	--_font-size: clamp(min(16, 20) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (20 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 20) * var(--rem-ratio));
	font-size: var(--_font-size);
	grid-area: title;
	letter-spacing: calc(1.6 * var(--rem-ratio));
	line-height: 1.7;
}

.p-media__heading-number {
	--_font-size: clamp(min(70, 110) * var(--rem-ratio), 70 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (110 - 70) / (var(--viewport-max) - var(--viewport-min)), max(70, 110) * var(--rem-ratio));
	color: var(--secondary-500);
	font-size: var(--_font-size);
	font-weight: 600;
	grid-area: number;
	line-height: 1;
}

.p-media__text {
	--_font-size: clamp(min(14, 15) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (15 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 15) * var(--rem-ratio));
	font-family: var(--font-family-ja);
	font-size: var(--_font-size);
	grid-area: text;
	line-height: 2;
}

.p-media__img {
	grid-area: image;
	max-inline-size: 200px;
}

.p-merit {
	margin-block: -1px -1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-merit__container {
	display: block grid;
	gap: calc(30 * var(--rem-ratio));
}

.p-merit__boxes {
	display: block grid;
	gap: calc(30 * var(--rem-ratio));
}

.p-cta {
	background: var(--color-background-gradation);
	padding-block: calc(50 * var(--rem-ratio));
}

.p-cta__container {
	display: block grid;
	gap: calc(16 * var(--rem-ratio));
	place-items: center;
}

.p-cta__text {
	--_font-size: clamp(min(16, 18) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (18 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 18) * var(--rem-ratio));
	font-size: var(--_font-size);
	font-weight: 700;
	letter-spacing: calc(0.48 * var(--rem-ratio));
	line-height: 2;
	margin-block-start: 2px;
	text-align: center;
}

.p-cta__button {
	margin-block-start: -2px;
	margin-inline-start: -1px;
}

.p-service {
	background: var(--color-background-base-alt);
	margin-block-start: 1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-service__container {
	position: relative;
}

.p-service__table-container {
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding-block: calc(63 * var(--rem-ratio)) calc(29 * var(--rem-ratio));
}

.p-service__table-container::-webkit-scrollbar {
	block-size: 6px;
}

.p-service__table-container::-webkit-scrollbar-track {
	background: #d9d9d9;
	border-radius: calc(infinity * 1px);
}

.p-service__table-container::-webkit-scrollbar-thumb {
	background: #fabe00;
	border-radius: calc(infinity * 1px);
}

.p-service__table {
	font-family: var(--font-family-ja);
	inline-size: calc(620 * var(--rem-ratio));
}

.p-service__table col:nth-child(2) {
	background: #fff9e5;
}

.p-service__table caption {
	inset-block-start: 0;
	inset-inline: 0;
	position: absolute;
}

.p-service__table tr > :first-child {
	inline-size: calc(130 * var(--rem-ratio));
}

.p-service__table tr > :nth-child(2) {
	--_font-size: clamp(min(16, 25) * var(--rem-ratio), 16 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (25 - 16) / (var(--viewport-max) - var(--viewport-min)), max(16, 25) * var(--rem-ratio));
	font-size: var(--_font-size);
	inline-size: calc(90 * var(--rem-ratio));
	letter-spacing: calc(0.48 * var(--rem-ratio));
}

.p-service__table .-logo {
	inline-size: calc(70 * var(--rem-ratio));
	margin-inline: auto;
}

.p-service__attention {
	color: #686868;
	font-size: calc(14 * var(--rem-ratio));
	font-weight: 700;
	line-height: 1;
	margin-block-start: calc(12 * var(--rem-ratio));
	text-align: center;
}

.p-qa {
	margin-block-start: -1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-qa__inner {
	max-inline-size: 800px;
}

.p-qa__content {
	display: block grid;
	gap: calc(42 * var(--rem-ratio));
	margin-block-start: calc(52 * var(--rem-ratio));
}

.p-gallery {
	padding-block: calc(60 * var(--rem-ratio));
}

.p-gallery__inner {
	max-inline-size: 640px;
}

.p-gallery__slider {
	margin-block-start: calc(30 * var(--rem-ratio));
}

.p-gallery__slider .swiper {
	margin-inline: -5px;
	padding-inline: 5px;
}

.p-gallery__slider .swiper-wrapper {
	margin-block-end: 28px;
	transition-timing-function: var(--transition-easing);
}

.p-gallery__slider .swiper-pagination {
	--swiper-pagination-color: var(--color-link-secondary-hover);
	--swiper-pagination-bottom: 0;
	--swiper-pagination-bullet-size: 10px;
	--swiper-pagination-bullet-horizontal-gap: 6px;
	margin-block: var(--leading-trim);
}

.p-gallery__slider .swiper-button-prev,
.p-gallery__slider .swiper-button-next {
	--swiper-navigation-size: 40px;
	--swiper-navigation-top-offset: calc(50% - 19px);
	--swiper-navigation-sides-offset: 0px;
	background: var(--color-background-secondary);
	border-radius: 50%;
	inline-size: var(--swiper-navigation-size);
}

.p-gallery__slider .swiper-button-prev::before,
.p-gallery__slider .swiper-button-prev::after,
.p-gallery__slider .swiper-button-next::before,
.p-gallery__slider .swiper-button-next::after {
	content: "";
}

.p-gallery__slider .swiper-button-next {
	rotate: 180deg;
}

.p-gallery-card {
	--_border-width: 3;
	background: #fff;
	border: calc(var(--_border-width) * 1px) solid;
	border-radius: 20px;
	box-shadow: var(--box-shadow);
	display: block grid;
	gap: calc(11 * var(--rem-ratio));
	padding-block: calc((15 - var(--_border-width)) * var(--rem-ratio)) calc((12 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc((15 - var(--_border-width)) * var(--rem-ratio));
	place-items: center;
}

.p-gallery-card__img img {
	border-radius: 10px;
}

.p-gallery-card__text {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	font-size: var(--_font-size);
}

.p-contact {
	background-image: -webkit-image-set(url("../img/section-bg.png") 1x, url("../img/section-bg@2x.png") 2x);
	background-image: image-set(url("../img/section-bg.png") 1x, url("../img/section-bg@2x.png") 2x);
	margin-block: calc(-2 * var(--rem-ratio)) -1px;
	padding-block: calc(60 * var(--rem-ratio));
}

.p-contact__container {
	background: var(--color-background-base-alt);
	border-radius: 30px;
	padding-block: calc(60 * var(--rem-ratio));
	padding-inline: calc(20 * var(--rem-ratio));
}

.p-contact__form {
	padding-block-start: calc(30 * var(--rem-ratio));
}

.p-form {
	margin-block-start: -1px;
}

.p-form__fields {
	display: block grid;
	gap: calc(29 * var(--rem-ratio));
}

.p-form__field {
	display: block grid;
	gap: calc(14 * var(--rem-ratio));
	grid-template-columns: 1fr;
	place-content: center start;
}

.p-form__label {
	display: block grid;
	font-weight: 700;
	gap: calc(10 * var(--rem-ratio));
	grid-template-columns: auto 1fr;
	line-height: 1.4375;
	margin-block-start: 1px;
	place-items: center start;
}

.p-form__label-text {
	margin-block-start: 1px;
}

.p-form__radios {
	display: block grid;
	gap: calc(16 * var(--rem-ratio));
}

.p-form__radio {
	display: block grid;
	font-weight: 700;
	gap: calc(4 * var(--rem-ratio));
	grid-template-columns: auto 1fr;
	line-height: 1.4375;
}

.p-form__privacy-field {
	display: block grid;
	margin-block-start: 1px;
	place-content: center;
}

.p-form__checkbox {
	display: block grid;
	gap: calc(8 * var(--rem-ratio));
	grid-template-columns: auto 1fr;
	place-items: center start;
}

.p-form__checkbox-text {
	font-size: calc(14 * var(--rem-ratio));
	font-weight: 700;
	line-height: 1.7142857143;
}

.p-form__link {
	transition: color var(--transition-duration) var(--transition-easing);
}

.p-form__link:focus-visible {
	color: var(--color-link-primary-hover);
}

.p-form__actions {
	display: block grid;
	margin-block-start: 1px;
	place-content: center;
}

.p-pagetop {
	--_inline-size: clamp(min(50, 76) * var(--rem-ratio), 50 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (76 - 50) / (var(--viewport-max) - var(--viewport-min)), max(50, 76) * var(--rem-ratio));
	inline-size: var(--_inline-size);
	inset-block-end: 10px;
	inset-inline-end: 10px;
	position: fixed;
	z-index: var(--z-floating);
}

.p-about-modal {
	background: #fff;
	border-radius: 20px;
	inset: 0;
	margin: auto;
	max-block-size: calc(100dvb - 40px);
	max-inline-size: min(100dvi - 30px, var(--viewport-max) * 1px);
	transition: opacity var(--transition-duration) var(--transition-easing), scale var(--transition-duration) var(--transition-easing);
	z-index: var(--z-modal);
}

.p-about-modal:not([data-active=true]) {
	opacity: 0;
	scale: 0.95;
}

.p-about-modal::backdrop {
	background: #000;
	opacity: 0.2;
	transition: opacity var(--transition-duration) var(--transition-easing);
}

.p-about-modal:not([data-active=true])::backdrop {
	opacity: 0;
}

.p-about-modal__container {
	overflow-y: auto;
	overscroll-behavior-block: contain;
	padding-block: 16px 65px;
	padding-inline: 15px;
}

.p-about-modal__head {
	inset-block-start: 0;
	position: sticky;
	text-align: right;
}

.p-about-modal__body {
	display: block grid;
	gap: 20px;
	margin-block-start: 12px;
}

.p-about-modal__text {
	--_font-size: clamp(min(14, 16) * var(--rem-ratio), 14 * var(--rem-ratio) + (100dvi - var(--viewport-min) * 1px) * (16 - 14) / (var(--viewport-max) - var(--viewport-min)), max(14, 16) * var(--rem-ratio));
	color: var(--color-text-base);
	font-size: var(--_font-size);
}

.p-about-modal__foot {
	margin-block-start: 30px;
	text-align: center;
}

.u-separate {
	border: 1px solid;
	margin-block: var(--spacing-lg);
}

.u-hidden {
	display: none;
}

@media (prefers-reduced-motion: no-preference) and (scripting: enabled) {

[data-scroll-animation] {
	transition-duration: var(--_duration);
	transition-property: var(--_property), var(--_visibility);
	transition-timing-function: var(--_easing);
}

[data-scroll-animation*=fade-in] {
	--_property: opacity;
	--_easing: ease;
	--_duration: var(--transition-duration);
}

[data-scroll-animation*=fade-in]:not([data-animated=true]) {
	opacity: 0;
}

[data-scroll-animation*=fade-out] {
	--_property: opacity;
	--_easing: ease;
	--_duration: var(--transition-duration);
}

[data-scroll-animation*=fade-out][data-animated=true] {
	opacity: 0;
}

[data-scroll-animation*=fade-in-up] {
	--_property: opacity, translate;
	--_easing: ease-in-out;
	--_duration: var(--transition-duration);
	--_starting-position: 40px;
}

[data-scroll-animation*=fade-in-up]:not([data-animated=true]) {
	opacity: 0;
	translate: 0 var(--_starting-position);
}

[data-scroll-animation*=scale-in] {
	--_property: opacity, scale;
	--_easing: var(--ease-out-expo);
	--_duration: var(--transition-duration);
	--_starting-scale: 0.9;
}

[data-scroll-animation*=scale-in]:not([data-animated=true]) {
	opacity: 0;
	scale: var(--_starting-scale);
}

[data-scroll-animation*=in][data-scroll-animation*=visibility] {
	--_visibility: visibility;
}

[data-scroll-animation*=in][data-scroll-animation*=visibility]:not([data-animated=true]) {
	visibility: hidden;
}

[data-scroll-animation*=out][data-scroll-animation*=visibility] {
	--_visibility: visibility;
}

[data-scroll-animation*=out][data-scroll-animation*=visibility][data-animated=true] {
	visibility: hidden;
}

}

@media (prefers-reduced-motion: no-preference) {

:where(html:focus-within) {
	scroll-behavior: smooth;
}

:where(html:focus-within) {
	scroll-behavior: auto;
}

}

@media (prefers-reduced-motion: reduce) {

*,
::before,
::after,
::backdrop {
	animation-delay: 0s !important;
	animation-duration: 1ms !important;
	animation-iteration-count: 1 !important;
	background-attachment: scroll !important;
	scroll-behavior: auto !important;
	transition-delay: 0s !important;
	transition-duration: 1ms !important;
}

}

@media (any-hover: hover) {

.c-button:hover:not(:disabled) {
	background: var(--color-button-base-hover);
	color: var(--color-text-on-button-base-hover);
}

.c-button[data-type=primary]:hover:not(:disabled) {
	background: var(--color-button-primary-hover);
	color: var(--color-text-on-button-primary-hover);
}

:where([type=text i],
[type=email i],
[type=tel i],
[type=url i],
[type=search i],
[type=password i]):hover:not(:disabled) {
	border-color: var(--color-link-secondary-hover);
}

:where([type=radio i]):hover:not(:disabled) {
	border-color: var(--color-link-secondary-hover);
}

:where(select):hover:not(:disabled) {
	border-color: var(--color-link-secondary-hover);
}

:where([type=checkbox i]):hover:not(:disabled) {
	border-color: var(--color-link-secondary-hover);
}

:where(textarea):hover:not(:disabled) {
	border-color: var(--color-link-secondary-hover);
}

.c-close-icon:hover:not(:disabled) {
	opacity: 0.7;
}

.p-navigation__link:hover {
	color: var(--color-text-on-primary-alt);
}

.p-news__link:hover:not(:disabled) {
	color: var(--color-link-secondary-hover);
}

.p-news-item:hover:not(:disabled) {
	background: #fff9e5;
}

.p-form__link:hover {
	color: var(--color-link-primary-hover);
}

}

@media (min-width: 576px) {

.p-about__content::before {
	inline-size: 900px;
}

.u-hidden-sm {
	display: none;
}

}

@media (min-width: 768px) {

.l-header {
	padding-block: calc(22 * var(--rem-ratio)) calc(21 * var(--rem-ratio));
}

.l-header__logo {
	inline-size: 135px;
	padding-block-start: calc(4 * var(--rem-ratio));
}

.l-header__navigation {
	position: revert;
}

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

.l-inner {
	padding-inline: calc(var(--horizontal-spacing-max) * 1px);
}

.c-heading__main {
	letter-spacing: calc(5 * var(--rem-ratio));
	margin-block-start: calc(1 * var(--rem-ratio));
	margin-inline-start: calc(1 * var(--rem-ratio));
}

.c-heading__sub {
	letter-spacing: calc(1.28 * var(--rem-ratio));
	margin-block-start: 0;
	margin-inline-start: 0;
}

.c-table tr {
	block-size: calc(100 * var(--rem-ratio));
}

.c-table td {
	letter-spacing: calc(0.48 * var(--rem-ratio));
}

.c-table thead th {
	letter-spacing: calc(2 * var(--rem-ratio));
}

.c-table tbody > tr {
	block-size: calc(100 * var(--rem-ratio));
	border-block-start: 3px solid #000;
}

.c-table tbody th {
	letter-spacing: calc(0.6 * var(--rem-ratio));
}

.c-accordion__summary {
	gap: calc(48 * var(--rem-ratio));
	letter-spacing: calc(1.28 * var(--rem-ratio));
	padding-inline: calc((20 - var(--_border-width)) * var(--rem-ratio)) calc((21 - var(--_border-width)) * var(--rem-ratio));
}

.c-accordion__panel-content::before {
	margin-block-start: calc(-8 * var(--rem-ratio));
}

.c-accordion__panel-content {
	gap: calc(10 * var(--rem-ratio));
	letter-spacing: calc(1.28 * var(--rem-ratio));
	padding-block: calc(8 * var(--rem-ratio)) calc((20 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc((22 - var(--_border-width)) * var(--rem-ratio)) calc((36 - var(--_border-width)) * var(--rem-ratio));
}

.c-arrow {
	--_side-length: 20;
}

.p-navigation {
	background: revert;
	block-size: revert;
	color: revert;
	inline-size: revert;
	padding: revert;
}

.p-navigation__list {
	gap: calc(40 * var(--rem-ratio));
	grid-auto-flow: column;
	grid-template-rows: auto;
	place-items: center;
}

.p-navigation__link:focus-visible {
	color: var(--color-link-primary-hover);
}

.p-mainvisual__container {
	block-size: 666px;
	grid-template: "lead" auto "description" auto "download-button" auto/auto;
	padding-block-start: calc(90 * var(--rem-ratio));
	padding-inline: 50px;
	place-content: start;
	place-items: start;
}

.p-mainvisual__container::before {
	block-size: 578px;
	border-radius: 28px;
	margin-inline: calc(50% - 50dvi + var(--horizontal-spacing-max) * 1px);
}

.p-mainvisual__lead {
	gap: calc(14 * var(--rem-ratio));
	letter-spacing: calc(3.8 * var(--rem-ratio));
	margin-block-start: calc(19 * var(--rem-ratio));
	place-items: start;
}

.p-mainvisual__lead-text {
	padding-block: calc(15 * var(--rem-ratio)) calc(9 * var(--rem-ratio));
	padding-inline: calc(16 * var(--rem-ratio)) calc(12.2 * var(--rem-ratio));
}

.p-mainvisual__description {
	letter-spacing: calc(0.54 * var(--rem-ratio));
	margin-block-start: calc(22 * var(--rem-ratio));
	text-align: revert;
}

.p-mainvisual__download-button {
	margin-block-start: calc(30 * var(--rem-ratio));
}

.p-mainvisual__image {
	display: block flow;
	inline-size: min(600 / var(--viewport-max) * 100%, 100%);
	inset-block-end: 0;
	inset-inline-end: 51px;
	margin-block-start: revert;
	position: absolute;
}

.p-case {
	margin-block-start: 1px;
	padding-block: calc(70 * var(--rem-ratio)) calc(50 * var(--rem-ratio));
}

.p-case__container {
	gap: calc(53 * var(--rem-ratio));
}

.p-case__heading {
	letter-spacing: calc(2 * var(--rem-ratio));
}

.p-case__items {
	gap: calc(24 * var(--rem-ratio)) calc(27.5 * var(--rem-ratio));
	grid-template-columns: repeat(3, 1fr);
}

.p-news {
	padding-block: calc(50 * var(--rem-ratio));
}

.p-news__container {
	border-radius: 30px;
	padding-block: calc(40 * var(--rem-ratio)) calc(42 * var(--rem-ratio));
	padding-inline: calc(24 * var(--rem-ratio));
}

.p-news__card {
	max-inline-size: 930px;
	place-items: start;
}

.p-news__heading {
	letter-spacing: calc(5 * var(--rem-ratio));
}

.p-news__list {
	margin-block-start: calc(32 * var(--rem-ratio));
}

.p-news__link {
	margin-block-start: calc(22 * var(--rem-ratio));
}

.p-news-item {
	gap: revert;
	grid-template: "date labels title" auto/minmax(calc(133 * var(--rem-ratio)), auto) minmax(calc(114 * var(--rem-ratio)), auto) 1fr;
	padding-block: calc(11 * var(--rem-ratio));
}

.p-about {
	padding-block: calc(50 * var(--rem-ratio)) calc(200 * var(--rem-ratio));
}

.p-about__container {
	gap: 176px;
}

.p-about__logo {
	inline-size: 230px;
}

.p-about__content::before {
	inline-size: 800px;
}

.p-about__img {
	inline-size: 330px;
	inset-block-start: -126px;
}

.p-about__text {
	margin-block-start: 284px;
}

.p-about__pop {
	margin-block-start: calc(44 * var(--rem-ratio));
}

.p-about__button {
	margin-block-start: calc(13 * var(--rem-ratio));
}

.p-movie {
	padding-block: calc(100 * var(--rem-ratio));
}

.p-movie__container {
	gap: calc(56 * var(--rem-ratio));
}

.p-movie__iframe iframe {
	aspect-ratio: 1.7777777778;
}

.p-step-item__img {
	inline-size: 200px;
}

.p-how-to-use {
	margin-block-start: -1px;
	padding-block: calc(100 * var(--rem-ratio));
}

.p-how-to-use__boxes {
	gap: calc(48 * var(--rem-ratio));
	margin-block-start: calc(60 * var(--rem-ratio));
}

.p-how-to-use__box {
	margin-block-start: 29px;
	padding-block: 164px 56px;
}

.p-how-to-use__title {
	gap: 10px;
	grid-template-areas: "text image";
	inset-block-start: -29px;
	place-content: center;
	place-items: end center;
}

.p-how-to-use__title[data-type=reverse] {
	grid-template-areas: "image text ";
}

.p-how-to-use__title-text {
	letter-spacing: calc(2.2 * var(--rem-ratio));
}

.p-how-to-use__items {
	gap: calc(24 * var(--rem-ratio));
	grid-template-columns: repeat(3, 1fr);
}

.p-how-to-use__item {
	inline-size: unset;
}

.p-media__content {
	gap: calc(50 * var(--rem-ratio));
	grid-template-areas: "body image";
	margin-inline: auto;
	max-inline-size: 920px;
	padding-block: calc(20 * var(--rem-ratio));
}

[data-type=reverse] .p-media__content {
	grid-template-areas: "image body";
}

.p-media__body {
	gap: calc(16 * var(--rem-ratio));
}

.p-media__heading {
	gap: calc(28 * var(--rem-ratio));
}

.p-media__heading-title {
	letter-spacing: calc(2 * var(--rem-ratio));
}

.p-media__img {
	max-inline-size: 350px;
}

.p-merit {
	margin-block: -1px 0;
	padding-block: calc(100 * var(--rem-ratio));
}

.p-merit__container {
	gap: calc(60 * var(--rem-ratio));
}

.p-merit__boxes {
	gap: calc(40 * var(--rem-ratio));
}

.p-cta {
	padding-block: calc(60 * var(--rem-ratio));
}

.p-cta__text {
	letter-spacing: calc(0.54 * var(--rem-ratio));
}

.p-cta__button {
	margin-inline-start: revert;
}

.p-service {
	margin-block-start: revert;
	padding-block: calc(100 * var(--rem-ratio));
}

.p-service__table-container {
	padding-block-end: revert;
	padding-block-start: calc(83 * var(--rem-ratio));
}

.p-service__table {
	inline-size: calc(1000 * var(--rem-ratio));
}

.p-service__table caption {
	inset-block-start: 0;
}

.p-service__table tr > :first-child {
	inline-size: revert;
}

.p-service__table tr > :nth-child(2) {
	inline-size: revert;
	letter-spacing: calc(0.75 * var(--rem-ratio));
}

.p-service__table .-logo {
	inline-size: calc(123 * var(--rem-ratio));
}

.p-service__attention {
	display: none;
}

.p-qa {
	padding-block: calc(100 * var(--rem-ratio));
}

.p-qa__content {
	margin-block-start: calc(74 * var(--rem-ratio));
}

.p-gallery {
	padding-block: calc(100 * var(--rem-ratio));
}

.p-gallery__slider {
	margin-block-start: calc(60 * var(--rem-ratio));
}

.p-gallery__slider .swiper {
	margin-inline: -70px;
	padding-inline: 70px;
}

.p-gallery__slider .swiper-button-prev,
.p-gallery__slider .swiper-button-next {
	--swiper-navigation-size: 50px;
	--swiper-navigation-top-offset: calc(50% - 36px);
}

.p-gallery-card {
	border-radius: 30px;
	gap: calc(18 * var(--rem-ratio));
	padding-block: calc((20 - var(--_border-width)) * var(--rem-ratio)) calc((18 - var(--_border-width)) * var(--rem-ratio));
	padding-inline: calc((20 - var(--_border-width)) * var(--rem-ratio));
}

.p-gallery-card__img img {
	border-radius: 20px;
}

.p-contact {
	margin-block-start: -3px;
	padding-block: calc(100 * var(--rem-ratio));
}

.p-contact__form {
	margin-block-start: -1px;
	padding-block-start: calc(50 * var(--rem-ratio));
}

.p-form__fields {
	gap: calc(30 * var(--rem-ratio));
	margin-inline: auto;
	max-inline-size: calc((var(--viewport-max) - 528) * 1px);
}

.p-form__field {
	gap: calc(32 * var(--rem-ratio));
	grid-template-columns: 1fr 400px;
}

.p-form__label {
	place-self: center end;
}

.p-form__radios {
	gap: calc(30 * var(--rem-ratio));
	grid-auto-flow: column;
	grid-template-rows: auto;
	place-content: center start;
}

.p-form__actions {
	margin-block-start: 7px;
}

.p-pagetop {
	inset-block-end: 30px;
	inset-inline-end: 16px;
}

.p-about-modal__container {
	padding-block: 49px 75px;
	padding-inline: 70px;
}

.p-about-modal__body {
	margin-block-start: 43px;
}

.u-hidden-md {
	display: none;
}

}

@media (min-width: 768px) and (any-hover: hover) {

.p-navigation__link:hover {
	color: var(--color-link-primary-hover);
}

}

@media (min-width: 1024px) {

.p-case__items {
	gap: calc(26 * var(--rem-ratio)) calc(40 * var(--rem-ratio));
	grid-template-columns: repeat(4, 1fr);
}

.u-hidden-lg {
	display: none;
}

}

@media (min-width: 1280px) {

.u-hidden-xl {
	display: none;
}

}

