@charset "utf-8";
/** ==============================================
01.共通
============================================== **/
/*
-----------------
Barlow Semi Condensed
-----------------
.barlow-semi-condensed-medium {
  font-family: "Barlow Semi Condensed", sans-serif;
  font-weight: 500;
  font-style: normal;
}


-----------------
noto-sans-jp
-----------------
 <weight>: Use a value from 100 to 900
 <uniquifier>: Use a unique and descriptive class name

.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}
 */

/* -------------------------------------
time
-------------------------------------*/
time {
  font-size: 1.4rem;
  color: var(--gray);
}

/* -------------------------------------
tag
-------------------------------------*/
.tag-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 25px;
}
.tag {
  display: block;
  width: fit-content;
  padding: 5px 8px;
  font-size: 1.4rem;
  color: #fff;
  line-height: 1;
  background: var(--c_main);
}

/* -------------------------------------
deco-en
-------------------------------------*/
.deco-en {
  display: block;
  font-family: var(--font_en);
  font-size: 10rem;
  line-height: 1;
  color: rgb(from var(--c_main) r g b / 0.1);
}
.deco-en.op2 {
  color: rgb(from var(--c_main) r g b / 0.2);
}

@media (max-width: 520px) {
  .deco-en {
    font-size: min(5.6rem, 15vw);
  }
}

/* -------------------------------------
bf-maru
-------------------------------------*/
.bf-maru li {
  display: grid;
  grid-template-columns: 1em auto;
}
.bf-maru li + li {
  margin-top: 2px;
}
.bf-maru li::before {
  content: "●";
  margin-top: 3px;
  font-size: 0.8em;
  color: var(--c_sub);
}

/* -------------------------------------
splide
-------------------------------------*/

/* -------------------------------------
splide 矢印 / ページネーション
-------------------------------------*/
.options-customize {
  --height: 50px;
  --color: var(--gray);
  width: 230px;
  margin: 50px 5% 0 auto;
  height: var(--height);
  position: relative;
}
/* 矢印 */
.splide__arrows.base-customize .splide__arrow {
  --size: var(--height);
  width: var(--size);
  height: var(--size);
  background: none;
  opacity: 1;
  border: 1px solid currentColor;
  transition: var(--transition);
}
.splide__arrows.base-customize .splide__arrow.splide__arrow--prev {
  left: 0;
}
.splide__arrows.base-customize .splide__arrow.splide__arrow--next {
  right: 0;
}
.splide__arrows.base-customize .splide__arrow svg {
  width: var(--size);
  height: var(--size);
  fill: currentColor;
}
.splide__arrows.base-customize .splide__arrow.splide__arrow--prev:hover,
.splide__arrows.base-customize .splide__arrow.splide__arrow--next:hover {
  background: var(--gray);
  border-color: var(--gray);
}
/* 数字 */
.pagination-number {
  height: var(--height);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  text-align: center;
}
/* 数字の色やサイズ調整 */
.pagination-number span {
  font-size: 1.1em;
}

@media (max-width: 520px) {
  .options-customize {
    --height: 38px;
    width: 180px;
    margin: 40px auto 0;
  }
  .splide__arrows.base-customize .splide__arrow svg {
    --size: 45px;
  }
  /* 数字 */
  .pagination-number span {
    font-size: 16px;
  }
}

/* -------------------------------------
splide 矢印 / thumb用
-------------------------------------*/
.thumb-slide .splide__arrow {
  background: none;
  opacity: 1;
}
.thumb-slide .splide__arrow svg {
  --size: 1.5em;
  width: var(--size);
  height: var(--size);
  fill: #fff;
}
.thumb-slide .splide__arrow--prev {
  left: 0;
}
.thumb-slide .splide__arrow--next {
  right: 0;
}

/* -------------------------------------
number-slid
-------------------------------------*/
[class^="number-slide0"] li p {
  margin: 14px 1% 0;
}
[class^="number-slide0"] li p strong {
  display: block;
  margin-bottom: 8px;
  font-size: 1.2em;
}
.number-slide02 li p {
  font-size: 0.85em;
}

@media (max-width: 520px) {
  [class^="number-slide0"] li p strong {
    margin-bottom: 4px;
    font-size: 1.2em;
  }
  .number-slide02 li p {
    font-size: 0.8em;
  }
}

/* -------------------------------------
thumb-slid
-------------------------------------*/
.thumb-slide .thumb-thumb {
  margin-top: 20px;
}
.thumb-slide .splide__track--nav > .splide__list > .splide__slide.is-active {
  border: none;
}
.thumb-slide .thumb-thumb .splide__slide {
  opacity: 0.6;
}
.thumb-slide .thumb-thumb .splide__slide.is-active {
  opacity: 1;
}

@media (max-width: 520px) {
  .thumb-slide .thumb-thumb {
    margin-top: 10px;
  }
}

/* -------------------------------------
スクロールバー
-------------------------------------*/
.scroll-x {
  padding: 1px 0 10px;
  overflow: auto;
}
.scroll-x .simplebar-track.simplebar-horizontal {
  --height: 5px;
  height: var(--height);
  background: var(--bg_gray);
  margin: 0 auto;
}
.scroll-x .simplebar-scrollbar {
  height: var(--height);
  background: var(--c_sub);
  border-radius: 5px;
  top: 0;
}
.scroll-x .simplebar-scrollbar:before {
  display: none;
}

/** ==============================================
02.テンプレート
============================================== **/
/* -------------------------------------
header
-------------------------------------*/
header {
  width: 100%;
  padding: 10px 2%;
  background: #fff;
  position: fixed;
  top: 0;
  z-index: 1000;
  transition: var(--transition);
}
.h-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5%;
}

/* h-logo */
header .h-logo {
  width: 300px;
}

