@charset "utf-8";

/*——————————————————————
	展示カテゴリボタン
——————————————————————*/

/*ボタン用背景*/
.red_btn,
.yellow_btn,
.pink_btn,
.orange_btn,
.green_btn,
.aqua_btn,
.navy_btn,
.banpaku_btn {
	color: #fff;
	border-radius: 100px;
	text-align: center;
	padding: 15px 5px;
	width: 100%;
	display: inline-block;
	-webkit-transition: 0.3s;
	transition: 0.3s;
}

.red_btn {
	background-color: #e8382f;
	border: 2px solid #e8382f;
}

.red_btn:hover {
	background-color: transparent;
	border: 2px solid #e8382f;
	color: #e8382f !important;
}

.yellow_btn {
	background-color: #FFB000;
	border: 2px solid #FFB000;
}

.yellow_btn:hover {
	background-color: transparent;
	border: 2px solid #FFB000;
	color: #FFB000 !important;
}

.pink_btn {
	background-color: #FF19BF;
	border: 2px solid #FF19BF;
}

.pink_btn:hover {
	background-color: transparent;
	border: 2px solid #FF19BF;
	color: #FF19BF !important;
}

.orange_btn {
	background-color: #df7000;
	border: 2px solid #df7000;
}

.orange_btn:hover {
	background-color: transparent;
	border: 2px solid #df7000;
	color: #df7000!important;
}

.green_btn {
	background-color: #1ABC9C;
	border: 2px solid #1ABC9C;
}

.green_btn:hover {
	background-color: transparent;
	border: 2px solid#1ABC9C;
	color: #1ABC9C !important;
}

.aqua_btn {
	background-color: #036ed8;
	border: 2px solid #036ed8;
	}

.aqua_btn:hover {
	background-color: transparent;
	border: 2px solid #036ed8;
	color: #036ed8 !important;
}

.navy_btn {
	background-color: #003288;
	border: 2px solid #003288;
}

.navy_btn:hover {
	background-color: transparent;
	border: 2px solid #003288;
	color: #003288 !important;
}


.banpaku_btn {
	background-color: #ff1414;
	border: 2px solid #ff1414;
}

.banpaku_btn:hover {
	background-color: transparent;
	border: 2px solid #ff1414;
	color: #ff1414 !important;
}

/*枠背景*/
.red_bg {
	background-color: #e8382f;
}

.yellow_bg {
	background-color: #FFB000;
}

.pink_bg {
	background-color: #FF19BF;
}

.orange_bg {
	background-color: #df7000;
}

.green_bg {
	background-color: #1ABC9C;
}

.aqua_bg {
	background-color: #036ed8;
}

.banpaku_bg {
	background-color: #DD0000;
}


.light_red_bg {
	background-color: #FFF6F5;
	padding: 100px 0;
}

.light_navy_bg {
	background-color: #EFF9FF;
	padding: 100px 0;
}

.black_bg {
	background-color: #333;
}

.white_bg {
	background-color: #fff;
}

/*文字色*/
.red_color {
	color: #e8382f;
}

.navy_color {
	color: #003288;
}

.yellow_color {
	color: #FFB000;
}

.pink_color {
	color: #FF19BF;
}

.orange_color {
	color: #df7000;
}

.green_color {
	color: #1ABC9C;
}

.aqua_color {
	color: #036ed8;
}

.banpaku_color {
	color: #DD0000;
}
.white_color {
	color: #fff;
}

.black_color {
	color: #333;
}

.ex_category_wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.ex_category_inner {
	width: 49.5%;
}

.ex_red_box,
.ex_navy_box {
	position: relative;
	padding: 15px;
	margin-bottom: 40px;
}


.ex_red_box h2,
.ex_navy_box h2 {
	color: #fff;
	font-size: 18px;
	text-align: center;
}

