/* 
    メインカラー
    #389BA6
    #798C8C
    #78BFAB
    #F2EFEB
    #BFB6AE
*/

.sample-color {
    color: #B2FEFA;
    color: #0ED2F7;
    color: #00c3ff;
    color: #ffff1c;
    color: #fffc00;
    color: #5D1FF0;
}

/* リセットスタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* HTML要素の基本スタイル */
html, body {
    height: 100%;
}

body {
    font-family: "游ゴシック", "ヒラギノ角ゴ ProN", sans-serif;
    font-weight: 800;
    font-style: normal;
    color: #333;
    font-size: 18px;
}

/* ヘッダーのスタイル */
header {
    position: fixed;
    background-color: rgba(0, 16, 46, 0.9); 
    padding: 3px 20px;
    text-align: center; 
    width: 100%;
    z-index: 10;
}
header .logo a {
    color: #333;
}
header h1 {
    margin: 0;
}
header .logo {
    white-space: nowrap;
}
#menuButton{
    background-color: #F2EFEB;
    mask-image: url(../images/menu.svg);
    width: 100%;
    height: 100%;
}
#closeButton{
    background-color: #F2EFEB;
    mask-image: url(../images/close.svg);
}
/* ナビゲーションメニューのスタイル */
nav ul {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
}

nav ul li {
    margin: 0 10px;
}

nav ul li a {
    color: #fff;
    text-decoration: none;
}

/* メインコンテンツのスタイル */
main {
    min-height: 500px;
    padding-top: 90px;
}
.main-wrapper{
    margin: 0 auto;
    max-width: 1025px;
}

section {
}
section:first-child{
}
section:last-child{
}
section:nth-of-type(1),
section:nth-of-type(3){
    background-color: rgba(0, 16, 46, 0.05);
}

section .content-wraper {
    padding: 100px 50px 200px 50px;
}

img {
    width: 100%;
    height: auto;
}
/* フッターのスタイル */
footer {
    background-color: rgb(0, 16, 46);
    color: #fff;
    text-align: center;
    padding: 20px 60px;
}
footer p {
    margin-bottom: 0;
}
footer .footer-container{
    display: flex;
    max-width: 1000px;
    margin: auto
}
footer .logo{
    border-right: #F2EFEB solid 3px;
    padding: 20px 30px;
}
footer .logo img{
    width: 240px;
}
footer .footer-menu {
    align-content: space-around;
}
footer .footer-menu ul {
    display: block;
}
footer .footer-menu ul li {
    border-bottom: solid #F2EFEB 3px;
    margin-bottom: 6px;
}

/* その他のスタイル */
h1 {
    display: table;
    margin: auto;
    margin-bottom: 50px;
    text-align: center;
    font-size: 70px;
    line-height: 1.2;
    text-decoration: underline;
    text-decoration-thickness: 6px;
    text-underline-offset: 18px;
    font-feature-settings: "palt" 1;
    white-space: nowrap;
}

h2 {
    margin-bottom: 10px;
    font-size: 50px;
    line-height: 1.3;
    border-bottom: outset;
}

h3 {
    font-size: 28px;
    line-height: 1.4;
}

p {
    font-size: 18px;
    line-height: 2;
    /* margin: 5px 0; */
}

.text-center {
    text-align: center;
}h3{
    font-feature-settings: "palt" 1;
}


.small-font {
    font-size: 12px;
}

.font-red {
    color: #ea4b36;
}
.font-blue {
    padding-top: 16px;
    color: #003E88;
}
.font-entry {
    color: #998C00;
}
.font-geek {
    color: #007e69;
}
.font-expert {
    color: #3268f4;
}

.font-pick {
    font-size: 1.5em;
}

.spacing-bottom {
    margin-bottom: 70px;
}

.drop-shadow{
    box-shadow:  0.2em 0.2em rgba(174, 177, 191, 0.2);
}
input#submit{
    position: relative;
    font-size: medium;
    font-family: "Zen Maru Gothic", serif;
    padding: 1.1em 4em;
    border: none;
    color: #EBEFF2;
    border-radius: 0.2em;
    background-color: #00102e;

.spacing {
    margin-bottom: 20px;
}

&:hover {
    cursor: pointer;
    }
}
.button-box{
    position: relative;
}
.button-box span{
    position: absolute;
    top: 50%;
}

