@charset "UTF-8";

/* ===================================
	File Name   : top.css
	Description : Top Page Layout CSS
	Editor      : Bface Saeki
	Last Editor : Bface Otake
	
	Update Description :
  [2025/06/18] top_sectors項目追加
  [2025/06/11] スライダー削除
  [2025/06/05] Foodex EXFoodex EXIBIT ZONE 調整
  [2025/02/05] ビジュアル内広告バナー設置
	[2024/07/29] ビジュアル比率変更
	[2024/03/21] ビジュアル更新
	[2023/11/13] Ad Medium Bannersスタイル修正
	[2023/04/11] top_videoスタイル追加

====================================== */

/*========== Style Contents ==========

	1. Individual Redefinition
	2. Section [top_hero] Setting
	3. Section [top_info] Setting
  4. Aside [top_attention] Setting
  5. Aside [top_utility] Setting
  6. Aside [top_ex_bnr] Setting
  7. [top_bnr] Setting
  8. [top_sdgs] Setting
  9. [top_recovery_plan] Setting
  10. Ad Medium Banners
  11. Section [top_message] Setting
  12. Quick
  13. Section [top_outline] Setting
  14. Aside [top_map] Setting
  15. Section [top_video] Setting
  16. Section [top_partner] Setting
  17. Section [top_intro] Setting
  18. Section [top_scale] Setting
  19. Section [top_zone] Setting
  20. Div [top_sectors] Setting

====================================== */

/*===== ■1. Individual Redefinition =====*/
/*===== ■2. Section [top_hero] Setting =====*/
#top_hero {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  position: relative;
  padding: 30px 0
}

#top_hero::before { content: "";}

#top_hero > div:first-of-type {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: -15%;
  width: 100%;
  height: 100%;
  z-index: 4;
}

#top_hero #ads_wrapper {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 30px;
  /*大バナーのみ*/
  justify-content: flex-end;
  /*特大バナーあり
  justify-content: space-between;
  align-items: center;
  width: 100%;*/
}

#top_hero #ads_exlarge_wrapper {
  display: flex;
  align-items: center;
  width: 50%;
}

#top_hero #ads_large_wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  /*特大バナーあり
  justify-content: center;
  flex-grow: 1;*/
  /*大バナーのみ*/
  justify-content: flex-end;
  width: 50%;
}

#top_hero #ad_exlarge {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin: 0 auto;
  padding: 0 70px 10px;
  width: 100%;
}

#top_hero #ad_exlarge > div {    
  width: 640px;
  max-width: 100%;
}

#top_hero #ad_large {
  display: flex;
  align-items: center;
  position: relative;
  width: 50%;
  min-width: 300px;
  margin: 0 auto;
  padding: 0 70px 10px;
}

#top_hero #ad_large > div {    
  width: 300px;
  max-width: 100%;
}

#top_hero #ads_large_wrapper > .app {
  display: block;
  padding: 0 70px 10px;
}

#top_hero #ads_large_wrapper  > .app > img {
  width: 100%;
  max-width: 440px;
}

#top_hero #hero_contents {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  position: absolute;
  bottom: -12%;
  margin-bottom: 30px;
  z-index: 3;
}

#top_hero #hero_contents > h2 {
  margin-bottom: 15px;
  color: #fff;
  font-weight: 700;
  font-size: 8rem;
  text-shadow:  10px 10px 0 rgba(0, 0, 0, .25);
  line-height: 1;
}

#top_hero #hero_contents > p {
  color: #fff;
  font-size: 1.6rem;
}

#top_hero #hero_contents > h2 + p {
  margin-bottom: 10px;
}

#top_hero #hero_contents > h2 + p > span {
  font-size: 1.8rem;
}

#top_hero #hero_contents > h2 + p > span:nth-of-type(2) {
  display: inline-block;
  width: 10px;
  height: 1px;
  margin: 5px 8px;
  background-color: #fff;
}

#top_hero #hero_contents > h2 + p > b {
  font-size: 2rem;
  font-weight: 700;
}

#top_hero #hero_contents > h2 + p > span:not(:first-child) {
  font-size: 1.4rem;
}

