@charset "UTF-8";

*,
::after,
::before {
    box-sizing: border-box
}

blockquote,
body,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
p {
    margin: 0
}

ol[role=list],
ul[role=list] {
    list-style: none
}

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5
}

a:not([class]) {
    -webkit-text-decoration-skip: ink;
    text-decoration-skip-ink: auto
}

picture {
    display: block;
    max-width: 100%
}

button,
input,
select,
textarea {
    font: inherit
}

@font-face {
    font-family: AdjustedYuGothic;
    font-weight: 400;
    src: local("Yu Gothic Medium")
}

@font-face {
    font-family: AdjustedYuGothic;
    font-weight: 700;
    src: local("Yu Gothic Bold")
}

@font-face {
    font-family: adis-icons;
    font-style: normal;
    font-weight: 400;
    src: url(fonts/adis-icons.ttf?qe1y1o) format("truetype"), url(fonts/adis-icons.woff?qe1y1o) format("woff"), url(fonts/adis-icons.svg?qe1y1o#adis-icons) format("svg");
    font-display: block
}

.btn-arrow_l span::after,
.btn-arrow_l span::before,
.btn-arrow_r span::after,
.btn-close_submenu::before,
.btn-contact span::before,
.c-list-check>li::before,
.c-tab a span::after,
.link-new_win::after,
.page-numbers .page-numbers.next::before,
.page-numbers .page-numbers.prev::before,
.page-top .slick-arrow::after,
.page_top_btn::before,
.sp .header_nav_list .header_nav_item::after,
.sp .header_subnav_list .header_nav_item::after {
    font-family: adis-icons !important;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    line-height: 1;
    text-transform: none;
    speak: never;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

@font-face {
    font-family: AdjustedYuGothic;
    font-weight: 400;
    src: local("Yu Gothic Medium")
}

@font-face {
    font-family: AdjustedYuGothic;
    font-weight: 700;
    src: local("Yu Gothic Bold")
}

html {
    font-size: 16px
}

body {
    min-width: 360px;
    overflow-x: clip;
    font-weight: 400;
    line-height: 1.7;
    color: #000;
    overflow-wrap: anywhere;
    line-break: strict;
    font-size: .875rem;
    font-family: dnp-shuei-gothic-kin-std, -apple-system, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif
}

.ua-sp body {
    -webkit-text-size-adjust: 100%
}

body::before {
    content: "sp";
    display: none
}

h1,
h2,
h3,
h4,
h5,
strong {
    font-weight: 600
}

a {
    color: #4672cc;
    text-decoration: none;
    transition: color .3s, background-color .3s, opacity .3s, letter-spacing .3s;
    backface-visibility: hidden
}

a img {
    transition: opacity .3s;
    backface-visibility: hidden
}

a[href^="tel:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
    cursor: default
}

.ua-sp a[href^="tel:"] {
    text-decoration: underline;
    pointer-events: initial;
    cursor: pointer
}

h1>a,
h2>a,
h3>a,
h4>a,
h5>a {
    color: inherit
}

p {
    margin-bottom: 1.5em
}

p:last-child {
    margin-bottom: 0
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
    border: 0;
    outline: 0
}

ol,
ul {
    margin: 0 0 1.2em;
    padding: 0;
    list-style-type: disc
}

ol:last-child,
ul:last-child {
    margin-bottom: 0
}

li {
    margin-left: 1.5em;
    text-indent: 0
}

ol {
    list-style-type: decimal
}

sub,
sup {
    font-size: 1em;
    line-height: 1;
    vertical-align: baseline
}

sup {
    bottom: 1ex
}

sub {
    top: .5ex
}

table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse
}

label input {
    vertical-align: -1px
}

button {
    font-size: 100%;
    line-height: inherit;
    cursor: pointer;
    border: none
}

address {
    font-style: normal
}

figcaption {
    font-size: .75rem;
    margin-top: .4em;
    text-align: center
}

summary {
    margin: 0;
    padding: 0;
    list-style-image: none
}

summary::-webkit-details-marker {
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    color: transparent;
    background-image: none
}

.slick-slider {
    position: relative;
    box-sizing: border-box;
    display: block;
    touch-action: pan-y;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: transparent
}

.slick-list {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    overflow: hidden
}

.slick-list:focus {
    outline: 0
}

.slick-list.dragging {
    cursor: pointer;
    cursor: hand
}

.slick-slider .slick-list,
.slick-slider .slick-track {
    transform: translate3d(0, 0, 0)
}

.slick-track {
    position: relative;
    top: 0;
    left: 0;
    display: block;
    margin-right: auto;
    margin-left: auto
}

.slick-track:after,
.slick-track:before {
    content: "";
    display: table
}

.slick-track:after {
    clear: both
}

.slick-loading .slick-track {
    visibility: hidden
}

.slick-slide {
    display: none;
    float: left;
    height: 100%;
    min-height: 1px
}

[dir=rtl] .slick-slide {
    float: right
}

.slick-slide img {
    display: block
}

.slick-slide.slick-loading img {
    display: none
}

.slick-slide.dragging img {
    pointer-events: none
}

.slick-initialized .slick-slide {
    display: block
}

.slick-loading .slick-slide {
    visibility: hidden
}

.slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent
}

.slick-arrow.slick-hidden {
    display: none
}

.l-sec {
    contain: content;
    padding-top: 50px
}

main>.l-sec:first-child {
    padding-top: 35px
}

.l-sec.is-sec-border {
    margin-top: 50px;
    border-top: 1px solid #e0e0e0
}

.l-sec_inner {
    box-sizing: content-box;
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 15px
}

.l-block:not(:first-child) {
    margin-top: 35px
}

