@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Readex+Pro:wght@400;700&display=swap');s

body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 14px;
}

div#back-to-top {
    right: 15px;
    bottom: 25px;
    position: fixed;
    z-index: 1;
}

div#back-to-top a {
    text-indent: -9999px;
    background-image: url("../images/back_to_top.png");
    width: 45px;
    height: 45px;
    display: block;
    outline: none;
}

/*---------------------------------
入力欄の基本設定
---------------------------------*/

.select{
	margin-bottom: 20px;
}

.select select, input[type="text"], textarea,input[type="password"],input[type="number"]{
    -moz-appearance: none;
    -webkit-appearance: none;
    align-items: center;
    border: 1px solid transparent;
    border-radius: 4px;
    box-shadow: none;
    display: inline-flex;
    font-size: 1rem;
    height: 2.25em;
    justify-content: flex-start;
    line-height: 1.5;
    padding-bottom: calc(0.375em - 1px);
    padding-left: calc(0.625em - 1px);
    padding-right: calc(0.625em - 1px);
    padding-top: calc(0.375em - 1px);
    position: relative;
    vertical-align: middle;
  	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",　"Hiragino Sans",　Meiryo,　sans-serif;
  	width: 300px;
}


.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after {
    border: 3px solid transparent;
    border-radius: 2px;
    border-right: 0;
    border-top: 0;
    content: " ";
    display: block;
    height: 0.625em;
    margin-top: -0.4375em;
    pointer-events: none;
    position: absolute;
    top: 50%;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transform-origin: center;
    transform-origin: center;
    width: 0.625em;
}


.select select {
    background-color: white;
    border-color: #dbdbdb;
    color: #363636;
    cursor: pointer;
    display: block;
    font-size: 1em;
    max-width: 100%;
    outline: none;
}

.select {
    display: inline-block;
    max-width: 100%;
    position: relative;
    vertical-align: top;
}

.select:not(.is-multiple):not(.is-loading)::after {
    border-color: #777777; /*矢印の色*/
    right: 1.125em;
    z-index: 4;
}

.select select:not([multiple]) {
    padding-right: 2.5em;
}

select::-ms-expand { /* select要素のデザインを無効にする（IE用） */
display: none;
}


/*ヘッダー
==================================================*/
/* 下層ページの写真ヘッダー（テキストなし） */
#main-visual {
  position: relative;
  height: 280px;                 /* 好みで 240?320px */
  background:
    linear-gradient(45deg, rgba(3,69,1,0.1) 0%, rgba(4,26,49,0.1) 42%, rgba(18,28,49,0.1) 88%),
    url("../images/BPEX.jpg");   /* ← child.css からの相対パスは ../images/ */
  background-size: cover;
  background-position: center 70%;
  overflow: hidden;
}
/*フッター
==================================================*/

footer{
	text-align: right;
	font-size: 1.3rem;
	font-weight: 300;
	padding: 25px;
	box-sizing: border-box;
	color: #797979;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	box-sizing: border-box;
}


/*見出し、段落など
==================================================*/
hr{
	margin: 3em 0;
}
#main p{
	font-size: 1.4rem;
	line-height: 1.4;
}

h1.midashi {
  text-align: center;
	font-size: 3rem;
	color: #666;
	margin: 2rem auto;
}
h2{
	font-size: 2rem;
	color: #666;
	margin: 0 0 0.5em;
}
h3{
	font-size: 1.7rem;
	font-weight: 700;
	margin: 1em 0 0.4em;
	color: #666;
}

.tit {
  text-align: center;
	font-size: 3rem;
	margin: 2rem auto;
}
.tit h1 {
  text-align: center;
	font-size: 3rem;
	margin: 4rem 0 2rem 0;
}
.tit h2 {
  font-size: 2.2rem;
	color: #666;
	margin: 0 0 0.5em;
}


table{
	border-collapse: collapse;
	width: 100%;
}

table td{
	padding: 5px 10px;
	box-sizing: border-box;
}

article{
	margin: 0 0 3em 0;
}

ol{
	padding-left: 1em;
	box-sizing: border-box;
}

ol li{
	margin: 20px 0;
	list-style-type: decimal;
}

ol li ol li{
	margin: 5px 0;
	list-style-type: none;
}

a{
	color: rgba(50,74,199,1.00);
	word-break: break-word;
}

a:hover{
	opacity: 0.5;
	transition-duration: 500ms;
}


p.list-indent{
	text-indent: -1em;
	padding-left: 1em;
	box-sizing: border-box;
}

div.notice{
	background-color: rgba(255,255,204,1.00);
	padding: 1em;
	border: 1px dashed rgba(194,133,9,1.00);
	box-sizing: border-box;
}


/*home
==================================================*/

.home-table td{
	font-weight: 600;
	background-color: rgba(255,255,255,0.5);
}

.home-table td:nth-of-type(1){
	width: 20%;
	background-color: rgba(239,228,212,1.00);
}



/*Greetings
==================================================*/


