@charset "UTF-8";
.bg-through {
   position: relative;
   display: inline-block;
   overflow: hidden;
   z-index: 1;
   color: #fff; 
   border-radius: 200px;
}
.bg-through::before {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #fff;
   position: absolute;
   left: -100%;
   top: 0;
   transition: .8s;
   z-index: 2;
}
.bg-through span {
   position: relative;
   z-index: 3;
   mix-blend-mode: difference;
}
.bg-through:hover::before {
   left: 100%;
}
   
.sliderArea {
   position: relative;
   overflow: hidden;
}
.sliderArea::before {
   content: "";
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(#d75b43 0%, #f46161 100%);
   z-index: 2;
   pointer-events: none;
}
.sliderArea.slick-animating::before {
   animation: slideOverlay 1s forwards;
}

@keyframes slideOverlay {
   0% { left: -100%; }
   50% { left: 0; }
   100% { left: 100%; }
}


/* ========================================
   @media screen and (min-width: 768px),print
======================================== */
@media screen and (min-width: 768px),print {  
.util-btn {
   width: min(95%, 340px);
   margin-inline: auto;
   background: #1a1a1a;
   border-radius: 200px;
}
.util-btn a {
   font-weight: bold;
   font-size: 14px;
   letter-spacing: 0.1em;
   line-height: 2.142857;
   color: #fff;
   padding: 15px 29px;
   position: relative;
   display: block;
}
.util-btn a::after {
   content: "";
   position: absolute;
   right: 20px;
   top: 50%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow-w.svg)no-repeat;
   background-size: contain;
   width: 12px;
   height: 10px;
}
.util-btn a:hover::after {
   right: 15px;
   transition: all 0.3s ease;
}

/* mv -------------------------------------*/
#mv {
   position: relative;
   max-width: 1920px;
   width: 100%;
   margin-inline: auto;
}
#mv::before {
   position: absolute;
   content: "";
   background: url(../images/index/top-bg-deco02.png)no-repeat;
   background-size: contain;
   width: 63.3854%;
   height: 1196px;
   top: 85px;
   left: 50.4%;
   transform: translateX(-50%);
   z-index: 2;
}
#mv h1 {
   font-weight: 900;
   font-size: 90px;
   letter-spacing: 0.04em;
   line-height: 1.62222;
   position: absolute;
   z-index: 5;
   left: 60px;
   top: -7px;
}
#mv h1 span{
   font-weight: bold;
   font-size: 50px;
   letter-spacing: 0.1em;
   line-height: 1.94;
   color: #fff;
   background: #1A1A1A;
   padding: 14px 0px 14px 20px;
   position: relative;
   top: -35px;
}
#mv .inner {
   display: grid;
   grid-template-columns: 1fr 1510px;
   padding: 60px 0 0;
   margin-left: 60px;
   position: relative;
}
#mv .sliderArea {
   position: relative;
   z-index: 2;
}
#mv .nav-box {
   position: relative;
   z-index: 2;
}
.slick-slide img {
   height: auto;
   width: 100%;
 }

/* top-bg -------------------------------------*/
.top-bg {
   position: relative;
   max-width: 1920px;
   width: 100%;
   margin-inline: auto;
}
.top-bg::before {
   content: "";
   position: absolute;
   top: 425px;
   right: 0;
   width: 96.875%;
   height: 88.5%;
   background: linear-gradient(#d75b43 0%, #f46161 100%);
   z-index: 1;
   pointer-events: none;
}
.top-bg::after {
   content: "";
   position: absolute;
   top: 425px;
   left: 50%;
   transform: translateX(-50%);
   width: 93.75%;
   height: 100%;
   background: url(../images/index/top-bg-deco.png)no-repeat;
   background-size: contain;
   z-index: 1;
   pointer-events: none;
}

/* menu -------------------------------------*/
#menu {
   position: relative;
   z-index: 2;
}
#menu .inner {
   width: min(95%, 1500px);
   margin-inline: auto;
   padding: 427px 0 160px;
 }
 #menu h2 {
   text-align: center;
   margin-bottom: 77px;
   margin-right: 32px;
 }
 #menu .lead {
   font-size: 20px;
   line-height: 2.15;
   letter-spacing: 0.12em;
   font-weight: 700;
   text-align: center;
   color: #FFFFFF;
   margin-bottom: 72px;
 }
 #menu .menu-list {
   display: grid;
   gap: 40px;
 }
 #menu .menu-list li {
   background: #FFFFFF;
   padding: 40px 60px 40px 80px;
   display: grid;
   grid-template-columns: 28.31% 1fr;
   gap: 40px;
   position: relative;
 }
 #menu .menu-list li:nth-child(3) {
   padding: 40px 60px 30px 80px;
 }
 #menu .menu-list li::before {
   position: absolute;
   content: "";
   background: url(../images/index/menu-list-deco.png)no-repeat;
   background-size: contain;
   width: 20px;
   height: 140px;
   top: 50%;
   left: 0;
   transform: translateY(-50%);
 }
 #menu .menu-list li .btn-list {
   display: grid;
   gap: 14px;
   position: absolute;
   bottom: 19px;
   width: min(95%, 240px);
 }
 #menu .menu-list li .btn {
   width: min(95%, 240px);
   max-width: 240px;
   position: absolute;
   bottom: 19px;
 }
 #menu .menu-list li:nth-child(3) .btn  {
   bottom: 29px;
}
 #menu .menu-list li:nth-child(4) .btn {
   width: min(95%, 300px);
   max-width: 300px;
 }

 #menu .menu-list li .btn-list p a,
 #menu .menu-list li .btn a {
   font-weight: bold;
   font-size: 14px;
   letter-spacing: 0.1em;
   line-height: 2.142857;
   border-bottom: 1px solid #1A1A1A;
   display: block;
   position: relative;
   padding: 0 0 5px;
   transition: 0.5s;
 }
 #menu .menu-list li .btn-list p a::after,
 #menu .menu-list li .btn a::after {
   content: "";
   position: absolute;
   right: 0;
   top: 43%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow.svg)no-repeat;
   background-size: contain;
   width: 12px;
   height: 10px;
   transition: all 0.2s;
 }
 #menu .menu-list li .btn-list p a:hover::after,
 #menu .menu-list li .btn a:hover::after {
   right: -5px;
 }
 #menu .left {
   position: relative;
   padding: 24px 0 0;
 }
 #menu .left::after {
   content: "";
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   right: 0;
   width: 1px;
   height: 220px;
   background: #D75B43;
 }
 #menu .menu-list li h3 {
   font-size: 50px;
   line-height: 1.28;
   letter-spacing: 0.1em;
   font-weight: 900;
 }
 #menu .menu-list li:nth-child(3) h3 {
   margin: 0 0 53px;
 }
 #menu .right {
   display: grid;
   grid-template-columns: 61.5% 1fr;
 }
 #menu .right .txt-box {
   padding: 47px 0 0;
}
 #menu .right h4 {
   font-size: 18px;
   line-height: 1.7777777778;
   letter-spacing: 0.05em;
   font-weight: 700;
   color: #E2312B;
   margin-bottom: 12px;
 }
 #menu .right .txt {
   font-size: 14px;
   line-height: 2.1428571429;
   letter-spacing: 0.1em;
   font-weight: 700;
 }