/* nav */
header nav {
  flex: 1;
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  gap: 10px;
}
header nav .gnav {
  display: flex;
  gap: 15px;
}
header nav .gnav li a {
  display: block;
  padding: 10px 5px;
  font-size: min(1.45vw, 1.8rem);
  font-weight: var(--fw_b);
  text-align: center;
  line-height: var(--lh_s);
}
header nav .gnav li a:hover {
  color: var(--c_main);
  opacity: 1;
}
header nav .h-cv {
  display: flex;
  align-items: center;
  gap: 30px;
  margin: -10px -2% 0 0;
}
header nav .h-cv p {
  font-size: 1.5rem;
  font-weight: var(--fw_m);
}
header nav .h-cv .tel {
  width: clamp(220px, 18vw, 270px);
  justify-content: center;
  padding: 15px 20px;
  font-size: 2.2rem;
  color: #fff;
  font-weight: var(--fw_b);
  background: var(--base_color);
}

/* hamburger */
header .hamburger {
  display: none;
}

@media screen and (max-width: 520px) {
  header {
    padding: 10px 4%;
  }
  .h-inner {
    display: block;
  }

  /* h-logo */
  header .h-logo {
    width: auto;
    height: 40px;
  }
  header .h-logo img {
    width: auto;
    height: 100%;
  }

  /* nav */
  header nav {
    width: 100%;
    height: 100%;
    flex-direction: column;
    justify-content: flex-start;
    gap: 50px;
    padding: 70px 16% 20px;

    background: var(--c_main_d);
    background: linear-gradient(135deg, var(--c_main) 0%, var(--c_main_d) 100%);
    color: #fff;
    position: fixed;
    top: 0;
    right: -100%;
    overflow-y: scroll;
    z-index: 1499;
    transition: var(--transition);
  }
  header.nav-open nav {
    right: 0;
  }
  header nav .gnav {
    width: 100%;
    flex-direction: column;
    gap: 15px;
  }
  header nav .gnav li a {
    padding: 5px 5px 20px;
    font-size: 1.6rem;
    border-bottom: 1px dotted #fff;
  }

  header nav .h-cv {
    flex-direction: column-reverse;
    gap: 0;
    margin: 0 auto;
  }
  header nav .h-cv p {
    font-size: 1.5rem;
  }
  header nav .h-cv .tel {
    width: 100%;
    padding: 20px 0;
    font-size: 2.6rem;
    background: none;
  }

  /* hamburger */
  header .hamburger {
    --size: 56px;
    display: block;
    width: var(--size);
    height: var(--size);
    background: var(--c_main);
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    transition: all 400ms;
    z-index: 1500;
    transition: var(--transition);
  }
  header .hamburger span {
    position: absolute;
    width: 50%;
    height: 2px;
    background: #fff;
    transition: all 400ms;
    right: 0;
    left: 0;
    margin: 0 auto;
  }
  header .hamburger span:nth-child(1) {
    top: 32%;
  }
  header .hamburger span:nth-child(2) {
    top: 48%;
  }
  header .hamburger span:nth-child(3) {
    top: 64%;
  }

  /* nav-open時 */
  header.nav-open .hamburger {
    background: #fff;
  }
  header.nav-open .hamburger span {
    background: var(--c_main);
  }
  header.nav-open .hamburger span:nth-child(1) {
    top: 46%;
    transform: rotate(45deg);
  }
  header.nav-open .hamburger span:nth-child(2) {
    display: none;
  }
  header.nav-open .hamburger span:nth-child(3) {
    top: 46%;
    transform: rotate(-45deg);
  }
}

/* -------------------------------------
フッター
-------------------------------------*/
footer {
  padding: 80px 0 20px;
  color: #fff;
}
.f-main {
  display: grid;
  grid-template-columns: 300px 340px 1fr;
  align-items: start;
  grid-template-areas: "logo address ul";
  gap: 30px;
  margin-bottom: 70px;
}
.f-main .f-logo-wrap {
  grid-area: logo;
}
.f-main .f-logo-wrap .f-logo {
  width: 240px;
}
.f-main .f-logo-wrap p {
  margin-top: 40px;
  font-size: 2rem;
}
.f-main .f-logo-wrap p span {
  display: block;
  font-size: 1.4rem;
}
.f-main address {
  grid-area: address;
  border-right: 1px solid #fff;
}
.f-main .sitemap {
  grid-area: ul;
  column-count: 2; /*列数*/
  column-gap: 10px; /*ブロック要素同士の間隔*/
}
.f-main .sitemap li {
  margin-bottom: 16px;
  break-inside: avoid; /*ブロックの途中で改行させない*/
}
.f-main .sitemap li a {
  display: block;
  padding: 6px 0;
  font-size: 1.8rem;
  line-height: 1;
}
.f-main .sitemap li a:hover {
  opacity: 1;
  text-decoration: underline;
}

/* copyright */
.copyright small {
  display: block;
  font-size: 1.4rem;
  text-align: center;
}

@media screen and (max-width: 520px) {
  footer {
    padding: 50px 0 80px;
  }
  footer .wbase {
    width: 86%;
  }
  .f-main {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-bottom: 50px;
  }
  .f-main .f-logo-wrap .f-logo {
    width: 180px;
  }
  .f-main .f-logo-wrap p {
    margin-top: 25px;
    font-size: 1.8rem;
  }
  .f-main .f-logo-wrap p span {
    font-size: 1.2rem;
  }
  .f-main address {
    font-size: 1.5rem;
    border-right: none;
  }
  .f-main .sitemap {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    margin-top: 20px;
  }
  .f-main .sitemap li {
    margin-bottom: 0;
  }
  .f-main .sitemap li a {
    font-size: 1.4rem;
    text-decoration: underline;
  }
}

/* -------------------------------------
sp-fix
-------------------------------------*/
.sp-fix {
  display: none;
}