.greeting-flex{
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

.greeting-name{
	padding-left: 1em;
	box-sizing: border-box;
	font-size: 1.7rem;
	font-weight: 700;
}


/*Scope
==================================================*/

.scope-table caption{
	font-size: 2rem;
	text-align: left;
	color: #666;
	padding-bottom: 8px;
}

.scope-table td{
		font-weight: 700;
		background-color: #fff;
}

.scope-table td:nth-of-type(1){
	width: 10%;
	text-align: center;
}



/*Comittees
==================================================*/

h2.comittees-h2{
	background-color: rgba(219,219,255,0.88);
	color: #343434;
	padding: 0.5em 1em;
	box-sizing: border-box;
	text-align: center;
	font-weight: 700;
	margin-bottom: 20px;
}


/*Important Dates
==================================================*/
/* 最終更新: 2025/05/12 */

/* テーブル本体 */
.dates-table td {
  font-size: 1.5rem;
  background-color: rgba(255, 255, 255, 0.5);
}

.dates-table thead th {
  font-size: 1.5rem;
  font-weight: bold;
  background-color: rgba(219, 219, 255, 0.88);
  padding: 1em;
  text-align: center;
  white-space: nowrap;
}

.dates-table td:nth-of-type(1) {
  width: 5%;
  text-align: center;
}

.dates-table td:nth-of-type(2) {
  width: 60%;
}

.dates-table td:nth-of-type(3) {
  width: 20%;
  font-size: 13px;
}

.dates-table td:nth-of-type(4) {
  width: 15%;
  font-size: 13px;
}

/* スマホ表示の最適化 */
@media screen and (max-width: 600px) {
  .dates-table,
  .dates-table thead,
  .dates-table tbody,
  .dates-table th,
  .dates-table td,
  .dates-table tr {
    display: block;
    width: 100%;
  }

  .dates-table thead {
    display: none;
  }

  .dates-table td {
    font-size: 13px;
    padding: 0.5em;
    border: none;
    border-bottom: 1px solid #ccc;
  }

  .dates-table td:nth-of-type(1)::before {
    content: "No: ";
    font-weight: bold;
  }

  .dates-table td:nth-of-type(2)::before {
    content: "Title: ";
    font-weight: bold;
  }

  .dates-table td:nth-of-type(3)::before {
    content: "Date: ";
    font-weight: bold;
  }

  .dates-table td:nth-of-type(4)::before {
    content: "Current Situation: ";
    font-weight: bold;
  }

.dates-table td::before {
  display: block;
  font-weight: bold;
  margin-bottom: 0.2em;
  width: auto;
}

/* 基本フォントサイズの統一 */
body {
  font-size: 14px;
}

/* Important Dates ページの横余白調整 */
.main-wrap {
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: 1000px;
  margin: 0 auto;
}



/*Registration
==================================================*/

.reg-link{
	font-size: 1.7rem;
	font-weight: 700;
}

.reg-link a{
	font-size: 2rem;
}

.cate-table{
	background-color: rgba(255,255,255,0.5);
	margin: 1em 0 1em;
	font-size: 1.6rem;
}

.regi-table{
	background-color: rgba(255,255,255,0.5);
	font-size: 1.6rem;
}


table.regi-table td{
	width: 20%;
	text-align: center;
	word-wrap: break-word;
}


table.regi-table thead td{
	font-size: 14px;
	font-weight: 600;
}

table.regi-table td:nth-child(1){
	font-weight: 600;
}

table.regi-table tbody td{
	text-align: center;
}

	
	.regbutton {
		font: bold 20px Arial, Helvetica, "sans-serif";
		text-align: center;
		position: absolute;
		align-items: center;
		padding-left: 15px;
		background-color: #85CEFF;
		display: inline-flex;
		border-style: outset;
		border-color: darkblue;
		width: 200px;
		height: 50px;
		margin-right: 15%;
		right: 493px;
-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	}

.loginbutton {
		font: bold 20px Arial, Helvetica, "sans-serif";
		text-align: center;
	align-items: center;
	padding-left: 20px;
		position: absolute;
		background-color: #C3E6F3;
		display: inline-flex;
		border-style: outset;
		border-color: darkblue;
		width: 200px;
		height: 50px;
margin-left: 15%;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
	}
.flex-parent{
	display: flex;
}
.jc-center {
	justify-content: center;
}

button.margin-right {margin-right: 50px;
}

a:link {text-decoration: none;
}

/*Program
==================================================*/

.peorgam-table td{
	background-color: rgba(255,255,255,0.8);
	font-weight: bold;
	word-break: break-all;
}

.peorgam-table td.time{
	width: 10%;
	text-align: center;
}


/*Program Overview
==================================================*/

figure img{
	width: 100%;
	height: auto;
}


/*Plenary
==================================================*/

h5{
	font-family: "Palatino Linotype", "Book Antiqua", Palatino, "serif";
	font-size: 25px;
	font-weight: 700;
	color: rgba(1,45,100,1.00);
	border-bottom: 1px solid rgba(1,45,100,1.0);
	margin-top: 40px;
}

.ple-info{
	font-size: 15px;
	font-family: "Palatino Linotype", "Book Antiqua", Palatino, "serif";
	margin: 0.5em 0 0.5em;
}

.ple-date{
	font-size: 20px;
}

.ple-wrap{
	border-bottom: 1px dashed #CCC;
	padding: 4px 0;
	margin: 8px 0;
	box-sizing: border-box;
}

.ple-profile{
	display: flex;
	justify-content: flex-start;
	width: 100%;
}


.ple-profile-in{
	padding-left: 1em;
	box-sizing: border-box;
	width: calc(100% - 80px + 1em);
}
h6{
	color: #333;
	font-size: 1.7rem;
	padding: 8px 0 0;
	box-sizing: border-box;
}
.ple-no{
	font-size: 1.6rem;
	font-weight: 800;
	color: #FFF;
	background-color: #032f55;
	padding: 0.3em 1em;
	border-radius: 3px;
	box-sizing: border-box;
	letter-spacing: 2px;
	cursor: pointer;
	text-decoration: none;
}

.ple-name{
	font-size: 1.5rem;
	display: block;
}

.ple-aff{
	font-size: 1.3rem;
	display: block;
	font-style: italic;
}

.ple-img{
	width: 80px;
	height: 108px;
}

/*Poster，Topical
==================================================*/

#back-to-top {
    right: 15px;
    bottom: 25px;
    position: fixed;
    z-index: 1;
}

#back-to-top a {
    text-indent: -9999px;
    background-image: url("../images/back_to_top.svg");
    width: 45px;
    height: 45px;
    display: block;
}

