/* 共通部分 */
body {
    font-family: "Noto Sans JP" ,"メイリオ","Meiryo","MS Pゴシック","MS Pgothic","Osaka","sans-serif","Helvetica", "Helvetica Neue", "Arial", "Verdana";
}
section, footer {
    padding: 70px 10%;
}
.br-sp {
    display: none;
}
.btn-area {
    width: max-content;
}
.btn-area-rep {
    margin-top: 32px;
    margin-bottom: 32px;
}
.btn {
    display: block;
    position: relative;
    top: 3px;
    padding: 20px 0;
    border-radius: 5px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    background: #BF9F0E;
}
.btn-rep:after {
    content: "";
    position: absolute;
    top: -3px;
    left: -3px;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: #BF9F0E;
    border-radius: 5px;
    transition: .2s;
    transform: translate3d(0,0,0);
  }
  .btn-span {
    display: block;
    position: relative;
    z-index: 2;
    transition: .2s;
    color: #0A347F;
  }
  .btn-span:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 30px;
    width: 8px;
    height: 8px;  
    margin: -4px 0 0 0;
    transform: translateX(5px) rotate(45deg);
    transition: .3s .1s;
  }
.btn-rep:hover {
    top: 3px;
}
.btn-rep:hover:after {
    top: 0;
    left: 0;
    background: #FDD001;
}
.btn-rep:hover span {
    top: 0;
    left: 0;
}
.btn:hover span:after {
    right: 27px;
}
.btn-rep:after, .btn-rep:hover:after {
    background: #0A347F;
}
.dl-part div .btn-rep {
    width: max-content;
    margin: 0 auto;
}
.btn-rep {
    background: #072A65;
    padding: 12px 60px;
}
.btn-rep .btn-span {
    color: #ffffff;
}
h2 {
    font-size: 56px;
    font-weight: 500;
    text-align: center;
}
.un-line {
    border-bottom: 5px solid #FDD001;
}
.title {
    position: relative;
}
.title h2 {
    position: absolute;
    top: 0px;
    line-height: 110px;
    width: 100%;
}
.title-bg {
    width: 100%;
    opacity: 0.15;
    font-size: 100px;
    font-weight: 500;
    line-height: 110px;
    letter-spacing: 0.02em;
    text-align: center;
    color: #FDD001;
}
.title h2::after{
    position: absolute;
    content: "";
    width: 100px;
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
    border-bottom: 5px solid #041B42;
}
.prize .title h2::after, .theme .title h2::after, .review .title h2::after {
    border-color: #ffffff;
}
.sm-title {
    display: block;
    font-size: 20px;
    line-height: 30px;
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 24px;
}
.cl-white {
    color: #ffffff;
}
/* header部分 */
.head {
    color: #ffffff;
    background: linear-gradient(rgba(4, 27, 66, 0.4), rgba(4, 27, 66, 0.4)),url("../img/header_bg_img.png");
    background-repeat: no-repeat;
    background-size: 100vw 100%; 
    height: 100vh;
    font-weight: 500;
}
header ul {
    display: flex;
}
header {
    display: flex;
    justify-content: space-between;
    padding: 50px 10%;
    font-weight: 500;
}
header li {
    margin-left: 30px;
}
.lh {
    line-height: 30px;
}
.lh:hover {
    position: relative; 
    top: 1px;
    left: 1px; 
    }