@media screen and (max-width: 520px) {
  .sp-fix {
    width: 100vw;
    display: block;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 900;
    color: #fff;

    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.3s ease;
  }
  .sp-fix.is-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .sp-fix .tel {
    height: 60px;
    padding: 10px;
    line-height: 1.3;
    justify-content: center;
    font-size: min(5.4vw, 2.2rem);
    border-top: 2px solid #fff;
  }
  .sp-fix .tel span {
    display: inline-block;
    margin-left: 8px;
    font-size: min(3.2vw, 13px);
  }
}

/** ==============================================
TOPページ
============================================== **/
/* -------------------------------------
hero
-------------------------------------*/
.hero {
  margin: 0 auto;
  padding-top: 60px;
  position: relative;
}
.hero-catch {
  text-align: center;
  position: relative;
  z-index: 2;
}
.hero-catch p {
  color: var(--c_main);
  font-size: 2.8rem;
  font-weight: var(--fw_b);
  text-align: center;
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 1);
  letter-spacing: var(--letter-spacing);
}
.hero-catch p strong {
  display: block;
  margin-bottom: 20px;
  font-size: 6rem;
  line-height: var(--lh_s);
}

/* slide */
.hero-slide {
  margin-top: -10px;
  position: relative;
}
.hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.3) 16%, rgba(255, 255, 255, 0) 50%);
}

@media (max-width: 520px) {
  .hero {
    padding-top: 30px;
  }
  .hero-catch p {
    font-size: 1.6rem;
  }
  .hero-catch p strong {
    margin-bottom: 10px;
    font-size: 2.4rem;
  }

  /* slide */
  .hero-slide {
    margin-top: -30px;
  }
}

/* -------------------------------------
sec-top-intro
-------------------------------------*/
.sec-top-intro {
  padding-left: var(--base_padding);
  padding-bottom: 220px;
  background: url(../images/bg-ptn01.png) no-repeat center / cover;
  overflow: hidden;
}
.sec-top-intro p {
  width: 40%;
  font-weight: var(--fw_m);
}
.sec-top-intro figure {
  width: min(63vw, 980px);
  margin: -340px 0 0 48%;
}

@media (max-width: 520px) {
  .sec-top-intro {
    padding: 30px 0 0;
    background-size: 900px auto;
    background-position: left -20px top -30px;
  }
  .sec-top-intro h2 {
    width: 88%;
    margin-inline: auto;
  }
  .sec-top-intro p {
    width: 88%;
    margin: 0 auto 25px;
  }
  .sec-top-intro figure {
    width: 100%;
    margin: 0 0 0 10%;
  }
}

