@charset "utf-8";

/*
Theme Name: microcapsule
*/
html,
body,
h1,
h2,
h3,
h4,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
img,
figure,
a,
table,
tr,
th,
td,
address {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font-weight: normal;
    font-style: normal;
    vertical-align: baseline;
    box-sizing: border-box;
}

article,
header,
footer,
aside,
figure,
figcaption,
nav,
section {
    text-align: center;
    display: block;
}

a {
    text-decoration: none;
    vertical-align: baseline;
    background: transparent;
    color: inherit;
}

ol,
ul {
    list-style: none;
    list-style-type: none;
}

img {
    max-width: 100%;
    height: auto;
    box-sizing: content-box;
    border-style: none;
    vertical-align: middle;
}

.pc_only {
    display: none;
}

.pcbr {
    display: none;
}

@media screen and (min-width: 768px) {
    [href*="tel:"] {
        pointer-events: none;
    }

    a,
    a:hover {
        transition: .2s;
    }

    .pc_only {
        display: block;
    }

    .sp_only {
        display: none;
    }

    .pcbr {
        display: block;
    }

    .spbr {
        display: none;
    }
}

/*==========================

ユーティリティ

===========================*/
.mt-0 {
    margin-top: 0 !important;
}

.mt-15 {
    margin-top: 15px !important;
}

.mt-20 {
    margin-top: 20px !important;
}

.mt-25 {
    margin-top: 25px !important;
}

.mt-30 {
    margin-top: 30px !important;
}

.mt-40 {
    margin-top: 40px !important;
}

.mt-45 {
    margin-top: 45px !important;
}

.mt-50 {
    margin-top: 50px !important;
}

.mt-60 {
    margin-top: 60px !important;
}

.mt-70 {
    margin-top: 70px !important;
}

.mt-80 {
    margin-top: 80px !important;
}

.mt-100 {
    margin-top: 100px !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-15 {
    margin-bottom: 15px !important;
}

.mb-20 {
    margin-bottom: 20px !important;
}

.mb-25 {
    margin-bottom: 25px !important;
}

.mb-30 {
    margin-bottom: 30px !important;
}

.mb-40 {
    margin-bottom: 40px !important;
}

.mb-45 {
    margin-bottom: 45px !important;
}

.mb-50 {
    margin-bottom: 50px !important;
}

.mb-60 {
    margin-bottom: 60px !important;
}

.mb-70 {
    margin-bottom: 70px !important;
}

.mb-80 {
    margin-bottom: 80px !important;
}

.mb-100 {
    margin-bottom: 100px !important;
}

.t-c {
    text-align: center !important;
}

.t-l {
    text-align: left !important;
}

.t-r {
    text-align: right !important;
}

@media screen and (max-width: 767px) {
    .mt-15 {
        margin-top: 10px !important;
    }

    .mt-20 {
        margin-top: 15px !important;
    }

    .mt-25 {
        margin-top: 20px !important;
    }

    .mt-30 {
        margin-top: 20px !important;
    }

    .mt-40 {
        margin-top: 30px !important;
    }

    .mt-45 {
        margin-top: 30px !important;
    }

    .mt-50 {
        margin-top: 35px !important;
    }

    .mt-60 {
        margin-top: 40px !important;
    }

    .mt-70 {
        margin-top: 50px !important;
    }

    .mt-80 {
        margin-top: 60px !important;
    }

    .mt-100 {
        margin-top: 60px !important;
    }

    .mb-15 {
        margin-bottom: 10px !important;
    }

    .mb-20 {
        margin-bottom: 15px !important;
    }

    .mb-25 {
        margin-bottom: 20px !important;
    }

    .mb-30 {
        margin-bottom: 20px !important;
    }

    .mb-40 {
        margin-bottom: 30px !important;
    }

    .mb-45 {
        margin-bottom: 30px !important;
    }

    .mb-50 {
        margin-bottom: 35px !important;
    }

    .mb-60 {
        margin-bottom: 40px !important;
    }

    .mb-70 {
        margin-bottom: 50px !important;
    }

    .mb-80 {
        margin-bottom: 60px !important;
    }

    .mb-100 {
        margin-bottom: 60px !important;
    }
}

/*==========================

全体設定

===========================*/
html {
    font-size: 62.5%;
    touch-action: manipulation;
}

body {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
    font-family: -apple-system, "BlinkMacSystemFont", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.6;
    color: #666;
}

.heading-en {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

    font-weight: 200;
    letter-spacing: 0.04em;
}

.wrap {
    margin: auto;
    padding: 0 20px;
}

@media screen and (min-width: 768px) {
    body {
        font-size: 1.8rem;
        background-size: cover;
    }

    .wrap {
        max-width: 1260px;
        padding: 0 30px;
    }
}

/*==========================

ヘッダー

===========================*/
.header {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: .4s;
    z-index: 100;
    color: #fff;
}

.header-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    width: 100%;
}

.header-logo {
    width: 200px;
    margin-left: 20px;
    line-height: 1;
}

@media screen and (min-width: 1280px) {
    .header-logo {
        width: 180px;
        min-width: 180px;
        margin-right: 20px;
        margin-left: 0;
    }

    .header-wrap {
        height: 80px;
        padding: 0 30px;
    }
}

@media screen and (min-width: 1600px) {
    .header-logo {
        width: 330px;
        min-width: 200px;
        margin-right: 20px;
    }

    .header-wrap {
        padding: 0 40px;
    }
}

/*
グローバルナビ
===========================*/
.gnav {
    position: fixed;
    top: 0;
    width: 100%;
    height: 100vh;
    transform: translateX(100%);
    background: rgba(4, 25, 70, .96);
    transition: transform .25s;
    padding: 4em 0;
    text-align: center;
}

.gnav.active {
    z-index: 101;
    transform: translateX(0);
}

.gnav-list {
    margin: 1em 0;
}

.gnav-list li {
    position: relative;
}

.gnav-list li a {
    display: block;
    text-align: center;
    padding: 1em;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: .02em;
}

@media screen and (min-width: 1280px) {
    .gnav {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        position: static;
        width: auto;
        height: auto;
        margin-left: auto;
        transform: translateX(0);
        background: none;
        padding: 0;
    }

    .gnav-list {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 0;
        margin: 0;
    }

    .gnav-list li:not(:last-child) {
        display: flex;
        align-items: center;
    }

    .gnav-list li:not(:last-child)::after {
        content: "/";
        display: inline-block;
        color: #fff;
        font-weight: 400;
        line-height: 1;
    }

    .gnav-list li a {
        line-height: 1.2;
        padding: 0;
        color: #fff;
        font-weight: 400;
        letter-spacing: .02em;
        text-shadow: 0 1px 6px rgba(0, 0, 0, .22);
        white-space: nowrap;
    }

    .gnav-list li:last-child a {
        border-right: none;
    }
}

@media screen and (min-width: 1280px) {
    .gnav-list li a {
        font-size: 1.3rem;
    }

    .gnav-list li:not(:last-child)::after {
        margin: 0 1rem;
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 1600px) {
    .gnav-list li a {
        font-size: 1.5rem;
    }

    .gnav-list li:not(:last-child)::after {
        margin: 0 1.4rem;
        font-size: 1.5rem;
    }
}

@media screen and (min-width: 1920px) {
    .gnav-list li a {
        font-size: 1.6rem;
    }

    .gnav-list li:not(:last-child)::after {
        margin: 0 2.0rem;
        font-size: 1.6rem;
    }
}

.header-widget {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.0rem;
    margin-left: 1.2rem;
    flex-direction: column;
}

.header-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.6rem;
    padding: .4rem 1.2rem;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .02em;
    border: 1px solid #fff;
    border-radius: 999px;
    text-shadow: none;
    white-space: nowrap;
    min-width: 150px;
    height: 30px;
    cursor: pointer;
}

.header-btn a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.header-btn:hover a {
    color: #192f60;
}

.header-btn:hover {
    color: #192f60;
    background-color: #fff;
    opacity: 1;
}

@media screen and (min-width: 1280px) {
    .header-widget {
        gap: 10px;
        margin-left: 1.6rem;
        flex-direction: row;
    }

    .header-btn {
        min-width: 9.6rem;
        min-height: 2.8rem;
        padding: .4rem 1.4rem;
        font-size: 1.3rem;
    }
}

@media screen and (min-width: 1600px) {
    .header-widget {
        gap: 1.6rem;
        margin-left: 2.0rem;
    }

    .header-btn {
        min-width: 11.0rem;
        min-height: 3.0rem;
        padding: .4rem 1.8rem;
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 991px) {
    .header-widget {
        gap: 2rem;
        margin-left: 0;
    }

    .header-btn {
        min-width: 150px;
        height: 30px;
        min-height: 2.8rem;
        padding: .4rem 1.4rem;
        font-size: 1.6rem;
    }
}

.gnav-list li.menu-item-has-children {
    position: relative;
}

.gnav-list li.menu-item-has-children>a {
    position: relative;
}

.gnav-list .sub-menu {
    display: none;
    margin: 0;
    padding: 0;
}

@media screen and (min-width: 1280px) {
    .gnav-list li.menu-item-has-children:hover>.sub-menu {
        display: block;
    }

    .gnav-list .sub-menu {
        position: absolute;
        left: 50%;
        top: calc(100% + 18px);
        z-index: 200;
        width: 230px;
        padding: 14px 0;
        background-color: #fff;
        transform: translateX(-50%);
        border-radius: 16px;
    }

    .gnav-list .sub-menu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 100%;
        height: 18px;
    }

    .gnav-list .sub-menu li {
        display: block;
        width: 100%;
    }

    .gnav-list .sub-menu li::after {
        content: none !important;
    }

    .gnav-list .sub-menu li a {
        display: block;
        padding: 11px 18px;
        color: #000;
        font-size: 1.3rem;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: .04em;
        text-align: left;
        white-space: normal;
        text-shadow: none;
    }

    .gnav-list .sub-menu li a:hover {
        /* background-color: rgba(255, 255, 255, .12); */
        opacity: 0.6;
    }
}

@media screen and (max-width: 1279px) {
    .gnav-list .sub-menu {
        display: block;
        padding: 0 0 8px;
    }

    .gnav-list .sub-menu li a {
        padding: .6em 1em;
        font-size: 1.3rem;
        opacity: .82;
    }
}

/*
ハンバーガーメニュー
===========================*/
.hamburger-wrap {
    z-index: 102;
    position: fixed;
    top: 15px;
    right: 18px;
    align-items: center;
    justify-content: center;
}

.hamburger {
    width: 40px;
    height: 22px;
    border: 0;
    background-color: transparent;
    color: transparent;
    font-size: 0;
    cursor: pointer;
    position: relative;
}

.hamburger:focus {
    outline: none;
}

