@charset "utf-8";

/*
  Made by Elly Loel - https://ellyloel.com/
*/

/*================================================================
# reset
================================================================ */
* {
	margin: 0;
	padding: 0;
	word-break: normal;
}

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

*:where(:not(fieldset, progress, meter)) {
	border-width: 0;
	background-origin: border-box;
}

:where(img, svg, video) {
	max-width: 100%;
	height: auto;
}

:where(svg):where(:not([fill])) {
	stroke: none;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

:where(svg):where(:not([width])) {
	inline-size: 5rem;
}

:where(input, button, textarea, select),
:where(input[type="file"])::-webkit-file-upload-button {
	font: inherit;
	font-size: inherit;
	color: inherit;
	letter-spacing: inherit;
}

:where(textarea) {
	resize: vertical;
}

@supports (resize: block) {
	:where(textarea) {
		resize: block;
	}
}

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

:where(ul, ol)[role="list"] {
	list-style: none;
}

a:not([class]) {
	text-decoration-skip-ink: auto;
}

:where(a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*="-"])) {
	cursor: pointer;
	touch-action: manipulation;
}

:where(input[type="file"]) {
	cursor: auto;
}

:where(input[type="file"])::-webkit-file-upload-button,
:where(input[type="file"])::file-selector-button {
	cursor: pointer;
}

@media (prefers-reduced-motion: no-preference) {
	:focus-visible {
		transition: outline-offset 145ms cubic-bezier(0.25, 0, 0.4, 1);
	}

	:where(:not(:active)):focus-visible {
		transition-duration: 0.25s;
	}
}

:where(:not(:active)):focus-visible {
	outline-offset: 5px;
}

:where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"]),
:where(input[type="file"])::-webkit-file-upload-button,
:where(input[type="file"])::file-selector-button {
	user-select: none;
	text-align: center;
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
}

:where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"])[disabled] {
	cursor: not-allowed;
}

table {
	border-spacing: 0;
	border-collapse: collapse;
}

ul,
ol {
	list-style: none;
}

/*================================================================
# layout
================================================================ */
html {
	width: 100%;
	max-width: 100%;
	min-height: 100%;
	overflow-x: hidden;
	font-size: 10px;
	scroll-behavior: auto;
	-webkit-text-size-adjust: 100%;
}

body {
	width: 100%;
	min-height: 100%;
	overflow-x: hidden;
	font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	color: var(--black);
	letter-spacing: 0.05em;
	word-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

main {
	display: block;
}

.wrap {
	width: calc(100% - 16vw);
	max-width: 1000px;
	margin: auto;
	position: relative;
}

/*================================================================
# image
================================================================ */
svg,
img,
iframe {
	max-width: 100%;
	border: 0;
	vertical-align: bottom;
}

img {
	height: auto;
}

/*================================================================
# typography
================================================================ */
a {
	font-family: inherit;
	color: inherit;
	text-decoration: none;
}

a:hover {
	cursor: pointer;
}

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

button,
a {
	-webkit-tap-highlight-color: transparent;
}

em,
i {
	font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	line-height: inherit;
}

@media screen and (min-width: 560px) {
	a[href^="tel:"] {
		pointer-events: none;
		text-decoration: none;
	}
}

/*================================================================
# responsive display
================================================================ */
@media screen and (max-width: 559px) {
	.pc {
		display: none !important;
	}
}

@media screen and (min-width: 560px) {
	.sp {
		display: none !important;
	}
}

/*================================================================
# scroll animation
================================================================ */
.js-fade-up {
	opacity: 0;
	transition:
		opacity 1s ease,
		transform 1s cubic-bezier(0.22, 1, 0.36, 1);
	transform: translateY(24px);
}

.js-image-reveal {
	opacity: 0;
	transition:
		opacity 1.2s ease,
		transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
	transform: scale(1.025);
}

.js-fade-up.is-visible,
.js-image-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.js-stagger>.js-fade-up:nth-child(2),
.js-stagger>.js-image-reveal:nth-child(2) {
	transition-delay: 0.12s;
}

.js-stagger>.js-fade-up:nth-child(3),
.js-stagger>.js-image-reveal:nth-child(3) {
	transition-delay: 0.24s;
}

.js-stagger>.js-fade-up:nth-child(4),
.js-stagger>.js-image-reveal:nth-child(4) {
	transition-delay: 0.36s;
}

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

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
}

/*================================================================
# theme
================================================================ */
:root {
	--white: #fff;
	--black: #1a1a1a;
	--primary: #0950d2;
	--secondary: #164da6;
	--gray01: #555;
	--gray02: #999;
	--gray03: #d8d8d8;
	--bg01: #fff;
	--bg02: #eef3fb;
	--border01: #6c9df9;
	--border02: #aac4f5;
	--border03: rgba(85, 133, 223, 0.2);
	--header: #fff;
	--footer: #0950d2;
	--button: #333333;
	--button-hover: #6c9df9;
	--text-en: "Crimson Text", serif;
	--text-mincho: "Noto Serif JP", serif;
}