@charset "utf-8";

/* ===== Layer order ===== */
@layer reset,
tokens,
base,
layout,
component,
page,
utility,
override;

/* ===== Tokens ===== */
@layer tokens {
	:root {
		--c-primary: #0066AF;
		--c-secondary: #00a291;
		--c-orange: #d3852f;
		--c-green: #5c9bb7;
		--c-red: #e1594d;
		--c-dark: #041213;
		--c-gray: #555d50;
		--c-bg: #e2e6e7;
		--c-bg-gray: #EFF2F5;
		--c-site-bg: #EFF2F5;
		--c-border: #EFF2F5;
		--c-text: #041213;
		--c-wh: #fff;
		--c-line: #cccccc;
		--c-lgray: #e8e6e2;

		--font-base: "Zen Kaku Gothic New", sans-serif;
		--font-en: "Cormorant Infant", serif;
		--font-base-size: 16px;
		--fz-8: 8px;
		--fz-10: 10px;
		--fz-12: 12px;
		--fz-14: 14px;
		--fz-16: 16px;
		--fz-18: 18px;
		--fz-24: 24px;
		--fz-34: 34px;
		--fz-fluid-9-12: clamp(9px, 0.833vw, 12px);
		--fz-fluid-11-14: clamp(11px, 0.972vw, 14px);
		--fz-fluid-12-14: clamp(12px, 0.972vw, 14px);
		--fz-fluid-13-16: clamp(13px, 1.111vw, 16px);
		--fz-fluid-14-16: clamp(14px, 1.111vw, 16px);
		--fz-fluid-18-24: clamp(18px, 1.667vw, 24px);
		--fz-fluid-20-28: clamp(20px, 2vw, 28px);
		--fz-fluid-22-26: clamp(22px, 1.8vw, 26px);
		--fz-fluid-24-30: clamp(24px, 2.083vw, 30px);
		--fz-fluid-28-40: clamp(28px, 2.778vw, 40px);
		--fz-fluid-32-48: clamp(32px, 3.333vw, 48px);
		--fz-fluid-100-120: clamp(100px, 8.333vw, 120px);

		--header-h: 70px;
	}

	:root.font-large {
		--font-base-size: 18px;
		--fz-8: 10px;
		--fz-10: 12px;
		--fz-12: 14px;
		--fz-14: 16px;
		--fz-16: 18px;
		--fz-18: 20px;
		--fz-24: 26px;
		--fz-34: 36px;
		--fz-fluid-9-12: clamp(11px, calc(0.833vw + 2px), 14px);
		--fz-fluid-11-14: clamp(13px, calc(0.972vw + 2px), 16px);
		--fz-fluid-12-14: clamp(14px, calc(0.972vw + 2px), 16px);
		--fz-fluid-13-16: clamp(15px, calc(1.111vw + 2px), 18px);
		--fz-fluid-14-16: clamp(16px, calc(1.111vw + 2px), 18px);
		--fz-fluid-18-24: clamp(20px, calc(1.667vw + 2px), 26px);
		--fz-fluid-20-28: clamp(22px, calc(2vw + 2px), 30px);
		--fz-fluid-22-26: clamp(24px, calc(1.8vw + 2px), 28px);
		--fz-fluid-24-30: clamp(26px, calc(2.083vw + 2px), 32px);
		--fz-fluid-28-40: clamp(30px, calc(2.778vw + 2px), 42px);
		--fz-fluid-32-48: clamp(34px, calc(3.333vw + 2px), 50px);
		--fz-fluid-100-120: clamp(102px, calc(8.333vw + 2px), 122px);
	}

	@media (max-width: 999px) {
		:root {
			--header-h: 95px;
		}
	}
}

/* ===== Reset ===== */
@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	* {
		margin: 0;
  font-weight: 500;
	}

	:where(img, svg, video, canvas, audio, iframe, embed, object) {
		display: block;
		max-width: 100%;
	}

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

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

	:where(button, input, select, textarea) {
		font: inherit;
		color: inherit;
		line-height: inherit;
		margin: 0;
		padding: 0;
		text-transform: none;
		background-color: transparent;
		background-image: none;
		outline: none;
		border: none;
	}
}

/* ===== Base ===== */
@layer base {
	html {
		font-size: var(--font-base-size);
		line-height: 1.5;
		letter-spacing: 0em;
		font-family: var(--font-base);
		color: var(--c-text);
		background: var(--c-site-bg);
		scroll-behavior: smooth;
		scroll-padding-top: var(--header-h);
		-webkit-text-size-adjust: 100%;
	}

	body {
		position: relative;
		font-size: 1rem;
	}

	:where(h1, h2, h3, h4, h5, h6) {
		font-weight: bold;
		line-height: 1.2;
		overflow-wrap: anywhere;
	}

	:where(a) {
		color: inherit;
		text-decoration: none;
	}

	main {
		width: 100%;
		min-height: 837px;
		position: relative;
	}

	@media (max-width: 999px) {
		main {
			padding-top: var(--header-h);
		}
	}

	:where(.font-en) {
		font-family: var(--font-en);
	}

	.u-anchor {
		position: relative;
		top: calc(var(--header-h) * -1);
		display: block;
		width: 0;
		height: 0;
		pointer-events: none;
	}
}