.c-block_deco_eng,
.c-scnd_title_deco_eng,
.c-sec_deco_eng {
    font-family: roboto-condensed, sans-serif;
    font-weight: 700;
    position: absolute;
    z-index: -1;
    line-height: 1;
    color: #f3f3f3;
    text-transform: uppercase;
    speak: never;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.c-sec_deco_eng {
    font-size: clamp(60px, 20vw, 90px)
}

.c-block_deco_eng {
    font-size: 50px
}

.c-scnd_title_deco_eng {
    font-size: 70px;
    opacity: .1
}

.c-block-has-image .c-block_img {
    max-width: 388px;
    margin: 1em auto 0;
    text-align: center
}

.c-block-bg {
    padding: 24px;
    background: #f1eee6
}

.c-block-bg-light {
    background: #f3f3f3
}

.c-columns_wrapper {
    display: flex;
    flex-flow: column wrap;
    gap: 24px 0;
    margin: 1.5em 0
}

.c-columns_wrapper:last-child {
    margin-bottom: 0
}

.c-columns_wrapper>* {
    box-sizing: border-box
}

.c-flow_wrapper {
    display: flex;
    flex-flow: column nowrap;
    gap: 15px 0;
    margin: 2em 0;
    counter-reset: flow
}

.c-flow_wrapper:last-child {
    margin-bottom: 0
}

.c-flow_item {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    border: 1px solid #e0e0e0
}

.c-flow_item_no {
    position: relative;
    flex: 0 0 80px;
    align-self: stretch;
    margin: -1px 0 -1px -1px;
    color: #fff;
    text-align: center;
    counter-increment: flow;
    background: #ab1938
}

.c-flow_item_no span {
    font-family: roboto-condensed, sans-serif;
    font-weight: 700;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 10px;
    line-height: 1
}

.c-flow_item_no span::before {
    font-size: .6875rem;
    content: "Flow";
    text-transform: uppercase
}

.c-flow_item_no span::after {
    font-size: 1.875rem;
    content: "0" counter(flow)
}

.c-flow_item_title {
    font-weight: 600;
    font-size: 1rem;
    flex: 1 1 calc(100% - 80px);
    padding: 10px 15px 10px 20px;
    line-height: 1.5
}

.c-flow_item_body {
    flex: 0 0 100%;
    padding: 10px 15px
}

.nobr {
    display: inline-block
}

.link-anim {
    text-decoration: underline
}

.link-new_win::after {
    content: "\e903";
    margin: 0 0 0 .5em;
    font-size: 75%
}

.point01{
color:#ab1938;
}

.btn {
    position: relative;
    z-index: 1;
    display: inline-block;
    width: 260px;
    padding: .6em 1.5em;
    overflow: hidden;
    line-height: 1.3;
    color: #fff;
    background: #000;
    border-radius: 1.25em
}

.btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    width: 150%;
    height: 100%;
    background: linear-gradient(120deg, #a9002f 60%, #413633 100%);
    border-radius: 1.25em;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateX(-100%);
    will-change: transform
}

.btn-invert {
    color: #000;
    background: #fff
}

.btn-primary {
    font-size: 1.125rem;
    font-weight: 600;
    width: 260px
}

.btn-secondly {
    font-size: 1rem;
    width: 200px
}

.btn-tertiary {
    width: 180px;
    padding-top: .475em;
    padding-bottom: .475em;
    border-radius: 1.125em
}

.btn-contact span::before {
    content: "\e901";
    display: inline-block;
    margin-right: .5em;
    font-size: 143.75%;
    vertical-align: -.2em
}

.btn.btn-back {
    margin-left: 0;
    background: #666
}

.btn-arrow_l,
.btn-arrow_r {
    font-weight: 600;
    display: block;
    margin: 0 auto;
    padding-right: 2em;
    padding-left: 2em;
    text-align: center
}

.btn-arrow_l span::after,
.btn-arrow_r span::after {
    content: "\e900";
    position: absolute;
    top: 0;
    right: 1.5em;
    bottom: 0;
    height: 1em;
    margin: auto 0;
    font-size: 72.22%
}

.btn-arrow_l.btn-tertiary span::after,
.btn-arrow_r.btn-tertiary span::after {
    font-size: 11px
}

.btn-arrow_l span::after {
    content: none
}

.btn-arrow_l span::before {
    content: "\e900";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 1.5em;
    height: 1em;
    margin: auto 0;
    font-size: 72.22%;
    transform: rotate(180deg)
}

.btn_wrapper {
    margin-top: 1em;
    text-align: center
}

.btn-secondly-list {
    display: flex;
    flex-flow: row wrap;
    gap: 15px 2.5vw;
    align-items: center;
    justify-content: center;
    margin-top: 2.5em;
    list-style-type: none
}

.btn-secondly-list::after {
    content: "";
    display: block;
    width: 200px;
    height: 0
}

.btn-secondly-list li {
    margin: 0;
    padding: 0
}

.c-list-check,
.c-list-text_marker {
    margin: 0 0 1.5em;
    padding: 0
}

.c-list-check:last-child,
.c-list-text_marker:last-child {
    margin-bottom: 0
}

.c-list-check>li,
.c-list-text_marker>li {
    margin: 0 0 .5em
}

.c-list-text_marker {
    list-style-type: none
}

.c-list-text_marker>li {
    padding: 0 0 0 1em;
    text-indent: -1em
}

.c-list-text_marker>li>* {
    text-indent: 0
}

.c-list-check {
    list-style-type: none
}

.c-list-check:last-child {
    margin-bottom: 0
}

.c-list-check>li {
    position: relative;
    padding: 0 0 0 2em
}

.c-list-check>li::before {
    content: "\e902";
    position: absolute;
    top: .4em;
    left: .2em;
    display: block;
    color: #ab1938
}

.c-list-horizontal {
    display: flex;
    flex-flow: row wrap;
    gap: 1em 1.5em;
    list-style-type: none
}

.c-list-horizontal>li {
    margin: 0;
    padding: 0
}

.c-dl-news {
    line-height: 1.5;
    border-top: 1px solid #eee
}

.c-dl-news>dt {
    margin-top: .4em;
    padding-top: .4em
}

.c-dl-news>dt:first-child {
    margin-top: 0
}

.c-dl-news>dd {
    padding: 0 0 .5em 1em
}

.c-dl-news dt {
    font-weight: 600
}

.c-dl-news dd {
    border-bottom: 1px solid #eee
}

.c-dl-news a {
    color: #000
}

.page-numbers {
    position: relative;
    z-index: 2;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: center;
    margin: 0;
    list-style-type: none
}

.page-numbers li {
    width: 3em;
    height: 3em;
    margin: 0 5px;
    padding: 0
}

.page-numbers a,
.page-numbers span {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 3em;
    text-align: center
}

.page-numbers a {
    color: #fff;
    background: #000
}

.page-numbers span.page-numbers {
    background: #e0e0e0
}

.page-numbers span.page-numbers.dots {
    background: 0 0
}

.page-numbers .page-numbers.next,
.page-numbers .page-numbers.prev {
    display: block;
    height: 0;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    width: 100%;
    padding-top: 100%
}

.page-numbers .page-numbers.next::before,
.page-numbers .page-numbers.prev::before {
    content: "\e900";
    position: absolute;
    top: 1px;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    height: 9px;
    margin: auto;
    font-size: 72.22%;
    line-height: 9px
}

.page-numbers .page-numbers.prev:before {
    transform: rotate(180deg)
}

.c-p-catch {
    font-size: 1rem;
    line-height: 1.7
}

.c-p-center {
    text-align: center
}

.c-p-note {
    font-size: .6875rem;
    color: #999
}

.c-tab {
    font-size: .875rem;
    display: flex;
    flex-flow: row wrap;
    gap: .5em 8px;
    justify-content: center;
    max-width: 30em;
    margin: 0 auto 30px;
    line-height: 1.4;
    list-style-type: none
}

.c-tab>li {
    flex: 0 0 auto;
    margin: 0;
    padding: 0
}

.c-tab a {
    font-weight: 600;
    position: relative;
    display: block;
    width: 100%;
    padding: .5em 0 .74em;
    overflow: clip;
    color: #000;
    text-align: center
}

.c-tab a::after,
.c-tab a::before {
    content: "";
    position: absolute;
    left: 0;
    display: block
}

.c-tab a::before {
    bottom: 1px;
    width: 100%;
    height: 1px;
    background: #e0e0e0
}

.c-tab a::after {
    bottom: 0;
    width: 150%;
    height: 3px;
    background: linear-gradient(to left, #231815 0, #ab1938 33.33%) 100% center;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateX(-100%)
}

.c-tab a span::after {
    content: "\e900";
    display: inline-block;
    margin: 0 0 0 1em;
    font-size: 72.22%;
    color: #ab1938;
    vertical-align: .1em
}

.c-tab a.is-current::after {
    transform: translateX(0)
}

.c-tab a.is-current span::after {
    color: #e0e0e0;
    transform: rotate(90deg)
}

.c-tab a.is-anchor span::after {
    transform: rotate(90deg)
}

.c-tit-h2,
.c-tit-h3,
.c-tit-h4,
h2.wp-block-heading,
h3.wp-block-heading,
h4.wp-block-heading {
    line-height: 1.6
}

.c-tit-h2,
h2.wp-block-heading {
    font-size: 1.5rem;
    margin-bottom: .6em
}

.c-tit-h3,
h3.wp-block-heading {
    font-size: 1.25rem;
    margin-bottom: .7em
}

.c-tit-h4,
h4.wp-block-heading {
    font-size: 1.125rem;
    margin-bottom: .6em
}

.c-sec-works_related {
    margin-top: 50px;
    padding: 35px 0 50px;
    background: #f3f3f3
}

.c-sec-works_related .c-tit-h3 {
    margin-bottom: 1.2em;
    text-align: center
}

.c-works_list {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    margin: -25px -10px 20px
}

.c-works_item {
    position: relative;
    display: block;
    flex: 0 0 100%;
    max-width: 400px;
    height: 100%;
    margin-top: 25px;
    padding: 0 10px;
    color: #000
}

.c-works_item::before {
    top: -10px;
    right: 0;
    bottom: -10px;
    left: 0;
    content: "";
    position: absolute;
    z-index: -1;
    display: block;
    background: #fff;
    opacity: 0;
    transition: opacity .3s cubic-bezier(.66, .2, .38, .83)
}

.c-works_item_img {
    position: relative;
    overflow: hidden;
    max-width: 260px;
    max-height: 260px;
    aspect-ratio: 1/1;
    margin-right: auto;
    margin-bottom: .625em;
    margin-left: auto
}

.c-works_item_img img {
    display: block;
    width: 100%;
    height: 100%;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83), filter .3s cubic-bezier(.66, .2, .38, .83);
    transform-origin: center 85%;
    -o-object-fit: cover;
    object-fit: cover
}

.c-works_item_img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.c-works_item_outline {
    line-height: 1.4
}

.c-works_item_category {
    font-size: .75rem;
    margin: 0 0 .3em;
    padding: 0
}

.c-works_item_client {
    font-size: .75rem;
    margin-bottom: .3em;
    color: #999
}

.c-works_item_client .client_name {
    font-size: .8125rem;
    color: #000
}

.c-works_item_client .client_industry {
    margin-left: .75em
}

.c-works_item_title {
    font-weight: 600;
    line-height: 1.4
}

.c-works_item_title_text {
    background: linear-gradient(to top, currentColor, currentColor) no-repeat left bottom;
    background-size: 0 1px;
    transition: background-size .3s cubic-bezier(.66, .2, .38, .83);
    text-decoration: underline
}

.is-js .js-delay {
    filter: blur(10px);
    opacity: 0;
    transition: opacity .8s .2s cubic-bezier(.66, .2, .38, .83), transform .8s cubic-bezier(.66, .2, .38, .83);
    transform: translateY(100px)
}

.is-js .js-delay .c-sec_deco_eng {
    letter-spacing: .6em;
    opacity: 0;
    will-change: letter-spacing, opacity;
    transition: letter-spacing .8s .3s cubic-bezier(.66, .2, .38, .83), opacity .8s .3s cubic-bezier(.66, .2, .38, .83)
}

.is-js .js-delay.js-delay-show {
    filter: blur(0);
    opacity: 1;
    transform: translateY(0)
}

.is-js .js-delay.js-delay-show .c-sec_deco_eng {
    letter-spacing: 0;
    opacity: 1
}

.c-tag {
    font-size: .8125rem;
    display: inline-block;
    min-width: 5.54em;
    padding: 0 .75em;
    line-height: 1.46;
    text-align: center;
    background: #f7dae0;
    border-radius: 3px
}

.c-tags_list {
    font-size: .8125rem;
    display: flex;
    flex-flow: row wrap;
    gap: .5em .7em;
    list-style-type: none
}

.c-tags_list li {
    margin: 0;
    padding: 0;
    line-height: 1
}

.editor-styles-wrapper h2.wp-block-heading:not(:first-child),
.editor-styles-wrapper h3.wp-block-heading:not(:first-child),
.editor-styles-wrapper h4.wp-block-heading:not(:first-child),
.post_body h2.wp-block-heading:not(:first-child),
.post_body h3.wp-block-heading:not(:first-child),
.post_body h4.wp-block-heading:not(:first-child) {
    margin-top: 1.25em
}

.editor-styles-wrapper hr,
.post_body hr {
    width: 100% !important;
    height: 1px;
    margin: 35px 0;
    border: none;
    border-bottom: 1px solid #e0e0e0
}

.editor-styles-wrapper .wp-block-embed:not(:last-child),
.post_body .wp-block-embed:not(:last-child) {
    margin-bottom: 1.5em
}

.editor-styles-wrapper .wp-block-embed iframe,
.post_body .wp-block-embed iframe {
    display: block;
    width: 560px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    margin: 0 auto
}

.editor-styles-wrapper .wp-embed-aspect-16-9 iframe,
.post_body .wp-embed-aspect-16-9 iframe {
    aspect-ratio: 16/9
}

.editor-styles-wrapper .has-main-color,
.post_body .has-main-color {
    color: #ab1938
}

.editor-styles-wrapper .has-main-background-color,
.post_body .has-main-background-color {
    background-color: #ab1938
}

.editor-styles-wrapper .has-sub-color,
.post_body .has-sub-color {
    color: #231815
}

.editor-styles-wrapper .has-sub-background-color,
.post_body .has-sub-background-color {
    background-color: #231815
}

.editor-styles-wrapper .has-bg-color,
.post_body .has-bg-color {
    color: #f3f3f3
}

.editor-styles-wrapper .has-bg-background-color,
.post_body .has-bg-background-color {
    background-color: #f3f3f3
}

.editor-styles-wrapper .has-border-color,
.post_body .has-border-color {
    color: #e0e0e0
}

.editor-styles-wrapper .has-border-background-color,
.post_body .has-border-background-color {
    background-color: #e0e0e0
}

.editor-styles-wrapper .wp-block-image:not(:last-child),
.post_body .wp-block-image:not(:last-child) {
    margin-bottom: 1.5em
}

.aligncenter {
    display: block;
    margin-right: auto;
    margin-left: auto
}

.alignright {
    float: right;
    margin-left: 1.5em
}

.alignleft {
    float: left;
    margin-right: 1.5em
}

body.is-menu-open {
    height: 100%;
    overflow: hidden
}

.spaceHeader {
    height: 50px
}

.c-anchor_tgt {
    display: block;
    margin-top: -50px;
    padding-top: 50px
}

header {
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background: rgba(255, 255, 255, .8)
}

body.is-menu-open header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: #fff
}

.flow_sp{
text-align: center;
margin-bottom: 13px;
padding:3px;
}

.floating-banner {
    position: fixed; /* ここを固定位置に */
    bottom: 20px; /* バナーの表示位置 */
    right: 20px; /* バナーの表示位置 */
    display: none; /* 初期状態で非表示 */
}

.flow_pc, .flow_pc2 {
    display: block; /* ここはblockのまま */
    width: 200px;
    filter: drop-shadow(5px 5px 5px #aaa);
}

.banner-close {
    position: absolute;
    top: -2px;
    right: -4px;
    z-index: 99999; /* 他の要素に隠れないように */
    cursor: pointer;
}

.floating-banner {
    position: fixed; /* ここを固定位置に */
    bottom: 20px; /* バナーの表示位置 */
    right: 20px; /* バナーの表示位置 */
    display: none; /* 初期状態で非表示 */
}
.flow_pc{
margin-bottom: 10px;
}

.flow_pc2{
margin-bottom: 75px;
}

.flow_pc, .flow_pc2 {
    display: block; /* ここはblockのまま */
    width: 200px;
}

.banner-close {
    position: absolute;
    top: -2px;
    right: -4px;
    z-index: 99999; /* 他の要素に隠れないように */
    cursor: pointer;
}



.header_inner {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between
}

.header_id {
    position: relative;
    z-index: 20;
    line-height: 1
}

.header_id img {
    width: 100px
}

.navbtn-menu {
    position: relative;
    z-index: 20;
    width: 50px;
    height: 50px;
    margin-right: -15px;
    overflow: hidden;
    background: 0 0;
    border: none
}

.navbtn-menu::after,
.navbtn-menu::before {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    display: block;
    width: 25px;
    height: 2px;
    margin: 0 auto;
    background: #231815;
    transition: transform .4s cubic-bezier(.66, .2, .38, .83);
    transform: translateY(0) rotate(0) scaleX(1)
}

.navbtn-menu::before {
    top: 15px
}

.navbtn-menu::after {
    top: 33px
}

.navbtn-menu.is-open::before {
    background: #a9002f;
    transform: translateY(9px) rotate(-225deg) scaleX(1.2)
}

.navbtn-menu.is-open::after {
    background: #a9002f;
    transform: translateY(-9px) rotate(225deg) scaleX(1.2)
}

.navbtn-menu.is-open .navbtn-menu_line {
    opacity: 0;
    transform: translateX(50px)
}

.navbtn-menu_line {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 25px;
    height: 2px;
    margin: auto;
    background: #231815;
    transition: transform .4s cubic-bezier(.66, .2, .38, .83), opacity .3s cubic-bezier(.66, .2, .38, .83)
}

.header_nav {
    font-size: 1rem;
    position: absolute;
    top: 50px;
    left: 100vw;
    z-index: 10;
    align-items: center;
    width: 100%;
    height: 100dvh;
    padding: 0 0 50px;
    overflow-x: clip;
    overflow-y: auto;
    background: rgba(255, 255, 255, .85);
    transition: transform .4s cubic-bezier(.66, .2, .38, .83);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px)
}