.ready {
    display: flex;
    font-size: 70px;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 500px;
}
/* トップページ */
.animation {
    position: relative;
}

.animation .animation-str {
    position: absolute;
    -webkit-text-stroke: 2px #0070c0;
    color: #fff;
}

.animation .str-1 {
    top: 2%;
    left: 2%;
    width: 25%;
}
.animation .str-1 img:nth-of-type(2){
    top: -20px;
    position: relative;
}
.animation .str-2 {
    top: 57%;
    left: 2%;
    width: 57%;
    z-index: 2;
    color: #fff;
    border-bottom: none;
}
.animation .str-3 {
    top: 85%;
    right: 40px;
    width: 80%;
    color: #fff;
    z-index: 1;
    text-align: right;
}

.animation .robots2, .robots, .effect {
    position: absolute;
}
.animation .robots2, .robots, .girl, .effect {
    vertical-align: top;
    pointer-events: none;
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    -moz-touch-callout:none;
    -moz-user-select:none;
    user-select:none;
}
.animation .robots {
    animation: float 5s infinite;
}
.animation .robots2 {
    animation: float 7s infinite;
}
.animation .girl {
    position: relative;
}
.animation .firstmesen {
    position: absolute;
    z-index: 2;
}
.animation .effect {
    animation: float 9s infinite;
    z-index: 1;
}
@keyframes glow {
    0% {
        box-shadow: 0 0 10px rgba(242, 239, 235, 0.5);
    }
    50% {
        box-shadow: 0 0 30px rgba(242, 239, 235, 1);
    }
    100% {
        box-shadow: 0 0 10px rgba(242, 239, 235, 0.5);
    }
}
@keyframes float {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-15px);
    }
    100% {
        transform: translateY(0);
    }
}
.about div{
    width: 1025px;
    margin: auto;
}
.about h1 {
    padding-top: 60px;
    margin-bottom: 0;
    text-decoration: none;
}

.target {
    text-align: center;
    border: none;
}
.target .head {
    margin: 60px;
}
.target h1 {
    text-decoration: none;
    margin-bottom: 0;
}
.target div, .target div p{
    font-size: 30px;
}
.target .table {
    margin: auto;
    width: 900px;
    color: #003E88;
    margin-bottom: 200px;
}
.target .table .table-r {
    display: flex;
    margin-bottom: 15px;
}
.target .table-h {
    background-color: #003E88;
    color: #fff;
    width: 350px;
    padding: 20px;
    clip-path: polygon(0% 0%, 85% 0%, 100% 100%, 15% 100%);
}
.target .table-d {
    display: flex;
    width: 550px;
    text-align: left;
    align-items: center;
    padding-left: 20px;
}
.target .small-font {
    font-size: 0.7em;
    text-align: right;
}

.program-flow {
    padding: 70px 0;
}

.program-flow .head {
    max-width: 1025px;
    margin: auto;
}


.program-flow .head h1{
    margin-bottom: 0;
    text-decoration: none;
    white-space: nowrap;
}

.program-flow .head h1 span {
    background-color: unset;
}
.program-flow .head h1 span.entry {
    color: #998C00;
}
.program-flow .head h1 span.challenge {
    color: #007e69;
}
.program-flow .head h1 span.geek {
    color: #3268f4;
}

.flow-img {
    max-width: 1025px;
    padding: 50px;
    margin: auto;
}

.program-flow .all-program {
    max-width: 1020px;
    display: flex;
    margin: 0 auto;
    margin-top: 40px;
    margin-bottom: 50px;
}

.all-program .arrow {
    display: flex;
    align-items: center;
    width: 50px;
    padding: 0 5px;
}

.card {
    padding: 15px;
    width: 350px;
}

.program-title p {
    font-size: 14px;
}h4 {
    font-size: 16px;
    line-height: 1.4;
}

.card .program-detail {
    background-color: #fff;
    display: block;
    padding: 5px;
}

.card .text .button-wrapper {
    align-items: center;
}

.card .text .button-wrapper a {
    font-size: 16px;
}

.entry {
    background-color: #fffece;
}

.entry .program-title {
    color: #998C00;
}

.challenge {
    background-color: #acdacf;
}

.challenge .program-title {
    color: #007e69;
}

.geek {
    background-color: #9ed6ec;
}

