:root {
    --color-white: #ffffff;
    --color-black: #000000;
    --color-blue-gray: #f1f4f6;
    --color-dark-gray: #cccccc;
    --color-gray: #dddddd;
    --color-light-gray: #f2f2f2;
    --gradient-vertical: linear-gradient(to bottom, #006ea0, #87c896);
    --gradient-horizon: linear-gradient(to right, #006ea0, #87c896);
    --font-primary: "Inter", "Noto Sans JP", sans-serif;
    --font-size-xl: 2.5rem;
    --font-size-lg: 1.8rem;
    --font-size-md: 1.6rem;
    --font-size-base: 1.4rem;
    --font-size-sm: 1.2rem;
    --space-10: 0.5rem;
    --space-20: 1.0rem;
    --space-30: 1.5rem;
    --space-40: 2.0rem;
    --space-50: 2.5rem;
    --space-60: 3.0rem;
    --space-70: 3.5rem;
    --space-80: 4.0rem;
    --space-90: 4.5rem;
    --space-100: 5.0rem;
    --space-120: 6.0rem;
    --space-140: 7.0rem;
    --space-160: 8.0rem;
    --space-180: 9.0rem;
    --space-200: 10.0rem;
    --space-240: 12.0rem;
    --space-280: 14.0rem;
    --space-300: 15.0rem;
    --space-400: 20.0rem;
    --space-inner: 10.0rem;
    --container-width: 83.33%;
    --max-width: 1600px;
    --flex-main-width: 69%;
    --flex-side-width: 20%;
    --radius-full: 100vmax;
    --radius-primary: 10px;
    --radius-large: 40px;
    --primary-duration: .3s;
    --primary-easing: cubic-bezier(0.4, 0.4, 0, 1);
    --hover-primary: var(--primary-duration) var(--primary-easing);
}
@media screen and (max-width: 1200px) {
    :root {
        --space-inner: 6.0rem;
    }
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html {
    font-size: 62.5%;
    -webkit-text-size-adjust: 100%;
}
body {
    background-color: var(--color-white);
    color: var(--color-black);
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}
img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
input, button, textarea, select {
    font: inherit;
    color: inherit;
    background: transparent;
    border: none;
}
button {
    cursor: pointer;
}
a {
    color: inherit;
    text-decoration: none;
}
ul, ol {
    list-style: none;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}
iframe {
    vertical-align: bottom;
}

.sp-only {
    display: none;
}
.section {
    position: relative;
    overflow: hidden;
}
.section:last-of-type {
    padding-bottom: 0;
}
.bg-plain {
    padding: var(--space-300) 0;
}
.bg-plain + .bg-plain {
    padding-top: 0;
}
.bg-colored {
    background-color: var(--color-blue-gray);
    padding: var(--space-240) 0;
}
.container {
    max-width: var(--max-width);
    margin-inline: auto;
    padding-inline: var(--space-inner);
}
.section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    border-top: 1px solid var(--color-black);
    margin-bottom: var(--space-160);
    padding-top: var(--space-60);
}
.section-title {
    font-size: 5.5rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
}
.section-subtitle {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    column-gap: var(--space-20);
    font-weight: 600;
}
.section-subtitle::before {
    content: "";
    display: inline-block;
    width: 0.6rem;
    aspect-ratio: 1 / 1;
    background-color: var(--color-black);
    border-radius: 50%;
}
.flex-between {
    display: flex;
    justify-content: space-between;
}
.section .flex-between + .flex-between {
    margin-top: var(--space-240);
}
.section .flex-between + .flex-between:nth-of-type(even) {
    flex-direction: row-reverse;
}
.btn > a {
    position: relative;
    display: block;
    background-color: var(--color-black);
    border: 1px solid var(--color-black);
    border-radius: var(--radius-full);
    padding: var(--space-30) var(--space-70);
    color: var(--color-white);
    font-weight: 600;
    transition: color var(--hover-primary), background-color var(--hover-primary);
}
.btn > a::after {
    content: "\e049";
    display: grid;
    place-items: center;
    position: absolute;
    top: 50%;
    right: var(--space-50);
    translate: 0 -50%;
    color: transparent;
    font-family: 'lucide';
    font-size: var(--font-size-md);
    font-weight: normal;
    text-shadow: 0 0 0 var(--color-white), -2.0em 0 0 var(--color-white);
    overflow: hidden;
    transition: text-shadow var(--hover-primary);
}
.btn > a[target="_blank"]::after {
    content: "\e5a4";
}
.btn.btn-border > a {
    background-color: transparent;
    color: var(--color-black);
}
.btn.btn-border > a::after {
    width: 3.0rem;
    aspect-ratio: 1 / 1;
    background-color: var(--color-blue-gray);
    border-radius: 50%;
    font-size: var(--font-size-sm);
    text-shadow: 0 0 0 var(--color-black), -2.0em 0 0 var(--color-black);
    transition: color var(--hover-primary), background-color var(--hover-primary), text-shadow var(--hover-primary);
}
@media (hover: hover) {
    .btn > a:hover {
        color: var(--color-black);
        background-color: var(--color-white);
    }
    .btn > a:hover::after {
        text-shadow: 2.0em 0 0 var(--color-black), 0 0 0 var(--color-black);
    }
    .btn.btn-border > a:hover {
        color: var(--color-white);
        background-color: var(--color-black);
    }
    .btn.btn-border > a:hover::after {
        color: var(--color-white);
        background-color: #222;
    }
}
.notes {
    margin-top: var(--space-40);
    font-size: var(--font-size-sm);
    text-align: right;
}

#header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: var(--space-80);
    width: 100%;
    max-width: var(--max-width);
    padding: var(--space-80) var(--space-inner);
    z-index: 9999;
}
.logo {
    line-height: 0;
}
.logo a {
    display: inline-block;
    width: 22.5rem;
    max-width: 100%;
    height: auto;
    aspect-ratio: 450 / 60;
}
.logo span {
    display: block;
    width: 100%;
    height: 100%;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20188.95%2025.31%22%3E%3Cg%3E%3Cg%3E%3Cpath%20d%3D%22M67.82%2C21.37l7.2-16.97c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07l-7.82-18.43c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-7.82%2C18.43h4.07Z%22/%3E%3Cpath%20d%3D%22M4.07%2C21.37L11.27%2C4.4c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l4.61%2C10.87c.35.82%2C1.14%2C1.35%2C2.03%2C1.35h0c.89%2C0%2C1.69-.53%2C2.03-1.35l4.61-10.87c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07L32%2C2.94c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-1.84%2C4.33h0l-1.36%2C3.21-1.36-3.21h0l-1.84-4.33c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94L0%2C21.37h4.07Z%22/%3E%3Cpath%20d%3D%22M51.79%2C21.47c-5.92%2C0-10.73-4.82-10.73-10.73S45.87%2C0%2C51.79%2C0s10.73%2C4.82%2C10.73%2C10.73-4.82%2C10.73-10.73%2C10.73ZM51.79%2C3.74c-3.86%2C0-6.99%2C3.14-6.99%2C6.99s3.14%2C6.99%2C6.99%2C6.99%2C6.99-3.14%2C6.99-6.99-3.14-6.99-6.99-6.99Z%22/%3E%3Cpath%20d%3D%22M105.51%2C15.34c-1.28%2C1.46-3.17%2C2.39-5.26%2C2.39-3.86%2C0-6.99-3.14-6.99-6.99s3.14-6.99%2C6.99-6.99c2.1%2C0%2C3.98.93%2C5.26%2C2.39l2.6-2.7C106.16%2C1.32%2C103.36%2C0%2C100.25%2C0%2C94.33%2C0%2C89.52%2C4.82%2C89.52%2C10.73s4.82%2C10.73%2C10.73%2C10.73c3.1%2C0%2C5.9-1.32%2C7.87-3.44l-2.6-2.7Z%22/%3E%3Cpolygon%20points%3D%22128.93%20.59%20111.79%20.59%20111.79%204.33%20118.49%204.33%20118.49%2021.37%20122.23%2021.37%20122.23%204.33%20128.93%204.33%20128.93%20.59%22/%3E%3Cpath%20d%3D%22M179.92%2C17.18c-.82.79-1.92%2C1.27-3.14%2C1.27-2.5%2C0-4.53-2.03-4.53-4.53s2.03-4.53%2C4.53-4.53c1.22%2C0%2C2.33.49%2C3.14%2C1.27l2.33-2.41c-1.42-1.37-3.35-2.21-5.47-2.21-4.34%2C0-7.88%2C3.53-7.88%2C7.88s3.53%2C7.88%2C7.88%2C7.88c2.12%2C0%2C4.05-.84%2C5.47-2.21l-2.33-2.41Z%22/%3E%3Crect%20x%3D%22141.63%22%20y%3D%22.59%22%20width%3D%223.74%22%20height%3D%2220.78%22/%3E%3Cpolygon%20points%3D%22133.65%2025.31%20130.82%2025.31%20133.31%2017.63%20136.73%2017.63%20133.65%2025.31%22/%3E%3Cpath%20d%3D%22M157.9%2C6.05c-1.41%2C0-2.73.42-3.83%2C1.14h-3.17v14.18h3.35v-8.33c0-2.01%2C1.63-3.64%2C3.64-3.64s3.64%2C1.63%2C3.64%2C3.64v8.33h3.35v-8.33c0-3.86-3.14-6.99-6.99-6.99Z%22/%3E%3Crect%20x%3D%22185.2%22%20y%3D%2217.63%22%20width%3D%223.74%22%20height%3D%223.74%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20188.95%2025.31%22%3E%3Cg%3E%3Cg%3E%3Cpath%20d%3D%22M67.82%2C21.37l7.2-16.97c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07l-7.82-18.43c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-7.82%2C18.43h4.07Z%22/%3E%3Cpath%20d%3D%22M4.07%2C21.37L11.27%2C4.4c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l4.61%2C10.87c.35.82%2C1.14%2C1.35%2C2.03%2C1.35h0c.89%2C0%2C1.69-.53%2C2.03-1.35l4.61-10.87c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07L32%2C2.94c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-1.84%2C4.33h0l-1.36%2C3.21-1.36-3.21h0l-1.84-4.33c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94L0%2C21.37h4.07Z%22/%3E%3Cpath%20d%3D%22M51.79%2C21.47c-5.92%2C0-10.73-4.82-10.73-10.73S45.87%2C0%2C51.79%2C0s10.73%2C4.82%2C10.73%2C10.73-4.82%2C10.73-10.73%2C10.73ZM51.79%2C3.74c-3.86%2C0-6.99%2C3.14-6.99%2C6.99s3.14%2C6.99%2C6.99%2C6.99%2C6.99-3.14%2C6.99-6.99-3.14-6.99-6.99-6.99Z%22/%3E%3Cpath%20d%3D%22M105.51%2C15.34c-1.28%2C1.46-3.17%2C2.39-5.26%2C2.39-3.86%2C0-6.99-3.14-6.99-6.99s3.14-6.99%2C6.99-6.99c2.1%2C0%2C3.98.93%2C5.26%2C2.39l2.6-2.7C106.16%2C1.32%2C103.36%2C0%2C100.25%2C0%2C94.33%2C0%2C89.52%2C4.82%2C89.52%2C10.73s4.82%2C10.73%2C10.73%2C10.73c3.1%2C0%2C5.9-1.32%2C7.87-3.44l-2.6-2.7Z%22/%3E%3Cpolygon%20points%3D%22128.93%20.59%20111.79%20.59%20111.79%204.33%20118.49%204.33%20118.49%2021.37%20122.23%2021.37%20122.23%204.33%20128.93%204.33%20128.93%20.59%22/%3E%3Cpath%20d%3D%22M179.92%2C17.18c-.82.79-1.92%2C1.27-3.14%2C1.27-2.5%2C0-4.53-2.03-4.53-4.53s2.03-4.53%2C4.53-4.53c1.22%2C0%2C2.33.49%2C3.14%2C1.27l2.33-2.41c-1.42-1.37-3.35-2.21-5.47-2.21-4.34%2C0-7.88%2C3.53-7.88%2C7.88s3.53%2C7.88%2C7.88%2C7.88c2.12%2C0%2C4.05-.84%2C5.47-2.21l-2.33-2.41Z%22/%3E%3Crect%20x%3D%22141.63%22%20y%3D%22.59%22%20width%3D%223.74%22%20height%3D%2220.78%22/%3E%3Cpolygon%20points%3D%22133.65%2025.31%20130.82%2025.31%20133.31%2017.63%20136.73%2017.63%20133.65%2025.31%22/%3E%3Cpath%20d%3D%22M157.9%2C6.05c-1.41%2C0-2.73.42-3.83%2C1.14h-3.17v14.18h3.35v-8.33c0-2.01%2C1.63-3.64%2C3.64-3.64s3.64%2C1.63%2C3.64%2C3.64v8.33h3.35v-8.33c0-3.86-3.14-6.99-6.99-6.99Z%22/%3E%3Crect%20x%3D%22185.2%22%20y%3D%2217.63%22%20width%3D%223.74%22%20height%3D%223.74%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    background-color: var(--color-black);
}
#header:not(.scrolled) .logo span {
    background-color: var(--color-white);
}
.gnavi-toggle {
    display: none;
}
.gnavi > ul {
    display: flex;
    column-gap: var(--space-60);
    font-weight: 600;
    letter-spacing: 0;
}
.gnavi > ul > li {
    overflow: hidden;
}
.gnavi a {
    color: transparent;
    text-shadow: 0 1.5em 0 var(--color-black), 0 0 0 var(--color-black);
}
#header:not(.scrolled) .gnavi a {
    text-shadow: 0 1.5em 0 var(--color-white), 0 0 0 var(--color-white);
}
@media (hover: hover) {
    .gnavi a:hover {
        text-shadow: 0 0 0 var(--color-black), 0 -1.5em 0 var(--color-black);
    }
    #header:not(.scrolled) .gnavi a:hover {
        text-shadow: 0 0 0 var(--color-white), 0 -1.5em 0 var(--color-white);
    }
}
.gnavi > ul.sp-only, .gnavi .copyright {
    display: none;
}