.header_nav::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 125vw;
    z-index: -1;
    width: 100%;
    height: 80dvh;
    max-height: 120vw;
    background: url(../images/bg-nav_sp.png) no-repeat 75% 0;
    background-size: cover;
    opacity: 0;
    transition: transform .4s .2s cubic-bezier(.66, .2, .38, .83), opacity .4s .2s cubic-bezier(.66, .2, .38, .83)
}

.header_nav .sp {
    width: 100%
}

body.is-menu-open .header_nav {
    transform: translateX(-100vw)
}

body.is-menu-open .header_nav::before {
    opacity: .3;
    transform: translateX(-100vw)
}

.header_nav_list,
.header_subnav_list {
    display: flex;
    flex-flow: column nowrap;
    list-style-type: none
}

.header_nav_list li,
.header_subnav_list li {
    margin: 0;
    padding: 0
}

.header_nav_list .header_nav_item,
.header_nav_list a,
.header_subnav_list .header_nav_item,
.header_subnav_list a {
    font-weight: 600;
    position: relative;
    display: block;
    width: 100%;
    color: #000
}

.sp .header_nav_list,
.sp .header_subnav_list {
    margin: 0 15px 40px
}

.sp .header_nav_list .header_nav_item,
.sp .header_nav_list a,
.sp .header_subnav_list .header_nav_item,
.sp .header_subnav_list a {
    padding: 15px 10px;
    border-bottom: 1px solid #e0e0e0
}

.sp .header_nav_list .header_nav_item,
.sp .header_subnav_list .header_nav_item {
    text-align: left
}

.sp .header_nav_list .header_nav_item::after,
.sp .header_subnav_list .header_nav_item::after {
    content: "\e900";
    position: absolute;
    top: 0;
    right: 10px;
    bottom: 0;
    height: 1em;
    margin: auto 0;
    font-size: 72.22%;
    color: #ab1938
}

.header_nav_list.pc,
.header_subnav_list.pc {
    flex-flow: row nowrap;
    gap: 0 2.5vw;
    height: 100%;
    margin: 0;
    text-align: center
}

.header_nav_list.pc a,
.header_nav_list.pc li,
.header_subnav_list.pc a,
.header_subnav_list.pc li {
    height: 100%
}

.header_nav_list.pc a,
.header_subnav_list.pc a {
    display: flex !important;
    flex-flow: column nowrap;
    align-items: center;
    justify-content: center;
    width: auto;
    padding: 10px 0 8px;
    overflow: hidden
}

.header_nav_list.pc a::before,
.header_subnav_list.pc a::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 150%;
    height: 5px;
    background: linear-gradient(to left, #231815 0, #ab1938 33.33%) 100% center;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateX(-100%)
}

.header_nav_list.pc a.is-current::before,
.header_subnav_list.pc a.is-current::before {
    transform: translateX(0)
}

.header_nav_item {
    background: 0 0;
    border: none
}

.header_sub_menu {
    position: absolute;
    top: 0;
    right: -100vw;
    z-index: 2;
    width: calc(100% - 22.5px);
    min-height: 100%;
    background: #f3f3f3;
    box-shadow: 0 0 10px 0 rgba(35, 24, 21, .3);
    transition: transform .4s cubic-bezier(.66, .2, .38, .83);
    transform: translateX(0)
}

.header_sub_menu.is-open {
    transform: translateX(-100vw)
}

.btn-close_submenu {
    display: block;
    width: 100%;
    padding: 15px 10px;
    color: #000;
    text-align: left;
    background: 0 0;
    border: none;
    border-bottom: 1px solid #e0e0e0
}

.btn-close_submenu::before {
    content: "\e900";
    display: inline-block;
    margin: 0 1em 0 0;
    font-size: 72.22%;
    color: #999;
    transform: scaleX(-100%)
}

.header_subnav_list {
    list-style-type: none
}

header .btn-contact {
    display: block;
    width: 200px;
    margin: 0 auto;
    text-align: center;
    vertical-align: middle
}

.sec-cta {
    position: relative;
    padding: 50px 0;
    color: #fff;
    text-align: center;
    background: url(../images/bg-cta.jpg) no-repeat 65% center;
    background-size: cover
}

.sec-cta::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    display: block;
    width: 1px;
    height: 42px;
    margin: 0 auto;
    background: #fff
}

.sec-cta .c-p-catch {
    max-width: 15em;
    margin-right: auto;
    margin-left: auto
}

.cta_btn-contact {
    background: #ab1938;
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .2);
    transition: box-shadow .3s cubic-bezier(.66, .2, .38, .83)
}

.cta_btn-contact::before {
    background: #c11c3f
}

footer {
    padding-top: 40px
}

.footer_wrapper {
    font-size: .9375rem
}

.footer_wrapper address {
    font-size: .875rem
}

.footer_info {
    display: flex;
    flex-flow: column nowrap;
    align-items: center
}

.footer_company_wrapper {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    margin-bottom: 1em
}

.footer_company_id {
    width: 100px;
    margin-right: 20px
}

.footer_company_text {
    font-size: .75rem;
    line-height: 1.4
}

.footer_company_text_main {
    font-size: .9375rem;
    font-weight: 600
}

.footer_nav {
    display: none
}

.footer_nav a {
    color: #000
}

.footer_nav_clm {
    margin-top: 1.5em
}

.footer_nav_category {
    font-weight: 600;
    display: inline-block
}

.footer_nav_list {
    list-style-type: none
}

.footer_nav_list:first-child {
    margin-top: -.5em
}

.footer_nav_list li {
    margin: 0;
    padding: .5em;
    line-height: 1.4
}

.footer_nav_under li {
    position: relative;
    padding-left: 1.1em
}

.footer_nav_under li::before {
    content: "";
    position: absolute;
    top: 1.2em;
    left: 0;
    display: block;
    width: 5px;
    height: 1px;
    background: #999
}

.copyright {
    font-size: .625rem;
    padding: 2.4em 0;
    color: #999
}

.page_top_wrapper {
    position: sticky;
    right: 0;
    bottom: 20px;
    left: 0;
    z-index: 9
}

.page_top_wrapper .page_top_inner {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto
}

.page_top_btn {
    position: absolute;
    right: 5px;
    bottom: 0;
    display: block;
    width: 50px;
    height: 50px;
    line-height: 1;
    background: #000;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    opacity: 1;
    transition: background-color .3s cubic-bezier(.66, .2, .38, .83), opacity .3s cubic-bezier(.66, .2, .38, .83), transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateY(0)
}

.page_top_btn::before {
    content: "\e900";
    position: absolute;
    inset: 0;
    display: block;
    width: 1em;
    height: 1em;
    margin: auto;
    color: #fff;
    transform: rotate(-90deg)
}

.page_top_btn span {
    display: none
}

body.not-scrolled .page_top_btn {
    opacity: 0;
    transform: translateY(100px)
}

.sec-scnd_tit .l-sec_inner {
    font-size: 1.875rem;
    position: relative;
    z-index: 1;
    display: flex;
    flex-flow: column wrap;
    justify-content: center;
    height: 4.5em
}

.sec-scnd_tit .scnd_tit_bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    width: calc(50% + 50vw);
    min-width: 100%;
    margin-left: calc((50vw - 50%) * -1)
}

.sec-scnd_tit .scnd_tit_bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.sec-scnd_tit .scnd_tit_txt {
    font-weight: 600;
    font-size: inherit;
    line-height: 1.4;
    color: #fff
}

.content_wrapper {
    padding-bottom: 50px
}

.sec-bread {
    font-size: .6875rem;
    padding: 1.2em 0;
    line-height: 1.5;
    border-top: 1px solid #f3f3f3;
    border-bottom: 1px solid #f3f3f3
}

.sec-bread .sec_inner {
    position: relative
}

.bread_list {
    margin: 0;
    padding: 0;
    overflow: hidden;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
    list-style-type: none
}

.bread_list li {
    display: inline;
    margin: 0 .6em 0 0;
    padding: 0
}

.bread_list li::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 1em;
    margin: 0 0 0 .7em;
    vertical-align: -.1em;
    background: #e1627d;
    transform: skew(-25deg)
}

.bread_list li:last-child::after {
    content: none
}

.bread_list a {
    color: #000;
    text-decoration: none
}

.bread_list a img {
    vertical-align: 0
}

.page-top .sec-mv {
    position: relative;
    z-index: 3;
    padding-bottom: 50px
}

.is-js .page-top .sec-mv .mv_catch_main {
    opacity: 0;
    transition: .8s cubic-bezier(.66, .2, .38, .83);
    transition-property: opacity, transform;
    transform: translateX(-100px)
}

.is-js .page-top .sec-mv.js-delay-show .mv_catch_main {
    opacity: 1;
    transform: translateX(0)
}

.page-top .sec-mv .l-sec_inner {
    position: relative;
    z-index: 2
}

.page-top .mv_img {
    position: relative;
    z-index: 1;
    height: 60vmin;
    max-height: 300px
}

.page-top .mv_img::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, .7) 80%);
    mix-blend-mode: lighten
}

.page-top .mv_img img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 50% top;
    object-position: 50% top
}

.page-top .mv_catch {
    position: relative;
    z-index: 1;
    text-align: center
}

.page-top .mv_catch p {
    font-size: 1rem;
    line-height: 1.8
}

.page-top .mv_catch_main {
    font-weight: 600;
    letter-spacing: .1em;
    font-size: 2rem;
    margin-top: -.7em;
    margin-bottom: .5em;
    font-feature-settings: "palt";
    line-height: 1.5;
    text-shadow: 0 0 10px rgba(255, 255, 255, .8)
}

.page-top .sec-services {
    position: relative;
    z-index: 1
}

.page-top .sec-services::before {
    content: "";
    position: absolute;
    top: 0;
    z-index: -2;
    display: block;
    margin: 0;
    right: 15px;
    left: 0;
    height: 85%;
    background: #f3f3f3
}

.page-top .sec-services .c-sec_deco_eng {
    top: 0;
    left: .4em;
    color: #fff;
    transform: translateY(-100%) rotate(90deg) translateY(.5em);
    transform-origin: left bottom
}

.page-top .service_outline {
    padding: 0 0 35px;
    text-align: center
}

.page-top .service_outline .c-p-catch {
    max-width: 85%;
    margin-right: auto;
    margin-left: auto
}

.page-top .service_item {
    cursor: pointer;
    background: #fff
}

.page-top .service_item_img {
    position: relative;
    overflow: hidden;
    font-size: 1.125rem;
    height: 16em;
    max-height: 320px
}

.page-top .service_item_img img {
    display: block;
    width: 100%;
    height: 100%;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83), filter .3s cubic-bezier(.66, .2, .38, .83);
    transform-origin: center 85%;
    -o-object-fit: cover;
    object-fit: cover
}

.page-top .service_item_img img {
    height: 16em
}

