:root {
	--base-txt: 1.6rem;
	--large-txt: 3.3rem;

	--gt: calc(31 / 1072 * 100vw);
	--gt2: calc(62 / 1072 * 100vw);
	--col1: calc( 245 / 1072 * 100vw);
	--col1gt: calc( 276 / 1072 * 100vw);
	--col2: calc( 521 / 1072 * 100vw);
	--col2gt: calc( 552 / 1072 * 100vw);
	--col3: calc( 797 / 1072 * 100vw);
	--col3gt: calc( 828 / 1072 * 100vw);
	--col4: calc( 1073 / 1072 * 100vw);
	--col1gt2: calc(307 / 1072 * 100vw);
	--gt0half: calc(15.5 / 1072 * 100vw);
	--gt1half: calc(46.5 / 1072 * 100vw);

	--gt4: calc(124 / 1072 * 100vw);
	--gt5: calc(156 / 1072 * 100vw);
	--gt8: calc(248 / 1072 * 100vw);
	--gt14: calc(434 / 1072 * 100vw);
	
	--red: rgb(236, 0, 140);
}

@media screen and (min-width: 1072px) {
	:root {
		--base-txt: 1.6rem;
		--large-txt: 3.3rem;
		
		--gt: 31px;
		--gt2: 62px;
		--col1: 245px;
		--col1gt: 276px;
		--col2: 521px;
		--col2gt: 552px;
		--col3: 797px;
		--col3gt: 828px;
		--col4: 1073px;
		--col1gt2: 307px;
		--gt0half: 15.5px;
		--gt1half: 46.5px;

		--gt4: 124px;
		--gt14: 434px;
	}
}

@media screen and (max-width: 420px) {
	:root {
		--base-txt: 1.4rem;
		--large-txt: 2.2rem;
	}
}

@media screen and (max-width: 320px) {
	:root {
		--base-txt: 1.4rem;
		--large-txt: 2.1rem;
	}
}




html {
	font-size: 10px;
	color: #000;
}

body, * {
	border: 0;
	outline: 0;
	line-height: 2.0;
	vertical-align: baseline;
	box-sizing: border-box;
	/*font-family: "yu-mincho-pr6n", serif;*/
	font-family: serif;
	font-weight: 400;
	font-style: normal;
	font-size: var(--base-txt);
}

#loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	z-index: 9999;
	display: flex;
	justify-content: center;
	align-items: center;
}

#loading-text {
	display: inline-block;
	font-size: 50px;
}

#icon-loader {
	width: 25px;
	height: 25px;
}





a,
button,
.slick-arrow,
#prof__btn {
	margin: 0;
	padding: 0;
	color: #000;
	background: transparent;
	text-decoration: none;
}

a:hover,
.menu_btn-close:hover,
button:hover,
.slick-arrow:hover,
#prof__btn:hover {
	color: #999;
	cursor: pointer;
}


p {
	line-height: 2.0;
}

img {
	max-width: 100%;
	vertical-align: bottom;
}

body {
	width: 100%;
	min-height: 100vh;
}

body.menu-active {
	overflow: hidden;

}

#wrapper {
	position: relative;
	width: 100%;
	min-height: 100vh;
	margin: 0 auto;
	padding-top: var(--gt);
	padding-bottom: var(--gt);
	overflow: hidden;
}

#container {
    width: 100%;
    padding-top: 60px; /* ヘッダーの高さに合わせて調整 */
}

#header-wrapper {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1000; /* ヘッダーの高さに合わせて調整 */
}

#header {
	position: absolute;
	top: 0;
	left: 50%;
    width: 1072px;
	max-width: 100%;
	padding: 32px 0 0;
    display: flex;
    justify-content: flex-start;
	align-items: flex-start;
	transform: translateX(-50%);
    transition: none;
	pointer-events: none;
}

#header.sticky {
    position: fixed;
}

#site-title {
	width: 176px;
	text-align: left;
}

#site-title,
#menu,
#btn-menu {
	pointer-events: auto;
}

#site-title,
#btn-menu {
	font-size: 16px;
	line-height: 1;
	flex: 0 0 auto;
}

#site-title a,
#btn-menu span {
	display: inline-block;
}

#btn-menu span {
	cursor: pointer;
}

#content {
    padding-top: 60px; /* ヘッダーの高さに応じて調整 */
}


h2 {
	font-size: var(--large-txt);
}


.loading-icon {
	display: none; /* 最初は非表示 */
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 2em;
	color: #000;
}



/* =====================================================================
	= MENU
=====================================================================*/
#menu {
	margin: 0;
	flex: 0 0 auto;
}

.menu_bar {
	text-align: left;
}

.menu_list {
	display: inline-block;
}

.menu_list_item {
	line-height: 1;
	font-size: 12px;
}

.menu_list_item a {
	position: relative;
	display: block;
	padding: 0.5em 0;
}

.menu_list_item a sup {
	position: absolute;
	top: 1.1em;
	font-size: 50%;
}

#btn-menu,
.menu_site-title,
.menu_btn-close {
	display: none;
}

