/* ============================================================
   dxcommon.css
   .l-header / .l-footer — 元サイト（bso.benesse.ne.jp）準拠
   px → clamp 変換パターン:
     clamp(0px, 10vw / var(--board) * 10 * X, var(--max) * X)
   ============================================================ */

/* ----------------------------------------------------------
   Scoped Reset
   ---------------------------------------------------------- */
.l-header,
.l-footer {
	color: #4a4a4a;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.563;

	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

.l-header *,
.l-footer * {
	letter-spacing: .05em;
}

.l-header *,
.l-header *::before,
.l-header *::after,
.l-footer *,
.l-footer *::before,
.l-footer *::after {
	box-sizing: border-box;
}

.l-header h1,
.l-header h2,
.l-header h3,
.l-header h4,
.l-header p,
.l-header figure,
.l-header blockquote,
.l-header dl,
.l-header dd,
.l-footer h1,
.l-footer h2,
.l-footer h3,
.l-footer h4,
.l-footer p,
.l-footer figure,
.l-footer blockquote,
.l-footer dl,
.l-footer dd {
	margin: 0;
}

.l-header ul,
.l-header ol,
.l-footer ul,
.l-footer ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.l-header h1,
.l-header h2,
.l-header h3,
.l-header h4,
.l-header h5,
.l-header h6,
.l-footer h1,
.l-footer h2,
.l-footer h3,
.l-footer h4,
.l-footer h5,
.l-footer h6 {
	font-weight: normal;
}

.l-header a,
.l-footer a {
	outline: none;
	color: #0078c7;
	text-decoration: none;
}

.l-header img,
.l-header picture,
.l-footer img,
.l-footer picture {
	display: block;
	max-width: 100%;
}

.l-header img,
.l-footer img {
	max-width: 100%;
	height: auto;
}

.l-header strong,
.l-header em,
.l-header b,
.l-footer strong,
.l-footer em,
.l-footer b {
	font-weight: bold;
}

.l-header em,
.l-footer em {
	font-style: normal;
}

.l-header button,
.l-footer button {
	padding: 0;
	outline: none;
	border: none;
	background-color: transparent;
	color: inherit;
	cursor: pointer;

	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.l-header input,
.l-header textarea,
.l-header button,
.l-footer input,
.l-footer textarea,
.l-footer button {
	font-size: inherit;
	font-family: inherit;
	line-height: inherit;
}

.l-header table,
.l-footer table {
	border-spacing: 0;
}

/* ----------------------------------------------------------
   Utility
   ---------------------------------------------------------- */
.l-header .u-alternate,
.l-footer .u-alternate {
	position: absolute;
	z-index: -9999;
	display: inline;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px;
	height: 1px;
	background: transparent;
	color: transparent;
	font-size: 0;
}

.l-header .u-hidden,
.l-footer .u-hidden {
	display: none;
}

/* ----------------------------------------------------------
   c-inner
   ---------------------------------------------------------- */
.l-header .c-inner-narrow,
.l-footer .c-inner-narrow,
.l-header .c-inner-wide,
.l-footer .c-inner-wide,
.l-header .c-inner,
.l-footer .c-inner {
	margin-right: auto;
	margin-left: auto;
	padding-right: clamp(0px, 10vw / var(--board) * 10 * 27.5, var(--max) * 27.5);
	padding-left: clamp(0px, 10vw / var(--board) * 10 * 27.5, var(--max) * 27.5);
}

.l-header .c-inner,
.l-footer .c-inner {
	max-width: clamp(0px, 10vw / var(--board) * 10 * 1115, var(--max) * 1115);
}

.l-header .c-inner-wide,
.l-footer .c-inner-wide {
	max-width: none;
}

.l-header .c-inner-narrow,
.l-footer .c-inner-narrow {
	max-width: clamp(0px, 10vw / var(--board) * 10 * 1081, var(--max) * 1081);
}

/* ----------------------------------------------------------
   c-button / c-text-link
   ---------------------------------------------------------- */
.l-header .c-button,
.l-footer .c-button {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	justify-content: center;
	border: 1px solid;
	text-align: center;
	cursor: pointer;
}

.l-header .c-rollover-link,
.l-footer .c-rollover-link {
	transition: opacity .2s ease-out;
}

.l-header .c-text-link,
.l-footer .c-text-link {
	color: #0078c7;
	text-decoration: none;
	transition: opacity .2s ease-out;
}

.l-header .c-text-link--typo,
.l-footer .c-text-link--typo {
	color: #4a4a4a;
}

.l-header .c-text-link:hover,
.l-footer .c-text-link:hover {
	text-decoration: underline;
}

.l-header .c-text-link[target='_blank']::after,
.l-footer .c-text-link[target='_blank']::after {
	content: '';
	display: inline-block;
	margin-left: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	width: clamp(0px, 10vw / var(--board) * 10 * 11, var(--max) * 11);
	height: clamp(0px, 10vw / var(--board) * 10 * 11, var(--max) * 11);
	background: url('https://bso.benesse.ne.jp/common2024/images/icon_blank.svg') left center / contain no-repeat;
	vertical-align: middle;
}

.l-header .c-text-link--typo[target='_blank']::after,
.l-footer .c-text-link--typo[target='_blank']::after {
	background-image: url('https://bso.benesse.ne.jp/common2024/images/icon_blank_typo.svg');
}

.l-header .c-text-link[href$='pdf']::after,
.l-footer .c-text-link[href$='pdf']::after {
	content: '';
	display: inline-block;
	margin-left: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	width: clamp(0px, 10vw / var(--board) * 10 * 18, var(--max) * 18);
	height: clamp(0px, 10vw / var(--board) * 10 * 22, var(--max) * 22);
	background: url('https://bso.benesse.ne.jp/common2024/images/icon_pdf.svg') left center / clamp(0px, 10vw / var(--board) * 10 * 14, var(--max) * 14) clamp(0px, 10vw / var(--board) * 10 * 14, var(--max) * 14) no-repeat;
	vertical-align: middle;
}

/* ----------------------------------------------------------
   c-accordion
   ---------------------------------------------------------- */
.l-header .c-accordion-trigger,
.l-footer .c-accordion-trigger {
	cursor: pointer;
}

.l-header .c-accordion-target,
.l-footer .c-accordion-target {
	display: none;
}

.l-header .c-accordion-target.is-open,
.l-footer .c-accordion-target.is-open {
	display: block;
}

/* ----------------------------------------------------------
   l-header__fixed
   ---------------------------------------------------------- */
.l-header__fixed {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	padding-right: var(--scrollbar);
	width: 100vw;
	background: #fff;
}

.is-scrolled .l-header__fixed {
	background: rgba(255, 255, 255, .95);
	transition: all .5s;
}

/* ----------------------------------------------------------
   p-header
   ---------------------------------------------------------- */
.l-header .p-header {
	position: relative;
	display: flex;
	flex-direction: column;
	height: clamp(0px, 10vw / var(--board) * 10 * 110, var(--max) * 110);
}

.l-header .p-header__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 clamp(0px, 10vw / var(--board) * 10 * 31, var(--max) * 31);
	height: clamp(0px, 10vw / var(--board) * 10 * 45, var(--max) * 45);
}

.l-header .p-header__top-logo {
	flex-basis: clamp(0px, 10vw / var(--board) * 10 * 121, var(--max) * 121);
	transition: opacity .2s ease-out;
}

.l-header .p-header__top-button {
	flex: 1;
}

.l-header .p-header__main {
	position: relative;
	display: grid;
	padding: 0 clamp(0px, 10vw / var(--board) * 10 * 70, var(--max) * 70);
	height: clamp(0px, 10vw / var(--board) * 10 * 65, var(--max) * 65);

	grid-template-rows: auto;
	grid-template-columns: clamp(0px, 10vw / var(--board) * 10 * 313, var(--max) * 313) 1fr;
}

.l-header .p-header__main-logo a {
	transition: opacity .2s ease-out;
}

.l-header .p-header__main-nav {
	place-self: center end;
}

/* ----------------------------------------------------------
   p-header-button-list / p-button
   ---------------------------------------------------------- */
.l-header .p-header-button-list {
	display: flex;
	margin-left: auto;
	width: fit-content;
}

.l-header .p-header-button-list__item:not(:last-child) {
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
}

.l-header .p-button {
	background: transparent;
	transition: all .2s ease-out;
}

.l-header .p-button--login,
.l-header .p-button--contact {
	width: clamp(0px, 10vw / var(--board) * 10 * 130, var(--max) * 130);
	height: clamp(0px, 10vw / var(--board) * 10 * 34, var(--max) * 34);
	border-radius: clamp(0px, 10vw / var(--board) * 10 * 17, var(--max) * 17);
	color: #fff;
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
}

.l-header .p-button--login {
	background: #f2a200;
}

.l-header .p-button--contact {
	background: #0078c7;
}

/* ----------------------------------------------------------
   p-tooltip
   ---------------------------------------------------------- */
.l-header .p-tooltip-trigger {
	position: relative;
	display: block;
}

.l-header .p-tooltip {
	position: absolute;
	bottom: clamp(var(--max) * -10, 10vw / var(--board) * 10 * -10, 0px);
	left: clamp(var(--max) * -40, 10vw / var(--board) * 10 * -40, 0px);
	z-index: 2;
	display: none;
	width: fit-content;
	border: 1px solid #f2a200;
	border-radius: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	white-space: nowrap;
	transform: translateY(100%);
}

.l-header .p-tooltip::before,
.l-header .p-tooltip::after {
	content: '';
	position: absolute;
	left: clamp(0px, 10vw / var(--board) * 10 * 95, var(--max) * 95);
	margin-top: 2px;
	width: 0;
	height: 0;
	transform: translate(-50%, -100%);
}

.l-header .p-tooltip::before {
	top: 0;
	border-right: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) solid transparent;
	border-bottom: clamp(0px, 10vw / var(--board) * 10 * 17, var(--max) * 17) solid #f2a200;
	border-left: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) solid transparent;
}