#hero {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100dvh;
    min-height: 600px;
    padding-bottom: 90px;
    background: var(--gradient-vertical);
}
.visual {
    display: flex;
    animation: infiniteScroll 10s linear infinite;
}
.visual-wrap {
    position: relative;
    margin-left: -2px;
}
.visual-base {
    width: 65.79vw;
    height: 26.33vw;
    background: url("../img/top/kv_ribbon_01.svg") repeat-x top left / calc(100% + 1px) auto;
    will-change: transform;
}
.visual-letter {
    position: absolute;
    z-index: 1;
}
.visual-letter.is-spinning img {
    animation: spinHorizontal 0.8s ease-in-out;
}
.visual-letter.is-popping img {
    animation: popEffect 0.6s ease-in-out;
}
.visual-letter-top {
    top: 0;
}
.visual-letter-bottom {
    bottom: 0;
}
.visual-letter-top.visual-o {
    left: 47.88vw;
}
.visual-letter-top.visual-c {
    left: 6.83vw;
}
.visual-letter-top.visual-t {
    top: 0.25vw;
    left: 18.21vw;
}
.visual-letter-bottom.visual-o {
    left: 60.79vw;
}
.visual-letter-bottom.visual-c {
    left: 37.54vw;
}
.visual-letter-bottom.visual-t {
    left: 26.92vw;
}
.visual-o {
    width: 11vw;
}
.visual-c {
    width: 9.54vw;
}
.visual-t {
    width: 8.79vw;
}
.visual img {
    width: 100%;
    max-width: none;
    will-change: transform;
}
@media (hover: hover) {
    .visual-letter:hover img {
        animation: shakingEffect .2s infinite;
    }
}
@keyframes infiniteScroll {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(calc(-65.79vw + 2px), 0, 0);
    }
}
@keyframes spinHorizontal {
    0% {
        transform: rotateY(0deg);
    }
    100% {
        transform: rotateY(360deg);
    }
}
@keyframes popEffect {
    0% {
        transform: scale(1);
    }
    30% {
        transform: scale(0.7);
    }
    70% {
        transform: scale(1.25);
    }
    100% {
        transform: scale(1);
    }
}
@keyframes shakingEffect {
    0% {
        transform: translate(0px, 0px) rotateZ(0deg)
    }
    25% {
        transform: translate(3px, 3px) rotateZ(1deg)
    }
    50% {
        transform: translate(0px, 3px) rotateZ(0deg)
    }
    75% {
        transform: translate(3px, 0px) rotateZ(-1deg)
    }
    100% {
        transform: translate(0px, 0px) rotateZ(0deg)
    }
}
#hero .lead {
    position: absolute;
    bottom: min(5.83vw, 70px);
    left: 50%;
    translate: -50% 0;
    color: var(--color-white);
    font-size: min(3.75vw, 50px);
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.lead-line, .cover-lead-line {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
}

