@charset "UTF-8" ;

/* Reset */
*,*::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}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}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 {
    background-color:#f8f8f8;
}
body {
    width:1280px;
    margin:0 auto;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    color:#333;
    background-color:#fff;
    position:relative
}
.tit-area {
    position:relative
}
.tit-area .logo-tit {
    width:90vw;
    height:80vw;
    max-width:673px;
    max-height:600px;
    background-image: url(../images/logo_header.png);
    background-size: contain;
    background-repeat: no-repeat;
    position:absolute;
    left:0;
    top:0;
    z-index:2
}
.tit-area .logo-tit h2 {
    width:400px;
    height:100px;
    position:absolute;
    left:44px;
    top:56px;
}
.tit-area .logo-tit h2 a {
    width:100%;
    height:100%;
    color: rgba(0, 0, 0, 0);
    display:block
}
.tit-area nav {
    width:90%;
    max-width:960px;
    margin:0 auto;
    display:flex;
    justify-content: flex-end;
    position:relative;
    z-index:10
}
.tit-area nav ul {
    list-style:none;
    padding:0;
    margin:30px 0 0 0;
    display:flex;
    gap:16px;
}
.tit-area nav ul li {
    flex-basis: 132px;
}
.tit-area nav ul li a {
    width:132px;
    height:32px;
    display:flex;
    justify-content: center;
    align-items: center;
    font-size:clamp(16px,4.3vw,1.5rem);
    font-weight: 400;
    color: #888;
    background-color: #f8f8f8;
    text-decoration: none;
    border-radius: 16px;
    transition: all 0.4s;
}
.tit-area nav ul li a.stay, .tit-area nav ul li a:hover {
    color: #fff;
    background-color: #888;
}
.row {
    width:960px;
    margin:0 auto;
}
.row.wide {
    max-width:1240px;
}
.row.narrow {
    max-width:720px;
}
.flxbox {
    display:flex;
    gap:64px;
}
p {
    line-height: 2;
}
.flxbox .clm {
    flex-basis: calc((100% - 64px) / 2);
}
.sp-only {
    display:none
}
.pc-only {
    display:block
}


.tit-area.top-mv {
    width:100%;
    height:120vw;
    max-height:746px;
}
.tit-area.top-mv .mv-copy {
    position:absolute;
    left:50%;
    bottom:0px;
    transform: translateX(32px);
    z-index:100
}
.tit-area.top-mv .mv-sld-area {
    width:1280px;
    height:718px;
    margin:0 auto;
    position:absolute;
    top:28px;
    left:50%;
    transform: translateX(-50%);
    z-index:1
}
.tit-area.top-mv .mv-sld-area ul {
    margin:0;
    padding:0;
}

.top-body {
    padding:96px 0 4px 0;
}
.top-body h1 {
    margin-bottom:2em;
    font-size: clamp(21px,5.6vw,2.25rem);
    font-weight: 700;
    text-align: center;
    line-height: 1.4;
}
.top-body .row .flxbox {
    margin-bottom:16px;
}
.top-body .row .flxbox:nth-child(odd) {
    flex-direction: row-reverse;
}
.top-body .flxbox figure {
    margin-bottom:16px;
}
.top-body .row .flxbox:nth-child(3) figure {
    margin-top:-280px;
}
.top-body .row .flxbox:nth-child(5) figure {
    margin-top:-250px;
}
.top-body .row .flxbox:nth-child(6) figure {
    margin-top:-60px;
}
.top-body figure img {
    max-width:100%;
}
.top-body figure figcaption {
    margin-top:0.4em;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    color: #174F9E;
    line-height: 1.4;
    font-size: clamp(14px,3.7vw,1rem);
}
.top-body p {
    margin-bottom:1em;
    font-size:clamp(15px,4vw,1.125rem);
    font-weight:400;
    letter-spacing:.05em;
    text-align:justify;
}
.top-body figure figcaption span {
    padding-right:1.4em;
    position:relative
}
.top-body figure figcaption span::after {
    width:1em;
    height:1px;
    content:'';
    border-bottom:thin dotted #174F9E;
    position: absolute;
    top:50%;
    right:0.2em;
}
.top-end p.caption {
    margin-top:0.4em;
    margin-bottom:1em;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    color:#174F9E;
}

