@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@200..900&family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Zen+Old+Mincho:wght@500;700&display=swap');

/* ==================================================
common
================================================== */
html, body {
	width: 100%;
    height: 100%;
    color: #000000;
}
body {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 500;
    line-height: 1.5;
    background: #F0EEEA;
}
body.is-modal-open {
    overflow: hidden;
}
.hide {
    opacity: 0;
    visibility: hidden;
}
.none {
    display: none;
}
/* PC */
@media screen and (min-width: 768px) , print {
    html, body {
        font-size: clamp(14px, 1.25vw, 20px);
    }
    .hide-pc,
    .display-sp,
    .br-sp {
        display: none !important;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    html, body {
        font-size: clamp(10px, 3.733vw, 16px);
    }
    .hide-sp,
    .display-pc,
    .br-pc {
        display: none !important;
    }
}
/* --------------------------------------------------
loading
-------------------------------------------------- */
#loading {
    position: fixed;
    inset: 0;
    background-color: #F0EEEA;
    z-index: 9999;
    transition: opacity 0.3s ease-out;
}
#loading.is-hide {
    opacity: 0;
    pointer-events: none;
}
/* --------------------------------------------------
font, text
-------------------------------------------------- */
dl dt {
    font-weight: normal;
}
sup, sub {
    font-size: 0.555rem;
}
sup {
    top: -1.5em;
}
sub {
    bottom: -0.25em;
}
.lan-en {
    letter-spacing: 0.03em;
}
.small {
    font-size: 0.8em;
}
.kome-list li {
    font-size: 0.8em;
    text-indent: -1em;
    margin-left: 1em;
    margin-top: 0.25em;
}
.kome-list li:first-child {
    margin-top: 0;
}
.txt-right {
    text-align: right !important;
}
.txt-center {
    text-align: center !important;
}
/* --------------------------------------------------
link, btn
-------------------------------------------------- */
a {
    cursor: pointer;
    text-underline-offset: 0.25em;
    text-decoration-thickness: 1px;
}
a .hover-line {
    text-decoration-line: underline;
}
a:hover .hover-line {
    text-decoration-line: none;
}
/* --------------------------------------------------
w
-------------------------------------------------- */
.w01, .w02, .w03 {
    width: 100%;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .w01 {
        padding: 0 5rem;
    }
    .w02 {
        padding: 0 11rem;
    }
    .w03 {
        max-width: 46rem;
        margin: 0 auto;
    }
}
/* Tablet */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .w02 {
        padding: 0 5rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .w01 {
        padding: 0 4vw;
    }
    .w02 {
        padding: 0 5.333vw;
    }
    .w03 {
        width: 100%;
        padding: 0 8vw;
    }
}

