/* ==================== 基本・リセット ==================== */
/*:root {
    overflow-y: scroll;
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}*/
body {
    margin: 0;
    padding: 0;
    position: relative;
    background-color: #fff;
    color: #222;
    font-family: "Inter", "Noto Sans JP", sans-serif;
}
main { display: block; }
button, input[type=submit] { font: inherit; }
button:not(:disabled), input[type=submit]:not(:disabled) { cursor: pointer; }
svg { fill: currentColor; }
@page { size: A4 }
.cookie_cont { display: block !important; }

/* ==================== 各部品 ==================== */
/* --- コンテナ --- */
.sc21-GRID-1-center-nested {
    margin-right: auto;
    margin-left: auto;
    max-width: 56rem;
    padding-right: 0;
    padding-left: 0;
}

.GlobalHeader {
    height: 64px !important;
    border-top:none !important;
}
.brand-logo {
    width: 208px;
    }
.brand-logo img {
    width: 100%;
    display: block;
}
.GlobalHeader-logo {
    margin-left: 34px !important;
}
@media (min-width: 768px) and (max-width: 1090px) {
    .GlobalHeader {
        height: 50.45px !important;
    }
}

@media (max-width: 767px) {
    .GlobalHeader {
        height: 32px !important;
    }
    .brand-logo {
        width: 105px;
    }
    .GlobalHeader-inner .GlobalHeader-logo {
        margin-left: 17px !important;
    }
}