.l-header .p-tooltip::after {
	top: 1px;
	border-right: clamp(0px, 10vw / var(--board) * 10 * 9, var(--max) * 9) solid transparent;
	border-bottom: clamp(0px, 10vw / var(--board) * 10 * 17, var(--max) * 17) solid #fff;
	border-left: clamp(0px, 10vw / var(--board) * 10 * 9, var(--max) * 9) solid transparent;
}

.l-header .p-tooltip__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	padding: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5) clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
	min-height: clamp(0px, 10vw / var(--board) * 10 * 58, var(--max) * 58);
	border-radius: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	background: #fff;
}

.l-header .p-tooltip__text {
	color: #f2a200;
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
	line-height: 1.5;
}

/* ----------------------------------------------------------
   p-gnav
   ---------------------------------------------------------- */
.l-header .p-gnav-list {
	display: flex;
	justify-content: flex-end;
	min-width: clamp(0px, 10vw / var(--board) * 10 * 567, var(--max) * 567);
	height: 100%;
}

.l-header .p-gnav-list__item:not(:last-child) {
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 15, var(--max) * 15);
	padding-right: clamp(0px, 10vw / var(--board) * 10 * 22.5, var(--max) * 22.5);
	background: url('https://bso.benesse.ne.jp/common2024/images/bg_item_slash.svg') right clamp(0px, 10vw / var(--board) * 10 * 7, var(--max) * 7) / clamp(0px, 10vw / var(--board) * 10 * 8, var(--max) * 8) clamp(0px, 10vw / var(--board) * 10 * 13, var(--max) * 13) no-repeat;
}