/* about -------------------------------------*/
#about {
   width: 96.875%;
   margin-right: auto;
   background: url(../images/index/about-bg.png)repeat-y;
   background-size: contain;
   position: relative;
   margin-top: -220px;
}
#about::before {
   content: "";
   position: absolute;
   background: url(../images/index/about-en.svg)no-repeat;
   background-size: contain;
   width: 1266px;
   height: 527px;
   top: 147px;
   right: -59px;
   z-index: 1;
}
#about .inner {
   padding: 531px 0 199px;
   width: min(95%,1618px);
   margin-inline: auto;
}
#about h2 {
   margin-bottom: 72px;
   margin-left: 2px;
}
#about .txt {
   font-weight: bold;
   font-size: 16px;
   letter-spacing: 0.1em;
   line-height: 2.25;
   text-align: left;
   color: #fff;
   margin-bottom: 75px;
}
#about .util-btn {
   margin-inline: 0;
}
#about .circle {
   position: absolute;
   bottom: -264px;
   right: -147px;
}
#about .circle .line {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   animation: rotateCenter 50s linear infinite;
   animation-play-state: running;
}
@keyframes rotateCenter {
   0% {
     transform: translate(-50%, -50%) rotate(0deg);
   }
   100% {
     transform: translate(-50%, -50%) rotate(360deg);
   }
}


/* strength -------------------------------------*/
#strength {
   background: #FFFFFF;
}
#strength .inner {
   width: min(100%, 1880px);
   margin-inline: auto;
   padding: 200px 0 195px;
}
#strength .inner .enttl {
   font-weight: 600;
   font-size: 35px;
   letter-spacing: 0.05em;
   line-height: 1.3142857;
   color: #d75b43;
   padding-left: 40px;
}
#strength .inner h2{
   font-weight: 900;
   font-size: 71px;
   letter-spacing: 0.1em;
   margin-bottom: 44px;
   padding-left: 40px;
   line-height: 1.35;
}
#strength .inner .list {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 10px;
}
#strength .inner .list li {
   position: relative;
}
#strength .inner .list li::after {
   content: "";
   position: absolute;
   bottom: 4px;
   right: 20px;
   width: 60px;
   height: 60px;
   background: url(../images/index/btn-arrow02.svg)no-repeat;
   background-size: contain;
   transition: 0.5s;
}
#strength .inner .list li .photo-wrap {
   position: relative;
   margin-bottom: 27px;
}
#strength .inner .list li .photo-wrap .photo {
   overflow: hidden;
}
#strength .inner .list li .photo-wrap .photo picture {
   display: block;
   transition: all .3s ease-in-out;
}
#strength .inner .list li .photo-wrap .photo img {
   width: 100%;
   vertical-align: middle;
}
#strength .inner .list li:hover .photo-wrap .photo picture {
   transform: scale(1.1);
}
#strength .inner .list li:hover::after {
   background: url(../images/index/btn-arrow02-b.svg)no-repeat;
   transition: all 0.3s ease;
   background-size: contain;
}
#strength .inner .list li .photo-wrap .icon {
   position: absolute;
   top: 185px;
   left: 50%;
   transform: translateX(-50%);
}
#strength .inner .list li .photo-wrap h3 {
   position: absolute;
   top: 295px;
   left: 50%;
   transform: translateX(-50%);
   font-weight: bold;
   font-size: 40px;
   letter-spacing: 0.1em;
   text-align: center;
   color: #fff;
   width: max-content;
}
#strength .inner .list li .txt {
   font-weight: 500;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   position: relative;
   width: min(95%,460px);
   margin-left: 40px;
}