/* --- ボタン --- */
.sc21-BTN-normal-large {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    font-size: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 0;
    box-sizing: border-box;
    border-width: 0;
    border-radius: 4px;
    padding-right: 1.875rem;
    padding-left: 1.5rem;
    width: 100%;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    outline-offset: 2px;
    background-color: #004098;
}
.sc21-BTN-normal-large span { color: #fff; }
.sc21-BTN-normal-large svg:last-child {
    margin-top: auto;
    margin-bottom: auto;
    position: absolute;
    top: 0;
    right: .875rem;
    bottom: 0;
    width: .3125rem;
    height: .5rem;
    fill: #FFFFFF;
}
.sc21-BTN-normal-large svg:last-child[width="14"] {
    right: .75rem;
    width: .6875rem;
    height: .5rem;
}
.sc21-BTN-normal-large::after {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    transition: opacity .1s linear;
    content: "";
    opacity: 0;
    background-image: linear-gradient(88.83deg, #004098, #0070cf);
}
.sc21-BTN-normal-large:not(:disabled):hover::after { opacity: 1; }

/* --- NEXTボタン 活性/非活性 --- */
.js-scroll_check a { transition: all .5s ease; }
.js-scroll_check.not-active a {
    background: #afafaf !important;
    pointer-events: none;
}

/* --- フッター --- */
.fixed-footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    background: #fff;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.07);
    padding: 12px 0;
    z-index: 9999;
}
.fixed-footer.static {
    position: static;
    box-shadow: none;
}
.fixed-footer .sc21-GRID-1-center-nested {
    margin: 0 auto;
    max-width: 56rem;
}

/* --- 言語切替 --- */
.lang { position: relative; }
.lang a {
    color: #fff;
    background: #1c9c1f;
    font-size: 1.1rem;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    padding: 5px 51px 5px 33px;
    border-radius: 2px;
    width: fit-content;
    text-decoration: none;
    position: relative;
    height: 30px;
}
#wovn-languages > a::after {
    content: "";
    position: absolute;
    top: 48%;
    right: 19px;
    width: 16px;
    height: 10px;
    background: #fff;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
#wovn-languages.on > a::after {
    transform: translateY(-50%) rotate(180deg);
}
#wovn-languages ul.lang { display: none; }
#wovn-languages.on ul.lang { display: block; }
.lang a img {
    width: 1.2rem;
    margin-left: 10px;
    display: block;
}
.lang.on a {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.lang ul {
    position: absolute;
    top: 24px;
    left: -40px;
    width: 100%;
    z-index: 5;
    display: none;
}
ul.lang li.wovn-switch {
    display: block;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    border-radius: 0;
    color: #fff;
    background: #1c9c1f;
    font-size: 0.9rem !important;
    line-height: 1;
    padding: 8px 0;
    position: relative;
}
ul.lang li.wovn-switch:hover { background: #44ad4b; }
.lang ul li { font-size: 1rem !important; }

/* --- ナビ --- */
nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10000;
    padding: 13px 31px;
    background: transparent;
}
nav > a {
    font-size: 1.6rem;
    letter-spacing: 1px;
    color: #052032;
}
nav > a::after {
    content: "";
    width: 0;
    display: block;
    border-bottom: 1px solid #052032;
    transition: .5s;
}
nav > a:hover::after { width: 100%; }
nav > a:last-child {
    padding: 40px 55px;
    background: #244a7e;
    color: #fff;
    transition: .5s;
}
nav > a:last-child:hover {
    background: #1c9c1f;
    opacity: 1;
}
nav > a:last-child::after { display: none; }

/* ==================== メディアクエリ ==================== */
@media (max-width: 428px) {
    .js-scrollable {
        margin: 0px calc(106% - 80vw);
        width: 80vw;
        padding-right: 10px;
    }
    .js-scrollable table {
        font-size: 92%;
    }
    table td a {
        word-break: break-all;
    }
}
@media screen and (min-width: 768px) {
    .sc21-GRID-1-center-nested {
        margin-right: auto;
        margin-left: auto;
        max-width: 56rem;
    }
    .sc21-BTN-normal-large {
        padding-top: 1.75rem;
        padding-bottom: 1.75rem;
        padding-right: 2.625rem;
        padding-left: 2.125rem;
    }
    .sc21-BTN-normal-large svg:last-child {
        right: 1.25rem;
    }
    .sc21-BTN-normal-large svg:last-child[width="14"] {
        right: 1.25rem;
    }
}
@media screen and (max-width: 768px) {
    .lang {
        text-align: center;
    }
    .lang ul {
        top: 35px;
    }
    .lang ul li {
        font-size: 0.9rem !important;
    }
    .lang a {
        padding: 10px;
    }
    .lang > a {
        padding: 16px 15px 16px 20px;
        font-size: 1rem;
    }
    .GlobalHeader-logo {
        margin-left: 25px !important;
    }
    .leftBox {
        padding: 10px;
        display: flex;
    }
    .leftBox .logo {
        width: 160px;
        margin-bottom: 0;
    }
    /* ナビバー（SP時） */
    nav.active { right: 0; }
    nav > a {
        display: block;
        font-size: 2.4rem;
        padding: 10px;
        box-sizing: border-box;
        border-bottom: 2px solid #052032;
    }
    nav > a::after { display: none; }
    nav > a:last-child {
        border: none;
        padding: 20px 10px;
        margin-top: 20px;
        text-align: center;
    }
    nav > a.sp-close {
        padding: 0;
        font-size: 30px;
        text-align: right;
        display: block;
        width: fit-content;
        margin-left: auto;
        line-height: 1;
        cursor: pointer;
        border: none;
    }
    .sp_toggle {
        border-top: 2px solid #052032;
        border-bottom: 2px solid #052032;
        width: 20px;
    }
    .sp_toggle::before {
        content: "";
        display: block;
        border-top: 2px solid #052032;
        width: 20px;
        margin: 5px 0;
    }
}
@media screen and (max-width: 1090px) {
    nav > a:last-child {
        padding: 30px 20px;
    }
    .leftBox {
        display: block;
    }
    .leftBox .logo {
        margin-bottom: 10px;
    }
}
@media screen and (max-width: 1320px) {
    nav { padding: 9px 22px !important; }
    .lang a {
        padding: 1.5px 46px 2.5px 26px;
        font-size: 1rem;
    }
    .lang ul {
        top: 18px;
    }
}
@media (max-width: 767px) {
    nav {
        padding: 0 !important;
    }
    .lang > a {
        padding: 2px 39px 1px 31px;
        font-size: 0.9rem;
    }
    #wovn-languages > a::after {
        top: 50%;
        right: 14px;
        width: 14px;
        height: 8px;
    }
    ul.lang li.wovn-switch {
        font-size: 0.76rem !important;
    }
    .lang ul {
        top: 17px;
    }
}
/* ==================== 印刷用 ==================== */
@media print {
    :root {
        -webkit-print-color-adjust: exact;
        color-adjust: exact;
    }
    body {
        font-family: sans-serif;
    }
}