.l-header .p-gnav-link {
	display: inline-block;
	color: #0078c7;
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
	line-height: 1.5;
	cursor: pointer;
	transition: opacity .2s ease-out;

	--spacing: .1em;
}

.l-header .p-gnav-link--megamenu {
	position: relative;
	padding-right: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
}

.l-header .p-gnav-link--megamenu::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	margin-top: clamp(var(--max) * -2.5, 10vw / var(--board) * 10 * -2.5, 0px);
	width: clamp(0px, 10vw / var(--board) * 10 * 8, var(--max) * 8);
	height: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5);
	background: url('https://bso.benesse.ne.jp/common2024/images/icon_megamenu.svg') center center / clamp(0px, 10vw / var(--board) * 10 * 8, var(--max) * 8) clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5) no-repeat;
}

.l-header .p-gnav-link--megamenu:hover::after {
	transition: .3s;
	transform: rotate(-180deg);
}

.l-header .p-gnav-list__item.is-active .p-gnav-link::after {
	transition: .3s;
	transform: rotate(-180deg);
}

.l-header .p-gnav-sub-list__item:not(:last-child) {
	margin-bottom: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
}

/* ----------------------------------------------------------
   p-submenu (mega menu)
   ---------------------------------------------------------- */
.l-header .p-submenu {
	position: absolute;
	top: clamp(0px, 10vw / var(--board) * 10 * 65, var(--max) * 65);
	left: 0;
	z-index: 2;
	visibility: hidden;
	padding: clamp(0px, 10vw / var(--board) * 10 * 55, var(--max) * 55) var(--scrollbar) clamp(0px, 10vw / var(--board) * 10 * 61.5, var(--max) * 61.5) clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
	width: 100vw;
	background: #fafafa;
	opacity: 0;
	transition: .2s ease-out;
}