/* voice -------------------------------------*/
#voice .inner {
   padding: 140px 0;
}
#voice .inner .enttl {
   font-weight: 600;
   font-size: 20px;
   letter-spacing: 0.05em;
   line-height: 26px;
   text-align: center;
   color: #d75b43;
   margin-bottom: 16px;
}
#voice .inner h2 {
   font-weight: 900;
   font-size: 40px;
   letter-spacing: 0.1em;
   text-align: center;
   margin-bottom: 58px;
}
#voice .system-list {
   width: min(95%, 1560px);
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 40px;
   margin-bottom: 60px;
}
#voice .system-list .system-pic {
   margin-bottom: 0;
   width: 100%;
   height: 260px;
   text-align: center;
}  
#voice .system-list .system-pic img{
   width: auto;
   height: 100%;
   max-width: 100%;
}
#voice .system-list li .content{
   background: #e3e3e3;
   padding: 8px 0 0;
}
#voice .system-list li .content .name-wrap {
   display: flex;
   gap: 9px;
   border-bottom: 1px solid #FFFFFF;
   padding: 0 20px 5px;
}
#voice .system-list li .content .name-wrap .system-area {
   font-weight: 500;
   font-size: 12px;
   letter-spacing: 0.05em;
   line-height: 2.16666;
   color: #d75b43;
}
#voice .system-list li .content .name-wrap .system-name {
   font-weight: 500;
   font-size: 12px;
   letter-spacing: 0.05em;
   line-height: 2.16666;
   color: #1a1a1a;
}
#voice .system-list li .content .system-ttl-01 {
   font-weight: bold;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 1.7142857;
   color: #1a1a1a;
   border-top: 1px solid #AAAAAA;
   padding: 15px 20px 20px;
}

#voice .system-category {margin: 4px 0 0px 0;text-align: left;}
#voice .system-category.no-category {margin-right: -1rem;}
#voice .system-category span {background: #D75B43;color: #fff;font-size: 12px;font-weight: 400;letter-spacing: 0.05em;line-height: 2;
padding: 0.2rem 0.25rem;margin: 0 10px 5px 0;width: -moz-fit-content;width: fit-content; display: inline-block;}
#voice .systemdetail .system-category{ text-align: center;}


/* faq -------------------------------------*/
#faq {
   background: url(../images/index/faq-bg.png)repeat center / auto;
}
#faq .inner {
   width: min(95%, 1280px);
   margin-inline: auto;
   padding: 119px 0 121px;
}
#faq .enttl {
   font-weight: 600;
   font-size: 20px;
   letter-spacing: 0.05em;
   line-height: 1.3;
   text-align: center;
   color: #d75b43;
   margin-bottom: 1px;
}
#faq h2 {
   font-weight: 900;
   font-size: 40px;
   letter-spacing: 0.1em;
   line-height: 2.3;
   text-align: center;
   margin-bottom: 45px;
}
#faq #faqcontents {
   display: grid;
   gap: 31px;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   margin-bottom: 80px;
}
#faq #faqcontents .option{
   border-radius: 9px;
   background: #fff;
   box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
   padding: 40px 40px 37px;
   cursor: pointer;
}
#faq #faqcontents .title{
   font-weight: bold;
   font-size: 24px;
   line-height: 1.4583;
   letter-spacing: 0.05em;
   display: grid;
   gap: 20px;
   align-items: center;
   padding: 0px 80px 0px 0px;
   grid-template-columns: 50px 1fr;
}
#faq #faqcontents .title span {
   font-weight: 500;
   font-size: 25px;
   text-align: center;
   color: #fff;
   background: #D75B43;
   display: grid;
   place-content: center;
   width: 50px;
   height: 50px;
   border-radius: 50%;
}
#faq #faqcontents .content {
   font-weight: 500;
   font-size: 16px;
   letter-spacing: 0.05em;
   line-height: 1.875;
   display: grid;
   grid-template-columns: 50px 1fr;
   gap: 20px;
   align-items: flex-start;
}
#faq #faqcontents .content span.f-mon{
   font-weight: 500;
   font-size: 25px;
   text-align: center;
   color: #d75b43;
   display: grid;
   place-content: center;
   width: 50px;
   height: 50px;
   background: #fff;   
   border-radius: 50%;
   border: 1px solid #d75b43;
}

#faq .toggle {display: none; }
#faq .title, #faq .content {-webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); transition: all 0.3s; }
#faq .title::after, #faq .title::before {content: "";position: absolute;right: 0.75em;top: 0.1em;width: 0.15em;height: 1.7em;background-color: #D75B43;transition: all 0.3s;cursor: pointer;}
#faq .title::after {transform: rotate(90deg); }
#faq .content {max-height: 0; overflow: hidden; }
#faq .toggle:checked + .title + .content {max-height: 2000px;transition: all 1.5s;padding: 26px 0 0;}
#faq .toggle:checked + .title::before {transform: rotate(90deg) !important; }