.hamburger span {
    display: inline-block;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 25px;
    height: 2px;
    background-color: #fff;
    border-radius: 4px;
    transition: all .3s;
    filter: drop-shadow(2px 1px 2px #aaa);
}

.hamburger span:nth-of-type(1) {
    top: 0;
}

.hamburger span:nth-of-type(2) {
    top: 10px;
}

.hamburger span:nth-of-type(3) {
    bottom: 0;
}

.hamburger.active span:nth-of-type(1) {
    transform: translateY(10px) rotate(-45deg);
}

.hamburger.active span:nth-of-type(2) {
    opacity: 0;
    animation: active-bar02 .5s forwards;
}

@keyframes active-bar02 {
    100% {
        height: 0;
    }
}

.hamburger.active span:nth-of-type(3) {
    transform: translateY(-10px) rotate(45deg);
}

@media screen and (min-width: 1280px) {
    .hamburger {
        display: none;
    }
}

/*==========================

フッター

===========================*/
.footer {
    color: #192f60;
    background-color: #f5f5f2;
    background-image: url(img/bg-footer-concrete.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    padding: 120px 0 0;
    margin-top: 0;
}

.footer a {
    color: #192f60;
}

.footer a:hover {
    opacity: 0.7;
}

.footer-inner {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 20px;
}

.footer-brand {
    text-align: center;
    margin-bottom: 60px;
}

.footer-logo {
    width: 328px;
    margin: 0 auto 20px;
    line-height: 1;
}

.footer-logo img {
    width: 100%;
    height: auto;
}

.footer-name-jp {
    color: #192f60;
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: .08em;
    line-height: 1.4;
}

.footer-name-en {
    margin-top: 6px;
    color: #192f60;
    font-size: 1.4rem;
    font-weight: 300;
    letter-spacing: .14em;
    line-height: 1.4;
}

.footer-nav-wrap {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 24px;
    padding: 0 0 70px;
    border-top: none;
    text-align: left;
}

.footer-nav-col+.footer-nav-col {
    border-left: none;
    padding-left: 0;
}

.footer-nav-list+.footer-nav-list {
    margin-top: 0;
}

.footer-nav-list li {
    padding: 9px 0;
    line-height: 1.55;
    text-align: left;
    border-bottom: 1px dashed #808080;
}

.footer-nav-list li:first-child {
    border-bottom: 2px solid #808080;
}

.footer-nav-list.solid-line li {
    border-bottom: 2px solid #808080 !important;
}


.footer-nav-list li a {
    display: inline-block;
    color: #333;
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: .02em;
    text-align: left;
}

.footer-nav-list li.footer-nav-head a {
    font-size: 1.3rem;
    font-weight: 500;
}

.footer-nav-list li:not(.footer-nav-head) a {
    color: #333;
    font-size: 1.3rem;
    font-weight: 500;
    padding-left: 0;
    position: relative;
}

.footer-nav-list li:not(.footer-nav-head) a::before {
    content: none;
}

.footer-copy {
    padding: 4px 20px;
    color: #fff;
    background-color: #192f60;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1.4;
    border-top: none;
    height: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width: 991px) {
    .footer-nav-wrap {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }

    .footer-nav-col+.footer-nav-col {
        border-left: none;
        padding-left: 0;
    }
}

@media screen and (max-width: 767px) {
    .footer {
        padding: 60px 0 0;
    }

    .footer-brand {
        margin-bottom: 36px;
    }

    .footer-logo {
        width: 210px;
    }

    .footer-name-jp {
        font-size: 1.8rem;
    }

    .footer-name-en {
        font-size: 1.2rem;
    }

    .footer-nav-wrap {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 15px;
        padding: 0 0 40px;
    }

    .footer-nav-list li.footer-nav-head a,
    .footer-nav-list li a,
    .footer-nav-list li:not(.footer-nav-head) a {
        font-size: 1.2rem;
    }

    .footer-copy {
        font-size: 1.1rem;
    }
}

.footer-nav-en {
    margin-top: 54px;
    padding-bottom: 70px;
}

.footer-nav-en ul {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
}

.footer-nav-en li {
    display: flex;
    align-items: center;
    color: #333;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .02em;
}

.footer-nav-en li+li::before {
    content: "/";
    display: inline-block;
    margin: 0 22px;
    color: #333;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1;
}

.footer-nav-en a {
    color: #333;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    white-space: nowrap;
}

.footer-nav-en a:hover {
    opacity: .6;
}

@media screen and (max-width: 991px) {
    .footer-nav-en {
        margin-top: 44px;
        padding-bottom: 56px;
    }

    .footer-nav-en li {
        font-size: 1.3rem;
    }

    .footer-nav-en li+li::before {
        margin: 0 14px;
        font-size: 1.3rem;
    }
}

@media screen and (max-width: 767px) {
    .footer-nav-en {
        margin-top: 34px;
        padding-bottom: 44px;
    }

    .footer-nav-en ul {
        display: block;
        text-align: center;
    }

    .footer-nav-en li {
        display: block;
        font-size: 1.3rem;
        text-align: center;
    }

    .footer-nav-en li+li {
        margin-top: 12px;
    }

    .footer-nav-en li+li::before {
        content: none;
    }
}

/*==========================

404

===========================*/
main .error404 {
    text-align: center;
    line-height: 2;
    padding: 250px 20px 100px;
}

main .error404 a {
    padding-top: 1em;
    display: inline-block;
    text-decoration: underline;
}

/*==========================

お問い合わせ

===========================*/
/* フォーム部 */
.contact-en .lower-section {
    padding-top: 100px;
    padding-bottom: 100px;
}

.mw_wp_form_input {
    padding-bottom: 100px;
}

.assess-form {
    width: 100%;
    max-width: 900px;
    margin: 50px auto 50px;
    padding: 50px 50px 10px;
    background-color: #fFF;
    text-align: left;
}

.cancel .assess-form {
    margin: 0 auto 50px;
    padding-top: 20px;
}

h2.check {
    display: none;
}

.contact-head {
    text-align: center;
    padding-top: 150px;
    font-size: 2rem;
    line-height: 1.75;
    color: #000000;
}

@media screen and (max-width: 767px) {
    .contact-head {
        font-size: 1.6rem;
        padding-top: 80px;
    }
}

@media screen and (max-width: 567px) {
    .assess-form {
        width: 100%;
        margin: 30px auto;
        padding: 20px 20px 1px;
    }
}

/* テーブル共通
------------------------------*/
.assess-form table.mw-form {
    width: 100%;
    max-width: 800px;
    height: auto;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
    margin: 0 auto 35px;
    font-size: 16px;
}

.assess-form table.mw-form th {
    width: 250px;
    text-align: left;
    padding: 15px 5px 10px 10px;
    color: #000;
}

.assess-form table.mw-form td {
    width: 75%;
    padding: 10px 0;
}

.assess-form table.mw-form th,
.assess-form table.mw-form td {
    vertical-align: top;
    margin: 0;
}

.assess-form table.mw-form th .ttl {
    display: inline-block;
}

.assess-form table.mw-form th p.txt {
    text-align: left;
    font-size: 13px;
    font-weight: normal;
    background-color: transparent;
    margin: 0;
}

.horizontal-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.address-group .horizontal-flex {
    flex-direction: column;
}

.mw-form-horizontal-item {
    display: flex;
    text-align: left;
    margin-bottom: 5px;
}

.mw-form-horizontal-item .ttl {
    min-width: 2em;
    display: inline-block;
    font-size: 14px;
    line-height: 2;
    text-align: left;
    padding-right: 10px;
    color: #999999;
}

.mw-form-horizontal-item .address-ttl {
    min-width: 2em;
    font-size: 14px;
    line-height: 1.25;
    text-align: left;
    padding-right: 10px;
    color: #999999;
    display: flex;
    align-items: center;
}

.mw-form-horizontal-item select {
    width: 200px;
    height: 30px;
    line-height: 30px;
    padding: 0 50px 0 10px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url(img/select_arrow.svg), #fff;
    background-repeat: no-repeat;
    background-size: 21px;
    background-position: right 10px center;
    color: #4D4D4D;
    border: 1px #e5e5e5 solid;
    min-height: 41px;
    font-size: 16px;
}

select::-ms-expand {
    display: none;
}

.address-group .horizontal100 {
    width: 100%;
}

.address-group .mw-form-horizontal-item {
    margin-bottom: 1em;
}

.style1-group .mw-form-horizontal-item {
    margin-bottom: 5px;
}

.small {
    font-size: 0.8em;
}

.mw-form-horizontal p {
    line-height: 1.5;
}

@media screen and (max-width: 767px) {
    .style1-group .mw-form-horizontal-item {
        margin-bottom: 1em;
    }

    .mw-form-horizontal-item.bank {
        display: block;
        margin-bottom: 1em;
    }
}

/* 必須
------------------------------*/
.assess-form table.mw-form th span.required,
.assess-form table.mw-form th span.option {
    font-size: 12px;
    display: inline-block;
    padding: 0 0 0 0.5em;
    border-radius: 20px;
    letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {

    .assess-form table.mw-form th span.required,
    .assess-form table.mw-form th span.option {
        color: #fff;
        font-size: 11px;
        display: inline-block;
        margin-left: 7px;
        margin-top: 2px;
        padding: 0 0.7em;
        line-height: 1.5;
        vertical-align: text-top;
        letter-spacing: 0;
    }
}

.assess-form table.mw-form th span.required {
    color: #c0272d;
}

.assess-form table.mw-form th span.option {
    background: #D1D1D1;
    color: #fff;
    display: none;
}

/* 見出し
------------------------------*/
.assess-form h2.mwform-ttl {
    width: 100%;
    color: #ffffff;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    line-height: 1.5;
    background: #000000;
    padding: .8em;
    margin: 0 0 20px;
}

.assess-form h3 {
    color: #000000 !important;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    margin: 50px 0 20px;
}

/* ラジオボタン・チェックボックス
------------------------------*/
.assess-form table.mw-form .horizontal-item {
    margin: 0 35px 0 0;
}

.assess-form .horizontal-item label {
    display: inline;
}

.mwform-checkbox-field {
    display: block;
}

.mwform-checkbox-field-text {
    color: #000;
}

.property .horizontal-item {
    margin: 0;
    line-height: 2;
    text-align: left;
}

/* テキストボックス
------------------------------*/
.assess-form table.mw-form input[type="text"],
.assess-form table.mw-form textarea {
    max-width: 100%;
    color: #4D4D4D;
    border: none;
    border-radius: 0;
    padding: 3px 10px;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
}

.assess-form table.mw-form textarea.message {
    height: 150px;
    line-height: 1.7;
    padding: 10px 15px;
    vertical-align: top;
    font-size: 16px;
    border: 1px #e5e5e5 solid;
}

.assess-form table.mw-form input[type="text"] {
    width: 150px;
    font-size: 16px;
    line-height: 1.6;
    border: 1px #e5e5e5 solid;
    min-height: 41px;
}

.assess-form table.mw-form input[type="text"]::placeholder {
    font-size: 12px;
    color: #b2b2b2;
}

/* input長さ調整
------------------------------*/
.assess-form table.mw-form input.long,
.assess-form table.mw-form textarea {
    width: 100%;
}

.assess-form table.mw-form input.short {
    max-width: 200px;
    width: 100%;
}

.assess-form table.mw-form input.tel {
    width: 250px;
}

.assess-form table.mw-form input.mail {
    width: 80%;
}

@media screen and (max-width: 767px) {
    .assess-form table.mw-form input.mid {
        width: 75%;
    }
}

/* セレクトボックス
------------------------------*/
.assess-form table.mw-form .select {
    overflow: hidden;
    width: 38%;
    position: relative;
    display: inline-table;
    z-index: 0;
}

@media screen and (max-width: 767px) {
    .assess-form table.mw-form .select {
        width: 75%;
    }
}

.assess-form table.mw-form p {
    font-size: 14px;
    padding-top: 7px;
    margin-bottom: 0;
    letter-spacing: 0.05em;
}

.assess-form table.mw-form .select select::-ms-expand {
    display: none;
}

.assess-form table.mw-form .select::before {
    font-family: "Font Awesome 5 Free";
    content: "";
    font-weight: bold;
    position: absolute;
    top: 1em;
    right: 1em;
    z-index: 1;
}

.assess-form table.mw-form .select select {
    width: 100%;
    padding-right: 1em;
    cursor: pointer;
    text-indent: 0.01px;
    text-overflow: ellipsis;
    outline: none;
    background: transparent;
    background-image: none;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
    padding: 10px 40px 10px 10px;
    border: 1px solid #707070;
    border-radius: 0;
    background-color: #fff;
}

/* 同意
------------------------------*/
.assess-form .agreement {
    margin: 0 0 1.5em;
    letter-spacing: 0.05em;
}

.agreement .property {
    display: flex;
    color: #000;
}

.assess-form table.mw-form .agreement .horizontal-item {
    margin: 0 5px 0 0;
}

.assess-form .agreement a {
    text-decoration: underline;
    padding-right: 7px;
}

.assess-form .agreement a:hover {
    opacity: 0.6;
}

/* 送信ボタン
------------------------------*/
.submit-btn {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    margin: 0;
    padding: 0;
    /* margin-bottom: 100px; */
}

.submit-btn input[type="submit"] {
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    border: none;
    display: table;
    margin: 0;
    border-radius: 100px;
    width: 170px;
    height: 50px;
    line-height: 30px;
    outline: none;
    transition: 0.3s;
    cursor: pointer;
    background: #192f60;
    appearance: none;
    -webkit-appearance: none;
}

.mw_wp_form_confirm .assess-form .submit-btn input:first-of-type {
    background: #aaa;
    color: #fff;
}

.assess-form .submit-btn input[type="submit"]:hover {
    filter: brightness(110%);
    transition: 0.3s;
}

.mw_wp_form .error {
    font-size: 1.1rem !important;
    color: #B70000 !important;
    display: flex !important;
    line-height: 1;
    align-items: center;
    padding: 5px;
}

/* 送信完了画面
------------------------------*/
.success {
    padding: 50px 0 70px;
    text-align: center;
    font-size: 18px;
    color: #000;
    line-height: 2;
}

.success a {
    width: 220px;
}

@media screen and (max-width: 767px) {
    .assess-form table.mw-form {
        max-width: 100%;
        margin: 0 auto 30px;
    }

    .assess-form table.mw-form input[type="text"],
    .assess-form table.mw-form textarea {
        font-size: 16px;
        margin-bottom: 1em;
    }

    .assess-form table.mw-form .bank input[type="text"] {
        margin-bottom: 0;
    }

    .assess-form table.mw-form .select select {
        font-size: 16px;
    }

    .assess-form table.mw-form tr {
        width: 100%;
        display: block;
        list-style-type: none;
    }

    .assess-form table.mw-form th {
        padding: 15px 0 0;
    }

    .assess-form table.mw-form td {
        padding: 10px 0;
        border: 0;
        background-color: transparent;
    }

    .assess-form table.mw-form th,
    .assess-form table.mw-form td {
        width: 100%;
        display: list-item;
        box-sizing: border-box;
        text-align: left;
    }

    .assess-form .pp {
        height: 200px;
        margin: 0 auto 25px;
        padding: 1em 1em 0;
        overflow-y: scroll;
    }

    .assess-form .agreement {
        margin: 0 0 15px;
        font-size: 14px;
    }
}

@media screen and (max-width: 480px) {
    .assess-form table.mw-form .property {
        display: block;
    }

    .assess-form table.mw-form .property span.mwform-radio-field.horizontal-item,
    .assess-form table.mw-form span.mwform-radio-field.horizontal-item {
        width: auto;
        display: block;
        margin: 0;
    }

    .assess-form table.mw-form .unit {
        margin: 0;
    }

    .assess-form table.mw-form .unit span.mwform-radio-field.horizontal-item {
        display: inline;
        margin-right: 20px;
    }

    .contact .thank {
        padding-top: 0;
        color: #504E4E;
        background: url(img/mail.png);
        background-size: 60px;
        background-repeat: no-repeat;
        background-position: top center;
    }

    .contact .thank h2 {
        padding-top: 2.4em;
        color: #2e2e2e !important;
        font-size: 28px;
        margin: 0;
    }

    .assess-form table.mw-form .horizontal-item {
        margin: 0 17px 0 0;
    }

    .mwform-checkbox-field input,
    .mwform-radio-field input {
        margin-right: 2px !important;
    }
}

/*==========================

共通スタイル

===========================*/
/*
ボタン類
===========================*/
.c-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    min-height: 60px;
    padding: 5px;
    color: #192f60;
    font-weight: 400;
    line-height: 1;
    background-color: #fff;
    border-radius: 999px;
    position: relative;
}

.c-more-btn::after {
    content: "";
    position: absolute;
    right: 5px;
    top: 50%;
    width: 50px;
    height: 50px;
    background-image: url("img/icon-arrow-circle.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: translateY(-50%);
}

.c-more-btn::before {
    content: none;
}

.c-more-btn:hover {
    opacity: .8;
}

.main-btn {
    width: 350px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    color: #fff;
    font-size: 2.2rem;
    border: 1px solid;
    text-indent: 1em;
}

.main-btn::before {
    content: "";
    width: 20px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 20px;
    margin: auto;
}

.main-btn.turn::before {
    background-color: #fff;
}

.main-btn:hover {
    opacity: 0.6;
}

/*
下層ページタイトル
===========================*/
.page-kv {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    padding-top: 60px;
    color: #fff;
    background-image: url(img/bg-page-kv.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    text-align: center;
}

.page-kv::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(38, 128, 34, .2);
    pointer-events: none;
}

.page-kv h1 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 382px;
    min-height: 130px;
    margin: 0 auto;
    padding: 12px 50px 48px;
    color: #fff;
    font-size: 4.0rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .08em;
    text-align: center;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .22);
    word-break: keep-all;
    overflow-wrap: anywhere;
    position: relative;
    z-index: 2;
}

.en .page-kv h1 {
    padding: 10px 50px;
}

.page-kv h1::before,
.page-kv h1::after {
    content: "";
    position: absolute;
    top: 0;
    width: 30px;
    height: 130px;
    pointer-events: none;
}

/*

.page-kv h1::before {
    left: 0;
    border-top: 2px solid rgba(255, 255, 255, .86);
    border-bottom: 2px solid rgba(255, 255, 255, .86);
    border-left: 2px solid rgba(255, 255, 255, .86);
}

.page-kv h1::after {
    right: 0;
    border-top: 2px solid rgba(255, 255, 255, .86);
    border-bottom: 2px solid rgba(255, 255, 255, .86);
    border-right: 2px solid rgba(255, 255, 255, .86);
}

*/

.page-kv p {
    display: block;
    width: fit-content;
    min-width: 382px;
    max-width: calc(100% - 80px);
    margin: -44px auto 0;
    padding: 0 20px;
    color: #fff;
    font-size: 2.0rem;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: .08em;
    text-align: center;
    text-transform: uppercase;
    opacity: .92;
    position: relative;
    z-index: 2;
}

@media screen and (min-width: 768px) {
    .page-kv {
        height: 320px;
        padding-top: 80px;
    }

    .page-kv h1 {
        font-size: clamp(3.4rem, 3.2vw, 4rem);
    }

    .page-kv p {
        font-size: 2.0rem;
    }
}

@media screen and (max-width: 767px) {
    .page-kv {
        min-height: 250px;
        padding-top: 30px;
        background-position: center;
        --page-kv-sp-frame-width: min(382px, calc(100vw - 40px));
    }

    .page-kv::before {
        background: rgba(38, 128, 34, .42);
    }

    .page-kv h1 {
        width: var(--page-kv-sp-frame-width);
        min-width: 0;
        max-width: 100%;
        min-height: 130px;
        padding: 14px 20px 46px;
        font-size: clamp(2.2rem, 7vw, 2.8rem);
        letter-spacing: .06em;
    }

    .page-kv p {
        width: var(--page-kv-sp-frame-width);
        min-width: 0;
        max-width: 100%;
        margin-top: -42px;
        padding: 0 20px;
        font-size: 1.3rem;
        letter-spacing: .08em;
    }
}

/*==========================

施工実績アーカイブ

===========================*/
.works-archive {
    padding: 120px 0;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.works-archive-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.works-archive-item {
    overflow: hidden;
}

.works-archive-item.is-hidden {
    display: none;
}

.works-archive-img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: #fff;
}

.works-archive-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.works-archive-img:hover img {
    transform: scale(1.04);
}

.works-archive-more {
    margin-top: 100px;
    text-align: center;
    text-indent: 1em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    min-height: 60px;
    padding: 5px;
    color: #192f60;
    font-weight: 400;
    line-height: 1;
    background-color: #fff;
    border-radius: 999px;
    position: relative;
    font-size: 2rem;
    cursor: pointer;
    width: fit-content;
    padding: 0 2em;
    line-height: 1.25;
}

.works-archive-more::after {
    content: none;
}

.works-archive-more::before {
    content: "";
    width: 15px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 17px;
    margin: auto;
}

.works-more-btn {
    border: none;
    cursor: pointer;
    appearance: none;
}

.works-modal {
    display: none;
    align-items: center;
    justify-content: center;
    position: fixed;
    inset: 0;
    z-index: 1000;
    padding: 40px;
    background-color: rgba(0, 0, 0, .82);
}

.works-modal.is-active {
    display: flex;
}

.works-modal-inner {
    max-width: min(1100px, 100%);
    max-height: 90vh;
    position: relative;
}

.works-modal-inner img {
    display: block;
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
}

.works-modal-inner img.is-slide-next {
    animation: worksSlideNext .28s ease;
}

.works-modal-inner img.is-slide-prev {
    animation: worksSlidePrev .28s ease;
}

@keyframes worksSlideNext {
    0% {
        opacity: .35;
        transform: translateX(24px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes worksSlidePrev {
    0% {
        opacity: .35;
        transform: translateX(-24px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.works-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 45px;
    height: 45px;
    color: #fff;
    font-size: 3.2rem;
    line-height: 1;
    border: none;
    background-color: transparent;
    cursor: pointer;
}

.works-modal-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 72px;
    color: #fff;
    font-size: 0;
    border: none;
    background-color: transparent;
    cursor: pointer;
    opacity: .55;
    transform: translateY(-50%);
}

.works-modal-nav::before {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    border-top: 2px solid rgba(255, 255, 255, .92);
    border-left: 2px solid rgba(255, 255, 255, .92);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .65));
}

.works-modal-prev {
    left: 10px;
}

.works-modal-prev::before {
    transform: rotate(-45deg) translate(2px, 2px);
}

.works-modal-next {
    right: 10px;
}

.works-modal-next::before {
    transform: rotate(135deg) translate(2px, 2px);
}

.works-modal-nav:hover {
    opacity: .9;
}

@media screen and (max-width: 991px) {
    .works-archive {
        padding: 90px 0;
    }

    .works-archive-list {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }
}

@media screen and (max-width: 767px) {
    .works-archive {
        padding: 60px 0;
    }

    .works-archive-list {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .works-archive-more {
        margin-top: 40px;
        font-size: 1.6rem;
        width: 280px;
    }

    .works-modal {
        padding: 20px;
    }

    .works-modal-close {
        top: 10px;
        right: 10px;
        width: 40px;
        height: 40px;
        font-size: 2.8rem;
    }

    .works-modal-nav {
        width: 38px;
        height: 64px;
    }

    .works-modal-nav::before {
        width: 15px;
        height: 15px;
    }

    .works-modal-prev {
        left: 4px;
    }

    .works-modal-next {
        right: 4px;
    }
}

/*==========================

ページネーション

===========================*/
.screen-reader-text {
    display: none;
}

.nav-links {
    display: flex;
    justify-content: center;
    margin: 20px auto 60px;
    color: #474A4D;
}

.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 1.6rem;
    position: relative;
    margin: 5px;
}

.page-numbers.current {
    box-sizing: border-box;
    color: #fff;
}

a.page-numbers:hover {
    opacity: 0.7;
}

.page-numbers.prev,
.page-numbers.next {
    border: none;
}


.page-numbers.next::after {
    transform: rotate(225deg);
}

@media screen and (min-width: 768px) {
    .nav-links {
        margin: 40px auto 120px;
    }
}

/*==========================

トップページ

===========================*/
/*
メインビジュアル
===========================*/
.top-mv {
    position: relative;
    width: 100vw;
    aspect-ratio: 16 / 9;
    height: auto;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow: hidden;
    background-color: #192f60;
}

.top-mv--video {
    aspect-ratio: auto;
}

.top-mv-video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    background-color: #192f60;
}

@media screen and (max-width: 767px) {
    .top-mv {
        aspect-ratio: 16 / 9;
        height: auto;
        min-height: 0;
    }

    .top-mv-video {
        object-fit: contain;
        object-position: center center;
    }
}

@keyframes topMvFade {
    0% {
        opacity: 0;
    }

    8% {
        opacity: 1;
    }

    50% {
        opacity: 1;
    }

    58% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

/*
NEWS
===========================*/
.top-news {
    padding: 120px 0 120px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.top-news .wrap {
    max-width: 1560px;
    padding: 0 30px;
}

.top-news-box {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 90px;
    max-width: 1500px;
    min-height: 650px;
    margin: 0 auto;
    padding: 100px 120px 100px 170px;
    color: #fff;
    background-color: #192f60;
    position: relative;
    overflow: hidden;
}

.top-news-box::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, .045);
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    pointer-events: none;
}

.top-news-head,
.top-news-list {
    position: relative;
    z-index: 1;
}

.top-news-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.top-news-title {
    order: 1;
    width: 300px;
    padding-bottom: 20px;
    color: #fff;
    font-size: 10.0rem;
    line-height: .9;
    letter-spacing: .02em;
}

.top-news-label {
    display: block;
    margin-bottom: 50px;
    color: #fff;
    font-weight: 400;
    letter-spacing: .08em;
    order: 2;
}

.top-news-label::after {
    content: none;
}

.top-news-more {
    order: 3;
}

.top-news-list {
    width: 100%;
}

.top-news-item {
    border-top: 1px solid rgba(255, 255, 255, .28);
}

.top-news-item:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, .28);
}