#statement {
    padding: var(--space-240) 0;
}
#statement .container {
    position: relative;
    z-index: 2;
}
.statement-text {
    font-size: var(--font-size-xl);
    font-weight: 600;
    line-height: 1.8;
}
#bg-statement {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    opacity: .1;
    z-index: 1;
}

.cover {
    position: relative;
    display: grid;
    place-items: center;
    background: var(--gradient-vertical);
    height: 44rem;
    color: var(--color-white);
    text-align: center;
    overflow: hidden;
}
.cover .lead {
    font-size: 4.5rem;
    font-weight: 600;
    line-height: 1.4;
}
#about .cover::before {
    content: "";
    position: absolute;
    top: -8px;
    width: 101vw;
    height: auto;
    aspect-ratio: 2928 / 391;
    background: url("../img/common/logo_ribbon.svg") no-repeat top center / cover;
    opacity: .15;
}
#about .container {
    padding-top: var(--space-180);
    padding-bottom: var(--space-240);
}
#about .section-title {
    margin-bottom: var(--space-80);
    font-size: var(--font-size-lg);
}
.about-item {
    align-items: center;
    column-gap: var(--space-80);
}
.about-item .content .lead {
    font-size: 3.2rem;
    font-weight: 700;
}
.about-item .content .text {
    margin-top: var(--space-90);
    font-size: var(--font-size-lg);
    line-height: 2;
}
.about-item:first-of-type figure {
    align-self: flex-end;
}
.about-item:first-of-type figure img {
    width: 51.42vw;
    translate: calc(var(--space-180) + 2.5vw) 0;
}
.about-item figure {
    text-align: center;
}
.about-item figure .lead {
    margin-top: var(--space-60);
    font-size: var(--font-size-lg);
    font-weight: 700;
    text-align: right;
}
.about-values {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-items: center;
    width: 40.96vw;
    max-width: 730px;
    height: auto;
    aspect-ratio: 983 / 911;
    padding: 0 1.5rem;
}
.about-values .item {
    position: absolute;
    display: grid;
    place-content: center;
    width: 22.4vw;
    max-width: 398px;
    aspect-ratio: 1 / 1;
    border: 1px dashed var(--color-black);
    border-radius: 50%;
}
.about-values .item:first-child {
    top: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
}
.about-values .item:nth-child(2) {
    bottom: 0;
    left: 0;
}
.about-values .item:last-child {
    bottom: 0;
    right: 0;
}
.about-values .item .title {
    font-size: var(--font-size-xl);
    font-weight: 600;
    letter-spacing: 0;
}
.about-values .item .text {
    margin-top: var(--space-20);
    font-size: 1.3rem;
}
figcaption {
    margin-top: var(--space-60);
}
figcaption::before {
    content: "(";
    margin-right: var(--space-10);
}
figcaption::after {
    content: ")";
    margin-left: var(--space-10);
}
.about-item .btn {
    width: 100%;
    margin-top: var(--space-120);
}