@media screen and (max-width: 767px) {
	#btn-menu {
		display: inline-block;
	}
	
	#menu {
		position: fixed;
		width: 100%;
		max-width: 1072px;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		visibility: hidden;
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		z-index: 1000;
		background: #fff;
	}

	.menu-active #menu {
		visibility: visible;
	}
	
	.menu_site-title {
		position: absolute;
		top: 0;
		left: 0;
		font-size: var(--large-txt);
		line-height: 1;
	}
	
	.menu_site-title a {
		display: inline-block;
		padding: var(--gt2);
	}

	.menu_btn-close {
		position: absolute;
		top: 0;
		right: 0;
		padding: var(--gt2);
		font-size: var(--large-txt);
		line-height: 1;
	}
	
	.menu_list {
		text-align: left;
		width: 100%;
	}

	.menu_list_item {
		font-size: var(--large-txt);
		line-height: 1;
		font-size: 12px;
	}

	.menu_list_item a {
		position: relative;
		display: block;
		padding: 0.5em;
	}

	.menu_list_item a sup {
		position: absolute;
		top: 1.1em;
		font-size: 50%;
	}
}


/* =====================================================================
	= NEWS HEADLINE
=====================================================================*/
.news-headline-wrapper {
	position: relative;
	width: 1072px;
	margin: 0 auto;
}

.news-headline {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 100;
	width: 100%;
	margin: 0 auto;
	padding: 32px 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	/*background-color: rgb(0 0 0 / 0.5);*/
}

.news-headline__list {
	flex: 0 0 608px;
	position: relative;
	line-height: 1;
	border-bottom: 0.5px solid #000;
}

.news-headline__item {
	display: flex;
	align-items: center;
	gap: 1.5em;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
}


.news-headline__date {
	flex: 0 0 auto;
	font-size: 10px;
}

.news-headline__title {
	display: block;
	font-size: 12px;
}

.news-modal[hidden] {
	display: none;
}

.news-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
}

.news-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(10px);
	cursor: pointer;
}

.news-modal__content {
	position: relative;
	z-index: 2;
	width: min(1072px, calc(100% - 60px));
	max-height: calc(100vh - 60px);
	margin: 30px auto;
	background: #f4f4f4;
	overflow: auto;
}

.news-modal__inner {
	padding: 40px;
}

.news-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 20px;
	border-bottom: 1px solid #666;
}

.news-modal__title {
	margin: 0;
	font-size: 2rem;
	font-weight: 400;
}

.news-modal__close {
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 3rem;
	line-height: 1;
	cursor: pointer;
}

.news-modal__item {
	padding: 40px 0;
	border-bottom: 1px solid #999;
}

.news-modal__item-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 40px;
}

.news-modal__image img {
	display: block;
	max-width: 480px;
	height: auto;
}

.news-modal__date {
	margin: 0 0 16px;
}

.news-modal__item-title {
	margin: 0;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.6;
}

.news-modal__divider {
	margin: 24px 0;
}

.news-modal__excerpt p:first-child {
	margin-top: 0;
}

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


@media screen and (max-width: 767px) {
	.news-modal__content {
		width: calc(100% - 24px);
		max-height: calc(100vh - 24px);
		margin: 12px auto;
	}

	.news-modal__inner {
		padding: 20px;
	}

	.news-modal__title {
		font-size: 1.8rem;
	}

	.news-modal__close {
		font-size: 2.8rem;
	}

	.news-modal__item {
		padding: 28px 0;
	}

	.news-modal__item-inner {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.news-modal__item-title {
		font-size: 1.5rem;
		line-height: 1.7;
	}
}


/* =====================================================================
	= FOOTER
=====================================================================*/
footer {
	width: var(--col4);
	margin: var(--col1) auto 0;
	display: flex;
	justify-content: flex-start;
	align-items: flex-end;
}

.copyright {
	flex: 0 0 var(--col2gt);
	width: var(--col2gt);
}

.footer__menu,
.footer__sns {
	flex: 0 0 calc(184 / 1072 * 100vw);
	width: calc(184 / 1072 * 100vw);
}


.backtotop {
	white-space: nowrap;
}

.footer__menu li a,
.footer__sns li a {
	display: block;
	position: relative;
}


i.icon-x {
	display: block;
	font-size: var(--large-txt);
	text-decoration: none;
	line-height: 1;
	/*transform: rotate(45deg);*/
}


sup.icon-ext {
	position: absolute;
	top: 0.1em;
	display: inline-block;
	transform: rotate(45deg);
	vertical-align: bottom;
}



@media screen and (min-width: 1198px) {
	#wrapper {
		width: 1072px;
	}

	#header {
		width: 1072px;
	}

	.footer__menu,
	.footer__sns {
		flex: 0 0 184px;
		width: 184px;
	}
}


@media screen and (min-width: 431px) {
	.visible-sp {
		display: none;
	}
}

@media screen and (max-width: 1062px) {

	footer {
		justify-content:space-between;
	}
	.footer__menu,
	.footer__sns {
		display: none;
		/*width: var(--col1gt);*/
	}
}

@media screen and (max-width: 768px) {
	a:hover,
	button:hover,
	.slick-arrow:hover,
	#prof__btn:hover {
		color: #000;
	}
}

@media screen and (max-width: 430px) {
	.hidden-sp {
		display: none;
	}

	.menu_list_item {
		padding: 0.25em;
	}

	.copyright {
		width: var(--col1gt);
	}
}






