:root {
    --main-color: #171717;
    --base-color: #373737;
    --accent-color: #C1282D;
    --accent-y-color: #BD974A;
}

html {
    font-family: 'Noto Sans JP', meiryo, Arial, Helvetica, sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 16px;
    color: #000;
}
* {
    box-sizing: border-box;
}
html,body,h1,h2,h3,h4,h5,h6,p,ul,li {
    margin: 0;
    padding: 0;
}
ul {
    list-style: none;
}
a {
    text-decoration: none;
    color: #000;
    transition: all 400ms;
}
a:hover {
    opacity: 0.8;
}
p {
    margin-bottom: 1.8em;
    line-height: 1.8em;
}
section {
    overflow: hidden;
}
figure {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
}
table {
    border-collapse: collapse;
}
input, textarea {
    outline: none;
    border: 1px solid #ddd;
    font-size: 16px;
}
input[type="submit"] {
    cursor: pointer;
}

/* clear */
.wp-block-button__link {
    color: inherit;
    background-color: inherit;
    border-radius: inherit;
    box-shadow: inherit;
    padding: inherit;
    font-size: inherit;
}
.wp-block-column {
    flex-grow: auto;
    flex-basis: auto;
}
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
    flex-basis: auto;
}
.widget.widget_block::marker {
    display: none;
    content: '';
}


/* layout */
.wrapper {
    padding: 60px 0;
    background-color: var(--base-color);
}
.wrapper.top {
    padding: 0;
}

/* footer */
footer {
    background-color: var(--main-color);
    color: #fff;
}
.footer-inner {
    max-width: 1200px;
    margin: auto;
    padding: 50px 0;
    color: #BBB;
}
.footer-col-2 {
    display: flex;
    justify-content: space-between;
}
.footer-info-area {
}
.footer-nav-area nav ul {
    display: flex;
    justify-content: end;
    margin-bottom: 1em;
}
.footer-nav-area nav li {
    margin-left: 1.5em;
}
.footer-inner a {
    color: #fff;
}
.footer-company {
    padding-bottom: 1em;
    font-size: 26px;
    font-weight: bold;
}