#service {
    overflow: clip;
}
.service-item {
    position: relative;
    margin-left: calc(var(--space-inner) * -1);
    padding: var(--space-140);
    padding-left: var(--space-inner);
    background-color: var(--color-white);
    border-radius: 0 var(--radius-large) var(--radius-large) 0;
}
.service-item + .service-item {
    margin-top: var(--space-120);
}
.service-item:nth-child(even) {
    margin-right: calc(var(--space-inner) * -1);
    margin-left: 0;
    padding-right: var(--space-inner);
    padding-left: var(--space-140);
    border-radius: var(--radius-large) 0 0 var(--radius-large);
}
@media screen and (min-width: 1600px) {
    .service-item {
        margin-left: 0;
        border-radius: var(--radius-large);
    }
    .service-item:nth-child(even) {
        margin-right: 0;
        border-radius: var(--radius-large);
    }
}
.service-item-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: var(--space-180);
    position: relative;
}
.service-item-wrap + .service-item-wrap {
    margin-top: var(--space-100);
    padding-top: var(--space-100);
}
.service-item-wrap + .service-item-wrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-image: repeating-linear-gradient(to right, transparent, transparent 4px, var(--color-white) 4px, var(--color-white) 8px), linear-gradient(to right, #006ea0, #87c896);
    opacity: .5;
}
.service-item-wrap:nth-child(odd) {
    flex-direction: row-reverse;
}
.service-item-main {
    width: 100%;
}
.service-item-label {
    position: absolute;
    top: var(--space-80);
    bottom: var(--space-80);
    right: -5rem;
    width: 5rem;
}
.service-item:nth-child(even) .service-item-label {
    right: auto;
    left: -5rem;
}
.service-item-label span {
    display: grid;
    place-items: center;
    position: sticky;
    top: var(--space-180);
    width: 5rem;
    padding: var(--space-60) 0;
    background: var(--gradient-vertical);
    border-radius: 0 var(--radius-primary) var(--radius-primary) 0;
    color: var(--color-white);
    font-size: 2.0rem;
    font-weight: 700;
    writing-mode: vertical-rl;
}
.service-item:nth-child(even) .service-item-label span {
    border-radius: var(--radius-primary) 0 0 var(--radius-primary);
}
.service-item-title {
    font-size: var(--font-size-xl);
    font-weight: 700;
}
.service-item-text {
    margin-top: var(--space-60);
    line-height: 1.7;
}
.service-item .btn {
    width: 44.2rem;
}
.service-item-main > .btn {
    max-width: 100%;
    margin-top: var(--space-100);
}
.service-item-wrap > .btn {
    max-width: calc(100% - 40.1% - var(--space-180));
    margin-left: auto;
}
.service-item-img {
    flex-shrink: 0;
    position: relative;
    width: 40.1%;
    text-align: center;
}
.img-bg-circle::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    width: 80%;
    aspect-ratio: 1 / 1;
    background-color: var(--color-blue-gray);
    border-radius: 50%;
    z-index: 1;
}
.service-item-img img {
    position: relative;
    margin-inline: auto;
    z-index: 2;
}
.service-item-list {
    display: flex;
    width: 100%;
    margin-top: var(--space-120);
    overflow: hidden;
}
.service-item-list-wrap {
    display: flex;
    flex-shrink: 0;
    column-gap: var(--space-100);
    padding-right: var(--space-100);
    animation: serviceInfiniteScroll 25s linear infinite;
}
.service-item-list-wrap figure {
    flex-shrink: 0;
}
.service-item-list-wrap figure img {
    width: auto;
    height: 7.2rem;
    will-change: transform;
}
@keyframes serviceInfiniteScroll {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-100%, 0, 0);
    }
}

.news-list li > * {
    display: flex;
    align-items: center;
    position: relative;
    border-top: 1px solid var(--color-light-gray);
    padding: var(--space-60) var(--space-140) var(--space-60) 0;
}
.news-list li:last-child > * {
    border-bottom: 1px solid var(--color-light-gray);
}
.news-list li > a::after {
    content: "\e049";
    display: grid;
    place-items: center;
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%;
    width: 2.6rem;
    aspect-ratio: 1 / 1;
    background-color: var(--color-blue-gray);
    border-radius: 50%;
    color: transparent;
    font-family: 'lucide';
    font-size: var(--font-size-sm);
    font-weight: normal;
    text-shadow: 0 0 0 var(--color-black), -2.0em 0 0 var(--color-black);
    overflow: hidden;
    transition: text-shadow var(--hover-primary);
}
.news-date {
    width: 11rem;
    letter-spacing: 0;
}
.news-category {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 12.5rem;
    padding: 0.4rem var(--space-40);
    background-color: var(--color-blue-gray);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    text-align: center;
    white-space: nowrap;
}
.news-title {
    margin-left: var(--space-80);
    text-align: justify;
}
.news-list .btn {
    width: 31%;
    margin-top: var(--space-100);
    margin-left: auto;
}
@media (hover: hover) {
    .news-list li > a:hover::after {
        text-shadow: 2.0em 0 0 var(--color-black), 0 0 0 var(--color-black);
    }
}

.colored-box {
    display: flex;
    align-items: flex-start;
    column-gap: var(--space-180);
    padding: var(--space-120);
    background: var(--gradient-vertical);
    border-radius: var(--radius-primary);
    color: var(--color-white);
}
.colored-box figure {
    flex-shrink: 0;
    width: 30%;
}
.colored-box figure img {
    width: 100%;
    border-radius: var(--radius-primary);
}
.colored-box figcaption {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    row-gap: var(--space-10);
    margin: var(--space-40) 0 0 auto;
}
.colored-box figcaption img {
    width: 15.25rem;
}
.colored-box figcaption::before,
.colored-box figcaption::after {
    display: none;
}
.colored-box .section-head {
    border-top-color: var(--color-white);
    margin-bottom: var(--space-80);
    padding-top: var(--space-40);
}
.colored-box .section-title {
    font-size: 4.5rem;
}
.colored-box .section-subtitle::before {
    background-color: var(--color-white);
}
.colored-box .text {
    text-align: justify;
}