.poster-table{
	margin: 2em 0 0;
}

.poster-table td{
			background-color: rgba(255,255,255,0.8);
}

.poster-table thead td{
	background-color: rgba(219,219,255,0.88);
	font-size: 1.6rem;
}

.poster-table td:nth-of-type(1){
	text-align: center;
	width: 5%;
}

.poster-table td:nth-of-type(2){
	text-align: center;
	width: 14%;
}

.poster-table td:nth-of-type(3){
	width: 30%;
}



.poster-table a,.topical-table a{
	display: block;
	text-align: center;
	text-decoration: none;
	padding:3px 15px;
	box-sizing: border-box;
	background-color: #032f55;
	color: #fff;
	border-radius: 5px;
	font-weight: 600;
	/*box-shadow: 0 0 5px -1px rgba(10,10,10,0.2);*/
	letter-spacing: 1px;
	font-size: 12px;
}

.poster-table a:hover,.topical-table a:hover{
	opacity: 0.7;
	transform: translateY(2px);
	transition-duration: 500ms;
}

.poster-name,.topical-name{
	font-weight: 300;
	font-size: 1.2rem;
}

.poster-aff,.topical-aff,.minute{
	font-size: 1.2rem;
}

.minute{
	text-align: center;
}

.topical-table{
	margin-bottom: 20px;
}

.topical-table td{
		background-color: rgba(255,255,255,0);
		border: none;
	border: 1px solid #CCC;
	padding: 5px 10px;
	box-sizing: border-box;
}


.topical-table td:nth-of-type(1){
	width: 15%;
	text-align: left;
}

.topical-table td:nth-of-type(2){
	text-align:left;
	font-size: 1.3rem;
	font-weight: 600;
}

.ple-info.tp-info{
	font-size: 18px;
}

.ple-info.tp-info .ple-date{
	font-size: 17px;
}

.ple-info.tp-info .ple-date small{
	font-size: 17px;
}


a.no-data{
	opacity: 0.5;
	background-color: gray;
	pointer-events: none;
}

/*FAQ
==================================================*/

/*アコーディオンにするよ*/

.accordion_area{}

.accordion_area .accordion_one{
	margin: 1em 0;
}

.accordion_area .accordion_one .ac_header{
  background-color: #ffffff;
  border: 1px solid #ccc;
  padding: 1.5rem 4rem 1.5rem 2rem;
  position: relative;
  z-index: 1;
  cursor: pointer;
  transition: .2s;
}

/*.accordion_area .accordion_one .ac_header:not(.open):hover{
	background-color: rgba(241,248,251,1.00);
}*/


/* 右端の+を作る*/ 
.accordion_area .accordion_one .ac_header .i_box{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
	right: 2rem;
	width: 20px;
	height: 20px;
}

.accordion_area .accordion_one .ac_header .i_box:before,
.accordion_area .accordion_one .ac_header .i_box:after{
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
}

.accordion_area .accordion_one .ac_header .i_box:before{
	border-top: 2px solid #656565;
	width: 20px;
	height: 0;
	top: 0;
	bottom: 0;
	right: 0;
}

.accordion_area .accordion_one .ac_header .i_box:after{
	border-left: 2px solid #656565;
	width: 0;
	height: 20px;
	top: 0;
	bottom: 0;
	right: 9px;
	transition: .3s;
}

.accordion_area .accordion_one .ac_header.open .i_box:after {
  height: 0;
}

/*Answearのbox内*/
.accordion_area .accordion_one .ac_inner{
	display: none;
	padding: 0 2rem;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  box-sizing: border-box;
  background-color: rgba(230,239,243,1.00);
}

/*Question*/
.p-faq__headinner{
	padding-left: 35px; /*Qの部分のスペースを作る*/
	position: relative;
	box-sizing: border-box;
}

.p-faq__headinner::before{
	position: absolute;
	left: 0;
		top: 50%;
	transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
	content: "Q.";
	font-size: 2rem;
	font-family: serif;
	font-weight: 700;
	color: #656565;
}

/*Questionのテキスト部分*/
#main p.p-faq__q-txt{
	font-size: 1.5rem;
	padding-right: 1em;
	box-sizing: border-box;
	margin-bottom: 0;
}


/*Answear*/
.p-faq__bodyinner{
	padding-left: 35px;/*Aの部分のスペースを作る*/
	position: relative;
}

.p-faq__bodyinner::before{
	position: absolute;
	left: 0;
	content: "A";
	font-size: 2rem;
	font-family: serif;
	font-weight: 700;
	color: rgba(227,64,15,1.00)
}

/*Answearのテキスト部分*/
#main p.p-faq__a-txt{
	font-size: 1.5rem;
	box-sizing: border-box;
	margin-bottom: 0;
}

/*Note on Poster
==================================================*/

.notepos-list{
	padding-left: 1em;
}

.notepos-list li{
	list-style-type: disc;
}


/* Become a Sponsor セクション
================================================== */

.sponsor-container {
  background-color: #fff;
  padding: 2rem;
  margin: 1rem auto;
  max-width: 800px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.05);
  border-radius: 10px;
  line-height: 1.6;
}

/* タイトルスタイル */

.sponsor-card {
  padding: 1.2rem;
  margin-top: 1.5rem;
  background-color: rgba(245, 245, 245, 0.95);
  border-left: 5px solid #0044cc;
  border-radius: 6px;
}

.sponsor-card h2 {
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.8rem;
}