/* -------------------------------------
sec-top-service
-------------------------------------*/
.service-top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 70px;
}
.service-top .item {
  --overlap: -60px;
  --block: 420px;
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
.service-top .item figure {
  width: calc(100% - var(--block) - var(--overlap));
  max-width: 1100px;
  flex-shrink: 0;
}
.service-top .item .box {
  width: var(--block);
  height: 80%;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 5px;
  margin-bottom: -30px;
  color: #fff;
  text-align: center;
  z-index: 2;
}
.service-top .item .box .tit {
  line-height: 1;
  letter-spacing: var(--letter-spacing);
}
.service-top .item .box i {
  line-height: 1;
}

/* てれこ */
.service-top .item:nth-child(odd) .box {
  margin-left: var(--overlap);
}
.service-top .item:nth-child(even) {
  flex-direction: row-reverse;
}
.service-top .item:nth-child(even) .box {
  margin-right: var(--overlap);
}

@media (max-width: 520px) {
  .sec-top-service {
    padding-bottom: 10px;
  }
  .service-top {
    gap: 20px;
  }
  .service-top .item {
    --block: 90%;
    flex-direction: column;
  }
  .service-top .item figure {
    width: 100%;
  }
  .service-top .item figure img {
    aspect-ratio: 3/2;
    object-fit: cover;
  }
  .service-top .item .box {
    height: auto;
    gap: 10px;
    padding: 30px 0;
    margin-bottom: 0;
  }
  .service-top .item .box .tit {
    margin-bottom: 5px;
    /* font-size: 2.6rem; */
  }
  .service-top .item .box .btn_wh {
    margin-top: 10px;
  }
  .service-top .item .box i {
    font-size: min(5.4vw, 3rem);
  }

  /* てれこ */
  .service-top .item:nth-child(odd) .box,
  .service-top .item:nth-child(even) .box {
    margin-inline: auto;
    margin-top: var(--overlap);
  }
  .service-top .item:nth-child(even) {
    flex-direction: column;
  }
}

/* -------------------------------------
sec-top-news
-------------------------------------*/
.sec-top-news .deco-en {
  margin-bottom: 20px;
  text-align: right;
}
.top-news-grid {
  display: grid;
  grid-template-columns: 310px 1fr;
  grid-template-rows: 48px 1fr;
  align-items: start;
  grid-template-areas:
    "tit ul"
    "btn ul";
  gap: 0 100px;
}
.top-news-grid .tit {
  grid-area: tit;
}
.top-news-grid .btn {
  grid-area: btn;
  margin-inline: 0;
}
.top-news-grid .top-news-list {
  grid-area: ul;
}

/* top-news-list */
.top-news-list {
  border-top: var(--border);
}
.top-news-list li {
  --after-size: 50px;
  border-bottom: var(--border);
}
.top-news-list li a {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 1.3em 5px;
  position: relative;
}
.top-news-list li a:hover {
  opacity: 1;
}
.top-news-list li .tag {
  color: var(--base_color);
  background: none;
  border: 1px solid var(--base_color);
}
.top-news-list li time {
  color: var(--c_main);
}
.top-news-list li a p {
  font-weight: var(--fw_m);
}
.top-news-list li a:hover p {
  text-decoration: underline;
}

@media (max-width: 520px) {
  .sec-top-news .deco-en {
    margin-bottom: -2px;
    text-align: left;
  }
  .top-news-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .top-news-grid .tit {
    font-size: 2.2rem;
  }
  .top-news-grid .btn {
    margin-inline: auto;
  }

  /* top-news-list */
  .top-news-list {
    width: 100%;
    padding: 0 2%;
  }
}

/* -------------------------------------
sec-top-reason
-------------------------------------*/
/* top-reason-list */
.top-reason-list li {
  position: relative;
}
.top-reason-list li img {
  width: 100%;
  height: 580px;
  object-fit: cover;
}
.top-reason-list li .box {
  width: 900px;
  height: 440px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 20px 50px;
  color: #fff;
  letter-spacing: var(--letter-spacing);
  background: var(--c_main_d80);
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
}
.top-reason-list li .box i {
  font-family: var(--font_en);
  font-size: 5rem;
  text-align: center;
  line-height: 1;
}
.top-reason-list li .box h3 {
  font-size: 3.2rem;
  font-weight: var(--fw_b);
  text-align: center;
  line-height: var(--lh_s);
}
.top-reason-list li .box p {
  font-size: 1.7rem;
  font-weight: var(--fw_sb);
}
.top-reason-list li .btn_wh {
  margin-top: 10px;
}

@media (max-width: 520px) {
  /* top-reason-list */
  .top-reason-list li .box {
    width: 100%;
    height: auto;
    gap: 10px;
    padding: 15px 6% 50px;
    position: static;
    translate: 0 0;
  }
  .top-reason-list li img {
    height: 55vw;
  }
  .top-reason-list li .box p {
    font-size: 1.5rem;
    font-weight: var(--fw_n);
  }
  .top-reason-list li .box i {
    font-size: 4rem;
  }
  .top-reason-list li .box h3 {
    font-size: 2rem;
  }
}

/* -------------------------------------
sec-top-works
-------------------------------------*/
.sec-top-works .deco-en {
  margin-bottom: -12px;
  text-align: right;
}

/* top-works-list */
.top-works-list.gridfit_3 {
  --gap: 25px;
}
.top-works-list li a {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 20px;
  background: #fff;
  border-radius: var(--radius);
}
.top-works-list li a:hover {
  opacity: 1;
}
.top-works-list li a img {
  aspect-ratio: 3/2;
  object-fit: cover;
  border-start-end-radius: var(--radius);
}
.top-works-list li a p {
  font-size: 1.8rem;
  font-weight: var(--fw_b);
  line-height: var(--lh_s);
}
.top-works-list li a:hover p {
  text-decoration: underline;
}
.top-works-list li a .tag {
  background: var(--gray);
}

@media (max-width: 520px) {
  .sec-top-works {
    padding-top: 0;
  }
  .sec-top-works .deco-en {
    margin-bottom: -10px;
  }

  /* top-works-list */
  .top-works-list.gridfit_3 {
    --grid: 1;
    --gap: 20px;
    padding: 0 2%;
  }
  .top-works-list li a p {
    font-size: 1.5rem;
  }
}

/* -------------------------------------
sec-top-partner
-------------------------------------*/
.sec-top-partner {
  --bg_img: url(../images/partner-bg01.jpg);
  background-position: center bottom;
}
.sec-top-partner .content-box .strong {
  font-weight: var(--fw_m);
}

/* -------------------------------------
asd-cv
-------------------------------------*/
.asd-cv .content.flx {
  --gap: 30px;
  align-items: center;
  justify-content: space-between;
  padding-inline: 4%;
}
.cv-text {
  width: fit-content;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 30px;
  align-items: center;
}
.cv-text p {
  width: fit-content;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  line-height: 1;
  text-align: center;
  letter-spacing: var(--letter-spacing);
}
.cv-text p span {
  margin-bottom: 5px;
  font-size: 2.2rem;
  font-weight: var(--fw_b);
}
.cv-text p a {
  font-size: 4rem;
  color: var(--c_main);
  font-weight: var(--fw_b);
}
.cv-text p a:before {
  content: "TEL:";
  font-size: 0.6em;
  margin-right: 4px;
}
.cv-text p em {
  font-size: 1.6rem;
}

.cv-btn-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cv-btn-wrap .btn {
  --height: 70px;
  width: 400px;
  font-size: 1.8rem;
}

@media (max-width: 520px) {
  .asd-cv {
    padding-top: 50px;
  }
  .asd-cv .content.flx {
    gap: 20px;
    padding-inline: 0;
  }
  .asd-cv .deco-en {
    font-size: min(6.6rem, 15vw);
  }
  .cv-text {
    grid-template-columns: 1fr;
    gap: 20px;
    justify-items: center;
  }
  .cv-text i {
    width: 20%;
  }
  .cv-text p span {
    font-size: 1.6rem;
  }
  .cv-text p a {
    font-size: 3.2rem;
  }
  .cv-text p em {
    font-size: 1.4rem;
  }

  .cv-btn-wrap {
    width: 100%;
  }
  .cv-btn-wrap .btn {
    --height: 60px;
    width: 80%;
    margin-top: 10px;
    font-size: 1.6rem;
  }
}

/** ====================================================
拠点一覧
==================================================== **/
/* location-list */
.location-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 70px;
}
.location-list li {
  padding-top: 40px;
  position: relative;
}
.location-list li::before {
  content: "";
  display: block;
  width: 70%;
  height: 330px;
  background: var(--c_main_d);
  background: linear-gradient(135deg, var(--c_main) 0%, var(--c_main_d) 100%);
  position: absolute;
  top: 0;
}
.location-list li > * {
  position: relative;
}
.location-list li figure {
  width: var(--base_width);
  margin: 0 auto;
}
.location-list li figure img {
  width: 100%;
  aspect-ratio: 2/1;
  object-fit: cover;
}
.location-list li .add-wrap {
  width: var(--base_width);
  margin: 20px auto 0;
  display: flex;
  gap: 50px;
}
.location-list li .add-wrap .address {
  flex: 1;
  margin-top: 15px;
}
.location-list li .add-wrap .address .tit {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--c_main);
}
.location-list li .add-wrap .address p {
  line-height: var(--lh_l);
  letter-spacing: var(--letter-spacing);
}
.location-list li .add-wrap .gmap {
  width: 56%;
  height: 300px;
}

