/* css/style.css */

/* リセットと基本設定 */
html, body, h1, h2, h3, h4, h5, h6, p, ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.6;
  background-color: #fff;
  color: #333;
}
a {
  text-decoration: none;
  color: inherit;
}
.f-bold{
    font-weight: bold;
}
.f-italic{
    font-style:italic;
}
.f-yellow{
    color: #f9c720;
}
.d-block{
    display: block;
}
/* ヘッダー */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  border-bottom: 1px solid #ddd;
  z-index: 1000;
  height: 100px;
}

.nav-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}
.site-title {
  width: 180px;
    padding-top: 16px;
}
.site-title img {
  width: 100%;
}
.global-nav ul {
  display: flex;
  gap: 20px;
}
.global-nav li {
    font-size: calc(12px + 4 * ((100vw - 320px) / 1120));
    /*font-size: 16px;*/
    font-family:'Noto Sans JP', sans-serif;
    font-weight: normal;
    color: #333;
    padding: 10px 5px 20px;
    text-align: center;
    transition: all .3s ease-in-out;
    margin-bottom: 10px;
    box-sizing:border-box;
    position: relative;
    line-height: 20.2px;
}
.global-nav li.arrowplus{
	background: url(../img/arrow_down_w.png) no-repeat center bottom 0;
}
.global-nav li a{

}
.global-nav li a span {
    font-size: calc(10px + 2 * ((100vw - 320px) / 1120));
    font-weight: 900;
	clear: both;
	display: block;
	margin: 0 auto -10px;
}
.global-nav ul li a::after {
position: absolute;
left: 0;
content: '';
width: 100%;
height: 1px;
background: #3B4043;
bottom:-6px;               /*アンダーラインがaタグの下端から現れる*/
transform: scale(0, 1);     /*アンダーラインの縮尺比率。ホバー前はx方向に0*/
transform-origin: left top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の左端*/
transition: transform 0.3s; /*変形の時間*/
}
.global-nav ul li a:hover::after {
transform: scale(1, 1);     /*ホバー後、x軸方向に1（相対値）伸長*/
}
.hamburger {
  display: none;
  flex-direction: column;
  gap: 7px;
  cursor: pointer;
      z-index: 1000;
  transition: all 0.3s ease;
}
.hamburger span {
 display: block;
  width: 30px;
  height: 3px;
  background-color: #333;
border-radius: 6px;
    transition: all 0.3s ease;
}
/* 三 → × に変形 */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(10px, 10px);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* メインビジュアル */
.fv {
    overflow: hidden;
    background-color: #000;
    width: 100%;
    min-width: 1000px;
    margin: 100px 0 0;
    /*padding-bottom: 75px;*/
}
.fv-copy {
    margin: 0 auto;
    height: 880px;
    width: 650px;
}
.fv-copy2 {
    max-width: 455px;
    left: 30%;
    bottom: 10%;
    position: absolute;
}
.bg-img {
  background-image: url('../img/fv-bg.jpg');
  background-size: cover;
  background-position: top;
    max-height: 880px;
}
/*大会概要*/
.overview{
   background-image: url('../img/overview-bg.jpg');
  background-size: cover;
  background-position: top;   
}
.overview .inner{
    width: 1000px;
    margin: 0 auto;
}
.winning_team .inner img , .team_perks .inner img , .teams .inner .ttl img, .eocup .inner .ttl img, .eotc .inner .ttl img, .sponsor .inner .ttl img {
	margin: 0 auto
}
.info-section {
  padding: 40px 20px;
  background: #000;
}
dl.info-block {
    margin-top: -50px;
    margin-left: 70px;
}

.info-list {
  max-width: 700px;
  margin: 0 auto;
}

.info-row {
  display: flex;
  margin-bottom: 1rem;
  align-items: center;
  
}

.info-row dd {
  color: #fff;
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.4;
}
dt.label {
  font-size: 1.5rem;
  color: #fff;
  padding: 0.1em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  display: inline-block;
  min-width: 160px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif;
}
.access{
    margin-top: 40px;
    padding: 0 60px 60px;
}
.access-ttl {
    display: flex;
    align-items: center;
    color: #fff;
    margin-bottom: 20px;
}