.top-news-item a {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 56px;
    align-items: center;
    min-height: 98px;
    padding: 18px 0;
}

.top-news-item time {
    color: #fff;
    font-weight: 400;
    letter-spacing: .04em;
    text-align: left;
}

.top-news-item span {
    color: #fff;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
}

@media screen and (max-width: 1500px) {
    .top-news .wrap {
        max-width: 1260px;
    }

    .top-news-box {
        grid-template-columns: 300px 1fr;
        gap: 60px;
        min-height: 520px;
        padding: 80px 90px;
    }

    .top-news-title {
        width: fit-content;
        padding-bottom: 10px;
        font-size: 7.0rem;
    }

    .top-news-label {
        font-size: 1.6rem;
    }

    .top-news-item a {
        grid-template-columns: 150px 1fr;
        gap: 34px;
        min-height: 74px;
        padding: 14px 0;
    }

    .top-news-item time,
    .top-news-item span {
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 991px) {
    .c-more-btn {
        width: 190px;
        min-height: 40px;
        padding: 5px 45px 5px 20px;
        font-size: 1.5rem;
    }

    .c-more-btn::after {
        right: 4px;
        width: 32px;
        height: 32px;
    }

    .top-news {
        padding: 80px 0;
    }

    .top-news .wrap {
        padding: 0 30px;
    }

    .top-news-box {
        grid-template-columns: 240px 1fr;
        gap: 40px;
        min-height: 440px;
        padding: 60px 50px;
    }

    .top-news-title {
        font-size: 5.4rem;
    }

    .top-news-item a {
        grid-template-columns: 120px 1fr;
        gap: 20px;
    }
}

@media screen and (max-width: 767px) {
    .top-news {
        padding: 60px 0;
    }

    .top-news .wrap {
        padding: 0 20px;
    }

    .top-news-box {
        display: block;
        min-height: 0;
        padding: 50px 30px;
    }

    .top-news-title {
        padding-bottom: 10px;
        font-size: 5.0rem;
        border-bottom-width: 3px;
        width: fit-content;
    }

    .top-news-label {
        margin-bottom: 20px;
        font-size: 1.4rem;
    }

    .c-more-btn {
        width: 170px;
        min-height: 40px;
        font-size: 1.3rem;
    }

    .top-news-list {
        margin-top: 36px;
    }

    .top-news-item a {
        display: block;
        min-height: 0;
        padding: 16px 0;
    }

    .top-news-item time {
        display: block;
        margin-bottom: 6px;
        font-size: 1.3rem;
    }

    .top-news-item span {
        display: block;
        font-size: 1.4rem;
        line-height: 1.6;
    }
}

/*
METHOD
===========================*/
.top-method {
    padding: 120px 0 140px;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: top center;
    position: relative;
    overflow: hidden;
}

.top-method .wrap {
    max-width: 1260px;
}

.top-method-lead-title {
    margin-top: 50px;
    color: #fff;
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: .04em;
}

.top-method-lead-text {
    margin-top: 28px;
    color: #fff;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: .04em;
}

.top-method-gp {
    display: flex;
    align-items: center;
    margin-top: 100px;
    color: #192f60;
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.top-method-gp-img {
    align-self: stretch;
    /* position: absolute; */
    z-index: 2;
    width: calc(100vw - 360px);
    top: 0;
    bottom: 0;
    margin: auto;
    overflow: hidden;
}

.top-method-gp-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: transform .3s;
    /* object-position: 0; */
}

.top-method-gp-img:hover img {
    transform: scale(1.04);
}

.top-method-gp-body {
    padding: 40px 0 70px;
    margin-left: 90px;
    text-align: left;
    width: 100%;
    max-width: 600px;
    margin-top: 0px;
}

.top-method-gp-body:before {
    content: "01";
    color: #b2b2b2;
    font-size: 100px;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "游明朝", YuMincho, "Yu Mincho", serif;
    line-height: 1.25;
}

.top-method-gp-label {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #192f60;
    font-size: 15.0rem;
    font-weight: 500;
    font-style: normal;
    line-height: .9;
    letter-spacing: .02em;
}

.en .top-method-gp-label {
    text-indent: -0.05em
}

.top-method-gp-number {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    margin-top: 6px;
    color: #b2b2b2;
    font-size: 2.8rem;
    font-weight: 300;
    letter-spacing: .04em;
}

.home .top-method-gp-number {
    text-indent: 0.25em;
}

.top-method-gp-title {
    margin-top: 15px;
    color: #192f60;
    font-size: 5.0rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: .04em;
}

.top-method-gp-text {
    margin-top: 20px;
    color: #192f60;
    font-size: 2.0rem;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .03em;
    border-top: 1px solid;
    padding-top: 20px;
}

.top-method-gp-more {
    margin-top: 34px;
}

.top-method-detail {
    margin-top: 150px;
    text-align: center;
}

.top-method-detail-title {
    color: #fff;
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .04em;
}

.top-method-detail-text {
    margin-top: 24px;
    color: #fff;
    font-size: 2.5rem;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: .04em;
}

.top-method-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 52px;
}

.top-method-card {
    min-height: 330px;
    padding: 0 12px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.top-method-card-num {
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "游明朝", YuMincho, "Yu Mincho", serif;
    color: #475980;
    font-size: 8rem;
    font-weight: 200;

    line-height: 1;
}

.top-method-card-title {
    margin-top: 14px;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: .03em;
}

.top-method-card-text {
    margin-top: 18px;
    color: #fff;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: .02em;
    text-align: left;
    margin-bottom: 50px;
    border-top: 1px solid #fff;
    padding-top: 25px;
}

.top-method-card-link.c-more-btn {
    width: 240px;
    min-height: 60px;
    margin-top: auto;
    padding: 5px 35px 5px 15px;
    color: #192f60;
    background-color: #fff;
    text-indent: -3em;
}

.top-method-card-link.c-more-btn::after {
    width: 54px;
    height: 54px;
    right: 4px;
}

.top-method-head {
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 54px;
}

.top-method-title {
    order: 1;
    min-width: 420px;
    padding-bottom: 15px;
    color: #fff;
    font-size: clamp(6.4rem, 7.2vw, 10.0rem);
    font-weight: 200;
    line-height: .9;
    text-align: right;
    position: relative;
}

.cp-message .top-method-title {
    font-size: clamp(2.6rem, 7.2vw, 6.5rem);
}

.reverse .top-method-title {
    color: #192f60;
    text-align: left;
}

.top-method-title::after {
    content: "";
    position: absolute;
    bottom: -3px;
    margin: auto;
    background-color: #fff;
    width: 100vw;
    height: 1px;
    right: 9px;
}

.reverse .top-method-title::after {
    background-color: #192f60;
    left: 0;
}

.top-method-label {
    margin-bottom: 14px;
    letter-spacing: .08em;
    order: 2;
    margin: 20px 0 0;
    color: #fff;
    font-weight: 300;
    line-height: 1.5;
    text-align: right;
    padding-right: 7px;
}

.company-profile-page .top-method-label {
    color: #192f60;
}

.reverse .top-method-label {
    color: #192f60;
    text-align: left;
}

.company-profile-page .top-method-title {
    color: #192f60;
}

.company-profile-page .top-method-title::after {
    background-color: #192f60;
}

.top-method-card {
    position: relative;
}

.top-method-card:not(:first-child)::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -10px;
    width: 1px;
    background-color: rgba(255, 255, 255, .65);
    pointer-events: none;
}

@media screen and (max-width: 1300px) {
    .top-method-card-text {
        margin-bottom: 30px;
    }

    .top-method {
        padding: 80px 0 90px;
    }

    .top-method-title {
        font-size: 6.0rem;
    }

    .top-method-lead-title {
        margin-top: 34px;
        font-size: 2.8rem;
    }

    .top-method-lead-text {
        font-size: 1.6rem;
    }

    .top-method-gp {
        display: block;
        margin-top: 70px;
        padding: 0 0 40px;
    }

    .top-method-gp-img {
        margin: auto;
        position: relative;
        width: 100%;
    }

    .top-method-gp-body {
        padding: 40px 40px 60px;
        margin: auto;
        width: 100%;
    }

    .top-method-gp-title {
        font-size: 2.4rem;
    }

    .top-method-detail {
        margin-top: 70px;
    }

    .top-method-detail-title {
        font-size: 2.7rem;
    }

    .top-method-detail-text {
        font-size: 1.6rem;
    }

    .top-method-list {
        grid-template-columns: repeat(2, 1fr);
        margin-top: 42px;
        gap: 100px 20px;
    }

    .top-method-card::before,
    .top-method-card:not(:first-child)::before,
    .top-method-card:nth-child(even)::before {
        content: none;
        display: none;
    }
}

@media screen and (max-width: 991px) {
    .top-method-card-link.c-more-btn {
        width: 190px;
        min-height: 40px;
        padding: 5px 45px 5px 20px;
        font-size: 1.5rem;
    }

    .top-method-card-link.c-more-btn::after {
        right: 4px;
        width: 32px;
        height: 32px;
    }

    .top-method-head {
        margin-bottom: 42px;
    }

    .top-method-title {
        min-width: 320px;
        padding-bottom: 14px;
        font-size: 6.0rem;
    }

    .top-method-label {
        margin-top: 14px;
        font-size: 1.4rem;
    }

    .top-method-card::before,
    .top-method-card:not(:first-child)::before {
        content: none;
    }

    .top-method-card:nth-child(even)::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: -8px;
        width: 1px;
        background-color: rgba(255, 255, 255, .65);
        pointer-events: none;
    }
}

@media screen and (max-width: 767px) {
    .top-method {
        padding: 60px 0 50px;
        background-size: auto 360px;
    }

    .top-method .wrap {
        padding: 0 20px;
    }

    .top-method-lead-title {
        margin-top: 30px;
        font-size: 2.3rem;
        line-height: 1.55;
    }

    .top-method-lead-text {
        margin-top: 18px;
        font-size: 1.4rem;
        line-height: 1.9;
    }

    .top-method-gp {
        margin-top: 50px;
        padding: 0 0 30px;
    }

    .top-method-gp-body {
        padding: 25px 25px 50px;
    }

    .top-method-gp-label {
        font-size: 6rem;
    }

    .top-method-gp-body:before {
        font-size: 4rem;
    }

    .top-method-gp-number {
        font-size: 1.2rem;
    }

    .top-method-gp-title {
        margin-top: 18px;
        font-size: 2.4rem;
    }

    .top-method-gp-text {
        margin-top: 16px;
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .top-method-gp-more {
        margin-top: 28px;
    }

    .top-method-detail {
        margin-top: 54px;
    }

    .top-method-detail-title {
        font-size: 2.2rem;
        line-height: 1.5;
    }

    .top-method-detail-text {
        margin-top: 18px;
        font-size: 1.4rem;
        line-height: 1.9;
    }

    .top-method-list {
        display: block;
        margin-top: 34px;
    }

    .top-method-card {
        min-height: 0;
        padding: 28px 24px;
    }

    .top-method-card+.top-method-card {
        margin-top: 10px;
    }

    .top-method-card-num {
        font-size: 3.5rem;
    }

    .top-method-card-title {
        margin-top: 10px;
        font-size: 2.0rem;
    }

    .top-method-card-text {
        font-size: 1.4rem;
        padding-top: 20px;
        margin-top: 15px;
        margin-bottom: 25px;
    }

    .top-method-card-link {
        padding-top: 0;
    }

    .top-method-head {
        margin-bottom: 34px;
    }

    .top-method-title {
        min-width: 220px;
        padding-bottom: 12px;
        font-size: 5rem;
    }

    .top-method-label {
        margin-bottom: 10px;
        margin-top: 12px;
    }

    .top-method-card::before,
    .top-method-card:not(:first-child)::before,
    .top-method-card:nth-child(even)::before {
        content: none;
    }
}

.outcast {
    transform: translateX(calc(-50% + 40px));
}

.outcast.reverse {
    transform: translateX(calc(50% - 40px));
    margin-bottom: 70px;
}

@media screen and (max-width: 1300px) {
    .lower-section--paper {
        margin: auto !important;
    }
}

/*
WORKS
===========================*/
.top-works {
    padding: 120px 0 120px;
    color: #192f60;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    position: relative;
}

.top-works .wrap {
    max-width: 1260px;
}

.top-works-head {
    text-align: center;
    position: relative;
    margin-bottom: 60px;
}

.top-works-head::before,
.top-works-head::after {
    content: "";
    position: absolute;
    top: 78px;
    width: calc(50% - 200px);
    height: 1px;
    background-color: rgba(25, 47, 96, .35);
}

.top-works-head::before {
    left: 0;
}

.top-works-head::after {
    right: 0;
}

.top-works-label {
    margin-bottom: 14px;
    color: #192f60;
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: .08em;
}

.top-works-title {
    color: #192f60;
    font-size: 10.0rem;
    line-height: .9;
}

.top-works-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 26px;
    margin-bottom: 60px;
}

.top-works-card {
    color: #192f60;
}

.top-works-card-date {
    display: block;
    color: #4a5778;
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: .04em;
    margin-bottom: 4px;
}

.top-works-card-title {
    color: #192f60;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: .03em;
}

.top-works-foot {
    text-align: center;
}

@media screen and (max-width: 991px) {
    .top-works {
        padding: 90px 0;
    }

    .top-works-head::before,
    .top-works-head::after {
        top: 52px;
        width: 30%;
    }

    .top-works-title {
        font-size: 6.0rem;
    }

    .top-works-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media screen and (max-width: 767px) {
    .top-works {
        padding: 60px 0 70px;
    }

    .top-works .wrap {
        padding: 0 20px;
    }

    .top-works-head {
        margin-bottom: 40px;
    }

    .top-works-head::before,
    .top-works-head::after {
        display: none;
    }

    .top-works-label {
        margin-bottom: 10px;
        font-size: 1.4rem;
    }

    .top-works-title {
        font-size: 5.0rem;
    }

    .top-works-list {
        gap: 20px;
        margin-bottom: 40px;
    }

    .top-works-card-title {
        font-size: 1.4rem;
    }
}

.top-works-card-img {
    width: 100%;
    aspect-ratio: 1/1;
    height: auto;
    overflow: visible;
    background-color: transparent;
}

.top-works-card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/*
ABOUT
===========================*/
.top-about {
    position: relative;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
    overflow: hidden;
    padding: 120px 0 140px;
}

.top-about-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: stretch;
    min-height: 760px;
}

.top-about-body {
    position: relative;
    z-index: 1;
    padding: 60px 0 100px;
}

.top-about-head {
    position: relative;
    margin-bottom: 48px;
}

.top-about-title {
    display: block;
    color: #fff;
    font-size: 10.0rem;
    line-height: .9;
    letter-spacing: .02em;
    padding-bottom: 24px;
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, .55);
}

.top-about-label {
    color: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    letter-spacing: .08em;
    margin-bottom: 0;
}

.top-about-catch {
    color: #fff;
    font-size: 10.0rem;
    font-style: normal;
    line-height: 1.05;
    letter-spacing: .01em;
    font-family: "Helvetica Black", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
}

.top-about-catch-jp {
    margin-top: 18px;
    color: #fff;
    font-size: 4.5rem;
    font-weight: 400;
    letter-spacing: .06em;
    line-height: 1.3;
    white-space: nowrap;
}

@media screen and (max-width: 991px) {
    .top-about-catch-jp {
        white-space: normal;
    }

    .top-about {
        padding: 60px 0 40px;
    }
}

.top-about-text {
    margin-top: 32px;
    color: #fff;
    font-size: 2.0rem;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .04em;
}

.top-about-more {
    margin-top: 40px;
    color: #192f60;
    background-color: #fff;
}

.top-about-imgs {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 50px;
}

.top-about-img {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.top-about-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width: 1260px) {
    .top-about-body {
        padding-left: 40px;
        padding-right: 60px;
    }
}

@media screen and (max-width: 991px) {
    .top-about-inner {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .top-about-body {
        padding: 80px 40px 60px;
    }

    .top-about-title {
        font-size: 7.0rem;
        padding-bottom: 18px;
        margin-bottom: 14px;
    }

    .top-about-catch {
        font-size: 5.6rem;
    }

    .top-about-imgs {
        padding: 0 0 80px;
    }

    .top-about-img01,
    .top-about-img02 {
        margin: 0 20px;
    }
}

@media screen and (max-width: 767px) {
    .top-about-body {
        padding: 60px 20px 50px;
    }

    .top-about-head {
        margin-bottom: 36px;
    }

    .top-about-label {
        font-size: 1.3rem;
    }

    .top-about-title {
        font-size: 5.4rem;
        padding-bottom: 14px;
        margin-bottom: 10px;
    }

    .top-about-catch {
        font-size: 4.4rem;
    }

    .top-about-catch-jp {
        font-size: 1.6rem;
    }

    .top-about-text {
        margin-top: 24px;
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .top-about-more {
        margin-top: 30px;
    }

    .top-about-imgs {
        gap: 14px;
        padding: 0 0 40px;
    }

    .top-about-img01,
    .top-about-img02 {
        margin: 0 16px;
    }
}

/*==========================

下層共通スタイル

===========================*/
.lower-page {
    overflow: hidden;
}

.lower-section {
    position: relative;
}

.lower-section--paper {
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    width: 100%;
}

.home .lower-section--paper,
.page-id-356 .lower-section--paper {
    margin-top: 50px;
    margin-bottom: 50px;
}

.lower-section--blue {
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center top;
}

.lower-section--triangle {
    position: relative;
    overflow: hidden;
}

.lower-section--triangle::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(255, 255, 255, .3);
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    pointer-events: none;
}

.lower-section--triangle>* {
    position: relative;
    z-index: 2;
}

.lower-section--triangle-reverse {
    position: relative;
    overflow: hidden;
}

.lower-section--triangle-reverse::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(255, 255, 255, .3);
    clip-path: polygon(0 0, 100% 100%, 0 100%);
    pointer-events: none;
}