.sponsor-card p {
  font-size: 1rem !important;
  line-height: 1.6;
  margin-bottom: 1rem;
}


  .sponsor-card h2 {
    font-size: 1.1rem;
  }

  .sponsor-card p {
    font-size: 0.95rem;
  }
}



/*Mypageaccess
==================================================*/

div.step{
	font-size: 1.7rem;
	width: 85%;
	padding: 10px;
	box-sizing: border-box;
	margin: auto;
	background-color: #fff;
	margin-bottom: 4em;
	position: relative;
	border: 1px solid #CCC;
	border-radius: 5px;
	
}

div.step.sankaku::after {
    content: "";
    position: absolute;
    right: 0;
	bottom: -40px;
    left: 0;
    width: 0px;
    height: 0px;
    margin: auto;
    border-style: solid;
    border-color: rgba(7,110,200,0.58) transparent transparent transparent;
    border-width: 15px 15px 0 15px;
}


/*Acknowledgement
==================================================*/


h4 {
color: #666;
  font-size: 2.7rem;
	font-weight: 700;
  display: inline-block;
background: linear-gradient(transparent 40%, rgb(255,203,0,1) 40%);
padding: 0 1em 0 0.5em;
	margin-top: 1em;
	box-sizing: border-box;
}

.sponsor-img-area{
	margin: 1em 0;
}

.sponsor-img-area img{
	width: 100%;
	height: auto;
}

.sponsor-img-area img:hover{
	transform: scale(1.05,1.05);
	transition-duration: 500ms;
}

.sponsor-img-area figure{
	width: 400px;
}

.sponsor-img-area p{
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.8;
}


.main-wrap {
	margin: 0 auto;
  width: 1000px;
  padding: 2rem;
	box-sizing: border-box;
}

@media screen and (max-width:900px) {
.main-wrap {
  width: 100%;
  padding: 2rem 1rem;
	box-sizing: border-box;
}
	#main-visual h2{
		display: none;
	}
}
@media screen and (max-width:600px) { 
.main-wrap {
  width: 100%;
  padding: 2rem 1rem;
  box-sizing: border-box;
}
	
h1.midashi {
	margin: 1em 0 1em;
}

table td{
		width: 100%;
		display: block;
		border-top: none;
	}
	
	table{
		border-top: 1px solid #999;
	}
	
	table td:empty{
		display: none;
	}
	
.home-table td:nth-of-type(1){
		width: 100%;
		display: block;
}
	
	.scope-table td{
		border: 1px solid #DDD;
	}

.scope-table td:nth-of-type(1){
		width: 100%;
		display: block;
	text-align: left;
	background-color: rgba(243,243,243,1.00);
}
	
table.regi-table td{
		width: 100%;
		display: block;
}
	
.peorgam-table td.time{
		width: 100%;
		display: block;
}
	
.plenry-table td.number{
		width: 100%;
		display: block;
		text-align: left;
}

.plenry-table td.time{
		width: 100%;
		display: block;
		text-align: left;
}
	
.poster-table thead td:empty{
		display: none;
	}
	
.poster-table td:nth-of-type(1){
		width: 100%;
		display: block;
		text-align: left;
}

.poster-table td:nth-of-type(2){
		width: 100%;
		display: block;
		text-align: left;
}

.poster-table td:nth-of-type(3){
		width: 100%;
		display: block;
}
	
.topical-table td:nth-of-type(1){
		width: 100%;
		display: block;
		text-align: left;
}

.topical-table td:nth-of-type(2){
		width: 100%;
		display: block;
		text-align: left;
}

.sponsor-table td{
	width: 100%;
	display: block;
	text-align: left;
}
	
.sponsor-table thead td{
	text-align: left;
}

	
.dates-table td:nth-of-type(1){
	width: 100%;
	display: block;
	text-align: left;
}

.dates-table td:nth-of-type(2){
	width: 100%;
	display: block;
	text-align: left;
}

.dates-table td:nth-of-type(3){
	width: 100%;
	display: block;
	text-align: left;
}

.dates-table td:nth-of-type(4){
	width: 100%;
	display: block;
	text-align: left;
}
	
	.dates-table td:empty{
		display: none;
	}
	
	
	.greeting-flex{
		flex-direction: column;
	}
	
}

/* margin */
.mg_b2 {margin-bottom: 2rem;}
.mg_b4 {margin-bottom: 4rem;}
.mg_b6 {margin-bottom: 6rem;}
.mg_t2 {margin-top: 2rem;}
.mg_t4 {margin-top: 4rem;}
.mg_t6 {margin-top: 6rem;}

.ce {
  text-align: center;
}

.bold {
  font-weight: bold;
}

.red {
  color: #C40307;
}
.blue {
  color: #051B9F;
}


/* FAQ */
.faq dt {
  margin-bottom: 1em;
  background-color: #d0d0ff;
  color: #333;
  font-weight: 600;
  padding: 1em 1.5em;
}
.faq dt::before,
.faq dd::before {
  margin-right: .4em;
}
/*.faq dt::before {
  content: "Q.";
}*/
.faq dd {
  margin: 0 0 2.5em;
  padding: 1em 1.5em;
  color: #333;
}
/*.faq dd::before {
    content: "A.";
}*/

/* HOMEボタン*/
a.btn_home {
	display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 120px;
	margin: auto;
	padding: 1rem 4rem;
	font-weight: bold;
	border: 2px solid #99A4E4;
	background: #99A4E4;
	color: #fff;
	border-radius: 100vh;
	transition: 0.5s;
}
a.btn_home:hover {
	color: #99A4E4;
	background: #fff;
}


/* Financial Support（共通） */
article.content-body {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 2rem;
  line-height: 1.7;
}