#mvv {
    overflow: clip;
}
.mvv-content {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}
.mvv-content + .mvv-content {
    margin-top: var(--space-40);
}
.mvv-navi {
    position: sticky;
    top: var(--space-240);
    width: var(--flex-side-width);
}
.mvv-navi li {
    position: relative;
}
.mvv-navi li + li {
    margin-top: var(--space-20);
}
.mvv-navi a {
    display: block;
    width: 100%;
    padding: var(--space-10) var(--space-40);
    background-color: transparent;
    border-radius: var(--radius-full);
    font-size: var(--font-size-md);
    font-weight: 600;
    letter-spacing: 0;
    transition: background-color var(--hover-primary);
}
.mvv-navi a::after {
    content: "\e06d";
    display: grid;
    place-items: center;
    position: absolute;
    top: 50%;
    right: var(--space-30);
    translate: 0 -50%;
    width: 1.6rem;
    aspect-ratio: 1 / 1;
    background-color: var(--color-gray);
    border-radius: 50%;
    color: var(--color-white);
    font-family: 'lucide';
    font-size: 1.0rem;
    font-weight: normal;
    transition: background-color var(--hover-primary);
}
.mvv-navi .current a {
    background-color: var(--color-white);
}
.mvv-navi .current a::after {
    background-color: var(--color-black);
}
.mvv-main {
    width: var(--flex-main-width);
}
@media (hover: hover) {
    .mvv-navi a:hover {
        background-color: var(--color-white);
    }
}
.mvv-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: var(--space-80);
    width: 100%;
    padding: var(--space-80);
    background-color: var(--color-white);
    border-radius: var(--radius-primary);
    overflow: hidden;
}
.mvv-item + .mvv-item {
    margin-top: var(--space-40);
}
.mvv-item-title {
    margin-bottom: var(--space-10);
    color: var(--color-dark-gray);
    font-size: var(--font-size-md);
    font-weight: 700;
    letter-spacing: 0;
}
.mvv-item-lead {
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.4;
}
.mvv-item-text {
    margin-top: var(--space-100);
    line-height: 1.7;
}
.mvv-item-multiple + .mvv-item-multiple {
    margin-top: var(--space-30);
}
.mvv-item-multiple .mvv-item-text {
    margin-top: 0;
}
.mvv-item-img {
    flex-shrink: 0;
    align-self: flex-end;
    display: grid;
    place-items: center;
    width: 24.64%;
    aspect-ratio: 1 / 1;
    background-color: var(--color-blue-gray);
    border-radius: var(--radius-primary);
    overflow: hidden;
}
.mvv-item-img-wrap {
    display: block;
    width: 100%;
    height: 100%;
}
.mvv-item-img figure {
    display: flex;
    align-items: center;
    width: max-content;
    height: 100%;
    gap: 1.5rem;
    animation: mvvInfiniteScroll 1s linear infinite;
}
.mvv-item-img i {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5.6vw;
    height: 100%;
    color: transparent;
    font-family: 'lucide';
    font-size: 5.6vw;
    font-weight: normal;
    line-height: 1;
    font-style: normal;
    background: var(--gradient-vertical);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
@keyframes mvvInfiniteScroll {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(calc(-5.6vw - 1.5rem), 0, 0);
    }
}

.company-info {
    width: var(--flex-main-width);
    margin-left: auto;
}
.company-info .cover {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 23 / 7;
    border-radius: var(--radius-primary);
    margin-bottom: var(--space-100);
}
.company-info .cover span {
    position: absolute;
    bottom: var(--space-60);
    right: var(--space-80);
    display: block;
    width: 50%;
    height: auto;
    aspect-ratio: 450 / 60;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20188.95%2025.31%22%3E%3Cg%3E%3Cg%3E%3Cpath%20d%3D%22M67.82%2C21.37l7.2-16.97c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07l-7.82-18.43c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-7.82%2C18.43h4.07Z%22/%3E%3Cpath%20d%3D%22M4.07%2C21.37L11.27%2C4.4c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l4.61%2C10.87c.35.82%2C1.14%2C1.35%2C2.03%2C1.35h0c.89%2C0%2C1.69-.53%2C2.03-1.35l4.61-10.87c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07L32%2C2.94c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-1.84%2C4.33h0l-1.36%2C3.21-1.36-3.21h0l-1.84-4.33c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94L0%2C21.37h4.07Z%22/%3E%3Cpath%20d%3D%22M51.79%2C21.47c-5.92%2C0-10.73-4.82-10.73-10.73S45.87%2C0%2C51.79%2C0s10.73%2C4.82%2C10.73%2C10.73-4.82%2C10.73-10.73%2C10.73ZM51.79%2C3.74c-3.86%2C0-6.99%2C3.14-6.99%2C6.99s3.14%2C6.99%2C6.99%2C6.99%2C6.99-3.14%2C6.99-6.99-3.14-6.99-6.99-6.99Z%22/%3E%3Cpath%20d%3D%22M105.51%2C15.34c-1.28%2C1.46-3.17%2C2.39-5.26%2C2.39-3.86%2C0-6.99-3.14-6.99-6.99s3.14-6.99%2C6.99-6.99c2.1%2C0%2C3.98.93%2C5.26%2C2.39l2.6-2.7C106.16%2C1.32%2C103.36%2C0%2C100.25%2C0%2C94.33%2C0%2C89.52%2C4.82%2C89.52%2C10.73s4.82%2C10.73%2C10.73%2C10.73c3.1%2C0%2C5.9-1.32%2C7.87-3.44l-2.6-2.7Z%22/%3E%3Cpolygon%20points%3D%22128.93%20.59%20111.79%20.59%20111.79%204.33%20118.49%204.33%20118.49%2021.37%20122.23%2021.37%20122.23%204.33%20128.93%204.33%20128.93%20.59%22/%3E%3Cpath%20d%3D%22M179.92%2C17.18c-.82.79-1.92%2C1.27-3.14%2C1.27-2.5%2C0-4.53-2.03-4.53-4.53s2.03-4.53%2C4.53-4.53c1.22%2C0%2C2.33.49%2C3.14%2C1.27l2.33-2.41c-1.42-1.37-3.35-2.21-5.47-2.21-4.34%2C0-7.88%2C3.53-7.88%2C7.88s3.53%2C7.88%2C7.88%2C7.88c2.12%2C0%2C4.05-.84%2C5.47-2.21l-2.33-2.41Z%22/%3E%3Crect%20x%3D%22141.63%22%20y%3D%22.59%22%20width%3D%223.74%22%20height%3D%2220.78%22/%3E%3Cpolygon%20points%3D%22133.65%2025.31%20130.82%2025.31%20133.31%2017.63%20136.73%2017.63%20133.65%2025.31%22/%3E%3Cpath%20d%3D%22M157.9%2C6.05c-1.41%2C0-2.73.42-3.83%2C1.14h-3.17v14.18h3.35v-8.33c0-2.01%2C1.63-3.64%2C3.64-3.64s3.64%2C1.63%2C3.64%2C3.64v8.33h3.35v-8.33c0-3.86-3.14-6.99-6.99-6.99Z%22/%3E%3Crect%20x%3D%22185.2%22%20y%3D%2217.63%22%20width%3D%223.74%22%20height%3D%223.74%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20188.95%2025.31%22%3E%3Cg%3E%3Cg%3E%3Cpath%20d%3D%22M67.82%2C21.37l7.2-16.97c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07l-7.82-18.43c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-7.82%2C18.43h4.07Z%22/%3E%3Cpath%20d%3D%22M4.07%2C21.37L11.27%2C4.4c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l4.61%2C10.87c.35.82%2C1.14%2C1.35%2C2.03%2C1.35h0c.89%2C0%2C1.69-.53%2C2.03-1.35l4.61-10.87c.25-.6.78-.66%2C1-.66s.74.06%2C1%2C.66l7.2%2C16.97h4.07L32%2C2.94c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94l-1.84%2C4.33h0l-1.36%2C3.21-1.36-3.21h0l-1.84-4.33c-.77-1.81-2.47-2.94-4.44-2.94s-3.67%2C1.13-4.44%2C2.94L0%2C21.37h4.07Z%22/%3E%3Cpath%20d%3D%22M51.79%2C21.47c-5.92%2C0-10.73-4.82-10.73-10.73S45.87%2C0%2C51.79%2C0s10.73%2C4.82%2C10.73%2C10.73-4.82%2C10.73-10.73%2C10.73ZM51.79%2C3.74c-3.86%2C0-6.99%2C3.14-6.99%2C6.99s3.14%2C6.99%2C6.99%2C6.99%2C6.99-3.14%2C6.99-6.99-3.14-6.99-6.99-6.99Z%22/%3E%3Cpath%20d%3D%22M105.51%2C15.34c-1.28%2C1.46-3.17%2C2.39-5.26%2C2.39-3.86%2C0-6.99-3.14-6.99-6.99s3.14-6.99%2C6.99-6.99c2.1%2C0%2C3.98.93%2C5.26%2C2.39l2.6-2.7C106.16%2C1.32%2C103.36%2C0%2C100.25%2C0%2C94.33%2C0%2C89.52%2C4.82%2C89.52%2C10.73s4.82%2C10.73%2C10.73%2C10.73c3.1%2C0%2C5.9-1.32%2C7.87-3.44l-2.6-2.7Z%22/%3E%3Cpolygon%20points%3D%22128.93%20.59%20111.79%20.59%20111.79%204.33%20118.49%204.33%20118.49%2021.37%20122.23%2021.37%20122.23%204.33%20128.93%204.33%20128.93%20.59%22/%3E%3Cpath%20d%3D%22M179.92%2C17.18c-.82.79-1.92%2C1.27-3.14%2C1.27-2.5%2C0-4.53-2.03-4.53-4.53s2.03-4.53%2C4.53-4.53c1.22%2C0%2C2.33.49%2C3.14%2C1.27l2.33-2.41c-1.42-1.37-3.35-2.21-5.47-2.21-4.34%2C0-7.88%2C3.53-7.88%2C7.88s3.53%2C7.88%2C7.88%2C7.88c2.12%2C0%2C4.05-.84%2C5.47-2.21l-2.33-2.41Z%22/%3E%3Crect%20x%3D%22141.63%22%20y%3D%22.59%22%20width%3D%223.74%22%20height%3D%2220.78%22/%3E%3Cpolygon%20points%3D%22133.65%2025.31%20130.82%2025.31%20133.31%2017.63%20136.73%2017.63%20133.65%2025.31%22/%3E%3Cpath%20d%3D%22M157.9%2C6.05c-1.41%2C0-2.73.42-3.83%2C1.14h-3.17v14.18h3.35v-8.33c0-2.01%2C1.63-3.64%2C3.64-3.64s3.64%2C1.63%2C3.64%2C3.64v8.33h3.35v-8.33c0-3.86-3.14-6.99-6.99-6.99Z%22/%3E%3Crect%20x%3D%22185.2%22%20y%3D%2217.63%22%20width%3D%223.74%22%20height%3D%223.74%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    background-color: var(--color-white);
}
.company-info dl {
    display: flex;
    align-items: flex-start;
}
.company-info .content > dl {
    border-top: 1px solid var(--color-light-gray);
    padding: var(--space-50) 0;
}
.company-info .content > dl:last-of-type {
    border-bottom: 1px solid var(--color-light-gray);
}
.company-info .content > dl > dt {
    flex-shrink: 0;
    width: 22%;
    min-width: 10rem;
    max-width: 17rem;
}
.company-info .content > dl > dd {
    width: 88%;
    min-width: calc(100% - 10rem);
    max-width: calc(100% - 17rem);
}
.company-info dd > dl > dt {
    width: 12.5rem;
}
.map {
    margin-top: var(--space-100);
    background-color: var(--color-light-gray);
    border-radius: var(--radius-primary);
    overflow: hidden;
}
.map iframe {
    width: 100%;
    height: auto;
    min-height: 200px;
    aspect-ratio: 2 / 1;
}
.gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-40);
    margin-top: var(--space-60);
}
.gallery img {
    border-radius: var(--radius-primary);
}
.company-info .btn {
    margin-top: var(--space-60);
}