.lower-section--triangle-reverse>* {
    position: relative;
    z-index: 2;
}

.lower-heading {
    text-align: center;
}

.lower-heading-en {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

    font-weight: 200;
    letter-spacing: .04em;
}

.lower-heading-label {
    font-weight: 500;
    letter-spacing: .06em;
}

.lower-body,
.lower-body p,
.lower-body li,
.lower-body dt,
.lower-body dd {
    text-align: left;
}

.lower-body p+p {
    margin-top: 1.2em;
}

.lower-2col {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 60px;
    align-items: start;
}

.lower-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

@media screen and (max-width: 991px) {
    .lower-2col {
        gap: 42px;
    }
}

@media screen and (max-width: 767px) {
    .lower-2col {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

.hami .flex {
    display: flex;
}

.hami .img-box {
    margin-left: calc((100% - 100vw) / 2);
    margin-right: calc((100% - 100vw) / 2);
    width: 46vw;
}

.hami .img-box img {
    object-fit: cover;
    font-family: "object-fit: cover;";
    height: 100%;
    width: 100%;
    max-height: 800px;
    margin-top: 10px;
}

.hami .txt-box {
    margin-left: auto;
    width: 600px;
    color: #000;
    text-align: left;
    line-height: 1.8;
}

.hami.ture .img-box {
    margin-left: calc((100% - 100vw) / 2);
    margin-right: calc((100% - 100vw) / 2);
    width: 46vw;
}

.hami.ture .img-box img {
    margin-top: 10px;
}

.hami.ture .txt-box {
    margin-left: 0;
    margin-right: auto;
    width: 600px;
    color: #fff;
}

@media screen and (max-width: 1200px) {
    .hami .img-box {
        width: 40vw;
    }

    .hami.ture .img-box {
        width: 40vw;
    }

    .hami .txt-box {
        width: 52vw;
    }

    .hami.ture .txt-box {
        width: 52vw;
    }
}

@media screen and (max-width: 991px) {
    .hami .flex {
        display: block;
    }

    .hami.ture .flex {
        display: flex;
        flex-direction: column-reverse;
    }

    .hami .img-box,
    .hami.ture .img-box {
        margin: auto;
        width: 100%;
    }

    .hami .txt-box,
    .hami.ture .txt-box {
        margin: 25px auto 0;
        width: 100%;
    }

    .hami .txt-box {
        margin-left: auto;
        width: 100%;
        font-size: 1.4rem;
        color: #000;
        text-align: left;
        line-height: 2;
    }
}

/*==========================

会社案内

===========================*/
.company-profile-page .lower-section {
    padding: 120px 0;
}

.company-profile-page .lower-section--paper {
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.company-profile-page .lower-section--blue {
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.company-profile-page .lower-heading {
    margin-bottom: 44px;
    text-align: center;
}

.company-profile-page .lower-heading-en {
    color: inherit;
    font-size: 8.0rem;
    line-height: .95;
    letter-spacing: .02em;
}

.company-profile-page .lower-heading-label {
    margin-top: 18px;
    color: inherit;
    font-size: 3.0rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .06em;
}

.cp-message-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 70px;
    align-items: start;
}

.cp-message .lower-heading {
    text-align: left;
}

.cp-message-catch {
    margin-bottom: 36px;
    color: #192f60;
    font-size: 3.0rem;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: .05em;
    text-align: left;
}

.cp-message-body,
.cp-message-body p {
    text-align: left;
}

.cp-message-body p {
    color: #333;
    font-size: 1.6rem;
    line-height: 2.05;
    letter-spacing: .03em;
}

.cp-message-body p+p {
    margin-top: 1.2em;
}

.cp-message-photo {
    overflow: hidden;
    background-color: #fff;
}

.cp-message-photo img {
    display: block;
    width: 100%;
    height: auto;
}

.cp-message-name {
    margin-top: 18px;
    color: #333;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: .04em;
    text-align: right;
}

.cp-message-name span {
    font-weight: 500;
}

.cp-overview .lower-heading-en,
.cp-access .lower-heading-en {
    color: #fff;
}

.cp-overview .lower-heading-label,
.cp-access .lower-heading-label {
    color: #fff;
}

.cp-overview-table {
    width: 100%;
    border-collapse: collapse;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1.8;
    text-align: left;
}

.cp-overview-table tr {
    border-bottom: 1px solid rgba(255, 255, 255, .36);
}

.cp-overview-table tr:first-child {
    border-top: 1px solid rgba(255, 255, 255, .36);
}

.cp-overview-table th,
.cp-overview-table td {
    padding: 22px 0;
    vertical-align: top;
    text-align: left;
}

.cp-overview-table th {
    width: 220px;
    color: #fff;
    font-weight: 500;
    letter-spacing: .08em;
}

.cp-overview-table td {
    color: #fff;
    font-weight: 300;
    letter-spacing: .03em;
}

.cp-overview-table a {
    color: #fff;
    text-decoration: underline;
}

.cp-overview-btns {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 52px;
}

.cp-overview-btn {
    color: #192f60;
    background-color: #fff;
}

.cp-history-list {
    margin: 0 auto;
    position: relative;
}

.cp-history-item {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 36px;
    padding: 30px 0;
    border-bottom: 1px solid rgba(25, 47, 96, .25);
    text-align: left;
}

.cp-history-item:first-child {
    border-top: 1px solid rgba(25, 47, 96, .25);
}

.cp-history-year {
    color: #192f60;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 4.0rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .02em;
    text-align: left;
}

.cp-history-heading {
    color: #192f60;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: .04em;
    text-align: left;
}

.cp-history-text {
    margin-top: 8px;
    color: #333;
    font-size: 1.5rem;
    line-height: 1.9;
    letter-spacing: .03em;
    text-align: left;
}

.cp-access .lower-heading {
    margin-bottom: 34px;
}

.cp-access-map-list {
    width: 100%;
}

.cp-access-map {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #fff;
}

.cp-access-map iframe {
    display: block;
    width: 100%;
    height: 100%;
}

.cp-access-info {
    margin-top: 34px;
    color: #fff;
}

.cp-access-row {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .35);
    text-align: left;
}

.cp-access-row:first-child {
    border-top: 1px solid rgba(255, 255, 255, .35);
}

.cp-access-row dt,
.cp-access-row dd {
    color: #fff;
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .03em;
    text-align: left;
}

.cp-access-row dt {
    font-weight: 500;
}

@media screen and (max-width: 991px) {
    .company-profile-page .lower-section {
        padding: 85px 0;
    }

    .company-profile-page .lower-heading-en {
        font-size: 6.0rem;
    }

    .company-profile-page .lower-heading-label {
        font-size: 2.4rem;
    }

    .cp-message-grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .cp-message-photo-col {
        max-width: 420px;
        margin: 0 auto;
    }

    .cp-message .lower-heading {
        text-align: center;
    }

    .cp-message-catch {
        font-size: 2.4rem;
        text-align: center;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .lower-section {
        padding: 60px 0;
    }

    .company-profile-page .lower-heading {
        margin-bottom: 30px;
    }

    .company-profile-page .lower-heading-en {
        font-size: 4.4rem;
    }

    .company-profile-page .lower-heading-label {
        margin-top: 12px;
        font-size: 2.0rem;
    }

    .cp-message-catch {
        margin-bottom: 26px;
        font-size: 2.0rem;
        line-height: 1.7;
    }

    .cp-message-body p {
        line-height: 1.95;
    }

    .cp-message-name {
        font-size: 1.3rem;
    }

    .cp-message-name span {
        font-size: 1.7rem;
    }

    .cp-overview-table,
    .cp-overview-table tbody,
    .cp-overview-table tr,
    .cp-overview-table th,
    .cp-overview-table td {
        display: block;
        width: 100%;
    }

    .cp-overview-table th {
        padding: 18px 0 4px;
        font-size: 1.4rem;
    }

    .cp-overview-table td {
        padding: 0 0 18px;
        font-size: 1.4rem;
    }

    .cp-overview-btns {
        display: block;
        margin-top: 36px;
        text-align: center;
    }

    .cp-overview-btns .c-more-btn+.c-more-btn {
        margin-top: 14px;
    }

    .cp-history-item {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 24px 0;
    }

    .cp-history-year {
        font-size: 3.0rem;
    }

    .cp-history-heading {
        font-size: 1.5rem;
    }

    .cp-access-map {
        aspect-ratio: 4 / 3;
    }

    .cp-access-row {
        display: block;
    }

    .cp-access-row dd {
        margin-top: 4px;
    }
}

.company-profile-page .cp-message.lower-section--paper {
    position: relative;
    overflow: hidden;
    padding-bottom: 0;
}

.company-profile-page .cp-message.lower-section--paper::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(255, 255, 255, .3);
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    pointer-events: none;
}

.company-profile-page .cp-message.lower-section--paper>.wrap {
    position: relative;
    z-index: 2;
}

.company-profile-page .cp-message .wrap {
    max-width: 1260px;
}

.company-profile-page .cp-message-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    column-gap: 86px;
    row-gap: 34px;
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}

.company-profile-page .cp-message-grid> :first-child {
    display: contents;
}

.company-profile-page .cp-message .lower-heading {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    width: 100%;
    margin-bottom: 0;
    text-align: left;
    position: relative;
}

.company-profile-page .cp-message .lower-heading::after {
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    margin-top: 12px;
    background-color: #192f60;
}

.company-profile-page .cp-message .lower-heading-en {
    color: #192f60;
    font-size: 7.6rem;
    font-weight: 200;

    line-height: .9;
    letter-spacing: .08em;
}

.company-profile-page .cp-message .lower-heading-label {
    margin-top: 12px;
    color: #192f60;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .06em;
    text-align: right;
}

.company-profile-page .cp-message-catch {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    margin: 100px 0 0;
    color: #192f60;
    font-size: clamp(2.4rem, 3.2vw, 4.6rem);
    font-weight: 500;
    line-height: 1.62;
    text-align: left;
}

.company-profile-page .cp-message-body {
    grid-column: 1 / -1;
    grid-row: 3 / 4;
    margin-top: 18px;
    text-align: left;
    position: relative;
    top: -100px;
}

.company-profile-page .cp-message-body p {
    color: #333;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 2.05;
    letter-spacing: .04em;
    text-align: left;
}

.cp-message-body .flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cp-message-body .flex .txt-box {
    margin: 1.4em 0;
}

.cp-message-body .flex .img-box {
    min-width: 450px;
    margin-left: 40px;
}

@media screen and (max-width: 991px) {
    .cp-message-body .flex {
        display: block;
    }

    .cp-message-body .flex .img-box {
        min-width: auto;
        width: auto;
        margin-left: 0;
        margin: 1.4em 0;
    }
}

.company-profile-page .cp-message-body p+p {
    margin-top: 1.4em;
}

.company-profile-page .cp-message-photo-col {
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    width: 100%;
    max-width: 440px;
    margin: 0;
}

.company-profile-page .cp-message-photo {
    overflow: visible;
    background-color: transparent;
}

.company-profile-page .cp-message-photo img {
    display: block;
    width: 100%;
    height: auto;
}

.company-profile-page .cp-message-name span {
    font-weight: 500;
}

.company-profile-page .message-sec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    top: -150px;
}

