@charset "UTF-8";
@media screen and (min-width: 768px),print {
body{ overflow-x:visible; }
main{ width:100%!important; }

#con01{ width:100%; max-width:1920px; min-height: 860px; margin:0 auto 96px; background: url(../images/company/con01-bg01.png) no-repeat center top 136px; position: relative;}
#con01 .ttl{ text-align:center; margin-bottom:350px; }

@keyframes spin {
 0% { rotate: 0deg; transform-origin: 50px 50px; }
100% { rotate: -360deg; transform-origin: 50px 50px; }
 }
@keyframes shaking {
 0% { translate: 0 0; }
20% { translate: 0 1px; }
40% { translate: 0 0; }
60% { translate: 0 1.5px; }
80% { translate: 0 0; }
100% { translate: 0 0; }
 }
@keyframes driving {
 0% { translate: 362px 0; }
100% { translate: -100vw 0; }
 }

#con01 .car { position: relative; z-index: 10; width: 362px; height: 106px; margin-left: auto; animation: driving 8s linear infinite; translate: 362px 0; top: -37px; margin-bottom: -27px; }
#con01 .car-body { animation: shaking 1s linear infinite; }
#con01 .tire-front { animation: spin 1s linear infinite reverse; position: absolute; left: 71px; bottom: 0; width: 33px; height: 33px; }
#con01 .tire-rear { animation: spin 1s linear -0.5s infinite reverse; animation: spin 1s linear infinite reverse; position: absolute; right: 76px; bottom: 0; width: 33px; height: 33px; }

#con02{ width:1085px; margin:0 auto 98px; }
#con02 .inner-Box{ padding:10px 0 0; }
#con02 .l-box{ width:420px; float:left; position:sticky; top: 20px; align-self: flex-start; }
#con02 .l-box .ttl{ font-size:36px; font-weight:900; line-height:48px; letter-spacing:1.8px; margin-bottom:40px; position:relative; }
#con02 .l-box .ttl::before{content: ''; display: inline-block; width: 40px; height: 1px; background-color:#252525; position:absolute; bottom:-12px; }
#con02 .r-box{ width:610px; float:right; }
#con02 .r-box .ttl1{ color:#fff; font-size:28px; font-weight:900; line-height:46px; letter-spacing:1.4px; margin-bottom:28px; }
#con02 .r-box .ttl1 span{ background-color:#0249AD; padding:0px 10px; margin-bottom:6px; display:inline-block; }
#con02 .r-box .txt{ font-size:16px; line-height: 32px; letter-spacing:0.8px; }
#con02 .r-box .mb1{ margin-bottom:30px; }
#con02 .r-box .mb2{ margin-bottom:50px; }

#con03{ width:100%; max-width:1920px; margin:0 auto 56px; padding: 95px 0 0px; background: url(../images/company/con03-bg01.png) repeat-y center top; }
#con03 .inner-Box{ width:1190px; margin:0 auto; }

:root{
    --gap: 24px;
    --toc-w: 220px;
    --accent: #0249AD; /* アクティブ色：お好みで */
    --top-offset: 80px; /* sticky の開始位置 */
    --header-h: 0px;    /* もし固定ヘッダーがあれば高さを入れる（例: 72px）*/
  }

/* 左：TOC（目次） */
#con03 .toc{position:sticky;top:calc(var(--top-offset) + var(--header-h)); width: 200px; float: left;}
#con03 .toc ul{list-style:none;margin:0;padding:0;position: relative;top: -53px;left: 13px;}
#con03 .toc a{display:block;padding:10px 0 10px 0;text-decoration:none;color:#9EBCE6;font-size: 19px; font-weight: 900; letter-spacing: 0.8px; line-height: 32px; border-bottom: 1px solid #E0E0E0; }
#con03 .toc a:hover{  }
#con03 .toc a.is-active{color:var(--accent);font-weight:900;}

/* 右：本文 */
#con03 .content{min-height:100vh; width: 820px; margin-right: 90px; float: right;}
#con03 .section{padding-block:48px;border-bottom:1px solid #252525; margin-bottom: 66px;}
#con03 .section:last-child{border-bottom:none; margin-bottom: 0;}
#con03 .section h2{ position:relative; margin-bottom:64px; }
#con03 .section h2 .ttl1{ font-size:20px; font-weight:700; line-height:48px; letter-spacing:1px; margin-right:20px; }
#con03 .section h2 .ttl2{ font-size:36px; font-weight:900; line-height:48px; letter-spacing:1.8px; position:relative; }
#con03 .section h2::before{content: ''; display: inline-block; width: 60px; height: 1px; background-color:#252525; position:absolute; bottom:0px; left:0; }
#con03 .section h2 .ttl2.icon1::before{ content: url(../images/company/con03-icon01.png); position: absolute; bottom: -40px; right: -145px; }
#con03 .section h2 .ttl2.icon2::before{ content: url(../images/company/con03-icon02.png); position: absolute; bottom: -40px; right: -165px; }
#con03 .section h2 .ttl2.icon3::before{ content: url(../images/company/con03-icon03.png); position: absolute; bottom: -40px; right: -155px; }
#con03 .section .txt1{font-size: 38px; font-weight: 700; line-height: 60px; letter-spacing: 1.9px;}
#con03 .section .txt2{font-size: 32px; font-weight: 700; line-height: 58px; letter-spacing: 1.6px;}
#con03 .section .txt2 span{ color:#FE7500; }
#con03 .section .value-list{  }
#con03 .section .value-list li{ border-bottom:1px solid #D0CDC5; padding-bottom:29px; margin-bottom:30px; font-size:28px; font-weight:700; line-height:48px; letter-spacing:1.4px; padding-left: 90px; position:relative; }
#con03 .section .value-list li::before{content: '一つ、'; display: inline-block; position:absolute; top:1px; left:0px; }
#con03 .section .value-list li span{ color:#FE7500; }
#con03 .section .value-list li:last-child{ border-bottom:0; margin-bottom:0; }

/* 固定ヘッダーがある場合のずれ対策（アンカー到達位置の余白） */
#con03　.section{scroll-margin-top:calc(var(--header-h) + var(--top-offset) + 8px);}

#con04{ width:930px; margin:0 auto 100px; }
#con04 .icon{ text-align:center; margin-bottom:15px; }
#con04 .ttl{ text-align:center; font-size:36px; font-weight:900; line-height:48px; letter-spacing:1.8px; margin-bottom:55px; position:relative; }
#con04 .ttl::before{content: ''; display: inline-block; width: 40px; height: 1px; background-color:#252525; position:absolute; bottom:-20px; left: 50%; transform: translateX(-50%); -ms-transform: translateX(-50%); }
#con04 .company-profile{ border-bottom:1px solid #DEDEDE; }
#con04 tr{ border-top:1px solid #DEDEDE; }
#con04 th{font-size:16px;line-height:32px;letter-spacing:0.8px;background-color:#F7F6F3;width:180px;padding:20px 0;vertical-align: middle;text-align: left;padding-left: 20px;}
#con04 td{font-size:16px;line-height:32px;letter-spacing:0.8px;padding: 20px 16px 20px 30px;}

#con05{ width:1280px; margin: 0 auto; padding: 40px 0; background-color:#0249AD; }
#con05 .inner-Box{ width:1200px; margin:0 auto; background-color:#fff; padding:34px 50px 60px; }
#con05 .ttl{ text-align:center; font-size:36px; font-weight:900; line-height:48px; letter-spacing:1.8px; position:relative; margin-bottom:33px; }
#con05 .ttl::before{content: ''; display: inline-block; width: 40px; height: 1px; background-color:#252525; position:absolute; bottom:-20px; left: 50%; transform: translateX(-50%); -ms-transform: translateX(-50%); }
#con05 .txt{ text-align:center; font-size:22px; font-weight:700; line-height:32px; letter-spacing:1.1px; margin-bottom: 26px;}
#con05 .txt span{ background: linear-gradient(transparent 60%, #FFDE1E 0%); }
#con05 .inbox{ position:relative; }
#con05 .inbox .pic{ position:absolute; top:0; left:0; }
#con05 .inbox .r-box{ width:460px; margin-left:auto; }
#con05 .inbox .r-box .txt1{ font-size:16px; line-height:32px; letter-spacing:0.8px; margin-bottom:43px; }
#con05 .inbox .r-box .map{ width:460px; height:390px; }
#con05 .inbox .r-box .map iframe{ width:100%; height:390px; }
#con05 .inbox .r-box .map-txt{ text-align:right; }

}
@media screen and (max-width: 767px) {
.aaa{position: relative;}

#con01{ margin:9vw auto 18vw; background: url(../images/company/sp-con01-bg01.png) no-repeat center top 14vw; background-size: 100%; position: relative; }
#con01 .ttl{ text-align:center; margin-bottom:51vw; }
#con01 .car { position: relative; z-index: 10; width: 46.135vw; height: 13.527vw; margin-left: auto; animation: driving 8s linear infinite; translate: 87.44vw 0; top: 4.831vw; margin-bottom: -6.522vw; }
#con01 .car-body { animation: shaking 1s linear infinite; }
#con01 .tire-front { animation: spin2 1s linear infinite; position: absolute; left: 7.246vw; bottom: -1.691vw; width: 7.971vw; height: 7.971vw; }
#con01 .tire-rear { animation: spin2 1s linear -0.5s infinite; animation: spin2 1s linear infinite; position: absolute; right: 7.971vw; bottom: -1.691vw; width: 7.971vw; height: 7.971vw; }
@keyframes spin2 {
 0% { transform: scale(0.5) rotate(0deg); }
100% { transform: scale(0.5) rotate(-360deg); }
 }
@keyframes shaking {
 0% { translate: 0 0; }
20% { translate: 0 0.242vw; }
40% { translate: 0 0; }
60% { translate: 0 0.362vw; }
80% { translate: 0 0; }
100% { translate: 0 0; }
 }
@keyframes driving {
 0% { translate: 87.44vw 0; }
100% { translate: -100vw 0; }
 }

#con02{ margin:0 7vw 18vw; }
#con02 .inner-Box{ padding:2.41vw 0 0; }
#con02 .l-box{ margin-bottom:6vw; }
#con02 .l-box .ttl{ text-align:center;  font-size:6.2vw; font-weight:900; line-height: 1.6; letter-spacing: 0.24vw; margin-bottom:9.66vw; position:relative; }
#con02 .l-box .ttl::before{content: ''; display: inline-block; width: 12vw; height: 0.4vw; background-color:#252525; position:absolute; bottom:-2.89vw; left: 50%; transform: translateX(-50%); -ms-transform: translateX(-50%); }
#con02 .r-box{  }
#con02 .r-box .ttl1{ color:#fff; font-size:5.8vw; font-weight:900; line-height: 1.6; letter-spacing: 0.24vw; margin-bottom:6.76vw; }
#con02 .r-box .ttl1 span{ background-color:#0249AD; padding:0vw 2.41vw; margin-bottom:1.44vw; display:inline-block; }
#con02 .r-box .txt{ font-size:3.86vw; line-height: 1.6; letter-spacing: 0.24vw; }
#con02 .r-box .mb1{ margin-bottom:7.24vw; }
#con02 .r-box .mb2{ margin-bottom:12.07vw; }

#con03{ margin:0 auto 15vw; padding: 0vw 0vw 0vw; background: url(../images/company/sp-con03-bg01.png) no-repeat center top; background-size: 100%; }
#con03 .inner-Box{ margin:0 auto; }
/* 左：TOC（目次） */
#con03 .toc{ display:none; }

/* 右：本文 */
#con03 .content{ background-color: #F7F6F3; padding:7vw 7vw 0; }
#con03 .section{padding-block:9vw;border-bottom:0.24vw solid #252525; margin-bottom: 10vw; }
#con03 .section:last-child{border-bottom:none; margin-bottom: 0; }
#con03 .section h2{ position:relative; margin-bottom:10vw; }
#con03 .section h2 .ttl1{ font-size:4.83vw; font-weight:700; line-height: 1.6; letter-spacing: 0.24vw; margin-bottom: 6vw; display:block; }
#con03 .section h2 .ttl2{ font-size:7.3vw; font-weight:900; line-height: 1.6; letter-spacing: 0.24vw; position:relative; display:block; }
#con03 .section h2::before{content: ''; display: inline-block; width: 14vw; height: 0.3vw; background-color:#252525; position:absolute; bottom:15vw; left:0; }
#con03 .section h2 .ttl2.icon1::before{ content: url(../images/company/sp-con03-icon01.png); position: absolute; bottom: -25.5vw; right: 5vw; transform: scale(0.5); }
#con03 .section h2 .ttl2.icon2::before{ content: url(../images/company/sp-con03-icon02.png); position: absolute; bottom: -25.5vw; right: 0vw; transform: scale(0.5); }
#con03 .section h2 .ttl2.icon3::before{ content: url(../images/company/sp-con03-icon03.png); position: absolute; bottom: -25.5vw; right: 0vw; transform: scale(0.5); }
#con03 .section .txt1{font-size: 6.2vw; font-weight: 700; line-height: 1.6; letter-spacing: 0.24vw; }
#con03 .section .txt2{font-size: 5.7vw; font-weight: 700; line-height: 1.6; letter-spacing: 0.24vw; }
#con03 .section .txt2 span{ color:#FE7500; }
#con03 .section .value-list{ }
#con03 .section .value-list li{ border-bottom:0.24vw solid #D0CDC5; padding-bottom:5vw; margin-bottom:6vw; font-size:5.8vw; font-weight:700; line-height: 1.6; letter-spacing: 0.24vw; }
#con03 .section .value-list li:last-child{ border-bottom:0; padding-bottom:0; margin-bottom:0; }
#con03 .section .value-list li::before{content: '一つ、'; display: block; }
#con03 .section .value-list li span{ color:#FE7500; }
/* 固定ヘッダーがある場合のずれ対策（アンカー到達位置の余白） */
#con03　.section{scroll-margin-top:calc(var(--header-h) + var(--top-offset) + 1.93vw); }

#con04{ margin:0 auto 24.15vw; }
#con04 .icon{ text-align:center; margin: 0 45vw 4vw; }
#con04 .ttl{ text-align:center; font-size:6vw; font-weight:900; line-height: 1.6; letter-spacing: 0.24vw; margin-bottom:12vw; position:relative; }
#con04 .ttl::before{content: ''; display: inline-block; width: 10vw; height: 0.3vw; background-color:#252525; position:absolute; bottom: -3vw; left: 50%; transform: translateX(-50%); -ms-transform: translateX(-50%); }
#con04 .company-profile{ margin: 0 5vw; }
#con04 tr{ border-top: 1px solid #DEDEDE; }
#con04 th{ display: block; font-size:3.8vw; line-height: 1.6; letter-spacing: 0.24vw; background-color:#F7F6F3; padding: 3vw 5vw; text-align:left; }
#con04 td{ display: block; font-size:3.4vw; line-height: 1.6; letter-spacing: 0.24vw; padding: 3vw 5vw 3vw 5vw; text-align:left; }

#con05{ margin: 0 5vw -19vw; padding: 3vw 3vw; background-color:#0249AD; }
#con05 .inner-Box{ margin:0 auto; background-color:#fff; padding:7vw 5vw 7vw; }
#con05 .ttl{ text-align:center; font-size: 6vw; font-weight:900; line-height: 1.6; letter-spacing: 0.24vw; position:relative; margin-bottom:7.97vw; }
#con05 .ttl::before{content: ''; display: inline-block; width: 10vw; height: 0.3vw; background-color:#252525; position:absolute; bottom:-3vw; left: 50%; transform: translateX(-50%); -ms-transform: translateX(-50%); }
#con05 .txt{ text-align:center; font-size:3.8vw; font-weight:700; line-height: 1.6; letter-spacing: 0.24vw; margin-bottom: 6.28vw; }
#con05 .txt span{ background: linear-gradient(transparent 60%, #FFDE1E 0%); background-size: 100%; }
#con05 .inbox{ position:relative; }
#con05 .inbox .pic{ margin-bottom: 6vw; }
#con05 .inbox .r-box{ margin-left:auto; }
#con05 .inbox .r-box .txt1{ font-size:3.6vw; line-height: 1.8; letter-spacing: 0.24vw; margin-bottom:8vw; }
#con05 .inbox .r-box .map{ width: 100%; height:56vw; }
#con05 .inbox .r-box .map iframe{ width: 100%; height:56vw; }
#con05 .inbox .r-box .map-txt{ width:32vw; margin-left:auto; }

}