/* 親要素の調整（PC用） */
@media screen and (min-width: 601px) {
  #main-in .main-wrap {
    max-width: 100%;
    padding: 0;
  }
}

/* 共通：すべての画像に適用 */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 通常の説明画像（例：地図・バス停など） */
img.standard-img {
  width: 800px;
}


/* スマホ表示調整 */
@media screen and (max-width: 600px) {
  img.standard-img {
    width: 100% !important;
    height: auto !important;
  }

  img.icon-img {
    width: 8vw !important;
    max-width: 30px !important;
    height: auto !important;
  }
}

/* GOアイコン用の小さい画像サイズ */
img.icon-img {
  width: 40px !important;
  height: auto !important;
  vertical-align: text-bottom;
  margin-left: 0.4em;
}


/* FAQカード形式 */
.faq-card {
  background-color: #f9f9f9;
  border-left: 5px solid #9999ff;
  padding: 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 0 5px rgba(0,0,0,0.05);
}

.faq-card .question {
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.faq-card .answer {
  margin-left: 1rem;
  line-height: 1.5;
}

@media screen and (max-width: 600px) {
  .faq-card {
    padding: 1rem;
  }
}
/* FAQカード形式（PC・スマホ共通） */
.faq-card {
  background-color: #fff;
  border: 1px solid #ccc;
  border-left: 4px solid #99A4E4;
  margin: 1.5rem auto;
  padding: 1rem 1.5rem;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  border-radius: 6px;
  max-width: 900px;
}

/* 質問と回答の区別 */
.faq-card .question {
  font-weight: bold;
  margin-bottom: 0.5rem;
  color: #000;
}

.faq-card .answer {
  color: #333;
  line-height: 1.6;
}
/* FAQカード共通スタイル（PCでも適用） */
.faq-card {
  background-color: #fff;
  border: 1px solid #ccc;
  border-left: 4px solid #9944e4;
  margin: 1.5rem auto;
  padding: 1rem 1.5rem;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.05);
  border-radius: 6px;
  max-width: 900px;
}

/* Conference Venue */
img.conference-img {
  max-width: 600px;
  height: auto;
  display: block;
  margin: 0 auto;
}
/* Conference Venue画像のPC用サイズ制限 */
.venue-img img {
  max-width: 800px;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* Conference Venue 専用 */
.venue-img {
  margin: 2rem auto;
  text-align: center;
}

.venue-img img.venue-map {
  max-width: 100%;
  height: auto;
  border: 1px solid #ccc;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.05);
}

/* Conference Venue（画像の間にスペース・ページ全体に余白） */
.venue-img {
  margin-bottom: 2rem;
}

#Opening {
  padding: 0 2rem;
  max-width: 900px;
  margin: 0 auto;
}
/* Accessページ専用：説明文のフォントサイズ調整 */
.access-desc {
  font-size: 1.6rem;
  line-height: 1.7;
}

/* ==============================
   Scope ページ専用レイアウト
============================== */
.scope-content {
  padding: 0 2rem;
  max-width: 800px;
  margin: 0 auto;
}

@media screen and (max-width: 600px) {
  .scope-content {
    padding: 0 1rem;
  }
}

/* ==== Award Sponsor ヘッダー全体 ==== */
.sponsor-title {
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
  background-color: #0044cc;
  color: white;
  padding: 1.5rem;
  border-radius: 12px;
  margin-top: 1rem;
  margin-bottom: 1.5rem;
  width: 100%;
  box-sizing: border-box;
}

@media screen and (max-width: 600px) {
  .sponsor-title {
    font-size: 1.4rem;
    padding: 0.6rem 1rem;
    word-break: break-word;
  }
}

/* ==== カードレイアウト ==== */
.sponsor-card {
  background-color: #eeeeee;
  padding: 1.5rem;
  margin: 1.5rem auto;
  max-width: 800px;
  border-radius: 10px;
  box-shadow: 0 0 8px rgba(0,0,0,0.1);
  line-height: 1.7;
}

/* ==== サブタイトル（各カードの見出し） ==== */
.sponsor-subtitle {
  background-color: #0044cc;
  color: white;
  padding: 0.5rem 1rem;
  font-size: 1.4rem; /* ← これを追加 */
  border-radius: 4px;
  margin-bottom: 1rem;
}

/* ==== カード内画像 ==== */
.sponsor-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1rem auto;
}

/* ==== モバイル対応 ==== */
@media screen and (max-width: 600px) {
  .sponsor-header h2 {
    font-size: 1.6rem;
    padding: 0.8rem;
  }

  .sponsor-card {
    padding: 1rem;
  }

  .sponsor-subtitle {
    font-size: 1rem;
    padding: 0.5rem;
  }
}

/* Sponsors タイトルを中央・大きくする */
.sponsor-tit {
  font-size: 3rem !important;
  font-weight: bold;
  text-align: center;
  padding: 1rem;
  color: #0044cc;
}

.sponsor-card {
  background-color: #f9f9f9;
  padding: 1.5rem;
  margin: 1.5rem auto;
  max-width: 800px;
  border-radius: 10px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
  line-height: 1.7;
}

.sponsor-subtitle {
  background-color: #0044cc;
  color: white;
  padding: 0.5rem 1rem;
  font-size: 1.5rem;
  border-radius: 4px;
  margin-bottom: 1rem;
}

.sponsor-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1rem auto;
}

@media screen and (max-width: 600px) {
  .sponsor-tit {
    font-size: 1.8rem;
    padding: 0.7rem;
  }
  .sponsor-subtitle {
    font-size: 1rem;
    padding: 0.4rem 0.8rem;
  }
  .sponsor-card {
    padding: 1rem;
  }
}

