/* ===================================
   RESET
=================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:"Noto Sans JP",sans-serif;

    background:#fafafa;

    color:#222;

    line-height:1.9;

    -webkit-font-smoothing:antialiased;

}

img{

    width:100%;

    display:block;

}

a{

    color:inherit;

    text-decoration:none;

}

.inner{

    width:min(1180px,90%);

    margin:auto;

}



/* ===================================
   PAGE TITLE
=================================== */

.page-title{

    padding:120px 0 80px;

    text-align:center;

    background:#071b37;

    color:#fff;

}

.page-title .subtitle{

    display:block;

    color:#7fb7ff;

    letter-spacing:.35em;

    font-size:13px;

    margin-bottom:20px;

}

.page-title h1{

    font-size:72px;

    font-weight:300;

    letter-spacing:.08em;

    margin-bottom:25px;

}

.page-title p{

    opacity:.8;

    font-size:18px;

}



/* ===================================
   LIST
=================================== */

.campaign-list{

    padding:100px 0;

}

.campaign-card{

    background:#fff;

    margin-bottom:70px;

    overflow:hidden;

    border-radius:10px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    transition:.45s;

}

.campaign-card:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

.campaign-card a{

    display:grid;

    grid-template-columns:58% 42%;

}



/* ===================================
   IMAGE
=================================== */

.campaign-image{

    overflow:hidden;

}

.campaign-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:1s;

}

.campaign-card:hover img{

    transform:scale(1.08);

}



/* ===================================
   BODY
=================================== */

.campaign-body{

    padding:60px;

    display:flex;

    flex-direction:column;

    justify-content:center;

}



/* ===================================
   STATUS
=================================== */

.status{

    display:inline-block;

    align-self:flex-start;

    padding:8px 18px;

    border-radius:100px;

    font-size:12px;

    letter-spacing:.2em;

    margin-bottom:30px;

    color:#fff;

}

.now .status{

    background:#0c4d8f;

}

.coming .status{

    background:#888;

}

.end .status{

    background:#ccc;

    color:#555;

}



/* ===================================
   TITLE
=================================== */

.campaign-body h2{

    font-size:18px;

    letter-spacing:.35em;

    color:#0c4d8f;

    margin-bottom:18px;

}

.campaign-body h3{

    font-size:40px;

    font-weight:300;

    line-height:1.3;

    margin-bottom:30px;

}

.date{

    font-size:18px;

    margin-bottom:30px;

    color:#555;

}

.date span{

    opacity:.4;

}

.text{

    color:#666;

    margin-bottom:40px;

    font-size:17px;

}
/* ===================================
   VIEW MORE
=================================== */

.more{

    display:inline-flex;

    align-items:center;

    gap:15px;

    margin-top:auto;

    font-size:13px;

    letter-spacing:.25em;

    color:#111;

    transition:.4s;

}

.more::before{

    content:"";

    width:60px;

    height:1px;

    background:#0c4d8f;

    transition:.4s;

}

.campaign-card:hover .more{

    color:#0c4d8f;

    letter-spacing:.35em;

}

.campaign-card:hover .more::before{

    width:90px;

}



/* ===================================
   CONTACT
=================================== */

.contact{

    background:#071b37;

    color:#fff;

    text-align:center;

    padding:120px 20px;

}

.contact h2{

    font-size:46px;

    font-weight:300;

    margin-bottom:25px;

}

.contact p{

    opacity:.8;

    margin-bottom:45px;

}

.btn{

    display:inline-block;

    padding:18px 70px;

    border:1px solid rgba(255,255,255,.3);

    color:#fff;

    letter-spacing:.18em;

    transition:.4s;

}

.btn:hover{

    background:#fff;

    color:#071b37;

}



/* ===================================
   FOOTER
=================================== */

footer{

    background:#02101f;

    color:#888;

    text-align:center;

    padding:35px 20px;

    font-size:13px;

}



/* ===================================
   Fade
=================================== */

.fade{

    opacity:0;

    transform:translateY(40px);

    transition:all .9s ease;

}

.fade.show{

    opacity:1;

    transform:none;

}



/* ===================================
   Responsive
=================================== */

@media(max-width:991px){

.page-title{

    padding:90px 0 60px;

}

.page-title h1{

    font-size:48px;

}

.page-title p{

    font-size:16px;

}

.campaign-list{

    padding:60px 0;

}

.campaign-card{

    margin-bottom:40px;

}

.campaign-card a{

    display:block;

}

.campaign-image{

    height:260px;

}

.campaign-image img{

    height:100%;

}

.campaign-body{

    padding:35px 28px;

}

.status{

    font-size:11px;

}

.campaign-body h2{

    font-size:16px;

}

.campaign-body h3{

    font-size:30px;

}

.date{

    font-size:16px;

}

.text{

    font-size:15px;

}

.more{

    margin-top:25px;

}

.contact{

    padding:80px 20px;

}

.contact h2{

    font-size:34px;

}

.btn{

    width:100%;

    max-width:320px;

}

}