.page-top .service_item_tit {
    font-size: 1.125rem;
    position: absolute;
    top: 0;
    left: 1.5em;
    z-index: 1;
    height: 12em;
    padding: 1em .3em;
    overflow: hidden;
    line-height: 1.4;
    background: #fff;
    writing-mode: vertical-rl;
    transition: color .3s cubic-bezier(.66, .2, .38, .83)
}

.page-top .service_item_tit::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, #231815 0, #000 50%);
    transition: transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateY(-100%)
}

.page-top .service_item_txt {
    position: relative;
    padding: 2em 10px
}

.page-top .service_item_txt p {
    margin-bottom: 0
}

.page-top .service_item_more {
    position: absolute;
    top: -1.25em;
    right: 0;
    width: 100px;
    pointer-events: none;
    border-radius: 1.25em 0 0 1.25em
}

.page-top .service_item_more span::after {
    right: 1.1em
}

.page-top .sec-works {
    position: relative;
    z-index: 1;
    padding-top: 30px;
    padding-bottom: 40px
}

.page-top .sec-works::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 1400px;
    max-width: 100%;
    height: 60%;
    margin: 0 auto;
    background: #f1eee6
}

.page-top .sec-works .l-sec_inner {
    position: relative
}

.page-top .sec-works .c-sec_deco_eng {
    top: -.2em;
    right: 0;
    left: 0;
    margin: 0 auto;
    text-align: center
}

.page-top .sec-works .c-tit-h2 {
    text-align: center
}

.page-top .sec-works .slick-list {
    margin-bottom: -30px;
    padding-bottom: 30px
}

.page-top .sec-works .slick-track {
    display: flex !important;
    width: 100% !important
}

.page-top .sec-works .slick-slide {
    flex-basis: auto;
    height: inherit !important
}

.page-top .slick-slider {
    position: relative;
    padding: 0 50px
}

.page-top .slick-arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    width: 24px;
    height: 100px;
    margin: auto 0;
    overflow: hidden;
    color: #fff;
    background: #000;
    border: none;
    border-radius: 12px;
    transition: background-color .3s cubic-bezier(.66, .2, .38, .83)
}

.page-top .slick-arrow::after {
    content: "\e900";
    font-size: 13px
}

.page-top .slick-prev {
    left: 15px
}

.page-top .slick-prev::after {
    display: block;
    transform: scaleX(-1)
}

.page-top .slick-next {
    right: 15px
}

.page-top .sec-news .c-sec_deco_eng {
    font-size: 3.125rem;
    top: .75em;
    left: 0
}

.page-top .news_wrapper {
    display: flex;
    flex-flow: column nowrap
}

.page-top .news_title {
    display: contents
}

.page-top .news_wrapper .btn_wrapper {
    order: 3;
    margin-top: 1.5em
}

.page-top .sec-company .c-sec_deco_eng {
    top: .25em;
    left: 0
}

.page-top .company_body {
    margin-bottom: 1em;
    text-align: center
}

.page-top .company_img {
    position: relative;
    z-index: -1;
    max-height: 200px;
    margin: 0 -15px
}

.page-top .company_img_wrapper img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.page-service .service_list_item {
    position: relative;
    z-index: 1;
    padding-top: 30px
}

.page-service .service_list_item:not(:first-child) {
    margin-top: 40px
}

.page-service .service_list_item:nth-child(2n) .service_list_item_img {
    right: -15px;
    left: auto
}

.page-service .service_list_item:nth-child(2n) .service_list_item_body {
    margin-right: 30px;
    margin-left: 0
}

.page-service .service_list_item:nth-child(2n) .service_list_item_body::before {
    background: linear-gradient(to right, #f3f3f3 10%, rgba(255, 255, 255, .85) 100%)
}

.page-service .service_list_item_img {
    position: absolute;
    top: 0;
    bottom: 100px;
    left: -15px;
    z-index: -1;
    width: 90%
}

.page-service .service_list_item_img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.page-service .service_list_item_body {
    position: relative;
    z-index: 1;
    margin: 0 0 0 30px;
    padding: 30px 15px 0
}

.page-service .service_list_item_body::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 20px;
    left: 0;
    z-index: -1;
    display: block;
    background: linear-gradient(to left, #f3f3f3 10%, rgba(255, 255, 255, .85) 100%)
}

.page-service_detail .service_icons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
    align-items: stretch;
    justify-content: center;
    list-style-type: none
}

.page-service_detail .service_icons>li {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
    gap: .4em;
    justify-content: center;
    margin: 0;
    padding: 15px;
    text-align: center;
    background: #f1eee6
}

.page-service_detail .service_icon_img {
    align-self: center;
    width: 45px;
    aspect-ratio: 1/1;
    margin: 0 auto
}

.page-service_detail .service_icon_text {
    font-weight: 600;
    display: block;
    line-height: 1.5
}

.page-service_detail .service_footnav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5em 0;
    justify-content: center
}

.page-service_detail .service_footnav_item {
    position: relative;
    padding-bottom: 1.25em;
    cursor: pointer;
    background: #fff
}

.page-service_detail .service_footnav_item.is-current {
    pointer-events: none
}

.page-service_detail .service_footnav_item.is-current .service_footnav_item_tit {
    color: #fff;
    background: #ab1938
}

.page-service_detail .service_footnav_item.is-current .service_footnav_item_more {
    background: #e0e0e0
}

.page-service_detail .service_footnav_item_img {
    position: relative;
    overflow: hidden;
    font-size: 1rem;
    height: 14em
}

.page-service_detail .service_footnav_item_img img {
    display: block;
    width: 100%;
    height: 100%;
    transition: transform .3s cubic-bezier(.66, .2, .38, .83), filter .3s cubic-bezier(.66, .2, .38, .83);
    transform-origin: center 85%;
    -o-object-fit: cover;
    object-fit: cover
}

.page-service_detail .service_footnav_item_tit {
    font-size: 1rem;
    position: absolute;
    top: 0;
    left: 1.5em;
    z-index: 1;
    height: 12em;
    padding: .75em .3em;
    overflow: hidden;
    line-height: 1.4;
    color: #000;
    background: #fff;
    writing-mode: vertical-rl;
    transition: color .3s cubic-bezier(.66, .2, .38, .83)
}

.page-service_detail .service_footnav_item_tit::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, #231815 0, #000 50%);
    transition: transform .3s cubic-bezier(.66, .2, .38, .83);
    transform: translateY(-100%)
}

.page-service_detail .service_footnav_item_more {
    font-size: .75rem;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100px;
    pointer-events: none;
    border-radius: 1.25em 0 0 1.25em
}

.page-service_detail .service_footnav_item_more span::after {
    right: 1.1em
}

.page-works .works_main_list .c-works_item::before {
    background: #f1eee6
}

.page-works .works_main_list .c-works_item_img {
    max-width: 388px;
    max-height: 388px
}

.page-works_detail .works_client {
    font-size: 1rem;
    font-weight: 600;
    margin-top: -.25em;
    margin-bottom: 1em;
    line-height: 1.5
}

.page-works_detail .client_industry {
    margin-left: .75em;
    color: #999
}

.page-works_detail .post_body {
    padding-top: .5em
}

.page-works_detail .works_main_image {
    position: relative;
    z-index: 2;
    aspect-ratio: 1200/580
}

.page-works_detail .works_main_image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.page-works_detail .works_attr {
    position: relative;
    z-index: 1;
    margin-bottom: 35px;
    padding: 2.2em 0 24px
}

.page-works_detail .works_attr::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: -1;
    display: block;
    width: 100vw;
    min-width: 100%;
    height: calc(100% + 120px);
    background: #f3f3f3;
    transform: translateX(-50%)
}

.page-works_detail .works_attr_tit {
    font-weight: 600;
    font-size: 1rem
}

.page-works_detail .works_goal {
    font-size: 1rem;
    font-weight: 600;
    position: relative;
    margin-top: .1em;
    padding-top: 1.1em
}

.page-works_detail .works_goal .c-block_deco_eng {
    top: .1em;
    left: -15px;
    color: #fff
}

.page-works_detail .works_goal_tit {
    margin-bottom: .4em;
    overflow: hidden;
    white-space: nowrap
}

.page-works_detail .works_goal_tit::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 1px;
    margin-left: .4em;
    vertical-align: .4em;
    background: #e1627d
}

.page-works_detail .works_attr_data {
    position: relative;
    padding: 0 0 1px;
    line-height: 1.5
}

.page-works_detail .works_attr_data>dt {
    position: relative;
    z-index: 2;
    float: left;
    width: 5.4em;
    margin: 0;
    padding: .5em 0;
    clear: both
}

.page-works_detail .works_attr_data>dd {
    position: relative;
    margin: 0;
    padding: .5em 0 .5em 7.275em;
    word-break: break-all
}

.page-works_detail .works_attr_data dt {
    font-weight: 600;
    position: relative
}

.page-works_detail .works_attr_data dt::after {
    content: "";
    position: absolute;
    top: .75em;
    right: 0;
    display: block;
    width: 1px;
    height: 1em;
    background: #e1627d
}

.page-works_detail .works_main_result {
    font-size: 1.375rem;
    font-weight: 600;
    position: relative;
    margin: 0 0 1.5em;
    padding: 0 0 .25em;
    border-bottom: 1px solid #e0e0e0
}

.page-works_detail .works_main_result::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    display: block;
    width: 3em;
    height: 1px;
    background: #ab1938
}

.page-works_detail .block-voice {
    padding: 15px;
    background: #f1eee6
}

.page-works_detail .block-voice_title {
    font-size: 1.125rem;
    position: relative;
    margin-bottom: .8em;
    padding-bottom: .8em;
    line-height: 1.4
}

.page-works_detail .block-voice_title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: -15px;
    display: block;
    width: calc(100% + 15px);
    height: 1px;
    background: #fff
}

.page-works_detail .block-works_gallery {
    margin-top: 35px
}

.page-works_detail .works_gallery_item {
    font-size: .8125rem
}

.page-works_detail .works_gallery_item img {
    margin-bottom: .7em
}

.page-works_detail .content_wrapper {
    padding-bottom: 0 !important
}

.page-news_detail .news_attr {
    margin: -.5em 0 1.5em;
    padding-bottom: 1em;
    border-bottom: 1px solid #e0e0e0
}

.page-privacy main p+dl,
.page-privacy main p+ul {
    margin-top: -.75em
}

.page-privacy main dl:not(:last-child) {
    margin-bottom: 1.5em
}

.page-privacy main dl dt {
    font-weight: 600
}

.page-privacy main dl dd {
    padding-left: 1em
}

.page-privacy main dl dd:not(:last-child) {
    margin-bottom: .5em
}

.page-company .company_message {
    position: relative;
    z-index: 1;
    padding: 30px 15px
}

.page-company .company_message::before {
    content: "";
    position: absolute;
    top: 0;
    right: -15px;
    bottom: 0;
    left: 0;
    z-index: -1;
    display: block;
    background: #f3f3f3
}

.page-company .president {
    width: 230px;
    margin: 2em auto 0;
    text-align: center
}

.page-company .president_name_wrapper {
    display: flex;
    flex-flow: row wrap
}

.page-company .president_position {
    display: flex;
    flex: 0 0 9.6875em;
    flex-flow: column wrap;
    align-items: center;
    justify-content: center;
    width: 9.6875em;
    height: 3.125em;
    margin-top: -1.5625em;
    color: #fff;
    background: #ab1938
}

.page-company .president_name {
    flex: 1 0 10.75em;
    padding-top: .8em;
    text-align: center
}

.page-company .president_name .ja {
    font-size: 1.1875rem;
    font-weight: 600;
    letter-spacing: .2em
}

.page-company .president_name .en {
    font-size: .625rem;
    line-height: 1.4
}

.page-company .googlemap {
    position: relative;
    width: 100%;
    height: 400px;
    max-height: 90dvh
}