.banquet-title {
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
  color: #0044cc;
  margin: 2rem auto;
}

.location-images {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.location-images img {
  width: 45%;
  max-width: 300px;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
}

.banquet-title {
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
  color: #000;  /* 黒色に */
  margin: 2rem auto;
}

.banquet-card {
  background-color: #f9f9f9;
  padding: 1.5rem;
  margin: 1.5rem auto;
  max-width: 800px;
  border-radius: 10px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
  line-height: 1.7;
}

.indent-second-line {
  text-indent: -1em;
  padding-left: 1em;
  box-sizing: border-box;
}

.lunch-options {
  padding-left: 2rem;         /* インデント調整 */
  list-style-position: inside; /* 箇条書きマークをテキストの内側に */
  font-size: 1.4rem;
  margin-top: 1rem;
}

.bento-gallery {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.bento-gallery figure {
  width: 30%;
  max-width: 250px;
  text-align: center;
}

.bento-gallery img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
}

.bento-gallery figcaption {
  font-size: 1.2rem;
  margin-top: 0.5rem;
  color: #444;
}

footer {
  display: flex !important;
  flex-direction: column !important;     /* ← 縦並び */
  align-items: flex-end !important;      /* ← 右端揃え */
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 20px 40px;
  font-size: 1.3rem;
  color: #797979;
  text-align: right;
}

@media screen and (max-width: 600px) {
  footer {
    align-items: center;
    text-align: center;
  }
}

/* ===============================
   Registration Page Custom Styles
   Added on 2025-05-23
=================================*/

/* --- Registration ボタンの中央配置と見た目 --- */
.reg-button-wrap {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.reg-table {
  border-collapse: separate;
  border-spacing: 2rem 0;
}

.table-button td {
  text-align: center;
}

.table-button a {
  display: inline-block;
  font-family: 'Readex Pro', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  background-color: #85CEFF;
  color: #000;
  padding: 0.8rem 2rem;
  border-radius: 8px;
  border: 2px solid darkblue;
  transition: background-color 0.3s, opacity 0.3s;
}

.table-button a:hover {
  opacity: 0.7;
}

/* スマホ表示：ボタン縦並び */
@media screen and (max-width: 600px) {
  .table-button td {
    display: block;
    text-align: center;
    margin-bottom: 1rem;
  }
}


/* --- Registration Fee 表をカード形式に --- */
.fee-card-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  margin: 2rem auto;
  max-width: 1000px;
}

.fee-card {
  background-color: #f9f9f9;
  border: 1px solid #ccc;
  padding: 1.5rem;
  width: 45%;
  min-width: 280px;
  border-radius: 10px;
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
  box-sizing: border-box;
  text-align: center;
  line-height: 1.6;
}

.fee-type {
  font-weight: bold;
  font-size: 1.5rem;
  margin-bottom: 1rem;
  color: #003366;
}

.fee-detail {
  font-size: 1.3rem;
}

@media screen and (max-width: 600px) {
  .fee-card {
    width: 100%;
  }
}


/* --- Registration Fee セクションの見出し強調 --- */
.fee-legend {
  text-align: center;
  margin: 2rem auto 1rem;
  line-height: 1.6;
  max-width: 800px;
  padding: 0 1rem;
}

.fee-legend .fee-title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  color: #003366;
}

.fee-legend .fee-note {
  font-size: 1.6rem;
  font-weight: 600;
  color: #000;
}

@media screen and (max-width: 600px) {
  .fee-legend .fee-title {
    font-size: 1.6rem;
  }

  .fee-legend .fee-note {
    font-size: 1.2rem;
    font-weight: normal;
  }
}

/* ===== ナビゲーションバー全体 ===== */
.navbar {
  display: flex;
  align-items: center;        /* 垂直中央揃え */
  justify-content: space-between;
  background-color: #222;     /* 黒背景 */
  padding: 0 1.5rem;
  height: 60px;               /* 高さを統一 */
}

/* ===== ロゴ部分 ===== */
.navbar .logo img {
  height: 40px;               /* ロゴの高さを制限 */
  vertical-align: middle;
}

/* ===== メニューリスト部分 ===== */
.navbar ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.navbar ul li {
  margin: 0 1rem;
}

.navbar ul li a {
  color: white;
  text-decoration: none;
  font-weight: bold;
  line-height: 60px;          /* ナビバーの高さと合わせる */
}

/* ===== ホバー時（任意で） ===== */
.navbar ul li a:hover {
  opacity: 0.7;
}


/* =====2025.6.27追加===== */

/* Springer + RMPP 横並び */
.sponsor-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}

/* 小さめロゴにする共通クラス */
.sponsor-img-small {
  max-height: 80px;
  width: auto;
}

/* Springer, RMPP 横並び画像の個別サイズ */
.sponsor-img-mid {
  max-height: 100px;
  width: auto;
}
/* フォントサイズ調整 *2025.0703追加*/

h1, .section-title {
  font-size: 2rem !important;
  font-weight: bold;
  margin: 1.5rem 0;
  text-align: center;
}

.reg-text {
  font-size: 1.2rem;
  line-height: 1.6;
  max-width: 800px;
  margin: 0 auto 1.5rem;
  padding: 0 1rem;
}

.highlight-floor {
  color: #C40307 !important;
  font-weight: bold;
}