/* top */
#loading_view {
    z-index: 10000;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-image: url(../img/top-section4.png);
    background-repeat: no-repeat;
    background-size: cover;
    animation: loading-fadeout 1.0s ease 1.7s forwards;
    /* transition: 1.5s all; */
    opacity: 1;
}
@keyframes loading-fadeout {
    0% {
        opacity: 1;
        visibility: visible;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        visibility: hidden;
        display: none;
    }
}
#loading_view .loading-title {
    position: absolute;
    top: calc(50% - 113px);
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 40px;
    width: 100%;
    margin: auto;
    padding: 30px 10px;
    /* background-color: #fff; */
    animation: 3.5s ease fadeup;
}
@keyframes fadeup {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
.loading-title .loading-title-logo {
    width: 130px;
}
.loading-title .loading-title-text {
    font-size: 30px;
    font-weight: bold;
    line-height: 0;
}
.loading-title .loading-title-text img {
    width: 100%;
}
#top_header_logo {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    width: 150px;
    padding: 10px;
    /* background-color: rgba(255,255,255,0.85);
    box-shadow: 2px 2px 4px rgba(0,0,0,0.25); */
    background-color: rgba(255,255,255,0.1);
}
#top_header_logo a {
    display: block;
    color: #fff;
}
#top_header_logo .header-logo-text {
    font-size: 20px;
}
.top-logo {
    width: 80px;
    height: auto;
}
#top_header_area {
    z-index: 1000;
    position: fixed;
    width: 100%;
    text-align: center;
}
#top_header_nav {
    width: 100%;
    height: 100%;
    margin-left: 150px;
    /* background-color: var(--main-color); */
}
#top_header_nav nav {
    display: inline-block;
    margin: auto;
    padding: 30px 0;
    margin-right: 150px;
}
#top_header_area.after #top_header_nav {
    background-color: var(--main-color);
    transition:all 0.5s;
}
#top_header_nav ul {
    display: flex;
    column-gap: 25px;
}
#top_header_nav ul a {
    display: inline-block;
    color: #fff;
    font-weight: bold;
}
#header_menu_btn,
#header_menu_area_sp {
    display: none;
}
#top_header_image_area {
    height: 100vh;
    /*height: 800px;*/
    overflow: hidden;
    background-image: url(../img/top_image.png);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: cover;
    /* background-attachment: fixed; */
}
#top_header_catch {
    max-width: 756px;
    min-height: 128px;
    margin: auto;
    margin-top: 180px;
    background-image: url(../img/top-image-catch.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
}
.top-section1 {
    background-image: url(../img/top-section1.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
}
.top-section2 {
    background-image: url(../img/top-section2.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #000;
}
.top-section3 {
    background-image: url(../img/top-section3.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
}
.top-section4 {
    background-image: url(../img/top-section4.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
}
.top-section5 {
    background-image: url(../img/top-section5.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #000;
}
.top-section-inner {
    margin: auto;
    padding: 60px 0;
}
.top-section3 .top-section-inner,
.top-section4 .top-section-inner,
.top-section5 .top-section-inner {
    max-width: 1200px;
}
.top-section5 .top-section-inner {
    max-width: 1000px;
    margin: auto;
}
.top-col-2 {
    display: flex;
    justify-content: center;
}
.top-section-text-area {
    flex: 1;
    flex-basis: 0 !important;
}
.top-section-text {
    max-width: 500px;
}
.top-section-text.left {
    margin-right: auto;
    margin-left: 60px;
}
.top-section-text.right {
    margin-left: auto;
    margin-right: 60px;
}
.top-section-text2 {
    width: 500px;
}
.top-section-image-area {
    flex: 1;
    flex-basis: 0 !important;
    width: 100%;
    max-height: 450px;
}
.top-section-image-area figure {
    height: 100%;
}
.top-section-image-area img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.top-link1 a {
    position: relative;
    display: inline-block;
    padding: 15px 50px 15px 30px;
    border: 1px solid #fff;
    color: #fff;
}
.top-link1 a::after {
    position: absolute;
    top: calc(50% - 4px);
    right: 25px;
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
    transition: inherit;
    content: '';
}
.top-link1 a:hover {
    border-color: var(--main-color);
    background-color: #fff;
    color: #000;
    opacity: 1;
}
.top-link1 a:hover::after {
    border-color: #000;
}
.top-link1.black a {
    border-color: #000;
    color: #000;
}
.top-link1.black a::after {
    border-color: #000;
}
.top-link1.black a:hover {
    background-color: #000;
    color: #fff;
}
.top-link1.black a:hover::after {
    border-color: #fff;
}
.top-section-title {
    max-width: 100%;
    margin-bottom: 40px;
}
.top-section-title img {
    max-width: 100%;
    height: auto;
}
.top-link-area {
    margin-top: 40px;
}
.top-section3 .top-link-area {
    position: absolute;
    left: 0;
    top: 0;
    align-items: end;
    height: 77%;
    margin-top: 0;
}

.company-link-area {
    margin-top: 60px;
}
.company-link-area a {
    display: inline-block;
    margin-bottom: 20px;
}
.top-news-list li {
    border-bottom: 1px solid #CCC;
}
.top-news-list li:last-child {
    border-bottom: none;
}
.top-news-list a {
    display: flex;
    padding: 1.5em 0;
    color: #fff;
}
.top-news-list .top-news-date {
    display: inline-block;
    width: 120px;
    font-weight: bold;
}
.top-news-list span:not(.top-news-date) {
    flex: 1;
}
.top-contact-text {
    max-width: 500px;
    margin: auto;
    text-align: center;
}
.top-contact-btn-area {
    display: flex;
    column-gap: 30px;
    justify-content: center;
    margin-top: 50px;
}
.top-contact-btn-area p {
    margin-bottom: 0;
    line-height: 1em;
}
.top-contact-mail-btn {
    width: 100%;
}
.top-contact-mail-btn a {
    display: flex;
    height: 100px;
    align-items: center;
    justify-content: center;
    background-color: var(--accent-color);
    box-shadow: 2px 2px 4px rgba(0,0,0,0.25);
    color: #fff;
    font-size: 20px;
}
.top-contact-mail-btn a::before {
    display: inline-block;
    width: 32px;
    height: 32px;
    margin-right: 1.3em;
    background-image: url(../img/mail-icon.png);
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
}
.top-contact-tel-btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    row-gap: 5px;
    height: 100px;
    border: 2px solid var(--base-color);
    font-size: 18px;
    font-weight: bold;
}
.top-contact-tel-number {
    font-size: 24px;
}

/* second page header */
#header_area {
    z-index: 1000;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #fff;
    box-shadow: 2px 2px 4px rgba(0,0,0,0.25);
    text-align: center;
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1200px;
    margin: auto;
}
#header_logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 0;
}
#header_logo a {
    display: flex;
    align-items: center;
    column-gap: 12px;
}
#header_logo .header-logo-text {
    font-size: 20px;
}
.top-logo {
    width: 80px;
    height: auto;
}
#header_nav {
    height: 100%;
    text-align: right;
}
#header_nav nav {
    display: inline-block;
    margin: auto;
    padding: 30px 0;
}
#header_area.after #top_header_nav {
    background-color: var(--base-color);
    transition:all 0.5s;
}
#header_nav ul {
    display: flex;
    column-gap: 25px;
}
#header_nav ul a {
    display: inline-block;
    font-weight: bold;
}
.breadcrumb-area {
    padding: 0.5em 0;
    background-color: var(--main-color);
}
.breadcrumb {
    display: flex;
    align-items: center;
    column-gap: 0.7em;
    max-width: 1200px;
    margin: auto;
}
.breadcrumb a {
    color: #fff;
    font-size: 14px;
}
.breadcrumb a::after {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 0.7em;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    content: '';
    transform: rotate(-45deg);
}
.breadcrumb a:last-child::after {
    display: none;
}
.page-title-area {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 210px;
    background-color: rgba(0,0,0,0.3);
    background-blend-mode: overlay;
    background-image: url(../img/second-header.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}
.page-title-area::before {
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.3);

}
.page-title-area h1 {
    color: #fff;
}
.page-title-area img {
    vertical-align: top;
}
.section-area {
    background-color: var(--base-color);
}