/* topic -------------------------------------*/
#topic .inner {
   width: min(95%, 1160px);
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 80px;
   padding: 140px 0 80px;
 }
 #topic .upper {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 40px;
 }
 #topic .ttl-box {
   display: flex;
   gap: 10px;
   align-items: baseline;
 }
 #topic .ttl-box .enttl {
   font-size: 40px;
   line-height: 1.225;
   letter-spacing: 0.05em;
   font-weight: 500;
   color: #D75B43;
 }
 #topic .ttl-box h2 {
   font-size: 14px;
   line-height: 1.4285714286;
   letter-spacing: 0.05em;
   font-weight: 700;
   margin: 0;
 }
 #topic .btn {
   width: min(95%, 140px);
   border-bottom: 1px solid #1A1A1A;
   position: relative;
   top: 4px;
 }
 #topic .btn a {
   font-size: 16px;
   line-height: 1.5;
   letter-spacing: 0.05em;
   font-weight: 500;
   padding-bottom: 16px;
   position: relative;
   display: block;
   transition: 0.5s;
 }
 #topic .btn a::after {
   content: ">";
   position: absolute;
   right: 0;
   top: 0;
   font-size: 16px;
   font-weight: 500;
   line-height: 1.5;
   letter-spacing: 0.05em;
   color: #1A1A1A;
   transition: all 0.2s;
 }
 #topic .btn a:hover::after {
   right: -5px;
 }
 #topic .content {
   overflow-y: scroll;
   max-height: 454px;
 }
 #topic .system-list {
   display: grid;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   width: min(95%,470px);
   gap: 0;
 }
 #topic .system-list li{
   border-top: 1px solid #BFBDBD;
 }
 #topic .system-list li:last-child{
   border-bottom: 1px solid #BFBDBD;
 }
 #topic .system-list li a {
   display: block;
   padding: 18px 20px 16px;
 }
 #topic .system-list li .system-date{
   font-weight: 500;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   color: #d75b43;
   margin-bottom: 8px;
 }
 #topic .system-list li .system-ttl-01{
   font-family: "Noto Sans JP";
   font-weight: bold;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   display: -webkit-box;
   -webkit-line-clamp: 2;     
   -webkit-box-orient: vertical;
   overflow: hidden;
 }

 /* スクロールバー全体 */
 #topic ::-webkit-scrollbar {
   width: 10px; 
 }
 /* スクロールバーのトラック部分（背景） */
 #topic ::-webkit-scrollbar-track {
   background: #BFBDBD; 
 }
 
 /* スクロールバーのつまみ部分（ドラッグできるとこ） */
 #topic ::-webkit-scrollbar-thumb {
   background: #707070; 
 }

 #topic .btn-list {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 40px;
   width: min(95%, 1160px);
   margin-inline: auto;
   padding-bottom: 140px;
 }
 #topic .btn-list li {
   background: #fff;
 }
 #topic .btn-list li a{
   font-weight: bold;
   font-size: 25px;
   letter-spacing: 0.05em;
   padding: 40px 40px 37px;
   position: relative;
   display: flex;
   gap: 14px;
   align-items: center;
   transition: 0.5s;
 }
 #topic .btn-list li a::after {
   content: "";
   position: absolute;
   right: 30px;
   top: 50%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow.svg)no-repeat;
   background-size: contain;
   width: 18px;
   height: 15px;
   transition: all 0.2s;
 }
 #topic .btn-list li a:hover::after {
   right: 25px;
 }

 /* seo-txt
 -------------------------------------*/
.seo-txt{
   background: #fff;
   padding: 78px 0 0;
   max-width: 1920px;
   width: 100%;
   margin-inline: auto;
}
.seo-txt p {
   font-weight: 500;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   color: #747474;
   width: min(95%, 1100px);
   margin-inline: auto;
}
}


@media screen and (min-width:768px) and (max-width:1919px) {
/* mv -------------------------------------*/
#mv::before {
   width: 63.3854%;
   height: 62.324vw;
   top: 4.429vw;
   left: 50.4%;
}
#mv h1 {
   font-size: 4.69vw;
   left: 3.127vw;
   top: -0.365vw;
}
#mv h1 span{
   font-size: 2.606vw;
   padding: 0.73vw 0px 0.73vw 1.042vw;
   top: -1.824vw;
}
#mv .inner {
   grid-template-columns: 1fr 78.687vw ;
   padding: 3.127vw 0 0;
   margin-left: 3.127vw;
}
#mv .inner::before {
   top: 22.147vw;
}


/* top-bg -------------------------------------*/
.top-bg::before {
   top: 22.147vw;
   right: 0;
   width: 96.875%;
   height: 88.5%;
}
.top-bg::after {
   top: 22.147vw;
   left: 50%;
   transform: translateX(-50%);
   width: 93.75%;
   height: 100%;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1700px)
======================================== */
@media screen and (min-width:768px) and (max-width:1700px) {
/* menu -------------------------------------*/
#menu .inner {
   width: 88.235vw;
   padding: 25.118vw 0;
 }
 #menu h2 {
   margin-bottom: 4.529vw;
   margin-right: 1.882vw;
 }
 #menu h2 img {
   width: 65.588vw;
 }
 #menu .lead {
   font-size: clamp(0.75rem, 0.338rem + 0.86vw, 1.25rem);
   margin-bottom: 4.235vw;
 }
 #menu .menu-list {
   gap: 2.353vw;
 }
 #menu .menu-list li {
   padding: 2.353vw 3.529vw 2.353vw 4.706vw;
   gap: 2.353vw;
 }
 #menu .menu-list li:nth-child(3) {
   padding: 2.353vw 3.529vw 1.765vw 4.706vw;
 }
 #menu .menu-list li::before {
   width: 1.176vw;
   height: 8.235vw;
   top: 50%;
   left: 0;
   transform: translateY(-50%);
 }
 #menu .menu-list li .btn-list {
   gap: 0.824vw;
   bottom: 1.118vw;
   width: 14.118vw;
 }
 #menu .menu-list li .btn {
   width: 14.118vw;
   font-size: clamp(0.625rem, 0.419rem + 0.43vw, 0.875rem);
   bottom: 1.118vw;
 }
 #menu .menu-list li:nth-child(3) .btn  {
   bottom: 1.706vw;
}
 #menu .menu-list li:nth-child(4) .btn {
   width: 17.647vw;
   max-width: 17.647vw;
 }
 #menu .menu-list li .btn-list p a,
 #menu .menu-list li .btn a {
   font-size: clamp(0.625rem, 0.419rem + 0.43vw, 0.875rem);
   padding: 0 0 0.294vw;
 }
 #menu .menu-list li .btn-list p a::after,
 #menu .menu-list li .btn a::after {
   width: 0.706vw;
   height: 0.588vw;
 }
 #menu .left {
   padding: 1.412vw 0 0;
 }
 #menu .left::after {
   width: 0.059vw;
   height: 12.941vw;
 }
 #menu .menu-list li h3 {
   font-size: 2.941vw;
 }
 #menu .right .txt-box {
   padding: 2.765vw 0 0;
}
 #menu .right h4 {
   font-size: clamp(0.875rem, 0.669rem + 0.43vw, 1.125rem);
   margin-bottom: 0.706vw;
 }
 #menu .right .txt {
   font-size: clamp(0.625rem, 0.419rem + 0.43vw, 0.875rem);
 }
 #menu .right .photo img {
   width: 100%;
   height: auto;
 }
}