.l-header .p-gnav-list__item.is-active .p-submenu {
	visibility: visible;
	opacity: 1;
}

.l-header .p-submenu__inner {
	display: flex;
	justify-content: space-between;
	width: clamp(0px, 10vw / var(--board) * 10 * 1026, var(--max) * 1026);

	margin-inline: auto;
}

.l-header .p-submenu__header {
	position: relative;
	flex-basis: clamp(0px, 10vw / var(--board) * 10 * 261.5, var(--max) * 261.5);
}

.l-header .p-submenu__header::after {
	content: '';
	position: absolute;
	top: clamp(0px, 10vw / var(--board) * 10 * 6, var(--max) * 6);
	right: 0;
	display: block;
	width: 1px;
	height: calc(100% - clamp(0px, 10vw / var(--board) * 10 * 12, var(--max) * 12));
	background: #0078c7;
}

.l-header .p-submenu__content {
	flex: 1;
	padding-left: clamp(0px, 10vw / var(--board) * 10 * 60, var(--max) * 60);
}

.l-header .p-submenu-nav {
	display: grid;
	column-gap: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);

	grid-template-rows: auto;
	grid-template-columns: repeat(3, 1fr);
}

.l-header .p-submenu-header__title {
	color: #0078c7;

	--spacing: 0;
}

.l-header .p-submenu-header__title-en {
	position: relative;
	display: block;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 48, var(--max) * 48);
	font-family: 'Bellota Text', sans-serif;
	line-height: 1.25;
	opacity: .6;

	--spacing: .02em;
}

.l-header .p-submenu-header__title-text {
	display: block;
	margin-top: clamp(var(--max) * -5, 10vw / var(--board) * 10 * -5, 0px);
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 17, var(--max) * 17);
	line-height: 1.471;

	--spacing: .1em;
}

/* ----------------------------------------------------------
   p-drawer-nav (SP navigation — hidden on PC)
   ---------------------------------------------------------- */
.l-header .p-drawer-nav-sub-link {
	display: inline-block;
	color: #4a4a4a;
	font-weight: 500;
	line-height: 1.5;
	transition: opacity .2s ease-out;
}

.l-header .p-drawer-nav-sub-link[target='_blank']::after {
	background-image: url('https://bso.benesse.ne.jp/common2024/images/icon_blank_gray.svg');
}

.l-header .p-drawer-nav-sub-link small {
	font-size: clamp(0px, 10vw / var(--board) * 10 * 13, var(--max) * 13);
}

.l-header .p-nav-btn {
	display: none;
}

.l-header .p-drawer-nav-btn {
	display: block;
	width: 100%;
	height: 100%;
}

.l-header .p-drawer-nav-btn__link {
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
}

.is-scrolled .l-header .p-drawer-nav-btn__link {
	background-color: transparent;
}

.l-header .p-drawer-nav-btn__link--open {
	z-index: 100;
	background-image: url('https://bso.benesse.ne.jp/common2024/images/btn_header_gnav_open.svg');
	opacity: 1;
	transition: .8s;
}

.l-header .p-drawer-nav-btn__link--open.is-active {
	z-index: 0;
	background-image: none;
	opacity: 0;
}

.p-drawer-nav-btn__link--open.is-active+.p-drawer-nav-btn__link--close {
	z-index: 1;
	background-image: url('https://bso.benesse.ne.jp/common2024/images/btn_header_gnav_close.svg');
	opacity: 1;
}

.l-header .p-drawer-nav-btn__text {
	position: absolute;
	z-index: -9999;
	display: inline;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px;
	height: 1px;
	font-size: 0;
}

.l-header .p-drawer-nav {
	position: absolute;
	top: clamp(0px, 10vw / var(--board) * 10 * 65, var(--max) * 65);
	left: 0;
	z-index: 99;
	display: none;
	overflow-y: auto;
	width: 100vw;
	height: calc(100vh - clamp(0px, 10vw / var(--board) * 10 * 145, var(--max) * 145));
}