@media screen and (max-width: 991px) {
    .company-profile-page .message-sec {
        flex-direction: column-reverse;
        top: 0;
    }

    .company-profile-page .cp-message .wrap {
        max-width: 720px;
    }

    .company-profile-page .cp-message-grid {
        display: block;
        max-width: 720px;
    }

    .company-profile-page .cp-message-grid> :first-child {
        display: block;
    }

    .company-profile-page .cp-message .lower-heading {
        text-align: left;
    }

    .company-profile-page .cp-message-catch {
        margin-top: 60px;
        font-size: 2.4rem;
        text-align: center;
    }

    .company-profile-page .cp-message-photo-col {
        /* max-width: 400px; */
        margin: 42px auto 0;
    }

    .company-profile-page .cp-message-body {
        margin-top: 42px;
        top: 0;
        margin-bottom: 60px;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-message .lower-heading-en {
        font-size: 4.4rem;
    }

    .company-profile-page .cp-message .lower-heading-label {
        margin-top: 10px;
        font-size: 1.3rem;
    }

    .company-profile-page .cp-message-catch {
        margin-top: 40px;
        font-size: 2.0rem;
        line-height: 1.7;
    }

    .company-profile-page .cp-message-body p {
        font-size: 1.4rem;
        line-height: 1.95;
    }

    .company-profile-page .cp-message-photo-col {
        max-width: 310px;
        margin-top: 32px;
    }

    .company-profile-page .cp-message-name span {
        font-size: 1.7rem;
    }
}

.company-profile-page .cp-message-photo-col {
    position: relative;
}

.company-profile-page .cp-message-name {
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: .04em;
    position: relative;
    z-index: 2;
    margin-top: -110px;
    text-align: center;
    color: #fff;
    font-size: 18px;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-message-name {
        /* margin-top: -70px; */
        font-size: 16px;
        text-align: center;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-message-name {
        font-size: 12px;
        margin-top: -80px;
    }
}

.company-profile-page .cp-overview {
    padding: 120px 0;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
    text-align: center;
}

.company-profile-page .philosophy-bg {
    background-size: cover;
}

.spacer {
    height: clamp(150px, 20vw, 300px);
}

.company-profile-page .cp-overview .wrap {
    max-width: 1160px;
}

.company-profile-page .cp-overview-philosophy {
    color: #fff;
    text-align: center;
}

.company-profile-page .cp-overview-philosophy-label {
    display: inline-block;
    width: 300px;
    padding-bottom: 20px;
    margin-bottom: 60px;
    color: #fff;
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .06em;
    border-bottom: 4px solid #fff;
}

.company-profile-page .cp-history .cp-overview-philosophy-label {
    color: #192f60;
    border-bottom: 4px solid #192f60;
}

.about-list dl {
    display: flex;
}

.about-list dt {
    width: 200px;
    border-bottom: 2px solid;
    margin-right: 50px;
    padding: 15px 0;
    font-size: 1.8rem;
    font-weight: 300;
}

.about-list dd {
    width: calc(100% - 250px);
    border-bottom: #475980 2px solid;
    padding: 15px 0;
    font-size: 1.7rem;
    font-weight: 300;
}

.about-list dd a {
    text-decoration: none !important;
}

@media screen and (max-width: 767px) {
    .about-list {
        padding-bottom: 50px;
    }

    .about-list dt {
        font-size: 1.4rem;
        width: 90px;
        margin-right: 10px;
    }

    .about-list dd {
        font-size: 1.4rem;
        width: calc(100% - 100px);
    }
}

.company-profile-page .cp-overview-philosophy-title {
    color: #fff;
    font-size: 4.8rem;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: .08em;
    text-align: center;
}

.company-profile-page .cp-overview .lower-heading {
    margin: 0;
    color: #fff;
    text-align: center;
}

.company-profile-page .cp-overview .lower-heading-label,
.company-profile-page .cp-overview-label {
    display: inline-block;
    min-width: 250px;
    padding-bottom: 24px;
    margin: 0;
    color: #fff;
    font-size: 2.0rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .06em;
    border-bottom: 4px solid #fff;
}

.company-profile-page .cp-overview-table {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    color: #fff;
    border-collapse: collapse;
    font-size: 1.6rem;
    line-height: 1.8;
    text-align: left;
}

.company-profile-page .cp-overview-table tr {
    border-bottom: 1px solid rgba(255, 255, 255, .36);
}

.company-profile-page .cp-overview-table tr:first-child {
    border-top: 1px solid rgba(255, 255, 255, .36);
}

.company-profile-page .cp-overview-table th,
.company-profile-page .cp-overview-table td {
    padding: 22px 0;
    color: #fff;
    vertical-align: top;
    text-align: left;
}

.company-profile-page .cp-overview-table th {
    width: 210px;
    padding-right: 44px;
    font-weight: 500;
    letter-spacing: .08em;
    white-space: nowrap;
}

.company-profile-page .cp-overview-table td {
    font-weight: 400;
    letter-spacing: .04em;
}

.company-profile-page .cp-overview-table a {
    color: #fff;
    text-decoration: underline;
}

.company-profile-page .cp-overview-btns {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-top: 80px;
}

.company-profile-page .cp-overview-btn {
    color: #192f60;
    background-color: #fff;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-overview {
        padding: 82px 0 95px;
    }

    .company-profile-page .cp-overview-philosophy-title {
        font-size: 3.6rem;
    }

    .company-profile-page .cp-overview-table th {
        width: 180px;
        padding-right: 30px;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-overview {
        padding: 64px 0 70px;
    }

    .company-profile-page .cp-overview-philosophy-label,
    .company-profile-page .cp-overview .lower-heading-label,
    .company-profile-page .cp-overview-label {
        min-width: 190px;
        padding-bottom: 16px;
        margin-bottom: 0;
        font-size: 2rem;
        border-bottom-width: 3px;
    }

    .company-profile-page .cp-overview-philosophy-label {
        margin-bottom: 38px;
    }

    .company-profile-page .cp-overview-philosophy-title {
        font-size: 2.6rem;
        line-height: 1.65;
        letter-spacing: .05em;
    }

    .company-profile-page .cp-overview .lower-heading {
        margin-bottom: 34px;
    }

    .company-profile-page .cp-overview-table,
    .company-profile-page .cp-overview-table tbody,
    .company-profile-page .cp-overview-table tr,
    .company-profile-page .cp-overview-table th,
    .company-profile-page .cp-overview-table td {
        display: block;
        width: 100%;
    }

    .company-profile-page .cp-overview-table th {
        padding: 18px 0 4px;
        font-size: 1.4rem;
        white-space: normal;
    }

    .company-profile-page .cp-overview-table td {
        padding: 0 0 18px;
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .company-profile-page .cp-overview-btns {
        margin-top: 36px;
        text-align: center;
        flex-direction: column;
        gap: 30px;
        align-items: center;
    }

    .main-btn {
        font-size: 1.8rem;
    }

    .company-profile-page .cp-overview-btns .c-more-btn+.c-more-btn {
        margin-top: 14px;
    }
}

.company-profile-page .cp-history {
    padding: 110px 0 120px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.company-profile-page .cp-history .wrap {
    max-width: 1160px;
}

.company-profile-page .cp-history .lower-heading {
    margin-bottom: 70px;
    color: #192f60;
    text-align: center;
}

.company-profile-page .cp-history .lower-heading-en {
    color: #192f60;
    font-size: 7.6rem;
    font-weight: 200;

    line-height: .9;
    letter-spacing: .08em;
}

.company-profile-page .cp-history .lower-heading-label {
    margin-top: 16px;
    color: #192f60;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .08em;
}

.company-profile-page .cp-history-list {
    margin: 0 auto;
    position: relative;
}

.company-profile-page .cp-history-list::before {
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    width: 1px;
    background-color: #192f60;
}

.company-profile-page .cp-history-item:first-child {
    border-top: none;
}

.company-profile-page .cp-history-item::before {
    content: "";
    grid-row: 1 / 2;
    justify-self: center;
    width: 16px;
    height: 16px;
    margin-top: 10px;
    background-color: #000;
    border-radius: 50%;
    position: relative;
    z-index: 2;
}

.company-profile-page .cp-history-heading {
    color: #000;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .05em;
    text-align: left;
}

.company-profile-page .cp-history-text {
    margin-top: 6px;
    color: #000;
    font-size: 1.8rem;
    font-weight: 300;
    line-height: 1.9;
    letter-spacing: .05em;
    text-align: left;
}

.company-profile-page .cp-history-heading br,
.company-profile-page .cp-history-text br {
    display: block;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-history {
        padding: 85px 0 95px;
    }

    .company-profile-page .cp-history .wrap {
        max-width: 760px;
    }

    .company-profile-page .cp-history-list {
        max-width: 720px;
    }

    .company-profile-page .cp-history-item {
        padding-bottom: 38px;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-history {
        padding: 64px 0 70px;
    }

    .company-profile-page .cp-history .lower-heading {
        margin-bottom: 44px;
    }

    .company-profile-page .cp-history .lower-heading-en {
        font-size: 4.4rem;
    }

    .company-profile-page .cp-history .lower-heading-label {
        margin-top: 10px;
        font-size: 1.3rem;
    }

    .company-profile-page .cp-history-list {
        max-width: 100%;
    }

    .company-profile-page .cp-history-list::before {
        top: 10px;
        bottom: 12px;
    }

    .company-profile-page .cp-history-item {
        padding-bottom: 30px;
    }

    .company-profile-page .cp-history-item::before {
        width: 12px;
        height: 12px;
        margin-top: 8px;
    }

    .company-profile-page .cp-history-year {
        letter-spacing: .04em;
    }

    .company-profile-page .cp-history-heading,
    .company-profile-page .cp-history-text {
        font-size: 1.3rem;
        line-height: 1.75;
        letter-spacing: .03em;
    }
}

.company-profile-page .cp-history-list::before {
    left: 195px;
}

.company-profile-page .cp-history-item {
    display: grid;
    padding: 0 0 42px;
    border: none;
    text-align: left;
    position: relative;
    grid-template-columns: 130px 72px 110px minmax(0, 1fr);
    align-items: start;
    padding-bottom: 42px;
    gap: 30px;
}

.company-profile-page .cp-history-item::before {
    grid-column: 2 / 3;
}

.company-profile-page .cp-history-era {
    grid-column: 3 / 4;
    grid-row: 1 / 2;
    padding-top: 2px;
    color: #000;
    font-size: 1.88rem;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .05em;
    text-align: left;
    white-space: nowrap;
}

.company-profile-page .cp-history-body {
    grid-column: 4 / 5;
    grid-row: 1 / 2;
    padding-top: 2px;
}

.company-profile-page .cp-history-heading {
    margin: 0;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-history-list::before {
        left: 146px;
    }

    .company-profile-page .cp-history-item {
        grid-template-columns: 85px 62px 95px minmax(0, 1fr);
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-history-list::before {
        left: 99px;
    }

    .company-profile-page .cp-history-item {
        grid-template-columns: 70px 0px minmax(0, 1fr);
        row-gap: 4px;
    }

    .company-profile-page .cp-history-era {
        grid-column: 3 / 4;
        grid-row: 1 / 2;
        font-size: 1.3rem;
        line-height: 1.75;
        letter-spacing: .03em;
        padding-top: 4px;
    }

    .company-profile-page .cp-history-body {
        grid-column: 3 / 4;
        grid-row: 2 / 3;
        padding-top: 0;
    }
}

/* 沿革：西暦スタイル調整 */
.company-profile-page .cp-history-year {
    grid-row: 1 / 2;
    text-align: left;
    grid-column: 1 / 2;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    color: #000;
    font-size: 5.8rem;
    font-weight: 200;
    line-height: 1;
    letter-spacing: 0;

    position: relative;
    top: -10px;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-history-year {
        font-size: 4rem;
        top: 0;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-history-year {
        font-size: 3.0rem;
    }
}

.company-profile-page .cp-access .lower-heading {
    margin-bottom: 0;
    color: #fff;
    text-align: center;
}

.company-profile-page .cp-access .cp-access-title {
    color: transparent;
    font-size: 0;
    line-height: 1;
    position: relative;
}

.company-profile-page .cp-access .cp-access-title::before {
    content: "ACCESS";
    display: block;
    color: #fff;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 7.6rem;
    font-weight: 200;

    line-height: .9;
    letter-spacing: .08em;
}

.company-profile-page .cp-access .cp-access-title::after {
    content: "アクセス";
    display: block;
    width: 250px;
    padding-bottom: 22px;
    margin: 16px auto 0;
    color: #fff;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
    font-size: 1.6rem;
    font-weight: 500;
    font-style: normal;
    line-height: 1.5;
    letter-spacing: .08em;
    border-bottom: 4px solid #fff;
}

.company-profile-page .cp-access-map {
    aspect-ratio: 16 / 6.2;
}

.company-profile-page .cp-access-info {
    margin-top: 22px;
    color: #fff;
}

.company-profile-page .cp-access-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    padding: 0;
    border-bottom: none;
    text-align: left;
}

.company-profile-page .cp-access-row+.cp-access-row {
    margin-top: 8px;
}

.company-profile-page .cp-access-row:first-child {
    border-top: none;
}

.company-profile-page .cp-access-row dt,
.company-profile-page .cp-access-row dd {
    color: #fff;
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .04em;
    text-align: left;
}

@media screen and (max-width: 991px) {
    .company-profile-page .cp-access .cp-access-title::before {
        font-size: 6.0rem;
    }

    .company-profile-page .cp-access-map {
        aspect-ratio: 16 / 7.2;
    }
}

@media screen and (max-width: 767px) {
    .company-profile-page .cp-access .cp-access-title::before {
        font-size: 4.4rem;
    }

    .company-profile-page .cp-access .cp-access-title::after {
        width: 190px;
        padding-bottom: 16px;
        margin-top: 10px;
        font-size: 1.3rem;
        border-bottom-width: 3px;
    }

    .company-profile-page .cp-access-map {
        aspect-ratio: 4 / 3;
    }

    .company-profile-page .cp-access-row {
        display: block;
    }

    .company-profile-page .cp-access-row dt,
    .company-profile-page .cp-access-row dd {
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .company-profile-page .cp-access-row dd {
        margin-top: 2px;
    }
}

.c-more-btn--navy {
    color: #fff;
    background-color: #192f60;
}

.c-more-btn--navy::after {
    background-image: url("img/icon-arrow-circle-navy.svg");
}

/*==========================

書籍紹介

===========================*/
.books-page .lower-section {
    padding: 120px 0;
}

/* ヒストリー */
.books-history {
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.books-history .wrap {
    max-width: 1260px;
}

.books-history-main {
    margin: 0 auto 70px;
}

.books-history-main img {
    display: block;
    width: 100%;
    height: auto;
}

.books-history-heading {
    margin: 0 auto 30px;
    text-align: center;
}

.books-history-heading h2 {
    padding: 4px 10px;
    color: #fff;
    background-color: #192f60;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.5;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.books-history-heading p {
    margin-top: 30px;
    color: #333;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: .04em;
}

.books-history-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 80px;
    margin: 0 auto;
}

.books-history-item {
    text-align: left;
}

.books-history-item img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.books-history-item figcaption {
    margin-top: 15px;
    color: #222;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .03em;
    text-align: left;
}

.books-history-item--center {
    grid-column: 1 / -1;
    width: 50%;
    margin: 0 auto;
}

/* 掲載書籍 */
.books-archive {
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.books-archive-heading {
    margin-bottom: 60px;
    text-align: center;
}

.books-archive-heading h2 {
    display: inline-block;
    width: 250px;
    padding-bottom: 18px;
    color: #fff;
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .08em;
    border-bottom: 3px solid #fff;
}

.books-list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 40px 60px;
}

.books-item {
    color: #fff;
    text-align: left;
}

.books-item a {
    display: block;
    color: #fff;
}

.books-title {
    color: #fff;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: .03em;
    text-align: left;
}

.books-pagination {
    margin-top: 56px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .35);
    text-align: center;
}

.books-pagination ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.books-pagination li {
    color: #fff;
    font-size: 1.2rem;
    line-height: 1;
}

.books-pagination a,
.books-pagination span {
    color: #fff;
}

.books-pagination .current {
    font-weight: 500;
}

.books-empty {
    color: #fff;
    text-align: center;
    font-size: 1.5rem;
}

@media screen and (max-width: 991px) {

    .books-history .wrap,
    .books-archive .wrap {
        max-width: 760px;
    }

    .books-list {
        grid-template-columns: repeat(4, 1fr);
        gap: 30px 28px;
    }

    .books-history-heading h2 {
        font-size: 2rem;
    }

    .books-history-heading p {
        font-size: 1.6rem;
    }

    .books-history-item figcaption {
        font-size: 1.4rem;
    }
}

@media screen and (max-width: 767px) {
    .books-page .lower-section {
        padding: 60px 0;
    }

    .books-history-main,
    .books-history-heading,
    .books-history-list {
        max-width: 100%;
    }

    .books-history-list {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .books-history-item--center {
        width: 100%;
    }

    .books-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 28px 20px;
    }

    .books-archive-heading h2 {
        width: 190px;
        padding-bottom: 14px;
        font-size: 1.4rem;
    }

    .books-title {
        font-size: 1.2rem;
    }
}

.books-modal-trigger {
    background: transparent;
}

.books-item,
.books-thumb,
.books-title {
    background: transparent;
}

.books-thumb {
    width: 100%;
    margin-bottom: 10px;
    background-color: rgba(255, 255, 255, .08);
    border: none;
    box-shadow: none;
}

.books-thumb img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    display: block;
    background: transparent;
}

/*==========================

関連リンク

===========================*/
.links-page {
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.links-section {
    padding: 110px 0 120px;
}

.links-body {
    text-align: left;
}

.links-group-title {
    padding-bottom: 12px;
    margin-bottom: 14px;
    color: #000;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
}

.links-org-list {
    margin-bottom: 34px;
}

.links-org-list li {
    color: #000;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.85;
    letter-spacing: .04em;
}

.links-org-list a,
.links-member-list a,
.links-member-site a {
    color: #000;
}

.links-org-list a:hover,
.links-member-list a:hover,
.links-member-site a:hover {
    opacity: .7;
}

.links-member-site {
    margin: 0 0 44px;
}

.links-member-site p,
.links-member-site span {
    display: block;
    padding: 9px 18px;
    color: #fff;
    background-color: #192f60;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .06em;
    text-align: left;
}

.links-area-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px 72px;
}

.links-area-block {
    text-align: left;
}

.links-area-title {
    padding-bottom: 10px;
    margin-bottom: 12px;
    color: #000;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
    border-bottom: 1px solid rgba(0, 0, 0, .35);
}

.links-member-list li {
    color: #000;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: .04em;
}

.links-member-list a {
    display: inline-block;
    position: relative;
}

.links-member-list a::after,
.links-org-list a::after,
.links-member-site a::after {
    content: "";
    display: inline-block;
    width: .72em;
    height: .72em;
    margin-left: .35em;
    background-image: url(img/icon-blank.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    vertical-align: -0.02em;
}

@media screen and (max-width: 991px) {
    .links-section {
        padding: 85px 0 95px;
    }

    .links-section .wrap {
        max-width: 760px;
    }

    .links-area-grid {
        gap: 32px 48px;
    }
}

@media screen and (max-width: 767px) {
    .links-section {
        padding: 60px 0 70px;
    }

    .links-group-title,
    .links-area-title {
        font-size: 1.3rem;
    }

    .links-org-list li,
    .links-member-list li {
        font-size: 1.3rem;
        line-height: 1.85;
    }

    .links-member-site {
        margin-bottom: 34px;
    }

    .links-member-site p,
    .links-member-site span {
        font-size: 1.8rem;
    }

    .links-member-site a,
    .links-member-site span {
        padding: 8px 14px;
        font-size: 1.3rem;
    }

    .links-area-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* 関連リンク：左寄せ・リンク下線調整 */
.links-group-title,
.links-org-list,
.links-org-list li,
.links-area-title,
.links-member-list,
.links-member-list li,
.links-member-site,
.links-member-site a,
.links-member-site span {
    text-align: left;
}

.links-group-title {
    border-bottom: 1px solid #808080;
}

.links-org-list a,
.links-member-list a,
.links-member-site a {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

.links-org-list span,
.links-member-list span {
    text-decoration: none;
}

/* 関連リンク：社名左寄せ・リンク下線調整 */
.links-page .links-org-list li,
.links-page .links-member-list li {
    text-align: left;
}

.links-page .links-org-list li a,
.links-page .links-org-list li span,
.links-page .links-member-list li a,
.links-page .links-member-list li span {
    display: inline;
    text-align: left;
    font-weight: 400;
}

.links-page .links-org-list li a,
.links-page .links-member-list li a {
    color: inherit;
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.links-page .links-org-list li span,
.links-page .links-member-list li span {
    text-decoration: none;
}

/* 関連リンク：実クラス名に合わせた調整 */
.links-page .links-org,
.links-page .links-member-site,
.links-page .links-area,
.links-page .links-area-title,
.links-page .links-area-list,
.links-page .links-area-list li {
    text-align: left;
}

.links-page .links-area-list li {
    color: #000;
    font-size: 1.8rem;
    line-height: 1.9;
    letter-spacing: .04em;
}

.links-page .links-area-list li a,
.links-page .links-area-list li span,
.links-page .links-text-link {
    display: inline;
    color: inherit;
    text-align: left;
}

.links-page .links-text-link,
.links-page .links-area-list li a,
.links-page .links-org a {
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.links-page .links-area-list li span {
    text-decoration: none;
}

.links-page .links-area-title {
    padding-bottom: 10px;
    margin-bottom: 12px;
    color: #000;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
    border-bottom: 1px solid #808080;
}

@media screen and (max-width: 767px) {

    .links-page .links-area-title,
    .links-page .links-area-list li {
        font-size: 1.4rem;
    }
}

/* 関連リンク：社名ウェイト調整 */
.links-page .links-org-list li,
.links-page .links-org-list li a,
.links-page .links-org-list li span,
.links-page .links-area-list li,
.links-page .links-area-list li a,
.links-page .links-area-list li span,
.links-page .links-text-link {
    font-weight: 400;
}

/*==========================

工法の概要と従来工法との比較

===========================*/
.comparison-page .lower-section {
    padding: 92px 0 110px;
}

.comparison-page .lower-section--paper,
.comparison-overview {
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.comparison-page .lower-section--blue,
.comparison-method {
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.comparison-heading {
    margin-bottom: 70px;
    color: #192f60;
    text-align: center;
}

.comparison-heading h2 {
    display: inline-block;
    width: fit-content;
    padding-bottom: 30px;
    color: #192f60;
    font-size: 4rem;
    font-weight: 500;
    line-height: 1.5;
    border-bottom: 2px solid #192f60;
}

.comparison-heading--white h2 {
    color: #fff;
    border-bottom-color: #fff;
}

.comparison-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 460px;
    gap: 56px;
    align-items: start;
}

.comparison-overview-images {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.comparison-overview-img {
    overflow: hidden;
}

.comparison-overview-img img,
.comparison-method-img img,
.comparison-section-img img {
    display: block;
    width: 100%;
    height: auto;
}

.comparison-overview-img--main {
    width: 100%;
}

.comparison-overview-img--sub {
    margin: -26px 0 0 auto;
    position: relative;
    z-index: 2;
}

.comparison-overview-body,
.comparison-method-body {
    text-align: left;
}

.comparison-overview-body p,
.comparison-method-body p {
    color: #000;
    font-size: 1.8rem;
    font-weight: 300;
    line-height: 2.05;
    text-align: left;
}

.comparison-overview-body .comparison-note {
    color: #192f60;
    font-size: 1.3rem;
    line-height: 1.8;
}

.comparison-method {
    padding-top: 88px;
    padding-bottom: 105px;
}

.comparison-method-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 520px;
    gap: 58px;
    align-items: start;
}

.comparison-method-body p {
    color: #fff;
}

.comparison-feature {
    margin-top: 1.1em;
    text-align: left;
}

.comparison-feature li {
    color: #fff;
    font-size: 2.2rem;
    line-height: 1.9;
    text-align: left;
    font-weight: 500;
}

.comparison-feature ul {
    margin: .4em 0;
}

.comparison-method-images {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.comparison-method-img {
    overflow: hidden;
}

.comparison-method-img--main {
    width: 100%;
}

.comparison-method-img--sub {
    width: 72%;
    margin-top: 18px;
    margin-right: 6%;
}

.comparison-section-img {
    max-width: 950px;
    margin: 70px auto 0;
    padding: 20px 26px 24px;
}

@media screen and (max-width: 991px) {
    .comparison-page .lower-section {
        padding: 80px 0 90px;
    }

    .comparison-page .wrap {
        max-width: 760px;
    }

    .comparison-overview-grid,
    .comparison-method-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .comparison-overview-images,
    .comparison-method-images {
        max-width: 640px;
        margin: 0 auto;
    }

    .comparison-method-images {
        align-items: center;
    }

    .comparison-method-img--sub {
        margin-right: 0;
    }
}

@media screen and (max-width: 767px) {
    .comparison-page .lower-section {
        padding: 60px 0 70px;
    }

    .comparison-heading {
        margin-bottom: 34px;
    }

    .comparison-heading h2 {
        padding-bottom: 14px;
        font-size: 2rem;
        width: fit-content;
    }

    .comparison-overview-grid,
    .comparison-method-grid {
        gap: 30px;
    }

    .comparison-overview-body p,
    .comparison-method-body p,
    .comparison-feature p,
    .comparison-feature li {
        font-size: 1.3rem;
        line-height: 1.9;
    }

    .comparison-method-img--sub {
        width: 78%;
        margin-top: 14px;
    }

    .comparison-section-img {
        margin-top: 44px;
        padding: 12px;
    }
}

/* 比較ページ：写真重なり・注入断面枠・仕様書リンク調整 */
.comparison-overview-img--sub {
    width: 62%;
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;
}

.comparison-section-img {
    border: none;
}

.comparison-note a {
    color: #192f60;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 2.2;
}

@media screen and (max-width: 767px) {
    .comparison-overview-img--sub {
        width: 70%;
        margin-top: 18px;
    }
}

.comparison-injection {
    max-width: 950px;
    margin: 72px auto 0;
    padding: 40px 70px 42px;
    background-color: #fff;
    position: relative;
}

.comparison-injection::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
    background-color: #192f60;
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.comparison-injection-title {
    position: relative;
    margin: 0 0 32px;
    padding-bottom: 12px;
    color: #192f60;
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: .04em;
    text-align: center;
}

.comparison-injection-title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 200px;
    height: 5px;
    background-color: #192f60;
    transform: translateX(-50%);
}

.comparison-injection-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 25px;
    align-items: start;
    margin: 0 auto;
}

.comparison-injection-item {
    margin: 0;
    text-align: center;
}

.comparison-injection-item img {
    display: block;
    width: 100%;
    height: auto;
}

.comparison-injection-conclusion {
    max-width: 900px;
    margin: 25px auto 0;
    padding: 10px 24px;
    color: #192f60;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .04em;
    text-align: center;
    border: 3px solid #192f60;
}

@media screen and (max-width: 991px) {
    .comparison-injection {
        margin-top: 58px;
        padding: 36px 40px 40px;
    }

    .comparison-injection-title {
        font-size: 2.6rem;
    }

    .comparison-injection-list {
        gap: 20px;
    }

    .comparison-injection-conclusion {
        font-size: 2.2rem;
    }
}

@media screen and (max-width: 767px) {
    .comparison-injection {
        margin-top: 42px;
        padding: 34px 20px 30px;
    }

    .comparison-injection::before {
        width: 30px;
        height: 30px;
    }

    .comparison-injection-title {
        margin-bottom: 24px;
        font-size: 2.0rem;
    }

    .comparison-injection-title::after {
        width: 90px;
        height: 3px;
    }

    .comparison-injection-list {
        grid-template-columns: 1fr;
        gap: 18px;
        max-width: 360px;
    }

    .comparison-injection-conclusion {
        margin-top: 26px;
        padding: 10px 14px;
        font-size: 1.6rem;
        line-height: 1.6;
        border-width: 2px;
    }

    .comparison-injection-item:nth-child(1) {
        order: 1;
    }

    .comparison-injection-item:nth-child(2) {
        order: 3;
    }

    .comparison-injection-item:nth-child(3) {
        order: 2;
    }
}

.comparison-note {
    margin: 1.25em auto;
}

@media screen and (max-width: 991px) {
    .comparison-note a {
        font-size: 1.4rem;
    }
}

/*==========================

プライバシーポリシー

===========================*/
.privacy-page .privacy-section {
    padding: 110px 0 120px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.privacy-body {
    color: #000;
    text-align: left;
}

.privacy-body p,
.privacy-body a,
.privacy-body li,
.privacy-contact-list dt,
.privacy-contact-list dd {
    color: #000;
    font-size: 1.8rem;
    font-weight: 300;
    line-height: 1.85;
    letter-spacing: 0;
    text-align: left;
}

.privacy-block {
    margin-top: 28px;
    text-align: left;
}

.privacy-block h2 {
    margin-bottom: 4px;
    color: #000;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.7;
    text-align: left;
}

.privacy-block ol {
    margin-top: 2px;
    counter-reset: privacy-counter;
}

.privacy-block ol li {
    position: relative;
    padding-left: 1.4em;
}

.privacy-block ol li::before {
    counter-increment: privacy-counter;
    content: counter(privacy-counter) ".";
    position: absolute;
    left: 0;
    top: 0;
}

.privacy-contact-list {
    margin-top: 8px;
    text-align: left;
}

.privacy-contact-list>div {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 16px;
    text-align: left;
}

.privacy-contact-list a {
    color: #000;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

@media screen and (max-width: 991px) {
    .privacy-page .privacy-section {
        padding: 85px 0 95px;
    }

    .privacy-page .privacy-section .wrap {
        max-width: 760px;
    }
}

@media screen and (max-width: 767px) {
    .privacy-page .privacy-section {
        padding: 60px 0 70px;
    }

    .privacy-body p,
    .privacy-body li,
    .privacy-contact-list dt,
    .privacy-contact-list dd {
        font-size: 1.3rem;
        line-height: 1.85;
    }

    .privacy-block {
        margin-top: 24px;
    }

    .privacy-block h2 {
        font-size: 1.4rem;
    }

    .privacy-contact-list>div {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 12px;
    }
}

/*==========================

サイトマップ

===========================*/
.sitemap-page .sitemap-section {
    padding: 110px 0 120px;
}

.sitemap-nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 42px;
    text-align: left;
}

.sitemap-list {
    text-align: left;
}

.sitemap-list li {
    padding: 12px 0;
    border-bottom: 1px solid #cbcbcb;
    text-align: left;
}

.sitemap-list li:first-child {
    border-top: none;
}

.sitemap-list a {
    display: inline-block;
    color: #000;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: .04em;
    text-align: left;
}

.sitemap-list a:hover {
    opacity: .65;
}

@media screen and (max-width: 991px) {
    .sitemap-page .sitemap-section {
        padding: 85px 0 95px;
    }

    .sitemap-page .sitemap-section .wrap {
        max-width: 760px;
    }

    .sitemap-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 34px 38px;
    }
}

@media screen and (max-width: 767px) {
    .sitemap-page .sitemap-section {
        padding: 60px 0 70px;
    }

    .sitemap-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px 22px;
    }

    .sitemap-list li {
        padding: 9px 0;
    }

    .sitemap-list a {
        font-size: 1.3rem;
        line-height: 1.55;
    }
}

@media screen and (max-width: 420px) {
    .sitemap-nav {
        grid-template-columns: 1fr;
    }
}

/*==========================

各種工法：共通HERO

===========================*/
.method-hero-lead {
    text-align: left;
}

.method-hero-title {
    text-align: left;
}

.method-hero-img {
    display: none;
}

/* ミクロカプセル工法 HERO */
.method-page--microcapsule .method-hero {
    background-image: url(img/method-microcapsule-hero.jpg);
    background-position: center center;
}

@media screen and (max-width: 1500px) {
    .method-hero {
        min-height: 620px;
        padding-top: 100px;
    }

    .method-hero .wrap {
        min-height: 460px;
    }
}

@media screen and (max-width: 991px) {
    .method-hero {
        min-height: 520px;
        padding: 90px 0 60px;
        background-position: center center;
    }

    .method-hero .wrap {
        min-height: 370px;
    }

    .method-hero-body {
        left: 30px;
        top: 50%;
        max-width: 46%;
        transform: translateY(-45%);
    }
}

@media screen and (max-width: 767px) {
    .method-hero {
        padding: 70px 0 50px;
    }

    .method-hero .wrap {
        padding: 0 20px;
    }
}

/* 各種工法：HERO文字色調整 */
.method-hero,
.method-hero-lead,
.method-hero-title {
    color: #fff;
}

.method-hero-lead,
.method-hero-title {
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

/* 各種工法：HEROフォント調整 */
.method-hero-lead,
.method-hero-title {
    color: #fff;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    font-weight: 400;
}

@media screen and (max-width: 1500px) {
    .method-hero-lead {
        margin-bottom: 28px;
        font-size: 4.2rem;
    }

    .method-hero-title {
        font-size: 8.0rem;
    }
}

@media screen and (max-width: 991px) {
    .method-hero-lead {
        margin-bottom: 22px;
        line-height: 1.55;
        font-size: 3.0rem;
    }
}

/* 各種工法：HERO文字サイズ可変・下線追加 */
.method-hero-title {
    display: inline-block;
}

@media screen and (max-width: 991px) {
    .method-hero-title {
        line-height: 1.16;
        font-size: 6.0rem;
        padding-bottom: 20px;
    }
}

/* 各種工法：HERO位置・サイズ再調整（PNGデザイン基準） */
.method-hero-lead {
    margin-bottom: clamp(1px, 0.5vw, 42px);
    font-size: clamp(2.0rem, 2.6vw, 5.0rem);
    line-height: 1.48;
}

.method-hero-title {
    padding-bottom: clamp(14px, 1.45vw, 28px);
    font-size: clamp(4.2rem, 5.2vw, 10.0rem);
    border-bottom: 2px solid rgba(255, 255, 255, .9);
}

@media screen and (max-width: 767px) {
    .method-hero-lead {
        margin-bottom: 16px;
        font-size: clamp(1.4rem, 4.2vw, 2.0rem);
        line-height: 1.55;
    }

    .method-hero-title {
        line-height: 1.18;
        padding-bottom: 14px;
        font-size: clamp(3.4rem, 9.5vw, 4.2rem);
        border-bottom-width: 1px;
    }
}

@media screen and (max-width: 501px) {
    .method-hero-body {
        left: 24px;
        top: 150px !important;
    }

    .microcapsule-gp-method .method-hero-body {
        left: 20px;
        top: 170px !important;
    }

    .method-hero-lead {
        margin-bottom: 10px;
        font-size: 1.6rem;
    }

    .method-hero-title {
        padding-bottom: 5px;
        font-size: 3rem;
    }
}

/* 各種工法：HERO字詰め調整 */
.method-hero-lead {
    letter-spacing: .03em;
}

.method-hero-title {
    letter-spacing: .02em;
    line-height: 1.4;
}

.method-hero-title ruby {
    ruby-position: over;
    ruby-align: start;
}

.method-hero-title rt {
    color: #fff;
    font-size: clamp(1rem, 1.5vw, 2.6rem);
    font-weight: 300;
    line-height: 1;
    letter-spacing: .08em;
    text-align: left;
}

@media screen and (max-width: 767px) {

    .method-hero-lead,
    .method-hero-title {
        letter-spacing: .01em;
    }
}

.method-hero-lead,
.method-hero-title {
    font-feature-settings: "palt";
}

.gp-hero-note {
    font-size: clamp(2rem, 1.7vw, 3.5rem);
    margin-top: 26px;
}

@media screen and (max-width: 991px) {
    .gp-hero-note {
        font-size: clamp(1.2rem, 1.7vw, 2rem);
        margin-top: 8px;
    }
}

/*==========================

各種工法：ABOUT共通

===========================*/
.method-section {
    padding: 110px 0 120px;
}

.method-heading {
    margin-bottom: 60px;
    text-align: center;
}

.method-heading-en {
    color: #192f60;
    font-size: 10rem;
    line-height: .9;
    letter-spacing: .04em;
    text-align: center;
}

.microcapsule-gp-method .method-heading-en {
    font-size: 15rem;
}

.method-heading-label {
    display: inline-block;
    min-width: 250px;
    padding-bottom: 20px;
    margin-top: 18px;
    color: #192f60;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .08em;
    text-align: center;
    position: relative;
}

.method-heading-label::after {
    content: "";
    background-color: #192f60;
    width: 150px;
    height: 2px;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    margin: auto;
}

.microcapsule-gp-method .method-heading-label::after {
    content: none;
}

.lower-section--blue .method-heading-label::after {
    background-color: #fff;
}

.method-heading--white .method-heading-en,
.method-heading--white .method-heading-label {
    color: #fff;
}

.method-heading--white .method-heading-label {
    border-bottom-color: #fff;
}

.method-about-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
}

.method-about-img {
    margin-top: 10px;
    text-align: left;
}

.method-about-img img {
    display: block;
    width: 100%;
    height: auto;
}

.method-about-body {
    text-align: left;
}

.method-about-body h3 {
    margin-bottom: 30px;
    color: #192f60;
    font-size: 2.6rem;
    font-weight: 500;
    line-height: 1.65;
    text-align: left;
}

.method-about-body p {
    color: #000;
    font-size: 1.75rem;
    font-weight: 300;
    line-height: 2.05;
    text-align: left;
}

.method-about-body p+p {
    margin-top: 1.3em;
}

@media screen and (max-width: 991px) {
    .method-section {
        padding: 85px 0 95px;
    }

    .method-section .wrap {
        max-width: 760px;
    }

    .method-heading {
        margin-bottom: 48px;
    }

    .method-heading-en {
        font-size: 7.0rem;
    }

    .microcapsule-gp-method .method-heading-en {
        font-size: 7.0rem;
    }

    .method-heading-label {
        min-width: 220px;
        padding-bottom: 18px;
        font-size: 1.6rem;
    }

    .method-about-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .method-about-img {
        max-width: 420px;
        margin: 0 auto;
    }

    .method-about-body h3 {
        font-size: 2.4rem;
        line-height: 1.65;
    }
}

@media screen and (max-width: 767px) {
    .method-section {
        padding: 60px 0 70px;
    }

    .method-heading {
        margin-bottom: 36px;
    }

    .method-heading-en {
        font-size: 5.0rem;
    }

    .microcapsule-gp-method .method-heading-en {
        font-size: 5.0rem;
    }

    .method-heading-label {
        min-width: 190px;
        padding-bottom: 14px;
        margin-top: 12px;
        border-bottom-width: 3px;
    }

    .method-about-grid {
        gap: 30px;
    }

    .method-about-img {
        max-width: 320px;
    }

    .method-about-body h3 {
        margin-bottom: 22px;
        font-size: 1.8rem;
        line-height: 1.7;
        letter-spacing: .05em;
    }

    .method-about-body p {
        font-size: 1.3rem;
        line-height: 1.9;
    }
}

/*==========================

各種工法：FEATURES共通

===========================*/
.method-features {
    padding: 110px 0 120px;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.method-feature-item::before {
    white-space: pre-line;
}

@media screen and (max-width: 991px) {
    .method-features {
        padding: 85px 0 95px;
    }

    .method-feature-item {
        gap: 30px;
        padding-bottom: 34px;
    }

    .method-feature-item+.method-feature-item {
        padding-top: 34px;
    }
}

@media screen and (max-width: 767px) {
    .method-features {
        padding: 60px 0 70px;
    }

    .method-feature-item {
        gap: 16px;
        padding-bottom: 30px;
    }

    .method-feature-item+.method-feature-item {
        padding-top: 30px;
    }

    .method-feature-item::before {
        text-align: left;
    }
}

.method-features .method-heading {
    margin-bottom: 70px;
}

.method-features .method-heading-en {
    color: #fff;
}

.method-features .method-heading-label {
    color: #fff;
    border-bottom-color: #fff;
}

.method-feature-item::before {
    align-items: center;
    justify-content: center;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    font-feature-settings: "palt";
}

.method-feature-body {
    min-height: 150px;
}

@media screen and (max-width: 991px) {
    .method-features .method-heading {
        margin-bottom: 52px;
    }

    .method-feature-body {
        min-height: 130px;
    }
}

@media screen and (max-width: 767px) {
    .method-features .method-heading {
        margin-bottom: 38px;
    }

    .method-feature-item::before {
        line-height: 1.05;
    }
}

.method-feature-item::before {
    min-height: 126px;
    margin: 24px 0 24px 24px;
    align-self: stretch;
}

.method-feature-body {
    padding-left: 28px;
}

@media screen and (max-width: 991px) {
    .method-feature-item::before {
        min-height: 108px;
        margin: 20px 0 20px 20px;
    }

    .method-feature-body {
        padding-left: 22px;
    }
}

@media screen and (max-width: 767px) {
    .method-feature-item::before {
        min-height: 84px;
        margin: 16px 0 16px 16px;
    }
}

.method-feature-list {
    counter-reset: method-feature;
    max-width: 1260px;
    margin: 0 auto;
    text-align: left;
}

.method-feature-item {
    text-align: left;
    align-items: stretch;
    counter-increment: method-feature;
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 0;
    min-height: 200px;
    padding: 0;
    color: #192f60;
    background-color: #fff;
    border: none;
    position: relative;
    overflow: visible;
    box-sizing: border-box;
}

.method-feature-item+.method-feature-item {
    margin-top: 28px;
    padding-top: 0;
    border-top: none;
    height: fit-content;
}

.method-feature-item .method-feature-num,
.method-feature-item .feature-num {
    display: none;
}

.method-feature-item::before {
    content: "特長";
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    display: block;
    width: 180px;
    height: 150px;
    padding-top: 24px;
    color: #fff;
    background-color: #192f60;
    font-size: 3rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .08em;
    text-align: center;
    box-sizing: border-box;
}

.method-feature-item::after {
    content: counter(method-feature);
    position: absolute;
    left: 0.42em;
    right: auto;
    top: 90px;
    z-index: 2;
    display: block;
    width: 160px;
    color: #fff;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    font-size: 7.7rem;
    font-weight: 200;
    line-height: 1;
    letter-spacing: 0;
    transform: translateY(-4px);
    margin: auto;
    text-align: center;
}

.method-feature-body {
    grid-column: 2 / 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    margin: 0;
    padding: 30px 20px;
    color: #192f60;
    background-color: #fff;
    text-align: left;
    box-sizing: border-box;
}

.method-feature-body h3 {
    margin-bottom: 12px;
    letter-spacing: .06em;
    width: 100%;
    max-width: none;
    margin: 0 0 12px;
    color: #192f60;
    font-size: 4rem;
    font-weight: 500;
    line-height: 1.45;
    text-align: left;
    word-break: normal;
    overflow-wrap: normal;
    white-space: normal;
}

.method-feature-body p {
    width: 100%;
    max-width: none;
    margin: 0;
    color: #000;
    font-size: 1.8rem;
    font-weight: 300;
    line-height: 1.95;
    letter-spacing: 0;
    text-align: left;
    word-break: normal;
    overflow-wrap: normal;
    white-space: normal;
}

@media screen and (max-width: 991px) {
    .method-feature-list {
        max-width: 720px;
    }

    .method-feature-item {
        grid-template-columns: 130px minmax(0, 1fr);
        min-height: 130px;
    }

    .method-feature-item::before {
        width: 130px;
        padding-top: 29px;
        font-size: 2.0rem;
        height: 130px;
    }

    .method-feature-item::after {
        width: 130px;
        font-size: 4.8rem;
        transform: translateY(-3px);
        top: 84px;
    }

    .method-feature-body {
        padding: 26px 32px;
    }

    .method-feature-body h3 {
        font-size: 2.4rem;
    }
}

@media screen and (max-width: 767px) {
    .method-feature-item {
        grid-template-columns: 96px minmax(0, 1fr);
        min-height: 116px;
    }

    .method-feature-item+.method-feature-item {
        margin-top: 18px;
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .method-feature-item::before {
        width: 86px;
        padding-top: 18px;
        font-size: 1.8rem;
        height: 86px;
    }

    .method-feature-item::after {
        width: 86px;
        font-size: 3rem;
        transform: translateY(0);
        top: 58px;
        left: 15px;
    }

    .method-feature-body {
        min-height: 116px;
        padding-left: 16px;
        padding: 18px 18px 18px 20px;
    }

    .method-feature-body h3 {
        margin-bottom: 8px;
        font-size: 1.8rem;
        line-height: 1.5;
    }

    .method-feature-body p {
        font-size: 1.3rem;
        line-height: 1.85;
    }
}

/*==========================

各種工法：PURPOSE共通

===========================*/
.method-purpose {
    padding: 110px 0 120px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.method-purpose .wrap {
    max-width: 1160px;
}

.method-purpose .method-heading {
    margin-bottom: 52px;
}

.method-purpose-list {
    margin: 0 auto 60px;
    text-align: left;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 40px;
}

.method-purpose-list li {
    min-height: 34px;
    padding: 7px 18px 7px 34px;
    color: #192f60;
    background-color: rgba(255, 255, 255, .78);
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .05em;
    text-align: left;
}

@media screen and (max-width: 991px) {
    .method-purpose-list {
        gap: 15px;
    }

    .method-purpose-list li {
        font-size: 2.4rem;
    }
}

.method-purpose-list li+li {
    margin-top: 10px;
}

.method-purpose-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0 auto;
}

.method-purpose-gallery figcaption {
    padding: 16px 8px;
    color: #333;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .03em;
    text-align: center;
}

.method-btn {
    min-width: 240px;
    min-height: 44px;
}

@media screen and (max-width: 991px) {
    .method-purpose {
        padding: 85px 0 95px;
    }

    .method-purpose .wrap {
        max-width: 760px;
    }

    .method-purpose-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 560px;
        gap: 18px;
    }
}

@media screen and (max-width: 767px) {
    .method-purpose {
        padding: 60px 0 70px;
    }

    .method-purpose .method-heading {
        margin-bottom: 36px;
    }

    .method-purpose-list {
        margin-bottom: 34px;
    }

    .method-purpose-list li::before {
        left: 14px;
        border-top-width: 4px;
        border-bottom-width: 4px;
        border-left-width: 7px;
    }

    .method-purpose-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

.method-purpose-list li {
    position: relative;
}

.method-purpose-list li::after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    pointer-events: none;
}

.method-purpose-list li::before {
    content: "";
    width: calc(100% - 20px);
    height: 100%;
    position: absolute;
    bottom: -10px;
    left: 0;
    right: 0;
    margin: auto;
    background-color: rgb(0 0 0 / 5%);
    z-index: -1;
}

@media screen and (max-width: 767px) {
    .method-purpose-list li {
        min-height: 32px;
        padding: 10px 14px 10px 30px;
        font-size: 1.4rem;
        box-shadow: 8px 8px 0 rgba(25, 47, 96, .08);
    }

    .method-purpose-list li::after {
        border-left-width: 12px;
    }
}

.method-purpose-list li::after {
    top: 0;
    right: auto;
    left: 0;
    border-top: 20px solid #192f60;
    border-left: none;
    border-right: 20px solid transparent;
}

.method-btns {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 100px;
    margin-top: 60px;
    text-align: center;
}

@media screen and (max-width: 1200px) {
    .method-btns {
        flex-direction: column;
        gap: 40px;
    }
}

.method-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 80px;
    width: 400px;
    padding: 8px 28px;
    color: #192f60;
    background-color: transparent;
    border: 1px solid #192f60;
    border-radius: 999px;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .04em;
    text-align: center;
}

.method-btn--primary {
    border: 1px solid #192f60;
    color: #fff;
    background-color: #192f60;
    border-color: #192f60;
}

.method-btn--outline {
    border: 1px solid #192f60;
    color: #192f60;
    background-color: transparent;
    border-color: #192f60;
}

.method-btn:hover {
    opacity: .75;
}

@media screen and (max-width: 767px) {
    .method-purpose-list li::after {
        border-top-width: 12px;
        border-right-width: 12px;
    }

    .method-btns {
        display: block;
        margin-top: 36px;
    }

    .method-btn {
        width: 100%;
        min-height: 30px;
        font-size: 1.6rem;
    }

    .method-btn+.method-btn {
        margin-top: 14px;
    }
}

.method-btn {
    position: relative;
}

.method-btn::before {
    content: "";
    display: inline-block;
    width: 25px;
    height: 1px;
    margin-right: 22px;
    background-color: currentColor;
    flex: 0 0 25px;
}

@media screen and (max-width: 767px) {
    .method-btn::before {
        width: 20px;
        flex-basis: 20px;
        margin-right: 14px;
    }
}

.method-heading-en {
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    font-weight: 200;
    font-style: normal;
    font-feature-settings: "palt";
}

.method-hero {
    position: relative;
    background-color: #f5f5f2;
    background-repeat: no-repeat;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 0;
    height: auto;
    padding: 0;
    background-size: cover;
    background-position: center top;
}

.method-hero .wrap {
    position: relative;
    z-index: 2;
    max-width: none;
    padding: 0;
    min-height: 0;
    height: 100%;
    aspect-ratio: 16 / 9;
}

@media screen and (max-width: 767px) {
    .method-hero {
        aspect-ratio: 16 / 9;
        min-height: 0;
        height: auto;
        background-size: cover;
        background-position: 80% top;
    }

    .method-hero .wrap {
        min-height: 0;
        height: 100%;
        aspect-ratio: 16 / 9;
    }

    .microcapsule-gp-method .method-hero {
        min-height: 0;
        height: 100%;
        aspect-ratio: 3 / 2;
    }
}

.method-hero-body {
    position: absolute;
    text-align: left;
    left: clamp(38px, 16vw, 300px);
    max-width: clamp(280px, 78vw, 980px);
    font-weight: 400;
    top: 50%;
    transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
    .method-hero-body {
        left: 24px;
        top: 55%;
        transform: translateY(-50%);
    }
}

.method-purpose-gallery {
    justify-content: center;
    justify-items: center;
}

.method-purpose-gallery figure {
    margin: 0;
    overflow: hidden;
    background-color: transparent;
    width: 100%;
    text-align: center;
}

.method-purpose-gallery img {
    width: 100%;
    aspect-ratio: auto;
    height: auto;
    object-fit: contain;
    display: block;
    margin-right: auto;
    margin-left: auto;
}

.method-purpose-gallery--single,
.method-purpose-gallery:has(figure:only-child) {
    grid-template-columns: minmax(0, 1fr);
    max-width: 300px;
}

.method-purpose-gallery--single figure,
.method-purpose-gallery:has(figure:only-child) figure {
    max-width: 300px;
}

.method-purpose-gallery--single img,
.method-purpose-gallery:has(figure:only-child) img {
    width: 100%;
    height: auto;
}

@media screen and (max-width: 991px) {
    .method-purpose-gallery {
        justify-content: center;
    }
}

@media screen and (max-width: 767px) {

    .method-purpose-gallery--single,
    .method-purpose-gallery:has(figure:only-child) {
        max-width: 240px;
    }

    .method-purpose-gallery--single figure,
    .method-purpose-gallery:has(figure:only-child) figure {
        max-width: 240px;
    }
}

/*==========================

ミクロカプセルGP

===========================*/
.gp-video-section {
    padding: 150px 0;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.gp-video-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 100px;
    align-items: center;
    justify-content: center;
}

.gp-video-item img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    object-fit: cover;
}

.gp-video-item::after {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 68px;
    height: 48px;
    border-radius: 12px;
    background-color: rgba(0, 0, 0, .68);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.gp-video-item::before {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 11px solid transparent;
    border-bottom: 11px solid transparent;
    border-left: 18px solid #fff;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

@media screen and (max-width: 991px) {
    .gp-video-section {
        padding: 46px 0 54px;
    }

    .gp-video-section .wrap {
        max-width: 720px;
    }

    .gp-video-list {
        gap: 34px;
    }
}

@media screen and (max-width: 767px) {
    .gp-video-section {
        padding: 60px 0;
    }

    .gp-video-list {
        grid-template-columns: 1fr;
        gap: 24px;
        max-width: 360px;
        margin: 0 auto;
    }

    .gp-video-item::after {
        width: 56px;
        height: 40px;
        border-radius: 10px;
    }

    .gp-video-item::before {
        border-top-width: 9px;
        border-bottom-width: 9px;
        border-left-width: 15px;
    }
}

.gp-video-item {
    display: block;
    position: relative;
    overflow: hidden;
    transition: opacity .2s ease;
    box-shadow: none;
}

.gp-video-item:hover {
    opacity: 1;
}

.gp-video-item::before,
.gp-video-item::after {
    content: none;
}

.gp-video-item iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
}

.gp-video-item p {
    font-size: 3.5rem;
    font-weight: 400;
    color: #0f2f64;
    margin-bottom: 10px;
}

@media screen and (max-width: 991px) {
    .gp-video-item p {
        font-size: 2rem;
        margin-bottom: 5px;
    }
}

@media screen and (max-width: 767px) {
    .gp-video-item {
        box-shadow: none;
    }
}

.gp-about-section {
    padding: 96px 0 110px;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.gp-about-section .method-heading {
    margin-bottom: 40px;
}

.gp-about-section .method-heading-label {
    min-width: 0;
    line-height: 1.7;
    letter-spacing: .06em;
    border-bottom-color: #fff;
}

.gp-about-layout {
    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
    gap: 58px;
    align-items: center;
}

.gp-about-photos {
    text-align: left;
}

.gp-about-photo {
    margin: 0;
    overflow: hidden;
}

.gp-about-photo img {
    display: block;
    width: 100%;
    height: auto;
}

.gp-about-photo--main {
    width: 100%;
}

.gp-about-photo-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 18px;
}

.gp-about-body {
    text-align: left;
}

.gp-about-body h3 {
    margin-bottom: 30px;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: .07em;
    text-align: left;
}

.gp-about-body p {
    color: #fff;
    font-size: 2rem;
    font-weight: 400;
    line-height: 2.25;
    text-align: left;
}

.gp-about-body p+p {
    margin-top: 1.2em;
}

.gp-about-caption {
    margin-top: 22px;
    padding-top: 14px;
    font-size: 1.3rem;
    line-height: 1.6;
    border-top: 1px solid rgba(255, 255, 255, .4);
}

@media screen and (max-width: 991px) {
    .gp-about-section .wrap {
        max-width: 760px;
    }

    .gp-about-layout {
        grid-template-columns: 1fr;
    }

    .gp-about-photos {
        max-width: 560px;
        margin: 0 auto;
    }
}

@media screen and (max-width: 991px) {
    .gp-about-section {
        padding: 62px 0 72px;
    }

    .gp-about-section .method-heading {
        margin-bottom: 34px;
    }

    .gp-about-section .method-heading-label {
        padding-bottom: 0 !important;
        font-size: 1.5rem !important;
        line-height: 1.65;
    }

    .en .gp-about-section .method-heading-label {
        padding-bottom: 20px !important;
    }

    .gp-about-layout {
        gap: 30px;
    }

    .gp-about-photo-row {
        gap: 10px;
        margin-top: 10px;
    }

    .gp-about-body h3 {
        margin-bottom: 22px;
        font-size: 1.9rem;
        line-height: 1.7;
        letter-spacing: .05em;
    }

    .gp-about-body p {
        font-size: 1.3rem;
        line-height: 1.9;
    }

    .gp-about-caption {
        margin-top: 18px;
        padding-top: 12px;
        font-size: 1.2rem;
    }
}

.gp-features-section {
    padding: 92px 0 104px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.gp-features-section .method-heading {
    margin-bottom: 44px;
}

.gp-features-section .method-heading-en {
    color: #192f60;
}

.gp-features-section .method-heading-label {
    color: #192f60;
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .06em;
    text-align: center;
}

.gp-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 50px 20px;
    justify-content: center;
    margin: 0 auto;
}

.gp-feature-card {
    min-height: 218px;
    padding: 30px 15px 10px;
    color: #192f60;
    text-align: center;
}

.gp-feature-card::after {
    right: 0;
    border-top: 26px solid #f5f5f2;
    border-left: 26px solid transparent;
}

.gp-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    height: 100px;
    margin: 0 auto 14px;
}

.gp-feature-icon img {
    display: block;
    width: fit-content;
    height: 100px;
    object-fit: contain;
    margin-bottom: 15px;
}

.gp-feature-card:nth-child(8) .gp-feature-icon img {
    height: 80px;
}

.gp-feature-card h3 {
    position: relative;
    margin: 0 0 16px;
    padding-bottom: 12px;
    color: #192f60;
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: .04em;
    text-align: center;
}

.en .gp-feature-card h3 {
    font-size: 2.2rem;
    height: 4em;
    display: flex;
    justify-content: center;
    align-items: center;
}

.gp-feature-card h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 150px;
    height: 3px;
    background-color: #192f60;
    transform: translateX(-50%);
}

.gp-feature-card p {
    margin: 0;
    color: #111;
    font-weight: 400;
    line-height: 1.85;
    letter-spacing: .03em;
    text-align: left;
}

.en .gp-feature-card p {
    text-align: center;
}

@media screen and (max-width: 1200px) {
    .gp-feature-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 991px) {
    .gp-features-section {
        padding: 60px 0 70px;
    }

    .gp-features-section .method-heading {
        margin-bottom: 32px;
    }

    .gp-features-section .method-heading-label {
        font-size: 1.5rem;
    }

    .gp-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px 20px;
        max-width: 420px;
    }

    .gp-feature-card::after {
        border-top-width: 20px;
        border-left-width: 20px;
    }

    .gp-feature-icon {
        width: 58px;
        height: 58px;
        margin-bottom: 10px;
    }

    .gp-feature-icon img {
        width: 58px;
        height: 58px;
    }

    .gp-feature-card h3 {
        margin-bottom: 12px;
        padding-bottom: 10px;
        font-size: 1.8rem;
    }

    .gp-feature-card h3::after {
        width: 54px;
    }

    .gp-feature-card p {
        font-size: 1.4rem;
        line-height: 1.7;
    }

    .en .gp-feature-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 30px 20px;
    }

    .en .gp-feature-card h3 {
        font-size: 1.6rem;
    }
}

.gp-feature-card {
    background-color: rgba(255, 255, 255, .9);
}

@media screen and (max-width: 767px) {
    .gp-feature-card {
        clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
        box-shadow: 0 8px 0 rgba(25, 47, 96, .08);
    }
}

.gp-feature-card {
    position: relative;
    overflow: visible;
    background: transparent;
    clip-path: none;
    z-index: 0;
    filter: drop-shadow(0px 10px 0px rgb(0 0 0 / 10%));
    max-width: 280px;
    height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
}

.en .gp-feature-card {
    height: 450px;
    justify-content: flex-start;
    padding-top: 40px;
}

@media screen and (max-width: 991px) {
    .gp-feature-card {
        min-height: 190px;
        padding: 22px 14px 18px;
        box-shadow: 7px 7px 0 rgba(25, 47, 96, .08);
        height: auto;
        justify-content: flex-start;
        padding-top: 30px;
    }

    .en .gp-feature-card {
        height: auto;
        width: 100%;
        max-width: 100%;
    }
}

.gp-feature-card::before,
.gp-feature-card::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%);
    pointer-events: none;
}

.gp-feature-card::before {
    top: 0;
    z-index: -1;
    background-color: rgba(255, 255, 255, .9);
}

.gp-feature-card::after {
    top: 12px;
    z-index: -2;
    background-color: rgba(25, 47, 96, .08);
}

.gp-feature-card>* {
    position: relative;
    z-index: 1;
}

@media screen and (max-width: 767px) {

    .gp-feature-card::before,
    .gp-feature-card::after {
        clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
    }

    .gp-feature-card::after {
        top: 8px;
    }
}

.gp-cv-section {
    padding: 54px 0 66px;
    background-color: #f5f5f2;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    overflow: hidden;
}

.gp-cv-title {
    margin: 0 0 20px;
    font-size: 5.3rem;
    font-weight: 400;
    line-height: 1.45;
    white-space: nowrap;
    z-index: 1;
}

.gp-cv-title::before,
.gp-cv-title::after {
    display: block;
    flex: 1 1 auto;
    z-index: -1;
}

.gp-cv-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.en .gp-cv-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 130px;
    max-width: 1100px;
}

.gp-cv-item {
    display: block;
    transition: opacity .2s ease;
}

.gp-cv-item:hover {
    opacity: .78;
}

.gp-cv-item img {
    display: block;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 991px) {
    .gp-cv-section {
        padding: 48px 0 56px;
    }

    .gp-cv-section .wrap {
        max-width: 760px;
    }

    .gp-cv-title {
        gap: 24px;
        margin-bottom: 26px;
        font-size: 2.8rem;
        white-space: normal;
    }

    .gp-cv-title::before,
    .gp-cv-title::after {
        max-width: 180px;
    }

    .gp-cv-list {
        gap: 18px;
    }
}

@media screen and (max-width: 767px) {
    .gp-cv-section {
        padding: 42px 0 48px;
    }

    .gp-cv-title {
        gap: 14px;
        margin-bottom: 24px;
        letter-spacing: .04em;
    }

    .gp-cv-title::before,
    .gp-cv-title::after {
        max-width: 42px;
    }

    .gp-cv-list {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: 360px;
    }

    .en .gp-cv-list {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: 360px;
    }
}

.gp-flow-section {
    padding: 82px 0 96px;
    color: #fff;
    background-color: #192f60;
    background-image: url(img/bg-blue-pattern.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center top;
}

.gp-flow-section .wrap {
    max-width: 1160px;
}

.gp-flow-section .method-heading {
    margin-bottom: 44px;
}

.gp-flow-section .method-heading-en {
    color: #fff;
}

.gp-flow-section .method-heading-label {
    color: #fff;
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .08em;
    text-align: center;
}

@media screen and (max-width: 991px) {
    .gp-flow-section .method-heading-label {
        font-size: 1.5rem;
    }
}

.gp-flow-item+.gp-flow-item {
    margin-top: 14px;
}

.gp-flow-item h3 {
    display: flex;
    align-items: center;
    min-height: 40px;
    margin: 0;
    padding: 5px 18px;
    color: #192f60;
    background-color: #fff;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .06em;
    text-align: left;
}

.gp-flow-item h3 span {
    display: inline-block;
    min-width: 58px;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    font-size: 5.2rem;
    font-weight: 200;

    line-height: 1;
    margin-right: 62px;
}

.gp-flow-body {
    padding: 20px 0 20px 150px;
    color: #fff;
    font-weight: 500;
    line-height: 1.9;
    text-align: left;
}

.gp-flow-body p {
    color: #fff;
    text-align: left;
    margin-right: 1em;
}

.gp-flow-body p+p {
    margin-top: .8em;
}

.gp-flow-body ol,
.gp-flow-body ul {
    margin: 0;
    padding-left: 1.2em;
    color: #fff;
    text-align: left;
}

.gp-flow-body li {
    color: #fff;
    text-align: left;
}

.gp-flow-photo-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.gp-flow-photo-list figure {
    margin: 0;
    background-color: #fff;
}

.gp-flow-photo-list img {
    display: block;
    width: 100%;
    height: auto;
}

.gp-flow-note {
    margin-top: 50px;
    padding: 20px 24px;
    border: 1px solid rgba(255, 255, 255, .55);
}

.gp-flow-note p {
    margin-bottom: .7em;
    font-weight: 600;
}

.gp-flow-note ul {
    padding-left: 0;
}

.gp-flow-note li {
    position: relative;
    padding-left: 2em;
}

.gp-flow-note li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0;
    color: #fff;
    font-size: .9em;
}

@media screen and (max-width: 991px) {
    .gp-flow-item h3 {
        font-size: 3rem;
    }

    .gp-flow-section {
        padding: 72px 0 84px;
    }

    .gp-flow-section .wrap {
        max-width: 760px;
    }

    .gp-flow-body {
        padding-left: 100px;
    }

    .gp-flow-item h3 span {
        font-size: 3.4rem;
        margin-right: 20px;
    }

    .gp-flow-body p,
    .gp-flow-body li {
        font-size: 1.4rem;
    }
}

@media screen and (max-width: 767px) {
    .gp-flow-section {
        padding: 58px 0 68px;
    }

    .gp-flow-section .method-heading {
        margin-bottom: 32px;
    }

    .gp-flow-item+.gp-flow-item {
        margin-top: 10px;
    }

    .gp-flow-item h3 {
        min-height: 36px;
        padding: 6px 12px;
        font-size: 1.8rem;
    }

    .gp-flow-item h3 span {
        min-width: 42px;
        margin-right: 10px;
        font-size: 2.1rem;
    }

    .gp-flow-photo-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
}

.gp-flow-list::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 91px;
    width: 2px;
    background-color: rgba(255, 255, 255, .75);
    pointer-events: none;
    z-index: 2;
}

@media screen and (max-width: 767px) {
    .gp-flow-list::before {
        left: 60px;
        width: 1px;
    }
}

@media screen and (max-width: 767px) {
    .gp-flow-body {
        padding: 14px 16px 0;
        line-height: 1.8;
        font-size: 1.4rem;
        padding-left: 65px;
    }

    .gp-flow-note {
        padding: 16px 14px;
        padding-left: 20px;
    }
}

.gp-flow-list::before {
    content: none;
}

.gp-flow-item::before {
    content: "";
    position: absolute;
    top: 0px;
    bottom: -54px;
    left: 51px;
    width: 2px;
    background-color: rgba(255, 255, 255, .75);
    pointer-events: none;
}

.gp-flow-item:last-child::before {
    bottom: auto;
    height: 40px;
}

@media screen and (max-width: 767px) {
    .gp-flow-item::before {
        bottom: -50px;
        left: 26px;
        width: 1px;
    }

    .gp-flow-item:last-child::before {
        height: 36px;
    }
}

.gp-flow-list {
    margin: 0 auto;
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

@media screen and (max-width: 991px) {
    .gp-flow-list {
        gap: 20px;
    }
}

.gp-flow-item {
    color: #fff;
    text-align: left;
    position: relative;
    z-index: 1;
}

.gp-flow-item::before {
    z-index: 0;
}

.gp-flow-item h3,
.gp-flow-body {
    position: relative;
    z-index: 2;
}

.gp-license-section {
    padding: 88px 0 110px;
    background-color: #f5f5f2;
    background-image: url(img/bg-paper.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
}

.gp-license-section .method-heading {
    margin-bottom: 52px;
    color: #192f60;
    text-align: center;
}

.gp-license-section .method-heading-label {
    margin-top: 22px;
    color: #192f60;
    font-size: 3.5rem;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .06em;
    text-align: center;
}

.gp-license-block+.gp-license-block {
    margin-top: 54px;
}

.gp-license-title {
    margin: 0 0 50px;
    padding: 0 0 25px;
    color: #192f60;
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .06em;
    text-align: center;
    border-bottom: 2px solid rgba(25, 47, 96, .65);
}

@media screen and (max-width: 991px) {
    .gp-license-title {
        margin: 0 0 30px;
        padding: 0 0 20px;
        font-size: 2rem;
        font-weight: 400;
    }
}

.gp-license-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 100px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.gp-license-gallery figure {
    margin: 0;
    text-align: center;
}

.gp-license-gallery img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

.gp-license-gallery--card {
    gap: 100px;
}

.gp-license-gallery--card img {
    filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .22));
}

@media screen and (max-width: 991px) {
    .gp-license-section {
        padding: 74px 0 90px;
    }

    .gp-license-section .wrap {
        max-width: 760px;
    }

    .gp-license-section .method-heading {
        margin-bottom: 42px;
    }

    .gp-license-section .method-heading-label {
        font-size: 1.7rem;
    }

    .gp-license-gallery {
        max-width: 600px;
        gap: 34px;
    }
}

@media screen and (max-width: 767px) {
    .gp-license-section {
        padding: 58px 0 70px;
    }

    .gp-license-section .method-heading-en {
        font-size: 4.8rem;
    }

    .gp-license-section .method-heading-label {
        margin-top: 14px;
        font-size: 1.4rem;
    }

    .gp-license-block+.gp-license-block {
        margin-top: 34px;
    }

    .gp-license-gallery,
    .gp-license-gallery--card {
        grid-template-columns: 1fr;
        gap: 22px;
        max-width: 360px;
    }
}

.gp-feature-card {
    box-shadow: none;
}

.gp-feature-card::after {
    content: none;
}

.gp-about-sub-photos {
    display: flex;
    gap: 40px;
    padding: 80px 0 0;
}

@media screen and (max-width: 991px) {
    .gp-about-sub-photos {
        gap: 10px;
        padding: 20px 0 0;
    }
}

.microcapsule-gp-method .hami .flex {
    align-items: center;
}

.gp-about-section .method-heading-label {
    max-width: 100%;
    padding-bottom: 22px;
    color: #fff;
    font-size: 3.5rem;
    font-weight: 400;
    margin-bottom: 0;
}

.gp-cv-title {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 34px;
    width: 100%;
    color: #192f60;
    text-align: center;
    overflow: visible;
}

.gp-cv-title::before,
.gp-cv-title::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 50vw;
    height: 3px;
    background-color: #192f60;
    transform: translateY(-50%);
}