/* ========================================
@media screen and (min-width:768px) and (max-width:1919px)
======================================== */
@media screen and (min-width:768px) and (max-width:1919px) {
/* about -------------------------------------*/
#about {
   margin-top: -11.464vw;
}
#about::before {
   width: 65.972vw;
   height: 27.462vw;
   top: 7.66vw;
   right: -3.075vw;
}
#about .inner {
   padding: 27.671vw 0 10.37vw;
   width: 84.315vw;
}
#about h2 {
   margin-bottom: 3.752vw;
   margin-left: 0.104vw;
}
#about h2 img {
   width: 71.965vw;
}
#about .txt {
   font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
   margin-bottom: 3.908vw;
}
#about .circle {
   bottom: -13.757vw;
   right: -7.66vw;
   width: 37.52vw;
}
#about .circle img {
   width: 100%;
   height: auto;
}
#about .circle .line {
   width: 40.698vw;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1900px)
======================================== */
@media screen and (min-width:768px) and (max-width:1900px) {
/* strength -------------------------------------*/
#strength .inner {
   width: 98.947vw;
   padding: 10.526vw 0;
}
#strength .inner .enttl {
   font-size: 1.842vw;
   padding-left: 2.105vw;
}
#strength .inner h2{
   font-size: 3.737vw;
   margin-bottom: 2.316vw;
   padding-left: 2.105vw;
}
#strength .inner .list {
   gap: 0.526vw;
}
#strength .inner .list li::after {
   bottom: 0.211vw;
   right: 1.053vw;
   width: 3.158vw;
   height: 3.158vw;
}
#strength .inner .list li .photo-wrap {
   margin-bottom: 1.421vw;
}
#strength .inner .list li .photo-wrap .icon {
   top: 9.737vw;
}
#strength .inner .list li .photo-wrap .icon img {
   width: 4.474vw;
}
#strength .inner .list li .photo-wrap h3 {
   top: 15.526vw;
   font-size: 2.105vw;
}
#strength .inner .list li .txt {
   font-size: clamp(0.688rem, 0.56rem + 0.27vw, 0.875rem);
   width: 25.7vw;
   margin-left: 2.105vw;
}


}

/* ========================================
@media screen and (min-width:768px) and (max-width:1640px)
======================================== */
@media screen and (min-width:768px) and (max-width:1640px) {
/* voice -------------------------------------*/
#voice .inner {
   padding: 8.537vw 0;
}
#voice .inner .enttl {
   font-size: 1.22vw;
   margin-bottom: 0.976vw;
}
#voice .inner h2 {
   font-size: 2.439vw;
   margin-bottom: 3.537vw;
}
#voice .system-list {
   width: 95.122vw;
   gap: 2.439vw;
   margin-bottom: 3.659vw;
}
#voice .system-list .system-pic img{
   /* height: 15.854vw; */
}
#voice .system-list li .content{
   padding: 0.488vw 0;
}
#voice .system-list li .content .name-wrap {
   gap: 0.549vw;
   padding: 0 1.22vw 0.305vw;
}
#voice .system-list li .content .name-wrap .system-area {
   font-size: clamp(0.625rem, 0.515rem + 0.23vw, 0.75rem);
}
#voice .system-list li .content .name-wrap .system-name {
   font-size: clamp(0.625rem, 0.515rem + 0.23vw, 0.75rem);
}
#voice .system-list li .content .system-ttl-01 {
   font-size: clamp(0.688rem, 0.632rem + 0.11vw, 0.75rem);
   padding: 0.915vw 1.22vw 0.22vw;
}


}

/* ========================================
@media screen and (min-width:768px) and (max-width:1100px)
======================================== */
@media screen and (min-width:768px) and (max-width:1100px) {
   #faq #faqcontents .title {
      padding-right: 6vw;
   }
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1200px)
======================================== */
@media screen and (min-width:768px) and (max-width:1200px) {
   #topic .ttl-box .enttl {font-size: clamp(1.375rem, -0.625rem + 4.17vw, 2.5rem);}
   #topic .ttl-box h2 {
      font-size: clamp(0.625rem, 0.181rem + 0.93vw, 0.875rem);
   }
   #topic .btn {
      width: 11.667vw;
   }
   #topic .btn a {
      font-size: clamp(0.75rem, 0.528rem + 0.46vw, 0.875rem);
   }
}


/* ========================================
   @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
.util-btn {
   width: 82.2vw;
   margin-inline: auto;
   background: #1a1a1a;
   border-radius: 8vw;
}
.util-btn a {
   font-weight: bold;
   font-size:3.382vw;
   letter-spacing: 0.1em;
   line-height: 2.142857;
   color: #fff;
   padding: 3.7vw 7vw;
   position: relative;
   display: block;
}
.util-btn a::after {
   content: "";
   position: absolute;
   right: 4.8vw;
   top: 50%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow-w.svg)no-repeat;
   background-size: contain;
   width: 2.9vw;
   height: 2.419vw;
}
.util-btn a:hover::after {
   right: 3.59vw;
   transition: all 0.3s ease;
}

/* mv -------------------------------------*/
#mv {
   position: relative;
}
#mv::before {
   position: absolute;
   content: "";
   background: url(../images/index/top-bg-deco02_sp.png)no-repeat;
   background-size: contain;
   width: 85.75vw;
   height: 81.16vw;
   top: 66vw;
   left: 50%;
   transform: translateX(-50%);
   z-index: 2;
}
#mv h1 {
   font-weight: 900;
   font-size:9.662vw;
   letter-spacing: 0.04em;
   line-height: 1.25;
   position: absolute;
   z-index: 5;
   left: 3vw;
   top: 4vw;
}
#mv h1 span{
   font-weight: bold;
   font-size:4.348vw;
   letter-spacing: 0.1em;
   line-height: 1.94;
   color: #fff;
   background: #1A1A1A;
   padding: 1.2vw 2vw 2vw 2vw;
   position: relative;
   top: 0vw;
}
#mv .inner {
   position: relative;
   width: 91.065vw;
   margin-left: auto;
   padding: 23vw 0 0;
}
#mv .sliderArea {
   position: relative;
   z-index: 2;
}
#mv .nav-box {
   position: relative;
   z-index: 2;
}
 .slick-slider .slick-track, .slick-slider .slick-list {
   margin: 0!important;
 }