#top_hero #hero_contents > p:last-of-type{
  font-size: 1.8rem;
}

#top_hero #hero_contents > p:last-of-type .txtlink{
  margin-left: 10px;
  color: #fff;
}

#top_hero #hero_contents > p:last-of-type .txtlink::after{
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMCAxMCI+PGRlZnM+PHN0eWxlPi5jbHMtMSB7ZmlsbDogI2ZmZjt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjYzOSw1OTE3di04aDh2OGgtOFptNi02aC00djRoNHYtNFptLTcsOGgtMXYtNWgxdjRoNHYxaC00WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2MzcgLTU5MDkpIi8+PC9zdmc+);
}

#top_hero #youtube-area{
  position: relative;
  aspect-ratio: 16/9;
}

#top_hero #youtube {
  width: 100%;
  height: 100%;
}

#top_hero #youtube-mask{
  position: absolute;
  z-index: 2;
  top:0;
  width:100%;
  height: 100%;
  background-color: rgba(000,000,000,0.5);
}

#top_hero #ytp-pause-overlay { display: none;}


@media (max-width: 768px) {
  #top_hero {
    flex-direction: column-reverse;
    padding: 0;
    overflow: visible;
  }

  #top_hero > div:first-of-type {
    flex-direction: column;
    position: static;
    width: 100%;
  }

  #top_hero > div:first-of-type > div {
    display: block;
    z-index: 4;
  }

  #top_hero #ads_wrapper {
    flex-direction: column;
    gap: 30px;
    width: 100%;
    margin: 6.5vw  0 0;
  }

  #top_hero #ads_exlarge_wrapper {
    padding: 0 35px;
    width: 100%;
    justify-content: center;
  }
  #top_hero #ad_exlarge  {
    padding: 0 40px 10px;
  }

  #top_hero #ads_large_wrapper {
    padding: 0 10px;
    margin-bottom: 0;
    /*大バナーのみ*/
    justify-content: center;
    width: 100%;
  }

  #top_hero #ad_large {
    max-width: 420px;
    width: 100%;
    height: auto;
    margin-bottom: 30px;
    padding: 0 70px 0;
  }
  #top_hero #ad_large > div {
    width: 100%;
  }
  #top_hero #ads_large_wrapper > .app {
    padding: 0;
  }

  #top_hero #hero_contents {
    display: block;
    position: absolute;
    top: 0;
    left: 10px;
    margin: 13% 0 0;;
    margin-bottom: 0;
    width: auto;
  }
  
  #top_hero #hero_contents > h2 {
    margin-bottom: 4vw;
    font-size: 4.2rem;
    text-shadow: 5px 5px 0 rgba(0, 0, 0, .25);
  }
  
  #top_hero #hero_contents > p {
    font-size: 1.4rem;
  }

  #top_hero #hero_contents > h2 + p {
    margin-bottom: 2.67vw;
  }

  #top_hero #hero_contents > h2 + p > span {
    font-size: 1.6rem;
  }

  #top_hero #hero_contents > h2 + p > b {
    font-size: 1.8rem;
  }

  #top_hero #hero_contents > h2 + p > span:last-child {
    font-size: 1.4rem;
  }

  #top_hero #hero_contents > p:last-of-type{
    font-size: 1.6rem;
  }

  #top_hero #hero_contents > p:last-of-type .txtlink{
    margin-left: 1.34vw;
  }

  #hero_bg > div:first-child > img {
    width: 60%;
  }

  #hero_bg .bg_img_wrapper{
    width: 100vw;
  }

  #hero_bg #bg_img02_02 {
    top: 66.75vw;
  }
}



/*===== ■3. Section [top_info] Setting =====*/
#top_info { margin-top: 80px;}

#top_info .inner { padding: 0 40px 40px;}

#top_info ul {
  /*コンテンツが多くなったら解除*/
  /*height: 150px;*/
  max-width: 83.18%;
  margin: 0 auto 40px;
  padding: 0 20px;
  overflow-y: scroll;
}

#top_info li:not(:last-child) { margin-bottom: 2px;}