/* ===== Layout ===== */
@layer layout {
	.l-col {
		display: flex;
		flex-flow: column;
		align-items: flex-start;
	}

	.l-main__wrapper {
		width: min(1920px, 100%);
		margin-inline: auto;
		position: relative;
		display: grid;
		align-items: flex-start;
		grid-template-columns: 300px minmax(0, 1fr);
	}

	@media (max-width: 999px) {
		.l-main__wrapper {
			grid-template-columns: 1fr;
		}
	}

	.l-main__contents {
		width: 100%;
		position: relative;
		z-index: 0;
		container: main-content / inline-size;
	}

	.l-section {
		width: 100%;
		position: relative;
		z-index: 0;
		padding-inline: clamp(20px, 3.472vw, 50px);
	}

	.sec-hero {
		background-image: url("../images/common/hero-bg.webp");
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
	}
}

/* ===== Component ===== */
@layer component {
	/* --------- Text --------- */
	:where(.c-txt) {
		line-height: 1.8;
	}
	:where(.c-txt-sm) {
		font-size: var(--fz-fluid-12-14);
		line-height: 1.8;
	}

	/* --------- heading --------- */
	.c-ttl-box {
		width: 100%;
		display: flex;
		align-items: baseline;
		gap: 10px;
		color: var(--c-primary);
	}

	.c-ttl-box > h2 {
		font-size: var(--fz-fluid-22-26);
		font-weight: 600;
	}

	.c-ttl-box > span {
		font-size: var(--fz-14);
		font-weight: 600;
	}

	@container main-content (max-width: 999px) {
		.c-ttl-box {
			flex-flow: column;
			align-items: center;
		}
	}

	.c-h2 {
		width: inherit;
		display: flex;
		align-items: center;
		gap: 10px;
		padding-left: 15px;
		position: relative;
		font-size: var(--fz-18);
		font-weight: 600;
		letter-spacing: 0;
		line-height: 1.2;
	}

	.c-h2::before {
		content: "";
		width: 5px;
		height: 100%;
		background: var(--c-text);
		display: block;
		position: absolute;
		left: 0;
		top: 50%;
		translate: 0 -50%;
	}

	.c-h2.is-primary {
		color: var(--c-primary);
	}
	.c-h2.is-primary::before {
		background: var(--c-primary);
	}

	.c-h2.is-orange {
		color: var(--c-orange);
	}
	.c-h2.is-orange::before {
		background: var(--c-orange);
	}

	/* --------- Button --------- */
	.c-btn-box {
		width: inherit;
		display: flex;
		align-items: center;
	}

	.c-btn-box.is-center {
		justify-content: center;
	}

	.c-btn-box.is-right {
		justify-content: flex-end;
	}

	.btn-more {
		width: 180px;
		height: 40px;
		display: inline-flex;
		align-items: center;
		background: var(--c-primary);
		position: relative;
		padding-inline: 15px 55px;
		gap: 10px;
		overflow: hidden;
		border-radius: 0;
	}
 
 .category-news .btn-more{
  background: var(--c-green);
 }
 
 .category-event .btn-more{
  background: var(--c-orange);
 }
 
	.btn-more.is-large {
		width: max-content;
	}
 
	.btn-more.is-xl {
		width: 300px;
	}

	.btn-more.is-orange {
		background: var(--c-orange);
	}

	.btn-more > span {
		color: var(--c-wh);
	}

	.btn-more::before {
		content: "";
		width: 40px;
		height: auto;
		aspect-ratio: 1 / 1;
		position: absolute;
		right: 0px;
		background: rgba(0, 0, 0, 0.1);
		z-index: 0;
	}
	.btn-more::after {
		content: "";
		width: 18px;
		height: auto;
		aspect-ratio: 1 / 1;
		background-image: url("../images/common/icon-arrow-white.svg");
		background-size: contain;
		background-repeat: no-repeat;
		position: absolute;
		right: 10px;
		transform: translateX(0);
		opacity: 1;
		transition: transform 0.5s ease, opacity 0.5s ease;
		z-index: 10;
	}

	@media (hover: hover) {
		.btn-more:hover::after {
			animation: arrow-slide-hover 1.5s infinite;
		}

		.btn-more:not(:hover)::after {
			animation: none;
			transform: translateX(0);
			opacity: 1;
		}
	}

	@keyframes arrow-slide-hover {
		0% {
			transform: translateX(0);
			opacity: 1;
		}

		50% {
			transform: translateX(10px);
			opacity: 0;
		}

		51% {
			transform: translateX(-10px);
			opacity: 0;
		}

		100% {
			transform: translateX(0);
			opacity: 1;
		}
	}

	/* --------- List --------- */
	.c-post-list {
		width: 100%;
		display: grid;
		gap: 0;
		margin-bottom: clamp(20px, 2.083vw, 20px);
	}

	.c-post-list__item {
		border-bottom: 1px solid var(--c-line);
	}

	.c-post-list__link {
		display: grid;
		gap: 0px;
		padding-block: 5px;
		color: var(--c-green);
		line-height: 1.7;
	}
	.c-post-list__item:first-of-type .c-post-list__link {
		padding-block: 0 5px;
	}
	.c-post-list.is-orange .c-post-list__link {
		color: var(--c-orange);
	}

	.c-post-list__meta {
		display: inline-flex;
		align-items: center;
		gap: 14px;
		width: fit-content;
	}

	.c-post-list__link time {
		color: var(--c-text);
		font-size: var(--fz-14);
	}

	.c-post-list__pdf-badge {
		display: inline-flex;
		align-items: center;
		gap: 2px;
		color: var(--c-primary);
		font-size: var(--fz-12);
		font-weight: 600;
		line-height: 1;
	}

	.c-post-list__pdf-badge::before {
		content: "";
		width: 15px;
		height: 15px;
		background: currentColor;
		mask: url("../images/common/icon-pdf.svg") center / contain no-repeat;
		-webkit-mask: url("../images/common/icon-pdf.svg") center / contain no-repeat;
	}

	.c-post-list.is-orange .c-post-list__pdf-badge {
		color: var(--c-orange);
	}

	.c-post-list__pdf-badge::after {
		content: "";
		width: 1px;
		height: 12px;
		order: -1;
		margin-right: 6px;
		background: var(--c-gray);
		transform: rotate(45deg);
		margin-right: 10px;
	}

	.c-post-list__title {
		text-decoration: underline;
		text-underline-offset: 0.18em;
	}

	.c-recruiting-event-list {
		width: 100%;
		display: grid;
	}

	.c-notice-link {
		display: flex;
		align-items: center;
		gap: clamp(10px, 1.389vw, 20px);
		padding-block: clamp(20px, 1.944vw, 28px);
		padding-inline: clamp(20px, 3.472vw, 50px);
		background: var(--c-wh);
		color: var(--c-primary);
		min-height: 80px;
		width: 100%;
	}

	.c-notice-link__label {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		flex-shrink: 0;
		font-size: var(--fz-18);
		font-weight: 600;
	}

	.c-notice-link__label::before {
		content: "";
		width: clamp(20px, 1.667vw, 24px);
		height: auto;
		aspect-ratio: 1 / 1;
		flex-shrink: 0;
		background-image: url("../images/top/icon-info.svg");
		background-position: center;
		background-size: contain;
		background-repeat: no-repeat;
	}

	.c-notice-link__text {
		text-decoration: underline;
		text-underline-offset: 0.18em;
	}

	.c-related-link {
		min-width: 240px;
		min-height: 70px;
		display: flex;
		align-items: center;
		justify-content: center;
		background-image: url("../images/common/related-link-bg.webp");
		background-position: center;
		background-size: cover;
		background-repeat: no-repeat;
		color: var(--c-wh);
		font-size: var(--fz-18);
		font-weight: 600;
		text-align: center;
	}
	.c-related-link.is-sm {
		font-size: var(--fz-16);
	}

	@container main-content (max-width: 999px) {
		.c-notice-link {
			display: grid;
		}
	}

	.c-list-disc {
		list-style: none !important;
		margin: 0 !important;
		padding: 0;
		display: flex;
		flex-flow: column;
		gap: 10px;
	}

	.c-list-disc li {
		position: relative;
		padding-left: 20px;
		line-height: 1.3;
		font-size: var(--fz-fluid-14-16);
	}
	.c-list-disc.is-sm li {
		font-size: var(--fz-14);
	}

	.c-list-disc li::before {
		content: "";
		position: absolute;
		left: 0;
		top: 11px;
		width: 10px;
		height: 10px;
		background: var(--c-text);
		border-radius: 50%;
		transform: translateY(-50%);
	}

	.c-list-num {
		list-style-type: decimal;
		margin-left: 20px;
		font-size: var(--fz-14);
		font-weight: 500;
		display: flex;
		flex-flow: column;
		align-items: flex-start;
		gap: 10px;
	}
	.c-list-num.--lg {
		font-size: var(--fz-fluid-14-16);
	}
	@container main-content (max-width: 999px) {
		.c-list-num {
			line-height: 1.8;
			gap: clamp(8px, 1.502vw, 15px);
		}
	}

	/* modal */
	.c-img-modal {
		position: fixed;
		inset: 0;
		z-index: 9999;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 30px;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	.c-img-modal.is-show {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.c-img-modal__overlay {
		position: absolute;
		inset: 0;
		background: rgba(0, 0, 0, 0.6);
	}

	.c-img-modal__content {
		position: relative;
		z-index: 1;
		width: min(92vw, 920px);
		max-height: 86vh;
		border-radius: clamp(15px, 2.083vw, 30px);
		overflow: hidden;
		background: var(--c-wh);
		box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
		display: flex;
		justify-content: center;
		align-items: center;
		aspect-ratio: 315 / 198;
	}

	.c-img-modal__close {
		position: absolute;
		top: 0;
		right: 0;
		z-index: 2;
		width: clamp(50px, 5.556vw, 80px);
		height: auto;
		aspect-ratio: 1 / 1;
		border: 0;
		border-radius: 0 0 0 clamp(15px, 2.083vw, 30px);
		background: var(--c-text);
		cursor: pointer;
	}

	.c-img-modal__close span {
		position: absolute;
		left: 50%;
		top: 50%;
		width: clamp(20px, 2.5vw, 36px);
		height: clamp(3px, 0.347vw, 5px);
		border-radius: 999px;
		background: var(--c-wh);
	}
	.c-img-modal__close span:first-child {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.c-img-modal__close span:last-child {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.c-img-modal__figure {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
	}

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

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

	/* --------- Header --------- */
	.c-header {
		width: min(1920px, 100%);
		position: fixed;
		margin-inline: auto;
		top: 0;
		left: 0;
		right: 0;
		z-index: 9999;
		background: transparent;
		pointer-events: none;
	}

	.c-header__inner {
		width: 100%;
		pointer-events: none;
	}

	.c-header__contents {
		width: 100%;
		height: var(--header-h);
		display: flex;
		align-items: center;
		justify-content: flex-end;
		pointer-events: none;
		padding-top: 20px;
		padding-inline: 20px;
	}

	.c-header__logo {
		display: none;
	}

	.c-header__utility {
		display: flex;
		align-items: center;
		gap: 15px;
		background: var(--c-wh);
		padding: 8px 20px;
		pointer-events: auto;
	}

	.c-header__actions {
		display: none;
	}

	.c-header__sp-action {
		display: none;
	}

	.c-header__font-size {
		display: flex;
		align-items: center;
		gap: 10px;
		font-size: var(--fz-14);
		white-space: nowrap;
		padding-right: 15px;
		position: relative;
	}
	.c-header__font-size::after {
		content: "";
		width: 1px;
		height: 20px;
		border-right: 1px dashed var(--c-primary);
		position: absolute;
		top: 50%;
		translate: 0 -50%;
		right: 0;
	}

	.c-header__font-size-btns {
		width: max-content;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
	}

	.c-header__font-size-btn {
		width: 64px;
		height: 34px;
		padding-inline: 10px;
		background: var(--c-bg-gray);
		cursor: pointer;
		display: flex;
		justify-content: center;
		align-items: center;
		line-height: 1;
	}
	.c-header__font-size-btn.is-large {
		font-weight: 600;
	}

	.c-header__font-size-btn.is-current {
		background: var(--c-primary);
		color: var(--c-wh);
	}

	.c-header__search {
		display: grid;
		align-items: stretch;
		width: 240px;
		grid-template-columns: minmax(0, 1fr) 60px;
	}

	.c-header__search input {
		width: 100%;
		height: 34px;
		min-width: 0;
		background: var(--c-bg-gray);
		padding-inline: 13px;
		font-size: var(--fz-16);
	}
	.c-header__search input::placeholder {
		font-size: var(--fz-14);
	}

	.c-header__search button {
		width: 60px;
		height: 34px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 3px;
		background: var(--c-primary);
		color: var(--c-wh);
		font-size: var(--fz-14);
		cursor: pointer;
	}

	.c-header__search button img {
		width: 13px;
		height: auto;
		aspect-ratio: 1 / 1;
		flex-shrink: 0;
	}

	.c-header__toggle {
		display: none;
		width: 48px;
		height: 48px;
		position: relative;
		appearance: none;
		border: none;
		background: var(--c-primary);
		color: var(--c-primary);
		cursor: pointer;
		pointer-events: auto;
	}

	.c-header__toggle span {
		position: absolute;
		left: 50%;
		width: 20px;
		height: 1px;
		border-radius: 999px;
		display: block;
		background: var(--c-wh);
		transition: transform 0.3s, opacity 0.3s;
		translate: -50% 0;
	}

	.c-header__toggle span:nth-child(1) {
		top: 16px;
	}

	.c-header__toggle span:nth-child(2) {
		top: 24px;
	}

	.c-header__toggle span:nth-child(3) {
		top: 32px;
	}

	.c-header__toggle em {
		position: absolute;
		left: 50%;
		top: calc(100% + 5px);
		translate: -50% 0;
		color: var(--c-primary);
		font-size: var(--fz-12);
		font-style: normal;
		letter-spacing: 0;
		line-height: 1;
	}

	.c-drawer {
		position: fixed;
		inset: 0;
		z-index: -1;
		background: var(--c-wh);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		display: none;
		padding-top: var(--header-h);
	}

	@media (max-width: 999px) {
		.c-header {
			pointer-events: auto;
		}
		.c-header__inner {
			pointer-events: auto;
		}
		.c-header__contents {
			align-items: flex-start;
			justify-content: space-between;
			background: var(--c-wh);
			padding: 15px 20px;
			gap: 14px;
		}

		.c-header__logo {
			display: block;
			width: 153px;
			height: auto;
			pointer-events: auto;
			aspect-ratio: 153 / 57;
			margin-top: 5px;
		}

		.c-header__actions {
			display: flex;
			align-items: flex-start;
			gap: 10px;
			margin-left: auto;
			pointer-events: auto;
		}

		.c-header__sp-action,
		.c-header__toggle {
			width: 48px;
			height: 48px;
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 8px;
			color: var(--c-text);
			background: var(--c-bg-gray);
			font-weight: 600;
			line-height: 1;
			cursor: pointer;
			position: relative;
		}

		.c-header__sp-action > span,
		.c-header__toggle {
			width: 48px;
			height: 48px;
			display: grid;
			place-items: center;
			background: var(--c-bg-gray);
			font-weight: 600;
			line-height: 1;
		}

		.c-header__sp-action > em {
			white-space: nowrap;
			position: absolute;
			left: 50%;
			top: calc(100% + 5px);
			translate: -50% 0;
			font-size: var(--fz-12);
			font-style: normal;
			letter-spacing: 0;
			line-height: 1;
		}
		.c-header__sp-font-icon {
			position: relative;
			width: 35px;
			height: auto;
			aspect-ratio: 35/19;
		}
		.c-header__sp-search-icon {
			position: relative;
			width: 27px;
			height: auto;
			aspect-ratio: 1 / 1;
		}

		.c-header__utility {
			display: block;
			width: 100%;
			background: transparent;
			padding: 0;
			pointer-events: none;
			position: absolute;
			left: 0;
			top: 100%;
			--panel-arrow-left: 50%;
		}

		.c-header__font-size,
		.c-header__search {
			display: none;
			width: max-content;
			max-width: calc(100vw - 40px);
			position: absolute;
			top: 5px;
			left: 50%;
			translate: -50% 0;
			z-index: 20;
			background: var(--c-bg-gray);
			padding: 8px 20px;
			pointer-events: auto;
		}

		.c-header__font-size.is-show,
		.c-header__search.is-show {
			display: flex;
		}

		.c-header__font-size::before,
		.c-header__search::before {
			content: "";
			width: 15px;
			height: 15px;
			position: absolute;
			top: -7px;
			left: var(--panel-arrow-left);
			translate: -50% 0;
			background: var(--c-bg-gray);
			rotate: 45deg;
			z-index: -1;
		}

		.c-header__font-size {
			gap: 10px;
			font-size: var(--fz-14);
		}

		.c-header__font-size::before {
			left: var(--panel-arrow-left);
		}

		.c-header__font-size::after {
			content: none;
		}

		.c-header__font-size-label {
			font-weight: 600;
		}

		.c-header__font-size-btn {
			background: var(--c-wh);
		}

		.c-header__search {
			grid-template-columns: minmax(0, 1fr) 60px;
			width: min(280px, calc(100vw - 40px));
			padding-inline: 16px;
		}

		.c-header__search.is-show {
			display: grid;
		}

		.c-header__search::before {
			left: var(--panel-arrow-left);
		}

		.c-header__search input {
			background: var(--c-wh);
		}

		.c-header__search input::placeholder {
			font-size: var(--fz-14);
			font-weight: 400;
			color: inherit;
			opacity: 1;
		}

		.c-header__search button {
			width: 60px;
			height: 34px;
			font-size: var(--fz-14);
			gap: 3px;
		}

		.c-header__search button img {
			width: 13px;
		}

		.c-header__toggle {
			display: block;
			margin-left: 0;
			padding: 0;
			background: var(--c-primary);
			color: var(--c-primary);
		}

		.c-drawer__inner {
			width: 100%;
			height: 100%;
			overflow-y: auto;
		}

		.c-header.is-open .c-drawer {
			display: block;
			opacity: 1;
			visibility: visible;
			pointer-events: auto;
			padding-top: var(--header-h);
		}
	}

	.c-header.is-open .c-header__toggle span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}

	.c-header.is-open .c-header__toggle span:nth-child(2) {
		opacity: 0;
	}

	.c-header.is-open .c-header__toggle span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}

	/* --------- Side Navi --------- */
	.c-aside {
		width: 300px;
		height: auto;
		max-height: 100svh;
		position: sticky;
		z-index: 99;
		top: 0;
		left: 0;
		background: var(--c-wh);
		overflow: hidden;
		overflow-y: auto;
	}

	@media (max-width: 999px) {
		.c-aside {
			display: none;
		}
	}

	/* --------- global Navi --------- */
	.c-gnav__wrapper {
		width: 100%;
	}

	.c-drawer .c-gnav__wrapper {
		gap: 20px;
	}

	.c-gnav {
		width: 100%;
	}

	.c-gnav__list {
		width: 100%;
		display: flex;
		flex-flow: column;
		align-items: flex-start;
	}

	.c-drawer .c-gnav__list {
		gap: 12px;
	}

	.c-gnav__list > li {
		width: 100%;
		font-size: var(--fz-16);
		letter-spacing: 0;
		line-height: 1.35;
	}

	.c-gnav__list > li > a {
		width: 100%;
		position: relative;
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-block: 20px;
		border-bottom: 1px solid var(--c-border);
		line-height: 1;
		padding-inline: 20px;
		transition: background ease 0.3s, color ease 0.3s;
		background: var(--c-wh);
		cursor: pointer;
	}

	.c-gnav__list > li > a::after {
		content: "";
		width: 6px;
		height: auto;
		aspect-ratio: 3 / 5;
		background-image: url("../images/common/icon-chevron-right.svg");
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		flex-shrink: 0;
		position: absolute;
		right: 15px;
		transition: all ease 0.3s;
	}
	@media (hover: hover) {
		.c-gnav__list > li > a:hover {
			background: var(--c-bg-gray);
			color: var(--c-primary);
		}
		.c-gnav__list > li > a:hover::after {
			background-image: url("../images/common/icon-chevron-right-primary.svg");
		}
	}

	.c-gnav__list > li > a.is-current {
		background: var(--c-bg-gray);
		color: var(--c-primary);
		font-weight: 600;
	}

	.c-gnav__list > li > a.is-current::after {
		background-image: url("../images/common/icon-chevron-right-primary.svg");
	}

	.c-gnav__logo {
		width: 100%;
		height: auto;
  aspect-ratio: 229 / 191;
		display: flex;
		justify-content: center;
		align-items: center;
		overflow: hidden;
		position: relative;
		background-image: url("../images/common/side-logo-bg.webp");
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
	}

	.c-gnav__logo img {
  width: 240px;
		height: auto;
		aspect-ratio: 183 / 68;
	}

	.c-gnav__banner-list {
		width: 100%;
		display: grid;
		gap: 10px;
		padding: 30px;
	}

	.c-gnav__banner {
		display: block;
	}
 
 .c-gnav__banner-list .c-gnav__banner:nth-child(n+3) img{
  height: 70px;
  width: 100%;
  object-fit: cover;
 }

	.c-gnav__secondary-list {
		width: 100%;
		display: grid;
		color: var(--c-gray);
		font-size: var(--fz-16);
		gap: 10px;
		padding-inline: 30px;
		padding-bottom: 30px;
	}
	.c-gnav__secondary-list > li > a {
		transition: color ease 0.3s;
	}
	@media (hover: hover) {
		.c-gnav__secondary-list > li > a:hover {
			color: var(--c-primary);
		}
	}

	.c-gnav__secondary-list > li > a.is-current {
		color: var(--c-primary);
		font-weight: 600;
	}

	@media (max-width: 999px) {
		.c-drawer .c-gnav__wrapper {
			gap: 0;
		}
		.c-gnav__logo {
			display: none;
		}
		.c-gnav {
			order: 0;
		}
		nav.c-gnav__secondary {
			order: 1;
			width: 100%;
		}
		.c-gnav__secondary-list {
			font-size: var(--fz-16);
			padding-inline: 40px;
			padding-block: 25px;
		}
		.c-gnav__banner-list {
			width: 100%;
			display: grid;
			gap: 15px;
			padding: 0;
			padding-inline: 40px;
			padding-bottom: 40px;
			order: 2;
		}
		.c-gnav__banner {
			max-width: 240px;
		}

		.c-drawer .c-gnav__list {
			gap: 0;
		}
		.c-drawer .c-gnav__list > li {
			font-size: var(--fz-24);
		}
		.c-drawer .c-gnav__list > li > a {
			padding-inline: 40px;
			min-height: 70px;
		}
		.c-drawer .c-gnav__list > li > a > span {
			position: relative;
			display: flex;
			align-items: center;
			gap: 16px;
		}
		.c-drawer .c-gnav__list > li > a > span::after {
			content: "";
			width: 6px;
			height: auto;
			aspect-ratio: 3 / 5;
			background-image: url("../images/common/icon-chevron-right.svg");
			background-position: center;
			background-repeat: no-repeat;
			background-size: contain;
			flex-shrink: 0;
			position: relative;
			transition: all ease 0.3s;
			display: block;
		}
		.c-drawer .c-gnav__list > li > a::after {
			content: none;
		}
	}

	.sec-retaled-links {
		background: var(--c-wh);
		padding-block: 50px;
	}

	.sec-retaled-links__inner {
		width: 100%;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 20px;
	}

	/* --------- Footer --------- */
	.c-footer {
		width: 100%;
		margin-inline: auto;
		position: relative;
		z-index: 0;
		background: var(--c-primary);
		color: var(--c-wh);
		padding-inline: 30px;
	}

	.c-footer__inner {
		width: min(1240px, 100%);
		margin-inline: auto;
		display: grid;
		grid-template-columns: 1fr;
		gap: 50px;
		padding-block: clamp(30px, 3.472vw, 50px);
	}

	.c-footer__contents {
		width: 100%;
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: clamp(30px, 3.472vw, 50px);
	}

	.c-footer__brand {
		width: max-content;
		display: grid;
		align-content: inherit;
		gap: 20px;
	}

	.c-footer__logo {
		display: block;
		width: 183px;
		height: auto;
		aspect-ratio: 183 / 68;
	}

	.c-footer__address {
		width: max-content;
		display: grid;
		gap: 8px;
		font-style: normal;
		font-size: var(--fz-14);
		line-height: 1.5;
	}

	.c-footer__nav {
		width: auto;
		display: flex;
		align-items: stretch;
		gap: clamp(15px, 2.083vw, 30px);
		flex-wrap: wrap;
	}

	.c-footer__nav-list {
		width: max-content;
		display: grid;
		align-content: start;
		gap: 16px;
		padding-left: clamp(15px, 2.083vw, 30px);
		border-left: 1px solid var(--c-wh);
		font-size: var(--fz-16);
	}
	.c-footer__nav-list:last-of-type {
		font-size: var(--fz-14);
		gap: 10px;
	}
	.c-footer__nav-list li a {
		text-decoration: underline;
		text-decoration-color: transparent;
		text-decoration-thickness: 1px;
		text-underline-offset: 2px;
		transition: text-decoration-color 0.3s ease;
	}

	@media (hover: hover) {
		.c-footer__nav-list li a:hover {
			text-decoration-color: currentColor;
		}
	}

	.c-footer__copy {
		width: max-content;
		font-size: var(--fz-fluid-9-12);
		letter-spacing: 0;
		line-height: 1;
		text-align: center;
	}

	@media (max-width: 999px) {
		.c-footer__contents {
			flex-flow: column;
			gap: 50px;
			align-items: center;
			justify-content: flex-start;
		}
		.c-footer__copy {
			width: 100%;
		}
	}
	@media (max-width: 768px) {
		.c-footer__inner {
			width: min(430px, 100%);
			gap: 50px;
			align-items: center;
		}

		.c-footer__contents {
			flex-flow: column-reverse;
		}
		.c-footer__nav {
			flex-flow: column;
			width: 100%;
			align-items: flex-start;
			gap: 0;
		}

		.c-footer__nav-list {
			width: 100%;
			padding-left: 0;
			border-left: none;
			gap: 0;
		}

		.c-footer__nav-list:not(:last-of-type) li {
			width: 100%;
			padding-block: 20px;
			padding-inline: 20px;
			border-bottom: 1px solid var(--c-wh);
		}
		.c-footer__nav-list:last-of-type {
			padding-top: 20px;
			padding-inline: 20px;
		}
	}

	/* --------- Lower Page Head --------- */
	.c-pagehead {
		margin-bottom: 30px;
	}

	.c-pagehead__inner {
		gap: 16px;
	}

	.c-pagehead__title {
		font-size: var(--fz-fluid-24-30);
		letter-spacing: 0.05em;
		line-height: 1.5;
		color: var(--c-primary);
		font-weight: 500;
	}

	/* --------- Breadcrumbs --------- */
	.c-breadcrumbs {
		width: 100%;
		display: flex;
		justify-content: flex-end;
	}

	.c-breadcrumbs__list {
		width: auto;
		display: flex;
		gap: 15px;
		align-items: center;
	}

	.c-breadcrumbs__item {
		font-size: var(--fz-14);
		padding-right: 20px;
		position: relative;
	}

	.c-breadcrumbs__item:last-child {
		padding-right: 0px;
	}

	.c-breadcrumbs__item:not(:last-child)::after {
		content: "";
		width: 6px;
		height: 6px;
		border-radius: 999px;
		background: currentColor;
		position: absolute;
		right: 0px;
		top: 50%;
		translate: 0 -50%;
	}

	/* --------- Table --------- */
	.c-tbl-area {
		width: 100%;
		overflow: hidden;
		gap: 30px;
	}
	.c-tbl-scroll {
		width: 100%;
		position: relative;
		overflow: hidden !important;
	}

	.c-tbl-wrap {
		width: 100%;
		position: relative;
		overflow: hidden;
	}

	.c-border-wrap {
		border: 1px solid var(--c-gray);
		border-radius: 10px;
	}
	.c-border-wrap.is-bold {
		border: 3px solid var(--c-lgray);
	}

	.c-border-block-wrap {
		border-top: 1px solid var(--c-gray);
		border-bottom: 1px solid var(--c-gray);
	}

	.c-tbl {
		width: 100%;
		border-collapse: collapse;
		border: none;
		font-size: var(--fz-14);
	}
	.c-tbl.c-tbl-layout-fixed {
		table-layout: fixed;
	}

	.c-tbl th,
	.c-tbl td {
		padding-block: clamp(10px, 0.972vw, 14px);
		padding-inline: clamp(10px, 1.111vw, 16px);
		text-align: center;
		border-right: 1px solid var(--c-gray);
		border-bottom: 1px solid var(--c-gray);
	}
	.c-tbl th.is-left,
	.c-tbl td.is-left {
		text-align: left;
	}

	.c-tbl th:last-child:not(:first-child),
	.c-tbl td:last-child:not(:first-child) {
		border-right: none;
	}

	.c-tbl tbody tr:last-child th,
	.c-tbl tbody tr:last-child td {
		border-bottom: none;
	}

	.c-tbl tbody th[rowspan],
	.c-tbl tbody td[rowspan] {
		border-bottom: none;
	}

	.is-fbb.is-dashed {
		border-bottom: 1px dashed var(--c-gray) !important;
	}
	.is-fbr.is-dashed {
		border-right: 1px dashed var(--c-gray) !important;
	}
	.is-fbr-solid {
		border-right: 1px solid var(--c-gray) !important;
	}
	.is-fbb-solid {
		border-bottom: 1px solid var(--c-gray) !important;
	}

	.c-tbl thead th {
		font-weight: 500;
		background: var(--c-bg);
	}

	.c-tbl tbody th {
		font-weight: 500;
		background: var(--c-bg);
	}
	.c-tbl tbody.is-th-bg-none th {
		background: none;
	}
	.c-tbl td ul {
		text-align: left;
		list-style: disc;
		margin-left: 20px;
	}
	.c-tbl td ul li::marker {
		font-size: var(--fz-10);
	}
	.c-tbl th.is-dashed,
	.c-tbl td.is-dashed {
		border-bottom: 1px dashed var(--c-gray);
	}

	.c-table-scroll {
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.c-table-scroll table {
		min-width: 720px;
	}

	.c-detail-table {
		width: 100%;
		min-width: 720px;
		border-collapse: collapse;
		table-layout: fixed;
		border-top: 1px solid var(--c-line);
		border-bottom: 1px solid var(--c-line);
		font-size: var(--fz-16);
		line-height: 1.8;
	}

	.c-detail-table th,
	.c-detail-table td {
		padding-block: clamp(15px, 1.389vw, 20px);
		padding-inline: clamp(15px, 1.25vw, 18px);
		border-bottom: 1px solid var(--c-line);
		text-align: center;
		vertical-align: middle;
	}

	.c-detail-table th {
		background: var(--c-bg);
		font-weight: 400;
	}

	.c-detail-table th:not(:first-child),
	.c-detail-table td:not(:first-child) {
		border-left: 1px dashed var(--c-line);
	}

	.c-detail-table tr:last-child th,
	.c-detail-table tr:last-child td {
		border-bottom: none;
	}

	.c-detail-table .is-left {
		text-align: left;
	}

	.c-info-table {
		width: max-content;
		display: grid;
		grid-template-columns: 215px minmax(0, 1fr);
		gap: 10px;
		margin-bottom: 10px;
	}

	.c-info-table dt,
	.c-info-table dd {
		min-height: 35px;
		display: flex;
		align-items: center;
		margin: 0;
		padding: 5px;
		line-height: 1;
		letter-spacing: 0;
	}

	.c-info-table dt {
		justify-content: center;
		background: var(--c-gray);
		color: var(--c-wh);
		font-weight: 400;
	}

	.c-entry-detail {
		display: grid;
		gap: clamp(30px, 3.472vw, 50px);
	}

	.c-entry-content {
		display: grid;
		gap: clamp(26px, 3.472vw, 50px);
	}

	.c-content-group {
		display: grid;
		gap: 20px;
	}

	.c-content-group > * {
		min-width: 0;
	}

	.c-content-group h2 {
		margin-bottom: 10px;
	}
	.c-content-group h3 {
		font-size: var(--fz-18);
		font-weight: 400;
		padding-bottom: 15px;
		border-bottom: 1px dashed var(--c-line);
	}
	.c-content-group__btns {
		display: grid;
		gap: 10px;
	}
	.c-content-group__btns > a {
		line-height: 1.2;
	}

	.c-number-section-list {
		display: grid;
		gap: 20px;
		counter-reset: number-section;
	}

	.c-number-section-list__item {
		display: grid;
		gap: 8px;
		counter-increment: number-section;
	}

	.c-number-section-list__title {
		font-weight: 600;
	}

	.c-number-section-list__title::before {
		content: counter(number-section) ". ";
	}

	.c-number-section-list__body {
		display: grid;
		gap: 8px;
		padding-left: 10px;
	}

	.c-schedule-list {
		display: grid;
		grid-template-columns: max-content minmax(0, 1fr);
		gap: 8px clamp(24px, 3.472vw, 50px);
		line-height: 1.8;
	}

	.c-schedule-list dt,
	.c-schedule-list dd {
		min-width: 0;
	}

	.c-schedule-list dt {
		font-weight: 400;
	}

	.c-table-title {
		text-align: center;
		font-size: var(--fz-16);
		font-weight: 400;
		line-height: 1.6;
	}

	.c-table-area {
		display: grid;
		gap: 20px;
	}

	.c-note-box {
		display: grid;
		gap: 10px;
		background: var(--c-bg);
		padding: 20px;
	}
 
 .c-note-box p{
  line-height: 1.8;
 }
 
 .c-note-list{
  list-style: none;
  padding-left: 0;
  counter-reset: item;
  line-height: 1.5;
 }
 
 .c-note-list li{
  display: flex;
  gap: 0.5rem;
  counter-increment: item;
  line-height: 1.5;
 }
 
 .c-note-list li:not(:last-child){
  margin-bottom: 10px;
 }
 
 .c-note-list li:before{
  content: counter(item) ".";
  flex-shrink: 0;
  width: 0.8em;
  text-align: center;
 }

	.c-note-box__title {
		color: var(--c-primary);
		font-weight: 600;
		display: flex;
		align-items: center;
		gap: 5px;
		position: relative;
		line-height: 1;
	}
	.c-note-box__title::before {
		content: "";
		width: 17px;
		height: 17px;
		background: currentColor;
		mask: url("../images/common/icon-caution.svg") center / contain no-repeat;
		-webkit-mask: url("../images/common/icon-caution.svg") center / contain no-repeat;
		display: block;
		flex-shrink: 0;
	}

	.c-action-btn {
		width: fit-content;
		min-width: 250px;
		min-height: 46px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 24px;
		padding: 10px 22px;
		background: var(--c-primary);
		color: var(--c-wh);
		font-weight: 600;
		text-decoration: none;
	}

	.c-action-btn::after {
		content: "";
		width: 14px;
		height: 14px;
		background: currentColor;
		mask: url("../images/common/icon-arrow-white.svg") center / contain no-repeat;
		-webkit-mask: url("../images/common/icon-arrow-white.svg") center / contain no-repeat;
		flex: 0 0 auto;
	}

	@container main-content (max-width: 768px) {
		.c-info-table {
			grid-template-columns: 1fr;
			max-width: none;
		}

		.c-info-table dt {
			justify-content: flex-start;
		}

		.c-table-scroll table {
			display: table;
			overflow: visible;
			white-space: normal;
		}

		.c-schedule-list {
			grid-template-columns: 1fr;
			gap: 4px;
		}

		.c-schedule-list dd:not(:last-child) {
			margin-bottom: 8px;
		}
	}
	.c-tbl-note {
		font-size: var(--fz-14);
		align-self: flex-end;
		width: auto;
	}
	@container main-content (max-width: 999px) {
		.c-tbl-note {
			align-self: flex-start;
			width: 100%;
		}
	}
	@container main-content (max-width: 999px) {
		.c-tbl-scroll {
			overflow-x: auto !important;
			-webkit-overflow-scrolling: touch;
			padding-bottom: 10px;
		}
		.c-tbl-scroll .c-tbl {
			width: max-content;
			min-width: 100%;
		}
		.c-tbl-scroll .c-tbl-wrap {
			width: max-content;
			min-width: 100%;
		}
		.c-tbl-scroll .c-tbl th,
		.c-tbl-scroll .c-tbl td {
			white-space: nowrap;
			min-width: 100px;
		}
	}
}

/* ===== Utility ===== */
@layer utility {
	.is-red {
		color: var(--c-red);
	}

	.is-primary {
		color: var(--c-primary);
	}

	.is-center {
		text-align: center;
	}

	.is-right {
		text-align: right;
	}

	.is-left {
		text-align: left;
	}

	.u-visually-hidden {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}

	[x-cloak] {
		display: none !important;
	}

	.not-scroll {
		overflow: hidden;
		touch-action: none;
	}

	::-webkit-scrollbar {
		width: 0;
		height: 0;
	}

	.scroll-bar::-webkit-scrollbar {
		width: 5px;
		height: auto;
		border-radius: 999px;
	}
	@media (max-width: 999px) {
		.scroll-bar::-webkit-scrollbar {
			width: 3px;
			height: 5px;
		}
	}

	.scroll-bar::-webkit-scrollbar-thumb {
		background: var(--c-gray);
	}

	.scroll-bar::-webkit-scrollbar-track {
		background: var(--c-wh);
	}

	br.sp {
		display: none;
	}

	@media (max-width: 999px) {
		br.pc {
			display: none;
		}

		br.sp {
			display: inline;
		}
	}
}

/* ===== Override ===== */
@layer override {
}

.del{
 background-image: linear-gradient(transparent 0.5em, #cc0000cc 0, #cc0000cc calc(0.5em + 2px), transparent 0, transparent calc(0.5em + 5px), #cc0000cc 0, #cc0000cc calc(0.5em + 7px), transparent 0);
}