.gp-cv-title::before {
    right: calc(50% + 480px);
}

.gp-cv-title::after {
    left: calc(50% + 480px);
}

@media screen and (max-width: 991px) {
    .gp-cv-title::before {
        right: calc(50% + 260px);
    }

    .gp-cv-title::after {
        left: calc(50% + 260px);
    }
}

@media screen and (max-width: 767px) {
    .gp-cv-title {
        font-size: 1.8rem;
        line-height: 1.5;
        white-space: nowrap;
    }

    .gp-cv-title::before,
    .gp-cv-title::after {
        content: "";
        width: 10vw;
        height: 2px;
    }

    .gp-cv-title::before {
        right: calc(50% + 170px);
    }

    .gp-cv-title::after {
        left: calc(50% + 170px);
    }
}

.gp-flow-body ol {
    counter-reset: gp-flow-num;
    list-style: none;
    padding-left: 0;
}

.gp-flow-body ol li {
    counter-increment: gp-flow-num;
    position: relative;
    padding-left: 2em;
    text-align: left;
}

.gp-flow-body ol li::before {
    content: "(" counter(gp-flow-num) ")";
    position: absolute;
    left: 0;
    top: 0;
}

.gp-license-section,
.gp-license-section .wrap {
    overflow: visible;
}

.gp-license-block {
    margin: 0 auto;
    position: relative;
    background-color: transparent;
    box-shadow: none;
    z-index: 0;
    padding: 40px 50px;
}

