/* ==========================================
全体
========================================== */
html{
    font-size: 62.5%;
    scroll-behavior: smooth;
	scroll-behavior: smooth;
    scroll-padding-top: 80px;
}
body{
    position: relative;
    margin: 0;
    background: #fff;
    color: #222;
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: .05em;
    -webkit-text-size-adjust: 100%;
    overflow-wrap: break-word;
}
*,
*::before,
*::after{
    box-sizing: border-box;
}
button{
font-family: "Zen Maru Gothic", sans-serif;
}
section{
    width:100%;
}
img{
    display: block;
    max-width: 100%;
    height: auto;
}
p{
font-size: 1.5rem;
        line-height: 1.8;    
}
a{
    color: inherit;
    text-decoration: none;
}
ul,
ol{
    margin: 0;
    padding: 0;
    list-style: none;
}
.br-sp{
    display: none;
}
.br-pc{
    display: block; 
}
.inner{
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
}
@media (max-width:768px){
    body{
        min-width: auto;
    }
    .br-sp{
        display: block;
    }

    .br-pc{
        display: none;
    }
    .inner {
    width: min(1200px, calc(100% - 25px));
    margin: 0 auto;
}
}
/* ==========================================
Header
========================================== */
.header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
.header__inner{
    max-width: 1200px;
    height: 80px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.header__logo img{
    display: block;
    height: 50px;
}
.header__list{
    display: flex;
    gap: 32px;
    list-style: none;
}
.header__list a{
    text-decoration: none;
    color: #333;
    font-weight: 700;
}
.header__toggle{
    display: none;
}
.header__entry{
    margin-left: 24px;
}
.header__entry{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background-color: #2e6b3e;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 999px;
    white-space: nowrap;
    margin-left: 24px;
    transition: opacity 0.2s;
}
.header__entry:hover{
    opacity: 0.8;
}
.header__entry-icon{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    background-color: #fff;
    color: #2e6b3e;
    border-radius: 50%;
    font-size: 14px;
    line-height: 1;
}
@media (max-width:768px){
	.header__inner {
    	height: 60px;
	}
	.header__toggle{
    	width: 40px;
    	height: 40px;
    	display:flex;
    	flex-direction:column;
    	justify-content:center;
    	gap:6px;
    	background:none;
    	border:none;
    	cursor:pointer;
    	z-index:1001;
	}
	.header__toggle span{
    	width:28px;
    	height:2px;
    	background:#333;
    	transition:.3s;
	}
	.header__nav{
    	position:fixed;
    	top:70px;
    	left:0;
    	width:100%;
    	background:#fff;
    	max-height:0;
    	overflow:hidden;
    	transition:max-height .3s ease;
	}
	.header__nav.is-open{
    	max-height:500px;
	}
	.header__list{
    	flex-direction:column;
    	gap:0;
	}
	.header__list li{
    	border-bottom:1px solid #eee;
	}
	.header__list a{
    	display:block;
    	padding:18px 20px;
	}
	.header__entry{
        display: none;
    }
}
/*==============================
FV
==============================*/
.kv{
    background: linear-gradient(
        180deg,
        #40ae36 0%,
        #96c519 100%
    );
}
.fv{
    padding-top: 80px;
}
.fv__inner{
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
}
.fv__inner > img:first-child{
    display: block;
    width: 100%;
    height: auto;
}
.fv__deco{
    position: absolute;
    bottom: -7%;
    left: 12%;
    width: 300px;
    z-index: 1;
}
@media (max-width:768px){
	.fv{
        padding-top: 60px;
    }
    .fv__deco{
        width: 35%;
        bottom: -19%;
        left: 3%;
    }
}
/*==============================
about
==============================*/
.about{
    padding: 80px 0 100px;
    background: transparent;
}
.about__title {
    text-align: center;
    font-size: 40px;
    letter-spacing: 1em;
    color: #fff;
    margin: 0 auto 60px;
}
.about__text span{
    background: linear-gradient(transparent 70%, #f7b100 70%);
    font-weight: bold;
}
.about__text{
color: #fff;
text-align: center;
line-height: 2.5em;
font-size: 1.8rem;
}
@media (max-width:768px){
	 .about{
        padding: 50px 0 60px;
    }
    .about__title{
        font-size: 2.4rem;
        letter-spacing: .3em;
        margin-bottom: 30px;
    }
    .about__text{
        font-size: 1.5rem;
        line-height: 2;
    }
}
/*==========================================
背景の丸装飾
==========================================*/
.entry-bg{
    position: relative;
    overflow: hidden; 
    z-index: 0;
}
.entry-bg::before,
.entry-bg::after{
    content: "";
    position: absolute;
    border-radius: 50%;
    z-index: -1;
}
/* 左上の大きい丸 */
.entry-bg::before{
    width: 700px;
    height: 700px;
    top: 0;
	 background-color: #56b032; 
    left: -250px;
}
/* 右下の大きい丸 */
.entry-bg::after{
    width: 600px;
    height: 600px;
    bottom: 100px;
    left: -250px;
	background-color: #96c519;
}
.category{
    position: relative;
    z-index: 0;
}
.category::after{
    content: "";
    position: absolute;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background-color: #25953a;
        bottom: -16px;
    right: -180px;
    z-index: -1;
}
@media (max-width:768px){
	 .entry-bg::before{
        width: 300px;
        height: 300px;
        left: -150px;
    }
    .entry-bg::after{
        width: 250px;
        height: 250px;
        left: -150px;
    }
    .category::after{
        width: 250px;
        height: 250px;
        right: -100px;
    }
}
/*==========================================
応募の部分
==========================================*/
.box{
    padding: 30px 50px 40px;
    background: #f7f8eb;
    border-radius: 24px;
}
.box__title{
    width: fit-content;
    margin: 0 auto 30px;
    color: #22843d;
    font-size: 4rem;
    font-weight: 700;
    padding-bottom: 1rem;
    border-bottom: 2px dashed #22843d;
}
@media (max-width:768px){
	.box{
       padding: 15px 15px 25px;
    }

    .box__title{
        font-size: 2.4rem;
        margin-bottom: 20px;
    }
}
/*==========================================
募集概要
==========================================*/
.outline{
    padding: 80px 0 60px;
}
.outline__top{
    display:flex;
    gap:30px;
}
.outline__box{
    flex:1;
    text-align:center;
}
.outline__date{
    color:#22843d;
    font-weight:700;
    line-height:1;
}
.outline__date span{
    font-size:5rem;
}
.outline__date strong{
    font-size:7rem;
    font-weight:700;
}
.outline__date small{
    font-size:2rem;
}
.outline__target{
    margin-bottom:15px;
    color:#22843d;
    font-size:6rem;
    font-weight:700;
    line-height:1.2;
}
.outline__note{
    font-size:1.4rem;
    line-height:1.8;
}
@media (max-width:768px){
	 .outline{
        padding: 50px 0 40px;
    }
    .outline__top{
        flex-direction: column;
        gap: 20px;
    }
    .outline__date span{
        font-size: 3rem;
    }
    .outline__date strong{
        font-size: 4.5rem;
    }
    .outline__date small{
        font-size: 1.6rem;
    }
    .outline__target{
        font-size: 3.6rem;
    }
    .outline__note{
        font-size: 1.3rem;
    }
}
/*==========================================
部門紹介
==========================================*/
.category{
    padding-bottom:80px;
}
.category__card img{
    display: block;
    width: 50%; 
    height: auto;
    margin: 0 auto;
}
.category__attention{
    margin-bottom:40px;
    line-height:2;
}
.category__list{
    display:flex;
    gap:20px;
}
.category__card{
    flex:1;
    padding:25px;
    background:#fff;
    border-radius:20px;
}
.category__detail{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
}
.category__card.is-open .category__detail{
    margin-top:20px;
}
.category__card h3{
	color: #16793a;
    font-size: 2.5rem;
    text-align: center;
    font-weight: 600;
}
.category__btn {
    display: block;
    margin: 0 auto;   
    color: #fff;
    background-color: #16793a;
    font-size: 1.8rem;
    position: relative;
    padding: 1.5rem 5rem 1.5rem 2rem;
    border-radius: 100vh;
    border: none;
    cursor: pointer;
    transition: .3s;
}
.category__card p{
	margin: 10px 0 20px;
}
.category__label{
    background:linear-gradient(90deg,#16793a,#2ca14f);
    color:#fff;
    font-weight:700;
    font-size:1.7rem;
    padding:.5rem 1.4rem;
    border-radius:6px;
    margin-bottom:1rem;
    display: block;
    width: fit-content;
    margin: 0 auto 1rem;
    color: #fff;
    padding: .5rem 1.4rem;
    font-weight: 500;
    text-align: center;
}
/* ＋アイコン */
.category__btn::before {
    content: '+';
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1;
    position: absolute;
    top: 50%;
    right: 1.8rem;
    transform: translateY(-50%);
}
/* 開いた時 */
.category__btn.is-open::before {
    content: '−';
}
@media (max-width:768px){
	 .category{
        padding-bottom: 50px;
    }
    .category__attention{
        font-size: 1.4rem;
        margin-bottom: 25px;
    }
    .category__list{
        flex-direction: column;
        gap: 20px;
    }
    .category__card h3{
        font-size: 2rem;
    }
    .category__btn{
        font-size: 1.5rem;
        padding: 1.2rem 4rem 1.2rem 1.6rem;
    }
}
/*==========================================
応募方法
==========================================*/
.flow{
    padding-bottom:80px;
}
.flow__list{
    display:flex;
    gap:20px;
}
.flow__list img{
	margin: 0 auto;
}
.flow__card{
    flex:1;
    padding:25px;
    background:#fff;
    border-radius:20px;
}
@media (max-width:768px){
	 .flow{
        padding-bottom: 50px;
    }
}
/*==========================================
授賞式
==========================================*/
.ceremony {
    padding-bottom: 80px;
}
.ceremony__content {
    display: flex;
    gap: 40px;
    align-items: center;
}
.ceremony__image {
    flex: 1;
    text-align: center;
}
.ceremony__text {
    flex: 1;
    font-size: 2rem;
    line-height: 1.8;
}
.ceremony__text p {
    margin-bottom: 20px;
}
.ceremony__image {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
.ceremony__image img {
    display: block;
    max-width: 100%;
}
@media screen and (max-width:768px){
    .ceremony__content {
        flex-direction: column;
        gap: 30px;
    }
	.ceremony__image img {
    	display: block;
    	max-width: 100%;
    	width: 70%;
    	margin: 0 auto;
	}
    .ceremony__text {
        font-size: 1.6rem;
        text-align: center;
    }
}
/*==========================================
ボタン
==========================================*/
.entry-section{
    width: 100%;
    background-color: #eaad3f; 
    padding: 40px 0; 
    display: flex;
    justify-content: center; 
}
.btn-entry{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background-color: #2e6b3e; 
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    text-decoration: none;
    padding: 20px 32px;
    border-radius: 999px; 
    transition: opacity 0.2s;
}
.btn-entry:hover{
    opacity: 0.8;
}
.btn-entry__icon{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: #fff;
    color: #2e6b3e;
    border-radius: 50%;
    font-size: 20px;
    line-height: 1;
}
@media (max-width:768px){
	 .entry-section{
        padding: 30px 0;
    }
    .btn-entry{
        font-size: 1.6rem;
        padding: 16px 24px;
        gap: 12px;
    }
    .btn-entry__icon{
        width: 32px;
        height: 32px;
        font-size: 1.6rem;
    }
}
/*==========================================
FAQ ～ Footer
==========================================*/
.bottom{
    background: linear-gradient(
        180deg,
        #40ae36 0%,
        #96c519 100%
    );
	padding: 80px 0 0;
}
@media (max-width:768px){}
/*==========================================
FAQ
==========================================*/
.faq{
   width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
    padding: 60px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 30px;
}
.faq .box__title{
	width: fit-content;
    margin: 0 auto 30px;
    color: #fff;
    font-size: 4rem;
    font-weight: 700;
    padding-bottom: 1rem;
    border-bottom: 2px dashed #fff;
}
.faq__list{
    display:flex;
    flex-direction:column;
    gap:20px;
}
.faq__item{
    border-radius:20px;
    overflow:hidden;
}
.faq__question{
    width:100%;
    padding:25px 35px;
    display:flex;
    align-items:center;
    gap:25px;
    border:none;
    background:#fff;
    cursor:pointer;
    text-align:left;
}
.faq__q{
    color:#22843d;
    font-size:5rem;
    font-weight:700;
    line-height:1;
}
.faq__a {
    color:#eb6100;
    font-size:5rem;
    font-weight:700;
    line-height:1;
}
.faq__answer p{
    display:flex;
    align-items:flex-start;
    gap:25px;
    padding:0 35px 30px;
    line-height:2;
}
.faq__answer-text{
    flex:1;
}
.faq__answer{
    max-height:0;
    overflow:hidden;
    background:#fff;
    transition:max-height .3s ease;
}
.faq__text{
    flex:1;
    font-size:2rem;
    font-weight:700;
}
.faq__icon{
    position:relative;
    width:24px;
    height:24px;
}
.faq__icon::before,
.faq__icon::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    background:#22843d;
    transform:translate(-50%,-50%);
}
.faq__icon::before{
    width:24px;
    height:4px;
}
.faq__icon::after{
    width:4px;
    height:24px;
    transition:.3s;
}
.faq__item.is-open .faq__icon::after{
    transform:translate(-50%,-50%) rotate(90deg);
    opacity:0;
}
@media (max-width:768px){
	 .bottom{
        padding: 50px 0 0;
    }
    .faq{
        padding: 30px 0px;
    }
    .faq .box__title{
        font-size: 2.4rem;
    }
    .faq__question{
        padding: 18px 20px;
        gap: 15px;
    }
    .faq__q,
    .faq__a{
        font-size: 2.2rem;
    }
    .faq__text{
        font-size: 1.5rem;
    }
    .faq__answer p{
        gap: 15px;
        padding: 0 20px 20px;
    }
}
/*==========================================
お問い合わせ
==========================================*/
.contact__text a,
.category__attention a{
    color: #5db3f4;
    text-decoration: none;
	text-decoration: underline; 
}
.contact{
    padding: 80px 0;
}
.contact__box{
    width: 100%;
    padding: 60px;
    background: rgba(255,255,255,.8); /* 白80% */
    border-radius: 30px;
    text-align: center;
}
.contact__name{
    margin-top: 40px;
    color: #16793a;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.6;
}
.contact__text{
    margin-top: 30px;
    color: #222;
    font-size: 2rem;
    line-height: 2;
}
.contact__text p + p{
    margin-top: 12px;
}
@media (max-width:768px){
    .contact{
        padding: 50px 0;
    }
    .contact .inner {
        width: min(1200px, calc(100% - 40px));
    }
    .contact__box{
        padding: 30px 20px;
    }
    .contact__name{
        font-size: 2rem;
        margin-top: 25px;
    }
    .contact__text{
        font-size: 1.5rem;
        margin-top: 20px;
        text-align: left;
    }
}
/*==========================================
footer
==========================================*/
.footer{
    position: relative;
}
.footer__visual{
    width: 1200px;
    margin: 0 auto;
}
.footer__visual img{
    display: block;
    width: 100%;
    height: auto;
}
.footer__content{
    width: 100%;
    background-color: #4a8a3f;
    padding: 40px 0;
}
.footer .inner{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.footer__logo{
    width: 400px;
    margin-bottom: 15px;
}
.footer__logo img{
    display: block;
    width: 100%;
    height: auto;
}
.footer__school{
    width: 800px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 24px;
}
.footer__school a{
    display: block;
}
.footer__school img{
    display: block;
    width: 100%;
    height: auto;
}
.footer__info {
    margin-top: 20px;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.8;
}
.footer__info p {
    display: flex;
    align-items: center;
    margin: 6px 0;
}
.footer__info span {
    margin-right: 15px;
}
.footer__banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 25px;
}
.footer__banner-item img {
    display: block;
    height: 60px; 
    width: auto;
}
@media (max-width:768px){
	  .footer__visual{
        width: 100%;
    }
    .footer__content{
        padding: 30px 0;
    }
    .footer__logo{
        width: 200px;
        margin-bottom: 15px;
    }
    .footer__school{
        width: 100%;
        max-width: 320px;
       display: block;
    }
}
/*==========================================
SP固定フッターボタン
==========================================*/
.fixed-entry{
    display: none;
}
@media (max-width:768px){
    .fixed-entry{
        display: flex;
        justify-content: center;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 16px 0;
        background-color: #eaad3f; /* .entry-section と同じ黄色 */
        z-index: 999;
    }
    .fixed-entry__btn{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        background-color: #2e6b3e;
        color: #fff;
        font-size: 20px;
        font-weight: bold;
        text-decoration: none;
        padding: 10px 25px;
        border-radius: 999px;
        transition: opacity 0.2s;
    }
    .fixed-entry__btn:hover{
        opacity: 0.8;
    }
    .fixed-entry__btn-icon{
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background-color: #fff;
        color: #2e6b3e;
        border-radius: 50%;
        font-size: 20px;
        line-height: 1;
    }
    .footer{
        padding-bottom: 90px;
    }
}