.l-header .p-drawer-nav__inner {
	padding: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20) clamp(0px, 10vw / var(--board) * 10 * 30, var(--max) * 30) clamp(0px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
	width: 100%;
	background: #fafafa;
}

.l-header .p-drawer-nav-link {
	display: block;
	padding: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) 0;
	color: #0078c7;
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
	line-height: 1.5;
	transition: opacity .2s ease-out;

	--spacing: .1em;
}

.l-header .p-drawer-nav-link--megamenu {
	position: relative;
	display: inline-block;
	padding-right: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
}

.l-header .p-drawer-nav-link--megamenu::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	margin-top: clamp(var(--max) * -2.5, 10vw / var(--board) * 10 * -2.5, 0px);
	width: clamp(0px, 10vw / var(--board) * 10 * 8, var(--max) * 8);
	height: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5);
	background: url('https://bso.benesse.ne.jp/common2024/images/icon_megamenu.svg') center center / clamp(0px, 10vw / var(--board) * 10 * 8, var(--max) * 8) clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5) no-repeat;
}

.p-drawer-nav-accordion.is-opened .l-header .p-drawer-nav-link--megamenu::after {
	transition: .3s;
	transform: rotate(-180deg);
}

.l-header .p-drawer-nav-accordion {
	display: block;
	cursor: pointer;
}

.l-header .p-drawer-nav-target {
	padding: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) 0 clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
}

/* ----------------------------------------------------------
   l-footer
   ---------------------------------------------------------- */
.l-footer {
	padding-top: clamp(0px, 10vw / var(--board) * 10 * 55, var(--max) * 55);
}

.l-footer .p-pagetop.js-pagetop {
	display: none !important;
}

.l-footer .p-copyright {
	display: inline-block;
}

.l-footer .p-footer-logo {
	transition: opacity .2s ease-out;
}

.l-footer .p-management {
	display: block;
	margin-top: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
	color: #9f9f9f;
	text-align: center;
	font-weight: 500;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
}

/* ----------------------------------------------------------
   p-footer nav
   ---------------------------------------------------------- */
.l-footer .p-footer-nav-link {
	font-weight: 700;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
}

.l-footer .p-footer-nav-link--lv2 {
	color: #4a4a4a;
	font-weight: 500;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 13, var(--max) * 13);
}

.l-footer .p-footer-nav-link--lv2[target='_blank']::after {
	background-image: url('https://bso.benesse.ne.jp/common2024/images/icon_blank_gray.svg');
}

.l-footer .p-footer-nav-link--lv2 small {
	font-size: clamp(0px, 10vw / var(--board) * 10 * 11, var(--max) * 11);
}

.l-footer span.p-footer-nav-link {
	color: #0078c7;
}

.l-footer .p-footer-nav-list:not(.p-footer-nav-list--lv2) {
	display: grid;

	grid-template-rows: auto;
	grid-template-columns: clamp(0px, 10vw / var(--board) * 10 * 180, var(--max) * 180) 1fr;
	row-gap: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
}

.l-footer .p-footer-nav-list__item--philosophy {
	grid-area: 1 / 1 / 2 / 2;
}

.l-footer .p-footer-nav-list__item--service {
	grid-area: 1 / 2 / 6 / 3;
}

.l-footer .p-footer-nav-list__item--case {
	grid-area: 2 / 1 / 3 / 2;
}

.l-footer .p-footer-nav-list__item--event {
	grid-area: 3 / 1 / 4 / 2;
}

.l-footer .p-footer-nav-list__item--news {
	grid-area: 4 / 1 / 5 / 2;
}

.l-footer .p-footer-nav-list__item--contact {
	grid-area: 5 / 1 / 6 / 2;
}

.l-footer .p-footer-nav-list--lv2 {
	margin-top: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	column-count: 2;
}

/* ----------------------------------------------------------
   p-footer__main / __bottom
   ---------------------------------------------------------- */
.l-footer .p-footer__main {
	display: flex;
	justify-content: space-between;
	padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 69, var(--max) * 69);
}

.l-footer .p-footer__main-logo {
	flex-basis: clamp(0px, 10vw / var(--board) * 10 * 304, var(--max) * 304);
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 90, var(--max) * 90);
}