/* てれこ */
.location-list li:nth-child(odd):before {
  right: 0;
}
.location-list li:nth-child(even) figure {
  margin-left: auto;
}
.location-list li:nth-child(even) .add-wrap {
  flex-direction: row-reverse;
}
.location-list li:nth-child(even):before {
  left: 0;
}

/* location-youtube */
.sec-location-youtube .youtube-wrap {
  width: min(90%, 980px);
  margin-inline: auto;
}
.sec-location-youtube .youtube {
  border: 10px solid #fff;
}

@media (max-width: 520px) {
  /* location-list */
  .location-list {
    gap: 80px;
  }
  .location-list li {
    padding-top: 30px;
  }
  .location-list li::before {
    width: 88%;
    height: 130px;
  }
  .location-list li figure {
    width: 94%;
    margin: 0;
  }
  .location-list li .add-wrap {
    flex-direction: column;
    margin: 20px auto 0;
    gap: 30px;
  }
  .location-list li .add-wrap .address {
    margin-top: 0;
  }
  .location-list li .add-wrap .address .tit {
    margin-bottom: 15px;
    font-size: 2.2rem;
    border-bottom-width: 1px;
  }
  .location-list li .add-wrap .gmap {
    width: 100%;
    height: 40vw;
  }

  /* てれこ */
  .location-list li:nth-child(odd):before {
    right: 0;
  }
  .location-list li:nth-child(even) figure {
    margin-left: auto;
  }
  .location-list li:nth-child(even) .add-wrap {
    flex-direction: column;
  }
  .location-list li:nth-child(even):before {
    left: 0;
  }

  /* location-youtube */
  .sec-location-youtube .youtube {
    border-width: 5px;
  }
}

/** ====================================================
事業内容
==================================================== **/
.page-img {
  width: 90%;
  margin: 30px auto;
  border-radius: var(--radius);
  overflow: hidden;
}
.page-img img {
  width: 100%;
  aspect-ratio: 9/2;
  object-fit: cover;
}

@media (max-width: 520px) {
  .page-img img {
    aspect-ratio: 3/1;
  }
}

/* -------------------------------------
sec-business-intro
-------------------------------------*/
.sec-business-intro p .strong {
  font-weight: var(--fw_m);
}

@media (max-width: 520px) {
  .sec-business-intro p strong {
    font-size: min(6vw, 4rem);
  }
}

/* -------------------------------------
sec-business-service
-------------------------------------*/
.sec-business-service01 {
  --service-color: var(--c_main);
}
.sec-business-service02 {
  --service-color: var(--c_sub);
}
.service-txt01 {
  width: min(100%, 1570px);
  margin-top: -260px;
  padding: 300px 0 40px;
}
.service-txt01 .tit_s {
  font-weight: var(--fw_sb);
}
.service-txt01 strong {
  padding-bottom: 5px;
  color: var(--service-color);
  border-bottom: 1px solid currentColor;
}
.service-main {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.service-main .text {
  width: 52%;
  line-height: var(--lh_l);
  letter-spacing: var(--letter-spacing);
}
.service-main figure {
  flex: 1;
}
.service-main .text strong {
  display: block;
  color: var(--service-color);
  line-height: var(--lh);
}

/* check-list */
.check-list {
  width: 78%;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 30px;
  padding: 12px;
  background: #fff;
}
.check-list li {
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: var(--fw_sb);
  line-height: var(--lh_s);
  letter-spacing: var(--letter-spacing);
}
.check-list li::before {
  content: "check_box";
  font-family: var(--icons);
  color: var(--service-color);
  font-size: 1.5em;
}

/* kint-service */
.kint-service {
  margin-top: 70px;
  padding: 30px 60px;
  color: #fff;
}
.kint-service .tit {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid currentColor;
}
.kint-service .tit::before {
  content: "■";
  margin-right: 6px;
}
.kint-service .strong {
  font-weight: var(--fw_m);
}

@media (max-width: 520px) {
  :is(.sec-business-service01, .sec-business-service02) .service-top .item .box {
    padding-block: 30px;
  }
  .service-txt01 {
    width: 100%;
    margin-top: -90px;
    padding: 115px 20px 25px;
  }
  .service-txt01 strong {
    font-size: 1.8rem;
  }
  div.service-main {
    flex-direction: column;
    gap: 30px;
    margin: 25px 6% 0;
    padding-left: 0;
  }
  .service-main .text {
    width: 100%;
  }
  .service-main .text .tit_s {
    width: 100%;
    margin-bottom: 0;
  }
  .service-main figure img {
    aspect-ratio: 5/3;
    object-fit: cover;
  }
  .service-main .text strong {
    display: block;
    color: var(--service-color);
  }

  /* check-list */
  .check-list {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 15px;
  }

  /* kint-service */
  .kint-service {
    margin-top: 0;
    padding: 30px 25px;

    margin-top: 0;
    padding: 30px 25px;
  }
  .kint-service .tit {
    margin-bottom: 15px;
    padding-bottom: 8px;
    border-bottom: 1px solid currentColor;
  }
  .kint-service .tit::before {
    content: "■";
    margin-right: 6px;
  }
  .kint-service .strong {
    font-size: 1.5rem;
    font-weight: var(--fw_n);
  }
}

/** ====================================================
販売車両情報 一覧
==================================================== **/
/* truck-cat */
.truck-cat {
  --grid: 5;
  --gap: 4px;
}
.truck-cat a {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 8px;
  padding: 10px 10px 14px;
  color: #fff;
  font-size: 1.4rem;
  font-weight: var(--fw_b);
  text-align: center;
  line-height: 1;
  background: var(--c_main);
}
.truck-cat a img {
  width: 70px;
}

/* truck-sub-cat */
.truck-sub-cat {
  display: flex;
  justify-content: center;
  gap: 5px;
  margin-top: 30px;
}
.truck-sub-cat a {
  width: 180px;
  display: flex;
  justify-content: center;
  gap: 1em;
  padding: 10px 5px 10px 25px;
  color: var(--c_main);
  line-height: 1;
  border: 1px solid currentColor;
}
.truck-sub-cat a::after {
  content: "chevron_right";
  font-family: var(--icons);
  width: 1em;
  white-space: nowrap; /* loading="lazy"の崩れ対策 */
}

/* truck-list */
.truck-list {
  --grid: 4;
  --gap: 14px;
  justify-content: start;
}
.truck-list li a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
  padding: 15px;
  background: var(--bg_main);
}
.truck-list li a figure img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.truck-list li a p {
  font-size: 1.4rem;
  font-weight: var(--fw_b);
  line-height: var(--lh_s);
}
.truck-list li a .info {
  --border: 1px dotted var(--gray);
  margin-bottom: 15px;
  border-top: var(--border);
}
.truck-list li a .info dl {
  display: grid;
  grid-template-columns: 7em 1fr;
  padding: 5px 0;
  font-size: 1.2rem;
  border-bottom: var(--border);
}
.truck-list li a .info dl dt {
  color: var(--gray);
  font-weight: var(--fw_b);
}
.truck-list li a [class^="btn"] {
  width: 95%;
  margin-top: auto;
  font-size: 1.2rem;
  color: var(--c_main);
  background: #fff;
}