/* common */
section {
    color: #fff;
}
section a {
    color: #fff;
}
.section-inner {
    margin: auto;
    color: #fff;
}
.section-inner.wide {
    max-width: 1200px;
}
.section-inner.normal {
    max-width: 1000px;
}
.section-inner.small {
    max-width: 800px;
}
.section-inner.left {
    justify-content: start;
}
.section-title-area {
    max-width: 300px;
}
.section-title {
    margin-top: 55px;
    margin-bottom: 1em;
    padding-left: 0.7em;
    border-left: 7px solid var(--accent-color);
    font-size: 24px;
}
.col-2 {
    display: flex;
    justify-content: center;
}
.col-2 .full {
    flex-grow: 1;
    flex-shrink: 0;
    flex-basis: 0 !important;
}
.col-2 .head {
    flex-grow: 0 !important;
    flex-basis: 300px !important;
}
.col-2 .full {

}
.al-left,
.alignleft {
    text-align: left;
}
.al-right,
.alignright {
    text-align: right;
}
.al-center,
.aligncenter {
    text-align: center;
}
.mt-40 {
    margin-top: 40px;
}
.mb-60 {
    margin-bottom: 60px;
}
.common-table table {
    border-collapse: collapse;
}
.common-table tr {
    border-bottom: 5px solid var(--base-color);
}
.common-table th,
.common-table td {
    padding: 20px;
    text-align: left;
    border: none;
}
.common-table th,
.common-table td:first-child {
    width: 200px;
    background-color: var(--main-color);
}
.btn-area {
    display: flex;
    justify-content: center;
    padding: 40px 0;
}
.text-link {
    position: relative;
    color: #fff;
}
.text-link::after {
    position: absolute;
    top: calc(50% - 3px);
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 0.7em;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    content: '';
    transform: rotate(-45deg);
}
.pager-area {
    padding-top: 40px;
}
.page-numbers {
    display: flex;
    flex-direction: row;
    column-gap: 10px;
    justify-content: center;
    align-items: center;
}
.page-numbers li {
    min-width: 10px;
}
.page-numbers li > * {
    display: inline-block;
    padding: 4px 10px;
}
.page-numbers li > a {
    border: 1px solid #999;
}
.page-numbers li .current {
    background-color: #666;
    border: 1px solid #999;
    color: #fff;
}
.page-numbers li > a.next,
.page-numbers li > a.prev {
    display: flex;
    width: 30px;
    height: 30px;
    border: none;
}
.page-numbers li a .next-icon,
.page-numbers li a .prev-icon {
    display: inline-block;
    width: 9px;
    height: 9px;
    padding: 0;
    border: none;
    border-right: 3px solid #666;
    border-bottom: 3px solid #666;
    content: '';
    transform: rotate(-45deg);
}
.page-numbers li a .prev-icon {
    transform: rotate(135deg);
}