footer {
    padding-top:60px;
    padding-bottom:48px;
    background-color: #174F9E;
}
footer .row {
    display:flex;
    flex-wrap: wrap;
}
footer .row .logo-footer {
    margin-right:auto;
}
footer .sitemap {
    width:calc((100% - 64px)/ 2)
}
footer .sitemap .sitemap-main {
    margin-bottom:8px;
    padding-bottom:8px;
    padding-right:8px;
    display:flex;
    justify-content: flex-end;
    gap:36px;
    list-style:none;
    border-bottom: thin solid #fff;
}
footer .sitemap .sitemap-main li a {
    color: #fff;
    font-size:1.25rem;
    text-decoration: none;
}
footer .sitemap .sitemap-sub {
    margin-top:8px;
    padding-right:8px;
    display:flex;
    justify-content: flex-end;
    gap:36px;
    list-style:none;
}
footer .sitemap .sitemap-sub li a {
    color: #fff;
    font-size:0.8175rem;
    text-decoration: none;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}
footer .absolute-footer {
    flex-basis: 100%;
    text-align: right;
    color: #fff;
    font-size: 0.8175rem;
    letter-spacing: 0.1em;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

/* Profile Page */
.profile {
    margin-top:180px;
    margin-bottom:64px;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    position:relative;
    z-index:10
}
.profile .flxbox:has(.profile01) {
    align-items: center;
}
.profile figure {
    flex-basis: calc((100% - 64px)/ 2);
    padding:0 0 0 64px;
}
.profile figure img {
    border-radius: 50%;
}
.profile .profile01 dl {
    margin-bottom:1em;
}
.profile .profile01 dl dt {
    font-size: clamp(16px,4.3vw,1.25rem);
    font-weight: 700;
}
.profile .profile01 dl dd .name {
    padding-left:1em;
    font-size: clamp(24px,6.4vw,2rem);
    line-height: 1.4;
    font-weight:700
}
.profile .profile01 dl dd .name span {
    display:block;
    font-size: clamp(14px,3.7vw,1rem);
    padding-left:4em;
    font-weight:400;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.profile .profile01 dl dd table.career tr th, .profile .profile01 dl dd table.career tr td {
    padding:0.2em 0;
}
.profile .profile01 dl dd table.career tr th {
    padding-right:1em;
    text-align: right;
    font-weight:400;
    vertical-align: text-top;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    font-size: clamp(16px,4.3vw,1.25rem);
}
.profile .profile01 dl dd table.career tr td {
    font-size:clamp(15px,4vw,1.125rem);
}
.profile .profile02 dl {
    margin-top:8px;
    display:flex;
    align-items: end;
}
.profile .profile02 dl dt {
    width:5em;
    padding-right:1em;
    font-size: clamp(16px,4.3vw,1.25rem);
    font-weight:700;
}
.profile .profile02 dl dd {
    font-size: clamp(15px,4vw,1.125rem);
}
.results {
    padding-bottom:120px;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}
.results h3 {
    margin-bottom:1em;
    padding-bottom:0.2em;
    font-size: clamp(18px,4.8vw,1.5rem);
    border-bottom:thin solid #777;
    letter-spacing:0.1em;
}
table.results-list {
    width:100%;
}
table.results-list thead th {
    padding-bottom:0.4em;
    letter-spacing:0.1em;
    border-bottom: thin solid #ccc;
}
table.results-list tbody {
    font-size:1.125rem;
}
table.results-list tbody tr td {
    padding:0.4em 0 0.4em 0;
    vertical-align: text-top;
    border-bottom: thin dotted #ccc;
    font-size:clamp(15px,4vw,1.125rem)
}
table.results-list tbody tr td.year {
    width:7em;
    padding-right:1em;
    text-align: right;
    font-size: clamp(16px,4.3vw,1.25rem);
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
table.results-list tbody tr td.categoly {
    padding-left:1em;
    font-size: clamp(14px,3.7vw,1rem);
    white-space: nowrap;
    color:#777;
}

/* Company Page */
.company h1, .company table {
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}
.company h1 {
    margin-bottom:1em;
    padding-bottom:0.2em;
    font-size:  clamp(18px,4.8vw,1.5rem);
    border-bottom:thin solid #777;
    letter-spacing:0.1em;
}
.company {
    margin-top:300px;
    padding-bottom:128px;
    position:relative;
    z-index:10;
}
table.company-profile {
    width:100%;
}
table.company-profile tr th, table.company-profile tr td {
    padding:0.4em;
    font-size:clamp(15px,4vw,1.125rem);
    line-height:1.8;
    border-bottom:thin dotted #777;
}
table.company-profile tr th {
    width:20%;
    white-space: nowrap;
    text-align: left;
    letter-spacing: 0.1em;
    vertical-align: text-top;
}
table.company-profile tr td dl {
    display:flex;
}
table.company-profile tr td dl dt {
    flex-basis: 6em;;
}
table.company-profile tr td dl dd {
    flex:1
}

/* Privercy Page */
.company p {
    font-size:clamp(15px,4vw,1.125rem);
}
 ol.privercy {
    padding-left:0em;
}
 ol.privercy li h2 {
    margin-bottom:0.4em;
    padding-left:2.2em;
    font-size:clamp(15px,4vw,1.125rem);
    font-weight:700;
    line-height:1.6;
    text-wrap: wrap;
    position: relative;
}
.privercy p {
   font-size:clamp(15px,4vw,1.125rem);
}
ol.privercy {
    list-style-type: none;
}
ol.privercy > li {
    padding-left:0em;
    margin-top:1.5em;
}
ol.privercy > li h2:before {
    margin-right:0.4em;
    content:"( " counter(list-item) " )";
    position:absolute;
    left:0;
    top:0;
}
 ol.privercy li p {
    padding-left:2em;
}
 ol.privercy li ol {
    padding-left:3.5em;
}
 ol.privercy li ol li {
    margin-top:0.5em;
    font-size: clamp(14px,3.7vw,1rem);
}
.alg-right {
    margin-top:1em;
    text-align: right;
}

ol.policy {
    padding-left:1.6em;
}
ol.policy li {
    margin-top:1em;
    font-size:clamp(15px,4vw,1.125rem);
    line-height: 1.8;
}

/* SP */
@media screen and (max-width:728px) {
    body{
        width:100%
    }
    .row {
        width:90vw;
    }
    .sp-only {
        display:block
    }
    .pc-only {
        display:none
    }
    .flxbox {
        flex-direction: column;
        gap:0px;
    }
    .tit-area {
        width: 100%;
        height: 80vw;
    }
    .tit-area.top-mv .mv-sld-area {
        width:100vw;
        height:56vw;
        top: auto;
        bottom:30vw;
    }
    footer {
        padding-top: 40px;
        padding-bottom: 16px;
    }
    footer .row {
        flex-direction: column;
    }
    .tit-area.top-mv .mv-copy {
        position: absolute;
        left: 35%;
        bottom: 0;
        transform: translateX(0);
    }
    .tit-area nav {
        display:none
    }
    .top-body {
        padding: 14vw 0 4px 0;
    }
    .top-body  .clm.cl2, .top-body  .clm.cl4 {
        display:flex;
        flex-direction: column-reverse;
    }
    .top-end {
        width:90%;
        height:65vw;
        margin:0 5vw 5vw 5vw;
        background-size: contain;
        background-position: top left;
    }
    .top-end p.caption {
        margin-bottom:0;
            color: #174F9E;
        line-height: 1.4;
        font-size: clamp(14px, 3.7vw, 1rem);
    }
    footer .absolute-footer {
        margin-top:40px;
        text-align: center;
    }
    footer .row .logo-footer {
        margin-left:auto
    }
    footer .row .logo-footer img {
        width:60vw;
        max-width: 320px;
    }
    footer .sitemap {
        width: 50vw;
        max-width:250px;
        padding:80px 40px;
        position:fixed;
        top:0;
        right:0;
        background-color: rgba(23, 79, 158, 0.9);
        transform: translateX(100%);
        transition: all 0.4s;
        z-index:1000
    }
    footer .sitemap.active {
        transform:translateY(0)
    }
    footer .sitemap .sitemap-main {
        margin-bottom: 8px;
        padding: 0;
        margin:0;
        display: flex;
        justify-content: flex-start;
        gap: 24px;
        list-style: none;
        border-bottom: none;
        flex-direction: column;
    }
    footer .sitemap .sitemap-sub {
        margin-top: 24px;
        margin-bottom:0;
        padding: 0;
        display: flex;
        justify-content: flex-end;
        gap: 18px;
        list-style: none;
        flex-direction: column;
    }
    footer .btn-sp-menu {
        width:48px;
        height:48px;
        background-color: rgba(23, 79, 158, 0.9);
        position:fixed;
        top:0;
        right:0;
        z-index:1001
    }
    footer .btn-sp-menu span {
        width:24px;
        height:1px;
        background-color: #fff;
        position: absolute;
        top:50%;
        left:12px;
        cursor: pointer;
    }
    footer .btn-sp-menu.active {
        background-color: rgba(23, 79, 158, 0.0);
    }
    footer .btn-sp-menu span:first-child {
        transform: translateY(-6px);
        transition: all 0.4s;
    }
    footer .btn-sp-menu span:last-child {
        transform: translateY(6px);
        transition: all 0.4s;
    }
    footer .btn-sp-menu.active span:first-child {
        transform: translate(0) rotate(45deg);
    }
    footer .btn-sp-menu.active span:nth-child(2) {
        display:none
    }
    footer .btn-sp-menu.active span:last-child {
        transform: translate(0) rotate(-45deg);
    }
    .profile {
        margin-top: -40vw;
        margin-bottom: 64px;
    }
    .profile figure {
        flex-basis: 100%;
        padding: 0 10vw;
    }
    table.results-list thead th {
        display:none
    }
    table.results-list tbody tr td {
        display:block;
        padding-left:.9em;
    }
    table.results-list tbody tr td.year {
        width: 100%;
        margin-left:0;
        padding-left:0;
        padding-right: 0;
        padding-bottom:0;
        text-align: left;
    }
    table.results-list tbody tr td.categoly {
        padding-left: 1em;
        border-bottom-style: solid;
        border-bottom-width: 2px;
    }
    .profile .profile02 dl {
       flex-direction: column;
       align-items: flex-start;
    }
    .company {
        margin-top: -10vw;
        padding-bottom: 128px;
    }
    .tit-area .logo-tit h2 {
        width: 54vw;
        height: 13vw;
        position: absolute;
        left: 5.9vw;
        top: 7.6vw;
    }
    .top-body .row .flxbox:nth-child(odd) {
        flex-direction:column;
    }
    .top-body figure {
        margin-bottom:1rem;
    }
    .top-body .row .flxbox:nth-child(3) figure {
        margin-top:0;
    }
    .top-body .row .flxbox:nth-child(5) figure {
        margin-top:0;
    }
    .top-body .row .flxbox:nth-child(6) figure {
        margin-top: 0;
    }
    table.company-profile td span.sp-only {
        display:inline;
    }
}