.gp-license-block::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: -1;
    background-color: rgba(255, 255, 255, .86);
    box-shadow: 0 0 40px rgba(0, 0, 0, .3);
}

.gp-license-block::before {
    left: 0;
    right: 0;
}

.gp-license-block:nth-of-type(even)::before {
    left: calc(50% - 50vw);
    right: 0;
    width: auto;
    transform: none;
}

.gp-license-block::before {
    width: auto;
    transform: none;
}

.gp-license-block:nth-of-type(2)::before {
    left: 0;
    right: calc(50% - 50vw);
}

.gp-license-block:nth-of-type(3)::before {
    left: calc(50% - 50vw);
    right: 0;
}

@media screen and (max-width: 991px) {
    .gp-license-block {
        max-width: 680px;
        padding-bottom: 42px;
        padding: 30px 40px;
    }
}

@media screen and (max-width: 767px) {
    .gp-license-block {
        padding-bottom: 30px;
        padding: 30px 20px;
    }

    .gp-license-title {
        margin-bottom: 24px;
        padding: 0px 16px 16px;
        font-size: 1.5rem;
    }
}

/*==========================

スクロールフェードアニメーション

===========================*/
.js-fade,
.js-fade-up,
.js-fade-down,
.js-fade-left,
.js-fade-right,
.js-fade-zoom {
    opacity: 0;
    transition: opacity .8s ease, transform .8s ease;
    will-change: opacity, transform;
}