/* company */
.greeting-face-area {
    margin-left: 60px;
}
.company-greeting-area {
    display: flex;
    column-gap: 30px;
}
.company-greeting-area figure {
    min-width: 350px;
}
.company-greeting-area figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.company-map-area {
    margin-top: 30px;
}
.company-map-area iframe {
    width: 100%;
}

/* strength */
.strength1,
.strength2 {
    position: relative;
    z-index: 5;
    overflow: visible;
    margin-bottom: 80px;
    color: #000;
}
.strength1 > .wp-block-group__inner-container,
.strength2 > .wp-block-group__inner-container,
.strength1 > .strength-inner,
.strength2 > .strength-inner {
    display: flex;
    flex-wrap: nowrap;
    column-gap: 50px;
    max-width: 1000px;
    margin: auto;
    padding: 50px 0;
}
.strength1 > .wp-block-group__inner-container::before,
.strength1::before {
    z-index: -1;
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: calc(50% + 400px);
    height: 100%;
    clip-path: polygon(0 0, 100% 0, calc(100% - 200px) 100%, 0% 100%);
    background-image: url(../img/strength-back.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-color: rgba(255,255,255,0.5);
    background-blend-mode: soft-light;
    content: '';
}
.strength2 > .wp-block-group__inner-container::before,
.strength2::before {
    z-index: -1;
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    width: calc(50% + 400px);
    height: 100%;
    clip-path: polygon(0 0, 100% 0, 100% 100%, calc(0% + 200px) 100%);
    background-image: url(../img/strength-back.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-color: rgba(255,255,255,0.5);
    background-blend-mode: soft-light;
    content: '';
}
.strength-item {
    display: flex;
}
.strength-item > .wp-block-group__inner-container {
    display: flex;
}
.strength2 .strength-item > .wp-block-group__inner-container,
.strength2 .strength-item {
    flex-direction: column-reverse;
}
.strength1 .strength-text {
    padding-right: 380px;
}
.strength2 .strength-text {
    padding-left: 380px;
}
.strength-text h2 {
    position: relative;
    margin-bottom: 0.7em;
    padding-left: 1.7em;
    font-size: 30px;
}
.strength-text h2::before,
.strength-text h2::after {
    position: absolute;
    top: calc(50% - 0.7em);
    left: 0;
    display: inline-block;
    width: 25px;
    height: 1.4em;
    clip-path: polygon(75% 0%, 100% 0%, 25% 100%, 0% 100%);
    background-color: var(--accent-y-color);
    vertical-align: middle;
    content: '';
}
.strength-text h2::after {
    margin-left: 10px;
}
.strength-image {
    position: relative;
    margin-left: 0 !important;
}
.strength-image > .wp-block-group__inner-container,
.strength-image > figure {
    position: absolute;
    right: 0;
    width: 350px;
    box-shadow: -2px -2px 4px rgba(0,0,0,0.25);
}
.strength2 .strength-image > .wp-block-group__inner-container,
.strength2 .strength-image > figure {
    left: 0;
}

/* business */
.business-section {
    overflow: visible;
    padding-bottom: 60px;
}
.business-item {
    display: flex;
    gap: 0;
    margin-bottom: 60px;
}
.business-item-image {
    z-index: 3;
    position: relative;
    max-width: 450px;
}
.business-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.business-item-text {
    position: relative;
    overflow: visible;
    padding-top: 100px;
    color: #000;
}
.business-item-text > * {
    z-index: 2;
    position: relative;
    padding-left: 40px;
    padding-right: 40px;
}
.business-item-text > *:last-child {
    margin-bottom: 0;
}
.business-item-text::before {
    z-index: 1;
    position: absolute;
    top: 60px;
    right: 0;
    display: block;
    width: calc(100% + 60px);
    height: 100%;
    background-color: #fff;
    content: '';
}
.business-item-title {
    margin-bottom: 25px;
    font-size: 28px;
}

/* recruit */
.appeal-item .wp-block-column {
    flex-basis: 0 !important;
}
.appeal-title {
    margin-bottom: 1em;
    font-size: 24px;
    font-weight: bold;
}
.appeal-item figure {
}
.appeal-item figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.staff-images {
    justify-content: center;
    padding: 20px;
    background-image: url(../img/strength-back.jpg);
    background-repeat: no-repeat;
    background-size: cover;
}
.staff-images .wp-block-image {
    text-align: center;
}

/* news */
.news .section-inner.wide {
    max-width: 1000px;
}
.news .col-2 {
    column-gap: 60px;
}
.news-list {

}
.news-list a {
    display: flex;
    margin-bottom: 2em;
}
.news-list .news-list-date {
    width: 110px;
}
.news-list .news-list-title {
    flex: 1;
    font-weight: bold;
}
.news-contents {
    flex: 1;
}
.news-sidebar {
    width: 230px;
}
.news-sidebar-title {
    margin-top: 60px;
    margin-bottom: 0.8em;
    padding-bottom: 0.8em;
    border-bottom: 2px solid var(--accent-y-color);
    font-size: 1.3em;
}
.widget:first-child .news-sidebar-title {
    margin-top: 0;
}
.news-sidebar-list a {
    display: inline-block;
    margin-bottom: 1.2em;
}
.news-title-area {
    margin-bottom: 50px;
    padding-bottom: 50px;
    border-bottom: 1px solid #F1F1F1;
}
.news-title {
    max-width: 1000px;
    margin: auto;
    margin-bottom: 20px;
}
.news-title-date {
    max-width: 1000px;
    margin: auto;
}

/* contact */
.contact-form-area {
    max-width: 800px;
    margin: auto;
    padding: 30px 0;
}
.form-item {
    display: flex;
    flex-direction: row;
    column-gap: 25px;
    align-items: start;
    margin-bottom: 1.5em;
}
.form-item .form-label {
    width: 210px;
    margin-top: 4px;
    text-align: right;
}
.form-item .form-label * {
    display: inline-block;
    margin-left: 0.5em;
    padding: 3px 8px;
    color: #fff;
}
.form-item .form-label .require {
    background-color: #f55;
}
.form-item .form-label .any {
    background-color: #555;
}
.form-item .form-input {
    position: relative;
    flex: 1;
}
.form-item .form-input .full {
    width: 100%;
}
.form-item .form-input input,
.form-item .form-input textarea {
    width: 100%;
    padding: 10px 10px;
    border-radius: 5px;
}
.form-item .form-input .number {
    width: 74px;
}
.form-item .form-input .sep {
    display: inline-block;
    margin: 0 10px;
    color: #fff;
}
.form-item .form-input .number::before {
    display: inline-block;
    position: absolute;
    top: 10px;
    content: '-';
    color: #f00;
}
.form-item .form-input textarea {
    height: 10em;
    line-height: 1.2em;
}
.form-submit-btn {
    display: block;
    width: 400px;
    margin: 0 auto 10px auto;
    padding: 20px;
    background-color: var(--accent-color);
    border: none;
    font-size: 22px;
    color: #fff;
}
.wpcf7-response-output {
    padding: 5px;
    color: #000;
}

/* wpcf */
.wpcf7-not-valid-tip {
    display: inline-block;
    margin-top: 5px;
    padding: 5px;
    background-color: #fcc;
    border: 1px solid #dc3232;
}
.wpcf7-response-output {
    background-color: #fcc;
}

@media (max-width: 1200px) {
    .header-inner {
        padding: 0 20px;
    }
    .breadcrumb {
        padding: 0 20px;
    }

    .section-inner {
        padding-left: 20px;
        padding-right: 20px;
    }

    .footer-inner {
        max-width: none;
        margin: auto 20px;
    }
    .top-section-inner {
        max-width: none;
        margin: auto 20px;
    }
    .top-section-text {
        max-width: none;
    }
    .top-section-text2 {
        width: auto;
        margin-right: 40px;
    }
    .top-section-text {
        position: static !important;
        padding-left: 20px;
        padding-right: 20px;
    }
    .top-section3 .top-link-area {
        padding-left: 20px;
    }

    .strength1 .strength-text {
        padding-left: 20px;
    }
    .strength2 .strength-text {
        padding-right: 20px;
    }

    .company-greeting-area {
        flex-direction: column;
        row-gap: 30px;
    }
    .company-greeting-area figure {
        width: 100%;
        min-width: none;
    }
}

@media (max-width: 900px) {
    .wrapper {
        padding: 30px 0;
    }
    #top_header_area,
    #header_area {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 100px;
    }
    #top_header_area #top_header_nav,
    #header_area #header_nav {
        background-color: var(--base-color);
    }
    #top_header_logo,
    #header_logo {
        position: static;
        width: auto;
        height: 100%;
        flex: 1;
        text-align: left;
    }
    #top_header_logo {
        background-color: #fff;
    }
    #top_header_logo a {
        color: #000;
    }
    #top_header_nav {
        margin-left: 0;
    }
    #header_logo {
        align-items: start;
        padding-left: 10px;
    }
    #top_header_logo h1,
    #header_logo h1 {
        display: inline-block;
    }
    #top_header_logo a,
    #header_logo a {
        display: flex;
        justify-content: start;
        align-items: center;
        column-gap: 10px;
    }
    #top_header_image_area {
        padding: 0 20px;
    }
    #top_header_nav,
    #header_nav {
        width: 100px;
    }
    #top_header_nav nav,
    #header_nav nav {
        display: none;
    }
    .header-inner {
        height: 100%;
        padding-right: 0;
        padding-left: 0;
    }
    #top_header_area.after #top_header_nav {
        box-shadow: 2px 2px 4px rgba(0,0,0,0.25);
    }
    #header_menu_btn {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
    }
    #header_menu_btn span {
        position: relative;
        display: inline-block;
        width: 24px;
        height: 3px;
        margin-top: -8px;
        border-radius: 5px;
        background-color: #fff;
        content: '';
    }
    #header_menu_btn span::before {
        position: absolute;
        top: 14px;
        left: 0;
        display: inline-block;
        width: 24px;
        height: 3px;
        border-radius: 5px;
        background-color: #fff;
        content: '';
    }
    #top_header_area.open,
    #header_area.open {
        flex-wrap: wrap;
    }
    #top_header_area.open #header_menu_area_sp,
    #header_area.open #header_menu_area_sp {
        z-index: 100;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: 100vh;
        background-color: var(--base-color);
    }
    #top_header_area.open #header_menu_btn span,
    #header_area.open #header_menu_btn span {
        top: 5px;
        transform: rotate(45deg);
    }
    #top_header_area.open #header_menu_btn span::before,
    #header_area.open #header_menu_btn span::before {
        top: 0px;
        left: 0px;
        transform: rotate(90deg);
    }
    .header-menu-sp ul {
        margin: 30px;
    }
    .header-menu-sp ul li {
        border-bottom: 1px solid #fff;
    }
    .header-menu-sp ul li a {
        display: block;
        padding: 20px;
        color: #fff;
        font-size: 20px;
    }

    .top-col-2 {
        flex-direction: column;
    }
    .top-section-text {
        padding-left: 20px;
        padding-right: 20px;
    }
    .top-section-text.right,
    .top-section-text.left {
        margin-left: 0;
        margin-right: 0;
    }
    .top-section3 .top-section-inner,
    .top-section4 .top-section-inner {
        padding: 20px 0;
    }
    .top-section3 {
        position: relative;
        padding-bottom: 100px;
    }
    .top-section3 .top-col-2 {
        row-gap: 0;
    }
    .top-section3 .top-link-area {
        position: absolute;
        bottom: -20px;
        left: 0;
        width: 100%;
        height: auto;
        margin: auto 20px;
    }
    .top-section5 .top-section-inner {
        padding-left: 20px;
        padding-right: 20px;
    }
    .top-section-image-area {
        max-height: none;
        margin-top: 30px;
        line-height: 0;
    }
    .top-section2 .top-col-2 {
        flex-direction: column-reverse;
    }
    .company-link-area {
        margin-top: 30px;
        margin-bottom: 30px;
    }
    .company-link-area img {
        width: 100%;
        height: auto;
    }

    .top-news-list {
        margin: 0 20px;
    }
    .top-news-list a {
        flex-direction: column;
        row-gap: 5px;
    }

    .top-section-inner {
        margin: auto;
        padding: 20px 0 0;
    }
    .top-section-inner .top-link-area {
        text-align: center;
    }
    .top-contact-btn-area {
        flex-direction: column;
        align-items: center;
        row-gap: 30px;
        margin-top: 30px;
        margin-bottom: 30px;
    }
    .top-contact-btn-area > div {
        width: 100%;
    }
    .top-contact-btn-area .wp-block-column.top-contact-mail-btn,
    .top-contact-btn-area .wp-block-column.top-contact-tel-btn {
        width: 100%;
        flex-basis: auto !important;
    }
    .top-contact-mail-btn a {
        width: 100%;
    }
    .top-contact-text {
        text-align: left;
    }

    /* strength */
    .strength1, .strength2 {
        margin: 0 20px 30px 20px;
    }
    .strength1 > .wp-block-group__inner-container,
    .strength2 > .wp-block-group__inner-container,
    .strength1 > .strength-inner,
    .strength2 > .strength-inner {
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .strength2 .strength-item > .wp-block-group__inner-container,
    .strength2 .strength-item {
        flex-direction: column;
    }
    .strength1 > .wp-block-group__inner-container::before,
    .strength2 > .wp-block-group__inner-container::before,
    .strength1::before,
    .strength2::before {
        width: 100%;
        clip-path: none;
    }
    .strength-item > .wp-block-group__inner-container,
    .strength-item {
        flex-direction: column;
    }
    .strength1 .strength-text,
    .strength2 .strength-text {
        padding-left: 20px;
        padding-right: 20px;
    }
    .strength-image > .wp-block-group__inner-container,
    .strength-image > figure {
        position: static;
        width: 100%;
    }
    .strength-image {
        padding: 0 20px;
    }

    .common-table tr {
        display: flex;
        flex-direction: column;
    }
    .common-table td,
    .common-table td:first-child {
        width: 100%;
    }

    /* business */
    .business-item {
        flex-direction: column;
    }
    .business-item-image {
        max-width: none;
    }
    .business-item-text {
        padding-top: 30px;
        color: #fff;
    }
    .business-item-text::before {
        display: none;
    }
    .business-item-text > * {
        padding-left: 0;
        padding-right: 0;
    }
    
    /* news */
    .wrapper.news {
        padding-bottom: 0;
    }
    .news .section-inner {
        padding-left: 0;
        padding-right: 0;
    }
    .news-contents {
        padding: 0 20px;
    }
    .news .col-2 {
        flex-direction: column;
    }
    .news-list a {
        flex-direction: column;
        row-gap: 8px;
        margin-bottom: 30px;
        padding-bottom: 30px;
        border-bottom: 1px solid #666;
    }
    .news-sidebar {
        width: 100%;
        padding: 20px;
        background-color: #f1f1f1;
        color: #000;
    }
    .news-sidebar-list a {
        margin-bottom: 30px;
        color: #000;
    }
    .news-title-area {
        padding-left: 20px;
        padding-right: 20px;
    }

    /* contact */
    .form-item {
        flex-direction: column;
        row-gap: 15px;
    }
    .form-item .form-label {
        width: 100%;
        text-align: left;
    }
    .form-item .form-label > * {
        margin-left: 0;
        padding-left: 0;
    }
    .form-item .form-input {
        width: 100%;
    }
    .form-submit-btn {
        width: 100%;
    }

    .footer-col-2 {
        flex-direction: column;
    }
    .footer-info-area {
        margin-bottom: 20px;
        padding-bottom: 20px;
        border-bottom: 1px solid #fff;
    }
    .footer-nav-area {
        margin-bottom: 20px;
    }
    .footer-nav-area nav ul {
        flex-direction: column;
        margin-bottom: 0;
    }
    .footer-nav-area nav ul li {
        margin-left: 0;
        margin-bottom: 1.5em;
    }
}

@media (max-width: 700px) {
    #loading_view .loading-title {
        column-gap: 20px;
    }
    .loading-title .loading-title-logo {
        width: 100px;
    }
    .section-title-area {
        max-width: auto;
    }
}

@media (max-width: 550px) {
    #loading_view .loading-title {
        flex-direction: column;
        row-gap: 30px;
    }
    .top-logo {
        width: 50px;
    }
    .header-logo-text {
        font-size: 18px;
    }
    #top_header_area,
    #header_area {
        height: 72px;
    }
    #top_header_nav,
    #header_nav {
        width: 80px;
    }
}