/* --------------------------------------------------
bg
-------------------------------------------------- */
.bg-white {
    background-color: #FFFFFF;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .bg-white {
        padding: 5rem 0;
        margin: 5rem 0;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .bg-white {
        padding: 16vw 0;
        margin: 16vw 0;
    }
}
/* --------------------------------------------------
page
-------------------------------------------------- */
.page-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    min-height: 50vh;
}
.page-header .page-ttl-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
}
.page-header .page-ttl-wrap * {
    text-align: center;
}
.page-header .page-ttl {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
}
.page-header .page-ttl img {
    width: 100%;
    height: auto;
}
.page-header .page-ttl-ja {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    line-height: 1;
}
.page-section-wrap {
    display: flex;
    flex-direction: column;
}
.page-section .page-sub-section:first-child {
    padding-top: 0;
}
.page-section .cont-body {
    display: flex;
    flex-direction: column;
}
.page-body *:first-child {
    margin-top: 0;
}
#page-sns-nav {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 99;
}
#page-sns-nav.is-hide {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
#page-sns-nav .page-nav-list .comp-anchor {
    font-weight: 700;
    color: #5FFF86;
    background-color: #000000;
}
#page-sns-nav .page-nav-list .comp-anchor:hover {
    color: #000000;
    background-color: #5FFF86;
}
/* tate */
@media (max-aspect-ratio: 5/4) {
    .page-header {
        min-height: 33.333vh;
    }
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .page-header {
        padding: 8.5rem 0 3rem;
    }
    .page-header .page-ttl {
        font-size: 3rem;
    }
    .page-header .page-ttl img {
        width: 80%;
        margin-bottom: 2rem;
    }
    .page-header .page-ttl-ja {
        font-size: 1.111rem;
    }
    .page-section {
        padding-top: 6rem;
    }
    .page-section-wrap .page-section:first-child {
        margin-top: -6rem;
    }
    .page-section .page-sub-section {
        padding-top: 2.5rem;
    }
    .page-section .cont-body {
        gap: 2.5rem;
    }
    #page-nav {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 80%;
        padding: 1.5rem;
        z-index: 99;
        transition: opacity 0.15s ease-out, visibility 0.15s ease-out;
    }
    #page-sns-nav {
        padding: 1.5rem;
    }
    #page-nav.is-hide {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
    #page-sns-nav .page-nav-list .comp-anchor,
    #page-nav .page-nav-list .comp-anchor {
        font-size: clamp(10px, 0.666rem, 0.666rem);
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .page-header {
        padding: 28vw 0 8vw;
    }
    .page-header .page-ttl {
        font-size: 10.666vw;
    }
    .page-header .page-ttl img {
        width: 80%;
        margin-bottom: 4vw;
    }
    .page-header .page-ttl-ja {
        font-size: 4vw;
    }
    .page-section {
        padding-top: 16vw;
    }
    .page-section-wrap .page-section:first-child {
        margin-top: -16vw;
    }
    .page-section .page-sub-section {
        padding-top: 8vw;
    }
    .page-section .cont-body {
        gap: 5.333vw;
    }
    #page-nav {
        display: none;
    }
    #page-sns-nav {
        padding: 4vw;
    }
    #page-sns-nav .page-nav-list .comp-anchor {
        padding: 0.75em 1em 0.675em;
    }
}
/* --------------------------------------------------
detail
-------------------------------------------------- */
.detail-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    min-height: 25vh;
}
.detail-body *:first-child,
.detail-related *:first-child {
    margin-top: 0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .detail-header {
        padding: 8.5rem 0 2rem;
    }
    .detail-footer {
        margin: 5rem 0;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .detail-header {
        padding: 28vw 0 5.333vw;
    }
    .detail-footer {
        margin: 16vw 0;
    }
}
/* --------------------------------------------------
cont-ttl
-------------------------------------------------- */
.cont-ttl01-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}
.cont-ttl01-wrap * {
    text-align: center;
}
.cont-ttl01 {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
}
.cont-ttl01-ja {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 1.111rem;
    line-height: 1;
}
.cont-ttl02 {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    text-align: center;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .cont-ttl01-wrap {
        margin-bottom: 3rem;
    }
    .cont-ttl01 {
        font-size: 2.666rem;
    }
    .cont-ttl02 {
        font-size: 1.555rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .cont-ttl01-wrap {
        margin-bottom: 10.666vw;
    }
    .cont-ttl01 {
        font-size: 9.6vw ;
    }
    .cont-ttl02 {
        font-size: 5.6vw;
    }
}
/* --------------------------------------------------
cont-txt-wrap
-------------------------------------------------- */
.overview-txt-wrap h3,
.cont-intro-wrap h3 {
    letter-spacing: -0.0125em;
    text-align: center;
    margin-bottom: 1em;
}
.cont-txt-wrap h3,
.page-intro-wrap h3 {
    letter-spacing: -0.0125em;
    line-height: 1.75;
    margin-bottom: 1em;
}
.cont-txt-wrap p,
.overview-txt-wrap p {
    margin-top: 1.5em;
}
.page-intro-wrap p {
    line-height: 1.75;
    margin-top: 1em;
}
.cont-intro-wrap p {
    line-height: 1.75;
    text-align: center;
    margin-top: 1em;
    margin-bottom: 1em;
}
.cont-txt-wrap *:first-child,
.overview-txt-wrap *:first-child,
.page-intro-wrap *:first-child,
.cont-intro-wrap *:first-child {
    margin-top: 0;
}
.cont-intro-wrap {
    margin: 0 auto;
}
.cont-txt-wrap a,
.overview-txt-wrap a,
.page-intro-wrap a,
.cont-intro-wrap a {
    text-decoration-line: underline;
}
.cont-txt-wrap a:hover,
.overview-txt-wrap a:hover,
.page-intro-wrap a:hover,
.cont-intro-wrap a:hover {
    text-decoration-line: none;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .overview-txt-wrap h3 {
        font-size: 1.666rem;
    }
    .overview-txt-wrap p {
        font-size: 1.111rem;
    }
    .cont-txt-wrap h3,
    .cont-intro-wrap h3,
    .page-intro-wrap h3 {
        font-size: 1.333rem;
    }
    .cont-txt-wrap p,
    .overview-txt-wrap p {
        line-height: 2;
    }
    .page-intro-wrap p,
    .cont-txt-wrap p,
    .overview-txt-wrap p {
        text-align: justify;
    }
    .cont-intro-wrap {
        max-width: 46rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .overview-txt-wrap h3 {
        font-size: 5.6vw;
    }
    .cont-txt-wrap h3,
    .page-intro-wrap h3 {
        font-size: 4.8vw;
    }
    .cont-txt-wrap h3 br,
    .page-intro-wrap h3 br,
    .page-intro-wrap p br {
        display: none;
    }
    .cont-txt-wrap p,
    .overview-txt-wrap p {
        line-height: 1.9;
    }
    .cont-intro-wrap {
        max-width: 84vw;
    }
}
/* --------------------------------------------------
slide
-------------------------------------------------- */
.slide01 {
    width: 100%;
}
.slide01 .swiper-slide .comp-txt-wrap {
    transition: opacity 0.3s ease-out;
}
.slide01 .swiper-slide:not(.swiper-slide-active) .comp-txt-wrap {
    opacity: 0;
}
.swiper-pagination {
    position: static;
    display: flex;
    gap: 0.5em;
    justify-content: center;
}
.swiper-pagination-bullet {
    width: auto;
    height: auto;
    background: none;
    opacity: 1;
    padding: 0;
    margin: 0;
    border: 0;
    font: inherit;
    color: #B5B5B5;
    cursor: pointer;
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    border-radius: 0;
}
.swiper-pagination-bullet:hover {
    color: #5FFF86;
}
.swiper-pagination-bullet-active,
.swiper-pagination-bullet-active:hover {
    color: #000;
    font-weight: 400;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .slide01:not(.swiper) {
        padding: 0 5rem; /* w01 */
    }
    .swiper-pagination {
        font-size: clamp(10px, 0.666rem, 0.666rem);
        margin-top: 2rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .slide01:not(.swiper) {
        padding: 0 4vw; /* w01 */
    }
    .swiper-pagination {
        font-size: 3.2vw;
        margin-top: 8vw;
    }
}

/* ==================================================
comp
================================================== */
.comp-empty {
    color: #969696;
    text-align: center;
}
.comp-anchor {
    display: block;
    width: 100%;
    height: 100%;
}
.comp-img-wrap {
    width: 100%;
    height: auto;
    aspect-ratio: 91/55;
    overflow: hidden;
}
.comp-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* --------------------------------------------------
comp-pager
-------------------------------------------------- */
.comp-pager * {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
}
.comp-pager ul {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
}
.comp-pager .page-numbers {
    padding: 0.5em;
}
.comp-pager .page-numbers.prev,
.comp-pager .page-numbers.next {
    display: block;
    width: 1em;
    height: 1em;
    text-indent: -9999%;
    padding: 0;
    margin: 0 1.5em;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    overflow: hidden;
    background-image: url(/assets/img/icon_arrow02_black.svg);
}
.comp-pager .page-numbers.prev {
    transform: rotate(180deg);
}
.comp-pager .page-numbers.prev:hover,
.comp-pager .page-numbers.next:hover {
    background-image: url(/assets/img/icon_arrow02_green.svg);
}
.comp-pager a {
    color: #B5B5B5;
}
.comp-pager a:hover {
    color: #5FFF86;
}

/* --------------------------------------------------
comp-tag
-------------------------------------------------- */
.comp-tag-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5em;
}
.comp-tag {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    display: inline-block;
    padding: 0.5em;
    background-color: #FFFFFF;
}
.comp-tagbtn-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 0.25rem;
}
.comp-tagbtn .comp-anchor {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    display: inline-block;
    line-height: 1;
    padding: 0.5em 1em 0.45em;
    border-radius: 3em;
    background-color: #FFFFFF;
    border: #000000 1px solid;
}
.comp-tagbtn .comp-anchor.current {
    background-color: #000000;
    color: #FFFFFF;
}
.comp-tagbtn a.comp-anchor:hover:not(.current) {
    background-color: #5FFF86;
}
.bg-white .comp-tag {
    background-color: #EAE7E0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-tag-list {
        font-size: clamp(10px, 0.666rem, 0.666rem);
    }
    .comp-tagbtn .comp-anchor {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-tag-list {
        font-size: 10px;
    }
    .comp-tagbtn .comp-anchor {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-btn
-------------------------------------------------- */
.comp-btn-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.5em;
}
.comp-btn01 .comp-anchor,
.comp-btn02 .comp-anchor {
    display: inline-block;
    line-height: 1;
    padding: 0.9em 2em;
    border-radius: 3em;
}
.comp-btn01 .comp-anchor {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 700;
    font-style: normal;
    color: #5FFF86;
    border: #000000 1px solid;
    background-color: #000000;
}
.comp-btn01 a.comp-anchor:hover {
    color: #000000;
    background-color: #5FFF86;
}
.comp-btn02 .comp-anchor {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    border: #5FFF86 1px solid;
    background-color: #5FFF86;
}
.comp-btn02 a.comp-anchor:hover {
    border: #000000 1px solid;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-btn01 .comp-anchor,
    .comp-btn02 .comp-anchor {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-btn01 .comp-anchor,
    .comp-btn02 .comp-anchor {
        font-size: 3.466vw;
    }
}
/* --------------------------------------------------
comp-dl
-------------------------------------------------- */
.comp-dl-wrap {
    border-bottom: #000000 1px solid;
}
.comp-dl {
    display: flex;
    border-top: #000000 1px solid;
}
.comp-dl .comp-dd ul {
    list-style: disc;
    margin-left: 1.5em;
}
.comp-dl .comp-dd ul li {
    margin-top: 0.5em;
}
.comp-dl .comp-dd ul li:first-child {
    margin-top: 0;
}
.comp-dl .comp-dd ul li::marker {
    color: #FFFFFF;
}
.comp-dl .comp-dd .kome-list {
    list-style: none;
    margin-top: 0.5em;
    margin-left: 0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-dl {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: baseline;
        justify-content: space-between;
        padding: 1.5em 0;
    }
    .comp-dl .comp-dt {
        font-size: 0.888em;
        width: 20.689%;
    }
    .comp-dl .comp-dd {
        width: 79.311%;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-dl {
        flex-direction: column;
        padding: 5.333vw 2.666vw;
        gap: 2.666vw;
    }
    .comp-dl .comp-dt {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-newsletter
-------------------------------------------------- */
.comp-newsletter-list {
    border-bottom: #000000 1px solid;
}
.comp-newsletter {
    border-top: #000000 1px solid;
}
.comp-newsletter .comp-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
}
.comp-newsletter .comp-txt-wrap {
    flex: 1;
}
.comp-newsletter .comp-date {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.comp-newsletter .comp-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.75;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-newsletter .comp-img-wrap {
        width: 17.241%;
        margin-left: 2rem;
    }
    .comp-newsletter .comp-inner {
        padding: 1.5rem 0;
    }
    .comp-newsletter .comp-txt-wrap {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }
    .comp-newsletter .comp-date {
        font-size: 0.777rem;
        margin-bottom: 0.5em;
    }
    .comp-newsletter .comp-ttl {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-newsletter-list {
        margin: 0 auto 0.5em;
    }
    .comp-newsletter .comp-img-wrap {
        display: none;
    }
    .comp-newsletter .comp-inner {
        padding: 5.333vw 2.666vw;
    }
    .comp-newsletter .comp-date {
        font-size: 10px;
        margin-bottom: 2.666vw;
    }
    .comp-newsletter .comp-ttl {
        font-size: 3.466vw;
    }
}
/* --------------------------------------------------
comp-newsticker
-------------------------------------------------- */
.comp-newsticker-list {
    flex: 1;
    min-width: 0;
}
.comp-newsticker-list .comp-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
}
.comp-newsticker .comp-date {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1;
}
.comp-newsticker .comp-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* animation */
.comp-newsticker-list {
    position: relative;
    overflow: hidden;
}
.comp-newsticker {
    display: none;
}
.comp-newsticker.is-active {
    display: block;
}
.comp-newsticker .comp-inner {
    opacity: 0;
    transition: opacity 0.15s ease-out;
}
.comp-newsticker.is-show .comp-inner {
    opacity: 1;
}
.comp-newsticker .comp-ttl.is-typing::after {
    content: '';
    display: inline-block;
    width: 1px;
    height: 0.8em;
    margin-left: 0.5em;
    background: #000000;
    animation: caretBlink 0.8s steps(1, end) infinite;
}
@keyframes caretBlink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-newsticker-list .comp-inner {
        gap: 0.75rem;
    }
    .comp-newsticker .comp-date {
        font-size: 0.777rem;
        }
    .comp-newsticker .comp-ttl {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-newsticker-list .comp-inner {
        gap: 0.5em;
    }
    .comp-newsticker .comp-date {
        display: none;
    }
    .comp-newsticker .comp-ttl {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-theme
-------------------------------------------------- */
.comp-theme-list {
    display: flex;
}
.comp-theme .comp-tag-list {
    margin-bottom: 1em;
}
.comp-theme .comp-ttl-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}
.comp-theme-slide .comp-theme .comp-txt-wrap * {
    text-align: center;
    justify-content: center;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-theme-list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
        margin: -1.5rem -1rem !important;
    }
    .comp-theme {
        width: 50%;
        padding: 1.5rem 1rem;
    }
    .comp-theme .comp-img-wrap {
        margin-bottom: 1.111rem;
    }
    .comp-theme .comp-ttl {
        font-size: 1.111rem;
    }
    .comp-theme .comp-sub-ttl {
        font-size: 0.777rem;
    }
    /* featured */
    .comp-theme-list.comp-featured-list {
        flex-direction: column;
        gap: 2.5rem;
        margin: 0 !important;
    }
    .comp-theme-list.comp-featured-list .comp-theme.comp-featured {
        width: 100%;
        padding: 0;
    }
    .comp-theme-list.comp-featured-list .comp-theme.comp-featured .comp-inner {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
    }
    .comp-theme-list.comp-featured-list .comp-theme.comp-featured .comp-img-wrap {
        width: 65.714%;
    }
    .comp-theme-list.comp-featured-list .comp-theme.comp-featured .comp-txt-wrap {
        flex: 1;
        padding-left: 2rem;
    }
    .comp-theme-list.comp-featured-list.comp-theme.comp-featured .comp-ttl {
        font-size: 1.333rem;
    }
    /* slide */
    .comp-theme-slide {
        margin-top: -1.5rem !important;
        margin-bottom: -1.5rem;
    }
    .comp-theme-slide .comp-theme .comp-txt-wrap {
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }
    .comp-theme-slide:not(.swiper-wrapper) {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        margin-left: -1rem;
        margin-right: -1rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-theme-list {
        flex-direction: column;
        gap: 10.666vw;
    }
    .comp-theme .comp-img-wrap {
        margin-bottom: 4vw;
    }
    .comp-theme .comp-txt-wrap {
        padding: 0 2.666vw;
    }
    .comp-theme .comp-ttl {
        font-size: 4.8vw;
    }
    .comp-theme .comp-sub-ttl {
        font-size: 3.2vw;
    }
    .comp-theme-slide .comp-theme .comp-txt-wrap {
        padding-left: 8vw;
        padding-right: 8vw;
    }
}
/* --------------------------------------------------
comp-project
-------------------------------------------------- */
.comp-project-list {
    display: flex;
}
.comp-project .comp-tag-list {
    margin-bottom: 1em;
}
.comp-project .comp-ttl-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}
/* slide */
.comp-project-slide .comp-project .comp-txt-wrap * {
    text-align: center;
    justify-content: center;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-project-list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
        margin: -1.5rem -1rem !important;
    }
    .comp-project {
        width: 33.333%;
        padding: 1.5rem 1rem;
    }
    .comp-project .comp-img-wrap {
        margin-bottom: 1.111rem;
    }
    .comp-project .comp-sub-ttl {
        font-size: 0.777rem;
    }
    /* slide */
    .comp-project-slide {
        margin-top: -1.5rem !important;
        margin-bottom: -1.5rem;
    }
    .comp-project-slide .comp-project {
        width: 50%;
    }
    .comp-project-slide .comp-project .comp-txt-wrap {
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }
    .comp-project-slide:not(.swiper-wrapper) {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        margin-left: -1rem;
        margin-right: -1rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-project-list {
        flex-direction: column;
        gap: 10.666vw;
    }
    .comp-project .comp-img-wrap {
        margin-bottom: 4vw;
    }
    .comp-project .comp-txt-wrap {
        padding: 0 2.666vw;
    }
    .comp-project .comp-ttl {
        font-size: 4vw;
    }
    .comp-project .comp-sub-ttl {
        font-size: 3.2vw;
    }
    .comp-project-slide .comp-project .comp-txt-wrap {
        padding-left: 8vw;
        padding-right: 8vw;
    }
}
/* --------------------------------------------------
comp-person
-------------------------------------------------- */
.comp-person-list {
    display: flex;
}
.comp-person .comp-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    min-height: 100%;
    background-color: #FFFFFF;
}
.comp-person .comp-img-wrap {
    aspect-ratio: 1/1;
}
.comp-person .comp-txt-wrap {
    flex: 1;
}
.comp-person .comp-name,
.comp-person .comp-position {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
}
.comp-person .comp-name-en {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
    margin-bottom: 0.25em;
}
.comp-person .comp-name {
    font-weight: 500;
}
.comp-person a .comp-name::after {
    content: '';
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    background-image: url(/assets/img/icon_plus_black.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin-left: 0.25em;
}
.comp-person a:hover .comp-name::after {
    background-image: url(/assets/img/icon_plus_green.svg);
}
.comp-person .comp-position {
    font-weight: 400;
    margin-top: 0.5em;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-person-list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
        margin: -1rem !important;
    }
    .comp-person {
        width: 33.333%;
        padding: 1rem;
    }
    .comp-person .comp-inner {
        padding: 1rem;
    }
    .comp-person .comp-img-wrap {
        width: 37.5%;
    }
    .comp-person .comp-txt-wrap {
        padding: 0.5rem 0.5rem 0.5rem 1.5rem;
    }
    .comp-person .comp-name-en {
        font-size: 0.777rem;
    }
    .comp-person .comp-position {
        font-size: 11px;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-person-list {
        flex-direction: column;
        gap: 4vw;
        padding: 0 1.333vw;
    }
    .comp-person .comp-inner {
        padding: 2.666vw;
    }
    .comp-person .comp-img-wrap {
        width: 33.333%;
    }
    .comp-person .comp-txt-wrap {
        padding: 2.666vw 0 2.666vw 4vw;
    }
    .comp-person .comp-name-en {
        font-size: 3.2vw;
    }
    .comp-person .comp-name {
        font-size: 4vw;
    }
    .comp-person .comp-position {
        font-size: 10px;
    }
}
/* --------------------------------------------------
comp-profile
-------------------------------------------------- */
.comp-profile .comp-inner {
    display: flex;
    background-color: #FFFFFF;
}
.comp-profile .comp-img-wrap {
    aspect-ratio: unset;
}
.comp-profile .comp-img-wrap img {
    height: auto;
    aspect-ratio: 1/1;
    overflow: hidden;
}
.comp-profile .comp-txt-wrap {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.comp-profile .comp-name-wrap {
    flex: 1;
}
.comp-profile .comp-name,
.comp-profile .comp-position {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
}
.comp-profile .comp-name-en {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 400;
    margin-bottom: 0.25em;
}
.comp-profile .comp-name {
    font-weight: 500;
}
.comp-profile .comp-position {
    font-weight: 400;
    margin-top: 0.5em;
}
.comp-profile .comp-bio-wrap p {
    text-align: justify;
    line-height: 1.75;
    margin-top: 1em;
}
.comp-profile .comp-bio-wrap p:first-child {
    margin-top: 0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-profile .comp-inner {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        justify-content: space-between;
        padding: 2rem;
    }
    .comp-profile .comp-img-wrap {
        width: 37.931%;
    }
    .comp-profile .comp-txt-wrap {
        gap: 2rem;
        padding: 1rem 1rem 1rem 2rem;
    }
    .comp-profile .comp-name-wrap {
        padding-right: 20%;
    }
    .comp-profile .comp-name-en {
        font-size: 0.888rem;
    }
    .comp-profile .comp-name {
        font-size: 1.5rem;
    }
    .comp-profile .comp-position {
        font-size: 0.777rem;
    }
    .comp-profile .comp-bio-wrap p {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-profile .comp-inner {
        flex-direction: column;
        padding: 16vw 8vw 12vw;
    }
    .comp-profile .comp-txt-wrap {
        gap: 5.333vw;
        margin-top: 8vw;
    }
    .comp-profile .comp-name-en {
        font-size: 3.2vw;
    }
    .comp-profile .comp-name {
        font-size: 5.333vw;
    }
    .comp-profile .comp-position {
        font-size: 3.2vw;
    }
    .comp-profile .comp-bio-wrap p {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-linkbtn
-------------------------------------------------- */
.comp-linkbtn-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
}
.comp-linkbtn .comp-inner {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    border: #000000 1px solid;
}
.comp-linkbtn .comp-ttl,
.comp-linkbtn .comp-source {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-style: normal;
}
.comp-linkbtn .comp-source {
    color: #969696;
}
.comp-linkbtn a .comp-ttl::after {
    content: '';
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    background-image: url(/assets/img/icon_arrow_green.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin-left: 0.25em;
}
.comp-linkbtn a:hover .comp-inner {
    border-color: #5FFF86;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-linkbtn-list {
        margin: -0.5rem !important;
    }
    .comp-linkbtn {
        width: 33.333%;
        padding: 0.5rem;
    }
    .comp-linkbtn .comp-inner {
        padding: 1.5rem;
    }
    .comp-linkbtn .comp-ttl {
        font-size: 0.888rem;
    }
    .comp-linkbtn .comp-source {
        font-size: 11px;
    }
    .comp-linkbtn-list .comp-inner {
        height: 100%;
    }
    .comp-linkbtn-list .comp-ttl {
        flex: 1;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-linkbtn-list {
        gap: 4vw;
    }
    .comp-linkbtn {
        width: 100%;
    }
    .comp-linkbtn .comp-inner {
        padding: 5.333vw;
    }
    .comp-linkbtn .comp-ttl {
        font-size: 3.466vw;
    }
    .comp-linkbtn .comp-source {
        font-size: 10px;
    }
}

/* --------------------------------------------------
comp-philosophy
-------------------------------------------------- */
.comp-philosophy-list {
    counter-reset: list-counter;
    display: flex;
}
.comp-philosophy {
    counter-increment: list-counter;
}
.comp-philosophy .comp-inner {
    background-color: #FFFFFF;
}
.comp-philosophy .comp-ttl-wrap,
.comp-philosophy .comp-ttl {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
.comp-philosophy .comp-ttl-wrap::before {
    content: counter(list-counter);
    color: #969696;
    display: block;
    width: 1em;
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    text-align: center;
}
.comp-philosophy .comp-ttl {
    flex: 1;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    text-align: center;
}
.comp-philosophy .comp-ttl::after {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    background-image: url(/assets/img/icon_minus_black.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.comp-philosophy.is-close .comp-ttl::after {
    background-image: url(/assets/img/icon_plus_black.svg);
}
.comp-philosophy.is-close .comp-philosophy-dt:hover .comp-ttl::after {
    background-image: url(/assets/img/icon_plus_green.svg);
}
.comp-philosophy .comp-txt-wrap p {
    line-height: 1.75;
}
.comp-philosophy .comp-txt-wrap a {
    text-decoration: underline;
}
.comp-philosophy .comp-txt-wrap a:hover {
    text-decoration: none;
}
.comp-philosophy .comp-philosophy-dt {
    width: 100%;
    cursor: pointer;
}
.comp-philosophy .comp-philosophy-dd {
    height: auto;
    overflow: hidden;
    transition: height 0.3s ease-in-out;
}
.comp-philosophy.is-close .comp-philosophy-dd {
    height: 0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-philosophy-list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
    }
    .comp-philosophy {
        width: 50%;
        padding: 1rem;
    }
    .comp-philosophy .comp-inner {
        padding: 0.5rem 0;
    }
    .comp-philosophy .comp-ttl-wrap::before {
        font-size: 2rem;
        margin-right: 1.5rem;
    }
    .comp-philosophy .comp-ttl-wrap {
        padding: 1.5rem 2rem;
    }
    .comp-philosophy .comp-ttl {
        font-size: 1.111rem;
    }
    .comp-philosophy .comp-txt-wrap {
        padding: 0 3rem 1.5rem 5.5rem;
    }
    .comp-philosophy .comp-txt-wrap p {
        font-size: 0.888rem;
    }
    .comp-philosophy .comp-philosophy-dt:hover .comp-ttl::after {
        background-image: url(/assets/img/icon_minus_green.svg);
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-philosophy-list {
        flex-direction: column;
        gap: 4vw;
    }
    .comp-philosophy .comp-ttl-wrap {
        padding: 5.333vw 4vw;
    }
    .comp-philosophy .comp-ttl-wrap::before {
        font-size: 6.4vw;
        margin-right: 4vw;
    }
    .comp-philosophy .comp-ttl {
        font-size: 4.266vw;
    }
    .comp-philosophy .comp-txt-wrap {
        padding: 0 8vw 5.333vw;
    }
    .comp-philosophy .comp-txt-wrap p {
        font-size: 3.466vw;
    }
}
/* --------------------------------------------------
comp-solution
-------------------------------------------------- */
.comp-solution-list {
    counter-reset: list-counter;
    display: flex;
}
.comp-solution {
    counter-increment: list-counter;
}
.comp-solution .comp-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
}
.comp-solution .comp-inner::before {
    content: counter(list-counter);
    color: #969696;
    display: block;
    width: 1.333em;
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    text-align: center;
}
.comp-solution .comp-ttl-wrap,
.comp-solution .comp-ttl {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.comp-solution .comp-ttl-wrap {
    gap: 0.5em;
}
.comp-solution .comp-ttl-en {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    text-align: center;
}
.comp-solution .comp-ttl {
    flex: 1;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    text-align: center;
}
.comp-solution .comp-txt-wrap p {
    line-height: 1.75;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-solution-list {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
        justify-content: center;
        margin: 0 -1rem -5rem;
    }
    .comp-solution {
        width: 33.333%;
        padding: 0 2rem;
        margin-bottom: 5rem;
        border-right: #C8C8C8 1px solid;
    }
    .comp-solution-list .comp-solution:nth-of-type(3n),
    .comp-solution-list .comp-solution:last-child {
        border: none;
    }
    .comp-solution .comp-inner {
        gap: 1.5rem;
    }
    .comp-solution .comp-txt-wrap {
        flex: 1;
    }
    .comp-solution .comp-inner::before {
        font-size: 3rem;
    }
    .comp-solution .comp-ttl-en {
        font-size: 0.888rem;
    }
    .comp-solution .comp-ttl {
        font-size: 1.111rem;
    }
    .comp-solution .comp-txt-wrap p {
        font-size: 0.888rem;
    }
    .comp-solution .comp-btn01 .comp-anchor {
        font-size: 0.777rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-solution-list {
        flex-direction: column;
        margin: 0 1.333vw;
    }
    .comp-solution {
        padding: 8vw 0;
        border-top: #C8C8C8 1px solid;
    }
    .comp-solution-list .comp-solution:first-child {
        padding-top: 0;
        border: none;
    }
    .comp-solution-list .comp-solution:last-child {
        padding-bottom: 0;
    }
    .comp-solution .comp-inner {
        gap: 5.333vw;
        padding: 0 2.666vw;
    }
    .comp-solution .comp-inner::before {
        font-size: 10.666vw;
    }
    .comp-solution .comp-ttl-en {
        font-size: 3.2vw;
    }
    .comp-solution .comp-ttl {
        font-size: 4.266vw;
    }
    .comp-solution .comp-txt-wrap p {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-strength
-------------------------------------------------- */
.comp-strength-list {
    counter-reset: list-counter;
    border-bottom: #000000 1px solid;
}
.comp-strength {
    counter-increment: list-counter;
    border-top: #000000 1px solid;
}
.comp-strength .comp-ttl-en {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    margin-bottom: 0.25em;
}
.comp-strength .comp-ttl {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
}
.comp-strength .comp-txt-wrap p {
    line-height: 1.75;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-strength {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        justify-content: space-between;
        padding: 2rem 0;
    }
    .comp-strength::before {
        content: counter(list-counter);
        color: #969696;
        display: block;
        width: 1.333em;
        font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
        font-optical-sizing: auto;
        font-weight: 300;
        font-style: normal;
        font-size: 3rem;
        line-height: 1;
        text-align: center;
    }
    .comp-strength .comp-inner {
        width: 79.311%;
    }
    .comp-strength .comp-ttl-wrap {
        margin-bottom: 1rem;
    }
    .comp-strength .comp-ttl-en {
        font-size: 0.888rem;
    }
    .comp-strength .comp-ttl {
        font-size: 1.222rem;
    }
    .comp-strength .comp-txt-wrap p {
        font-size: 0.888rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-strength {
        padding: 8vw 2.666vw;
    }
    .comp-strength .comp-inner {
        flex: 1;
    }
    .comp-strength .comp-ttl-wrap {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 4vw;
        margin-bottom: 5.333vw;
    }
    .comp-strength .comp-ttl-wrap::before {
        content: counter(list-counter);
        color: #969696;
        display: block;
        width: 1.333em;
        font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
        font-optical-sizing: auto;
        font-weight: 300;
        font-style: normal;
        font-size: 8vw;
        line-height: 1;
        text-align: center;
    }
    .comp-strength .comp-ttl-inner {
        flex: 1;
    }
    .comp-strength .comp-ttl-en {
        font-size: 3.2vw;
    }
    .comp-strength .comp-ttl {
        font-size: 4.266vw;
    }
    .comp-strength .comp-txt-wrap p {
        font-size: 3.2vw;
    }
}
/* --------------------------------------------------
comp-form
-------------------------------------------------- */
.comp-form {
    display: flex;
    flex-direction: column;
}
.comp-form .comp-form-dl {
    display: flex;
    flex-direction: column;
}
.comp-form-note {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    margin: 0.25em 0;
}
.comp-form-note a {
    text-decoration-line: underline;
}
.comp-form-note a:hover {
    text-decoration-line: none;
}
.comp-form-submit,
.comp-form-submit * {
    display: flex;
    justify-content: center;
    gap: 0.25em;
}
.comp-form input,
.comp-form textarea,
.comp-form select,
.comp-form button[type="submit"],
.comp-form input[type="submit"],
.comp-form input[type="button"],
.comp-form .comp-form-dd {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
}
.comp-form .comp-form-dd .confirm-wrap {
    background-color: rgba(255, 255, 255, 0.6);
    padding: 1em;
    line-height: 1.75;
}
.comp-form .comp-select-wrap {
    position: relative;
    width: 100%;
}
.comp-form .comp-select-wrap::after {
    position: absolute;
    top: 1px;
    right: 1px;
    content: '';
    display: block;
    width: 2.9em;
    height: 2.9em;
    background-color: #FFFFFF;
    background-image: url(/assets/img/icon_plus_black.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1em auto;
    pointer-events: none;
}
.comp-form select {
    width: 100%;
    padding: 0.75em;
    font-weight: 500;
    appearance: none;
    background-color: #FFFFFF;
    border: #000000 1px solid;
}
.comp-form input[type="text"],
.comp-form input[type="email"],
.comp-form input[type="tel"],
.comp-form textarea {
    width: 100%;
    padding: 0.75em;
    font-weight: 500;
    background-color: #FFFFFF;
    border: #000000 1px solid;
}
.comp-form textarea {
    min-height: 15em;
    font-weight: 500;
    resize: vertical;
}
.comp-form input[type="checkbox"] {
    width: 1.5em;
    height: 1.5em;
    background-color: #FFFFFF;
    border: #000000 3px solid;
    border-radius: 50%;
    margin-right: 0.5em;
    appearance: none;
    cursor: pointer;
}
.comp-form input[type="checkbox"]:checked {
    background-color: #5FFF86;
}
.comp-form button[type="submit"],
.comp-form input[type="submit"],
.comp-form input[type="button"] {
    display: inline-block;
    line-height: 1;
    padding: 0.9em 2em;
    border-radius: 3em;
    font-weight: 700;
}
.comp-form button[type="submit"],
.comp-form input[type="submit"] {
    color: #5FFF86;
    border: #000000 1px solid;
    background-color: #000000;
}
.comp-form button[type="submit"]:hover,
.comp-form input[type="submit"]:hover {
    color: #000000;
    background-color: #5FFF86;
}
.comp-form input[type="submit"]:disabled,
.comp-form input[type="submit"]:disabled:hover {
    background-color: #B5B5B5;
    border-color: #B5B5B5;
    color: #000000;
    cursor: not-allowed;
}
.comp-form input[type="button"] {
    color: #000000;
    border: #000000 1px solid;
}
.comp-form input[type="button"]:hover {
    background-color: #5FFF86;
}
.comp-form input:focus-visible,
.comp-form textarea:focus-visible,
.comp-form select:focus-visible,
.comp-form button[type="submit"]:focus-visible,
.comp-form input[type="submit"]:focus-visible {
    outline: 1px solid #5FFF86;
}
.comp-form ::placeholder {
    font-weight: 400;
    color: #969696;
    opacity: 0.7;
}
.comp-form input:focus::placeholder,
.comp-form textarea:focus::placeholder {
    opacity: 0.35;
}
.wpcf7-list-item {
    margin-left: 0 !important;
}
.wpcf7-not-valid-tip {
    font-size: 0.777rem !important;
    font-weight: 500 !important;
    margin-top: 0.5em !important;
}
.wpcf7-spinner {
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
}
.wpcf7-response-output {
    padding: 1em !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border: none !important;
    background-color: #5FFF86 !important;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-form {
        gap: 1.5rem;
        padding-top: 1.5rem;
    }
    .comp-form .comp-form-dl {
        gap: 0.5rem;
    }
    .comp-form label {
        font-size: 0.888rem;
    }
    .comp-form .hissu {
        font-size: 0.8em;
    }
    .comp-form button[type="submit"] {
        font-size: 0.888rem;
        margin-top: 1rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-form {
        gap: 5.333vw;
        padding-top: 4vw;
    }
    .comp-form .comp-form-dl {
        gap: 2.666vw;
    }
    .comp-form label {
        font-size: 3.2vw;
    }
    .comp-form button[type="submit"] {
        font-size: 3.466vw;
        margin-top: 4vw;
    }
}
/* --------------------------------------------------
comp-logo
-------------------------------------------------- */
.comp-logo-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
}
.comp-logo .comp-img-wrap img {
    object-fit: contain;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-logo-list {
        margin: -1rem !important;
    }
    .comp-logo {
        width: 16.666%;
        padding: 1rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-logo-list {
        margin: -2vw !important;
    }
    .comp-logo {
        width: 33.333%;
        padding: 2vw;
    }
}
/* --------------------------------------------------
comp-guide
-------------------------------------------------- */
.comp-guide .comp-guide-cont {
    display: flex;
    flex-direction: column;
}
.comp-guide .comp-txt-wrap p {
    line-height: 1.75;
    text-align: center;
    margin-top: 1em;
}
.comp-guide .comp-txt-wrap p:first-child {
    margin-top: 0;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-guide {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        justify-content: center;
    }
    .comp-guide .comp-guide-cont {
        width: 50%;
        gap: 2rem;
        padding: 0 2rem;
    }
    .comp-guide .comp-guide-cont:nth-of-type(even) {
        border-left: #C8C8C8 1px solid;
    }
    .comp-guide .comp-txt-wrap {
        display: flex;
        flex-direction: column;
        justify-content: center;
        flex: 1;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-guide .comp-guide-cont {
        gap: 5.333vw;
        padding: 0 4vw;
        margin-top: 12vw;
    }
    .comp-guide .comp-guide-cont:first-child {
        margin-top: 0;
    }
}
/* --------------------------------------------------
comp-gallery
-------------------------------------------------- */
.comp-gallery-slide:not(.swiper-wrapper) {
    display: flex;
}
.comp-gallery .comp-txt p {
    margin-top: 0.5em;
    line-height: 1.75;
}
.comp-gallery .comp-txt p:first-child {
    margin-top: 0;
}
.comp-gallery .comp-ttl {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    margin-bottom: 0.5em;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-gallery-slide {
        margin-top: -1.5rem !important;
        margin-bottom: -1.5rem;
    }
    .comp-gallery {
        width: 100%;
        padding: 1.5rem 1rem;
    }
    .comp-gallery .comp-txt-wrap {
        margin-top: 1.5rem;
    }
    .comp-gallery .comp-ttl {
        font-size: 1.111rem;
    }
    .comp-gallery .comp-txt p {
        font-size: 0.888rem;
    }
    .comp-gallery-slide:not(.swiper-wrapper) {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        margin-left: -1rem;
        margin-right: -1rem;
    }
    .comp-gallery-slide:not(.swiper-wrapper) .comp-gallery {
        flex: 1;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-gallery {
    }
    .comp-gallery .comp-txt-wrap {
        margin-top: 5.333vw;
    }
    .comp-gallery .comp-ttl {
        font-size: 4vw;
    }
    .comp-gallery .comp-txt-wrap {
        padding: 0 8vw;
    }
    .comp-gallery .comp-txt p {
        font-size: 3.2vw;
    }
    .comp-gallery-slide:not(.swiper-wrapper) {
        flex-direction: column;
        gap: 10.666vw;
    }
    .comp-gallery-slide:not(.swiper-wrapper) .comp-gallery .comp-txt-wrap {
        padding: 0 2.666vw;
    }
}
/* --------------------------------------------------
comp-home-mv
-------------------------------------------------- */
.comp-home-mv .comp-img-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    aspect-ratio: unset;
}
.comp-home-mv .comp-caption {
    position: absolute;
    top: 50%;
    width: 60vh;
    width: 60svh;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 10px;
    text-align: center;
    line-height: 1;
    transform: translateY(-50%) rotate(90deg);
    z-index: 1;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-home-mv .comp-caption {
        right: calc(-30vh + 1.5rem + 0.5em);
        right: calc(-30svh + 1.5rem + 0.5em);
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-home-mv .comp-caption {
        right: calc(-30vh + 4vw + 0.5em);
        right: calc(-30svh + 4vw + 0.5em);
    }
}
/* --------------------------------------------------
comp-detail-mv
-------------------------------------------------- */
.comp-detail-mv .comp-img-wrap {
    aspect-ratio: unset;
}
.comp-detail-mv .comp-img-wrap img {
    width: 100%;
    height: auto;
    aspect-ratio: 91/55;
    overflow: hidden;
}
.comp-detail-mv .comp-caption {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 10px;
    text-align: right;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-detail-mv-slide:not(.swiper-wrapper) {
        padding: 0 0.75rem;
    }
    .comp-detail-mv {
        padding: 0 0.75rem;
    }
    .comp-detail-mv .comp-caption {
        margin-top: 1em;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-detail-mv .comp-caption {
        padding: 0 2.666vw;
        margin-top: 0.75em;
    }
}
/* --------------------------------------------------
comp-search
-------------------------------------------------- */
.comp-search-wrap {
    border-bottom: #000000 1px solid;
}
.comp-search {
    border-top: #000000 1px solid;
}
.comp-search-dt {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    line-height: 1.75;
    cursor: pointer;
}
.comp-search-dt span {
    flex: 1;
}
.comp-search-dt::after {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    background-image: url(/assets/img/icon_minus_black.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.comp-search.is-close .comp-search-dt::after {
    background-image: url(/assets/img/icon_plus_black.svg);
}
.comp-search-dd {
    height: auto;
    overflow: hidden;
    transition: height 0.3s ease-in-out;
}
.comp-search.is-close .comp-search-dd {
    height: 0;
}
.comp-search-dd .comp-inner {
    display: flex;
}
.comp-search .comp-txt-wrap {
    line-height: 1.75;
}
.comp-search .comp-btn-list {
    justify-content: flex-start;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .comp-search-dt {
        padding: 2rem 0;
    }
    .comp-search-dt span {
        padding-right: 2rem;
    }
    .comp-search-dt::after {
        margin-right: 0.5em;
    }
    .comp-search-dd .comp-inner {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-between;
    }
    .comp-search .comp-txt-wrap {
        flex: 1;
        font-size: 0.888rem;
        padding-right: 2rem;
        margin-bottom: 2rem;
    }
    .comp-search .comp-img-wrap {
        width: 27.586%;
        margin-bottom: 2rem;
    }
    .comp-search .comp-btn-list {
        margin-top: 1rem;
    }
    .comp-search .comp-btn01 .comp-anchor {
        font-size: 0.777rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .comp-search-dt {
        font-size: 3.466vw;
        padding: 5.333vw 2.666vw;
    }
    .comp-search-dt span {
        padding-right: 4vw;
    }
    .comp-search-dd .comp-inner {
        flex-direction: column;
        padding: 0 2.666vw;
    }
    .comp-search .comp-txt-wrap {
        font-size: 3.2vw;
        margin-bottom: 5.333vw;
    }
    .comp-search .comp-img-wrap {
        margin-bottom: 5.333vw;
    }
    .comp-search .comp-btn-list {
        margin-top: 4vw;
        margin-bottom: 2.666vw;
    }
}

/* ==================================================
header
================================================== */
#header.is-mv-inview #site-ttl {
    opacity: 0;
}
#header #site-ttl {
    opacity: 1;
    transition: opacity 0.15s ease-out;
}
#site-ttl a {
    display: block;
    background-image: url(/assets/img/logo_de-silo_black.svg);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
    text-indent: -9999%;
    overflow: hidden;
}
#g-nav .g-nav-list {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
}
#g-nav .g-nav-list a:hover {
    color: #5FFF86;
}
#header.is-light {
    color: #000000;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 99;
    }
    #header .header-inner {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 0.75rem 1rem 1.5rem;
    }
    #site-ttl a {
        width: 7.5rem;
        height: 2rem;
    }
    #g-nav-btn {
        display: none;
    }
    #g-nav .g-nav-list {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: baseline;
        justify-content: flex-end;
        font-size: 0.888rem;
    }
    #g-nav .g-nav-list a {
        padding: 0.75rem;
    }
    #header.is-dark {
        color: #FFFFFF;
    }
    #g-nav .nav-uu {
        margin-left: 0.25em;
        padding-left: 0.25em;
        border-left: 1px solid #C8C8C8;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #site-ttl {
        position: fixed;
        top: 0;
        left: 0;
        width: 50%;
        height: 16vw;
        padding: 4vw;
        z-index: 999;
    }
    #site-ttl a {
        display: block;
        width: 100%;
        height: 100%;
    }
    #g-nav-btn {
        position: fixed;
        top: 0;
        right: 0;
        width: 13.333vw;
        height: 16vw;
        text-indent: -9999%;
        background-image: url(/assets/img/icon_menu_black.svg);
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 5.333vw auto;
        overflow: hidden;
        z-index: 999;
    }
    #header.is-dark #g-nav-btn {
        background-image: url(/assets/img/icon_menu_white.svg);
    }
    #header.is-nav-open #g-nav-btn,
    #header.is-nav-open.is-dark #g-nav-btn {
        background-image: url(/assets/img/icon_close_black.svg);
    }
    #g-nav {
        position: fixed;
        inset: 0;
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        padding: 24vw 0;
        background-color: #EAE7E0;
        overflow-y: auto;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.15s ease-out, visibility 0.15s ease-out;
        z-index: 99;
    }
    #header.is-nav-open #g-nav {
        opacity: 1;
        visibility: visible;
    }
    #g-nav .g-nav-list {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: 5.333vw;
    }
    #g-nav .g-nav-list li {
        text-align: center;
    }
    #g-nav .g-nav-list a {
        display: block;
        line-height: 1.5;
        padding: 2vw;
    }
    #g-nav .nav-uu {
        margin-top: 4vw;
    }
}