#top_info li a {
  display: block;
  position: relative;
  padding: 10px 20px 10px 10px;
  border: 1px solid transparent;
  background: rgba(0, 0, 0, .05);
  color: #333;
  text-decoration: none;
  transition: all .25s;
}

#top_info li a.none { pointer-events: none;}

#top_info li a:not(.none)::after {
  position: absolute;
  top: 50%;
  right: 10px;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 6px solid #333;
  transform: translateY(-50%);
  content: "";
}

#top_info li a:not(.none)[target="_blank"]::after {
  width: 12px;
  height: 12px;
  border: none;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2010%2010%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%20%7Bfill%3A%20%23333%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M2639%2C5917v-8h8v8h-8Zm6-6h-4v4h4v-4Zm-7%2C8h-1v-5h1v4h4v1h-4Z%22%20transform%3D%22translate(-2637%20-5909)%22%2F%3E%3C%2Fsvg%3E") no-repeat left top / cover;
}

#top_info li a time {
  display: block;
  margin-bottom: 5px;
  font-size: 1.6rem;
}

#top_info li a:hover {
  border: 1px solid #333;
  background: #fff;
  transition: all .25s;
}


@media (max-width: 768px) {
  #top_info { margin: 8vw 0 0;}
  #top_info .inner { padding: 0 2.67vw 2.67vw;}

  #top_info ul {
    max-width: none;
    margin: 0 auto 5.34vw;
    padding: 0;
  }

  #top_info li a {
    padding: 2.67vw 5.34vw 2.67vw 2.67vw;
    transition: none;
  }

  #top_info li a:not(.none)::after {
    right: 2.67vw;
    border-top: 1.34vw solid transparent;
    border-bottom: 1.34vw solid transparent;
    border-left: 1.34vw solid #333;
  }
  
  #top_info li a:not(.none)[target="_blank"]::after {
    width: 2.67vw;
    height: 2.67vw;
  }

  #top_info li a time {
    margin-bottom: 1.34vw;
    font-size: 1.2rem;
  }

  #top_info li a:hover {
    border: 1px solid transparent;
    background: rgba(0, 0, 0, .05);
    transition: none;
  }
}



/*===== ■4. Aside [top_attention] Setting =====*/
#top_attention {
  padding: 40px 0;
  background: #fff;
}

#top_attention section {
  display: flex;
  position: relative;
  margin: 0;
  padding: 100px 0;
  background: none;
}

#top_attention section:nth-child(odd) { justify-content: flex-end;}

#top_attention section:not(:first-child) { margin-top: -50px;}

#top_attention section div:not(.utility_bg) {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
  width: 60%;
}
#top_attention section:nth-child(odd) div { align-items: flex-end;}

#top_attention section div :not(h3) {
  width:  65%;
  margin: 15px 20px;
}

#top_attention section div h3 {
  width: 50%;
  margin-bottom: 20px;
  padding: 20px;
  background: #000;
  font-size: 3.4rem;
  color: #fff;
}

#top_attention .utility_bg {
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 60%;
  height: 100%;
  background: no-repeat center bottom / cover;
}

#top_attention section:nth-child(odd) .utility_bg {
  left: 0;
  transform: skew(8deg,0deg);
  transform-origin: bottom left;
}

#top_attention section:nth-child(even) .utility_bg {
  right: 0;
  transform: skew(-8deg,0deg);
  transform-origin: bottom right;
}

#top_attention .utility_bg::after {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjMTNjZTA0NS04YzAzLTQ5YzktYWQ5NS01NjMwMTA1YjhkMzQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkNDMUQ4N0FENzY1MTFFOUE2OTc4MDVFMEVFQzI0MTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkNDMUQ4NzlENzY1MTFFOUE2OTc4MDVFMEVFQzI0MTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpkMDNkOTM5NC1kMDE5LTQyMTctYTQyMS0zNDhlYTdjYjI5ZjMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDphNTJkOGZmYi02M2I2LTg4NDItOWVhZS00NzY0YzAwYzEwNjUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz76VM1KAAAAF0lEQVR42mJmYGA4D8Q3gZjBAcQBCDAAFiMCu/+RZCsAAAAASUVORK5CYII=) repeat;
  content: "";
}