@media (max-width: 520px) {
  /* truck-cat */
  .truck-cat {
    --grid: 2;
  }
  .truck-cat a {
    padding: 15px 10px;
    font-size: 1.4rem;
    font-weight: var(--fw_m);
  }
  .truck-cat a img {
    display: none;
  }

  /* truck-sub-cat */
  .truck-sub-cat a {
    width: 30%;
  }

  /* truck-list */
  .truck-list {
    --grid: 2;
    --gap: 10px;
  }
  .truck-list li a {
    gap: 12px;
    padding: 8px 8px 16px;
  }
  .truck-list li a .info {
    margin-bottom: 10px;
  }
  .truck-list li a .info dl {
    grid-template-columns: 6.5em 1fr;
    font-size: 1.1rem;
  }
}

/** ====================================================
販売車両情報 詳細
==================================================== **/
.print-header,
.print-footer {
  display: none;
}
/* -------------------------------------
truck01
-------------------------------------*/
/* truck-head */
.truck-head {
  margin-bottom: 20px;
}
.truck-head .tag-wrap {
  gap: 10px;
  margin-bottom: 10px;
}

/* truck-main */
.truck-main {
  --gap: 80px;
  --slide: 720px;
  --sub: calc(var(--base_width) - var(--slide) - var(--gap));
  display: grid;
  grid-template-columns: var(--slide) var(--sub);
  align-items: start;
  gap: var(--gap);
}

/* slide thumb */
.truck-main .thumb-main-slide-list .splide__slide img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
/* slide thumb */
.truck-main .splide__track--nav > .splide__list > .splide__slide {
  border: none;
}

#thumb-thumb-1 ul.thumb-main-list {
  --num: 6;
  --gap: 5px;
  display: flex !important;
  flex-wrap: wrap !important; /* 折り返して並べる */
  gap: var(--gap) !important;
  transform: none !important;
}
#thumb-thumb-1 ul.thumb-main-list li.splide__slide {
  width: calc((100% - var(--gap) * calc(var(--num) - 1)) / var(--num)) !important;
  height: auto !important;
  aspect-ratio: 4/3;
  margin: 0 !important;
  border: 3px solid #fff;
}
#thumb-thumb-1 ul.thumb-main-list li.splide__slide.is-active {
  border-color: var(--c_main);
}
#thumb-thumb-1 .splide__arrow {
  display: none;
}

/* sub */
.truck-main .sub {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
  margin-top: 10px;
}
.truck-main .sub .links {
  width: 80%;
}

/* links */
.links .pdf {
  --height: 40px;
  display: flex;
  align-items: center;
  gap: 15px;
  width: 100%;
  height: var(--height);
  padding: 24px 1em;
  font-size: 1.5rem;
  font-weight: var(--fw_b);
  line-height: var(--lh_s);
  border-bottom: 1px dotted var(--gray);
}
.links .pdf::after {
  --width: 22px;
  --mask: url(../images/ico-pdf.svg) center / contain no-repeat;
  content: "";
  width: var(--width);
  aspect-ratio: 1/1;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background: var(--c_main);
}

.links :is(.btn, [class^="btn_"]) {
  --height: 45px;
  width: 100%;
  margin: 15px auto 0;
  font-size: 1.4rem;
}
.links .btn_print {
  justify-content: center;
  margin-top: 30px;
  cursor: pointer;
}
.links .btn_print::before {
  --width: 25px;
  --mask: url(../images/ico-print.svg) center / contain no-repeat;
  content: "";
  width: var(--width);
  aspect-ratio: 50/45;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background: currentColor;
}
.links .btn_print::after {
  display: none;
}
.links .btn_print span {
  flex: none;
  justify-content: center;
}