/* top-bg -------------------------------------*/
.top-bg {
   position: relative;
}
.top-bg::before {
   content: "";
   position: absolute;
   top: 52vw;
   right: 0;
   width: 100%;
   height: 95.8%;
   background: linear-gradient(#d75b43 0%, #f46161 100%);
   z-index: 1;
   pointer-events: none;
}
.top-bg::after {
   content: "";
   position: absolute;
   top: 82vw;
   right: 0;
   width: 96.62vw;
   height: 160.63vw;
   background: url(../images/index/top-bg-deco_sp.png)no-repeat;
   background-size: contain;
   z-index: 1;
   pointer-events: none;
}

/* menu -------------------------------------*/
#menu {
   position: relative;
   z-index: 2;
}
#menu .inner {
   width: 89.375vw;
   margin-inline: auto;
   padding: 40.2vw 0 20vw;
 }
 #menu h2 {
   text-align: center;
   margin-bottom: 10.2vw;
   margin-right: 2vw;
 }
 #menu .lead {
   font-size:3.865vw;
   line-height: 2.375;
   letter-spacing: 0.12em;
   font-weight: 700;
   text-align: center;
   color: #FFFFFF;
   margin-bottom: 10.5vw;
 }
 #menu .menu-list {
   display: grid;
   gap: 12.6vw;
 }
 #menu .menu-list li {
   background: #FFFFFF;
   padding: 6vw 6.04vw 11.5vw;
   display: grid;
   position: relative;
 }
 #menu .menu-list li:nth-child(3) {
   position: relative;
 }
 #menu .menu-list li:nth-child(3)::after {
   position: absolute;
   content: "";
   background: url(../images/index/menu-photo03-deco_sp.png)no-repeat;
   background-size: contain;
   width: 24.76vw;
   height: 21.74vw;
   top: 46.4vw;
   right: 1.2vw;
   z-index: 2;
 }
 #menu .menu-list li::before {
   position: absolute;
   content: "";
   background: url(../images/index/menu-list-deco_sp.png)no-repeat;
   background-size: contain;
   width: 19.325vw;
   height: 1.45vw;
   top: 0;
   left: 6vw;
 }
 #menu .menu-list li .btn-list {
   display: grid;
   gap: 4vw;
   order: 5;
 }
 #menu .menu-list li .btn {
   order: 5;
 }

 #menu .menu-list li .btn-list p a,
 #menu .menu-list li .btn a {
   font-weight: bold;
   font-size:3.382vw;
   letter-spacing: 0.1em;
   line-height: 2.142857;
   border-bottom: 0.2vw solid #1A1A1A;
   display: block;
   position: relative;
   padding: 0 0 1vw;
   transition: 0.5s;
 }
 #menu .menu-list li .btn-list p a::after,
 #menu .menu-list li .btn a::after {
   content: "";
   position: absolute;
   right: 0;
   top: 43%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow.svg)no-repeat;
   background-size: contain;
   width: 2.9vw;
   height: 2.416vw;
   transition: all 0.2s;
 }
 #menu .menu-list li .btn-list p a:hover::after,
 #menu .menu-list li .btn a:hover::after {
   right: -1.21vw;
 }
 #menu .left {
   display: contents;
 }
 #menu .menu-list li h3 {
   font-size:7.246vw;
   line-height: 1.8333333;
   letter-spacing: 0.1em;
   font-weight: 900;
   order: 1;
   margin-bottom: 3.5vw;
 }
 #menu .right {
   display: contents;
}
 #menu .right .txt-box {
   display: contents;
}
 #menu .right h4 {
   font-size:3.865vw;
   line-height: 1.875;
   letter-spacing: 0.05em;
   font-weight: 700;
   color: #E2312B;
   margin-bottom: 2.5vw;
   order: 3;
 }
 #menu .right .txt {
   font-size:3.382vw;
   line-height: 1.8571428;
   letter-spacing: 0.1em;
   font-weight: 700;
   order: 4;
   margin-bottom: 5.2vw;
 }
 #menu .right .photo {
   order: 2;
   margin-bottom: 5vw;
 }

/* about -------------------------------------*/
#about {
   width: 94.205vw;
   margin-inline: auto;
   background: url(../images/index/about-bg.png)repeat-y;
   background-size: contain;
   position: relative;
   margin-top: -5vw;
   z-index: 2;
}
#about::before {
   content: "";
   position: absolute;
   background: url(../images/index/about-en_sp.svg)no-repeat;
   background-size: contain;
   width: 81.645vw;
   height: 34.544vw;
   top: -4.5vw;
   right: -2.2vw;
   z-index: 1;
}
#about .inner {
   padding: 32vw 4vw 29vw;
}
#about h2 {
   margin-bottom: 12vw;
   margin-left: 2vw;
}
#about .txt {
   font-weight: bold;
   font-size:3.382vw;
   letter-spacing: 0.06em;
   line-height: 2.57142857;
   text-align: left;
   color: #fff;
   margin: 0 2vw 8vw;
}
#about .util-btn {
   margin-inline: auto;
}
#about .circle {
   position: absolute;
   bottom: -47.5vw;
   left: 50%;
   transform: translateX(-50%);
   width: 72.465vw;
   text-align: center;
}
#about .circle img {
   width: 66.91vw;
   height: auto;
   margin-inline: auto;
}
#about .circle .line {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   animation: rotateCenter 50s linear infinite;
   animation-play-state: running;
   width: 72.5vw;
}
@keyframes rotateCenter {
   0% {
     transform: translate(-50%, -50%) rotate(0deg);
   }
   100% {
     transform: translate(-50%, -50%) rotate(360deg);
   }
}