ul.ex_theme_btn {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

ul.ex_theme_btn li {
	list-style: none;
	width: calc(100% / 2 - 5px);
}

ul.ex_theme_btn li:nth-child(n+3) {
	margin-top: 25px;
}

span.s_font {
	font-size: 9px;
	padding-left: 2px;
}

.fa-circle-chevron-down:before {
	content: "\f13a";
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	padding-left: 10px;
}

.fa-circle-chevron-right:before {
	content: "\f138";
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	padding-left: 10px;
}


/*——————————————————————
	展示一覧共通化
——————————————————————*/
/* Theme color propagation and heading backgrounds */
.ex_theme_wrapper.yellow_bg ul.ex_detail_block li > h2 {
background-color: #FFB000;
color: #fff;
padding: 0 30px;
margin-bottom: 10px;
font-weight: bold;
}
.ex_theme_wrapper.red_bg ul.ex_detail_block li > h2 {
background-color: #e8382f;
color: #fff;
padding: 0 30px;
margin-bottom: 10px;
font-weight: bold;
}
.ex_theme_wrapper.pink_bg ul.ex_detail_block li > h2 {
background-color: #FF19BF;
color: #fff;
padding: 0 30px;
margin-bottom: 10px;
font-weight: bold;
}
.ex_theme_wrapper.green_bg ul.ex_detail_block li > h2 {
background-color: #1ABC9C;
color: #fff;
padding: 0 30px;
margin-bottom: 10px;
font-weight: bold;
}
/* Tag labels inherit theme colors */
.ex_theme_wrapper.yellow_bg span.border_box {
background-color: #FFB000;
border-color: #FFB000;
color: #fff;
}
.ex_theme_wrapper.red_bg span.border_box {
background-color: #e8382f;
border-color: #e8382f;
color: #fff;
}
.ex_theme_wrapper.pink_bg span.border_box {
background-color: #FF19BF;
border-color: #FF19BF;
color: #fff;
}
.ex_theme_wrapper.green_bg span.border_box {
background-color: #1ABC9C;
border-color: #1ABC9C;
color: #fff;
}
/* Theme colored PDF buttons (hidden by default) */
.ex_theme_wrapper.yellow_bg a.pdf_btn {
background-color: #FFB000;
border: 2px solid #FFB000;
color: #fff;
border-radius: 100px;
}
.ex_theme_wrapper.red_bg a.pdf_btn {
background-color: #e8382f;
border: 2px solid #e8382f;
color: #fff;
border-radius: 100px;
}
.ex_theme_wrapper.pink_bg a.pdf_btn {
background-color: #FF19BF;
border: 2px solid #FF19BF;
color: #fff;
border-radius: 100px;
}
.ex_theme_wrapper.green_bg a.pdf_btn {
background-color: #1ABC9C;
border: 2px solid #1ABC9C;
color: #fff;
border-radius: 100px;
}
/* Colored left border for small titles, inheriting theme color; text remains black */
.ex_theme_wrapper.yellow_bg .small_ttl {
border-left: 6px solid #FFB000;
color: #333;
/* create space below this title */
margin-bottom: 10px;
/* enlarge the vertical height with more padding */
padding: 12px 10px;
}
.ex_theme_wrapper.red_bg .small_ttl {
border-left: 6px solid #e8382f;
color: #333;
margin-bottom: 10px;
padding: 12px 10px;
}
.ex_theme_wrapper.pink_bg .small_ttl {
border-left: 6px solid #FF19BF;
color: #333;
margin-bottom: 10px;
padding: 12px 10px;
}
.ex_theme_wrapper.green_bg .small_ttl {
border-left: 6px solid #1ABC9C;
color: #333;
margin-bottom: 10px;
padding: 12px 10px;
}
/* Center-align top-level headings within each detail block */
ul.ex_detail_block li > h2 {
/* ensure the heading takes full width and centers its text */
width: 100%;
display: block;
text-align: center;
/* add some spacing below the heading */
margin: 0 0 10px 0;
}

/* Remove default black borders on small_ttl headings */
.ex_theme_wrapper .small_ttl h2 {
border-left: none !important;
border-bottom: none !important;
}
/* Hide all pdf buttons */
a.pdf_btn {
display: none !important;
}
/* Layout adjustments for detail blocks */
ul.ex_detail_block li {
margin-bottom: 30px;
border-bottom: 1px solid #ddd;
padding-bottom: 20px;
}
ul.ex_detail_block li .detail_top {
display: flex;
flex-wrap: wrap;
}
ul.ex_detail_block li .detail_top .detail_l {
flex: 0 0 60%;
}
ul.ex_detail_block li .detail_top .detaill_r {
flex: 0 0 40%;
display: flex;
justify-content: flex-end;
}
ul.ex_detail_block li .detail_top .detaill_r p {
margin-left: 10px;
}
ul.ex_detail_block li .detail_bottom {
display: flex;
flex-wrap: wrap;
align-items: center;
}
ul.ex_detail_block li .detail_bottom .detail_l {
flex: 0 0 80%;
}
ul.ex_detail_block li .detail_bottom .detaill_r {
flex: 0 0 20%;
}
@media (max-width: 768px) {
ul.ex_detail_block li .detail_top .detail_l,
ul.ex_detail_block li .detail_top .detaill_r,
ul.ex_detail_block li .detail_bottom .detail_l,
ul.ex_detail_block li .detail_bottom .detaill_r {
flex: 0 0 100%;
}
ul.ex_detail_block li .detail_top .detaill_r {
justify-content: flex-start;
}
}


/*——————————————————————
	大中小　見出し
——————————————————————*/
.large_ttl {
	text-align: center;
	font-weight: bold;
}

.large_ttl h2 {
	font-size: 46px;
}

.large_ttl h3 {
	font-size: 20px;
	font-family: Montserrat;
	padding-bottom: 15px;
}

.area_ttl_border {
	border-bottom: 1px solid;
	width: 100px;
	margin: 0 auto;
	padding-top: 10px;
}

.midium_ttl {
	color: #fff;
	padding-bottom: 30px;
}

.midium_ttl h2 {
	font-size: 28px;
	text-align: center;
}

.midium_ttl p {
	font-size: 17px;
}

.small_ttl h2 {
	border-bottom: 1px solid;
	border-left: 10px solid;
	padding-left: 10px;
	font-size: 20px;
	font-weight: bold;
}

.theme_bar_ttl {
	color: #fff;
	text-align: center;
}

.theme_bar_ttl h2 {
	padding: 10px;
	margin-bottom: 30px;
	font-size: 20px;
	font-weight: bold;
}

/*——————————————————————
	脳情情報科学 白枠
——————————————————————*/
.ex_theme_wrapper {
	width: 100%;
	border-radius: 20px;
	padding: 30px;
	margin-bottom: 100px;
}

.ex_theme_wrapper:nth-child(5n) {
	margin-bottom: 0px;
}

.ex_theme_wrapper:last-child {
	margin-bottom: 0px;
}

p.theme_explanation {
	font-size: 17px;
	text-align: left;
	color: #fff;
}

.ex_theme_white_box {
	background-color: #fff;
	padding: 30px;
	margin-top: 20px;
}

/*——————————————————————
	脳情情報科学 詳細情報
——————————————————————*/
ul.ex_detail_block li {
	border-bottom: 1px solid #ddd;
	list-style: none;
}

.detail_top {
	padding-top: 20px;
}

.detail_bottom {
	margin-top: 20px;
}

.detail_top,
.detail_bottom {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: flex-start;
}

.detail_l {
	padding-bottom: 5px;
}

.detail_l,
.detaill_r {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: baseline;
	-ms-flex-align: baseline;
	align-items: baseline;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.detail_l h2 {
	text-align: center;
	padding: 0px 30px;
	margin-right: 10px;
	color: #fff;
	font-weight: bold;
	font-size: 20px;
}

.detail_l p {
	font-weight: bold;
	font-size: 20px;
	line-height: 1.5em;
}

span.theme_subttl {
	font-size: 15px;
}

.detaill_r p {
	font-size: 15px;
	font-weight: bold;
}

.detaill_r p:nth-child(n+2) {
	margin-left: 15px;
}

.detaill_r img {
	max-width: 400px;
	margin-bottom: 20px;
}

.detaill_r img img {
	width: 100%;
}

span.blk_border_box {
	color: #333;
	border: 1px solid #333;
	padding: 5px 15px;
}

span.border_box {
	color: #fff;
	padding: 6.5px 15px;
}

.pdf_btn_box {
	margin-bottom: 10px;
	width: 100%;
}

a.pdf_btn {
	padding: 10px 70px;
}

.pdf_btn_box_2 {
	margin-bottom: 50px;
	width: 100%;
}

a.pdf_btn_2 {
	padding: 10px 75px;
	width: 30%;
}


.no_display {
	display: none;
}

/*——————————————————————
	生命科学 flexbox
——————————————————————*/
.explanation_flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.explanation_l {
	width: 45%;
	font-weight: bold;
}

.explanation_r {
	width: 45%;
}

/*——————————————————————
	事業開発 flexbox
——————————————————————*/
.business_flex,
.business_flex_2 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.business_flex {
	margin-bottom: 30px;
}

.business_flex:last-child {
	margin-bottom: 0;
}

.business_flex_2 {
	margin-bottom: 30px;
}

.business_logo img,
.business_l img {
	width: 150px;
}

.aqua_border_box {
	border: 1px solid #3498DB;
	padding: 30px;
}

.banpaku_border_box {
	border: 1px solid #DD0000;
	padding: 30px;
}

ul.venture_comapany_introduction {
	padding-left: 20px;
	margin-top: 10px;
}

.business_r {
	margin-left: 5px;
}

.business_r h1 {
	font-size: 20px;
	margin-bottom: 10px;
}

span.business_theme_subttl {
	font-size: 15px;
}

.business_no_flex {
	text-align: center;
	padding-bottom: 50px;
}

/*——————————————————————
	大阪・関西万博 flexbox
——————————————————————*/
.business_flex,
.business_flex_2 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.business_flex {
	margin-bottom: 30px;
}

.business_flex:last-child {
	margin-bottom: 0;
}

.business_flex_2 {
	margin-bottom: 30px;
}

.business_logo img,
.business_l img {
	width: 150px;
}

.banpaku_border_box {
	border: 1px solid #DD0000;
	padding: 30px;
}

ul.venture_comapany_introduction {
	padding-left: 20px;
	margin-top: 10px;
}

.business_r h1 {
	font-size: 20px;
	margin-bottom: 10px;
}

span.business_theme_subttl {
	font-size: 15px;
}

.business_no_flex {
	text-align: center;
	padding-bottom: 50px;
}

/*——————————————————————
	レスポンシブ
——————————————————————*/
@media only screen and (max-width: 1280px) {
	.ex_category_inner:first-child {
		padding-bottom: 50px;
	}

	ul.ex_detail_block li {
		display: block;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.detail_l,
	.detaill_r {
		-webkit-box-pack: start;
		-ms-flex-pack: start;
		justify-content: flex-start;
	}

	.detail_top,
	.detail_bottom {
		display: block;
	}

	.detail_bottom {
		margin-top: 0;
	}

	.detaill_r {
		padding-top: 15px;
		margin-bottom: 20px;
	}

	a.pdf_btn_2 {
		padding: 10px 80px;
		width: 100%;
	}

}

@media only screen and (max-width: 1024px) {
	ul.ex_theme_btn li {
		width: 100%;
	}

	ul.ex_theme_btn li:nth-child(n+2) {
		margin-top: 15px;
	}

	.light_red_bg,
	.light_navy_bg {
		padding: 100px 0;
	}


	.detail_top {
		padding-bottom: 10px;
	}

}

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

	span.border_box,
	span.blk_border_box {
		font-size: 12px;
	}

	.ex_category_wrapper,
	.desc_dl {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.desc_dl dt {
		width: 100%;
		margin: 0 0 1em 0;
	}

	.ex_category_inner {
		width: 100%;
	}

	.ex_theme_wrapper,
	.ex_theme_white_box {
		padding: 20px;
	}

	.ex_theme_wrapper {
		margin-bottom: 50px;
	}

	ul.ex_detail_block li {
		padding-top: 20px;
	}

	.small_ttl h2,
	.theme_bar_ttl h2 {
		font-size: 15px;
	}

	.detail_top {
		padding-bottom: 0px;
	}

	.detail_bottom {
		padding-top: 0px;
		margin-top: 20px;
	}

	.detail_l,
	.detaill_r {
		display: block;
	}

	.detaill_r {
		padding-top: 10px;
	}

	span.border_box,
	span.blk_border_box {
		display: inline-block;
		width: 100px;
		text-align: center;
		padding: 3px;
	}

	.detail_l h2 {
		margin-right: 0px;
		font-size: 15px;
		margin-bottom: 10px;
	}

	.detail_l p {
		font-size: 15px;
		line-height: 1.3em;
		text-align: left;
	}

	span.theme_subttl {
		font-size: 13px;
	}

	a.pdf_btn {
		padding: 5px;
		width: 100%;
	}

	.large_ttl h2 {
		font-size: 36px;
	}

	.midium_ttl h2 {
		font-size: 15px;
	}

	.large_ttl h3 {
		font-size: 18px;
	}

	p.theme_explanation {
		font-size: 12px;
	}

	.detaill_r p:nth-child(n+2) {
		margin: 10px 0 10px 0;
	}

	.business_flex,
	.business_flex_2 {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.business_l {
		padding-bottom: 20px;
	}

	.business_r h1 {
		font-size: 15px;

	}

	.business_logo img,
	.business_l img {
		width: 100%;
	}
}

/* -----------------------------------------------------------------
   Custom layout for optional images inside detail_l (top detail rows)

   When an <img> tag is present as the first child of .detail_l (within the .detail_top row),
   this layout forces the image and the accompanying text to align horizontally.
   The image occupies 20% of the available width while the text uses the remaining 80%.
   On small screens (max-width: 768px) the elements stack vertically.
*/
ul.ex_detail_block li .detail_top .detail_l {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
}
ul.ex_detail_block li .detail_top .detail_l > img {
    flex: 0 0 20%;
    max-width: 20%;
    height: auto;
    margin-right: 1em;
}
ul.ex_detail_block li .detail_top .detail_l > p {
    flex: 1 1 80%;
    margin: 0;
}
@media (max-width: 768px) {
    ul.ex_detail_block li .detail_top .detail_l {
        flex-direction: column;
    }
    ul.ex_detail_block li .detail_top .detail_l > img {
        flex: none;
        max-width: 100%;
        margin-right: 0;
        margin-bottom: 0.5em;
    }
    ul.ex_detail_block li .detail_top .detail_l > p {
        flex: none;
    }
}

/*
 * Override the layout for <div class="detail_l"> containers that include an
 * <img> followed by a <p>.  Without this override, long paragraphs can
 * wrap beneath the image when the image height is shorter than the text.
 * Setting display:flex and align-items:flex-start ensures the text stays
 * to the right of the image across multiple lines.  The image keeps its
 * own width, and the paragraph grows to fill the remaining width.  On
 * narrow screens, the flex container switches to column mode so the image
 * sits above the text.
 */
ul.ex_detail_block li .detail_l {
    /* always use flex layout for consistency */
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start !important;
}

/* image inside .detail_l: don't shrink, reserve its width */
ul.ex_detail_block li .detail_l > img {
    flex: 0 0 auto;
    /* add space between image and text */
    margin-right: 1em;
    margin-bottom: 0;
}

/* paragraph inside .detail_l: take up remaining space and reset margin */
ul.ex_detail_block li .detail_l > p {
    flex: 1 1 auto;
    margin: 0;
}

@media (max-width: 768px) {
    ul.ex_detail_block li .detail_l {
        flex-direction: column;
    }
    ul.ex_detail_block li .detail_l > img {
        margin-right: 0;
        margin-bottom: 0.5em;
    }
    ul.ex_detail_block li .detail_l > p {
        flex: none;
    }
}

/*
 * Fallback float-based layout for cases where an image and a paragraph
 * are placed directly inside a .detail_l without the surrounding
 * ex_detail_block structure.  Using float ensures that long paragraphs
 * remain aligned to the right of the image (instead of wrapping under it)
 * while maintaining compatibility with existing layout rules.  On small
 * screens the image and text stack vertically.
 */
.detail_l > img {
  float: left;
  margin-right: 1em;
  margin-bottom: 0;
}
.detail_l > p {
  overflow: hidden;
}
.detail_l::after {
  content: "";
  display: table;
  clear: both;
}
@media (max-width: 768px) {
  .detail_l > img {
    float: none;
    display: block;
    margin-right: 0;
    margin-bottom: 0.5em;
  }
  .detail_l > p {
    overflow: visible;
  }
}