@media (max-width: 520px) {
  /* truck-head */
  .truck-head {
    margin-bottom: 10px;
  }
  .truck-head .tag-wrap {
    gap: 6px;
  }

  /* truck-main */
  .truck-main {
    min-width: 100%;
    display: block;
  }

  /* slide thumb */
  #thumb-thumb-1 ul.thumb-main-list {
    --num: 5;
    --gap: 5px;
    width: 94%;
    margin: 0 auto !important;
  }

  /* sub */
  .truck-main .sub {
    width: 88%;
    gap: 30px;
    margin: 30px auto 0;
  }
  .truck-main .sub .links {
    width: 96%;
    order: 2;
    justify-content: flex-start;
    margin-inline: auto;
  }
  .truck-main .sub p {
    order: 1;
  }

  /* links */
  .links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0 10px;
  }
  .links .pdf {
    gap: 15px;
    width: fit-content;
    margin: 0 5px 20px 0;
    padding: 0 20px;
    font-size: 1.4rem;
    border-bottom: none;
    background: var(--bg_gray);
  }
  .links .pdf::after {
    --width: 20px;
  }

  .links :is(.btn, [class^="btn_"]) {
    --height: 50px;
    width: 100%;
    margin: 10px auto 0;
  }
  .links .btn_print {
    margin-top: 10px;
  }
  .links .btn_print::before {
    --width: 23px;
  }
}

/* -------------------------------------
truck02
-------------------------------------*/
/* truck-tbl */
.truck-tlb-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
.truck-tbl {
  --width: calc(100% / 3);
  --th: 150px;
  width: 100%;
  border-top: var(--border);
  /* 固定幅にする */
  table-layout: fixed;
}
.truck-tbl tr {
  border-bottom: var(--border);
}
.truck-tbl :is(th, td) {
  padding: 14px 15px;
  font-size: 1.5rem;
  vertical-align: top;
  text-align: left;
}

.truck-tbl tr th {
  width: var(--th);
  font-weight: var(--fw_m);
  background: var(--bg_main);
}
.truck-tbl tr td {
  width: calc(var(--width) - var(--th));
}
.truck-tbl tr td .specs {
  display: grid;
  grid-template-columns: 4.5em 1fr;
}
.truck-tbl tr td .specs + .specs {
  margin-top: 20px;
}
.truck-tbl tr td .specs p {
  font-size: 1.3rem;
  font-weight: var(--fw_m);
}
.truck-tbl tr td .specs p::before,
.truck-tbl tr td .specs p::after {
  content: "-";
  margin-inline: 3px;
}
.truck-tbl tr td .specs .item {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.truck-tbl tr td .specs .item span {
  padding: 5px 10px;
  font-size: 1.2rem;
  color: #ccc;
  line-height: 1;
  background: var(--bg_gray);
  border-radius: 4px;
}
.truck-tbl tr td .specs .item span[data-check="on"] {
  color: #fff;
  background: var(--c_main);
}

@media (max-width: 520px) {
  /* truck-tbl */
  .truck-tlb-wrap {
    gap: 30px;
  }
  .truck-tbl {
    display: grid;
    --width: 100%;
    --th: 100px;
  }
  .truck-tbl tr {
    display: flex;
    flex-wrap: wrap;
    border-bottom: none;
  }
  .truck-tbl :is(th, td) {
    padding: 12px;
    font-size: 1.4rem;
    border-bottom: var(--border);
  }
  .truck-tbl tr td .specs {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .truck-tbl tr td .specs p::before,
  .truck-tbl tr td .specs p::after {
    content: "-";
    margin-inline: 4px;
  }
}

/** ====================================================
会社案内
==================================================== **/
/* -------------------------------------
anchor-links
-------------------------------------*/
.anchor-links {
  --border: 3px solid var(--bg_main);
  display: flex;
  justify-content: center;
  margin: 30px auto 0;
}
.anchor-links a {
  width: clamp(10em, 14vw, 280px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0 5px;
  padding: 10px 5px;
  font-size: 1.8rem;
  color: var(--c_main);
  font-weight: var(--fw_b);
  text-align: center;
  line-height: var(--lh_s);
  letter-spacing: var(--letter-spacing);
  border-right: var(--border);
}
.anchor-links a:first-child {
  border-left: var(--border);
}
.anchor-links a::after {
  content: "arrow_drop_down";
  font-family: var(--icons);
  font-size: 1.4em;
  line-height: 1;
}
.anchor-links a i {
  font-family: var(--font_en);
  font-size: 1.2rem;
  color: var(--gray_l);
  font-weight: var(--fw_n);
}

@media (max-width: 520px) {
  .anchor-links {
    --border: none;
    --num: 2;
    --gap: 5px;
    --width: calc((100% - var(--gap) * calc(var(--num) - 1)) / var(--num));
    gap: var(--gap);
    justify-content: flex-start;
    flex-wrap: wrap;
    width: 92%;
    margin: 15px auto 0;
  }
  .anchor-links a {
    width: var(--width);
    padding: 15px 5px 7px;
    font-size: 1.4rem;
    background: var(--bg_main);
  }
  .anchor-links a::after {
    font-size: 1.2em;
  }
  .anchor-links a i {
    display: none;
  }
}

/* -------------------------------------
message
-------------------------------------*/
.message {
  display: flex;
  gap: 50px;
}
.message .text {
  flex: 1;
  line-height: var(--lh_l);
  letter-spacing: var(--letter-spacing);
}
.message .text .ceo {
  display: block;
  margin-top: 2em;
  text-align: right;
}
.message .text .ceo strong {
  display: inline-block;
  margin-left: 1em;
  font-weight: var(--fw_n);
}
.message figure {
  width: 35%;
}

@media (max-width: 520px) {
  .message {
    flex-direction: column-reverse;
    gap: 25px;
    padding-inline: 3%;
  }
  .message figure {
    width: 94%;
    margin: 0 auto;
  }
}

/* -------------------------------------
concept
-------------------------------------*/
.sec-concept {
  --bg_img: url(../images/company/concept-bg.jpg);
}
.sec-concept .content-box .strong {
  font-weight: var(--fw_m);
}

@media (max-width: 520px) {
  .sec-concept {
    --bg_img: url(../images/company/concept-bg.jpg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.2) 60%), var(--bg_img);
    background-size: 100% auto;
    background-repeat: no-repeat;
  }
}

/* -------------------------------------
rinen
-------------------------------------*/
.sec-rinen {
  color: #fff;
}

@media (max-width: 520px) {
  .sec-rinen p {
    padding-inline: 5%;
  }
  .sec-rinen .fs26 {
    font-size: min(4.4vw, 2rem);
  }
}

/* -------------------------------------
derivation
-------------------------------------*/
/* derivation-dl */
.derivation-dl {
  --dt: 340px;
  --dd: calc(100% - var(--dt) - var(--gap));
  --gap: 1px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px var(--gap);
}
.derivation-dl > * {
  padding: 18px 30px;
}
.derivation-dl dt {
  width: var(--dt);
  font-size: 2.4rem;
  color: #fff;
  font-weight: var(--fw_b);
  letter-spacing: var(--letter-spacing);
  background: var(--c_main);
}
.derivation-dl dt span {
  display: inline-block;
  margin-left: 0.8em;
  font-size: 0.7em;
  font-weight: var(--fw_n);
}
.derivation-dl dd {
  width: var(--dd);
  display: flex;
  align-items: center;
  font-weight: var(--fw_m);
  background: var(--bg_main);
}

.sec-derivation .text {
  letter-spacing: var(--letter-spacing);
  line-height: var(--lh_l);
}

@media (max-width: 520px) {
  /* derivation-dl */
  .derivation-dl {
    --dt: 150px;
  }
  .derivation-dl > * {
    padding: 18px 15px;
  }
  .derivation-dl dt {
    font-size: 1.7rem;
  }
  .derivation-dl dt span {
    display: block;
    font-size: 0.9em;
  }
  .derivation-dl dd {
    font-size: 1.4rem;
  }

  .sec-derivation .text {
    width: 98%;
    margin-inline: auto;
  }
}

/** ====================================================
お知らせ一覧
==================================================== **/
/* -------------------------------------
news-list
-------------------------------------**/
.news-list {
  --row: 2;
  --gap: 25px;
  --gap-block: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-block) var(--gap);
}
.news-list li {
  width: calc((100% - var(--gap) * calc(var(--row) - 1)) / var(--row));
}
.news-list li a {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  font-size: 1.5rem;
  line-height: 1.4;
}
.news-list li a figure img {
  aspect-ratio: 3/2;
  width: 100%;
}
.news-list li a p {
  font-weight: var(--fw_m);
}
.l-container .l-sidebar .news-list {
  --row: 1;
  padding-inline: 2px;
}
.l-container .l-sidebar .news-list li a {
  font-size: 1.4rem;
}

@media (max-width: 520px) {
  .l-container .l-sidebar .news-list {
    --row: 2;
    --gap: 15px;
    --gap-block: 20px;
  }
  .l-container .l-sidebar .news-list li a {
    font-size: 1.4rem;
  }
}

.etc-wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 10px;
}