.page-company .googlemap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.page-company .overview_list {
    display: grid;
    grid-template-columns: 8em 1fr;
    border-bottom: 1px solid #f3f3f3
}

.page-company .overview_list>dd,
.page-company .overview_list>dt {
    padding: .9em 0;
    border-top: 1px solid #f3f3f3
}

.page-company .overview_list>dt {
    font-weight: 600
}

.page-company .group_company {
    padding: 1.5em 0;
    border-top: 1px solid #f3f3f3
}

.page-company .group_company:last-child {
    border-bottom: 1px solid #f3f3f3
}

.page-company .group_logo {
    margin-bottom: 1em;
    text-align: center
}

.page-company .group_company_name {
    font-size: 100%
}

.page-company .access_by_single {
    display: flex;
    flex-flow: row nowrap
}

.page-company .access_by_icon {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: center;
    width: 1.5625em;
    height: 1.5625em;
    margin-right: 10px
}

.page-company .access_icon_car {
    width: 1.375em
}

.page-company .access_icon_train {
    width: 1.125em
}

.page-contact footer {
    border-top: 1px solid #eee
}

.page-contact .dl-form {
    margin-bottom: 1em
}

.page-contact .dl-form>dt {
    font-weight: 600;
    margin-bottom: .5em;
    padding: .75em 0 0
}

.page-contact .dl-form>dd {
    padding: 0 0 .75em;
    border-bottom: 1px solid #e0e0e0
}

.page-contact input[type=email],
.page-contact input[type=text],
.page-contact select,
.page-contact textarea {
    box-sizing: border-box;
    padding: .4em .75em;
    border: 1px solid #ccc
}

.page-contact input[type=email]:focus,
.page-contact input[type=text]:focus,
.page-contact select:focus,
.page-contact textarea:focus {
    border-color: #231815;
    outline: 1px solid #231815
}

.page-contact br+input {
    margin-top: .75em
}

.page-contact .input-short {
    width: 10em
}

.page-contact .input-middle {
    width: 20em;
    max-width: 100%
}

.page-contact .input-long {
    width: 40em;
    max-width: 100%
}

.page-contact .error-msg {
    color: #ab1938
}

.page-contact .error {
    display: block;
    color: #ab1938
}

.page-contact .error+input,
.page-contact .error+select,
.page-contact .error+textarea {
    background: #f9edf0
}

.page-contact label {
    cursor: pointer
}

.page-contact label input[type=checkbox],
.page-contact label input[type=radio] {
    margin-right: .5em
}

.page-contact .ico-required {
    font-size: .625rem;
    font-weight: 400;
    letter-spacing: .1em;
    margin: 0 0 0 .75em;
    padding: 1px 5px;
    color: #fff;
    background-color: #ab1938
}

.page-recruit .recruit_job_detail {
    margin-bottom: 1em
}

.page-recruit .recruit_job_detail>dt {
    font-weight: 600;
    margin-bottom: .5em;
    padding: .75em 0 0
}

.page-recruit .recruit_job_detail>dd {
    padding: 0 0 .75em;
    border-bottom: 1px solid #e0e0e0
}

.page-recruit .recruit_item_list {
    list-style-type: none
}

.page-recruit .recruit_item_list li {
    display: inline-block;
    margin: 0;
    padding: 0
}

.page-recruit .recruit_item_list li:not(:last-child)::after {
    content: "、"
}

@media screen and (min-width:27em) {
    .c-dl-news {
        position: relative;
        padding: 0 0 1px
    }

    .c-dl-news>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 8em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .c-dl-news>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 8em;
        word-break: break-all
    }
}

@media screen and (min-width:550px) {
    .c-list-clm2 {
        -moz-column-count: 2;
        column-count: 2;
        -moz-column-gap: 1.5em;
        column-gap: 1.5em
    }

    .c-tab {
        font-size: 1rem;
        gap: 10px 0;
        justify-content: flex-start;
        max-width: none;
        margin: 0 -5px 40px
    }

    .c-tab>li {
        flex: 0 1 33.33%;
        padding: 0 5px
    }

    .c-works_item {
        flex: 0 0 50%;
        max-width: none
    }

    .footer_nav_list {
        display: flex;
        flex-flow: row wrap
    }

    .footer_nav_list li {
        flex: 0 1 50%
    }

    .page-top .service_wrapper {
        display: flex;
        flex-flow: row wrap
    }

    .page-top .service_item,
    .page-top .service_outline {
        flex: 0 0 50%
    }

    .page-top .service_outline {
        display: flex;
        flex-flow: column nowrap;
        justify-content: center;
        padding: 0 2vw 80px 0;
        text-align: left
    }

    .page-top .service_outline .c-p-catch {
        max-width: none
    }

    .page-top .service_outline .c-p-catch .nobr {
        display: inline
    }

    .page-top .service_list {
        display: contents
    }

    .page-top .service_item {
        position: relative
    }

    .page-top .service_item:nth-child(2n) {
        top: -60px
    }

    .page-top .service_item_img {
        font-size: 1.25rem;
        height: auto;
        min-height: 16em
    }

    .page-top .service_item_img img {
        height: 100%;
        min-height: 16em
    }

    .page-top .service_item_txt {
        padding: 2em 2vw 2.5em
    }

    .page-service_detail .service_icons {
        grid-template-columns: repeat(3, 1fr)
    }
}