.inq {
    width: 166px;
    padding: 5px 30px 5px 30px;
    white-space: nowrap;
}
.catchcopy {
    padding: 140px 10%;
}
h1 {
    font-size: 70px;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
}
.catchcopy ul {
    padding: 50px 0 50px 2em;
    list-style-type: disc;
}
.catchcopy li {
    list-style-type: disc;
    line-height: 43.2px;
    font-size: 24px;
    color: #FDD001;
}
.date-list span {
    color: #ffffff;
}
.catchcopy .btn {
    padding: 12px 40px;
    font-size: 24px;
    letter-spacing: 0.1em;
}
/* テーマ */
.theme-detail {
    background: linear-gradient(rgba(10, 52, 127, 0.6), rgba(10, 52, 127, 0.6)), url("../img/theme_detail_bg_img.png");
    background-size: cover;
    background-position: right center;
}
.theme {
    color: #ffffff;
}
.theme-des {
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
    text-align: center;
}
.mt-40 {
    margin-top: 40px;
}
.atarimae {
    margin-top: 40px;
    display: -webkit-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
    justify-content:space-between
}
.atarimae div {
    width: 48%;
    margin-bottom: 80px;
}
.atarimae img {
    width: 100%;
    height: 100%;
}
.atarimae dt, .theme h3 {
    margin-top: 16px;
    font-size: 32px;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: 0.05em;
    text-align: center;
}
.atarimae dd {
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
}
/* ハッカソンとは */
.dl-part {
    margin: 70px auto 30px auto;
    display: flex;
}
.r-rev {
    flex-direction: row-reverse;
}
.dl-part figure, .dl-part div, .dl-part dl {
    width: 50%;
}
.dl-part img {
    width: 100%;
    height: 100%;
}
.dl-part dl, .comp-inf dl div {
    margin: 0 24px;
    font-size: 32px;
    color: #041B42;
    line-height: 48px;
    letter-spacing: 0.05em;
}
.dl-part dd {
    margin-top: 16px;
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
}
/* 賞金総額 */
.prize {
    background-color: #041B42;
    padding: 150px 0;
    text-align: center;
    color: #ffffff;
}
.prize .prize-val {
    color: #FDD001;
    font-size: 190px;
    line-height: 285px;
    letter-spacing: 4px;
    font-weight: 500;
}
.prize-val span {
    color: #ffffff;
}
.prize-val .fs-40 {
    font-size: 40px;
}
.fs-24 {
    font-size: 24px;
}
/* 審査基準 */
.st-title {
    font-size: 18px;
    letter-spacing: 0.1em;
    text-align: center;
    margin: 40px 0;
}
.standards {
    display: grid;
    grid-template-rows: 50% 50%;
    grid-template-columns: 50% 50%;
    justify-items: center;
    
}
.standards dl {
    width: 95%;
    background-color: #EDEFF0;
    border-radius: 5px;
    padding: 30px 40px;
    margin-bottom: 24px; 
}
.standards dt {
    width: max-content;
    margin: 0 auto;
    color: #2b2b2b;
    font-size: 32px;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: 0.05em; 
}
.standards dd {
    margin-top: 20px;
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
}
/* 参加資格 */
.qualifi {
    background: #EDEFF0;
}
.qualifi ul {
    margin: 80px auto 0 auto;
    display: grid;
    grid-template-rows: 50% 50%;
    grid-template-columns: 50% 50%;
    justify-items: center;
}
.qualifi ul li {
    position: relative;
    margin: 40px 0 40px 0;
    width: 100%;
}
.qualifi ul li div {
    background-color: #ffffff;
    border-radius: 5px;
    height: 170px;
    width: 90%;
    padding: 20px 30px;
    margin: 0 auto; 
    box-shadow: 3px 2px 8px 0px #2C2C2C1A;
}
.condi {
    font-size: 18px;
    font-weight: 500;
    line-height: 32.4px;
    letter-spacing: 0.1em;
    display: inline;
}
.condi-det {
line-height: 28.8px;
letter-spacing: 0.1em;
}
/* 参加概要 */
.out {
    display: flex;
    margin: 76px auto 0 auto;
}
.outline dl {
    width: 33%;
    margin: 0 12px;
    box-shadow: 3px 2px 8px 0px #2C2C2C1A;
}
.outline dt {
    margin: 16px auto;
    text-align: center;
    font-size: 24px;
}
.outline dd figure {
    background-color: #EDEFF0;
    text-align: center;
    height: 160px;
}
.outline .date {
    margin: 0 auto;
    padding: 16px 0;
    text-align: center;
    font-weight: 500;
    line-height: 28.8px;
    letter-spacing: 0.05em;
    border-bottom: 1px solid #041B42;
}
.out-det {
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
    padding: 16px 20px;
    color: #2b2b2b;
}
/* エントリー */
.entry {
    background: linear-gradient(rgba(10, 52, 127, 0.6), rgba(10, 52, 127, 0.6)),url("../img/shake-hands.png");
    background-size: cover;
    background-position: 25% 75%;
    height: max-content;
    color: #ffffff;
    text-align: center;
    font-weight: 500;
}
.entry p {
line-height: 90px;
letter-spacing: 0.05em;
}
.en-btn {
    margin: 0 auto;
}
.fs-60 {
    font-size: 60px;
}
.ent-p, .coming {
    font-size: 100px;
    opacity: 0.15;
}
.entry a {
    display: block;
    font-size: 20px;
    letter-spacing: 0.1em;
    padding: 15px 50px;
    margin: 16px auto;
    width: max-content; 
}
/* Q&A */
.qa ul {
    margin: 80px auto;
}
.qa li {
    margin-bottom: 16px;
}
.qa ul li .accordion {
    font-weight: 500;
}
.qa ul li .accordion, .qa ul li .panel {
    border-radius: 10px;
    padding: 20px 40px;
    font-size: 18px;
    letter-spacing: 0.1em;
}
.qa ul li .qa-icon {
    display: inline-block;
    line-height: 40px;
    width: 46px;
    height: 46px;
    text-align: center;
    font-size: 24px;
    border-radius: 50%;
    margin-right: 16px;
}
.qa ul li .q {
    color: #ffffff;
    background-color: #041B42;
}
.qa ul li .a {
    color: #041B42;
    border: solid 1px #041B42;
}
.qa ul li div:nth-child(2n+1) {
    background-color: #EDEFF0;
}
.accordion {
    background-color: #f5ebe0;
    cursor: pointer;
    display: flex;
    align-items: center;
  }