.etc-wrap time {
  margin-left: auto;
  color: var(--gray);
  font-size: 1.2rem;
  line-height: 1;
}

/** ====================================================
お問い合わせ
==================================================== **/
/* -------------------------------------
sec-cv-tel
-------------------------------------*/
.sec-cv-tel .tel-box {
  padding: 30px 40px 40px;
  border: 1px solid var(--c_main);
}
.sec-cv-tel .tel-box .tit {
  line-height: 1.7;
}
.sec-cv-tel .cv-text {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.sec-cv-tel .cv-text i {
  width: 80px;
}
.sec-cv-tel .cv-text p {
  width: fit-content;
  margin-top: -20px;
}
.sec-cv-tel .cv-text p a {
  font-size: 4rem;
}

@media (max-width: 520px) {
  .sec-cv-tel .tel-box.w800 {
    max-width: 90%;
    padding: 0;
    border: none;
  }
  .sec-cv-tel .tel-box .tit {
    font-size: min(4.3vw, 2rem);
  }

  .sec-cv-tel .cv-text {
    flex-direction: column;
  }
  .sec-cv-tel .cv-text i {
    width: 20%;
  }
  .sec-cv-tel .cv-text p {
    margin-top: 0;
  }
  .sec-cv-tel .cv-text p a {
    font-size: 3.2rem;
  }
}

/* -------------------------------------
sec-cv-form
-------------------------------------*/
.sec-cv-form {
  margin-top: -12px;
}
.sec-cv-form .text {
  color: #fff;
  font-weight: var(--fw_n);
}
.sec-cv-form .form {
  padding: 50px;
  background: #fff;
}

@media (max-width: 520px) {
  .sec-cv-tel + .deco-en {
    font-size: min(5.2rem, 12vw);
  }
  .sec-cv-form {
    margin-top: -9px;
    padding-top: 40px;
  }
  .sec-cv-form .text {
    font-size: 1.4rem;
    text-align: left;
  }
  .sec-cv-form .form {
    padding: 30px 15px;
  }
}

/** ====================================================
プライバシーポリシー
==================================================== **/
#privacy section h2 {
  margin-bottom: 6px;
  font-size: 1.2em;
}
#privacy section p + h2 {
  margin-top: 30px;
}
#privacy section p a {
  display: inline;
  color: var(--c_main_d);
  border-bottom: var(--dot);
}
