@charset "UTF-8" ;
/* Reset CSS */
*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role='list'],ol[role='list']{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}a:not([class]){text-decoration-skip-ink:auto;}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}
html, body {
    font-size:16px;
}
body {
    font-family: "IBM Plex Sans JP", serif;
    color:#333;
    background-color: #f8f8f8;
    position:relative;
}
.row {
    width:90vw;
    max-width:960px;
    margin:0 auto;
}
.flxBox {
    display:flex;
}
.spOnly {
    display:none;
}
.btnContact_l {
    height:110px;
    max-width:388px;
    margin-left:-1rem;
    margin-right:-1rem;
    margin-top:2rem;
    display:flex;
    background-color:#FFFD95;
    text-decoration: none;
    color: #014099;
    text-align: center;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 55px;
    border:12px double #014099;
    transition: 0.5s;
}
.contactMain  .btnContact_l h3 {
    margin-top:.1em;
    font-size: 1.6rem;
    font-weight:700;
}
.contactMain .btnContact_l p {
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    font-size:.9375rem
}
.btnContact_l:hover {
    color:#fffd95;
    background-color: #014099;
    transition: 0.5s;
    border:2px solid #FFFD95;
}
header {
    width:100%;
    height:80px;
    display:flex;
    background-color:#fff;
    justify-content: space-between;
    align-items: center;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))
}
header h1 {
    margin-left:1rem;
    text-decoration: none;
    font-size:1.5rem;
    font-weight:700;
    letter-spacing: 0.05em;
    color:#014099;
    line-height:1.4;
}
header h1 a {
    color:#014099;
    text-decoration: none;
}
header h3.companyLogo img {
    width:29vw;
    max-width:146px;
    margin-right:1.5rem;
}
main {
    position:relative;
}
.fadeIn {
    transform: translate3d(0, 50px, 0);
    transition: 1.5s;
    opacity: 0;
}
.fadeIn.animated {
transform: translate3d(0, 0, 0);
opacity: 1;
}
section.mainVisual {
    height:640px;
    min-width: 1048px;
    display:flex;
}
.contactMain {
    flex-basis: 40%;
    background:linear-gradient(#001533, #014099);
    position:relative;
    display:flex;
    color:#fff;
    align-items: center;
    justify-content: center;
}
.contactMain::after {
    width:100%;
    height:27vw;
    content:'';
    background-image:url(../images/bg_mv.webp);
    background-size: auto;
    background-repeat: no-repeat;
    background-position: top left;
    position:absolute;
    left:0;
    top:0;
}
.contactMain .col {
    max-width:356px;
    position:relative;
    z-index:4;
}
.contactMain h2 {
    margin-bottom:0.2em;
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.4;
}
.contactMain p {
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: 0.05em;
}
.titMain {
    background-image: url(../images/img_mv01b.webp);
    flex-basis: 60%;
    background-size: cover;
    background-position: bottom center;
    background-repeat: no-repeat;
    position:relative;
}
.titMain .titProject {
    width:90%;
    max-width:718px;
    padding:2rem;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 1.75rem;
    position:absolute;
    top:100px;
    left:2rem;
    filter:drop-shadow(0px 0px 8px rgba(0,0,0,0.4));
}
.titMain .titProject h2 {
    font-size: clamp(2.4rem,4.5vw,2.9rem);
    font-weight: 700;
    color: #014099;
    text-align: center;
    line-height: 1.3;
    position:relative;
    font-feature-settings:"palt";
    margin-bottom:0.4em;
}
.titMain .titProject h3 {
    margin-bottom:.25rem;
    font-size: clamp(18px,1.9vw,1.5rem);
    font-weight:700;
    line-height: 1.4;
    text-align: center;
}
.titMain .titProject h3 sup {
    font-size: 50%;
    font-weight: 400;
}
.titMain .titProject p.speck {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
}
.titMain .titProject .strength {
    margin-top:1.75rem;
}
.titMain .titProject .strength h3 {
    padding:0.1em;
    font-size: 1.125rem;
    font-weight:600;
    line-height: 1.4;
    color: #fff;
    text-align: center;
    background-color: #014099;
}
.titMain .titProject .strength .flxBox {
    gap:2rem;
}
.titMain .titProject .strength .flxBox .col {
    flex-basis: calc((100% - 4rem)/ 3);
}
.titMain .titProject .strength .flxBox .col h4 {
    font-size:1.125rem;
    font-weight:700;
    line-height:1.6;
    color: #014099;
    position:relative;
}
.titMain .titProject .strength .flxBox .col h4 span.titJp {
    display:block;
}
.titMain .titProject .strength .flxBox .col h4 span.numb {
    margin-left:0.1em;
    font-size:156%;
    font-weight:600;
}
.titMain .titProject .strength .flxBox .col h4::before {
    width:100%;
    height:1px;
    content:'';
    background-color:#014099;
    position:absolute;
    top:50%;
    left:50%;
    transform: translate(-50%, 4px);
}
.titMain .titProject .strength .flxBox .col ul {
    margin:0;
    padding:0;
    list-style:none;
}
.titMain .titProject .strength .flxBox .col ul li {
    margin-top:0.5rem;
}
.titMain .titProject .strength .flxBox .col ul li p {
    font-size: 0.9375rem;
    font-weight:500;
    line-height: 1.4;
}
.titMain .titProject .strength .flxBox .col ul li p.speck {
    font-size: 0.8125rem;
    font-weight:400;
    text-align: left;
}
.titMain .titProject .strength .machidukuri {
    margin-top:2rem;
    padding:0.8rem 0.4rem 0.4rem 0.4rem;
    color:#fff;
    text-align: center;
    background-color: #333;
    position:relative;
}
.titMain .titProject .strength .machidukuri h4 {
    margin-bottom:0.2rem;
    font-size:1.125rem;
    font-weight: 700;
}
.titMain .titProject .strength .machidukuri p {
    font-size: 0.9375rem;
    font-weight:500;
}
.titMain .titProject .strength .machidukuri::before {
    content:'+';
    font-size:2.75rem;
    font-weight:900;
    color:#333;
    position:absolute;
    top: -3.5rem;
    left:50%;
    transform: translateX(-50%);
}
section.leadArea {
    padding-bottom:4rem;
    padding-top:16rem;
    background-image: url(../images/bg01.webp);
    background-position:top right;
    background-repeat: no-repeat;
}
section.leadArea p.lead {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.8;
}
section.overview {
    padding-bottom:5.75rem;
    padding-top:5.75rem;
    background-image: url(../images/img_aso3.webp);
    background-size: cover;
    background-position: center center;
}
section.overview .flxBox {
    gap:2.75rem;
}
section.overview .flxBox .col {
    padding: 1.75rem 2.75rem;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    flex-basis: calc((100% - 2.75rem)/ 2);
    filter: drop-shadow(0 0 4px rgba(0,0,0,0.4));
}
section.overview .flxBox .col h4 {
    margin-bottom:0.5rem;
    padding-left:1.8rem;
    font-weight:600;
    line-height: 1.4;
    position:relative;
}
section.overview .flxBox .col h4::before {
    width:1.5rem;
    height:1.5rem;
    content:'';
    background-image: url(../images/polygon_blue.svg);
    background-size: contain;
    background-repeat: no-repeat;
    position:absolute;
    left:0;
    top:50%;
    transform: translateY(-50%);
}
section.overview .flxBox .col h3 {
    margin-bottom:1.8rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #014099;
    line-height: 1.4;
}
section.overview .flxBox .col ul {
    margin:0;
    padding:0;
    list-style: none;
}
section.overview .flxBox .col ul li {
    padding:0.625rem 0.2rem;
    border-bottom:thin solid #014099;
    font-weight:600;
}
section.overview .flxBox .col ul li:first-child {
    border-top:thin solid #014099;
}
section.overview .flxBox .col table {
    border-spacing: 0;
    border-top:thin solid #014099;
}
section.overview .flxBox .col table tr th, section.overview .flxBox .col table tr td {
    padding:0.625rem 0.2rem;
    border-bottom:thin solid #014099;
}
section.overview .flxBox .col table tr th {
    width:5em;
    font-size: 0.875rem;
    color:#666;
    text-align: left;
    line-height:1.4;
}
section.overview .flxBox .col table tr td {
    font-weight:500;
}
section.news {
    padding:5rem 0 1rem 0;
    background-image: url(../images/bg02.webp);
    background-position:bottom left;
    background-repeat: no-repeat;
}
section.news h3 {
    margin-bottom:2.75rem;
    text-align: center;
    font-size:1.5rem;
    line-height: 1.4;
    font-weight:700;
    color: #014099;
}
section.news .newsCont {
    width:90vw;
    max-width:720px;
    margin:0 auto 4rem auto;
    padding:0;
    list-style: none;
}
section.news .newsCont li a {
    padding:1.25rem 0;
    border-bottom:3px dotted #014099;
    display:flex;
    gap:1.5rem;
    text-decoration: none;
    position:relative;
}
section.news .newsCont li:first-child a {
    border-top:3px dotted #014099;
}
section.news .newsCont li a .content {
    width:calc(100% - 17.4rem)
}
section.news .newsCont li a::after {
    width:12px;
    height: 20px;
    content: '';
    background-image: url(../images/cevron-right.svg);
    background-size: contain;
    background-repeat: no-repeat;
    position:absolute;
    top:50%;
    right:0.5rem;
}
section.news .newsCont li a:hover {
    background-color: #fff;
}
section.news .newsCont li a .date {
    margin-bottom:0.8rem;
    font-size: 1rem;
    font-weight: 700;
    color: #014099;
}
section.news .newsCont li a p {
    font-size: 0.9375rem;
    font-weight: 500;
    color:#333;
    line-height: 1.6;
}
section.news p.caution {
    padding: 0 1rem;
    font-size: 0.75rem;
    text-align: left;
    display: flex;
    justify-content: flex-end;
}
footer .footerLinks {
    min-height:60px;
    margin:0;
    padding:1rem 0;
    display:flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border-top:thin solid #ccc;
    list-style:none;
    gap:0;
    flex-wrap: wrap;
}
footer .footerLinks li a {
    padding-left:0.6em;
    padding-right:0.6em;
    font-size:0.75rem;
    color: #333;
    text-decoration: none;
    border-right:thin solid #ccc;
}
footer .footerLinks li a.outerLink::after {
    width:9px;
    height:7px;
    margin-left:0.2em;
    content:'';
    display:inline-block;
    background-image: url(../images/icon_blank.png);
}
footer .footerLinks li:last-child a {
    border-right:0px;
}
footer .absolutFooter {
    padding:1rem;
    font-size:0.75rem;
    color:#fff;
    text-align: center;
    background-color: #666;
    font-family: Georgia, 'Times New Roman', Times, serif;
}
.bottomBtn {
    width:100%;
    height:100px;
    background-color: #014099;
    display:flex;
    justify-content: center;
    align-items: center;
    position:sticky;
    left:0;
    z-index:10;
    transition: 0.5s;
}
.bottomBtn a {
    height:62px;
    padding:0 2rem;
    background-color: #FFFD95;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.875rem;
    font-weight: 700;
    color: #014099;
    border-radius: 31px;
    border:8px double #014099;
}
.bottomBtn a span {
    margin-right:0.2rem;
    font-size: 1.25rem;
}
.bottomBtn a:hover {
    color:#fffd95;
    background-color: #014099;
    transition: 0.5s;
    border:2px solid #FFFD95;
}
.float-button {
    bottom:-62px;
    opacity: 0;
    visibility: hidden;
}
.float-button.active {
    bottom:0;
    opacity: 1;
    visibility: visible;
}
/* Notice */
h2.titNotice {
    padding-top:4rem;
    padding-bottom:.2em;
    font-size:2rem;
    font-weight:500;
    border-bottom:3px solid #014099;
}
.c-section__in {
    padding:4rem 0;
}
.c-section__in p.c-text {
    margin-bottom:1rem;
    font-size: 0.875rem;
    line-height:1.8;
}
.c-section__in h2.c-heading-02 {
    margin-bottom:.5rem;
    margin-top:2rem;
    font-size:1.25rem;
    color: #014099;
}
a.c-link-arrow {
    color: #014099;
}
a.c-link-arrow::after {
    width: 9px;
    height: 7px;
    margin-left: 0.4em;
    content: '';
    display: inline-block;
    background-image: url(../images/icon_blank.png);
}
a.btn-top {
    width:200px;
    height:40px;
    margin:2rem auto;
    color:#fff;
    font-size:1rem;
    font-weight:500;
    display:flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    background-color: #014099;
}
@media screen and (max-width:1048px) and (min-width:769px) {
    html,body {
        font-size:14px;
    }
    section.mainVisual {
        min-width: initial;
    }
    .contactMain .col {
        max-width: initial;
        position: relative;
        z-index: 4;
    }
    .contactMain {
        flex-basis: 35%;
        padding:2rem;
    }
    .contactMain h2 br {
        display:none;
    }
    .titMain {
        height:640px;
        flex-basis: 70%;
    }
    .titMain .titProject {
        padding: 1.75rem;
    }
    .titMain .titProject h2 {
        font-size: 3.8vw;
    }
    .titMain .titProject h2::before {
        width:100%;
    }
    .titMain .titProject h3 br {
        display:none;
    }
}
@media screen and (max-width:920px) and (min-width:769px) {
    .titMain .titProject {
        top:6vw;
    }
    .titMain .titProject .strength .flxBox {
        flex-direction: column;
        gap:0;
    }
    .contactMain {
        flex-basis: 42%;
    }
    .titMain {
        flex-basis: 58%;
    }
    .titMain .titProject .strength .machidukuri {
        margin-top: 3rem;
    }
    section.leadArea {
        padding-top: 17rem;
    }
    .titMain .titProject p.speck br {
        display:none;
    }
    .titMain .titProject h2 {
        font-size: 3.2vw;
    }
}
/* SP mode */
@media screen and (max-width: 768px) {
    html, body {
        font-size:14px;
    }
    .pcOnly {
        display:none; 
    }
    header {
        height: auto;
        padding:1rem;
        gap:0.5rem;
    }
    header h3.companyLogo img {
        margin-right: 0;
    }
    header h1 {
        margin-left: 0;
    }
    section.mainVisual {
        height:auto;
        min-width: initial;
        flex-direction: column;
    }
    .contactMain {
        padding:1.5rem;
        flex-basis: auto;
    }
    .contactMain .col {
        max-width: initial;
    }
    .contactMain h2 br {
        display:none;
    }
    .btnContact_l {
        margin-left:auto;
        margin-right:auto;
    }
    .titMain {
        height:auto;
        flex-basis: auto;
        background-position: top center;
        background-size: 200%;
    }
    .titMain .titProject {
        margin:2rem auto 0 auto;
        padding: 1.5rem;
        position: static;
    }
    .titMain .titProject h2::before {
        width: 100%;
    }
    .titMain .titProject p.speck br {
        display:none;
    }
    .titMain .titProject .strength .flxBox {
        flex-direction: column;
        gap:0.1rem;
    }
    .titMain .titProject .strength .machidukuri {
        margin-top: 3rem;
    }
    section.leadArea {
        padding-bottom: 4rem;
        padding-top: 4rem;
        background-image: url(../images/bg01.webp);
        background-position: top right;
        background-repeat: no-repeat;
    }
    section.overview .flxBox {
        gap: 2.75rem;
        flex-direction: column;
    }
    section.news .newsCont li a figure img {
        width:30vw;
        height:auto;
    }
    section.news .newsCont li a .content {
        width: calc(100% - 40vw);
    }
    .bottomBtn a {
        height:auto;
        margin:2rem;
        padding:0.6rem;
        flex-wrap: wrap;
        border-radius: 2.76rem;
    }
    section.news .newsCont li a {
        padding: 1.25rem 0;
        border-bottom: 3px dotted #014099;
        display: flex;
        gap: 1rem;
        text-decoration: none;
        position: relative;
    }
    .titMain .titProject h2 {
        font-size: clamp(2.4rem,13px,3rem);
    }
}
@media screen and (max-width: 480px) {
    html, body {
        font-size:13px;
    }
    header h1 br.spOnly {
        display:block;
    }
    section.news p.caution {
        text-align: center;
    }
}