/* strength -------------------------------------*/
#strength {
   background: #FFFFFF;
   position: relative;
   top: -14vw;
}
#strength .inner {
   width: 89.375vw;
   margin-inline: auto;
   padding: 73.7vw 0 19vw;
}
#strength .inner .enttl {
   font-weight: 600;
   font-size:3.865vw;
   letter-spacing: 0.05em;
   line-height: 1.3142857;
   color: #d75b43;
   margin-bottom: 2.2vw;
}
#strength .inner h2{
   font-weight: 900;
   font-size:9.662vw;
   letter-spacing: 0.1em;
   margin-bottom: 7.8vw;
   line-height: 1.35;
}
#strength .inner .list {
   display: grid;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   gap: 9vw;
}
#strength .inner .list li {
   position: relative;
}
#strength .inner .list li .photo-wrap {
   position: relative;
   margin-bottom: 4vw;
}
#strength .inner .list li .photo-wrap .photo {
   overflow: hidden;
   position: relative;
}
#strength .inner .list li .photo::after {
   content: "";
   position: absolute;
   bottom: 2.5vw;
   right: 2.5vw;
   width: 9.665vw;
   height: 9.665vw;
   background: url(../images/index/btn-arrow02_sp.svg)no-repeat;
   background-size: contain;
   transition: 0.5s;
   z-index: 10;
}
#strength .inner .list li .photo-wrap .photo picture {
   display: block;
   transition: all .3s ease-in-out;
}
#strength .inner .list li .photo-wrap .photo img {
   width: 100%;
   vertical-align: middle;
}
#strength .inner .list li:hover .photo-wrap .photo picture {
   transform: scale(1.1);
}
#strength .inner .list li .photo-wrap .icon {
   position: absolute;
   top: 12vw;
   left: 50%;
   transform: translateX(-50%);
}
#strength .inner .list li .photo-wrap .icon img {
   width: 14.979vw;
}
#strength .inner .list li .photo-wrap h3 {
   position: absolute;
   top: 31.2vw;
   left: 50%;
   transform: translateX(-50%);
   font-weight: bold;
   font-size:5.797vw;
   letter-spacing: 0.1em;
   text-align: center;
   color: #fff;
   width: max-content;
}
#strength .inner .list li .txt {
   font-weight: 500;
   font-size:3.382vw;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   position: relative;
}



/* voice -------------------------------------*/
#voice .inner {
   padding: 19.5vw 0 20vw;
}
#voice .inner .enttl {
   font-weight: 600;
   font-size:3.865vw;
   letter-spacing: 0.05em;
   line-height: 1.125;
   text-align: center;
   color: #d75b43;
   margin-bottom: 1.5vw;
}
#voice .inner h2 {
   font-weight: 900;
   font-size:7.246vw;
   letter-spacing: 0.1em;
   text-align: center;
   margin-bottom: 6.5vw;
}
#voice .system-list {
   width: 94.205vw;
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 4.8vw 2.4vw;
   margin-bottom: 9.2vw;
}
#voice .system-list .system-pic {
   margin-bottom: 0;
   width: 100%;
   height: 33.335vw;
   text-align: center;
}  
#voice .system-list .system-pic img{
   width: auto;
   height: 100%;
   max-width: 100%;
}
#voice .system-list li .content{
   background: #e3e3e3;
   padding: 0;
   height: 25.5vw;
}
#voice .system-list li .content .name-wrap {
   display: flex;
   gap: 2vw;
   border-bottom: 0.2vw solid #FFFFFF;
   padding: 1.2vw 2.4vw 0.5vw;
}
#voice .system-list li .content .name-wrap .system-area {
   font-weight: 500;
   font-size:2.898vw;
   letter-spacing: 0.05em;
   line-height: 2.16666;
   color: #d75b43;
}
#voice .system-list li .content .name-wrap .system-name {
   font-weight: 500;
   font-size:2.898vw;
   letter-spacing: 0.05em;
   line-height: 2.16666;
   color: #1a1a1a;
}
#voice .system-list li .content .system-ttl-01 {
   font-weight: bold;
   font-size:3.14vw;
   letter-spacing: 0.05em;
   line-height: 1.69230769;
   color: #1a1a1a;
   border-top: 0.2vw solid #AAAAAA;
   padding: 2vw 2.4vw 0;
   display: -webkit-box;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
   -webkit-line-clamp: 2;
}

#voice .system-category {margin: 1vw 0 0px 0;text-align: left;}
#voice .systemdetail .system-category {margin-bottom: 0;text-align: center;}
#voice .system-category.no-category {margin-right: -1vw;}
#voice .system-category span {background: #D75B43;color: #fff;font-size: 2.899vw;font-weight: 400;letter-spacing: 0.05em;line-height: 1.6;padding: 0.5vw 1.831vw;width: -moz-fit-content;width: fit-content;margin: 0 1vw 0.5vw 0;display: inline-block;}