@media screen and (min-width:768px) {
    body {
        font-size: 1rem;
        font-family: dnp-shuei-gothic-kin-std, AdjustedYuGothic, YuGothic, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', -apple-system, sans-serif
    }

    body::before {
        content: "pc"
    }

    .sp {
        display: none !important
    }

    figcaption {
        font-size: .875rem
    }

    .l-sec {
        padding-top: 75px
    }

    main>.l-sec:first-child {
        padding-top: 60px
    }

    .l-sec.is-sec-border {
        margin-top: 75px
    }

    .l-block:not(:first-child) {
        margin-top: 50px
    }

    .c-block_deco_eng,
    .c-scnd_title_deco_eng,
    .c-sec_deco_eng {
        margin-top: -.17em
    }

    .c-sec_deco_eng {
        font-size: 9.375rem
    }

    .c-block_deco_eng {
        font-size: 4.6875rem
    }

    .c-scnd_title_deco_eng {
        font-size: 7.5rem
    }

    .c-block-has-image .c-block_body {
        grid-column: span 2
    }

    .c-block-bg {
        padding: 30px
    }

    .c-columns_wrapper {
        flex-flow: row wrap;
        gap: 0 0;
        margin-right: -1.9vw;
        margin-left: -1.9vw
    }

    .c-columns_wrapper>* {
        padding-right: 1.9vw;
        padding-left: 1.9vw
    }

    .c-columns_wrapper-clm2>* {
        flex: 0 1 50%
    }

    .c-columns_wrapper-clm3>* {
        flex: 0 1 33.33%
    }

    .c-flow_item {
        flex-wrap: nowrap;
        min-height: 100px
    }

    .c-flow_item_no {
        flex: 0 0 100px
    }

    .c-flow_item_no::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 99%;
        display: block;
        width: 7px;
        height: 14px;
        margin: auto 0;
        clip-path: polygon(0 0, 0 100%, 100% 50%);
        background: #ab1938
    }

    .c-flow_item_no span::before {
        font-size: .8125rem
    }

    .c-flow_item_no span::after {
        font-size: 2.5rem
    }

    .c-flow_item_body,
    .c-flow_item_title {
        padding: 20px 3vw
    }

    .c-flow_item_title {
        font-size: 1.125rem;
        box-sizing: content-box;
        flex: 0 0 11em
    }

    .c-flow_item_body {
        flex: 1 1 auto
    }

    .btn-primary {
        font-size: 1.25rem;
        width: 300px
    }

    .btn-secondly {
        font-size: 1.125rem
    }

    .c-p-catch {
        font-size: 1.125rem
    }

    .c-p-note {
        font-size: .8125rem
    }

    .c-tab {
        font-size: 1.125rem;
        margin: 0 -1.5vw 40px
    }

    .c-tab>li {
        padding: 0 1.5vw
    }

    .c-tit-h2,
    h2.wp-block-heading {
        font-size: 2.125rem
    }

    .c-tit-h3,
    h3.wp-block-heading {
        font-size: 1.5rem
    }

    .c-tit-h4,
    h4.wp-block-heading {
        font-size: 1.25rem
    }

    .c-sec-works_related {
        margin-top: 75px;
        padding: 55px 0 75px
    }

    .c-works_list {
        justify-content: flex-start;
        margin: -40px -1.5vw 40px
    }

    .c-works_item {
        margin-top: 40px;
        padding: 0 1.5vw
    }

    .c-works_item::before {
        top: -1.5vw;
        right: 0;
        bottom: -1.5vw;
        left: 0
    }

    .c-works_item_category {
        font-size: .875rem
    }

    .c-works_item_client {
        font-size: .875rem
    }

    .c-works_item_client .client_name {
        font-size: .9375rem
    }

    .c-works_item_title {
        font-size: 1.125rem
    }

    .c-tags_list {
        font-size: .9375rem
    }

    .editor-styles-wrapper hr,
    .post_body hr {
        margin: 50px 0
    }

    body.is-menu-open {
        overflow: auto;
        overflow-x: clip
    }

    .spaceHeader {
        height: 90px
    }

    .c-anchor_tgt {
        margin-top: -90px;
        padding-top: 90px
    }

    body.is-menu-open header {
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px)
    }

    .header_inner {
        height: 90px
    }

    .header_id img {
        width: 119px;
        height: 40px
    }

    .header_nav {
        font-size: .875rem;
        position: static;
        display: flex;
        flex-flow: row nowrap;
        gap: 0 2.5vw;
        width: auto;
        height: 100%;
        min-height: 0;
        padding-top: 0;
        padding-bottom: 0;
        overflow: clip;
        background: transparent none;
        transition: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none
    }

    .header_nav::before {
        content: none
    }

    body.is-menu-open .header_nav {
        transform: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none
    }

    .header_nav_list.pc,
    .header_subnav_list.pc {
        display: flex !important
    }

    header .btn-contact {
        width: 180px;
        height: auto
    }

    .sec-cta {
        padding: 90px 0
    }

    .sec-cta::before {
        height: 60px
    }

    .cta_btn-contact {
        width: 360px
    }

    footer {
        padding-top: 60px
    }

    .footer_wrapper {
        display: flex;
        flex-flow: row wrap;
        gap: 0 4vw
    }

    .footer_info {
        flex: 0 1 100%;
        flex-flow: row nowrap;
        gap: 0 30px;
        margin: 0 0 1.5em
    }

    .footer_company_wrapper {
        margin-bottom: 0;
        padding-right: 30px;
        border-right: 1px solid #eee
    }

    .footer_company_id {
        width: 120px;
        margin-right: 30px
    }

    .footer_company_text {
        font-size: .875rem
    }

    .footer_company_text_main {
        font-size: 1.0625rem
    }

    .footer_nav {
        display: flex;
        flex: 0 0 100%;
        flex-flow: row nowrap;
        gap: 0 2vw
    }

    .footer_nav_clm {
        flex: 0 1 33.33%;
        margin-top: 0
    }

    .footer_nav_list {
        display: block
    }

    .copyright {
        font-size: .75rem
    }

    .page_top_btn {
        right: 0;
        width: 60px;
        height: 60px
    }

    .sec-scnd_tit .l-sec_inner {
        font-size: 2.875rem;
        height: 6.5em
    }

    .content_wrapper {
        padding-bottom: 75px
    }

    .sec-bread {
        font-size: .8125rem
    }

    .bread_list li {
        display: inline-block
    }

    .page-top .sec-mv {
        z-index: 5;
        padding-bottom: 0
    }

    .page-top .mv_img {
        position: absolute;
        top: 0;
        right: 0;
        bottom: -70px;
        z-index: -1;
        width: calc(100vw - 403px);
        height: auto;
        max-height: none;
        margin: 0
    }

    .page-top .mv_img::after {
        content: none
    }

    .page-top .mv_img img {
        -o-object-position: 20% top;
        object-position: 20% top
    }

    .page-top .mv_catch {
        padding: 64px 0 87px;
        text-align: left
    }

    .page-top .mv_catch p {
        font-size: 1.125rem
    }

    .page-top .mv_catch_main {
        width: -moz-max-content;
        width: max-content;
        margin-top: 0;
        font-size: clamp(48px, 6vw, 67px);
        text-align: right;
        text-shadow: 0 0 10px rgba(255, 255, 255, .8)
    }

    .page-top .sec-services {
        padding-top: 200px
    }

    .page-top .sec-services .c-sec_deco_eng {
        top: 90px;
        left: 50px
    }

    .page-top .service_item_tit {
        font-size: 1.25rem
    }

    .page-top .service_item_txt {
        padding: 2em 2vw 3vw
    }

    .page-top .service_item_more {
        width: 140px
    }

    .page-top .sec-works::before {
        top: 250px;
        height: auto
    }

    .page-top .sec-works {
        padding-top: 95px;
        padding-bottom: 60px
    }

    .page-top .sec-works .c-sec_deco_eng {
        top: -.3em
    }

    .page-top .sec-news .c-sec_deco_eng {
        font-size: 4.6875rem;
        top: 0;
        left: unset;
        width: 100%;
        text-align: center
    }

    .page-top .news_wrapper {
        flex-flow: row nowrap
    }

    .page-top .news_title {
        position: relative;
        display: block;
        flex: 0 0 290px;
        padding-top: .25em;
        text-align: center
    }

    .page-top .news_title .c-tit-h2 {
        margin-bottom: 1.2em
    }

    .page-top .news_body {
        flex: 1 1 auto
    }

    .page-top .news_wrapper .btn_wrapper {
        order: unset;
        margin-top: 0
    }

    .page-top .sec-company .c-sec_deco_eng {
        top: unset;
        left: unset
    }

    @supports (mix-blend-mode:multiply) {
        .page-top .sec-company .c-sec_deco_eng {
            z-index: 2;
            mix-blend-mode: multiply
        }

        .page-top .sec-company .company_body {
            position: relative;
            z-index: 3
        }
    }

    .page-top .company_wrapper {
        display: flex;
        flex-flow: row nowrap
    }

    .page-top .company_body {
        flex: 0 0 60.3%;
        margin-bottom: 0;
        padding: 75px 4vw 75px 0
    }

    .page-top .company_img {
        max-height: none;
        margin: 0
    }

    .page-top .company_img_wrapper {
        position: relative;
        width: 43vw;
        height: 100%
    }

    .page-service .service_list_item {
        padding-top: 50px
    }

    .page-service .service_list_item:not(:first-child) {
        margin-top: 60px
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_img {
        right: auto;
        left: calc(100% - 630px)
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_body {
        margin-right: auto;
        margin-left: 0
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_body::before {
        background: linear-gradient(to right, #f3f3f3 0, #fff 100%)
    }

    .page-service .service_list_item_img {
        right: calc(100% - 630px);
        left: auto;
        width: 700px
    }

    .page-service .service_list_item_body {
        width: 824px;
        max-width: 85%;
        margin: 0 0 0 auto;
        padding: 50px 50px 0 50px
    }

    .page-service .service_list_item_body::before {
        bottom: 22.5px;
        background: linear-gradient(to left, #f3f3f3 0, #fff 100%);
        opacity: 1
    }

    .page-service_detail main>.l-sec:first-child .c-tab:first-child {
        margin-top: -40px;
        margin-bottom: 75px
    }

    .page-service_detail .service_icons {
        grid-template-columns: repeat(auto-fit, minmax(150px, 248px))
    }

    .page-service_detail .service_icons>li {
        padding: 40px 30px 35px
    }

    .page-service_detail .service_icon_img {
        width: 60px
    }

    .page-service_detail .service_footnav {
        grid-template-columns: 1fr 1fr 1fr
    }

    .page-service_detail .service_footnav_item_img {
        font-size: 1.125rem;
        height: 252px
    }

    .page-service_detail .service_footnav_item_tit {
        font-size: 1.125rem
    }

    .page-service_detail .service_footnav_item_more {
        font-size: .875rem;
        width: 140px
    }

    .page-works .works_tab {
        margin-right: -5px;
        margin-left: -5px
    }

    .page-works .works_tab>li {
        padding: 0 5px
    }

    .page-works_detail .works_client {
        font-size: 1.125rem
    }

    .page-works_detail .works_attr {
        display: flex;
        flex-flow: row nowrap;
        gap: 0 3vw;
        margin-bottom: 50px;
        padding: 35px 0 50px
    }

    .page-works_detail .works_attr>* {
        flex: 0 1 50%
    }

    .page-works_detail .works_attr_tit {
        font-size: 1.125rem
    }

    .page-works_detail .works_goal {
        font-size: 1.125rem
    }

    .page-works_detail .works_main_result {
        font-size: 1.75rem
    }

    .page-works_detail .block-voice {
        display: flex;
        flex-flow: row nowrap;
        align-items: flex-start;
        padding: 40px 40px 50px
    }

    .page-works_detail .block-voice_title {
        font-size: 1.25rem;
        margin-right: 3vw;
        margin-bottom: 0;
        padding-right: 1em;
        padding-bottom: .8em;
        white-space: nowrap
    }

    .page-works_detail .block-voice_title::after {
        bottom: 0;
        left: -40px;
        width: calc(100% + 40px)
    }

    .page-works_detail .block-works_gallery {
        margin-top: 20px
    }

    .page-works_detail .works_gallery_item {
        font-size: .9375rem;
        margin-top: 40px
    }

    .page-company .company_message {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0 3vw;
        padding: 40px 0 40px 15px
    }

    .page-company .message_body {
        grid-column: span 2
    }

    .page-company .president {
        width: unset;
        margin: 0
    }

    .page-company .president_name .ja {
        font-size: 1.375rem
    }

    .page-company .president_name .en {
        font-size: .75rem
    }

    .page-company .googlemap {
        height: 600px
    }

    .page-company .overview_list {
        grid-template-columns: minmax(15em, 200px) 1fr
    }

    .page-company .overview_list>dt {
        padding-left: 2.5em
    }

    .page-company .group_company {
        display: grid;
        grid-template-columns: 236px 1fr;
        gap: 0 4vw;
        align-items: center;
        padding: 1em 0
    }

    .page-company .group_logo {
        margin-bottom: 0
    }

    .page-contact .dl-form {
        position: relative;
        padding: 0 0 1px
    }

    .page-contact .dl-form>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 17em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .page-contact .dl-form>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 17em;
        word-break: break-all
    }

    .page-contact .dl-form>dt {
        margin-top: 0
    }

    .page-contact .ico-required {
        font-size: .75rem
    }

    .page-recruit .recruit_job_detail {
        position: relative;
        padding: 0 0 1px
    }

    .page-recruit .recruit_job_detail>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 17em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .page-recruit .recruit_job_detail>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 17em;
        word-break: break-all
    }

    .page-recruit .recruit_job_detail>dt {
        margin-top: 0
    }
}

@media screen and (min-width:900px) {
    .c-block-has-image {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0 3vw
    }

    .c-block-has-image .c-block_img {
        grid-column: span 1;
        margin: 0
    }

    .c-works_item {
        flex: 0 0 25%
    }

    .header_nav {
        font-size: 1rem;
        gap: 0 3vw
    }

    .footer_wrapper {
        flex-flow: row nowrap
    }

    .footer_wrapper address {
        font-size: .9375rem
    }

    .footer_info {
        display: block;
        flex: 0 1 33.33%;
        margin-bottom: 0
    }

    .footer_company_wrapper {
        margin-bottom: 1em;
        padding-right: 0;
        border-right: none
    }

    .footer_nav {
        flex: 0 1 66.66%
    }

    .page-works .works_main_list .c-works_item {
        flex: 0 0 33.33%
    }
}

@media screen and (min-width:1100px) {

    .header_nav_list.pc,
    .header_subnav_list.pc {
        gap: 0 3vw
    }

    .footer_wrapper {
        font-size: 1rem
    }

    .page-top .mv_catch_main {
        font-size: 4.1875rem
    }

    .page-top .service_wrapper {
        padding-bottom: 10px
    }

    .page-top .service_item,
    .page-top .service_outline {
        flex: 0 0 33.33%
    }

    .page-top .service_item:nth-child(3n) {
        top: -60px
    }

    .page-top .service_item:nth-child(3n+1) {
        top: 40px
    }

    .page-top .service_item:nth-child(3n+2) {
        top: 0
    }

    .page-company .overview_list>dd {
        padding-right: 2em
    }
}

@media screen and (min-width:1290px) {
    .c-block-has-image {
        gap: 0 48px
    }

    .c-columns_wrapper {
        margin-right: -24px;
        margin-left: -24px
    }

    .c-columns_wrapper>* {
        padding-right: 24px;
        padding-left: 24px
    }

    .c-flow_item_body,
    .c-flow_item_title {
        padding: 20px 40px
    }

    .btn-secondly-list {
        gap: 15px 40px
    }

    .c-tab {
        margin: 0 -24px 40px
    }

    .c-tab>li {
        flex: 1 0 15%;
        max-width: 33.33%;
        padding: 0 24px
    }

    .c-works_list {
        margin: -40px 20px 40px
    }

    .c-works_item {
        padding: 0 20px
    }

    .c-works_item::before {
        top: -20px;
        right: 0;
        bottom: -20px;
        left: 0
    }

    .header_nav {
        gap: 0 50px
    }

    .header_nav_list.pc,
    .header_subnav_list.pc {
        gap: 0 50px
    }

    .footer_wrapper {
        gap: 0 50px
    }

    .footer_nav {
        gap: 0 30px
    }

    .page-top .mv_img {
        width: calc(50vw + 242px)
    }

    .page-top .sec-services::before {
        right: auto;
        width: 100%;
        max-width: calc(50% + 630px)
    }

    .page-top .sec-services .c-sec_deco_eng {
        left: auto
    }

    .page-top .service_outline {
        display: block;
        padding: 50px 40px 40px 0
    }

    .page-top .service_item_txt {
        padding: 2em 30px 3em
    }

    .page-top .company_body {
        padding-right: 50px
    }

    .page-service_detail .service_footnav {
        grid-template-columns: repeat(5, 1fr)
    }

    .page-service_detail .service_footnav_item_img {
        height: auto;
        aspect-ratio: 1/1
    }

    .page-works .works_tab {
        margin-right: -5px;
        margin-left: -5px
    }

    .page-works .works_tab>li:first-child {
        flex: 0 0 auto
    }

    .page-works .works_tab>li {
        padding: 0 5px
    }

    .page-works .works_main_list {
        margin: -40px -24px 40px
    }

    .page-works .works_main_list .c-works_item {
        padding: 0 24px
    }

    .page-works_detail .works_attr {
        gap: 0 48px
    }

    .page-works_detail .works_goal .c-block_deco_eng {
        top: -5px;
        left: -20px;
        margin-top: 0
    }

    .page-works_detail .block-voice_title {
        margin-right: 40px
    }

    .page-company .company_message::before {
        right: auto;
        left: -70px;
        width: calc(700px + 50vw)
    }

    .page-company .company_message {
        gap: 0 48px;
        padding: 40px 0
    }

    .page-company .group_company {
        gap: 0 65px
    }
}

@media screen and (width < 768px) {
    .pc {
        display: none !important
    }
}

@media (hover:hover) {
    a:hover {
        text-decoration: underline
    }

    a:hover img {
        opacity: .8
    }

    h1>a:hover,
    h2>a:hover,
    h3>a:hover,
    h4>a:hover,
    h5>a:hover {
        text-decoration: underline
    }

    .link-anim {
        background: linear-gradient(to top, currentColor, currentColor) no-repeat left bottom;
        background-size: 0 1px;
        transition: background-size .3s cubic-bezier(.66, .2, .38, .83);
        text-decoration: none
    }

    .link-anim:hover {
        text-decoration: none;
        background-size: 100% 1px
    }

    .btn-invert:hover {
        color: #fff
    }

    .btn:hover {
        text-decoration: none
    }

    .btn:hover::before {
        transform: translateX(0)
    }

    .page-numbers a:hover {
        color: #fff;
        text-decoration: none;
        background-color: #ab1938
    }

    .c-tab a:hover {
        text-decoration: none
    }

    .c-tab a:hover::after {
        transform: translateX(0)
    }

    .c-works_item:hover {
        text-decoration: none
    }

    .c-works_item:hover::before {
        opacity: .8
    }

    .c-works_item:hover .c-works_item_title_text {
        text-decoration: none;
        background-size: 100% 1px
    }

    .c-works_item:hover .c-works_item_img img {
        filter: contrast(130%);
        opacity: 1;
        transform: scale(1.05)
    }

    .c-works_item_title_text {
        text-decoration: none
    }

    .header_nav_list .header_nav_item:hover,
    .header_nav_list a:hover,
    .header_subnav_list .header_nav_item:hover,
    .header_subnav_list a:hover {
        text-decoration: none
    }

    .header_nav_list .header_nav_item:hover::before,
    .header_nav_list a:hover::before,
    .header_subnav_list .header_nav_item:hover::before,
    .header_subnav_list a:hover::before {
        transform: translateX(0)
    }

    .cta_btn-contact:hover {
        box-shadow: 0 0 15px 0 rgba(255, 255, 255, .2)
    }

    .page_top_btn:hover {
        background: #ab1938
    }

    .bread_list a:hover {
        text-decoration: underline
    }

    .page-top .service_item:hover .service_item_img img {
        filter: contrast(130%);
        opacity: 1;
        transform: scale(1.05)
    }

    .page-top .service_item:hover .service_item_tit {
        color: #fff
    }

    .page-top .service_item:hover .service_item_tit::before {
        transform: translateY(0)
    }

    .page-top .service_item:hover .service_item_more::before {
        transform: translateX(0)
    }

    .page-top .slick-arrow:hover {
        background-color: #ab1938
    }

    .page-service_detail .service_footnav_item:hover .service_footnav_item_img img {
        filter: contrast(130%);
        opacity: 1;
        transform: scale(1.05)
    }

    .page-service_detail .service_footnav_item:hover .service_footnav_item_tit {
        color: #fff
    }

    .page-service_detail .service_footnav_item:hover .service_footnav_item_tit::before {
        transform: translateY(0)
    }

    .page-service_detail .service_footnav_item:hover .service_footnav_item_more::before {
        transform: translateX(0)
    }
}

@media (min-resolution:2dppx) {
    body {
        -webkit-font-smoothing: subpixel-antialiased;
        -moz-osx-font-smoothing: grayscale
    }
}

@media print {
    body {
        width: 1300px;
        max-width: 100%;
        zoom: .8
    }

    .content_wrapper {
        width: 1300px;
        max-width: 100%
    }

    body {
        font-size: 1rem;
        font-family: dnp-shuei-gothic-kin-std, AdjustedYuGothic, YuGothic, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', -apple-system, sans-serif
    }

    body::before {
        content: "pc"
    }

    .sp {
        display: none !important
    }

    figcaption {
        font-size: .875rem
    }

    .l-sec {
        padding-top: 75px
    }

    main>.l-sec:first-child {
        padding-top: 60px
    }

    .l-sec.is-sec-border {
        margin-top: 75px
    }

    .l-block:not(:first-child) {
        margin-top: 50px
    }

    .c-block_deco_eng,
    .c-scnd_title_deco_eng,
    .c-sec_deco_eng {
        margin-top: -.17em
    }

    .c-sec_deco_eng {
        font-size: 9.375rem
    }

    .c-block_deco_eng {
        font-size: 4.6875rem
    }

    .c-scnd_title_deco_eng {
        font-size: 7.5rem
    }

    .c-block-has-image {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0 3vw
    }

    .c-block-has-image {
        gap: 0 48px
    }

    .c-block-has-image .c-block_img {
        grid-column: span 1;
        margin: 0
    }

    .c-block-has-image .c-block_body {
        grid-column: span 2
    }

    .c-block-bg {
        padding: 30px
    }

    .c-columns_wrapper {
        flex-flow: row wrap;
        gap: 0 0;
        margin-right: -1.9vw;
        margin-left: -1.9vw
    }

    .c-columns_wrapper {
        margin-right: -24px;
        margin-left: -24px
    }

    .c-columns_wrapper>* {
        padding-right: 1.9vw;
        padding-left: 1.9vw
    }

    .c-columns_wrapper>* {
        padding-right: 24px;
        padding-left: 24px
    }

    .c-columns_wrapper-clm2>* {
        flex: 0 1 50%
    }

    .c-columns_wrapper-clm3>* {
        flex: 0 1 33.33%
    }

    .c-flow_item {
        flex-wrap: nowrap;
        min-height: 100px
    }

    .c-flow_item_no {
        flex: 0 0 100px
    }

    .c-flow_item_no::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 99%;
        display: block;
        width: 7px;
        height: 14px;
        margin: auto 0;
        clip-path: polygon(0 0, 0 100%, 100% 50%);
        background: #ab1938
    }

    .c-flow_item_no span::before {
        font-size: .8125rem
    }

    .c-flow_item_no span::after {
        font-size: 2.5rem
    }

    .c-flow_item_body,
    .c-flow_item_title {
        padding: 20px 3vw
    }

    .c-flow_item_body,
    .c-flow_item_title {
        padding: 20px 40px
    }

    .c-flow_item_title {
        font-size: 1.125rem;
        box-sizing: content-box;
        flex: 0 0 11em
    }

    .c-flow_item_body {
        flex: 1 1 auto
    }

    .btn-primary {
        font-size: 1.25rem;
        width: 300px
    }

    .btn-secondly {
        font-size: 1.125rem
    }

    .btn-secondly-list {
        gap: 15px 40px
    }

    .c-list-clm2 {
        -moz-column-count: 2;
        column-count: 2;
        -moz-column-gap: 1.5em;
        column-gap: 1.5em
    }

    .c-dl-news {
        position: relative;
        padding: 0 0 1px
    }

    .c-dl-news>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 8em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .c-dl-news>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 8em;
        word-break: break-all
    }

    .c-p-catch {
        font-size: 1.125rem
    }

    .c-p-note {
        font-size: .8125rem
    }

    .c-tab {
        font-size: 1rem;
        gap: 10px 0;
        justify-content: flex-start;
        max-width: none;
        margin: 0 -5px 40px
    }

    .c-tab {
        font-size: 1.125rem;
        margin: 0 -1.5vw 40px
    }

    .c-tab {
        margin: 0 -24px 40px
    }

    .c-tab>li {
        flex: 0 1 33.33%;
        padding: 0 5px
    }

    .c-tab>li {
        padding: 0 1.5vw
    }

    .c-tab>li {
        flex: 1 0 15%;
        max-width: 33.33%;
        padding: 0 24px
    }

    .c-tit-h2,
    h2.wp-block-heading {
        font-size: 2.125rem
    }

    .c-tit-h3,
    h3.wp-block-heading {
        font-size: 1.5rem
    }

    .c-tit-h4,
    h4.wp-block-heading {
        font-size: 1.25rem
    }

    .c-sec-works_related {
        margin-top: 75px;
        padding: 55px 0 75px
    }

    .c-works_list {
        justify-content: flex-start;
        margin: -40px -1.5vw 40px
    }

    .c-works_list {
        margin: -40px 20px 40px
    }

    .c-works_item {
        flex: 0 0 50%;
        max-width: none
    }

    .c-works_item {
        margin-top: 40px;
        padding: 0 1.5vw
    }

    .c-works_item::before {
        top: -1.5vw;
        right: 0;
        bottom: -1.5vw;
        left: 0
    }

    .c-works_item {
        flex: 0 0 25%
    }

    .c-works_item {
        padding: 0 20px
    }

    .c-works_item::before {
        top: -20px;
        right: 0;
        bottom: -20px;
        left: 0
    }

    .c-works_item_category {
        font-size: .875rem
    }

    .c-works_item_client {
        font-size: .875rem
    }

    .c-works_item_client .client_name {
        font-size: .9375rem
    }

    .c-works_item_title {
        font-size: 1.125rem
    }

    .c-tags_list {
        font-size: .9375rem
    }

    .editor-styles-wrapper hr,
    .post_body hr {
        margin: 50px 0
    }

    body.is-menu-open {
        overflow: auto;
        overflow-x: clip
    }

    .spaceHeader {
        height: 90px
    }

    .c-anchor_tgt {
        margin-top: -90px;
        padding-top: 90px
    }

    body.is-menu-open header {
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px)
    }

    .header_inner {
        height: 90px
    }

    .header_id img {
        width: 119px;
        height: 40px
    }

    .header_nav {
        font-size: .875rem;
        position: static;
        display: flex;
        flex-flow: row nowrap;
        gap: 0 2.5vw;
        width: auto;
        height: 100%;
        min-height: 0;
        padding-top: 0;
        padding-bottom: 0;
        overflow: clip;
        background: transparent none;
        transition: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none
    }

    .header_nav::before {
        content: none
    }

    .header_nav {
        font-size: 1rem;
        gap: 0 3vw
    }

    .header_nav {
        gap: 0 50px
    }

    body.is-menu-open .header_nav {
        transform: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none
    }

    .header_nav_list.pc,
    .header_subnav_list.pc {
        display: flex !important
    }

    .header_nav_list.pc,
    .header_subnav_list.pc {
        gap: 0 3vw
    }

    .header_nav_list.pc,
    .header_subnav_list.pc {
        gap: 0 50px
    }

    header .btn-contact {
        width: 180px;
        height: auto
    }

    .sec-cta {
        padding: 90px 0
    }

    .sec-cta::before {
        height: 60px
    }

    .cta_btn-contact {
        width: 360px
    }

    footer {
        padding-top: 60px
    }

    .footer_wrapper {
        display: flex;
        flex-flow: row wrap;
        gap: 0 4vw
    }

    .footer_wrapper {
        flex-flow: row nowrap
    }

    .footer_wrapper address {
        font-size: .9375rem
    }

    .footer_wrapper {
        font-size: 1rem
    }

    .footer_wrapper {
        gap: 0 50px
    }

    .footer_info {
        flex: 0 1 100%;
        flex-flow: row nowrap;
        gap: 0 30px;
        margin: 0 0 1.5em
    }

    .footer_info {
        display: block;
        flex: 0 1 33.33%;
        margin-bottom: 0
    }

    .footer_company_wrapper {
        margin-bottom: 0;
        padding-right: 30px;
        border-right: 1px solid #eee
    }

    .footer_company_wrapper {
        margin-bottom: 1em;
        padding-right: 0;
        border-right: none
    }

    .footer_company_id {
        width: 120px;
        margin-right: 30px
    }

    .footer_company_text {
        font-size: .875rem
    }

    .footer_company_text_main {
        font-size: 1.0625rem
    }

    .footer_nav {
        display: flex;
        flex: 0 0 100%;
        flex-flow: row nowrap;
        gap: 0 2vw
    }

    .footer_nav {
        flex: 0 1 66.66%
    }

    .footer_nav {
        gap: 0 30px
    }

    .footer_nav_clm {
        flex: 0 1 33.33%;
        margin-top: 0
    }

    .footer_nav_list {
        display: flex;
        flex-flow: row wrap
    }

    .footer_nav_list li {
        flex: 0 1 50%
    }

    .footer_nav_list {
        display: block
    }

    .copyright {
        font-size: .75rem
    }

    .page_top_btn {
        right: 0;
        width: 60px;
        height: 60px
    }

    .sec-scnd_tit .l-sec_inner {
        font-size: 2.875rem;
        height: 6.5em
    }

    .content_wrapper {
        padding-bottom: 75px
    }

    .sec-bread {
        font-size: .8125rem
    }

    .bread_list li {
        display: inline-block
    }

    .page-top .sec-mv {
        z-index: 5;
        padding-bottom: 0
    }

    .page-top .mv_img {
        position: absolute;
        top: 0;
        right: 0;
        bottom: -70px;
        z-index: -1;
        width: calc(100vw - 403px);
        height: auto;
        max-height: none;
        margin: 0
    }

    .page-top .mv_img::after {
        content: none
    }

    .page-top .mv_img img {
        -o-object-position: 20% top;
        object-position: 20% top
    }

    .page-top .mv_img {
        width: calc(50vw + 242px)
    }

    .page-top .mv_catch {
        padding: 64px 0 87px;
        text-align: left
    }

    .page-top .mv_catch p {
        font-size: 1.125rem
    }

    .page-top .mv_catch_main {
        width: -moz-max-content;
        width: max-content;
        margin-top: 0;
        font-size: clamp(48px, 6vw, 67px);
        text-align: right;
        text-shadow: 0 0 10px rgba(255, 255, 255, .8)
    }

    .page-top .mv_catch_main {
        font-size: 4.1875rem
    }

    .page-top .sec-services::before {
        right: auto;
        width: 100%;
        max-width: calc(50% + 630px)
    }

    .page-top .sec-services {
        padding-top: 200px
    }

    .page-top .sec-services .c-sec_deco_eng {
        top: 90px;
        left: 50px
    }

    .page-top .sec-services .c-sec_deco_eng {
        left: auto
    }

    .page-top .service_wrapper {
        display: flex;
        flex-flow: row wrap
    }

    .page-top .service_wrapper {
        padding-bottom: 10px
    }

    .page-top .service_item,
    .page-top .service_outline {
        flex: 0 0 50%
    }

    .page-top .service_item,
    .page-top .service_outline {
        flex: 0 0 33.33%
    }

    .page-top .service_outline {
        display: flex;
        flex-flow: column nowrap;
        justify-content: center;
        padding: 0 2vw 80px 0;
        text-align: left
    }

    .page-top .service_outline {
        display: block;
        padding: 50px 40px 40px 0
    }

    .page-top .service_outline .c-p-catch {
        max-width: none
    }

    .page-top .service_outline .c-p-catch .nobr {
        display: inline
    }

    .page-top .service_list {
        display: contents
    }

    .page-top .service_item {
        position: relative
    }

    .page-top .service_item:nth-child(2n) {
        top: -60px
    }

    .page-top .service_item:nth-child(3n) {
        top: -60px
    }

    .page-top .service_item:nth-child(3n+1) {
        top: 40px
    }

    .page-top .service_item:nth-child(3n+2) {
        top: 0
    }

    .page-top .service_item_img {
        font-size: 1.25rem;
        height: auto;
        min-height: 16em
    }

    .page-top .service_item_img img {
        height: 100%;
        min-height: 16em
    }

    .page-top .service_item_tit {
        font-size: 1.25rem
    }

    .page-top .service_item_txt {
        padding: 2em 2vw 2.5em
    }

    .page-top .service_item_txt {
        padding: 2em 2vw 3vw
    }

    .page-top .service_item_txt {
        padding: 2em 30px 3em
    }

    .page-top .service_item_more {
        width: 140px
    }

    .page-top .sec-works::before {
        top: 250px;
        height: auto
    }

    .page-top .sec-works {
        padding-top: 95px;
        padding-bottom: 60px
    }

    .page-top .sec-works .c-sec_deco_eng {
        top: -.3em
    }

    .page-top .sec-news .c-sec_deco_eng {
        font-size: 4.6875rem;
        top: 0;
        left: unset;
        width: 100%;
        text-align: center
    }

    .page-top .news_wrapper {
        flex-flow: row nowrap
    }

    .page-top .news_title {
        position: relative;
        display: block;
        flex: 0 0 290px;
        padding-top: .25em;
        text-align: center
    }

    .page-top .news_title .c-tit-h2 {
        margin-bottom: 1.2em
    }

    .page-top .news_body {
        flex: 1 1 auto
    }

    .page-top .news_wrapper .btn_wrapper {
        order: unset;
        margin-top: 0
    }

    .page-top .sec-company .c-sec_deco_eng {
        top: unset;
        left: unset
    }

    @supports (mix-blend-mode:multiply) {
        .page-top .sec-company .c-sec_deco_eng {
            z-index: 2;
            mix-blend-mode: multiply
        }

        .page-top .sec-company .company_body {
            position: relative;
            z-index: 3
        }
    }

    .page-top .company_wrapper {
        display: flex;
        flex-flow: row nowrap
    }

    .page-top .company_body {
        flex: 0 0 60.3%;
        margin-bottom: 0;
        padding: 75px 4vw 75px 0
    }

    .page-top .company_body {
        padding-right: 50px
    }

    .page-top .company_img {
        max-height: none;
        margin: 0
    }

    .page-top .company_img_wrapper {
        position: relative;
        width: 43vw;
        height: 100%
    }

    .page-service .service_list_item {
        padding-top: 50px
    }

    .page-service .service_list_item:not(:first-child) {
        margin-top: 60px
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_img {
        right: auto;
        left: calc(100% - 630px)
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_body {
        margin-right: auto;
        margin-left: 0
    }

    .page-service .service_list_item:nth-child(2n) .service_list_item_body::before {
        background: linear-gradient(to right, #f3f3f3 0, #fff 100%)
    }

    .page-service .service_list_item_img {
        right: calc(100% - 630px);
        left: auto;
        width: 700px
    }

    .page-service .service_list_item_body {
        width: 824px;
        max-width: 85%;
        margin: 0 0 0 auto;
        padding: 50px 50px 0 50px
    }

    .page-service .service_list_item_body::before {
        bottom: 22.5px;
        background: linear-gradient(to left, #f3f3f3 0, #fff 100%);
        opacity: 1
    }

    .page-service_detail main>.l-sec:first-child .c-tab:first-child {
        margin-top: -40px;
        margin-bottom: 75px
    }

    .page-service_detail .service_icons {
        grid-template-columns: repeat(3, 1fr)
    }

    .page-service_detail .service_icons {
        grid-template-columns: repeat(auto-fit, minmax(150px, 248px))
    }

    .page-service_detail .service_icons>li {
        padding: 40px 30px 35px
    }

    .page-service_detail .service_icon_img {
        width: 60px
    }

    .page-service_detail .service_footnav {
        grid-template-columns: 1fr 1fr 1fr
    }

    .page-service_detail .service_footnav {
        grid-template-columns: repeat(5, 1fr)
    }

    .page-service_detail .service_footnav_item_img {
        font-size: 1.125rem;
        height: 252px
    }

    .page-service_detail .service_footnav_item_img {
        height: auto;
        aspect-ratio: 1/1
    }

    .page-service_detail .service_footnav_item_tit {
        font-size: 1.125rem
    }

    .page-service_detail .service_footnav_item_more {
        font-size: .875rem;
        width: 140px
    }

    .page-works .works_tab {
        margin-right: -5px;
        margin-left: -5px
    }

    .page-works .works_tab {
        margin-right: -5px;
        margin-left: -5px
    }

    .page-works .works_tab>li:first-child {
        flex: 0 0 auto
    }

    .page-works .works_tab>li {
        padding: 0 5px
    }

    .page-works .works_tab>li {
        padding: 0 5px
    }

    .page-works .works_main_list {
        margin: -40px -24px 40px
    }

    .page-works .works_main_list .c-works_item {
        flex: 0 0 33.33%
    }

    .page-works .works_main_list .c-works_item {
        padding: 0 24px
    }

    .page-works_detail .works_client {
        font-size: 1.125rem
    }

    .page-works_detail .works_attr {
        display: flex;
        flex-flow: row nowrap;
        gap: 0 3vw;
        margin-bottom: 50px;
        padding: 35px 0 50px
    }

    .page-works_detail .works_attr>* {
        flex: 0 1 50%
    }

    .page-works_detail .works_attr {
        gap: 0 48px
    }

    .page-works_detail .works_attr_tit {
        font-size: 1.125rem
    }

    .page-works_detail .works_goal {
        font-size: 1.125rem
    }

    .page-works_detail .works_goal .c-block_deco_eng {
        top: -5px;
        left: -20px;
        margin-top: 0
    }

    .page-works_detail .works_main_result {
        font-size: 1.75rem
    }

    .page-works_detail .block-voice {
        display: flex;
        flex-flow: row nowrap;
        align-items: flex-start;
        padding: 40px 40px 50px
    }

    .page-works_detail .block-voice_title {
        font-size: 1.25rem;
        margin-right: 3vw;
        margin-bottom: 0;
        padding-right: 1em;
        padding-bottom: .8em;
        white-space: nowrap
    }

    .page-works_detail .block-voice_title::after {
        bottom: 0;
        left: -40px;
        width: calc(100% + 40px)
    }

    .page-works_detail .block-voice_title {
        margin-right: 40px
    }

    .page-works_detail .block-works_gallery {
        margin-top: 20px
    }

    .page-works_detail .works_gallery_item {
        font-size: .9375rem;
        margin-top: 40px
    }

    .page-company .company_message::before {
        right: auto;
        left: -70px;
        width: calc(700px + 50vw)
    }

    .page-company .company_message {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0 3vw;
        padding: 40px 0 40px 15px
    }

    .page-company .company_message {
        gap: 0 48px;
        padding: 40px 0
    }

    .page-company .message_body {
        grid-column: span 2
    }

    .page-company .president {
        width: unset;
        margin: 0
    }

    .page-company .president_name .ja {
        font-size: 1.375rem
    }

    .page-company .president_name .en {
        font-size: .75rem
    }

    .page-company .googlemap {
        height: 600px
    }

    .page-company .overview_list {
        grid-template-columns: minmax(15em, 200px) 1fr
    }

    .page-company .overview_list>dt {
        padding-left: 2.5em
    }

    .page-company .overview_list>dd {
        padding-right: 2em
    }

    .page-company .group_company {
        display: grid;
        grid-template-columns: 236px 1fr;
        gap: 0 4vw;
        align-items: center;
        padding: 1em 0
    }

    .page-company .group_company {
        gap: 0 65px
    }

    .page-company .group_logo {
        margin-bottom: 0
    }

    .page-contact .dl-form {
        position: relative;
        padding: 0 0 1px
    }

    .page-contact .dl-form>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 17em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .page-contact .dl-form>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 17em;
        word-break: break-all
    }

    .page-contact .dl-form>dt {
        margin-top: 0
    }

    .page-contact .ico-required {
        font-size: .75rem
    }

    .page-recruit .recruit_job_detail {
        position: relative;
        padding: 0 0 1px
    }

    .page-recruit .recruit_job_detail>dt {
        position: relative;
        z-index: 2;
        float: left;
        width: 17em;
        margin: 0;
        padding: 1em 0;
        clear: both
    }

    .page-recruit .recruit_job_detail>dd {
        position: relative;
        margin: 0;
        padding: 1em 0 1em 17em;
        word-break: break-all
    }

    .page-recruit .recruit_job_detail>dt {
        margin-top: 0
    }
}