@charset "UTF-8";
/*---------------------------------------------

Set CSS

coded by d-spica at 2025-09-12
imported to "style.scss"

---------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Murecho:wght@100..900&family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho&display=swap");
/* Reset */
body, header, hgroup, main, section, article, aside, nav, footer, main, figure, figcaption, picture, div, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, hr, blockquote, pre, table, caption, th, td, address, form, fieldset, legend, object {
    margin: 0;
    padding: 0;
}
h1, h2, h3, h4, h5, h6, pre, table, code, kbd, samp, acronym, time, input, textarea, select {
    font-size: 100%;
}
a, ins, u {
    text-decoration: none;
}
h1, h2, h3, h4, h5, h6, strong, b {
    font-weight: inherit;
}
address, em, i, b, cite, dfn, var {
    font-style: normal;
}
fieldset {
    border: none;
}
input, textarea {
    font-family: inherit;
    font-weight: normal;
}
input, button {
    margin: 0;
    vertical-align: middle;
}
img {
    border: none;
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
picture, video {
    display: block;
    vertical-align: bottom;
}
mark {
    background: none;
}
a, input, button, textarea {
    outline: none;
}
[type=text], [type=email], [type=tel], [type=submit], [type=button], select, textarea, button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    outline: none;
    background: none;
    font-size: 100%;
}
/* Setting */
ul {
    list-style-position: outside;
    list-style-type: none;
}
ol {
    list-style-position: outside;
}
table {
    border-collapse: collapse;
}
/* Set Var */ :root {
    --sans-font: "Noto Sans JP", sans-serif;
    --serif-jp-font: "Shippori Mincho", serif;
    --serif-en-font: "Cormorant Garamond", serif;
    --mark-font: "Murecho", sans-serif;
    --font-color: #000;
    --background-color: #EEE;
    --gradient-s-color: #FF0100;
    --gradient-c-color: #A12EFF;
    --gradient-e-color: #005DFF;
    --speed: 0.35s;
    --h-margin: max(5.4vw, calc(50vw - 60rem));
    /* https://angel-rs.github.io/css-color-filter-generator/ */
}
/*---------------------------------------------

Common CSS

coded by d-spica at 2025-09-12
imported to "style.scss"

---------------------------------------------*/
html {
    background-color: var(--background-color);
    line-height: 1.4;
    font-family: var(--sans-font);
    font-size: 10px;
    font-weight: 400;
    color: var(--font-color);
    scroll-behavior: smooth;
}
body {
    -webkit-text-size-adjust: 100%;
}
#page {
    position: relative;
}
hr {
    visibility: hidden;
    height: 0;
    clear: both;
}
a {
    color: inherit;
    transition: opacity var(--speed);
}
a:hover {
    opacity: 0.6;
}
[src*=".svg"] {
    width: 100%;
}
.obp-S, .obp-M, .obp-L {
    display: none;
}
header.header {
    display: flex;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 8;
    box-sizing: border-box;
    background-color: var(--background-color);
    padding: 0 var(--h-margin);
    width: 100%;
    height: 5.8rem;
    transition: background-color var(--speed);
}
header.header .logo {
    width: 14.4rem;
}
header.header .logo a {
    display: block;
    transition: var(--speed);
}
header.header .logo img {
    transition: var(--speed);
}
#page:has(nav.is-opened) header.header {
    background-color: #222;
}
#page:has(nav.is-opened) header.header .logo img {
    filter: grayscale(1) brightness(5);
}
nav.nav dt {
    position: fixed;
    top: 1.3rem;
    right: var(--h-margin);
    z-index: 9;
    width: 3.2rem;
    height: 3.2rem;
    cursor: pointer;
}
nav.nav dt i {
    display: block;
    position: absolute;
    top: calc(50% - 0.1rem);
    left: 0;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: 100%;
    height: 0.2rem;
    transition: transform var(--speed);
}
nav.nav dt i:nth-of-type(1) {
    transform: translateY(-0.5rem);
}
nav.nav dt i:nth-of-type(2) {
    transform: translateY(0.5rem);
}
nav.nav dd {
    position: fixed;
    top: 5.8rem;
    left: 0;
    z-index: 8;
    overflow: auto;
    box-sizing: border-box;
    padding-bottom: 2rem;
    width: 100%;
    height: calc(100dvh - 7.8rem);
    background-color: #222;
    color: #FFF;
    transform-origin: 0 0;
    transform: scaleY(0);
    transition: transform var(--speed);
}
nav.nav dd > ul {
    display: flex;
    flex-direction: column;
    gap: 2rem 0;
    padding: 2rem var(--h-margin);
}
nav.nav dd > ul > li > a {
    display: block;
    position: relative;
    padding: 1em 0;
    font-size: 1.4rem;
    font-weight: 600;
}
nav.nav dd > ul > li > a span {
    display: inline-block;
    margin-right: 0.5em;
    font-size: 2.4rem;
}
nav.nav dd > ul > li > a em {
    display: inline-block;
    vertical-align: 0.1em;
}
nav.nav dd > ul > li > a i {
    display: block;
    position: absolute;
    top: calc(50% - 1.8rem);
    right: 0;
    width: 4rem;
    height: 4rem;
}
nav.nav dd > ul > li > a i::before {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 0.7rem);
    left: calc(50% - 0.5rem);
    border-right: solid 1px;
    border-bottom: solid 1px;
    width: 1rem;
    height: 1rem;
    transform: rotate(45deg);
    transition: var(--speed);
}
nav.nav dd > ul > li > ul {
    overflow: hidden;
    max-height: 0;
    transition: max-height var(--speed);
}
nav.nav dd > ul > li > ul li a {
    display: block;
    position: relative;
    padding: 1em 0 0.8em;
    font-size: 1.5rem;
}
nav.nav dd > ul > li > ul li a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 0.9rem;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2rem;
    font-weight: 200;
    transition: var(--speed);
}
nav.nav dd > ul > li > ul li a:hover::after {
    right: 0.4rem;
}
nav.nav dd > ul > li > ul li:nth-last-of-type(n+2) a {
    border-bottom: solid 0.5px;
}
nav.nav dd > ul > li.is-opened > a i::before {
    top: calc(50% - 0.2rem);
    transform: rotate(-135deg);
}
nav.nav dd > ul > li.is-opened > ul {
    max-height: 32rem; /* 要調整 */
}
nav.nav dd > ul:nth-of-type(1) > li > a {
    border-bottom: solid 1px;
}
nav.nav dd > ul:nth-of-type(2) > li {
    border-radius: 3.1rem;
    background-color: #FFF;
    padding: 0 2.5rem;
    color: var(--font-color);
}
nav.nav dd > ul:nth-of-type(2) > li:nth-of-type(n+2) {
    margin-top: 2rem;
}
nav.nav.is-opened dt i:nth-of-type(1) {
    background: #FFF;
    transform: translateY(0) rotate(155deg);
}
nav.nav.is-opened dt i:nth-of-type(2) {
    background: #FFF;
    transform: translateY(0) rotate(-155deg);
}
nav.nav.is-opened dd {
    transform: scaleY(1);
}
main {
    margin: 0 var(--h-margin);
    padding-top: 5.8rem;
}
footer.footer {
    border-radius: 0.8rem 0.8rem 0 0;
    background-color: #222;
    padding: 14rem var(--h-margin) 4rem;
    color: #FFF;
}
footer.footer dl {
    margin: 0 auto;
    max-width: 40rem;
}
footer.footer dt img {
    width: 33.5rem;
    filter: grayscale(1) brightness(5);
}
footer.footer dt span {
    display: block;
    margin-top: 2rem;
    font-size: 2.4rem;
    font-weight: 700;
}
footer.footer dd {
    margin-top: 4rem;
    line-height: 1.6;
    font-size: 1.5rem;
}
footer.footer dd li {
    display: flex;
    gap: 0 1em;
    margin-top: 1em;
}
footer.footer dd li em {
    display: block;
    width: 6em;
}
footer.footer dd li span {
    display: block;
}
footer.footer .nav-main {
    margin: 0 auto;
    max-width: 38rem;
}
footer.footer .nav-main > li {
    margin-top: 4rem;
}
footer.footer .nav-main > li > a {
    display: block;
    font-size: 1rem;
}
footer.footer .nav-main > li > a span {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
}
footer.footer .nav-main > li > ul {
    font-size: 1.5rem;
}
footer.footer .nav-main > li > ul li {
    margin-top: 0.6em;
}
footer.footer .nav-main > li > ul li a {
    display: block;
    position: relative;
    padding-left: 0.6em;
}
footer.footer .nav-main > li > ul li a::before {
    content: "-";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
footer.footer .nav-main:nth-of-type(2) > li:nth-of-type(4) a {
    position: relative;
    border: solid 1px;
    border-radius: 9999rem;
    padding: 0.5em 11em 1em 3em;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
footer.footer .nav-main:nth-of-type(2) > li:nth-of-type(4) a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.85em);
    right: 3rem;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2rem;
    font-weight: 400;
    transition: var(--speed);
}
footer.footer .nav-main:nth-of-type(2) > li:nth-of-type(4) a:hover::after {
    right: 2.6rem;
}
footer.footer p.copyright {
    margin-top: 4rem;
    border-top: solid 1px;
    padding-top: 3.5rem;
    width: 100%;
    text-align: center;
    font-size: 1.2rem;
}
footer.footer .nav-sub {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin-top: 2rem;
    width: 100%;
    font-size: 1.2rem;
}
footer.footer .nav-sub a {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
.is-scrolled header.header {
    box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.2);
}
section:has(span[id]) {
    position: relative;
}
span[id] {
    position: absolute;
    top: -8em;
    left: 0;
    display: block;
}
@media (min-width: 560px) {
    .obp-S {
        display: inline-block;
    }
    .ubp-S {
        display: none;
    }
}
@media (min-width: 800px) {
    .obp-M {
        display: inline-block;
    }
    .ubp-M {
        display: none;
    }
    nav.nav dd {
        display: flex;
    }
    nav.nav dd > ul {
        flex: 1;
    }
    footer.footer {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0 5rem;
    }
    footer.footer dl {
        margin: 0;
        width: 30rem;
    }
    footer.footer .nav-main {
        margin: 0;
        width: calc(50% - 2.5rem);
    }
    footer.footer .nav-main:nth-of-type(1) {
        margin-top: 13.6rem;
    }
    footer.footer .nav-main:nth-of-type(2) {
        margin-left: 35rem;
    }
}
@media (min-width: 1200px) {
    .obp-L {
        display: inline-block;
    }
    .ubp-L {
        display: none;
    }
    header.header {
        height: 9.6rem;
    }
    header.header .logo {
        width: 25rem;
    }
    #page:has(nav.is-opened) header.header {
        background-color: var(--background-color);
    }
    #page:has(nav.is-opened) header.header .logo img {
        filter: grayscale(0) brightness(1);
    }
    nav.nav dt {
        display: none;
    }
    nav.nav dd {
        display: flex;
        justify-content: end;
        top: 2rem;
        left: auto;
        right: var(--h-margin);
        overflow: visible;
        background-color: transparent;
        width: auto;
        height: auto;
        color: inherit;
        transform: scaleY(1);
    }
    nav.nav dd > ul {
        flex-direction: row;
        justify-content: end;
        padding: 0;
    }
    nav.nav dd > ul > li {
        position: relative;
    }
    nav.nav dd > ul > li > a {
        border: solid 1px;
        border-radius: 9999rem;
        padding: 0.5em 3em;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
        font-size: 1rem;
    }
    nav.nav dd > ul > li > a span {
        display: block;
        white-space: nowrap;
        font-size: 1.6rem;
    }
    nav.nav dd > ul > li > a em {
        display: block;
    }
    nav.nav dd > ul > li > a i {
        top: calc(50% - 2.2rem);
        pointer-events: none;
    }
    nav.nav dd > ul > li > ul {
        position: absolute;
        top: 4.8rem;
        left: 0;
        border-radius: 1rem;
        background-color: #222;
        padding: 1rem 2rem;
        max-height: none;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
        color: #FFF;
        transform: scaleY(0);
        transform-origin: 0 0;
        transition: transform var(--speed);
    }
    nav.nav dd > ul > li > ul li a {
        padding-right: 4rem;
        white-space: nowrap;
        font-size: 1.4rem;
    }
    nav.nav dd > ul > li:hover > a i::before {
        top: calc(50% - 0.2rem);
        transform: rotate(-135deg);
    }
    nav.nav dd > ul > li:hover > ul {
        transform: scaleY(1);
    }
    nav.nav dd > ul:nth-of-type(1) > li > a {
        border-color: transparent;
    }
    nav.nav dd > ul:nth-of-type(2) > li {
        background-color: transparent;
        padding: 0;
        color: inherit;
    }
    nav.nav dd > ul:nth-of-type(2) > li:nth-of-type(n+2) {
        margin: 1px 1px 1px calc(2rem + 1px);
    }
    nav.nav dd > ul:nth-of-type(2) > li:nth-of-type(n+2) > a {
        position: relative;
        border: none;
        background-color: var(--background-color);
    }
    nav.nav dd > ul:nth-of-type(2) > li:nth-of-type(n+2) > a::before {
        content: "";
        display: block;
        position: absolute;
        top: -1px;
        left: -1px;
        z-index: -1;
        border-radius: 9999rem;
        background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
        width: calc(100% + 2px);
        height: calc(100% + 2px);
    }
    nav.nav dd > ul:nth-of-type(2) > li:nth-of-type(n+2) > a:hover {
        opacity: 1;
    }
    main {
        padding-top: 9.6rem;
    }
    footer.footer {
        justify-content: space-between;
    }
    footer.footer .nav-main:nth-of-type(1) {
        margin-top: 0;
        margin-left: 3rem;
        margin-right: -3rem;
        max-width: 35%;
    }
    footer.footer .nav-main:nth-of-type(2) {
        margin-left: 0;
        max-width: 25%;
    }
}
/*---------------------------------------------

Top Page Sections CSS

coded by d-spica at 2025-10-07
imported to "style.scss"

---------------------------------------------*/
header.hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4rem 6%;
    margin-top: 4rem;
}
header.hero h1 {
    width: min(75%, 50rem);
}
header.hero figure {
    position: relative;
    width: min(75%, 50rem);
    aspect-ratio: 1.3382/1;
}
header.hero figure div {
    position: absolute;
    width: 93.521%;
    height: 80%;
    mask-repeat: no-repeat;
    -webkit-mask-position: 50% 50%;
    mask-position: 50% 50%;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    -webkit-mask-size: contain;
}
header.hero figure div:nth-of-type(1) {
    top: 0;
    right: 0;
    mask-image: url("../img/ms-s-r.png");
    -webkit-mask-image: url("../img/ms-s-r.png");
}
header.hero figure div:nth-of-type(2) {
    bottom: 0;
    left: 0;
    mask-image: url("../img/ms-s-b.png");
    -webkit-mask-image: url("../img/ms-s-b.png");
}
header.hero figure img, header.hero figure video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
header.hero dt {
    margin: 0 auto 3.5rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 1.5;
    white-space: nowrap;
    font-family: var(--serif-jp-font);
    font-size: 3.6rem;
    font-weight: 500;
}
header.hero dd {
    margin-top: 4rem;
    line-height: 1.75;
    font-size: 2.4rem;
    font-weight: 500;
}
@media screen and (max-width: 750px) {
    header.hero dd br {
        display: none;
    }
}
header.hero p {
    text-align: center;
    font-size: 2.4rem;
}
header.hero p::after {
    content: "";
    display: block;
    margin: 0.3rem auto 0;
    background: url("../img/ar-d.svg") no-repeat 50% 50%/contain;
    width: 1rem;
    height: 2.4rem;
}
section.policy-T {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
section.policy-T h2 {
    order: 2;
    margin: 0 auto;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 1.5;
    font-family: var(--serif-jp-font);
    font-size: 3.4rem;
    font-weight: 500;
}
section.policy-T ul {
    order: 3;
    margin: 2rem auto 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 1.5;
    font-size: 1.7rem;
    font-weight: 600;
}
section.policy-T li {
    display: flex;
    gap: 1em;
    margin-top: 1.2em;
}
section.policy-T li em {
    display: block;
    width: 4em;
}
section.policy-T li span {
    display: block;
    flex: 1;
}
section.policy-T picture {
    order: 1;
    margin: 0 auto 5rem;
    max-width: 50rem;
}
section.pages header {
    display: flex;
    flex-direction: column;
    position: relative;
    font-size: min(2.5vw, 2.5rem);
}
section.pages header::before {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    width: calc(36em + var(--h-margin));
    height: 17em;
}
section.pages h2 span {
    display: block;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 1;
    font-family: var(--serif-en-font);
    font-size: 3.8em;
    font-weight: 600;
}
section.pages h2 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: 1.6em;
    font-weight: 500;
}
section.pages picture {
    position: relative;
    overflow: hidden;
    border-radius: 0.8rem;
    width: 18em;
    aspect-ratio: 3/2;
}
section.pages picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
section.pages dl {
    margin-top: 3rem;
    max-width: 51rem;
}
section.pages dt {
    margin-bottom: 3rem;
    font-family: var(--serif-jp-font);
    font-size: min(3.2rem, 8vw);
}
section.pages dd ul {
    font-size: min(2rem, 5.2vw);
    font-weight: 500;
}
section.pages dd li:nth-of-type(n+2) {
    border-top: solid 1px;
}
section.pages dd li a {
    display: block;
    position: relative;
    padding: 1em 2em 1em 2.5em;
}
section.pages dd li a b {
    position: absolute;
    top: 1em;
    left: 0.5em;
}
section.pages dd li a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 0.5em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.2rem;
    font-weight: 400;
    transition: var(--speed);
}
section.pages dd li a:hover::after {
    right: calc(0.5em - 4px);
}
section.pages dd p {
    line-height: 1.75;
    font-size: 1.6rem;
    font-weight: 500;
}
section.pages dd:last-child {
    margin-top: 3rem;
}
section.service-T header, section.recruit-T header {
    padding-top: 1.5em;
}
section.service-T header::before, section.recruit-T header::before {
    top: 0;
    left: calc(-1 * var(--h-margin));
    background: url("../img/pages-bg-l.png") no-repeat 100% 0/auto 100%;
}
section.service-T header picture, section.recruit-T header picture {
    margin-top: 1.5em;
}
section.service-T dl, section.recruit-T dl {
    margin-left: auto;
}
section.company-T header {
    flex-direction: column-reverse;
    align-items: end;
    margin-left: auto;
    padding-bottom: 2.5em;
    text-align: right;
}
section.company-T header::before {
    bottom: 0;
    right: calc(-1 * var(--h-margin));
    background: url("../img/pages-bg-r.png") no-repeat 0 100%/auto 100%;
}
section.company-T header picture {
    margin-bottom: 1.5em;
}
section.info-T h2 {
    margin-bottom: 3rem;
    font-size: min(2.5vw, 2.5rem);
}
section.info-T h2 span {
    display: block;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    line-height: 1;
    font-family: var(--serif-en-font);
    font-size: 3.8em;
    font-weight: 600;
}
section.info-T h2 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: 1.6em;
    font-weight: 500;
}
section.info-T ul {
    margin-bottom: 3rem;
}
section.info-T li {
    border-bottom: solid 1px;
    line-height: 1.6;
    font-size: 1.6rem;
}
section.info-T li a {
    display: flex;
    position: relative;
    padding-right: 2em;
    padding: 1em 2em 1em 0.5em;
}
section.info-T li a time {
    width: 7em;
    font-weight: 600;
}
section.info-T li a em {
    flex: 1;
    font-weight: 500;
}
section.info-T li a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 0.5em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.2rem;
    font-weight: 400;
    transition: var(--speed);
}
section.info-T li a:hover::after {
    right: calc(0.5em - 4px);
}
@media (min-width: 800px) {
    header.hero {
        flex-direction: row-reverse;
        flex-wrap: wrap;
        margin-top: 8rem;
    }
    header.hero h1 {
        margin: 0;
        width: 45%;
    }
    header.hero figure {
        margin: 0;
        width: 45%;
    }
    header.hero dl {
        width: 49%;
    }
    header.hero dt {
        margin-left: 0;
        font-size: min(4.8rem, 4.6vw);
    }
    header.hero dd {
        font-size: min(2.4rem, 2.4vw);
    }
    header.hero p {
        margin-top: 6rem;
        width: 100%;
    }
    section.policy-T {
        position: relative;
        padding-left: 35%;
        min-height: min(52vw, 70.2rem);
    }
    section.policy-T h2 {
        margin-left: 0;
        font-size: 3.8rem;
    }
    section.policy-T ul {
        margin-top: 4rem;
        margin-left: 0;
        font-size: 2.2rem;
    }
    section.policy-T picture {
        position: absolute;
        top: 7rem;
        left: -19%;
        z-index: -1;
        margin-bottom: 0;
        max-width: none;
        width: 62%;
        opacity: 0.5;
    }
    section.pages h2 em {
        font-size: 1.2em;
    }
    section.pages dl {
        margin-top: 4rem;
    }
    section.pages dt {
        margin-bottom: 4rem;
        font-size: 3.6rem;
    }
    section.pages dd ul {
        font-size: 2.4rem;
    }
    section.pages dd p {
        font-size: 1.8rem;
    }
    section.company {
        font-size: 1.6rem;
    }
}
@media (min-width: 1200px) {
    section.pages picture {
        width: 17em;
        aspect-ratio: 3/4;
    }
    section.service-T dl, section.recruit-T dl {
        margin-top: -30rem;
    }
    section.company-T {
        display: flex;
        flex-direction: column-reverse;
    }
    section.company-T dl {
        margin-top: 0;
        margin-bottom: -46rem;
    }
    section.info-T {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
        gap: 4rem 10rem;
    }
    section.info-T h2 {
        grid-column: 1/2;
        grid-row: 1/2;
    }
    section.info-T ul {
        grid-column: 2/3;
        grid-row: 1/3;
        margin-bottom: 0;
    }
    section.info-T p {
        grid-column: 1/2;
        grid-row: 2/3;
        align-self: end;
    }
}
@media (min-width: 1320px) {
    section.service-T, section.recruit-T {
        min-height: 78rem;
    }
    section.service-T dl, section.recruit-T dl {
        margin-top: -58rem;
    }
}
/*---------------------------------------------

Common Sections CSS

coded by d-spica at 2025-09-16
imported to "style.scss"

---------------------------------------------*/
section.page-list {
    margin: 5rem auto;
    max-width: 96rem;
}
section.page-list h1 {
    margin-bottom: 1em;
    font-size: 2.4rem;
    font-weight: 700;
}
section.page-list ul {
    font-size: 1.6rem;
}
section.page-list li {
    margin-top: 1em;
}
section.page-list li a {
    display: block;
    position: relative;
    padding-left: 1.5em;
}
section.page-list li a::before {
    content: "→";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-weight: 900;
    color: var(--gradient-e-color);
}
header[class*=title] {
    padding: 2rem 0;
}
header[class*=title] hgroup {
    position: relative;
    overflow: hidden;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 60% min(6rem, 6vw) 3rem;
}
header[class*=title] hgroup picture {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    aspect-ratio: 3/2;
    opacity: 0.6;
}
header[class*=title] hgroup picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
header[class*=title] hgroup picture::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    background: linear-gradient(0deg, rgb(255, 255, 255), rgba(255, 255, 255, 0));
    width: 100%;
    height: 25%;
}
header[class*=title] hgroup h1 {
    position: relative;
    z-index: 1;
    margin-bottom: 3rem;
}
header[class*=title] hgroup p {
    position: relative;
    z-index: 1;
    line-height: 1.5;
    font-family: var(--serif-jp-font);
    font-size: 1.6rem;
    font-weight: 600;
}
header[class*=title] .topicpath {
    margin-top: 1.5rem;
    font-size: 1.2rem;
}
header[class*=title] .topicpath a {
    display: inline-block;
}
header[class*=title] .topicpath i {
    display: inline-block;
    margin: 0 0.6em 0.05em 0.5em;
    border-top: solid 1px;
    border-right: solid 1px;
    width: 0.5em;
    height: 0.5em;
    transform: rotate(45deg);
}
header[class*=title] .topicpath em {
    display: inline-block;
    font-weight: 600;
}
header.title-A h1 span {
    display: block;
    line-height: 1.1;
    font-family: var(--serif-en-font);
    font-size: 5rem;
    font-weight: 600;
}
header.title-A h1 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: 1.8rem;
    font-weight: 600;
}
header.title-B h1 span {
    display: block;
    font-family: var(--serif-en-font);
    font-size: 2rem;
    font-weight: 600;
    color: #888;
}
header.title-B h1 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: 3.2rem;
    font-weight: 600;
}
header.title-C h1 {
    margin-bottom: 3rem;
}
header.title-C h1 span {
    display: block;
    line-height: 1.1;
    font-family: var(--serif-en-font);
    font-size: 5rem;
    font-weight: 600;
}
header.title-C h1 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: 1.8rem;
    font-weight: 600;
}
header.title-D h1 {
    margin-bottom: 3rem;
}
header.title-D h1 span {
    display: block;
    line-height: 1.1;
    font-family: var(--serif-en-font);
    font-size: 2rem;
    font-weight: 600;
}
header.title-D h1 em {
    display: block;
    font-family: var(--serif-jp-font);
    font-size: min(4rem, 8.5vw);
    font-weight: 600;
}
main > section {
    margin: 0 auto;
    padding: 4.5rem 0;
}
main > section:not([class*=-T]) {
    max-width: 96rem;
}
main > section:not([class*=-T]) h2 {
    position: relative;
    margin-bottom: 3rem;
    padding-left: 1.5em;
    padding-bottom: 0.3em;
    font-size: 2.4rem;
    font-weight: 600;
}
main > section:not([class*=-T]) h2::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: 100%;
    height: 1px;
}
main > section:not([class*=-T]) h2::before {
    content: "";
    display: block;
    position: absolute;
    top: 0.25em;
    left: 0;
    background: url("../img/mk-hd.svg") no-repeat 50% 50%/contain;
    width: 1.2em;
    height: 1em;
}
.button-A {
    display: flex;
    align-items: center;
    position: relative;
    padding-right: 3em;
    height: 3.6em;
    line-height: 1.4;
    font-size: 2rem;
    font-weight: 600;
}
.button-A::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: 100%;
    height: 1px;
}
.button-A::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 1em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.2rem;
    font-weight: 400;
    transition: var(--speed);
}
.button-A:hover::after {
    right: calc(1em - 4px);
}
.button-B {
    display: flex;
    align-items: center;
    position: relative;
    box-sizing: border-box;
    border: solid 1px;
    border-radius: 0.8rem;
    padding: 0 3.2em 0 1.2em;
    height: 8.2rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    min-width: min(100%, 47rem);
    line-height: 1.4;
    font-size: min(2.2rem, 5.8vw);
}
.button-B::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 0.5em);
    right: 1.2em;
    background: url("../img/mk-newtab.svg") no-repeat 50% 50%/contain;
    width: 1em;
    height: 1em;
    transition: transform var(--speed);
}
.button-B:hover::after {
    transform: translate(3px, -3px);
}
.button-C {
    display: flex;
    align-items: center;
    position: relative;
    box-sizing: border-box;
    border: solid 1px;
    border-radius: 0.8rem;
    padding: 0 3.2em 0 1.2em;
    height: 7rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    min-width: min(100%, 33rem);
    line-height: 1.4;
    font-size: min(2.2rem, 5.8vw);
}
.button-C::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 1em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.4rem;
    font-weight: 400;
    transition: var(--speed);
}
.button-C:hover::after {
    right: calc(1em - 4px);
}
form [type=text], form [type=email], form [type=tel], form textarea {
    box-sizing: border-box;
    border: solid 1px #BBB;
    border-radius: 0.6rem;
    background-color: #FFF;
    padding: 0.4em;
    width: 100%;
}
form select {
    box-sizing: border-box;
    border: solid 1px #BBB;
    border-radius: 0.6rem;
    background: #FFF url("../img/bg-select.svg") no-repeat 96% 50%/auto 1em;
    padding: 0.6em 1.6em 0.6em 0.6em;
}
form textarea {
    margin-top: 1em;
}
form [type=checkbox] {
    margin: 0.5em;
    transform: scale(1.8);
}
aside.contact {
    margin-top: 4.5rem;
    margin-bottom: -7rem;
}
aside.contact a {
    display: flex;
    align-items: center;
    position: relative;
    margin: 1px auto;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 0 min(6vw, 9rem);
    height: 13rem;
    font-family: var(--serif-jp-font);
    font-size: 2.1rem;
    font-weight: 600;
    width: 65%;
}
aside.contact a::before {
    content: "";
    display: block;
    position: absolute;
    top: -1px;
    left: -1px;
    z-index: -1;
    border-radius: 0.8rem;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: calc(100% + 2px);
    height: calc(100% + 2px);
}
@media screen and (max-width: 750px) {
    aside.contact a {
        height: 10rem;
        width: 80%;
    }
}
aside.contact a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: calc(min(6vw, 9rem) + 0.4rem);
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 120%;
    font-weight: 400;
    transition: var(--speed);
}
aside.contact a:hover {
    opacity: 1;
}
aside.contact a:hover::after {
    right: min(6vw, 9rem);
}
@media (min-width: 800px) {
    header[class*=title] {
        padding-top: 4rem;
    }
    header[class*=title] hgroup {
        box-sizing: border-box;
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
        height: 48rem;
    }
    header[class*=title] hgroup picture {
        width: 75%;
        height: 100%;
        aspect-ratio: auto;
    }
    header[class*=title] hgroup picture::after {
        background: linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0));
        width: 40%;
        height: 100%;
    }
    header[class*=title] hgroup p {
        width: 45%;
        font-size: min(2.2rem, 2.4vw);
    }
    header[class*=title] .topicpath {
        margin-top: 2.5rem;
    }
    header.title-A h1 {
        margin-bottom: 6rem;
    }
    header.title-A h1 span {
        font-size: min(8rem, 7vw);
    }
    header.title-A h1 em {
        font-size: min(2.8rem, 3vw);
    }
    .page-recruit header.title-A h1 {
        margin-top: 12rem;
    }
    header.title-B h1 span {
        font-size: 2.8rem;
    }
    header.title-B h1 em {
        font-size: min(4rem, 4vw);
    }
    header.title-C h1 {
        margin-bottom: 6rem;
    }
    header.title-C h1 span {
        font-size: min(8rem, 7vw);
    }
    header.title-C h1 em {
        font-size: min(2.8rem, 3vw);
    }
    header.title-D h1 {
        margin-bottom: 6rem;
    }
    header.title-D h1 span {
        font-size: 2.8rem;
    }
    header.title-D h1 em {
        font-size: 5rem;
    }
    main > section {
        padding: 7rem 0;
    }
    main > section:not([class*=-T]) h2 {
        font-size: 2.8rem;
    }
    .button-B {
        height: 9.6rem;
    }
    aside.contact {
        margin-top: 7rem;
    }
    aside.contact a {
        font-size: 3.2rem;
    }
}
/*---------------------------------------------

Service Page Sections CSS

coded by d-spica at 2025-09-18
imported to "style.scss"

---------------------------------------------*/
section.services ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem 3rem;
    margin: 0 auto;
    max-width: 50rem;
}
section.services li {
    width: 100%;
}
section.services li a {
    display: block;
}
section.services li a::after {
    content: "";
    display: block;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: 100%;
    height: 1px;
}
section.services li a:hover em::after {
    right: calc(1em - 4px);
}
section.services li picture {
    position: relative;
    overflow: hidden;
    border-radius: 0.8rem;
    aspect-ratio: 16/9;
}
section.services li picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
section.services li em {
    display: flex;
    align-items: center;
    position: relative;
    padding: 0 3em 0 1em;
    height: 3.6em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.services li em::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 1em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.2rem;
    font-weight: 400;
    transition: var(--speed);
}
section.service {
    font-size: 1.4rem;
}
section.service p {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.service picture {
    margin-bottom: 1.5em;
}
section.service ul {
    margin-bottom: 1.5em;
}
section.ai-01 picture {
    overflow: hidden;
    border-radius: 0.8rem;
    max-width: 50rem;
}
section.ai-01 p {
    font-size: 1.8rem;
}
section.ai-02 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 30rem;
}
section.ai-02 li {
    width: 100%;
}
section.ai-02 li picture {
    margin: 0 auto;
    width: 15rem;
}
section.ai-02 li em {
    display: block;
    margin-top: 1em;
    text-align: center;
    font-size: 2rem;
    font-weight: 600;
}
section.ai-02 li span {
    display: block;
    margin-top: 1em;
    line-height: 1.75;
}
section.ai-03 ul {
    font-size: 1.8rem;
}
section.ai-03 li {
    position: relative;
    margin-bottom: 1em;
    padding-left: 1em;
}
section.ai-03 li::before {
    content: "・";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
}
section.ai-04 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem 3rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 50rem;
}
section.ai-04 li {
    width: 100%;
}
section.ai-04 li picture {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
    border-radius: 0.8rem;
    aspect-ratio: 3/2;
}
section.ai-04 li picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
section.ai-04 li em {
    display: block;
    margin-top: 0.8em;
    font-size: 2rem;
    font-weight: 600;
}
section.ai-04 li span {
    display: block;
    margin-top: 0.5em;
    line-height: 1.75;
}
section.ai-05 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 50rem;
}
section.ai-05 li {
    box-sizing: border-box;
    border: solid 1px;
    border-radius: 0.8rem;
    padding: 2rem 3rem 3rem;
}
section.ai-05 li em {
    display: block;
    margin-bottom: 0.8em;
    text-align: center;
    white-space: nowrap;
    font-size: 1.9rem;
    font-weight: 600;
}
section.ai-05 li span {
    line-height: 1.75;
}
section.mode_base-01 section {
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 1rem min(5.4vw, 4rem);
}
section.mode_base-01 section h3 {
    margin-bottom: 3rem;
    border-bottom: solid 1px #BBB;
    padding: 0.3em;
    text-align: center;
    font-size: 2.6rem;
    font-weight: 600;
}
section.mode_base-01 section h3::before {
    content: "-";
    display: inline-block;
    margin-right: 0.3em;
}
section.mode_base-01 section h3::after {
    content: "-";
    display: inline-block;
    margin-left: 0.3em;
}
section.mode_base-01 section dl {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.mode_base-01 section dt {
    font-weight: 500;
}
section.mode_base-01 section li {
    position: relative;
    padding-left: 1em;
}
section.mode_base-01 section li::before {
    content: "・";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
section.mode_base-01 section li i {
    display: inline-block;
    margin-right: 0.3em;
    font-family: var(--mark-font);
    font-weight: 900;
}
section.mode_base-01 section:nth-of-type(1) picture {
    margin-left: auto;
    margin-right: auto;
    width: 21rem;
}
section.mode_base-01 section:nth-of-type(2) {
    margin-top: 3rem;
}
section.mode_base-01 section:nth-of-type(2) picture {
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    border-radius: 0.8rem;
    width: min(39rem, 100%);
}
section.mode_base-02 picture {
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    border-radius: 0.8rem;
    max-width: 39rem;
}
section.hardware-01 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem 3rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 40rem;
}
section.hardware-01 li {
    width: 100%;
}
section.hardware-01 li picture {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
    border-radius: 0.8rem;
    background-color: #FFF;
    aspect-ratio: 3/2;
}
section.hardware-01 li picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}
section.hardware-01 li em {
    display: block;
    margin-top: 0.8em;
}
section.hardware-02 ul {
    font-size: 1.8rem;
}
section.hardware-02 li {
    position: relative;
    margin-bottom: 1em;
    padding-left: 1em;
}
section.hardware-02 li::before {
    content: "・";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
}
section.software-01 p {
    font-size: 1.8rem;
}
section.software-01 picture {
    margin-left: auto;
    margin-right: auto;
    max-width: 64rem;
}
section.software-01 section {
    margin-top: 4rem;
}
section.software-01 h3 {
    margin-bottom: 2rem;
    font-size: 1.8rem;
    font-weight: 600;
}
section.software-01 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}
section.software-01 li {
    box-sizing: border-box;
    border: solid 1px;
    border-radius: 0.8rem;
    padding: 2rem;
    width: 100%;
}
section.software-01 li em {
    display: block;
    margin-bottom: 0.5em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.software-01 li span {
    display: block;
    line-height: 1.75;
}
section.software-02 > picture {
    margin-left: auto;
    margin-right: auto;
    max-width: 50rem;
}
section.software-02 > p {
    font-size: 1.8rem;
}
section.software-02 section {
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 3rem min(5vw, 4rem);
}
section.software-02 section > :last-child {
    margin-bottom: 0;
}
section.software-02 h3 {
    margin-bottom: 0.8em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.software-02 p em {
    font-weight: 600;
}
section.dispatch-01 p {
    font-size: 1.8rem;
}
section.dispatch-02 li {
    margin-top: 3rem;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 2rem min(5vw, 4rem);
}
section.dispatch-02 li em {
    display: block;
    margin-bottom: 0.5em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.dispatch-02 li span {
    display: block;
    line-height: 1.75;
}
section.dispatch-03 section, section.dispatch-04 section {
    margin-top: 3rem;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 2rem min(5vw, 4rem);
}
section.dispatch-03 section > :last-child, section.dispatch-04 section > :last-child {
    margin-bottom: 0;
}
section.dispatch-03 h3, section.dispatch-04 h3 {
    display: block;
    margin-bottom: 0.5em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.dispatch-03 dl, section.dispatch-04 dl {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.dispatch-03 dt, section.dispatch-04 dt {
    font-weight: 600;
}
section.dispatch-03 li, section.dispatch-04 li {
    position: relative;
    margin-bottom: 0.35em;
    padding-left: 1em;
    line-height: 1.4;
}
section.dispatch-03 li::before, section.dispatch-04 li::before {
    content: "・";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
@media (min-width: 640px) {
    section.ai-02 ul {
        max-width: none;
    }
    section.ai-02 ul li {
        width: calc(50% - 2rem);
    }
    section.software-01 li {
        width: calc(50% - 1rem);
    }
}
@media (min-width: 800px) {
    section.services ul {
        max-width: none;
    }
    section.services li {
        width: calc(50% - 1.5rem);
    }
    section.service {
        font-size: 1.6rem;
    }
    section.ai-01 picture {
        float: left;
        margin-right: 2em;
        max-width: 35rem;
    }
    section.ai-01 p {
        font-size: 2rem;
    }
    section.ai-03 ul {
        font-size: 2rem;
    }
    section.ai-04 ul {
        max-width: none;
    }
    section.ai-04 li {
        width: calc(50% - 1.5rem);
    }
    section.mode_base-01 section:nth-of-type(1) {
        display: grid;
        grid-template-columns: 21rem 1fr;
        grid-template-rows: auto auto auto;
        gap: 0 5rem;
    }
    section.mode_base-01 section:nth-of-type(1) h3 {
        grid-column: 1/3;
        grid-row: 1/2;
    }
    section.mode_base-01 section:nth-of-type(1) p {
        grid-column: 2/3;
        grid-row: 2/3;
    }
    section.mode_base-01 section:nth-of-type(1) dl {
        grid-column: 2/3;
        grid-row: 3/4;
    }
    section.mode_base-01 section:nth-of-type(1) picture:nth-of-type(2) {
        align-self: center;
    }
    section.mode_base-01 section:nth-of-type(2) {
        margin-top: 4rem;
    }
    section.mode_base-01 section:nth-of-type(2) picture {
        float: left;
        margin-left: 0;
        margin-right: 2em;
    }
    section.mode_base-01 section:nth-of-type(2) dl {
        clear: left;
    }
    section.mode_base-02::after {
        content: "";
        display: block;
        clear: left;
        height: 0;
    }
    section.mode_base-02 picture {
        float: left;
        margin-left: 0;
        margin-right: 2em;
        max-width: min(40%, 39rem);
    }
    section.mode_base-02 .button-A br {
        display: inline-block;
    }
    section.hardware-01 ul {
        max-width: none;
    }
    section.hardware-01 li {
        width: calc(50% - 1.5rem);
    }
    section.hardware-02 ul {
        font-size: 2rem;
    }
    section.software-01 p {
        font-size: 2rem;
    }
    section.software-01 h3 {
        font-size: 2rem;
    }
    section.software-01 li em {
        font-size: 2rem;
    }
    section.software-02 > picture {
        float: left;
        margin-left: 0;
        margin-right: 2em;
        max-width: min(35%, 35rem);
    }
    section.software-02 section {
        clear: left;
    }
    section.dispatch-01 p {
        font-size: 2rem;
    }
    section.dispatch-02 li {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
    section.dispatch-02 li em {
        font-size: 2rem;
    }
    section.dispatch-03 section, section.dispatch-04 section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
    section.dispatch-03 h3, section.dispatch-04 h3 {
        font-size: 2rem;
    }
}
@media (min-width: 960px) {
    section.mode_base-02 .button-A br {
        display: none;
    }
}
@media (min-width: 1040px) {
    section.ai-02 li {
        width: calc(25% - 3rem);
    }
    section.ai-05 ul {
        max-width: none;
    }
    section.ai-05 li {
        width: auto;
        flex: 1;
    }
    section.software-01 li {
        width: calc(25% - 1.5rem);
    }
}
/*---------------------------------------------

Company Page Sections CSS

coded by d-spica at 2025-09-22
imported to "style.scss"

---------------------------------------------*/
nav.nav-section {
    margin: 0 auto;
    padding-top: 7rem;
    max-width: 96rem;
}
nav.nav-section ul {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    max-width: 40rem;
    border-top: solid 1px #BBB;
}
nav.nav-section li {
    border-bottom: solid 1px #BBB;
}
nav.nav-section li a {
    display: block;
    position: relative;
    padding: 1.2em 0;
    white-space: nowrap;
    font-size: 2rem;
}
nav.nav-section li a::after {
    content: "↓";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 0.5em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2.2rem;
    font-weight: 600;
    transition: var(--speed);
}
nav.nav-section li a:hover::after {
    transform: translateY(4px);
}
section.company {
    font-size: 1.4rem;
}
section.company p, section.company ul {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.company li {
    border-bottom: solid 1px #BBB;
    padding: 0.8em 0;
}
section.company li em {
    display: block;
    font-weight: 600;
}
section.company li div {
    padding-left: 0.5em;
}
section.company figure {
    margin-bottom: 1.5em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 40rem;
}
section.outline figure {
    gap: 5rem 7.5rem;
    border-radius: 0.8rem;
    box-sizing: border-box;
    background-color: #FFF;
    padding: 2.5rem;
}
section.outline figure a img {
    width: 20.6rem;
}
section.logomark div {
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 3rem min(5vw, 5rem);
}
section.logomark figure {
    gap: 3rem 5rem;
}
section.logomark figure a img:nth-of-type(1) {
    width: 20.6rem;
}
section.info {
    font-size: 1.4rem;
}
section.info li {
    border-bottom: solid 1px #BBB;
}
section.info li a {
    display: flex;
    gap: 0.5em 1em;
    position: relative;
    padding: 1em 2.5em 1em 0.5em;
}
section.info li a::after {
    content: "→";
    display: inline-block;
    position: absolute;
    top: calc(50% - 0.7em);
    right: 0.6em;
    width: 1em;
    text-align: right;
    font-family: var(--mark-font);
    font-size: 2rem;
    font-weight: 400;
    transition: var(--speed);
}
section.info li a:hover::after {
    right: calc(0.6em - 4px);
}
section.info li time {
    width: 5.5em;
}
section.info li em {
    flex: 1;
}
div.wp-pagenavi {
    display: flex;
    justify-content: center;
    gap: 0.75em;
    margin-top: 4rem;
    font-size: 1.8rem;
}
div.wp-pagenavi a, div.wp-pagenavi span {
    display: inline-block;
    border: solid 1px #666;
    border-radius: 0.3rem;
    padding: 0.2em;
    min-width: 1.4em;
    text-align: center;
}
div.wp-pagenavi a {
    background-color: #FFF;
}
div.wp-pagenavi span {
    background-color: #666;
    color: #FFF;
}
div.wp-pagenavi .previouspostslink, div.wp-pagenavi .nextpostslink {
    font-family: var(--mark-font);
    font-weight: 500;
}
section.info_post {
    font-size: 1.4rem;
}
section.info_post header {
    margin-bottom: 3rem;
}
section.info_post header::after {
    content: "";
    display: block;
    margin-top: 1em;
    background: linear-gradient(90deg, var(--gradient-s-color), var(--gradient-c-color), var(--gradient-e-color));
    width: 100%;
    height: 1px;
}
section.info_post h2 {
    margin-bottom: 0;
    padding-left: 0;
}
section.info_post h2::before, section.info_post h2::after {
    display: none;
}
section.info_post p, section.info_post ul, section.info_post ol, section.info_post blockquote {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.info_post ol {
    padding-left: 1.5em;
}
section.info_post ul li {
    position: relative;
    padding-left: 1em;
}
section.info_post ul li::before {
    content: "・";
    position: absolute;
    top: 0;
    left: 0;
}
section.info_post blockquote {
    border-left: solid 0.5rem #BBB;
    padding-left: 1em;
}
section.info_post .aligncenter {
    display: block;
    margin: 0 auto 1.5em;
}
section.info_post .alignleft {
    display: block;
    margin-right: auto;
    margin-bottom: 1.5em;
}
section.info_post .alignright {
    display: block;
    margin-left: auto;
    margin-bottom: 1.5em;
}
div.pager {
    position: relative;
    margin-top: 3rem;
    border-top: solid 1px #BBB;
    padding-top: 3rem;
    text-align: center;
    font-size: 1.4rem;
}
div.pager a {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
div.pager .prev {
    position: absolute;
    top: 3rem;
    left: 0;
}
div.pager .prev::before {
    content: "";
    display: inline-block;
    margin-right: 0.2em;
    margin-bottom: 0.1em;
    border-top: solid 1px;
    border-left: solid 1px;
    width: 0.5em;
    height: 0.5em;
    transform: rotate(-45deg);
}
div.pager .next {
    position: absolute;
    top: 3rem;
    right: 0;
}
div.pager .next::after {
    content: "";
    display: inline-block;
    margin-left: 0.2em;
    margin-bottom: 0.1em;
    border-top: solid 1px;
    border-right: solid 1px;
    width: 0.5em;
    height: 0.5em;
    transform: rotate(45deg);
}
section.recruit {
    font-size: 1.4rem;
}
section.recruit p {
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.rectuit-01 section:nth-of-type(1) {
    margin-bottom: 3rem;
}
section.rectuit-01 section:nth-of-type(1) h3 {
    margin-bottom: 0.8em;
    font-family: var(--serif-jp-font);
    font-size: 3.6rem;
    font-weight: 600;
}
section.rectuit-01 section:nth-of-type(1) p span {
    display: block;
    margin-bottom: 0.5em;
}
section.rectuit-01 section:nth-of-type(1) p img {
    width: 6.5em;
}
section.rectuit-01 section:nth-of-type(2) > :last-child {
    margin-bottom: 0;
}
section.jobs ul {
    margin-left: auto;
    margin-right: auto;
    max-width: 50rem;
}
section.jobs .button-A {
    flex-direction: column;
    justify-content: center;
    align-items: start;
}
section.jobs .button-A span {
    font-size: 80%;
    font-weight: 400;
}
section.rectuit-03 li picture {
    margin: 0 auto 1.5em;
    max-width: 50rem;
}
section.rectuit-03 li span {
    display: block;
    margin-bottom: 1.5em;
    line-height: 1.75;
}
section.guideline {
    font-size: 1.4rem;
}
section.guideline strong, section.guideline b {
    font-weight: 600;
}
section.condition {
    font-size: 1.4rem;
}
section.condition strong, section.condition b {
    font-weight: 600;
}
section.condition > p {
    margin-bottom: 1.75em;
    line-height: 1.75;
    font-size: 1.8rem;
}
section.condition section.plain li {
    margin-bottom: 5rem;
}
section.condition section.plain li em {
    display: block;
    margin-bottom: 0.8em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.condition section.plain li div {
    line-height: 1.75;
}
section.condition section.plain li:last-child {
    margin-bottom: 0;
}
section.condition section.box {
    margin: 1.75em 0;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 2rem min(5vw, 4rem);
}
section.condition section.box h3 {
    margin-bottom: 0.8em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.condition section.box li {
    margin-bottom: 0.35em;
    position: relative;
    padding-left: 1em;
}
section.condition section.box li::before {
    content: "・";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
section.condition section.tabs {
    margin: 1.75em 0;
}
section.condition section.tabs .buttons {
    display: flex;
    gap: 0 min(3vw, 2rem);
}
section.condition section.tabs .buttons a {
    display: block;
    flex: 1;
    border-radius: 0.8rem 0.8rem 0 0;
    background-color: #CCC;
    padding: 0.4em 0;
    text-align: center;
    font-size: 1.8rem;
    font-weight: 600;
}
section.condition section.tabs .buttons a.current {
    background-color: #FFF;
}
section.condition section.tabs section {
    border-radius: 0 0 0.8rem 0.8rem;
    background-color: #FFF;
    padding: 2rem min(5vw, 4rem) 1rem;
    display: none;
}
section.condition section.tabs section.is-selected {
    display: block;
}
section.condition section.tabs section p {
    margin-bottom: 1.75em;
    line-height: 1.75;
}
section.condition section.tabs section dl {
    margin-bottom: 1.75em;
}
section.condition section.tabs section dt {
    margin-bottom: 0.5em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.condition section.tabs section dd ul {
    margin-bottom: 1.75em;
}
section.condition section.tabs section dd ul li:last-child {
    margin-bottom: 0;
}
section.condition section.tabs section dd ul.points li {
    position: relative;
    margin-bottom: 1.5rem;
    border: solid 1px;
    border-radius: 0.8rem;
    padding: 1em 1em 2.5em;
}
section.condition section.tabs section dd ul.points li :last-child {
    margin-bottom: 0;
}
section.condition section.tabs section dd ul.points li em {
    display: block;
    text-align: center;
    /*font-size: 1.8rem;*/
    font-weight: 600;
}
section.condition section.tabs section dd ul.points li span {
    display: block;
    overflow: hidden;
    max-height: 0;
    line-height: 1.75;
    transition: var(--speed);
}
section.condition section.tabs section dd ul.points li i {
    display: block;
    position: absolute;
    bottom: 0.2em;
    left: calc(50% - 1em);
    width: 2em;
    height: 2em;
    cursor: pointer;
}
section.condition section.tabs section dd ul.points li i::before {
    content: "";
    display: block;
    position: absolute;
    top: 0.35em;
    left: calc(50% - 0.5em);
    border-right: solid 2px;
    border-bottom: solid 2px;
    width: 0.7em;
    height: 0.7em;
    transform: rotate(45deg);
    transition: var(--speed);
}
section.condition section.tabs section dd ul.points li.is-opened span {
    padding-top: 1em;
    max-height: 10em;
}
section.condition section.tabs section dd ul.points li.is-opened i::before {
    top: 0.85em;
    transform: rotate(-135deg);
}
section.condition section.tabs section dd ul.simple li {
    position: relative;
    margin-bottom: 0.35em;
    padding-left: 1em;
}
section.condition section.tabs section dd ul.simple li::before {
    content: "・";
    position: absolute;
    top: 0;
    left: 0;
}
section.guideline {
    font-size: 1.4rem;
}
section.guideline strong, section.guideline b {
    font-weight: 600;
}
section.guideline dl {
    margin-bottom: 1.75em;
    border-radius: 0.8rem;
    background-color: #FFF;
    padding: 2rem min(5vw, 4rem);
}
section.guideline dl dt {
    margin-bottom: 0.5em;
    font-size: 1.8rem;
    font-weight: 600;
}
section.guideline dl dd {
    display: flex;
    flex-direction: column;
    gap: 1rem 2rem;
}
section.guideline dl dd p {
    line-height: 1.75;
}
section.guideline dl dd picture {
    width: 25rem;
}
section.guideline ul {
    line-height: 1.75;
}
section.guideline li {
    border-bottom: solid 1px #BBB;
    padding: 0.8em 0;
}
section.guideline li em {
    display: block;
    font-weight: 600;
}
section.guideline li div {
    padding-left: 0.5em;
}
section.guideline li div p + p {
    margin-top: 1.5em;
}
section.guideline:not(:has(h2)) {
    padding-top: 0;
}
section.training-01 ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 50rem;
}
section.training-01 li {
    width: 100%;
}
section.training-01 .button-B {
    width: 100%;
}
section.contact h2 b {
    display: inline-block;
    margin-left: 0.5em;
    font-size: 1.6rem;
    font-weight: 400;
    color: #F00;
}
section.contact dl {
    border-bottom: solid 1px #BBB;
    padding: 1em 0;
    font-size: 1.6rem;
}
section.contact dt {
    margin-bottom: 0.5em;
}
section.contact dt b {
    color: #F00;
}
section.contact dd i {
    display: block;
    margin-top: 0.3em;
    font-size: 1.4rem;
    color: #999;
}
section.contact dd span {
    display: block;
    margin-top: 0.3em;
    font-size: 1.4rem;
    color: #F00;
}
section.contact p {
    margin-top: 4em;
    margin-left: auto;
    margin-right: auto;
    min-width: min(100%, 47rem);
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    text-align: center;
    font-size: 1.6rem;
}
section.contact a {
    display: block;
    margin: 1em auto 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
section.contact .button-B {
    justify-content: center;
    cursor: pointer;
}
section.contact .button-B::after {
    content: "→";
    top: calc(50% - 0.8em);
    font-family: var(--mark-font);
    background: transparent;
}
section.contact .button-B:hover {
    opacity: 0.6;
}
section.contact .button-B:hover::after {
    transform: translate(4px, 0);
}
section.contact .wpcf7-response-output {
    font-size: 1.4rem;
}
section.thanks p {
    text-align: center;
    line-height: 1.75;
    font-size: 1.6rem;
}
section.thanks p:nth-of-type(1) {
    margin: 5rem 0;
}
section.thanks p:nth-of-type(2) {
    border-top: solid 1px #BBB;
    padding-top: 5rem;
}
section.thanks p a {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
section.privacy {
    font-size: 1.4rem;
}
section.privacy dl {
    margin-top: 2em;
    line-height: 1.75;
}
section.privacy dt {
    font-weight: 600;
}
section.privacy dd {
    padding-left: 2em;
}
section.privacy b {
    font-weight: 800;
}
@media (min-width: 560px) {
    section.jobs .button-A {
        flex-direction: row;
        justify-content: start;
        align-items: center;
    }
    section.condition section.tabs .buttons a {
        padding: 1em 0;
    }
}
@media (min-width: 800px) {
    nav.nav-section ul {
        flex-direction: row;
        border-top: none;
        border-left: solid 1px #BBB;
        max-width: none;
    }
    nav.nav-section li {
        border-bottom: none;
        border-right: solid 1px #BBB;
        flex: 1;
    }
    nav.nav-section li a {
        padding-left: 1.2em;
        padding-right: 3.2em;
        text-align: center;
        font-size: 2.4rem;
    }
    nav.nav-section li a::after {
        font-size: 2.6rem;
        right: 1.2em;
    }
    section.company {
        font-size: 1.6rem;
    }
    section.company ul {
        display: table;
        width: 100%;
    }
    section.company li {
        display: table-row;
        border-bottom: none;
        padding: 0;
    }
    section.company li em {
        display: table-cell;
        border-bottom: solid 1px;
        padding: 1.6em;
        width: 7.5em;
        white-space: nowrap;
    }
    section.company li div {
        border-bottom: solid 1px #BBB;
        padding: 1.6em;
    }
    section.company figure {
        flex-direction: row;
        max-width: none;
    }
    section.company a {
        text-decoration: underline;
        text-underline-offset: 0.2em;
    }
    section.outline figure img {
        width: calc(33.333% - 5rem);
    }
    section.logomark figure img:nth-of-type(1) {
        width: 24rem;
    }
    section.logomark figure img:nth-of-type(2) {
        width: calc(100% - 29rem);
    }
    section.info {
        font-size: 1.6rem;
    }
    section.info li a {
        padding-left: 1em;
        padding-right: 3.5em;
    }
    section.info li a::after {
        right: 1.1em;
    }
    section.info li a:hover::after {
        right: calc(1.1em - 4px);
    }
    div.wp-pagenavi {
        font-size: 2rem;
    }
    section.info_post {
        font-size: 1.6rem;
    }
    section.info_post .alignleft {
        float: left;
        margin-right: 2em;
        max-width: 64%;
    }
    section.info_post .alignright {
        float: right;
        margin-left: 2em;
        max-width: 64%;
    }
    section.recruit {
        font-size: 1.6rem;
    }
    section.rectuit-03 li {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 3rem;
        align-items: start; /* ← この1行だけ追加 */
    }
    section.rectuit-03 li picture {
        grid-column: 1/2;
        /*grid-row: 1/3;
    margin-bottom: 0;*/
        align-self: end;
    }
    section.rectuit-03 li span {
        grid-column: 2/3;
        grid-row: 1/2;
    }
    section.rectuit-03 li a {
        grid-column: 2/3;
        grid-row: 2/3;
        align-self: end;
    }
    section.condition {
        font-size: 1.6rem;
    }
    section.condition > p {
        font-size: 2rem;
    }
    section.condition section.plain li {
        display: flex;
        gap: 0 8rem;
    }
    section.condition section.plain li em {
        width: 12em;
        font-size: 2rem;
    }
    section.condition section.plain li div {
        flex: 1;
    }
    section.condition section.tabs section dd ul.points li {
        padding-bottom: 1em;
    }
    section.condition section.tabs section dd ul.points li em {
        padding-right: 2.5em;
    }
    section.condition section.tabs section dd ul.points li i {
        bottom: auto;
        left: auto;
        top: 0.8em;
        right: 0.5em;
    }
    section.guideline {
        font-size: 1.6rem;
    }
    section.guideline dl dd {
        flex-direction: row;
    }
    section.guideline dl dd p {
        flex: 1;
    }
    section.guideline ul {
        display: table;
    }
    section.guideline li {
        display: table-row;
        border-bottom: none;
        padding: 0;
    }
    section.guideline li em {
        display: table-cell;
        border-bottom: solid 1px;
        padding: 1.6em;
        width: 7.5em;
        white-space: nowrap;
    }
    section.guideline li div {
        border-bottom: solid 1px #BBB;
        padding: 1.6em;
    }
    section.contact h2 b {
        font-size: 1.8rem;
    }
    section.contact dl {
        display: flex;
        gap: 0 7rem;
        font-size: 1.8rem;
    }
    section.contact dt {
        margin-top: 0.4em;
        width: 9em;
    }
    section.contact dd {
        flex: 1;
    }
    section.contact dd i {
        font-size: 1.6rem;
    }
    section.contact dd span {
        font-size: 1.6rem;
    }
    section.contact p {
        font-size: 1.8rem;
    }
    section.contact .wpcf7-response-output {
        font-size: 1.6rem;
    }
    section.thanks p {
        font-size: 1.8rem;
    }
    section.privacy {
        font-size: 1.6rem;
    }
}
@media (min-width: 1040px) {
    section.rectuit-01 {
        display: flex;
        flex-wrap: wrap;
        gap: 0 8rem;
    }
    section.rectuit-01 h2 {
        width: 100%;
    }
    section.rectuit-01 section:nth-of-type(1) {
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }
    section.rectuit-01 section:nth-of-type(2) {
        flex: 1;
    }
    section.jobs ul {
        display: flex;
        flex-wrap: wrap;
        gap: 0 3rem;
        max-width: none;
    }
    section.jobs li {
        width: calc(50% - 1.5rem);
    }
    section.condition section.box {
        display: flex;
        flex-wrap: wrap;
        gap: 0 3em;
    }
    section.condition section.box h3 {
        width: 100%;
    }
    section.condition section.box ul:nth-of-type(1) {
        width: 20em;
    }
    section.condition section.box ul:nth-of-type(2) {
        flex: 1;
    }
    section.training-01 ul {
        max-width: none;
    }
    section.training-01 li {
        width: calc(50% - 1.5rem);
    }
}
/*---------------------------------------------

Animation CSS

coded by d-spica at 2025-10-18
imported to "style.scss"

---------------------------------------------*/
.loading #page {
    opacity: 0;
}
.loading .page-top header.header, .loading .page-top nav.nav dt {
    opacity: 0;
    transform: translateY(-100%);
}
.loading .page-top header.hero figure {
    opacity: 0;
    transform: scale(0.5);
}
.loading .page-top header.hero dl {
    opacity: 0;
    transform: scale(0.5);
}
.loading .page-top header.hero p {
    opacity: 0;
    transform: translateY(-5rem);
}
#page {
    transition: opacity calc(2 * var(--speed));
}
.page-top header.header, .page-top nav.nav dt {
    transition: var(--speed) 0.5s;
}
.page-top header.hero figure {
    transition: var(--speed) 1s;
}
.page-top header.hero dl {
    transition: var(--speed) 1.5s;
}
.page-top header.hero p {
    transition: var(--speed) 2s;
}
.page-top section.policy-T, .page-top section.company-T, .page-top section.info-T {
    transform: translateX(8rem);
    opacity: 0;
    transition: calc(2 * var(--speed));
}
.page-top section.policy-T.arrived, .page-top section.company-T.arrived, .page-top section.info-T.arrived {
    transform: translateX(0);
    opacity: 1;
}
.page-top section.service-T, .page-top section.recruit-T {
    transform: translateX(-8rem);
    opacity: 0;
    transition: calc(2 * var(--speed));
}
.page-top section.service-T.arrived, .page-top section.recruit-T.arrived {
    transform: translateX(0);
    opacity: 1;
}
@media (min-width: 800px) {
    .loading .page-top nav.nav dd {
        opacity: 0;
        transform: translateY(-100%);
    }
    .page-top nav.nav dd {
        transition: var(--speed) 0.5s;
    }
}
/*---------------------------------------------

Style CSS

coded by d-spica at 2025-09-22

---------------------------------------------*/
.st01 {
    font-size: 240%!important;
}
@media screen and (max-width: 750px) {
    .st01 {
		font-size: 2.4rem!important;}
    }