.l-footer .p-footer__main-nav {
	flex: 1;
}

.l-footer .p-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 clamp(0px, 10vw / var(--board) * 10 * 65, var(--max) * 65);
	min-height: clamp(0px, 10vw / var(--board) * 10 * 75, var(--max) * 75);
	color: #9f9f9f;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
	line-height: 1.5;
}

.l-footer .p-footer__bottom-logo {
	flex-basis: clamp(0px, 10vw / var(--board) * 10 * 130, var(--max) * 130);
	order: 1;
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 15, var(--max) * 15);
	padding-top: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5);
	min-height: clamp(0px, 10vw / var(--board) * 10 * 45, var(--max) * 45);
}

.l-footer .p-footer__bottom-list {
	overflow: hidden;
	flex: 1;
	order: 3;
}

.l-footer .p-footer__bottom-copyright {
	flex-shrink: 0;
	order: 2;
	width: fit-content;
}

/* ----------------------------------------------------------
   p-footer-info-list
   ---------------------------------------------------------- */
.l-footer .p-footer-info-list {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: clamp(var(--max) * -10, 10vw / var(--board) * 10 * -10, 0px);
	margin-left: auto;
	width: fit-content;
}

.l-footer .p-footer-info-list__item {
	position: relative;
	margin-bottom: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
}

.l-footer .p-footer-info-list__item:not(:last-child) {
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	padding-right: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
}

.l-footer .p-footer-info-list__item:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	width: 1px;
	height: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	background: #d8d8d8;
	transform: translateY(-50%);
}

.l-footer .p-footer-info-list__item a {
	display: block;
	color: inherit;
}

.l-footer .p-footer-info-list__item a[target='_blank']::after {
	display: none;
}

/* ============================================================
   PC only (min-width: 769px)
   ============================================================ */
@media screen and (min-width: 769px) {

	.l-header .u-pc-hidden,
	.l-footer .u-pc-hidden {
		display: none !important;
	}

	body:not(.is-touch-device) .l-header .p-tooltip-trigger:hover .p-tooltip {
		display: block;
		opacity: 1;
	}
}

/* ============================================================
   SP (max-width: 768px)
   ============================================================ */