.venue-img img {
  max-width: 600px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
/* =====2025.7.8追加===== */
.speaker-profile {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  margin-bottom: 2rem;
}

.speaker-profile img {
  width: 150px;
  height: auto;
  border-radius: 8px;
}

.speaker-details p {
  margin: 0.3em 0;
  font-size: 1rem;
  line-height: 1.5;
}

h5 {
  font-size: 1.4rem;       /* 少し大きめに */
  font-weight: bold;
  color: #003366;          /* 少し濃い青で見やすく */
  margin-top: 1.5rem;
  margin-bottom: 0.8rem;
}

strong {
  font-weight: bold !important;
}

/* =====2025.7.16追加===== */

.sightseeing-flex {
  display: flex;
  align-items: flex-start;
  gap: 20px; /* 写真とテキストの間のスペース */
  margin-bottom: 2rem;
  flex-wrap: wrap; /* スマホで縦並びになるように */
}

.sightseeing-text {
  max-width: 600px;
}
.sightseeing-text p {
  text-indent: 1.5em;  /* インデント幅は必要に応じて調整できます */
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
/* ===== 2025.7.16: Explore More 調整 ===== */

/* 見出しと説明の段落の行間 */
.explore-intro p {
  line-height: 1.4;     /* 行間を少し狭く */
  margin-bottom: 0.8em; /* 段落間の余白も調整 */
  text-indent: 1.5em;   /* インデントを追加 */
}

/* 箇条書き全体の行間とインデント調整 */
.explore-list {
  list-style-position: outside;  /* マーカーを外側に */
  margin-left: 1.5em;            /* リスト全体の左余白 */
  padding-left: 0;
}

.explore-list li {
  line-height: 1.4;              /* 行間を少し狭く */
  text-indent: -1.5em;           /* マーカーを除いたテキストの揃え */
  padding-left: 1.5em;           /* テキストをマーカーのあとに揃える */
  margin-bottom: 0.3em;          /* 行間の下余白 */
}
.access-block {
  margin-top: 1.5rem;
  padding-left: 1em;
}

.access-title {
  font-weight: bold;
  font-size: 1.1em;
  color: #444;
  margin-bottom: 0.5em;
}
h3.sightseeing-title {
  color: #0066cc;   /* 例：爽やかで目立つ青 */
  font-weight: bold;
  margin-top: 2rem;
  margin-bottom: 1rem;
}


/*Poster，Topical2回目
==================================================*/


.poster-table{
	margin: 2em 0 0;
}

.poster-table td{
			background-color: rgba(255,255,255,0.8);
}

.poster-table thead td{
	background-color: rgba(219,219,255,0.88);
	font-size: 1.6rem;
}

.poster-table td:nth-of-type(1){
	text-align: center;
	width: 5%;
}

.poster-table td:nth-of-type(2){
	text-align: center;
	width: 14%;
}

.poster-table td:nth-of-type(3){
	width: 30%;
}



.poster-table a,.topical-table a{
	display: block;
	text-align: center;
	text-decoration: none;
	padding:3px 15px;
	box-sizing: border-box;
	background-color: #032f55;
	color: #fff;
	border-radius: 5px;
	font-weight: 600;
	/*box-shadow: 0 0 5px -1px rgba(10,10,10,0.2);*/
	letter-spacing: 1px;
	font-size: 12px;
}

.poster-table a:hover,.topical-table a:hover{
	opacity: 0.7;
	transform: translateY(2px);
	transition-duration: 500ms;
}

.poster-name,.topical-name{
	font-weight: 300;
	font-size: 1.2rem;
}

.poster-aff,.topical-aff,.minute{
	font-size: 1.2rem;
}

.minute{
	text-align: center;
}

.topical-table{
	margin-bottom: 20px;
}

.topical-table td{
		background-color: rgba(255,255,255,0);
		border: none;
	border: 1px solid #CCC;
	padding: 5px 10px;
	box-sizing: border-box;
}


.topical-table td:nth-of-type(1){
	width: 15%;
	text-align: left;
}

.topical-table td:nth-of-type(2){
	text-align:left;
	font-size: 1.3rem;
	font-weight: 600;
}

.ple-info.tp-info{
	font-size: 18px;
}

.ple-info.tp-info .ple-date{
	font-size: 17px;
}

.ple-info.tp-info .ple-date small{
	font-size: 17px;
}


a.no-data{
	opacity: 0.5;
	background-color: gray;
	pointer-events: none;
}


@media screen and (max-width: 600px) {
.topical-table td:nth-of-type(1){
	width: 100%;
	display: block;
}
}


/*Poster，Topical2回目ここまで
==================================================*/


/*Plenary2回目
==================================================*/

h5{
	font-family: "Palatino Linotype", "Book Antiqua", Palatino, "serif";
	font-size: 25px;
	font-weight: 700;
	color: rgba(1,45,100,1.00);
	border-bottom: 1px solid rgba(1,45,100,1.0);
	margin-top: 40px;
}

.ple-info{
	font-size: 15px;
	font-family: "Palatino Linotype", "Book Antiqua", Palatino, "serif";
	margin: 0.5em 0 0.5em;
}

.ple-date{
	font-size: 20px;
}

.ple-wrap{
	border-bottom: 1px dashed #CCC;
	padding: 4px 0;
	margin: 8px 0;
	box-sizing: border-box;
}

.ple-profile{
	display: flex;
	justify-content: flex-start;
	width: 100%;
}


.ple-profile-in{
	padding-left: 1em;
	box-sizing: border-box;
	width: calc(100% - 80px + 1em);
}
h6{
	color: #333;
	font-size: 1.7rem;
	padding: 8px 0 0;
	box-sizing: border-box;
}
.ple-no{
	font-size: 1.6rem;
	font-weight: 800;
	color: #FFF;
	background-color: #032f55;
	padding: 0.3em 1em;
	border-radius: 3px;
	box-sizing: border-box;
	letter-spacing: 2px;
	cursor: pointer;
	text-decoration: none;
}

.ple-name{
	font-size: 1.5rem;
	display: block;
}

.ple-aff{
	font-size: 1.3rem;
	display: block;
	font-style: italic;
}

.ple-img{
	width: 80px;
	height: 108px;
}
/*Plenary2回目ここまで
==================================================*/
/* =====2025.8.14追加===== */
.presentation-times {
  margin-left: 2em; /* インデント幅は好みで調整 */
}
.presentation-times {
  margin-left: 2em;
  line-height: 1.5;
}

/* =====2025.8.18追加 Venueの表===== */
/* ===== Venue table (final) ===== */
.room-table-scroll{
  overflow-x:auto;
  overflow-y:hidden;              /* 縦スクロール抑止 */
  -webkit-overflow-scrolling:touch;
  margin:0 auto 2rem;
  border:1px solid #eee;
  max-width:100%;                 /* 親幅に収める */
}

.room-table{
  display:table !important;       /* モバイル崩しを打ち消す */
  border-collapse:collapse;
  table-layout:auto;
  width:max-content;              /* 内容幅に合わせる→横スクロール */
  font-size:14px;
}

.room-table tr{ display:table-row !important; }

.room-table th,
.room-table td{
  display:table-cell !important;
  border:1px solid #ccc;
  padding:6px 8px;
  white-space:nowrap;
  vertical-align:top;
}

.room-table thead th{
  position:sticky;
  top:0;
  background:#fff;
  z-index:1;                      /* 見出しを手前に */
}

@media (max-width:600px){
  .room-table{ font-size:12px; }
}
/* =====2025.8.25追加 ロゴの背景===== */
.sponsor-logo-bg {
  display: inline-block;
  background: linear-gradient(180deg, #0b1d3a 0%, #071122 100%);
  padding: 6px 8px;
  border-radius: 6px;
}
.sponsor-card {
  text-align: left;
}
/* === Sponsor logos: force left align === */
.sponsor-card { 
  text-align: left; 
}

/* 画像の中央寄せを打ち消す */
.sponsor-card .sponsor-img,
.sponsor-card img {
  display: block;
  margin: 1rem 0 !important;   /* ← auto を上書きして左寄せに */
}

/* =====2025.8.27追加 ロゴの縦横比===== */
.sponsor-card img {
  max-height: 80px;  /* 縦の高さを揃える */
  width: auto;       /* 縦横比は保持 */
}

/* === ロゴ画像の共通サイズ（通常）=== */
.sponsor-img {
  max-height: 80px;
  width: auto;
}

/* === 特別枠（2倍サイズ）=== */
.sponsor-large {
  max-height: 250px;   /* 通常の2倍 */
}

/* --- 特別スポンサーだけ2倍（強制上書き版） --- */
.sponsor-card .sponsor-img.sponsor-large {
  max-height: 250px !important;  /* より強いセレクタ + !important で確実に上書き */
  width: auto;
}
/* スポンサー行（横並び）の配置を左寄せにする */
.sponsor-row {
  display: flex;         /* 横並び */
  justify-content: flex-start;  /* 左揃え */
  align-items: center;   /* 縦位置を中央揃え */
  gap: 1rem;             /* ロゴの間隔 */
}

/* sponsor-img-mid のサイズ統一（必要に応じて調整） */
.sponsor-img-mid {
  max-height: 80px;
  width: auto;
  display: block;
}

/* ====== Notice / Information Boxes 2025.10.22====== */
.notice-box {
  max-width: 800px;
  margin: 1.5rem auto;
  padding: 1rem 1.2rem;
  border: 2px solid #ccc;
  border-radius: 10px;
  background-color: #f9f9f9;
  font-size: 1rem;
  line-height: 1.6;
}

.notice-box strong {
  display: block;
  font-size: 1.4rem;   /* ←ここで文字を大きく */
  font-weight: 700;    /* ←太字をさらに強調 */
  margin-bottom: 0.6rem;
  color: #003366;      /* ←落ち着いた青系で見出しっぽく */
  letter-spacing: 0.5px;
}

/* --- Blue: Information or General Notice --- */
.notice-info {
  border-color: #007acc;
  background-color: #e9f4fb;
}

.notice-info strong {
  color: #005a9e;
}

/* --- Yellow: Caution or Attention --- */
.notice-caution {
  border-color: #d4b106;
  background-color: #fffbea;
}

.notice-caution strong {
  color: #8c6d00;
}

/* --- Red: Warning or Important --- */
.notice-warning {
  border-color: #cc0000;
  background-color: #fff1f1;
}

.notice-warning strong {
  color: #a10000;
}

@media screen and (max-width: 600px) {
  .notice-box {
    max-width: 95%;
    padding: 0.8rem;
    font-size: 0.95rem;
  }
}

/* ---2025.11.6 追加 --- */

.photo-row {
  display: flex;
  justify-content: center; /* 中央寄せ */
  gap: 20px; /* 写真の間の余白 */
  flex-wrap: wrap; /* 画面が狭い場合は縦に折り返す */
}

.photo-row img {
  max-width: 100%;
  height: auto;
  border-radius: 5px; /* 角を少し丸める（任意） */
}
/* -----------------------------------------
   ▼ スマホ表示用（900px以下）
------------------------------------------ */
@media screen and (max-width:900px) {
  #sub-visual {
    height: 200px;
    background-position: center 65%;
  }

  #sub-visual h2 {
    font-size: 2rem;
  }
}
/* --- Greeting photo + title layout 2025.11.13--- */
.greeting-flex {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 10px;
}

.greeting-flex img {
  width: 100px;
  height: 120px;
  object-fit: cover;
}

.greeting-name {
  font-weight: bold;
}

/* --- 2025.11.25　追加--- */
a {
  font-size: inherit;
  font-weight: inherit;
  color: #0055cc;
  text-decoration: underline;
}