/* ==================================================
footer
================================================== */
#footer {
    background-color: #FFFFFF;
}
#footer .footer-main {
    display: flex;
    flex-direction: column;
}
#footer-newsletter {
    display: flex;
    flex-direction: column;
}
#footer .footer-bottom .copy {
    text-align: center;
}
#footer-nav .footer-nav-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    margin-top: 0.5em;
}
#footer-nav .footer-nav-list li a {
    display: block;
    line-height: 1;
    padding: 0 0.5em;
    border-left: #000000 1px solid;
}
#footer-nav .footer-nav-list li:first-child a {
    border: none;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #footer {
        padding: 5rem 0 2.5rem;
        margin-top: 5rem;
    }
    #footer .footer-main {
        gap: 5rem;
    }
    #footer .footer-bottom {
        margin-top: 5rem;
    }
    #footer-newsletter {
        gap: 2.5rem;
    }
    #footer .footer-bottom .copy-wrap {
        font-size: 11px;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #footer {
        padding: 16vw 0 8vw;
        margin-top: 16vw;
    }
    #footer .footer-main {
        gap: 16vw;
    }
    #footer .footer-bottom {
        margin-top: 16vw;
    }
    #footer-newsletter {
        gap: 5.333vw;
    }
    #footer .footer-bottom .copy-wrap {
        font-size: 10px;
    }
}