#footer {
    max-width: var(--max-width);
    margin: var(--space-400) auto 0;
    padding: 0 var(--space-inner);
}
#footer .inner {
    padding: var(--space-80) 0;
    border-top: 1px solid var(--color-black);
}
#footer .inner > div + div {
    align-items: center;
    margin-top: var(--space-240);
}
.menu .gnavi + .gnavi {
    margin-top: var(--space-80);
}
.menu .title {
    font-weight: 600;
    letter-spacing: 0;
}
.menu .gnavi > ul {
    font-weight: inherit;
}
.menu .gnavi a {
    transition: text-shadow var(--hover-primary);
}
#footer .logo span {
    background-color: var(--color-black);
}
.copyright {
    font-size: var(--font-size-sm);
    letter-spacing: 0;
}


.page-sub #main {
    padding-top: var(--space-400);
}

.news-filter {
    margin-bottom: var(--space-100);
}
.news-filter ul {
    display: flex;
    column-gap: var(--space-20);
}
.news-filter li > * {
    display: block;
    padding: 0.4rem var(--space-40);
    background-color: var(--color-blue-gray);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    transition: background-color var(--hover-primary);
}
.news-filter li.active > * {
    background-color: var(--color-black);
    color: var(--color-white);
}
@media (hover: hover) {
    .news-filter li > a:hover {
        background-color: #e0e7eb;
    }
}
.nav-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: var(--space-50);
    margin-top: var(--space-100);
    letter-spacing: 0;
}
.page-numbers {
    display: flex;
    align-items: center;
    column-gap: var(--space-10);
}
.page-numbers.current {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.page-numbers.prev::before,
.page-numbers.next::after {
    display: inline-block;
    font-family: 'lucide';
    font-weight: normal;
    font-style: normal;
}
.page-numbers.prev::before {
    content: "\e06e";
}
.page-numbers.next::after {
    content: "\e06f";
}
.news-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-30) var(--space-30);
    border-top: 1px solid var(--color-black);
    margin-bottom: var(--space-160);
    padding-top: var(--space-60);
}
.news-head .news-date {
    width: auto;
}
.news-head .news-category {
    width: auto;
}
.news-head-title {
    width: 100%;
    font-size: 3.4rem;
}
.news-body {
    text-align: justify;
    line-height: 2;
}
.news-body p + p {
    margin-top: var(--space-40);
}
.news-body * + p {
    margin-top: var(--space-80);
}
.news-body a {
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-color: var(--color-dark-gray);
}
@media (hover: hover) {
    .news-body a:hover {
        text-decoration: none;
    }
}
.news-foot {
    margin-top: var(--space-180);
}
.news-foot .btn {
    width: 25rem;
    margin-inline: auto;
}