.access-ttl:before,
.access-ttl:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #fff;
}

.access-ttl:before {
    margin-right: 1rem;
}

.access-ttl:after {
    margin-left: 1rem;
}
.local-information{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
/*参加チーム紹介*/
.teams , .eocup , .eotc{
    padding-top: 30px;
    padding-bottom: 60px;
    background: #000; 
    background-image: url('../img/wave-bg.png');
    background-position: bottom; 
    background-repeat: no-repeat;
    
}.sponsor{
    padding-top: 30px;
    padding-bottom: 60px;
    background: #034798; 
    background-image: url('../img/wave-bg.png');
    background-position: bottom; 
    background-repeat: no-repeat;
    
}

.teams .inner , .eocup .inne , .eotc .inne , .sponsor .inne{
    width: 1080px;
    margin: 0 auto;
}
.teams .inner .ttl , .eocup .inner .ttl , .eotc .inner .ttl , .sponsor .inner .ttl{
    text-align: center;
}
.team-wrap , .eocup-wrap , .eotc-wrap , .sponsor-wrap {
    margin-top: -50px;
    margin-bottom: 40px;
}
.team-wrap ul{
   display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
}
.team-wrap ul li{
    width: 33%;
    color: #fff;
    margin-bottom: 30px;
    text-align: center;
}
.team-wrap ul li:nth-child(7) , .team-wrap ul li:nth-child(10){
    width: 16.5%;
}
.team-logo{
	margin-top: 10px;
}
.tournamentrules {
    text-align: center;
}
.tournamentrules .ttl , .winning_team-wrap .ttl{
  font-size: 1.5rem;
  margin-bottom: 20px;
  color: #fff;
  padding: 0.1em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  display: inline-block;
  min-width: 160px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif; 
}
.tournamentrules ul{
    width: 500px;
    margin: 0 auto;
}

.tournamentrules ul.rules li{
    font-size: 1.125rem;
    color: #fff;
    text-align: left;
}
/*優勝チーム特典*/
.winning_team{
    padding-top: 40px;
    /*padding-bottom: 50px;*/
    background: #000; 
    background-image: url('../img/winning_team-bg.jpg');
    background-position: top; 
    background-repeat: no-repeat;
}
.winning_team .inner{
    width: 800px;
    margin: 0 auto;
}
.winning_team .inner .ttl{
    text-align: center;
}
.winning_team-wrap{
    margin-top: -50px;
    /*margin-bottom: 40px;*/
}
.winning_team_benefit{
  text-align: left; 
  display: flex;
    /*margin-bottom: 50px;*/
}
.winning_team_benefit ul{
    width: 370px;
}
.winning_team_benefit ul.benefit li{
    font-size: 1.625rem;
    color: #fff;
    text-align: left;
}
.winning_team_benefit ul.benefit li.note{
    font-size: 0.75rem;
    padding-top: 7px;
}
/*参加チーム特典*/
.team_perks{
    padding-top: 30px;
    padding-bottom: 50px;
    background: #000; 
    background-image: url('../img/team_perks1-bg.jpg');
    background-position: top; 
    background-repeat: no-repeat;
}
.team_perks .inner , .team_perks2 .inner{
    width: 940px;
    margin: 0 auto;
}
.team_perks .inner .ttl{
    text-align: center;
}
.team_perks .inner .team_perks-wrap .sub-ttl{   
    font-size: 1.875rem;
    text-align: center;
}
.team_perks-wrap{
    margin-top: -90px;
    margin-bottom: 0;
}
.team_perks_benefit{
  width: 940px;
  display: flex;
  margin-top: 30px;
  justify-content: space-between;
}
.team_perks_benefit .mvp , .team_perks_benefit .excellent{
  width: 48%;
  text-align: center;
}
.mvp .ttl , .excellent .ttl {
  font-size: 1.125rem;
  margin: 15px 0 10px;
  color: #fff;
  padding: 0.1em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  display: inline-block;
  min-width: 160px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif; 
}
.mvp .read , .excellent .read {
    color: #fff;
    font-size: 1.125rem;
}
.mvp .read span{
    display: block;
}
.excellent .read span{
    display: block;
}
/*参加チーム特典2*/
.team_perks2{
    padding-top: 0;
    padding-bottom: 50px;
    background: #000; 
    background-image: url('../img/wave-bg.png');
    background-position: bottom; 
    background-repeat: no-repeat;
}
.team_perks-wrap2{
    margin-top:0;
    margin-bottom: 40px;
    text-align: center;
}
.team_perks2 .ttl{
  font-size: 1.5rem;
  margin-bottom: 20px;
  color: #fff;
  padding: 0.1em 1.5em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  display: inline-block;
  min-width: 160px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif; 
}
.team_perks2_benefit{
  width: 940px;
  text-align: center;
}
.company_name{
    font-size: 1.5rem;
}
.company_explanation{
    color: #fff;
    font-size: 1.25rem;
}
span.small{
    font-size: 0.75rem;
}
.company_explanation a{
    text-decoration: underline;
}
.company_image{
    margin: 15px 0;
}
.lecture{
    display: flex;
    width: 560px;
    margin: 0 auto;
    color: #fff;
    gap: 20px;
}
.lecture > .text{
    text-align: left;
}
/*EO起業家CUPとは*/
.eocup-wrap{
    width: 680px;
    text-align: center;
    margin: -50px auto 60px;
    color: #fff;
}
.eocup-wrap .ttl{
  font-size: 1.5rem;
  margin-bottom: 20px;
  color: #fff;
  padding: 0.25em 1.5em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  display: inline-block;
  min-width: 160px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif; 
  line-height: 1.4;
}
.eocup-wrap .text{
    font-size: 1.125rem;
}
/*EO TOKYO Centralとは*/
.eotc-wrap{
    width: 830px;
    margin: 0 auto 60px;
    color: #fff;
    display: flex;
    font-size: 1.125rem;
    gap:20px;
}
 .eotc-wrap span.ttl {
  display: block;
  font-size: 1.125rem;
  margin: 15px 0 10px;
  color: #fff;
  padding: 0.1em;
  background: linear-gradient(to right, #f83e02, #ff0);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0% 100%);
  width: 120px;
  text-align: center;
  font-family:'Noto Sans JP', sans-serif; 
}
 .eotc-wrap p.text{
    width: 520px;
}
/*協賛企業*/
.sponsor-wrap{
    display: flex;
    margin: -50px auto 0;
    width: 1200px;
    justify-content: space-around;
}
.copyright{
    text-align: center;
    background: #000;
    font-size: 0.75rem;
    color: #fff;
    padding: 5px 0;
}
/* トップへ戻る */
.to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #333;
  color: #fff;
  padding: 10px 15px;
  border-radius: 50px;
  font-size: 0.8rem;
  display: none;
  z-index: 999;
}
/*問い合わせ*/
    .contact{
        padding: 60px 0 0;
    background: #fff;
    width: 95%;
        margin: 0 auto;
    }
    .contact .inner{
    text-align: center;
    }
    .contact .inner iframe{
    width: 90%;
    height: 400px;
    }

/* 汎用レイアウトクラス */
.flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.flex-col {
  flex-direction: column;
}
.col-1, .col-2, .col-3, .col-4 {
  display: grid;
  gap: 20px;
}
.col-1 {
  grid-template-columns: 1fr;
}
.col-2 {
  grid-template-columns: 1fr 1fr;
}
.col-3 {
  grid-template-columns: 1fr 1fr 1fr;
}
.col-4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

/* 背景ユーティリティ */
.bg-white {
  background-color: #fff;
}
.bg-color {
  background-color: #f8f8f8;
}
.bg-img {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
/*PC*/
@media screen and (min-width: 821px) {
    .pc{
        display: block;
    }
    .sp{
        display: none;
    }
}
/* メディアクエリ */
/*タブレット*/
@media (min-width: 821px) and (max-width: 1158px)  {
    .global-nav li{
      font-size: calc(9px + 4 * ((100vw - 320px) / 1120));  
    }
    .global-nav li a span {
        font-size: calc(7px + 2 * ((100vw - 320px) / 1120));
    }
    }

/*SP*/
@media screen and (max-width: 820px) {
    .sp{
        display: block;
    }
    .pc{
        display: none;
    }
.header {
    height: 62px;
}
.site-title {
    width: 110px;
    padding-top: 10px;
}
.nav-container {
  padding: 0 15px;
}
  .global-nav ul {
    display: none;
    flex-direction: column;
    background: #fff;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    padding-top: 20px;
      gap:0;
  }
  .global-nav.active ul {
    display: flex;
  }
    .global-nav li{
        margin-bottom: 5px;
    }
    .global-nav li {
    font-size: calc(16px + 4 * ((100vw - 320px) / 1120));
    }
    .global-nav li a span {
    font-size: calc(12px + 2 * ((100vw - 320px) / 1120));
    }
    .hamburger {
    display: flex;
    }
    .flex {
    flex-direction: column;
    }
    .col-2, .col-3, .col-4 {
    grid-template-columns: 1fr;
    }
    /*FV*/
    .fv{
    min-width: inherit;
    margin: 62px 0 0;
    }
    .bg-img{
        background-image: none;
        max-height: none;
    }
    .bg-img figure{
        margin: 0;
    }
    .bg-img figure img{
        width: 100%;
    }
section {
    /* width: 100%; */
    overflow: hidden;
}
/*大会概要*/
    .overview {
    background-image: url(../img/overview-bg-sp.jpg) , url(../img/wave-bg-sp.png);
    background-position: top center , bottom center; 
    background-repeat: no-repeat , no-repeat;
    background-size: contain;
    background-color: #000;
    padding: 30px 0 50px;
}
.overview .inner {
    width: 95%;
    margin: 0 auto;
    padding: 0 5px;
}
.overview .inner img , .winning_team .inner img , .team_perks .inner img , .teams .inner .ttl img, .eocup .inner .ttl img, .eotc .inner .ttl img, .sponsor .inner .ttl img {
    width: 100%;
}
    dl.info-block {
    margin-top: 20px;
    margin-left: 0;
}
    dt.label {
    font-size: 1rem;
    min-width: 130px;
    margin-right: 10px;
}
.info-row dd {
    font-size: 1rem;
}
.access {
    width: 95%;
    padding: 0 5px;
    margin: 40px auto 0;
}
.local-information {
    display: flex;
    flex-direction: column;
    justify-content:center;
    gap:10px;
}
.access-ttl {
    margin-bottom: 10px;
}
/*参加チーム紹介*/
.teams, .eocup, .eotc {
    padding-top: 30px;
    padding-bottom: 30px;
    background: #000;
    background-image: url(../img/wave-bg-sp.png);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: contain;
}
.teams .inner, .eocup .inne, .eotc .inne, .sponsor .inne {
    width: 95%;
    margin: 0 auto;
    padding: 0 5px;
}
.team-wrap ul li {
    width: 48%;
    font-size: calc(12px + 4 * ((100vw - 320px) / 1120));
}
.team-wrap ul li img {
    width: 100%;
}
.team-wrap, .eocup-wrap, .eotc-wrap, .sponsor-wrap {
    margin-bottom: 0;
    padding: 0 5px 0 0;
}
.tournamentrules ul {
    width: 95%;
}
.tournamentrules ul.rules li {
    font-size: calc(16px + 4 * ((100vw - 320px) / 1120));
}
/*優勝チーム特典*/
.winning_team {
    padding-top: 40px;
    padding-bottom: 50px;
    background: #000;
    background-image: url(../img/winning_team-bg-sp.jpg) , url(../img/wave-bg-sp.png);
    background-position: top center , bottom center; 
    background-repeat: no-repeat;
    background-size: contain;
}
.winning_team .inner {
    width:95%;
    margin: 0 auto;
}
.winning_team-wrap {
    padding: 0 10px;
    text-align: center;
    margin-top: 30px;
	margin-bottom: 0;
}
.winning_team_benefit {
    text-align: center;
    display: flex;
    flex-direction: column-reverse;
}
.winning_team_benefit ul {
    width: 95%;
	        margin-top: 10px;
}
.winning_team_benefit ul.benefit li {
    font-size: calc(20px + 4 * ((100vw - 320px) / 1120));
}
/*参加チーム特典*/
.team_perks {
    padding-top: 30px;
    padding-bottom: 30px;
    background: #000;
    background-image: url(../img/team_perks1-bg-sp.jpg);
    background-position: top center; 
    background-repeat: no-repeat;
    background-size: contain;
}
.team-wrap, .team_perks-wrap , .eocup-wrap, .eotc-wrap, .sponsor-wrap {
    margin-top: 35px;
    width: 100%;
}
.team_perks .inner, .team_perks2 .inner {
    width: 95%;
    margin: 0 auto;
}
.team_perks .inner .team_perks-wrap .sub-ttl {
    font-size: calc(24px + 4 * ((100vw - 320px) / 1120));
}
.team_perks_benefit {
    width: 100%;
    display: flex;
    margin-top: 20px;
    justify-content: space-between;
    flex-direction: column;
    padding: 0 5px 0 10px;
    gap: 20px;
}
.team_perks_benefit .mvp, .team_perks_benefit .excellent {
    width: 95%;
    text-align: center;
}
    .mvp .img img , .excellent .img img{
        width: 100%;
    }
    .mvp .read, .excellent .read {
    font-size: 1rem;
}
.team_perks2 {
    padding-top: 0;
    padding-bottom: 50px;
    background: #000;
    background-image: url("../img/wave-bg-sp.png");
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: contain;
}
.team_perks2 .ttl {
    line-height: 1.4;
	font-size: 1.4rem;
	padding: 0.3em 1.5em;
}
    .team_perks2_benefit {
    width: 100%;
    text-align: center;
}
.team_perks-wrap2 {
    margin-bottom: 0;
}
.company_name {
    margin-top: 5px;
}
    .company_explanation{
        font-size: calc(16px + 4 * ((100vw - 320px) / 1120));
    }
    .company_image img{
        width: 100%;
    }
    .lecture {
    display: flex;
    width: 95%;
    margin: 0 auto;
    color: #fff;
    gap: 10px;
    flex-direction: column;
}
    .lecture > .text {
    text-align: center;
}
.eocup-wrap p.text {
    font-size: 0.9375rem;
}
    /*EO起業家CUPとは*/
    .eocup-wrap {
    width: 95%;
}
/*EO TOKYO Centralとは*/
    .eotc .inner{
        width: 100%;
		
    }
.eotc-wrap{
    width: 95%;
    flex-direction: column-reverse;
    gap:10px;
    text-align: center;
    padding: 0 5px;
}
 .eotc-wrap span.ttl {
  margin: 5px auto 10px;
}
.eotc-wrap p.text.f-bold.f-italic {
    font-size: 0.9375rem;
    width: 95%;
    margin: 0 auto;
}
/*協賛企業*/
.sponsor {
    padding-bottom: 30px;
    background-image: url(../img/wave-bg-sp.png);
    background-size: contain;
}
.sponsor-wrap{
    display: flex;
    margin: -30px auto 0;
    width: 95%;
    justify-content:space-evenly;
    flex-wrap: wrap;
    gap: 0;
}
.sponsor-wrap a{
      width: 40%;   
    }
.sponsor-wrap img{
     width: 100%;  
	margin-bottom: 10px;
    }
.sponsor .inner .ttl img {
    width: 70%;
        margin: 0 auto;
}
    /*問い合わせ*/

    .contact .inner iframe{
    width: 100%;
    height: 400px;
    }
.copyright{
    text-align: center;
    background: #000;
    font-size: 0.75rem;
    color: #fff;
    padding: 5px 0;
}

}