#top_attention .utility_bg span {
  display: block;
  width: 100%;
  height: 100%;
}

#top_attention section:nth-child(odd) .utility_bg span { transform: skew(-8deg,0deg) scale(1.2);}
#top_attention section:nth-child(even) .utility_bg span { transform: skew(8deg,0deg) scale(1.2);}
#top_attention #attention_report .utility_bg span { background-image: url("img/top/img-attention01.jpg");}
#top_attention #attention_info .utility_bg span { background-image: url("img/top/img-attention02.jpg");}
#top_attention #attention_exhibit .utility_bg span { background-image: url("img/top/img-attention03.jpg");}
#top_attention #attention_visitor .utility_bg span { background-image: url("img/top/img-attention04.jpg");}
#top_attention #attention_report02 .utility_bg span { background-image: url("img/top/img-attention05.jpg");}

#top_attention section:nth-child(odd).anim { animation: slide_left .4s .2s linear forwards;}
#top_attention section:nth-child(even).anim { animation: slide_right .4s .2s linear forwards;}

#top_attention section:nth-child(odd).anim { animation: slide_left .4s .2s linear forwards;}
#top_attention section:nth-child(even).anim { animation: slide_right .4s .2s linear forwards;}

#top_attention section.anim div h3 { animation: extension .4s .2s linear forwards;}

@keyframes slide_left {
	0% { opacity: 0; right: 100px;}
	100% { opacity: 1; right: 0;}
}

@keyframes slide_right {
	0% { opacity: 0; left: 100px;}
	100% { opacity: 1; left: 0;}
}

@keyframes extension {
	0% { opacity: 0; width: 50%}
	100% { opacity: 1; width: 100%}
}


@media (max-width: 768px) {
  #top_attention {
    margin: 2.67vw;
    padding: 0;
    background: none;
  }

  #top_attention section { padding: 2.67vw;}

  #top_attention section:not(:first-child) { margin-top: 1.34vw;}

  #top_attention section div:not(.utility_bg) {
    display: block;
    z-index: 2;
    width: 100%;
  }

  #top_attention section div :not(h3) {
    width: inherit;
    margin: 0;
  }

  #top_attention section div h3 {
    margin-bottom: 5.34vw;
    padding: 4vw 2.67vw;
    font-size: 2.0rem;
  }
  
  #top_attention section div p {
    margin: 0 2.67vw 5.34vw;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .5);
    color: #fff;
  }

  #top_attention .utility_bg {
    z-index: 1;
    width: 100%;
    background: no-repeat center bottom / cover;
    transform: none !important;
  }

  #top_attention section .utility_bg span { transform: none !important;}
  
  #top_attention section.anim { animation: slide .4s .2s linear forwards !important;}
}



/*===== ■5. Aside [top_utility] Setting =====*/
#top_utility {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 20px 40px;
  padding: 30px 0;
}

#top_utility section {
  position: relative;
  width: calc(50% - 60px);
  margin: 0 30px;
  background: none;
}

#top_utility #utility_tw {
  display: flex;
  flex-direction: column;
}

#top_utility .sns_container {
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
}

#top_utility #utility_tw .sns_container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #fff;
}

.utility_bnr ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 40px;
}

.utility_bnr ul:last-child {
  margin-bottom: 0;
}

.utility_bnr li {
  max-width: 170px;
  margin: 0 15px 15px;
  line-height: 0;
}

.utility_bnr li a {
  display: block;
  line-height: 0;
  border: 1px solid #ebebeb;
}


@media (max-width: 768px) {
  #top_utility {
    display: block;
    overflow: hidden;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 2.67vw 2.67vw;
    padding: 4vw 2.67vw 5.34vw;
  }
  
  #top_utility section {
    width: calc(100% - 5.34vw);
    margin: 0 2.67vw 5.34vw;
    background: none;
  }
  #top_utility section:last-of-type { margin-bottom: 0;}

  .utility_bnr ul {
    display: block;
    margin-bottom: 2.67vw;
  }

  .utility_bnr li {
    max-width: none;
    margin: 0 2.67vw;
  }
}