.geek .program-title {
    color: #3268f4;
}

.list {
    background-color: #BFBFBF;
    display: flex;
    border-radius: 17px;
    padding: 5px;
    margin-bottom: 5px;
    justify-content: space-between;
    align-items: center;
}

.list-ditail {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border-radius: 17px;
    width: 60%;
    line-height: 1.5em;
}

.list-ditail.box {
    min-height: 140px;
    max-height: 320px;
}

.list-ditail p {
    line-height: 1.5em;
}

.program-head div {
    max-width: 700px;
    margin: 0 auto;
    padding: 30px 0;
}

.program-head h1 {
    font-size: 68px;
    background-size: auto 20%;
    background-position: bottom;
    background-repeat: repeat-x;
    color: #fff;
    text-decoration: none;
    margin-bottom: 0;
    white-space: nowrap;
}

.program-head {
    padding-bottom: 4mm;
}.program-head.entry {
    background:linear-gradient(#998C00 77%,#fffece 98%);
}.program-head.challenge {
    background:linear-gradient(#007e69 77%,#acdacf 98%);
}.program-head.geek {
    background:linear-gradient(#3268f4 77%,#9ed6ec 98%);
}

.program-wraper {
    max-width: 1025px;
    margin: auto;
    padding: 40px;
}

.program-outline {
    margin-top: 20px;
    margin-bottom: 40px;
    background-color: #fff;
    padding: 70px
}
.program-outline h3 {
    margin-bottom: 10px;
    text-decoration: underline 53%;
    text-decoration-color: #fae768;
    text-underline-offset: -3px;
    text-decoration-skip-ink: none;
}

.program-table {
    margin-top: 40px;
}

.program-table-r {
    display: flex;
    margin-bottom: 10px;
    align-items: center;
}
.program-table-r:last-child {
    margin-bottom: 0;
}

.program-table-h {
    background-color: #333;
    color: #fff;
    padding: 10px;
    border-radius: 10px;
    width: 120px;
    margin: auto;
}

.program-table-d {
    padding: 40px 20px;
    width: 550px;
}

.program-wraper h2 {
    display: table;
    margin: auto;
}

.regist-flow {
    display: flex;
    justify-content: center;
    padding: 100px 0;
}

.regist-flow .phase {
    text-align: center;
    width: 200px;
}

.regist-flow .phase img {
    background-color: #fff;
    border-radius: 100px;
    padding: 10px;
}

.regist-flow .arrow {
    display: flex;
    align-items: center;
    width: 50px;
    margin: 0 10px;
}

.regist {
    text-align: center;
}
.regist h1 {
    margin-top: 20px;
}

.banner {
    display: flex;
    flex-wrap: wrap;
    padding: auto;
    justify-content: center;
}

.banner .item{
    display: flex;
    width: 20%;
    margin: 3%;
    height: auto;
    align-items: center;
    justify-content: center;
}
.banner .item .textbanner span{
    font-size: 20px;
}

.banner .item:nth-child(3n+1){
    clear: both;
}

/* about */
.page-about {
    margin: 0 auto;
    max-width: 1025px;
    padding-top: 100px;
}

.step {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    max-width: 2000px;
    margin: auto;
}
.step:nth-child(even) {
    flex-direction: row-reverse;
}
.step img {
    margin-right: 20px;
}
.step:nth-child(even) img {
    margin-right: 0;
    margin-left: 20px;
}
.step h2 {
    margin: 0;
}
.step p {
    margin: 0;
}
.step .image{
    width: 35%;
}
.step .text{
    padding: 32px;
} .text p{
    padding: 8px;
}
.about-img{
    max-width: 600px;
    margin: 0 auto 30px auto;
}
/* about */


.button-wrapper{
    text-align: center;
    padding: 5%;
}
.button-wrapper .button{
    color: #fff;
    font-size: 30px;
    border-radius: 0.2em;
    text-decoration-line: none;
    padding: 2.5% 15%;
    display: inline-block;
}

.button-wrapper .ditail {
    background-color: #389bA6;
}
.button-wrapper .entry {
    background-color: #ea4b36;
}
.button-wrapper .challenge {
    background-color: #007e69;
}
.sp-view{
    display: none;
}
.pc-view {
    display: block;
}
/*///// お問い合わせフォーム /////*/
.contactform-container table{
    text-align: left;
    border-spacing: 1em;
    margin: 0 auto;
}
.contactform-container th{
    text-align: left;
}
.contactform-container input,.contactform-container textarea{
    width: 30em;
    border: 1px solid #d6d6d6;
    border-radius: 0.2em;
    padding: 2%;
}input{
    height: 3.5em;
}textarea{
    height: auto;
}
.contactform-container span{
    display: inline-block;
    padding: 0 0.5em;
    margin-left: 1em;
}.required{
    color: #fff;
    background-color: #ea4b36;
}.optional{
    color: #fff;
    background-color: #5b5d61;
}
.button-wrapper .submit-button{
    color: #ffffff;
    background-color: #5b5d61;
    padding: 0 0.5em;
    margin-left: 1em;
}
.button-wrapper .contact-button{
    color: #fff;
    font-size: large;
    border-radius: 0.2em;
    background-color: #00102e;
    text-decoration-line: none;
    padding: 8px 48px;
    border: none;
}
.wpcf7-spinner{
    display: block;
    margin: 0 auto;
}

/*///// お知らせ一覧 /////*/
.newsLists{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    row-gap: 10%;
}
.newsLists .news-link{
    flex: 0 1 calc(33.333% - 1em); /* 各子要素の幅を3列分 */
    box-sizing: border-box; /* パディングとボーダーを含めてサイズを計算 */
    text-decoration-line: none;
    margin-top: 1%;
}
.newsLists .news-link .news-card {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    padding: 2.5%;
}
.news-link .news-card .news-body{
    color: #000000;
    padding: 0% 2.5%;
}
.news-card .news-image{
    text-align: center;
}
.newsLists .news-link .news-card .title {
    font-size: 18px;
    font-feature-settings: "palt" 1;
}
.newsLists .news-link .news-card .excerpt {
    font-size: 14px;
    font-feature-settings: "palt" 1;
}
.news-card .news-body .release{
    color: #2a2a2a;
    display: block;
}.excerpt{
    padding-bottom: 2%;
}
.news-card .news-body .more_text{
    display: block;
    font-size: small;
    text-align: right;
    padding: 1.5%;
}
.nav-links{
    display: flex;
    justify-content: center;
    column-gap: 0.5%;
    padding: 1% 0;
}
.page-numbers.current{
    color: #EBEFF2;
    border: 2px solid #3E6E8C;
    background-color: #3E6E8C;
}
.page-numbers {
    display: block;
    padding: 0.5% 0.9%;
    border: 2px solid #8AB0BF;
    border-radius: 30%;
    text-decoration-line: none;
    
    &:hover{
    color: #042940;
    border: 2px solid #EBEFF2;
    background-color: #8AB0BF;
    transition:0.3s;
    }
}
/*///// お知らせ記事 /////*/
.news .time{
    display: block;
    margin-bottom: 16px;
}
.news .title{
    font-size: 1.5em;
    font-weight: bold;
    font-feature-settings: "palt" 1;
    margin-bottom: 16px;
}
.button-wrapper .return-botton{
    color: #EBEFF2;
    font-size: 30px;
    border-radius: 0.2em;
    background-color: #00102e;
    text-decoration-line: none;
    padding: 2% 5%;
}
.lead-inner .more-news{
    display: flex;
    justify-content: space-between;
    padding: 1% 0;
}

.page-main{
    padding: 40px;
    /*後で削除*/
}
/*///// FAQ /////*/
.faq-wrapper{
    margin: 0 auto;
    max-width: 1200px;
    min-width: 600px;
}
.faqLists {
    width: 80%;
    margin: 0 auto;
}
.faqLists section{
    padding: 0;
    margin: 0;
}
.faqLists .faq-container{
    background-color: #fff;
    border-radius: 0.1em;
    padding: 1%;
    margin-top: 1.5%;
}
.faq-container .faq-body{
    display: flex;
    flex-direction: column;
    row-gap: 0.5em;
}
.faq-container .faq-body span{
    margin-right: 1%;
}

/*///// ご挨拶 /////*/
.greet {
    padding: 50px 100px;
}
.greet:nth-child(odd) {
    background-color: rgba(0, 16, 46, 0.05);
}
.greet img {
    width: 300px;
}
.greet:nth-child(even) .greet-wraper .teacher_items {
    flex-direction : row-reverse;
}
.greet .teacher_name {
    text-align: right;
}
.card_portrait{
    max-width: 480px;
    height: auto;
    margin: 0 auto;
}

.teacher_items{
    display: flex;
    gap: 1em;
}
.teacher_items{
    flex: 1;
}
.teacher_items figure {
    padding-top: 67px;
}
.sub_teacher_items{
    padding: 0 20px;
    width: 100%;
    max-width: 1025px;
    margin: 0 auto;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-bottom: 60px;
}
.sub_teacher_items::after{
    padding: 0 15px;
    content:"";
    display: block;
    width:30%;
}

.sub_teacher_items a {
    /* padding: 25px;
    background-color: #9ed6ec; */
    text-decoration: none;
    color: inherit;
}
.sub_teacher_items .article {
  margin-top: 80px;
  padding: 0 15px;
  width: calc(98.4% / 3);
  display: flex;
  flex-direction: column;
  color: #333;
}
.sub_teacher_items .article:hover * {
  color: #003E88;
}
.sub_teacher_items .article * {
  color: inherit;
  transition: color 0.3s ease;
}

.sub_teacher_items .article .card_portrait img {
  opacity: 1;
  transition: opacity 0.4s ease;
}
.sub_teacher_items .article:hover .card_portrait img {
  opacity: 0.6;
}

/* .sub_teacher_items .article figure {
    background-color: #fff;
    padding: 10px;
} */
.sub_teacher_items .article.card_profile{
    flex-shrink: 1;
}
.sub_teacher_items .card_profile h3{
    font-size: 16px;
}
.sub_teacher_items .card_profile .text p{
    padding: 0px;
    font-size: 0.8em;
}
.card_profile{
    margin-top: 0px;
    padding: 0px 8px 8px 8px;
    background-color: #fff;
}
.guide {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 3px solid;
  border-color: #565656 #565656 transparent transparent;
  transform: translateX(0) rotate(45deg);
  transition: transform 0.3s ease-in 0.2s;
}

.article:hover .more-link .guide,
.more-link:hover .guide {
  border-color: #003E88 #003E88 transparent transparent;
  transform: translateX(3px) rotate(45deg); 
}

/*///// プライバシーポリシー /////*/
.privacy-policy .wp-block-heading{
    margin-top: 24px;
}

/*///// 404ページ /////*/
.p404-container p{
    padding-bottom: 16px;
}.p404-text{
    padding: 8px;
}

/*///// プログラム /////*/
.program-intro p{
    display: inline-block;
    text-align: left;
}
.program-section{
    margin: 20px auto 0px auto;
    padding: 20px 0;
}
.program-section .button-wrapper{
    margin: 0 0;
    padding: 0 0;
}

.program-section:nth-of-type(odd){
    background-color: transparent;
}
.program-section table{
    background-color: #fff;
    margin: 20px auto 20px auto;
    border-collapse: collapse;
}
.program-section table th, td{
    padding: 8px;
    border: 1px solid rgba(0, 0, 0, 0.35);
}
.program-section table th{
    width: 230px;
}
.program-section table .time {
    width: 70px;
    text-align: center;
    white-space: nowrap;
}
.program-section table .day {
    width: 90px;
    text-align: center;
}
.program-section table .lecturer {
    width: 170px;
    text-align: center;
}
.program-section table .lecturer ul{
    width: 170px;
    list-style: none;
    padding: 0;
}
.entry-li ul, .geek-li ul, .expart-li ul{
    padding-left: 20px;
}
.program-section table{
    max-width: 1000px;
    border: 2px solid #FFF;
}
.program-section table th, td {
    border: 3px solid #FFF;
}
.program-section table th {
    color: #F2EFEB;
}
.program-section table th.entry {
    background-color: #998C00;
}
.program-section .entry-bg{
    background-color: #fffece;
}
.program-section table th.geek {
    background-color: #007e69;
}
.program-section .geek-bg{
    background-color: #acdacf;
}
.program-section table th.expart {
    background-color: #3268f4;
}
.program-section .expart-bg{
    background-color: #9ed6ec;
}
.triangle{
    display: inline-block;
    background-color: #fff;
    width: 20px;
    height: 22px;
    clip-path: polygon(0% 0, 80% 50%, 0 100%);
    transform: scale(1);
    margin-left: 16px;
}