/* ==================================================
home
================================================== */
/* --------------------------------------------------
home-mv
-------------------------------------------------- */
#home-mv {
    width: 100%;
    height: 100vh;
    height: 100svh;
}
#home-mv .home-mv-inner {
    position: relative;
    width: 100%;
    height: 100%;
}
#home-mv .home-mv-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
    -ms-transform: translateY(-50%) translateX(-50%);
    transform: translateY(-50%) translateX(-50%);
    display: block;
    background-image: url(/assets/img/logo_de-silo_black.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    text-indent: -9999%;
    overflow: hidden;
    z-index: 3;
    pointer-events: none;
}
#home-mv.is-dark .home-mv-logo {
    background-image: url(/assets/img/logo_de-silo_white.svg);
}
#home-mv .comp-home-mv .comp-caption {
    transition: color 0.3s ease-out;
}
#home-mv.is-dark .comp-home-mv .comp-caption {
    color: #FFFFFF;
}
#home-mv .home-mv-slide {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
    -ms-transform: translateY(-50%) translateX(-50%);
    transform: translateY(-50%) translateX(-50%);
    width: 100%;
    height: 100%;
    z-index: 1;
}
#home-mv-dim {
    position: absolute;
    inset: 0;
    background: #000000;
    opacity: 0;
    z-index: 1;
    pointer-events: none;
    transition: opacity 0.15s ease-out;
}
#home-mv-dim.is-on {
    opacity: 1;
    transition: none;
}
#home-mv .home-newsticker {
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%;
    z-index: 2;
}
#home-mv .home-newsticker-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    background-color: #FFFFFF;
    border-radius: 3em;
}
#home-mv .home-newsticker-inner::before {
    font-family: 'Unbounded', 'Zen Kaku Gothic New', sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    display: inline-block;
    line-height: 1;
    border-radius: 3em;
    background-color: #5FFF86;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #home-mv .home-mv-logo {
        width: 45vw;
        height: 33vh;
    }
    #home-mv .home-newsticker {
        padding: 1.5rem;
    }
    #home-mv .home-newsticker-inner {
        gap: 0.75rem;
        padding: 0.5em 1.5em 0.5em 0.5em;
    }
    #home-mv .home-newsticker-inner::before {
        content: 'Newsletter';
        font-size: 0.777rem;
        padding: 1em 1.5em 0.9em;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #home-mv .home-mv-logo {
        width: 75vw;
        height: 33vh;
    }
    #home-mv .home-newsticker {
        padding: 2.666vw 4vw;
    }
    #home-mv .home-newsticker-inner {
        gap: 0.5em;
        padding: 0.5em 1em 0.5em 0.5em;
    }
    #home-mv .home-newsticker-inner::before {
        content: 'News';
        font-size: 10px;
        padding: 1em 1em 0.9em;
    }
}
/* --------------------------------------------------
home-overview
-------------------------------------------------- */
#home-overview .overview-txt-wrap p {
    text-align: center;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #home-overview .overview-txt-wrap h3 {
        font-size: 2rem;
    }
}

