/***** additional 2026 *****/

:root {
    --normal-gothic-font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", 'メイリオ', Meiryo, "Noto Sans JP", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --rounded-gothic-font-family: 'M PLUS Rounded 1c', sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/*** util ***/

/* text box trim */

:root {
    --line-height: 1.6;
    --text-box-trim-margin: calc((1em - 1lh) / 2);
}
@supports not (margin-block: 1lh) {
    :root {
        --text-box-trim-margin: calc((1em - 1em * var(--line-height)) / 2);
    }
}
.text-box-trim {
    margin-block: var(--text-box-trim-margin);
}

/* responsive value */

.use-responsive-value {
	--responsive-value: clamp(
        calc(var(--responsive-unit, 1px) * var(--responsive-min-value)),
        calc(
            (1px * var(--responsive-min-value)) +
            (100dvw - (var(--responsive-unit, 1px) * var(--responsive-min-width))) * ((var(--responsive-max-value) - var(--responsive-min-value)) / (var(--responsive-max-width) - var(--responsive-min-width)))
        ),
        calc(var(--responsive-unit, 1px) * var(--responsive-max-value))
    );
}

/* responsive container */

.responsive-container {
    min-width: calc(1px * var(--responsive-min-width));
    max-width: calc(1px * var(--responsive-max-width));

    --responsive-padding-scale: calc((var(--responsive-max-padding) - var(--responsive-min-padding)) / (var(--responsive-max-width) - var(--responsive-min-width)));
    padding-inline: clamp(
        calc(1px * var(--responsive-min-padding)),
        calc(
            (1px * var(--responsive-min-padding)) +
            (100dvw - (1px * var(--responsive-min-width))) * var(--responsive-padding-scale)
        ),
        calc(1px * var(--responsive-max-padding))
    );
    margin-inline: auto;

    --responsive-font-scale: calc((var(--responsive-max-font-size) - var(--responsive-min-font-size)) / (var(--responsive-max-width) - var(--responsive-min-width)));
    font-size: clamp(
        calc(1px * var(--responsive-min-font-size)),
        calc(
            (1px * var(--responsive-min-font-size)) +
            (100dvw - (1px * var(--responsive-min-width))) * var(--responsive-font-scale)
        ),
        calc(1px * var(--responsive-max-font-size))
    );
}
.responsive-container--wide {
    --responsive-min-width: 320;
    --responsive-max-width: 1280;
    --responsive-min-padding: 16;
    --responsive-max-padding: 64;
    --responsive-min-font-size: 12;
    --responsive-max-font-size: 20;
}
.responsive-container--thin {
    --responsive-min-width: 320;
    --responsive-max-width: 800;
    --responsive-min-padding: 16;
    --responsive-max-padding: 32;
    --responsive-min-font-size: 12;
    --responsive-max-font-size: 20;
}

/*** rounded gothic ***/

.rounded-gothic {
    font-family: var(--rounded-gothic-font-family);
}

/*** reactive button ***/

.mirai-reactive-button {
	transition: transform 0.1s;
}
.mirai-reactive-button:active {
	transform: scale(1.05);
}

/* proviso */

ul.proviso {
    list-style-type: '※';
    padding-left: 1em;
}

/* panel */

.panel__image {
    display: block;
    width: 100%;
}

/* decorated */

.decorated {
	position: relative;
}
.decorated__item {
    position: absolute;
}

/*** back to top ***/

.back-to-top {
	border-top: solid 1px #ccc;
}
.back-to-top__link {
	display: block;
	width: fit-content;
	margin: 1.5em auto;
}
.back-to-top__image-label {
	height: 1.25em;
}
@media screen and (min-width: 800px) {
	.back-to-top {
		--back-to-top-width: 48px;
		--back-to-top-height: 59px;
		--back-to-top-margin-bottom: 16px;
        --back-to-top-range-start: 256px;
		--back-to-top-offset: calc(var(--back-to-top-height) + var(--back-to-top-margin-bottom));
		border-top: none;
		position: sticky;
		bottom: var(--back-to-top-margin-bottom);
		right: 16px;
		margin: calc(var(--back-to-top-offset) * -1) 0 var(--back-to-top-margin-bottom) auto;
		display: block;
		width: var(--back-to-top-width);
		z-index: 1;
		animation: back-to-top-visibility 1ms linear;
		animation-timeline: scroll();
        animation-range: var(--back-to-top-range-start) calc(var(--back-to-top-range-start) + var(--back-to-top-height));
		animation-fill-mode: both;
	}
	@keyframes back-to-top-visibility {
		from {
			transform: translateY(var(--back-to-top-offset));
		}
		to {
			transform: translateY(0px);
		}
	}
	.back-to-top__link {
		margin: 0;
	}
	.back-to-top__image-label {
		width: var(--back-to-top-width);
		height: var(--back-to-top-height);
		filter: drop-shadow(-1px -1px 0 #fff) drop-shadow(1px -1px 0 #fff) drop-shadow(-1px 1px 0 #fff) drop-shadow(1px 1px 0 #fff);
	}
}

/*** global footer ***/

.global-footer {
    font-family: var(--normal-gothic-font-family);
	border-top: solid 1px #ccc;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: anywhere;
    text-wrap: balance;
}
.global-footer__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-block: 2.5em;
    gap: 2.5em
}
.global-footer__brand {
    display: block;
    width: 256px;
    margin-top: -12px;
}
.global-footer__free-dial-logo {
    width: 2.25em;
    vertical-align: baseline;
    margin-left: 0.25em;
    margin-bottom: -0.125em;
}
.global-footer__phone-number {
    font-size: 1.5em;
    font-weight: bold;
    line-height: calc(var(--line-height) - 0.2);
}

/*** reset ***/

html {
    scroll-behavior: smooth;
}
body {
    font-family: var(--normal-gothic-font-family) !important;
    font-feature-settings: "palt";
    background: white;
    line-height: var(--line-height);
    -webkit-text-size-adjust: 100%;
    line-break: strict;
}

picture {
    display: block;
    width: fit-content;
    line-height: 1;
}

form {
    font-family: var(--form-font-family);
}