/*===== ■6. Aside [top_ex_bnr] Setting =====*/
#top_ex_bnr {
  margin: 0 10px 40px;
}

#top_ex_bnr ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

#top_ex_bnr li {
  max-width: 300px;
}


@media (max-width: 768px) {
  #top_ex_bnr {
    width: calc(100% - 6.67vw);
    margin: 5.67vw auto 2.67vw;
  }
  #top_ex_bnr li {
    width: calc(50% - 2.68vw);
    margin: 0 1.34vw;
  }
}



/*===== ■7. [top_bnr] Setting=====*/
#top_bnr {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0 0 20px;
  text-align: center;
}

#top_bnr a {
  display: inline-block;
  max-width: calc(50% - 20px);
  width: 640px;
  margin: 0 10px 20px;
}

#top_bnr img {
  vertical-align: bottom;
}


@media (max-width: 768px) {
  #top_bnr {
    flex-direction: column;
    margin: 6.67vw 2.67vw 6.67vw;
    padding: 0;
  }
  
  #top_bnr a {
    display: block;
    max-width: none;
    width: 100%;
    margin: 0;
  }
  
  #top_bnr a:not(:last-child) {
    margin-bottom: 2.67vw;
  }
  
}



/*===== ■8. [top_sdgs] Setting=====*/
#top_sdgs { 
  width: 100%;
  margin: 40px 20px 0;
  padding: 40px 20px;
  background: #fff;
}

#top_sdgs figure {
  max-width: 640px;
  margin: auto;
}
#top_sdgs figure:first-child{
  margin-bottom: 10px;
  text-align: center;
}

#top_sdgs figcaption{
  margin-top: 10px;  
  background: #fff;
  text-align: center;
}


@media (max-width: 768px) {
  #top_sdgs {
    width: auto;
    margin: 0 2.67vw;
    padding: 4vw 2.67vw; 
  }
  
  #top_sdgs figure:first-child{
    margin-bottom: 2.67vw;
  }

  #top_sdgs figcaption{
    margin-top: 2.67vw; 
  }
}



/*===== ■9. [top_recovery_plan] Setting=====*/
#top_recovery_plan {
  padding-top: 20px;
  text-align: center;
}

#top_recovery_plan > a {
  display: inline-block;
  margin: 0 auto;
  border: 1px solid #fff;
}

#top_recovery_plan > a img{
  vertical-align: bottom;
}


@media (max-width: 768px) {
  #top_recovery_plan {
    padding: 0 2.67vw 0;
  }
  
  #top_recovery_plan a {
    margin: 0 auto;
  }
}



/*===== ■10. Ad Medium Banners =====*/
ul#ad_medium {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 20px;
}

ul#ad_medium li {
  width: 190px;
  margin: 20px 10px 0;
}


@media (max-width: 768px) {
  ul#ad_medium {
    margin: 0 2.67vw 5.34vw;
  }

  ul#ad_medium li {
    width: calc(50% - 5.34vw);
    max-width: 190px;
    margin: 2.67vw 2.67vw 0;
  }
}



/*===== ■11. Section [top_message] Setting =====*/
#top_message ul {
  justify-content: center;
}

#top_message ul.smallcard li {
  width: 50%;
  min-width: 640px;
}

#top_message ul.smallcard li a {
  display: flex;
}

#top_message ul.smallcard li a figure {
  width: 30%;
  flex-shrink: 0;
}

#top_message ul.smallcard li img {
  max-width: none;
  width: 100%;
  height: 100%;
  aspect-ratio: 13 / 15;
  object-fit: cover;
}

#top_message #message_nanao {
  display: none;
}

.message_content dt {
  margin-bottom: 20px;
  font-weight: bold;
  font-size: 3rem;
}

.message_content dd > div:last-of-type {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-end;
  justify-content: flex-end;
  margin-top: 20px;
}

.message_content dd > div:last-of-type p {
  margin-left: 10px;
  font-size: 1.4rem;
}