/* ==================================================
list
================================================== */
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #list .cont-body {
        gap: 3rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #list .cont-body {
        gap: 10.666vw;
    }
}

/* ==================================================
detail
================================================== */
/* --------------------------------------------------
detail-article
-------------------------------------------------- */
#detail-article .article-header * {
    text-align: center;
    justify-content: center;
}
#detail-article .article-header .comp-tag-list {
    margin-bottom: 1em;
}
#detail-article .article-header .article-ttl-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
}
#detail-article .article-header .article-ttl {
    line-height: 1.4;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #detail-mv {
        margin-top: -3.5rem; /* page-section */
        margin-bottom: 3rem;
    }
    #detail-article .cont-body {
        gap: 3rem;
    }
    #detail-article .article-header {
        margin-bottom: 1.5rem;
    }
    #detail-article .article-header .article-ttl {
        font-size: 2rem;
    }
    #detail-article .article-header .article-sub-ttl {
        font-size: 1.222rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #detail-mv {
        margin-top: -16vw; /* page-section */
    }
    #detail-article .cont-body {
        gap: 10.666vw;
    }
    #detail-article .article-header .article-ttl {
        font-size: 5.866vw;
    }
    #detail-article .article-header .article-sub-ttl {
        font-size: 4vw;
    }
}

