/*==========================================================
基本設定
========================================================= */
:root{
	--navy:#071c5c;
	--blue:#0b3995;
	--cyan:#17a8d5;
	--pale:#edf7fb;
	--yellow:#e8d000;
	--text:#1b2942;
	--white:#fff;
	--sidebar:240px;
	--ease:cubic-bezier(.22,1,.36,1);
}
*{
	box-sizing:border-box;
}
html{
	scroll-behavior:smooth;
	scroll-padding-top:32px;
}
body{
	margin:0;
	background:linear-gradient(145deg,#eef8fc 0%,#f9fbfc 45%,#eaf5fa 100%);
	color:var(--text);
	font-family:"Noto Sans JP",sans-serif;
	font-size:16px;
	line-height:1.9;
	-webkit-font-smoothing:antialiased;
}
body.is-menu-open{
	overflow:hidden;
}
a{
	color:inherit;
	text-decoration:none;
}
#main-content a{
	color:#0078FA;
	text-decoration:underline;
}
#main-content a:hover{
	color:#4B9FFA;
	text-decoration:underline;
}
img{
	display:block;
	max-width:100%;
	height:auto;
}
.visually-hidden{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}
.skip-link{
	position:fixed;
	top:-100px;
	left:16px;
	z-index:1000;
	background:#fff;
	padding:8px 16px;
	color:var(--navy);
}
.skip-link:focus{
	top:8px;
}
@media(max-width:767px){
	html{
		scroll-padding-top:78px;
	}
	body{
		font-size:14px;
	}
}
/*==========================================================
全体レイアウト
========================================================= */
.site-layout{
	display:grid;
	grid-template-columns:var(--sidebar) minmax(0,1040px);
	width:100%;
	max-width:1280px;
	margin:0 auto;
	background:#f7fafc;
	box-shadow:0 0 50px rgba(3,28,70,.1);
}
@media(max-width:767px){
	.site-layout{
		display:block;
		width:100%;
		padding-top:68px;
		box-shadow:none;
	}
}
/*==========================================================
サイドバー・ナビゲーション
========================================================= */
.sidebar{
	position:relative;
	z-index:100;
	background:linear-gradient(180deg,#071c5c 0%,#0b3b94 68%,#087aaa 100%);
	color:#fff;
}
.sidebar__inner{
	position:sticky;
	top:0;
	display:flex;
	flex-direction:column;
	height:100vh;
	padding:30px 25px 20px;
	overflow-y:auto;
	scrollbar-width:thin;
	scrollbar-color:rgba(255,255,255,.3) transparent;
}
.sidebar__logo{
	display:block;
	margin-bottom:25px;
	padding-bottom:25px;
	border-bottom:1px solid rgba(255,255,255,.18);
}
.sidebar__logo img{
	width:100%;
	max-height:105px;
}
.nav__list{
	display:flex;
	flex-direction:column;
	gap:1px;
	margin:0;
	padding:0;
	list-style:none;
}
.nav__list a{
	position:relative;
	display:block;
	padding:5px 0 5px 17px;
	font-size:16px;
	font-weight:500;
	letter-spacing:.06em;
	transition:color .3s ease,transform .3s var(--ease);
}
.nav__list a::before{
	position:absolute;
	top:50%;
	left:0;
	width:7px;
	height:1px;
	background:rgba(255,255,255,.4);
	content:"";
	transition:width .3s var(--ease),background .3s ease;
}
.nav__list a::after{
	position:absolute;
	right:0;
	bottom:3px;
	left:17px;
	height:1px;
	background:var(--yellow);
	content:"";
	transform:scaleX(0);
	transform-origin:left;
	transition:transform .35s var(--ease);
}
.nav__list a:hover,.nav__list a.is-active{
	color:#fff;
	transform:translateX(3px);
}
.nav__list a:hover::before,.nav__list a.is-active::before{
	width:11px;
	background:var(--yellow);
}
.nav__list a.is-active::after{
	transform:scaleX(1);
}
.sidebar__copyright{
	margin:auto 0 0;
	padding-top:18px;
	color:rgba(255,255,255,.55);
	font:500 10px "Roboto",sans-serif;
	letter-spacing:.16em;
}
.sp-header{
	display:none;
}
@media(max-width:767px){
	.sp-header{
		position:fixed;
		top:0;
		right:0;
		left:0;
		z-index:300;
		display:flex;
		justify-content:space-between;
		align-items:center;
		height:68px;
		padding:8px 16px;
		background:var(--navy);
		box-shadow:0 3px 16px rgba(2,33,67,.12);
		backdrop-filter:blur(10px);
	}
	.sp-header__logo{
		width:155px;
		height:52px;
	}
	.sp-header__logo img{
		width:100%;
		height:100%;
		object-fit:contain;
		object-position:left center;
	}
	.menu-button{
		position:relative;
		width:46px;
		height:46px;
		padding:0;
		background:var(--navy);
		border:0;
		border-radius:50%;
		cursor:pointer;
	}
	.menu-button span{
		position:absolute;
		left:13px;
		width:20px;
		height:1px;
		background:#fff;
		transition:transform .35s var(--ease),top .35s var(--ease),opacity .25s ease;
	}
	.menu-button span:nth-child(1){
		top:15px;
	}
	.menu-button span:nth-child(2){
		top:22px;
	}
	.menu-button span:nth-child(3){
		top:29px;
	}
	.menu-button[aria-expanded="true"] span:nth-child(1){
		top:22px;
		transform:rotate(45deg);
	}
	.menu-button[aria-expanded="true"] span:nth-child(2){
		opacity:0;
	}
	.menu-button[aria-expanded="true"] span:nth-child(3){
		top:22px;
		transform:rotate(-45deg);
	}
	.sidebar{
		position:fixed;
		inset:68px 0 0;
		z-index:250;
		visibility:hidden;
		opacity:0;
		transform:translateY(-12px);
		transition:opacity .3s ease,transform .4s var(--ease),visibility .3s;
	}
	.sidebar.is-open{
		visibility:visible;
		opacity:1;
		transform:translateY(0);
	}
	.sidebar__inner{
		position:static;
		height:100%;
		padding:20px 28px 30px;
	}
	.sidebar__logo{
		display:none;
	}
	.nav__list{
		gap:0;
	}
	.nav__list a{
		padding:8px 0 8px 20px;
		font-size:14px;
	}
	.nav__list a::after{
		bottom:5px;
	}
}
/*==========================================================
メインビジュアル
========================================================= */
.main{
	min-width:0;
	padding:0 32px 56px;
}
.hero{
	margin:0 -32px 32px;
	overflow:hidden;
	background:var(--navy);
}
.hero img{
	width:100%;
	aspect-ratio:600/760;
	object-fit:cover;
}
@media(max-width:767px){
	.main{
		padding:0 16px 40px;
	}
	.hero{
		margin:0 -16px 20px;
	}
	.hero img{
		width:100%;
		aspect-ratio:auto;
		object-fit:contain;
	}
}
/*==========================================================
共通セクション
========================================================= */
.section{
	position:relative;
	margin:0 0 32px;
	padding:48px 44px;
	background:rgba(255,255,255,.96);
	border:1px solid rgba(15,67,125,.08);
	border-radius:4px;
	box-shadow:0 12px 35px rgba(3,38,78,.07);
}
.section::before{
	position:absolute;
	top:0;
	left:44px;
	width:58px;
	height:3px;
	background:linear-gradient(90deg,var(--yellow),#ff9d28);
	content:"";
}
.section-heading{
	display:flex;
	flex-direction:column-reverse;
	margin-bottom:34px;
}
.section-heading h2{
	margin:0;
	color:var(--navy);
	font-size:30px;
	line-height:1.35;
	letter-spacing:.08em;
}
.section-heading__en{
	margin:0 0 4px;
	color:var(--cyan);
	font:700 12px "Roboto",sans-serif;
	letter-spacing:.2em;
}
@media(max-width:767px){
	.section{
		margin-bottom:20px;
		padding:36px 24px;
		border-radius:3px;
	}
	.section::before{
		left:24px;
		width:45px;
	}
	.section-heading{
		margin-bottom:26px;
	}
	.section-heading h2{
		font-size:24px;
	}
	.section-heading__en{
		font-size:10px;
	}
}
/*==========================================================
新着情報
========================================================= */
.section--news{
	padding-top:42px;
}
.news-list__item{
	display:grid;
	grid-template-columns:110px 1fr;
	align-items:center;
	gap:22px;
	padding:18px 0;
	border-top:1px solid #dfe9ee;
}
.news-list__item:last-child{
	border-bottom:1px solid #dfe9ee;
}
.news-list__date{
	color:var(--blue);
	font:500 13px "Roboto",sans-serif;
	letter-spacing:.04em;
}
.news-list__item p{
	margin:0;
}
@media(max-width:767px){
	.news-list__item{
		display:block;
		padding:15px 0;
	}
	.news-list__date{
		display:block;
		margin-bottom:5px;
	}
}
/*==========================================================
ご挨拶
========================================================= */
.greeting-profile{
	display:grid;
	grid-template-columns:190px 1fr;
	gap:34px;
	align-items:end;
	margin-bottom:34px;
	padding-bottom:30px;
	border-bottom:1px solid #dce8ed;
}
.greeting-profile__photo{
	width:100%;
	overflow:hidden;
	background:#eff7fa;
}
.greeting-profile__photo img{
	display:block;
	width:100%;
	aspect-ratio:4/5;
	object-fit:cover;
	object-position:center top;
}
.greeting-profile__name p{
	margin:0 0 15px;
	color:#526474;
	font-size:12px;
}
.greeting-profile__name>span{
	display:inline-block;
	margin-right:15px;
	padding:3px 10px;
	background:var(--navy);
	color:#fff;
	font-size:11px;
	letter-spacing:.15em;
}
.greeting-profile__name strong{
	color:var(--navy);
	font-size:25px;
	letter-spacing:.12em;
}
.greeting-profile__name small{
	display:block;
	margin-top:12px;
	color:#526474;
	line-height:1.7;
}
.greeting-text p{
	margin:0 0 1.3em;
	text-align:justify;
}
.greeting-text p:last-child{
	margin-bottom:0;
}
@media(max-width:767px){
	.greeting-profile{
		grid-template-columns:110px 1fr;
		gap:18px;
		align-items:start;
	}
	.greeting-profile__name p{
		margin-bottom:10px;
		font-size:10px;
	}
	.greeting-profile__name>span{
		display:block;
		width:max-content;
		margin-bottom:7px;
	}
	.greeting-profile__name strong{
		font-size:20px;
	}
	.greeting-profile__name small{
		font-size:10px;
	}
}
/*==========================================================
開催概要
========================================================= */
.outline-list{
	margin:0;
}
.outline-list>div{
	display:grid;
	grid-template-columns:128px 1fr;
	border-top:1px solid #dce8ed;
}
.outline-list>div:last-child{
	border-bottom:1px solid #dce8ed;
}
.outline-list dt{
	padding:19px 16px;
	background:#eff7fa;
	color:var(--navy);
	font-weight:700;
}
.outline-list dd{
	margin:0;
	padding:19px 22px;
}
.outline-list dd span{
	display:block;
	margin-top:2px;
	color:#53677a;
	font-size:12px;
}
.outline-list dd small{
	color:#53677a;
	font-size:12px;
}
.outline-list a,.contact-box a{
	color:var(--blue);
	text-decoration:underline;
	text-underline-offset:4px;
}
.outline-person{
	display:flex;
	align-items:center;
	gap:20px;
}
.outline-person__photo{
	flex:0 0 110px;
	width:110px;
	overflow:hidden;
	background:#eff7fa;
}
.outline-person__photo img{
	display:block;
	width:100%;
	aspect-ratio:4/5;
	object-fit:cover;
	object-position:center top;
}
.outline-person__profile{
	flex:1;
	min-width:0;
}
.outline-person__profile strong{
	display:block;
	margin-bottom:8px;
	color:var(--navy);
	font-size:18px;
	letter-spacing:.08em;
}
.outline-person__profile small{
	display:block;
	color:#53677a;
	font-size:12px;
	line-height:1.8;
}
@media(max-width:767px){
	.outline-list>div{
		display:block;
	}
	.outline-list dt{
		padding:10px 14px;
	}
	.outline-list dd{
		padding:15px 14px 22px;
	}
	.outline-person{
		align-items:flex-start;
		gap:15px;
	}
	.outline-person__photo{
		flex-basis:80px;
		width:80px;
	}
	.outline-person__profile strong{
		margin-bottom:5px;
		font-size:16px;
	}
	.outline-person__profile small{
		font-size:11px;
		line-height:1.7;
	}
}
/*==========================================================
演題登録
========================================================= */
.notice{
	display:flex;
	align-items:center;
	gap:18px;
	margin-bottom:34px;
	padding:17px 20px;
	background:var(--pale);
	border-left:3px solid var(--cyan);
}
.notice span{
	flex:none;
	padding:3px 10px;
	background:var(--blue);
	color:#fff;
	font-size:11px;
	font-weight:700;
	letter-spacing:.1em;
}
.notice p{
	margin:0;
}
.abstract-list{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
}
.abstract-list section{
	padding:23px;
	background:#f7fafb;
	border:1px solid #e1ebef;
	border-top:2px solid var(--cyan);
}
.abstract-list h3{
	margin:0 0 13px;
	color:var(--navy);
	font-size:15px;
	line-height:1.6;
}
.abstract-list p{
	margin:0;
	color:#596b78;
	font-size:13px;
}
@media(max-width:767px){
	.notice{
		align-items:flex-start;
		gap:12px;
		padding:15px;
	}
	.abstract-list{
		grid-template-columns:1fr;
		gap:10px;
	}
	.abstract-list section{
		padding:18px;
	}
}
/*==========================================================
準備中セクション
========================================================= */
.section--pending{
	min-height:235px;
}
.section--pending>p{
	display:flex;
	justify-content:center;
	align-items:center;
	min-height:300px;
	margin:0;
	background:#f5f9fa;
	color:#596b78;
	font-size:13px;
	letter-spacing:.08em;
}
@media(max-width:767px){
	.section--pending{
		min-height:210px;
	}
}
/*==========================================================
お問い合わせ
========================================================= */
.contact-box{
	padding:24px;
	background:#eff7fa;
}
.contact-box p{
	margin:0 0 8px;
}
.contact-box p span{
	font-size:13px;
}
/*==========================================================
フッター
========================================================= */
.footer{
	margin:64px -32px -56px;
	padding:42px 32px;
	background:var(--navy);
	color:#fff;
	text-align:center;
}
.footer p{
	margin:0 0 6px;
	font-weight:600;
}
.footer small{
	color:rgba(255,255,255,.62);
	font:400 10px "Roboto",sans-serif;
	letter-spacing:.04em;
}
@media(max-width:767px){
	.footer{
		margin:48px -16px -40px;
		padding:34px 20px;
	}
}
/*==========================================================
アニメーション軽減設定
========================================================= */
@media(prefers-reduced-motion:reduce){
	html{
		scroll-behavior:auto;
	}
	*,*::before,*::after{
		scroll-behavior:auto!important;
		transition-duration:.01ms!important;
		animation-duration:.01ms!important;
		animation-iteration-count:1!important;
	}
}