@media (max-width: 768px) {
  #top_message ul.smallcard li {
    width: 100%;
    min-width: auto;
  }

  #top_message ul.smallcard li a {
    flex-direction: column;
  }

  #top_message ul.smallcard li a figure {
    width: 100%;
  }

  .message_content dt {
    margin-bottom: 4vw;
    font-size: 2rem;
  }

  .message_content dd > div:last-of-type {
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-top: 4vw;
  }

  .message_content dd > div:last-of-type p {
    margin-left: 0;
    margin-top: 1.34vw;
  }
}



/*===== ■12. Quick =====*/
#top_quick {
  width: auto;
}

#top_quick #movie {
  text-align: center;
  padding-bottom: 20px;
}

#top_quick table {
  width: 100%;
  margin-bottom: 20px;
  background: #fff;
  border: 1px solid #fff;
}

#top_quick table th,
#top_quick table td {
  padding: 15px;
  text-align: center;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

#top_quick table thead th {
  background: #000;
  color: #fff;
  font-size: 1.8rem;
}

#top_quick table tr:first-child th::before,
#top_quick table thead th::before {
  display: none;
}
  
#top_quick table tbody tr th {
  padding: 15px;
}

#top_quick table tbody tr td {
  padding: 10px;
  vertical-align: middle;
}

#top_quick table tbody tr td em {
  color: #d71518;
}

#top_quick table tbody tr td img {
  width: auto;
  vertical-align: middle;
}

#top_quick table tbody tr th {
  background: #666;
  color: #fff;
}

#top_quick table tbody tr:last-child th {
  background: #8a0e10;
}
#top_quick table tbody tr:last-child td {
  background: #ffd2d3;
}

#top_quick > div > p {
  color: #fff;
}

#top_quick > div > p.notice {
  padding-left: 1.2rem;
  font-size: 1.4rem;
  text-indent: -1.2rem;
}

#top_quick > div > p:last-of-type {
  margin-bottom: 20px;
}

#top_quick > div > a {
  display: block;
  width: 100%;
  margin: 0 auto;
  padding: 15px ;
  font-size: 2.0rem;
  text-align: center;
}

#top_quick div {
  padding: 0 30px;
}
#top_quick > div > p {
  color: #000;
}

#top_quick > div > a.boxlink {
  display: block;
  overflow: hidden;
  position: relative;
  max-width: 640px;
  padding: 20px;
  margin: 0 auto;
  background: url("img/common/bg-boxlink.svg") no-repeat left top / cover;
  color: #fff;
  font-weight: bold;
  font-size: 1.8rem;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  transition: all .25s;
}


@media (max-width: 768px) {
  #top_quick {
    width: auto;
    padding: 0;
  }

  #top_quick #movie {
    padding-top: 50.95%;
    width: 100%;
    position: relative;
    margin-bottom: 2.67vw;
  }
  
  #top_quick #movie iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
  }
  #top_quick table {
    table-layout: fixed;
    margin-bottom: 4vw;
  }
  
  #top_quick table tbody tr td img {
    max-width: 100%;
  }

  #top_quick table tbody tr:first-child th:nth-child(2){
    width: 35%;
  }

  #top_quick table th,
  #top_quick table td,
  #top_quick table tbody tr th,
  #top_quick table tbody tr td{
    padding: 2.67vw;
    vertical-align: middle;
  }
  
  #top_quick table thead th,
  #top_quick table tbody tr:last-child th{
    font-size: 1.4rem;
    vertical-align: middle;
  }
  
  #top_quick table tr:first-child th::before { width: auto;}

  #top_quick > div > a {
    font-size: 1.8rem;
  }
  
  #top_quick div {
    padding: 0 2.67vw 5.34vw;
  }
}



/*===== ■13. Section [top_outline] Setting =====*/
#top_outline .flex2 { justify-content: flex-start;}

#top_outline .flex2 p { margin-right: 15px;}

#top_outline td ul.flex {
  flex-wrap: wrap;
  margin-top: 10px;
}

#top_outline td ul.flex li {
  flex: none;
  width: 10%;
  min-width: 70px;
  max-width: 100px;
}

#top_outline td li {
  display: inline-block;
  margin: 5px 15px 5px 0;
}