/* faq -------------------------------------*/
#faq {
   background: url(../images/index/faq-bg.png)repeat center / 9.5vw;
}
#faq .inner{
   width: 89.375vw;
   margin-inline: auto;
   padding: 14vw 0 20vw;
}
#faq .enttl {
   font-weight: 600;
   font-size:3.865vw;
   letter-spacing: 0.05em;
   line-height: 1.3;
   text-align: center;
   color: #d75b43;
   margin-bottom: 1vw;
}
#faq h2 {
   font-weight: 900;
   font-size:7.246vw;
   letter-spacing: 0.1em;
   text-align: center;
   margin-bottom: 7vw;
}
#faq #faqcontents {
   display: grid;
   gap: 5.1vw;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   margin-bottom: 9vw;
}
#faq #faqcontents .option{
   border-radius: 3vw;
   background: #fff;
   box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
   padding: 5.6vw 3.6vw;
   cursor: pointer;
}
#faq #faqcontents .title{
   font-weight: bold;
   font-size:3.865vw;
   line-height: 1.625;
   letter-spacing: 0.05em;
   display: grid;
   gap: 2.7vw;
   align-items: flex-start;
   grid-template-columns: 5.8vw 1fr;
   padding: 0 7vw 0 0;
}
#faq #faqcontents .title span {
   font-weight: 500;
   font-size:2.898vw;
   text-align: center;
   color: #fff;
   background: #D75B43;
   display: grid;
   place-content: center;
   width: 5.8vw;
   height: 5.8vw;
   border-radius: 50%;
}
#faq #faqcontents .content {
   font-weight: 500;
   font-size:3.14vw;
   letter-spacing: 0.05em;
   line-height: 1.692307;
   display: grid;
   grid-template-columns: 5.8vw 1fr;
   gap: 2.7vw;
   align-items: flex-start;
}
#faq #faqcontents .content span.f-mon{
   font-weight: 500;
   font-size:2.898vw;
   text-align: center;
   color: #d75b43;
   display: grid;
   place-content: center;
   width: 5.8vw;
   height: 5.8vw;
   background: #fff;
   border-radius: 50%;
   border: 0.2vw solid #d75b43;
}

#faq .toggle {display: none; }
#faq .title, #faq .content {-webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); transition: all 0.3s; }
#faq .title::after, #faq .title::before {content: "";position: absolute;right: 3.5vw;top: 0.5vw;width: 0.5vw;height: 5vw;background-color: #D75B43;transition: all 0.3s;cursor: pointer;}
#faq .title::after {transform: rotate(90deg); }
#faq .content {max-height: 0; overflow: hidden; }
#faq .toggle:checked + .title + .content {max-height: 500px;transition: all 1.5s;padding: 3.9vw 6vw 0 0;}
#faq .toggle:checked + .title::before {transform: rotate(90deg) !important; }




/* topic -------------------------------------*/
#topic .inner {
   width: 89.375vw;
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   gap: 14.5vw;
   padding: 18.5vw 0 14vw;
 }
 #topic .upper {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   margin-bottom: 7vw;
 }
 #topic .ttl-box {
   display: grid;
   gap: 1vw;
   align-items: baseline;
 }
 #topic .ttl-box .enttl {
   font-size:7.246vw;
   line-height: 1.225;
   letter-spacing: 0.05em;
   font-weight: 500;
   color: #D75B43;
 }
 #topic .ttl-box h2 {
   font-size:3.865vw;
   line-height: 1.4285714286;
   letter-spacing: 0.05em;
   font-weight: 700;
   margin: 0;
   text-align: left;
 }
 #topic .btn {
   width: 34vw;
   border-bottom: 0.2vw solid #1A1A1A;
   position: relative;
   top: 3.5vw;
 }
 #topic .btn a {
   font-size:3.865vw;
   line-height: 1.5;
   letter-spacing: 0.05em;
   font-weight: 500;
   padding-bottom: 3.6vw;
   position: relative;
   display: block;
   transition: 0.5s;
 }
 #topic .btn a::after {
   content: ">";
   position: absolute;
   right: 0;
   top: 0;
   font-size:3.865vw;
   font-weight: 500;
   line-height: 1.5;
   letter-spacing: 0.05em;
   color: #1A1A1A;
   transition: all 0.2s;
 }
 #topic .btn a:hover::after {
   right: -1.5vw;
 }
 #topic .content {
   /* overflow-y: scroll;
   max-height: 454px; */
 }
 #topic .system-list {
   display: grid;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   gap: 0;
 }
 #topic .system-list li{
   border-top: 0.2vw solid #BFBDBD;
 }
 #topic .system-list li:last-child{
   border-bottom: 0.2vw solid #BFBDBD;
 }
 #topic .system-list li a {
   display: block;
   padding: 4vw 3.5vw 4.6vw;
 }
 #topic .system-list li .system-date{
   font-weight: 500;
   font-size:3.14vw;
   letter-spacing: 0.05em;
   line-height: 1.8571428;
   color: #d75b43;
   margin-bottom: 2vw;
 }
 #topic .system-list li .system-ttl-01{
   font-family: "Noto Sans JP";
   font-weight: bold;
   font-size:3.14vw;
   letter-spacing: 0.05em;
   line-height: 1.6153846;
   display: -webkit-box;
   -webkit-line-clamp: 2;     
   -webkit-box-orient: vertical;
   overflow: hidden;
 }

 #topic .btn-list {
   display: grid;
   grid-template-columns: repeat(1, minmax(0, 1fr));
   gap: 7.5vw;
   width: 82.126vw;
   margin-inline: auto;
   padding-bottom: 24vw;
 }
 #topic .btn-list li {
   background: #fff;
 }
 #topic .btn-list li a{
   font-weight: bold;
   font-size:4.348vw;
   letter-spacing: 0.05em;
   padding: 6.2vw 4.7vw;
   position: relative;
   display: flex;
   gap: 2.5vw;
   align-items: center;
 }
 #topic .btn-list li a::after {
   content: "";
   position: absolute;
   right: 4.9vw;
   top: 50%;
   transform: translateY(-50%);
   background: url(../images/index/btn-arrow.svg)no-repeat;
   background-size: contain;
   width: 4.4vw;
   height: 3.7vw;
 }
 #topic .btn-list li a img {
   width: 5.4vw;
 }

 /* seo-txt
 -------------------------------------*/
 .seo-txt{font-size: 2.898vw;font-weight: 500;line-height: 2;letter-spacing: 0.05em;background: #fff;}
 .seo-txt p {
   margin: 0 5.2vw;
   padding-bottom: 9vw;
 }
}