@media screen and (max-width: 768px) {

	.l-header .c-inner-narrow,
	.l-footer .c-inner-narrow,
	.l-header .c-inner-wide,
	.l-footer .c-inner-wide,
	.l-header .c-inner,
	.l-footer .c-inner {
		padding-right: 7.33333vw;
		padding-left: 7.33333vw;
	}

	.l-header,
	.l-footer {
		min-width: 320px;
		font-size: clamp(0px, 10vw / var(--board) * 10 * 15, var(--max) * 15);
		line-height: 1.467;
	}

	.l-header .u-sp-hidden,
	.l-footer .u-sp-hidden {
		display: none !important;
	}

	.l-header__fixed {
		min-width: 100%;
	}

	body.is-touch-device .l-header__fixed {
		padding-right: 0;
	}

	/* p-header */
	.l-header .p-header {
		height: clamp(0px, 10vw / var(--board) * 10 * 105, var(--max) * 105);
	}

	.l-header .p-header__top {
		padding: 0 2.13333vw;
		min-width: auto;
		height: clamp(0px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
	}

	.l-header .p-header__top-logo {
		flex-basis: clamp(0px, 10vw / var(--board) * 10 * 86.44, var(--max) * 86.44);
	}

	.l-header .p-header__main {
		align-items: center;
		padding: 0 5.33333vw;
		min-width: auto;
		height: clamp(0px, 10vw / var(--board) * 10 * 65, var(--max) * 65);

		grid-template-columns: clamp(0px, 10vw / var(--board) * 10 * 193, var(--max) * 193) 1fr;
	}

	.l-header .p-header__main-logo {
		padding-top: 0;
	}

	/* p-button SP */
	.l-header .p-button--login,
	.l-header .p-button--contact {
		width: clamp(0px, 10vw / var(--board) * 10 * 90, var(--max) * 90);
		height: clamp(0px, 10vw / var(--board) * 10 * 26, var(--max) * 26);
		border-radius: clamp(0px, 10vw / var(--board) * 10 * 13, var(--max) * 13);
		font-size: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	}

	.l-header .p-header-button-list__item:not(:last-child) {
		margin-right: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5);
	}

	/* p-gnav SP */
	.l-header .p-gnav {
		display: none;
	}

	/* p-nav-btn SP */
	.l-header .p-nav-btn {
		position: relative;
		z-index: 100;
		display: block;
		width: clamp(0px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
		height: clamp(0px, 10vw / var(--board) * 10 * 13, var(--max) * 13);
		transition: opacity .3s;
	}

	/* p-drawer-nav-sub-link SP */
	.l-header .p-drawer-nav-sub-link {
		font-size: clamp(0px, 10vw / var(--board) * 10 * 15, var(--max) * 15);
		line-height: 1.467;
	}

	.l-header .p-drawer-nav-sub-link small {
		font-size: clamp(0px, 10vw / var(--board) * 10 * 12, var(--max) * 12);
	}

	/* l-footer SP */
	.l-footer {
		padding-top: clamp(0px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
		padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 15, var(--max) * 15);
	}

	.l-footer .p-footer-logo {
		display: block;
		max-width: clamp(0px, 10vw / var(--board) * 10 * 200, var(--max) * 200);

		margin-inline: auto;
	}

	.l-footer .p-management {
		margin-top: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	}

	.l-footer .p-footer-nav-list:not(.p-footer-nav-list--lv2) {
		gap: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10) clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
		width: fit-content;

		grid-template-columns: auto 1fr;
		margin-inline: auto;
	}

	.l-footer .p-footer-nav-list--lv2 {
		column-count: auto;
	}

	.l-footer .p-footer-nav-list--lv2 .p-footer-nav-list__item {
		margin-top: clamp(0px, 10vw / var(--board) * 10 * 10, var(--max) * 10);
	}

	.l-footer .p-footer__main {
		display: block;
		padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 30, var(--max) * 30);
	}

	.l-footer .p-footer__main-logo {
		margin-bottom: clamp(0px, 10vw / var(--board) * 10 * 30, var(--max) * 30);
		max-width: fit-content;

		margin-inline: auto;
	}

	.l-footer .p-footer__bottom {
		display: block;
		padding: 0 7.33333vw;
	}

	.l-footer .p-footer__bottom-logo {
		padding-top: 0;
		width: fit-content;

		margin-inline: auto;
	}

	.l-footer .p-footer__bottom-list {
		padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 5, var(--max) * 5);
		width: fit-content;

		margin-inline: auto;
	}

	.l-footer .p-footer__bottom-copyright {
		margin-inline: auto;
	}
}

/* ============================================================
   Hover
   ============================================================ */
@media (any-hover: hover) {

	.l-header .c-rollover-link:hover,
	.l-footer .c-rollover-link:hover {
		opacity: .7;
	}

	.l-header .c-text-link:hover,
	.l-footer .c-text-link:hover {
		opacity: .7;
	}

	.l-header .p-button:hover {
		opacity: .7;
	}

	.l-header .p-header__top-logo:hover {
		opacity: .7;
	}

	.l-header .p-header__main-logo a:hover {
		opacity: .7;
	}

	.l-header .p-drawer-nav-sub-link:hover {
		opacity: .7;
	}

	.l-header .p-gnav-link:hover {
		opacity: .7;
	}

	.l-header .p-drawer-nav-link:hover {
		opacity: .7;
	}

	.l-footer .p-footer-logo:hover {
		opacity: .7;
	}
}

/* ============================================================
   #m-nav — ページ内サブナビゲーション
   ============================================================ */
.m-header {
	background-color: #d5d8dd;
}

.m-header-navigation {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0 auto;
	max-width: clamp(0px, 10vw / var(--board) * 10 * 1080, var(--max) * 1080);
	height: clamp(0px, 10vw / var(--board) * 10 * 70, var(--max) * 70);
	color: #2a3054;
}

.m-header-navigation.active {
	position: relative;
}

.nav-toggle {
	display: none;
	border: none;
	color: #333;
	cursor: pointer;
}

.nav-title {
	width: clamp(0px, 10vw / var(--board) * 10 * 280, var(--max) * 280);
}

.nav-title img {
	display: block;
	max-width: 100%;
	height: auto;
}

.nav-list {
	display: flex;
	gap: clamp(0px, 10vw / var(--board) * 10 * 28, var(--max) * 28);
	margin: 0;
	margin-right: clamp(0px, 10vw / var(--board) * 10 * 38, var(--max) * 38);
	margin-left: auto;
	padding: 0;
	list-style: none;
}