@media (max-width: 768px) {
  #top_outline .flex2 { justify-content: flex-start;}

  #top_outline .flex2 p { margin: 0 0 2.67vw;}
  
  #top_outline td ul.flex {
    flex-direction: row;
    justify-content: space-between;
    margin-top: 2.67vw;
  }
  #top_outline td ul.flex li {
    width: calc(25% - 2.67vw);
    max-width: none;
    margin: 0 0 1.34vw;
  }

  #top_outline td li {
    display: inline-block;
    margin: 5px 15px 5px 0;
  }
}



/*===== ■14. Aside [top_map] Setting =====*/
#top_map figure {
  max-width: 1366px;
  margin: 0 auto 40px;
  padding: 0 10px;
}


@media (max-width: 768px) {
  #top_map figure {
    margin: 0 auto 5.67vw;
    padding: 0 2.67vw;
  }
}



/*===== ■15. Section [top_video] Setting =====*/
#top_video .video_wrapper {
  display: flex;
  justify-content: center;
  height: 100%;
  gap: 40px;
  margin: 0 auto;
}

#top_video .video_wrapper iframe {
  aspect-ratio:16 / 9;
  width:calc(50% - 20px);
  height:100%;
}


@media (max-width: 768px) {
  #top_video .video_wrapper {
    flex-direction: column;
    gap: 2.67vw;
  }

  #top_video .video_wrapper iframe {
    width: 100%;
  }
}



/*===== ■16. Section [top_partner] Setting =====*/
#top_partner {
  margin-bottom: 100px;
}

#top_partner ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

#top_partner ul.partner_logo li {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 5px;
  padding: 10px;
  background: #fff;
  border: 1px solid #ebebeb;
}

#top_partner ul.partner_logo li a {
  display: block;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  line-height: 0;
}

#top_partner ul.partner_logo li img {
  max-height: 32px;
  margin: 0 auto;
}

#top_partner li a {
  display: block;
  line-height: 0;
}


@media (max-width: 768px) {
  #top_partner {
    margin-bottom: 10.67vw;
  }
}



/*===== ■17. Section [top_intro] Setting =====*/
#top_intro {
  padding-top: 60px;
  display: flex;
  justify-content: center;
  margin: 0 20px;
}

#top_intro > iframe {
  aspect-ratio:16 / 9;
  width:50%;
  max-width: 640px;
  height:100%;
}

#top_intro > div {
  width:50%;
  margin-left: 40px;
}

#top_intro > div h3 {
  margin-bottom: 20px;
  font-size: 4rem;
  font-weight: bold;
}

#top_intro > div h3 em {
  color: #d71518;
  font-size: 4rem;
}

#top_intro > div p {
  margin-bottom: 20px;
  line-height: 1.5;
  font-size: 2rem;
}

#top_intro > div p em {
  font-weight: bold;
  font-size: 2.2rem;
}

#top_intro ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 2rem;
}

#top_intro li {min-width: 190px;}

#top_intro li a {margin: 0;}


@media (max-width: 768px) {
  #top_intro {
    padding-top: 0;
    flex-direction: column;
    margin: 6.67vw 2.67vw 0;
  }

  #top_intro > iframe {
    width:100%;
    margin-bottom: 2.67vw;
  }

  #top_intro > div {
    width:100%;
    margin-left: 0;
  }

  #top_intro > div h3 {
    font-size: 2.4rem;
    margin-bottom: 2.67vw;
  }

  #top_intro > div h3 em {font-size: 2.4rem;}

  #top_intro > div p {
    margin-bottom: 2.67vw;
    font-size: 1.8rem;
  }

  #top_intro > div ul {
    flex-direction: column;
    gap: 2.67vw;
  }
  
  #top_intro > div ul li + li {margin-left: 0;}
}



/*===== ■18. Section [top_scale] Setting =====*/
#top_scale {
  display: flex;
  justify-content: center;
  flex-direction: column;
  margin: 60px 20px;
}

#top_scale > p {
  margin-bottom: 20px;
  font-size: 3rem;
  font-weight: bold;
  color: #d71518;
  text-align: center;
}

#top_scale > div {margin-left: 40px;}

#top_scale > div p {
  margin-top: 20px;
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}

#top_scale > div p + p {margin-top: 20px;}