.panel {
    max-height: max-content;
    align-items: flex-start;
    display: none;
    /* align-items: center; */
}
.panel p {
    width: 95%;
    line-height: 26px;
}
.panel a {
    color:#0A347F;
    font-weight: 500;
}
  .symbol {
    width: 30px;
    display: flex;
    margin-left: auto;
  }
  .symbol span {
    display: block;
    background-color: #041B42;
    width: 100%;
    height: 1px;
    transition: all 0.4s ease;
  }
  .symbol span:nth-of-type(1) {
    transform: translateX(15px);
  }
  .symbol span:nth-of-type(2) {
    transform: rotate(-90deg);
  }
  .accordion.active .symbol span:nth-of-type(2) {
    transform: rotate(0deg);
  }

/* 主催企業 */
.rss-pic {
    display: flex;
}
.rss-pic figure {
    width: 50%;
}
.rss-pic img   {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.comp-inf {
    background-image: url("../img/comp-inf-bg.png");
    background-color:rgba(255,255,255,0.8);
    background-blend-mode:lighten;
}
.table {
    margin: 75px auto;
    font-size: 18px;
}
.table .record {
    display: flex;
}
.table .th, .table .td {
    padding: 25px 0;
}
.table .th {
    width: 25%;
    text-align: center;
    border-bottom: 1px solid #041B42;
    font-weight: 400;
}
.table .td  {
    width: 75%;
    border-bottom: 2px solid #EDEFF0;
    padding-left: 50px;
    line-height: 33px;
}
.table .td span {
    display: block;
}
.location .map {
    margin: 75px auto;
}
.location .map iframe {
    width: 100%;
    height: 550px;
}
/* お知らせ */
.news ul {
    margin: 75px auto;
}
.show-li, .news ul li div {
    display: flex;
}
.news ul li  {
    padding: 24px 85px;
    border-bottom: 2px solid #EDEFF0;
}
.news ul li div time {
    font-size: 18px;
    line-height: 32.4px;
    letter-spacing: 0.1em;
    margin-right: 16px;
}
.news ul li div p:nth-child(2n) {
    font-weight: 500;
    letter-spacing: 0.03em;
    width: 120px;
    height: 35px;
    line-height: 35px;
    text-align: center;
    background-color: #EDEFF0;
    margin-right: 16px;
}
.news ul li .news-title {
    font-size: 18px;
    font-weight: 500;
    line-height: 32.4px;
    letter-spacing: 0.1em;
}
.event-inf {
    color: #041B42;
}
.show-btn {
    display: block;
    width: max-content;
    margin: 0 auto;
    padding: 12px 60px;
    background-color: #0A347F;
    color: #ffffff;
    box-shadow: 3px 3px 0px 0px #072A65;
    font-weight: 500;
    letter-spacing: 0.1em;
}
.hidden-li{
    display: none;
}
.hidden-li.open{
    display: flex;
}
/* フッター */
footer {
    background-color: #041B42;
    color: #ffffff;
}
footer div div, footer ul {
    display: flex;
}
footer .f-cr, footer .f-menu {
    margin: 0 auto;
}
footer .f-menu {
    margin-bottom: 25px;
    justify-content: space-between;
}
.f-menu p {
    font-size: 24px;
}
.f-cr img {
    margin-right: 16px;
}
small {
    width: 100%;
    text-align: center;
    font-size: 14px;
    display: inline-block;
}
footer li {
    padding: 0 30px;
}
.c-black {
    color: #2b2b2b;
}