/* ==================================================
edit-cont-wrap
================================================== */
.edit-cont-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.5em;
}
.edit-cont-wrap a {
    text-decoration-line: underline;
}
.edit-cont-wrap a.comp-anchor,
.edit-cont-wrap a:hover {
    text-decoration-line: none;
}
.edit-cont-wrap h1,
.edit-cont-wrap h2 {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 1.35em;
    text-align: center;
    width: 80%;
    margin: 1.25em auto 0;
}
.edit-cont-wrap h3 {
    font-size: 1.25em;
    margin-top: 1em;
}
.edit-cont-wrap h1 + h3,
.edit-cont-wrap h2 + h3 {
    margin-top: 0;
}
.edit-cont-wrap h4,
.edit-cont-wrap h5,
.edit-cont-wrap h6 {
    font-size: 1.111em;
}
.edit-cont-wrap ul {
    list-style: disc;
    margin-left: 1.5em;
}
.edit-cont-wrap ol {
    list-style: decimal;
    margin-left: 1.5em;
}
.edit-cont-wrap ul li::marker {
    color: #5FFF86;
}
.edit-cont-wrap ul li,
.edit-cont-wrap ol li {
    margin-top: 0.5em;
}
.edit-cont-wrap blockquote {
    display: flex;
    flex-direction: column;
    gap: 1em;
    font-size: 0.9em;
    border-left: #5FFF86 1px solid;
    padding: 0.5em 0 0.5em 2em;
}
.edit-cont-wrap blockquote p {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.75;
}
.edit-cont-wrap blockquote cite {
    font-size: 11px;
    font-style: normal;
    color: #969696;
}
.edit-cont-wrap small {
    display: block;
}
.edit-cont-wrap .edit-caption,
.edit-cont-wrap small {
    font-size: clamp(10px, 0.666em, 0.666em);
    line-height: 1.75;
}
.edit-cont-wrap .edit-caption {
    display: flex;
    flex-direction: column;
    gap: 1.5em;
}
.edit-cont-wrap hr {
    margin: 1.5em 0;
    color: #C8C8C8;
}
.edit-cont-wrap img {
    width: 100%;
    height: auto;
}
.edit-cont-wrap iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    overflow: hidden;
}
.edit-cont-wrap figcaption {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 10px;
    text-align: right;
}
.edit-cont-wrap .edit-img,
.edit-cont-wrap .edit-img-slide,
.edit-cont-wrap .edit-embed {
    margin-top: 2em;
    margin-bottom: 2em;
}
.edit-cont-wrap h1 + .edit-img,
.edit-cont-wrap h2 + .edit-img,
.edit-cont-wrap h1 + .edit-img-slide,
.edit-cont-wrap h2 + .edit-img-slide,
.edit-cont-wrap h1 + .edit-embed,
.edit-cont-wrap h2 + .edit-embed,
.edit-cont-wrap .edit-img-slide + .edit-img-slide,
.edit-cont-wrap .edit-embed + .edit-embed {
    margin-top: 0;
}
.edit-cont-wrap .edit-img + .edit-img {
    margin-top: -1em;
}
.edit-cont-wrap .edit-img-s {
    margin-left: auto;
    margin-right: auto;
}
.edit-cont-wrap ul.edit-img-2column {
    display: flex;
    list-style: none;
}
.edit-cont-wrap ul.edit-img-2column li {
    flex: 1;
    margin: 0;
}
.edit-cont-wrap .edit-img-slide img {
    width: 100%;
    height: auto;
    aspect-ratio: 3/2;
    object-fit: contain;
    overflow: hidden;
}
.edit-cont-wrap .edit-img-slide .swiper-wrapper,
.edit-cont-wrap .edit-img-slide .swiper-slide {
    width: 100%;
    margin: 0;
}
.edit-cont-wrap .edit-img-slide .swiper-pagination {
    margin-top: 1em;
}
.edit-cont-wrap .edit-hbox {
    display: flex;
    flex-direction: column;
    gap: 1.5em;
    font-size: 0.9em;
    background-color: #EAE7E0;
}
.edit-cont-wrap .edit-hbox p {
    line-height: 1.75;
}
.edit-cont-wrap .edit-hbox ul li,
.edit-cont-wrap .edit-hbox ol li {
    line-height: 1.5;
}
.edit-cont-wrap .edit-hbox ul li::marker {
    color: #FFFFFF;
}
.edit-cont-wrap .edit-linkbtn {
    width: 100%;
    padding: 0;
    margin-top: 1em;
    margin-bottom: 1em;
}
.edit-cont-wrap .edit-linkbtn p {
    line-height: 1.5;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    .edit-cont-wrap {
        font-size: 1.111rem;
    }
    .edit-cont-wrap p {
        line-height: 2;
    }
    .edit-cont-wrap ul li,
    .edit-cont-wrap ol li {
        line-height: 1.75;
    }
    .edit-cont-wrap figcaption {
        margin-top: 1em;
    }
    .edit-cont-wrap .edit-img-l,
    .edit-cont-wrap .edit-embed,
    .edit-cont-wrap .edit-img-slide {
        margin-left: -6rem;
        margin-right: -6rem;
    }
    .edit-cont-wrap .edit-img-s {
        width: 50%;
    }
    .edit-cont-wrap ul.edit-img-2column {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        justify-content: space-between;
        margin-left: -6rem;
        margin-right: -6rem;
        gap: 2rem;
    }
    .edit-cont-wrap .edit-linkbtn + .edit-linkbtn {
        margin-top: -1em;
    }
    .edit-cont-wrap .edit-hbox {
        padding: 2em 2.5em;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    .edit-cont-wrap {
        font-size: 4vw;
    }
    .edit-cont-wrap p {
        line-height: 1.9;
    }
    .edit-cont-wrap figcaption {
        margin-top: 0.75em;
    }
    .edit-cont-wrap .edit-img-l,
    .edit-cont-wrap .edit-img-slide {
        margin-left: -8vw;
        margin-right: -8vw;
    }
    .edit-cont-wrap .edit-img-m,
    .edit-cont-wrap .edit-embed {
        margin-left: -2.666vw;
        margin-right: -2.666vw;
    }
    .edit-cont-wrap .edit-img-l figcaption,
    .edit-cont-wrap .edit-embed figcaption,
    .edit-cont-wrap .edit-img-slide figcaption {
        padding: 0 2.666vw;
    }
    .edit-cont-wrap .edit-img-s {
        width: 80%;
    }
    .edit-cont-wrap ul.edit-img-2column {
        flex-direction: column;
        margin-left: -2.666vw;
        margin-right: -2.666vw;
        gap: 2em;
    }
    .edit-cont-wrap .edit-linkbtn + .edit-linkbtn {
        margin-top: -1.5em;
    }
    .edit-cont-wrap .edit-hbox {
        margin-left: -2.666vw;
        margin-right: -2.666vw;
        padding: 8vw 5.333vw;
    }
}

/* ==================================================
modal
================================================== */
#modal-cont {
    position: fixed;
    inset: 0;
    z-index: 999;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    overflow-y: auto;
}
#modal-cont.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: all 0.3s ease-out;
}
#modal-cont.is-center {
    display: flex;
    align-items: center;
    justify-content: center;
}
#modal-cont .modal-bg {
    position: fixed;
    inset: 0;
    min-height: 100vh;
    background-color: rgba(234, 231, 224, 0.80);
    z-index: 1;
}
#modal-cont .modal-panel {
    position: relative;
    z-index: 2;
}
#modal-cont .modal-close-btn {
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    text-indent: -9999%;
    background-image: url(/assets/img/icon_close_black.svg);
    background-repeat: no-repeat;
    background-position: center;
    overflow: hidden;
    z-index: 3;
}
#modal-error {
    text-align: center;
    color: #B5B5B5;
    background-color: #FFFFFF;
}
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #modal-cont .w02 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
    #modal-cont .modal-close-btn {
        width: 4rem;
        height: 4rem;
        background-size: 1.25rem auto;
    }
    #modal-cont .modal-close-btn:hover {
        background-image: url(/assets/img/icon_close_green.svg);
    }
    #modal-error {
        padding: 5rem 2rem;
    }
}
/* SP */
@media screen and (max-width: 767px) {
    #modal-cont .w02 {
        padding-top: 8vw;
        padding-bottom: 8vw;
    }
    #modal-cont .modal-close-btn {
        width: 13.333vw;
        height: 13.333vw;
        background-size: 5.333vw auto;
    }
    #modal-error {
        padding: 16vw 8vw;
    }
}

/* ==================================================
solutions-detail
================================================== */
/* PC, Tablet */
@media screen and (min-width: 768px) , print {
    #solutions-mv {
        margin-bottom: 1.5rem;
    }
}

/* ==================================================
privacy
================================================== */
#privacy .edit-cont-wrap {
    font-size: 1rem;
}