#top_scale > div p img {
  display: inline-block;
  width: 100%;
  max-width: 80px;
  margin-right: 15px;
}

#top_scale > div p em {
  font-size: 10rem;
  font-weight: bold;
  color: #d71518;
  text-align: center;
  line-height: 1;
}


@media (max-width: 768px) {
  #top_scale {
    display: block;
    margin: 6.67vw 20px;
  }

  #top_scale > div p {margin: 2.67vw 0 0;}

  #top_scale > div p + p {margin: 2.67vw 0 0;}

  #top_scale > p {
    margin-bottom: 2.67vw;
    font-size: 2.4rem;
  }

  #top_scale > p br {display: none;}

  #top_scale > div {
    flex-direction: row;
    gap: 2.78vw;
    margin-left: 0;
  }

  #top_scale > div p {font-size: 1.4rem;}

  #top_scale > div p img {
    display: block;
    margin: 0 auto;
  }

  #top_scale > div p em {
    font-size: 5rem;
    font-weight: bold;
    color: #d71518;
    text-align: center;
  }
}



/*===== ■19. Section [top_zone] Setting =====*/
#top_zone {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #333;
}

#top_zone ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

#top_zone img {vertical-align: bottom;}


@media (max-width: 768px) {
  #top_zone {grid-template-columns: 1fr;}
  #top_zone ul {grid-template-columns: repeat(2, 1fr);}
}

/*===== ■20. Div [top_sectors] Setting =====*/
#top_sectors {
  background: url(./img/top/bg-top-sectors.jpg) no-repeat center center;
  background-attachment: fixed;
  > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 85%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 60px 0;
    > div {
      width: calc(50%);
      overflow: auto;
      &:nth-child(2) {
        margin-top: 12rem;
      }
      &:nth-child(3) {
        margin-top:  -12rem;
      }
      > .slideup {
          position: relative;
          display: flex;
          align-items: flex-end;
          margin: 40px;
          aspect-ratio: 1 / 1;
          border-radius: 30px;
          overflow: auto;
          color: #fff;
        > figure {
          img {
            position: absolute;
            top: 0;
            left: 0;
            object-fit: cover;
            object-position: center;
            position: absolute;
            width: 100%;
            min-height: 100%;
          }
        }
        > section {
          margin: 0;
          width: 100%;
          height: 100%;
          > div {
						position: absolute;
						bottom: 0;
						width: 100%;
            /*height: 100%;*/
						padding: 30px 0 40px;
						background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0, rgb(19, 7, 0) 65px, rgb(19, 7, 0) 100%);
            h3 {
              padding: 0 40px;
              font-size: 4rem;
              font-weight: bold;
              line-height: 1.2;
            }
						p {
							display: none;
              padding: 0 40px;
							margin-top: 20px;
							width: 100%;
              height: auto;
							line-height: 1.5;
							font-size: 2rem;
						}
          }
          > div.scroll {
            overflow: auto;
            width: 100%;
            height: 100%;
            background: linear-gradient(180deg, transparent, rgba(4, 4, 4, 1) 22%);
          }
        }
      }
		}
  }
}

@media (max-width: 1024px) {
  #top_sectors {
    > div {
      > div {
        > .slideup {
          > section {
            > div {
              /*padding: 20px;*/
              h3 {
                padding: 0 20px;
                font-size: 2.4rem;
              }
              p {
                padding: 0 20px;
                font-size: 1.6rem;
              }
            }
          }
        }
      }
    }
  }
}


@media (max-width: 768px) {
  #top_sectors {
    > div {
      display: block;
      width: 100%;
      > div {
        width: 100%;
        &:nth-child(2) {margin-top: 0;}
        &:nth-child(3) {margin-top:  0;}
        > .slideup {
          margin: 5.34vw 10.67vw;
          > section {
            > div {
              /*padding: 5.34vw;*/
              h3 {
                padding: 0 5.34vw;
                font-size: 2.4rem;
              }
              > p {
                padding: 0 5.34vw;
                margin-top: 2.67vw;
                font-size: 1.4rem;
              }
            }
          }
        }
      }
    }
  }
}