.js-fade {
    transform: none;
}

.js-fade-up {
    transform: translateY(40px);
}

.js-fade-down {
    transform: translateY(-40px);
}

.js-fade-left {
    transform: translateX(-40px);
}

.js-fade-right {
    transform: translateX(40px);
}

.js-fade-zoom {
    transform: scale(.96);
}

.js-fade.is-active,
.js-fade-up.is-active,
.js-fade-down.is-active,
.js-fade-left.is-active,
.js-fade-right.is-active,
.js-fade-zoom.is-active {
    opacity: 1;
    transform: none;
}

/* 遅延バリエーション */
.fade-delay-01 {
    transition-delay: .15s;
}

.fade-delay-02 {
    transition-delay: .3s;
}

.fade-delay-03 {
    transition-delay: .45s;
}

.fade-delay-04 {
    transition-delay: .6s;
}

@media screen and (max-width: 767px) {
    .js-fade-up {
        transform: translateY(28px);
    }

    .js-fade-down {
        transform: translateY(-28px);
    }

    .js-fade-left {
        transform: translateX(-28px);
    }

    .js-fade-right {
        transform: translateX(28px);
    }

    .js-fade-zoom {
        transform: scale(.97);
    }

    .js-fade.is-active,
    .js-fade-up.is-active,
    .js-fade-down.is-active,
    .js-fade-left.is-active,
    .js-fade-right.is-active,
    .js-fade-zoom.is-active {
        opacity: 1;
        transform: none;
    }
}

@media screen and (max-width: 767px) {

    .js-fade,
    .js-fade-up,
    .js-fade-down,
    .js-fade-left,
    .js-fade-right,
    .js-fade-zoom {
        opacity: 0;
        transition: opacity .8s ease, transform .8s ease;
        will-change: opacity, transform;
    }

    .js-fade.is-active,
    .js-fade-up.is-active,
    .js-fade-down.is-active,
    .js-fade-left.is-active,
    .js-fade-right.is-active,
    .js-fade-zoom.is-active {
        opacity: 1;
        transform: none;
    }
}

/* ヘッダーナビ：ホバー下線アニメーション */
@media screen and (min-width: 1280px) {
    .gnav-list>li>a {
        position: relative;
    }

    .gnav-list>li>a::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -8px;
        width: 100%;
        height: 1px;
        background-color: #fff;
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform .28s ease;
    }

    .gnav-list>li>a:hover::after {
        transform: scaleX(1);
    }
}

/* ミクロカプセルGP：FLOW縦線アニメーション */
.gp-flow-item.js-fade-up {
    transform: none;
    transition: opacity .8s ease;
}

.gp-flow-item::before {
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform .9s ease;
}

.gp-flow-item.is-active::before {
    transform: scaleY(1);
}

.gp-flow-item:nth-child(2)::before {
    transition-delay: .22s;
}

.gp-flow-item:nth-child(3)::before {
    transition-delay: .44s;
}

.gp-flow-item:nth-child(4)::before {
    transition-delay: .66s;
}

.gp-flow-item:nth-child(5)::before {
    transition-delay: .88s;
}

.gp-flow-item:nth-child(6)::before {
    transition-delay: 1.10s;
}

.gp-flow-item:nth-child(7)::before {
    transition-delay: 1.32s;
}

.gp-flow-item:nth-child(8)::before {
    transition-delay: 1.54s;
}

.gp-flow-item:nth-child(9)::before {
    transition-delay: 1.76s;
}

/*==========================

GP工法 動画モーダル

===========================*/
.gp-video-thumb {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    overflow: hidden;
}

.gp-video-thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.gp-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgba(0, 0, 0, .65);
}

.gp-video-play::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 52%;
    transform: translate(-50%, -50%);
    border-top: 16px solid transparent;
    border-bottom: 16px solid transparent;
    border-left: 24px solid #fff;
}

.gp-video-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.gp-video-modal.is-active {
    display: flex;
}

.gp-video-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .75);
}

.gp-video-modal-content {
    position: relative;
    z-index: 1;
    width: min(100%, 960px);
}

.gp-video-modal-close {
    position: absolute;
    right: 0;
    bottom: calc(100% + 12px);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #111;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.gp-video-modal-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.gp-video-modal-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media screen and (max-width: 767px) {
    .gp-video-play {
        width: 56px;
        height: 56px;
    }

    .gp-video-play::before {
        border-top-width: 12px;
        border-bottom-width: 12px;
        border-left-width: 18px;
    }

    .gp-video-modal {
        padding: 20px;
    }

    .gp-video-modal-close {
        width: 40px;
        height: 40px;
        font-size: 28px;
    }
}

/*==========================

404

===========================*/
.error404-page {
	padding: 100px 0 120px;
}

.error404-content {
	text-align: center;
}

.error404-content h2 {
	margin: 0 0 30px;
	font-size: 36px;
	font-weight: 600;
	line-height: 1.5;
}

.error404-content > p {
	margin: 0;
	font-size: 18px;
	line-height: 2;
}

.error404-link {
	margin-top: 40px !important;
}

.error404-link a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 16px 30px;
	border: 1px solid #222;
	color: #222;
	text-decoration: none;
	transition:
		color 0.3s,
		background-color 0.3s;
}

.error404-link a:hover {
	color: #fff;
	background-color: #222;
}

.page-kv-title {
	margin: 0;
	font-size: 100px;
	font-weight: 400;
	line-height: 1;
}

@media screen and (max-width: 768px) {
	.error404-page {
		padding: 70px 0 90px;
	}

	.error404-content {
		text-align: left;
	}

	.error404-content h2 {
		margin-bottom: 24px;
		font-size: 26px;
		line-height: 1.6;
	}

	.error404-content > p {
		font-size: 16px;
		line-height: 1.9;
	}

	.error404-link {
		margin-top: 32px !important;
	}

	.error404-link a {
		width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.page-kv-title {
		font-size: 52px;
	}
}