.nav-list__item a {
	position: relative;
	display: block;
	color: #2a3054;
	text-decoration: none;
	font-weight: bold;
	font-size: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
}

.nav-list__item.close {
	display: none;
}

.nav-list__item.current a::after {
	content: '';
	position: absolute;
	bottom: -3px;
	display: block;
	width: 100%;
	height: 2px;
	background-color: #2a3054;
}

.link-button {
	width: clamp(0px, 10vw / var(--board) * 10 * 170, var(--max) * 170);
}

.link-button img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* --- #m-nav SP (max-width: 767px) --- */
@media screen and (max-width: 767px) {
	.m-header-navigation {
		padding: 0 5.33333vw;
		height: 12vw;
	}

	.nav-toggle {
		position: relative;
		display: block;
		margin-left: 4.8vw;
		padding: 0;
		width: 6.66667vw;
		height: 12vw;
		background-color: transparent;
	}

	.nav-toggle span {
		position: absolute;
		top: 3.73333vw;
		right: 0;
		display: block;
		margin: 0;
		width: 100%;
		height: 2px;
		border: none;
		background: #000;
		transition: .3s;
		transform-origin: 0 50%;
	}

	.nav-toggle span:nth-of-type(2) {
		top: 5.86667vw;
	}

	.nav-toggle span:nth-of-type(3) {
		top: 8vw;
	}

	.m-header-navigation.active .nav-toggle span:first-of-type {
		right: -.533333vw;
		width: 96%;
		transform: rotate(45deg);
	}

	.m-header-navigation.active .nav-toggle span:nth-of-type(2) {
		opacity: 0;
	}

	.m-header-navigation.active .nav-toggle span:nth-of-type(3) {
		top: 8vw;
		right: -.533333vw;
		width: 96%;
		transform: rotate(-45deg);
	}

	.m-header-navigation.active .nav-list {
		position: absolute;
		top: 12vw;
		right: 0;
		z-index: 2;
		display: flex;
		flex-direction: column;
		margin: 0;
		border-radius: 0 0 0 3.2vw;
		background-color: rgba(255, 255, 255, .9);
	}

	.nav-title {
		width: 42.6667vw;
	}

	.nav-list {
		display: none;
		align-items: center;
		flex-direction: column;
		gap: 5.6vw;
		padding: 4.8vw 0 8.8vw;
		width: 42.6667vw;
	}

	.nav-list__item a {
		display: inline-flex;
		margin: auto;
		font-size: 4vw;
	}

	.nav-list__item.close {
		display: block;
	}

	.nav-list__item.close .button--close {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 22.6667vw;
		height: 6.66667vw;
		border: none;
		border-radius: 3.33333vw;
		background-color: #dcdfe3;
		color: #2a3054;
		font-weight: bold;
		font-size: 3.2vw;
		font-family: 'Noto Sans JP', sans-serif;
		cursor: pointer;
	}

	.nav-list__item.current a::after {
		bottom: -1.06667vw;
		left: 50%;
		width: 100%;
		transform: translateX(-50%);
	}

	.link-button {
		margin-left: auto;
		width: 22.6667vw;
	}
}

/* ============================================================
   Safari image-rendering
   ============================================================ */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (-webkit-min-device-pixel-ratio: 0),
screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {

	.l-header img,
	.l-footer img {
		image-rendering: -webkit-optimize-contrast;
	}

	.is-touch-device .l-header img,
	.is-touch-device .l-footer img {
		image-rendering: auto;
	}
}

#m-nav {
	margin-top: clamp(0px, 10vw / var(--board) * 10 * 110, var(--max) * 110);
}

@media screen and (max-width: 767px) {
	#m-nav {
		margin-top: clamp(0px, 10vw / var(--board) * 10 * 105, var(--max) * 105);
	}
}

/* ============================================================
   html.is-nav-active — SP ドロワー展開時のスクロール禁止
   ============================================================ */
html.is-nav-active {
	position: fixed;
	z-index: 0;
	overflow: hidden;
	width: 100%;
	height: 100%;
}

/* ============================================================
   .p-overlay — SP ドロワー背面オーバーレイ
   ============================================================ */
.p-overlay {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 98;
	display: none;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, .75);
}

.p-overlay.is-megamenu-active {
	display: block;
}