.policy-content {
    line-height: 1.9;
    text-align: justify;
}
.policy-intro {
    margin-bottom: var(--space-100);
}
.policy-intro p + p {
    margin-bottom: var(--space-60);
}
.policy-enacted {
    text-align: right;
}
.policy-item + .policy-item {
    margin-top: var(--space-80);
}
.policy-title {
    margin-bottom: var(--space-10);
    font-size: var(--font-size-lg);
}
.policy-block + .policy-block {
    margin-top: var(--space-60);
}
.policy-content ul {
    list-style: disc;
}
.policy-content ul > li {
    margin-left: var(--space-40);
}
.policy-content ol {
    list-style: decimal;
}
.policy-content ol.alpha {
    list-style-type: upper-alpha;
    margin-left: var(--space-50);
}
.policy-content ol > li {
    margin-left: var(--space-50);
}
.policy-block > * + * {
    margin-top: var(--space-20);
}
.policy-content a {
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-color: var(--color-dark-gray);
}
@media (hover: hover) {
    .policy-content a:hover {
        text-decoration: none;
    }
}

.not-found {
    font-size: var(--font-size-xl);
    font-weight: 700;
    text-align: center;
}


@media screen and (max-width: 750px) {
    :root {
        --space-inner: 4.0rem;
        --flex-main-width: 100%;
        --flex-side-width: 100%;
        --radius-primary: 7px;
        --radius-large: 28px;
    }

    html {
        font-size: 50%;
    }

    .sp-only {
        display: block;
    }
    .pc-only {
        display: none;
    }
    br.sp-only {
        display: inline;
    }
    .bg-colored {
        padding: var(--space-140) 0;
    }
    .bg-plain {
        padding: var(--space-140) 0;
    }
    .flex-between {
        flex-direction: column;
        row-gap: var(--space-80);
    }
    .section .flex-between + .flex-between {
        margin-top: var(--space-180);
    }
    .section .flex-between + .flex-between:nth-of-type(even) {
        flex-direction: column;
    }
    .section-head {
        column-gap: var(--space-40);
        margin-bottom: var(--space-100);
        padding-top: var(--space-40);
    }
    .section-title {
        font-size: 4.5rem;
    }
    .btn > a {
        padding: var(--space-30) var(--space-60);
        font-size: var(--font-size-md);
    }
    .btn > a::after {
        right: var(--space-50);
    }

    #header {
        padding: var(--space-40);
    }
    #header .logo {
        position: relative;
        z-index: 2;
    }
    .logo a {
        width: 17.5rem;
    }
    .gnavi-toggle {
        display: block;
        position: relative;
        width: 8.4vw;
        aspect-ratio: 1 / 1;
        padding: 0;
        background: var(--color-black);
        border: none;
        border-radius: 50%;
        -webkit-appearance: none;
        appearance: none;
        outline: none;
        cursor: pointer;
    }
    .gnavi-toggle::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: inherit;
        border-radius: inherit;
        z-index: 3;
        pointer-events: none;
    }
    .gnavi-toggle span {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 3.2vw;
        height: 1.5px;
        background-color: var(--color-white);
        z-index: 4;
    }
    .gnavi-toggle span:nth-child(1) {
        translate: -50% -2.5px;
    }
    .gnavi-toggle span:nth-child(2) {
        translate: -50% 2.5px;
    }
    #header:not(.scrolled) .gnavi-toggle {
        background-color: var(--color-white);
    }
    #header:not(.scrolled) .gnavi-toggle span {
        background-color: var(--color-black);
    }
    #header.menu-open .gnavi-toggle span:nth-child(1) {
        translate: -50% -50%;
        rotate: 45deg;
    }
    #header.menu-open .gnavi-toggle span:nth-child(2) {
        translate: -50% -50%;
        rotate: -45deg;
    }
    .gnavi-toggle::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: var(--color-black);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--primary-duration) ease;
        z-index: 1;
    }
    #header.menu-open .gnavi-toggle::before {
        opacity: .5;
        pointer-events: auto;
    }
    #header .gnavi {
        display: flex;
        flex-direction: column;
        justify-content: center;
        position: fixed;
        bottom: -100%;
        left: 50%;
        translate: -50% 0;
        width: calc(100vw - var(--space-80));
        height: 90dvh;
        padding: var(--space-100);
        background-color: var(--color-white);
        border-radius: var(--radius-large) var(--radius-large) 0 0;
        overflow: scroll;
        transition: bottom var(--primary-duration) ease;
        z-index: 2;
    }
    #header .gnavi.active {
        bottom: 0;
    }
    #header .gnavi::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 1.0rem;
        background: var(--gradient-horizon);
    }
    #header .gnavi > ul {
        flex-direction: column;
        row-gap: var(--space-20);
        font-size: 3.0rem;
    }
    .gnavi > ul.sp-only {
        display: flex;
    }
    #header .gnavi > ul + ul {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-20);
        margin-top: var(--space-100);
        font-size: min(1.3rem, 2.6vw);
    }
    #header:not(.scrolled) .gnavi a {
        text-shadow: 0 1.5em 0 var(--color-black), 0 0 0 var(--color-black);
    }
    @media (hover: hover) {
        #header:not(.scrolled) .gnavi a:hover {
            text-shadow: 0 0 0 var(--color-black), 0 -1.5em 0 var(--color-black);
        }
    }
    .gnavi .copyright {
        display: block;
        margin-top: var(--space-70);
    }

    #hero {
        padding-bottom: 30vw;
    }
    .visual-base {
        width: 118.67vw;
        height: 47.6vw;
    }
    .visual-letter-top.visual-o {
        left: 86.27vw;
    }
    .visual-letter-top.visual-c {
        left: 12.27vw;
    }
    .visual-letter-top.visual-t {
        top: 0.53vw;
        left: 32.8vw;
    }
    .visual-letter-bottom.visual-o {
        left: 109.6vw;
    }
    .visual-letter-bottom.visual-c {
        left: 67.73vw;
    }
    .visual-letter-bottom.visual-t {
        left: 48.53vw;
    }
    .visual-o {
        width: 20vw;
    }
    .visual-c {
        width: 17.33vw;
    }
    .visual-t {
        width: 16vw;
    }
    @keyframes infiniteScroll {
        0% {
            transform: translate3d(0, 0, 0);
        }

        100% {
            transform: translate3d(calc(-118.67vw + 2px), 0, 0);
        }
    }
    #hero .lead {
        bottom: 13.33vw;
        left: calc(50% - 2.5vw);
        font-size: min(8vw, 48px);
    }
    #hero .lead > span {
        display: block;
    }
    #hero .lead > span:first-child {
        margin-right: 15vw;
    }
    #hero .lead > span:last-child {
        margin-left: 25vw;
    }
    .lead-line, .cover-lead-line {
        display: block;
    }

    #statement {
        padding: var(--space-140) 0;
    }
    .statement-text {
        font-size: 2.2rem;
    }
    #bg-statement {
        opacity: .05;
    }

    .cover {
        height: 40vw;
    }
    .cover .lead {
        font-size: 5.5vw;
    }
    #about .cover::before {
        top: -1vw;
        width: 140vw;
    }
    #about .container {
        padding-top: var(--space-100);
        padding-bottom: var(--space-140);
    }
    #about .section-title {
        margin-bottom: var(--space-60);
    }
    .about-item {
        align-items: flex-start;
    }
    .about-item .content .lead {
        width: 100%;
    }
    .about-item .content .text {
        margin-top: var(--space-60);
    }
    .about-item figure {
        width: 100%;
    }
    .about-item:first-of-type figure img {
        width: calc(100% + var(--space-80) + 2.5vw);
        max-width: none;
        translate: none;
    }
    .about-item:nth-of-type(2) {
        display: flex;
        flex-direction: column;
        row-gap: 0;
    }
    .about-item:nth-of-type(2) .content {
        display: contents;
    }
    .about-item:nth-of-type(2) .lead {
        order: 1;
    }
    .about-item:nth-of-type(2) .text {
        order: 2;
    }
    .about-item:nth-of-type(2) figure {
        order: 3;
        margin-top: var(--space-60);
    }
    .about-values {
        width: 100%;
    }
    .about-values .item {
        width: 55%;
    }
    .about-values .item .title {
        margin-top: 5vw;
        font-size: 3.5vw;
    }
    .about-values .item:first-child .title {
        margin-top: 0;
    }
    .about-values .item .text {
        margin-top: var(--space-10);
        font-size: 2.5vw;
    }
    .about-item:nth-of-type(2) .btn {
        order: 4;
    }
    .about-item .btn {
        margin-top: var(--space-100);
    }

    .service-item {
        padding: var(--space-80);
    }
    .service-item:nth-child(even) {
        padding-left: var(--space-80);
    }
    .service-item + .service-item {
        margin-top: var(--space-90);
    }
    .service-item-label span {
        right: -7vw;
    }
    .service-item:nth-child(even) .service-item-label {
        left: -7vw;
    }
    .service-item-label span {
        width: 7vw;
        padding: var(--space-40) 0;
        font-size: 3vw;
    }
    .service-item-wrap {
        flex-direction: column;
        row-gap: var(--space-80);
    }
    .service-item-wrap + .service-item-wrap:last-of-type {
        padding-top: 0;
    }
    .service-item-wrap:nth-child(odd) {
        flex-direction: column;
    }
    .service-item-title {
        font-size: 2.4rem;
    }
    .service-item-text {
        font-size: var(--font-size-md);
        text-align: justify;
    }
    .service-item .btn {
        width: 100%;
    }
    .service-item-main > .btn {
        margin-top: var(--space-60);
    }
    .service-item-wrap > .btn {
        max-width: 100%;
        margin-top: var(--space-80);
    }
    .service-item-img {
        width: 100%;
    }
    .img-bg-circle::before {
        width: 90%;
    }
    .service-item-img .img-bg-circle img {
        width: 80%;
    }
    .service-item-list {
        margin-top: var(--space-80);
    }
    .service-item-list-wrap {
        column-gap: var(--space-60);
        padding-right: var(--space-60);
    }
    .service-item-list-wrap figure img {
        height: 5rem;
    }

    .news-list li > * {
        flex-wrap: wrap;
        gap: var(--space-20);
        padding: var(--space-40) var(--space-100) var(--space-40) 0;
    }
    .news-date {
        width: auto;
    }
    .news-category {
        width: 10.5rem;
        padding: 0.3rem var(--space-30);
    }
    .news-title {
        width: 100%;
        margin-left: 0;
        font-size: var(--font-size-md);
    }
    .news-list .btn {
        width: 60%;
        margin-top: var(--space-60);
    }

    .colored-box {
        padding: var(--space-80) var(--space-60);
        flex-direction: column-reverse;
        row-gap: var(--space-60);
    }
    .colored-box .section-head {
        margin-bottom: var(--space-60);
        padding-top: var(--space-30);
    }
    .colored-box .section-title {
        font-size: 4.0rem;
    }
    .colored-box figure {
        width: 100%;
    }
    .colored-box figcaption img {
        width: 13rem;
    }

    .mvv-navi {
        display: none;
    }
    .mvv-item {
        flex-direction: column;
        align-items: flex-start;
        row-gap: var(--space-80);
        padding: var(--space-60);
    }
    .mvv-item-main {
        width: 100%;
    }
    .mvv-item-head {
        margin-bottom: var(--space-30);
    }
    .mvv-item-lead {
        font-size: 3.0rem;
    }
    .mvv-item .btn {
        margin-top: var(--space-40);
    }
    .mvv-item-img {
        width: 40%;
    }
    .mvv-item-img i {
        width: 15vw;
        font-size: 15vw;
    }
    @keyframes mvvInfiniteScroll {
        0% {
            transform: translate3d(0, 0, 0);
        }
        100% {
            transform: translate3d(calc(-15vw - 1.5rem), 0, 0);
        }
    }

    .company-info .cover {
        height: 28vw;
        aspect-ratio: auto;
        margin-bottom: var(--space-80);
    }
    .company-info .cover span {
        bottom: var(--space-50);
        right: var(--space-50);
    }
    .company-info .content > dl {
        padding: var(--space-40) 0;
    }
    .company-info dd > dl > dt {
        width: 12rem;
    }
    .map {
        margin-top: var(--space-60);
    }
    .gallery {
        gap: var(--space-30);
        margin-top: var(--space-40);
    }
    .company-info .btn {
        margin-top: var(--space-40);
    }

    #footer {
        margin-top: var(--space-240);
    }
    #footer .inner {
        padding-top: var(--space-60);
    }
    .menu .gnavi + .gnavi {
        margin-top: var(--space-60);
    }
    .menu .title {
        margin-bottom: var(--space-10);
    }
    .menu .gnavi > ul {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: var(--space-10);
    }
    .menu .gnavi + .gnavi > ul {
        grid-template-columns: repeat(2, 1fr);
    }
    #footer .inner > div + div {
        flex-direction: row;
        margin-top: var(--space-160);
    }
    #footer .logo a {
        width: 15rem;
    }
    .copyright {
        font-size: 1.0rem;
    }


    .page-sub #main {
        padding-top: var(--space-240);
    }

    .news-filter {
        margin-bottom: var(--space-40);
        padding-bottom: var(--space-30);
        overflow: scroll;
    }
    .news-filter ul {
        width: max-content;
    }
    .nav-pagination {
        margin-top: var(--space-80);
    }
    .news-head {
        row-gap: var(--space-20);
        margin-bottom: var(--space-100);
        padding-top: var(--space-40);
    }
    .news-head-title {
        font-size: 2.6rem;
        line-height: 1.4;
    }
    .news-body {
        font-size: var(--font-size-md);
    }
    .news-body * + p {
        margin-top: var(--space-70);
    }
    .news-foot {
        margin-top: var(--space-100);
    }
    .news-foot .btn {
        width: 54%;
    }

    .policy-content {
        font-size: var(--font-size-md);
        line-height: 1.8;
    }
    .policy-title {
        margin-bottom: var(--space-20);
        font-size: 2.0rem;
    }
}
