@charset "UTF-8";
/* ***************************************** */
/* --- リセット --- */
/* ***************************************** */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@font-face {
  font-family: "icomoon";
  src: url("../font/icomoon.ttf?nfryio") format("truetype"), url("../font/icomoon.woff?nfryio") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
[class^=icon-], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-angle1-up:before { content: "\e903"; }
.icon-angle1-down:before { content: "\e900"; }
.icon-angle1-next:before { content: "\e901"; }
.icon-angle1-prev:before { content: "\e902"; }
.icon-angle2-up:before { content: "\e907"; }
.icon-angle2-down:before { content: "\e906"; }
.icon-angle2-next:before { content: "\e91f"; }
.icon-angle2-prev:before { content: "\e91e"; }
.icon-angle2-double-next:before { content: "\e904"; }
.icon-angle2-double-prev:before { content: "\e905"; }
.icon-arrow-up:before { content: "\e934"; }
.icon-arrow-down:before { content: "\e918"; }
.icon-arrow-next:before { content: "\e919"; }
.icon-arrow-prev:before { content: "\e91a"; }
.icon-arrow-up-round:before { content: "\e933"; }
.icon-arrow-down-round:before { content: "\e91d"; }
.icon-arrow-next-round:before { content: "\e931"; }
.icon-arrow-prev-round:before { content: "\e932"; }
.icon-arrow-up-circle:before { content: "\e917"; }
.icon-arrow-down-circle:before { content: "\e914"; }
.icon-arrow-next-circle:before { content: "\e915"; }
.icon-arrow-prev-circle:before { content: "\e916"; }
.icon-arrow-up-circle2:before { content: "\e92d"; }
.icon-arrow-down-circle2:before { content: "\e92a"; }
.icon-arrow-next-circle2:before { content: "\e92b"; }
.icon-arrow-prev-circle2:before { content: "\e92c"; }
.icon-hamburger:before { content: "\e92f"; }
.icon-close:before { content: "\e90c"; }
.icon-plus:before { content: "\e912"; }
.icon-home:before { content: "\e91b"; }
.icon-mail:before { content: "\e911"; }
.icon-mail-black:before { content: "\e90d"; }
.icon-external:before { content: "\e942"; }
.icon-search:before { content: "\e91c"; }
.icon-search-global:before { content: "\e923"; }
.icon-return:before { content: "\e926"; }
.icon-freetel:before { content: "\e90e"; }
.icon-tel:before { content: "\e921"; }
.icon-member:before { content: "\e940"; }
.icon-exclamation:before { content: "\e925"; }
.icon-minus:before { content: "\e910"; }
.icon-book:before { content: "\e941"; }
.icon-bookmark:before { content: "\e927"; }
.icon-diamond:before { content: "\e928"; }
.icon-gear:before { content: "\e930"; }
.icon-tire:before { content: "\e924"; }
.icon-en:before { content: "\e920"; }
.icon-download:before { content: "\e922"; }
.icon-note:before { content: "\e90f"; }
.icon-profile:before { content: "\e92e"; }
.icon-check:before { content: "\e90b"; }
.icon-fax:before { content: "\e913"; }
.icon-broom:before { content: "\e909"; }
.icon-car-side:before { content: "\e929"; }
.icon-car:before { content: "\e90a"; }
.icon-home3:before { content: "\e908"; }
.icon-magic-wand:before { content: "\e997"; }
.icon-trophy:before { content: "\e99e"; }
.icon-menu:before { content: "\e9bd"; }
.icon-cross:before { content: "\ea0f"; }
.icon-play3:before { content: "\ea1c"; }

* { box-sizing: border-box; }
body, div, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, p, th, td, form, input, textarea, fieldset, pre, blockquote {
  padding: 0;
  margin: 0;
}
body {
  overscroll-behavior-y: none;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
header, footer, nav, menu, main,
article, aside, section,
details, figcaption, figure {
  display: block;
}
h1, h2, h3, h4, h5, h6, th { font-weight: normal; }
ul, ol { list-style: none; }
table { border-collapse: collapse; }
caption, th { text-align: left; }
img { vertical-align: bottom; }
a {
  color: inherit;
  text-decoration: none;
}
a img { border: none; }
a:hover img { text-decoration: none; }
i { font-style: normal; }
strong { font-weight: normal; }
figure { display: inline-block; }
@media only screen and (min-width: 768px), print {
  a[href^=tel] { cursor: default; }
  a[href^=tel]:hover { text-decoration: none; }
}
input, textarea, select, option { font-size: 16px; }


/* ***************************************** */
/* --- 初期設定 --- */
/* ***************************************** */
/* カラー変数 ------------------------------ */
:root {
  --c-gray1: #333;
  --c-gray2: #999;
  --c-gray3: #eee;
  --c-color1: #C7362C;
  --c-color2: #f94d4d;
  --c-link: #555;
  --c-link-hover: #888;
  --c-link-current: #aaa;
}

/* 初期設定 -------------------------------- */
html {
  font-size: 16px;
  color: #000;
}
h1, h2, h3, h4, h5, h6 { line-height: 1.5; }
p, li, dt, dd, th, td {
  font-feature-settings: "palt" 1;
  letter-spacing: 0.055em;
  line-height: 1.7;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover,
a:hover img {
  text-decoration: none;
}
img {
  width: 100%;
  height: auto;
}
input[type=text],
input[type=tel],
input[type=email],
input[type=number],
textarea,
button {
  -webkit-appearance: none;
}
input[type=text],
input[type=tel],
input[type=email],
input[type=number],
textarea,
select,
option,
button {
  max-width: 100%;
  padding: 0;
  border-radius: 0px;
  border: 1px solid #8b8b8b;
  background-color: #fff;
  background-image: none;
  box-shadow: 0px 0px 0px transparent, inset 0px 0px 0px transparent;
  font-size: 18px;
}
@media only screen and (min-width: 768px), print {
  input[type=text],
  input[type=tel],
  input[type=email],
  input[type=number],
  textarea,
  select,
  option,
  button {
    font-size: 16px;
  }
}
select { background-color: #fff; }
input[type=text]::-webkit-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=text]::-moz-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=text]:-ms-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=text]::placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=tel]::-webkit-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=tel]::-moz-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=tel]:-ms-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=tel]::placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=email]::-webkit-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=email]::-moz-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=email]:-ms-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=email]::placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}

input[type=number]::-webkit-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=number]::-moz-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=number]:-ms-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=number]::placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
textarea::-webkit-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
textarea::-moz-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
textarea:-ms-input-placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
textarea::placeholder {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--c-gray2);
}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] { -moz-appearance: textfield; }

/* reCAPTCHA非表示 */
.grecaptcha-badge { visibility: hidden; }


/* ***************************************** */
/* --- 汎用 --- */
/* ***************************************** */
@media only screen and (max-width: 767px) {
  .m-hidden-sp { display: none; }
}
@media only screen and (min-width: 768px), print {
  .m-hidden-pc { display: none; }
}
@media only screen and (min-width: 1400px), print {
  .m-hidden-pc-wide { display: none; }
}

/* クリック範囲の拡大 */
.range { position: relative; }
.range:hover, .range:active { opacity: 0.9; }
.range a::before {
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  content: "";
}


/* ***************************************** */
/* --- header --- */
/* ***************************************** */
.header { background-color: #FFF; }
.home .header {
  width: 100%;
  background-color: transparent;
  position: absolute;
  top: 0;
  z-index: 9999;
}
.header-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px 0;
  padding: 10px 5%;
}
.header-inner .logo-box {
  position: relative;
  width: 100%;
}
.header-inner .logo-box .logo { width: 70%; }
.header-inner .logo-box .btn-open {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  background-color: transparent;
  border: none;
  cursor: pointer;
}
.header-inner .logo-box .btn-open span {
  display: inline-block;
  height: 2px;
  background-color: #1a1a1a;
  width: 25px;
  margin-bottom: 8px;
}
.header-inner .logo-box .btn-open span:last-child {
  margin-bottom: 0;
}
.header-inner .head-title {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 300;
  text-align: center;
  line-height: 1.5;
  font-size: 3.2vmin;
}
.header-inner .head-title span {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 2.5em;
}

/* 検索マド */
.header-inner .m-search {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 15px 0 10px;
  border: 1px solid var(--c-gray3);
  background: #FFF;
}
.header-inner .m-search input[type=text] {
  width: 100%;
  height: 34px;
  line-height: 34px;
  padding: 0 8px;
  border: none;
}
.header-inner .m-search button {
  border: none;
  margin: 0 7px;
}
.header-inner .m-search button::before {
  font-family: icomoon;
  content: "\e91c";
  color: #C6362C;
  font-size: 19px;
}
@media only screen and (max-width: 767px) {
  .header-inner .logo { max-width: 250px; }
  .header-inner .m-search { display: none; }
  .home .header-inner .m-search { display: flex; }
}
@media only screen and (min-width: 768px), print {
  .header-inner {
    flex-wrap: nowrap;
    justify-content: center;
    position: relative;
    gap: 10px 0;
    height: 100px;
    padding: 15px 20px;
  }
  .header-inner .logo-box { width: min(20%, 360px); }
  .header-inner .logo-box .logo { width: 100%; }
  .header-inner .logo-box .btn-open { display: none; }
  .header-inner .head-title {
    width: auto;
    font-size: 16px;
  }
  .header-inner .head-title span { font-size: 2.7em; }

  /* 検索マド */
  .header-inner .m-search {
    position: relative;
    top: 25%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    width: 20%;
    max-width: 250px;
    margin: 0;
    border: 1px solid var(--c-gray3);
    background-color: #fff;
  }
  .header-inner .m-search input[type=text] {
    width: 100%;
    height: 34px;
    line-height: 34px;
    padding: 0 8px;
    border: none;
  }
  .header-inner .m-search button {
    border: none;
    margin: 0 7px;
  }
  .header-inner .m-search button::before {
    font-family: icomoon;
    content: "\e91c";
    color: #C6362C;
    font-size: 19px;
  }
}

/* gnavi ----------------------------------- */
@media only screen and (max-width: 767px) {
  .gnavi {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 100vh;
    background-color: var(--c-gray3);
  }
  .gnavi.on { display: block; }
  .gnavi ul {
    width: 90%;
    margin: auto;
    padding-top: 13vmin;
  }
  .gnavi ul a {
    display: block;
    padding: 2vmin 3%;
    border-top: 1px solid var(--c-gray1);
    font-size: 5vmin;
  }
  .gnavi ul a::before {
    font-family: icomoon;
    content: "\ea1c";
    margin-right: 8px;
    font-size: 0.8em;
  }
  .gnavi ul a br { display: none; }
  .gnavi li:last-of-type { border-bottom: 1px solid var(--c-gray1); }
  .gnavi .m-search {
    display: flex;
    align-items: center;
    width: 90%;
    margin: auto;
    margin-top: 6vmin;
    background-color: #fff;
    border: none;
  }
  .gnavi .m-search input[type=text] {
    width: 100%;
    height: 34px;
    line-height: 34px;
    padding: 0 3%;
    border-radius: 0;
    border: none;
  }
  .gnavi .m-search button {
    border: none;
    margin: 0 10px;
  }
  .gnavi .m-search button::before {
    font-family: icomoon;
    content: "\e91c";
    color: #C6362C;
    font-size: 19px;
  }
  .gnavi .addtoany_shortcode {
    display: flex;
    justify-content: center;
    margin-top: 6vmin;
  }
  .btn-close {
    position: absolute;
    top: 0;
    right: 5%;
    z-index: 1;
    width: 13vmin;
    height: 13vmin;
    background-color: transparent;
    border: none;
    cursor: pointer;
  }
  .btn-close span {
    display: inline-block;
    position: absolute;
    right: -4px;
    height: 2px;
    background-color: #1a1a1a;
    width: 30px;
    top: 50%;
  }
  .btn-close span:nth-child(1) { transform: translateY(-50%) rotate(-45deg); }
  .btn-close span:nth-child(2) { transform: translateY(-50%) rotate(45deg); }
}
@media only screen and (min-width: 768px), print {
  .btn-close { display: none; }
  .gnavi {
    display: block !important;
    width: 55%;
    max-width: 800px;
    margin-left: auto;
  }
  .gnavi ul {
    display: flex;
    width: 100%;
    max-width: 100%;
    margin: auto;
    padding: 0 15px;
  }
  .gnavi li {
    display: flex;
    width: 25%;
  }
  .gnavi li a {
    transition: background-color 0.3s;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    padding: 10px;
    line-height: 1.3;
    font-size: 0.8em;
    font-weight: 500;
    color: var(--c-gray1);
  }
  .gnavi li a:hover { opacity: 0.8; }
  .gnavi li a:hover::after {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    margin: 0 auto;
    transform: translateY(-50%);
    display: block;
    content: "";
    width: 50px;
    height: 3px;
    background-color: #C6362C;
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
  }
  .gnavi li.current-post-parent a::after,
  .gnavi li.current-menu-item a::after {
    display: block;
  }
  .gnavi li:first-child { display: none; }
  .gnavi .m-search { display: none; }
  .gnavi .addtoany_list { display: none; }
}
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* slider ---------------------------------- */
.swiper {
  opacity: 0;
  transition: 1s;
  margin-bottom: 0 !important;
}
/* ページ読み込み時に、一瞬縦並びになるのを防止 */
/* swiper-initializedが付与されたら表示 */
.swiper.swiper-initialized {
  height: auto;
  opacity: 1;
  transition: 1s;
}
#slider,
#slider-bg {
  overflow: hidden;
}
.key-visual { position: relative; }
#slider {
  position: relative;
  padding-top: 123px;
  z-index: 1;
}
#slider .pagination-box .swiper-pagination-bullets {
  position: static;
  width: 94%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: auto;
  z-index: 1;
}
#slider .pagination-box .swiper-pagination-bullets.bullet_left {
  justify-content: left;
}
#slider .pagination-box .swiper-pagination-bullet {
  display: block;
  background: #FFF;
  width: calc(12.5% - 9px);
  height: 3px;
  border-radius: 2px;
  margin: 0 10px 0 !important;
}
#slider .pagination-box .swiper-pagination-bullet:nth-child(8n),
#slider .pagination-box .swiper-pagination-bullet:last-child {
  margin-right: 0;
}
#slider .pagination-box .swiper-pagination-bullet-active {
  background: #000000;
}
.top-slider--main { position: relative; }
.swiper-slide img {
  width: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  aspect-ratio: unset !important;
}
.swiper-slide p { background-color: #FFF; }
.swiper-slide span { font-size: 1.2em; }
#slider-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.5;
}
#slider-bg .swiper-slide {
  background: center no-repeat;
  background-size: 100% auto;
  filter: blur(30px);
}
@media only screen and (max-width: 767px) {
  #slider .pagination-box { margin: 20px 0 30px; }
  .swiper-slide img { height: 250px; }
  .swiper-slide p {
    padding: 20px 15px;
    font-size: 3.6vmin;
  }
  #slider-bg {
    height: 130%;
    top: -30%;
  }
  #slider-bg .swiper-slide {
    background-size: 270% auto;
  }
}
@media only screen and (min-width: 768px), print {
  #slider {
    width: 100%;
    padding-top: 100px;
    margin: auto;
  }
  #slider .pagination-box {
    max-width: 500px;
    margin: 20px auto;
  }
  .top-slider--main {
    display: flex;
    align-items: center;
    width: 100%;
  }
  .swiper-slide p { padding: 14px 20px; }
}
@media only screen and (min-width: 1024px), print {
  #slider .pagination-box { margin: 40px auto 30px; }
  .top-slider--main .swiper-slide {
    position: relative;
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
    transition: 0.5s;
    display: flex;
    flex-direction: column;
  }
  .top-slider--main .swiper-slide .img-box {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
  }
  .top-slider--main .swiper-slide.swiper-slide-active {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
    transition: 0.5s;
  }
}


/* ***************************************** */
/* --- fotter --- */
/* ***************************************** */
.footer {
  background-color: var(--c-color1);
  color: #fff;
}
.footer .footer-title {
  padding: 6.3vmin 0 5vmin;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 300;
  text-align: center;
  font-size: 3.4vmin;
  line-height: 1.5;
}
.footer .footer-title span {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 2.5em;
}
.footer .footer-menu {
  width: 90%;
  margin: auto;
}
.footer .footer-menu a {
  display: block;
  height: 50px;
  line-height: 50px;
  padding: 0 3%;
  border-top: 1px dotted #fff;
}
.footer .footer-menu a::before {
  display: inline-block;
  font-family: icomoon;
  content: "\ea1c";
  margin-right: 8px;
  font-size: 0.8em;
}
.footer .footer-menu li:last-of-type {
  border-bottom: 1px dotted #fff;
}
.footer .footer-menu li:nth-of-type(n+3):nth-of-type(-n+6) a {
  padding-left: 10%;
}
.footer .addtoany_shortcode { display: none; }
.footer .copy {
  height: 60px;
  line-height: 60px;
  text-align: center;
}
@media only screen and (min-width: 768px), print {
  .footer .footer-inner {
    position: relative;
    display: flex;
    width: 1240px;
    max-width: 100%;
    margin: auto;
    padding: 0 20px;
    padding-top: 36px;
    font-size: 16px;
  }
  .footer .footer-title {
    width: 430px;
    padding: 0;
    font-size: 1.2vw;
    line-height: 1.5;
  }
  .footer .footer-title span {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt" 1;
    font-weight: 500;
    font-size: 1.8em;
  }
  .footer .footer-menu {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    height: 250px;
    padding-left: 5%;
  }
  .footer .footer-menu a {
    display: inline-block;
    height: auto;
    line-height: 1.3;
    padding: 0;
    border-top: none;
    font-size: 1.4vw;
  }
  .footer .footer-menu a::before { transition: transform 0.3s; }
  .footer .footer-menu a:hover::before { transform: translateX(5px); }
  .footer .footer-menu li {
    line-height: 1.4;
    margin-bottom: 17px;
  }
  .footer .footer-menu li:last-of-type { border-bottom: none; }
  .footer .footer-menu li:nth-of-type(n+3):nth-of-type(-n+6) a {
    padding-left: 23px;
  }
  .footer .addtoany_shortcode {
    display: block;
    width: 380px;
  }
  .footer .copy {
    position: absolute;
    bottom: 10px;
    right: 20px;
    height: auto;
    line-height: 60px;
    text-align: center;
  }
}
@media only screen and (min-width: 1240px), print {
  .footer .footer-title { font-size: 15px; }
  .footer .footer-title span { font-size: 1.7em; }
  .footer .footer-menu a { font-size: 16px; }
  .footer .addtoany_shortcode {
    display: block;
    width: 380px;
  }
  .footer .copy {
    position: absolute;
    bottom: 10px;
    right: 20px;
    height: auto;
    line-height: 60px;
    text-align: center;
  }
}

/* footer-cta */
.footer { padding-bottom: 28vmin; }

.inquiry_session footer,
.inquiry_session2 footer,
.inquiry_thanks footer,
.inquiry_thanks2 footer,
.inquiry_siryo footer,
.download footer {
  padding-bottom: 0;
}
.footer-cta-sp {
  display: flex;
  position: fixed;
  bottom: 0;
  z-index: 100;
}
.footer-cta-pc {
  display: none;
  bottom: 5%;
  z-index: 100;
}
@media only screen and (min-width: 768px), print {
  .footer { padding-bottom: 0; }
  .footer-cta-sp { display: none; }
  .footer-cta-pc {
    position: fixed;
    display: block;
    right: 0;
    bottom: 5%;
  }
  .footer-cta-pc img { width: 180px; }
}


/* ***************************************** */
/* --- レイアウト --- */
/* ***************************************** */
/* 大枠 ------------------------------------ */
body { background-color: var(--c-gray3); }
main {
  width: 90%;
  margin: 20px auto;
}
.right { margin-top: 40px; }
@media only screen and (min-width: 768px), print {
  main {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 1240px;
    max-width: 100%;
    margin: 50px auto;
    padding: 0 20px;
  }
  .left { width: calc(100% - 300px); }
  .right {
    width: 260px;
    margin: 0;
  }
}

/* l-layout-a ------------------------------ */
.l-layout-a { margin-bottom: 40px; }
.l-layout-a ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6vmin 0;
}
.l-layout-a li { background-color: #fff; }
.l-layout-a a { display: block; }
.l-layout-a .text { padding: 12px 5%; }
.l-layout-a img {
  width: 100%;
  height: auto;
  aspect-ratio: 20/11;
  object-fit: cover;
  object-position: 50% 50%;
}
.l-layout-a h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
}
@media only screen and (min-width: 768px), print {
  .l-layout-a ul { gap: 30px 2%; }
  .l-layout-a li { width: 32%; }
  .l-layout-a li.no-article { width: 100%; }
  .l-layout-a a { transition: opacity 0.5s; }
  .l-layout-a a:hover { opacity: 0.7; }
}

/* l-layout-b ------------------------------ */
.l-layout-b {
  background-color: #fff;
  margin-bottom: 40px;
  padding: 16px 4%;
  border-top: 3px solid var(--c-color1);
}
.l-layout-b:last-of-type { margin-bottom: 0; }
.l-layout-b li {
  margin-top: 17px;
  padding-top: 21px;
  border-top: 1px dotted #000;
}
.l-layout-b li:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.l-layout-b li:last-of-type { margin-bottom: 10px; }
.l-layout-b h3 {
  margin: 0.5em 0;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 18px;
}
@media only screen and (min-width: 768px), print {
  .l-layout-b li {
    padding-left: 1%;
    padding-right: 1%;
  }
  .l-layout-b img { width: 40%; }
  .l-layout-b div { width: 57%; }
  .l-layout-b a {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    transition: opacity 0.5s;
  }
  .l-layout-b a:hover { opacity: 0.7; }
}

.crp_related .crp_title {
  display: block;
  margin: 0.5em 0;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 18px;
}
.crp_related .crp_excerpt {
  display: block;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 16px;
}
@media only screen and (min-width: 768px), print {
  .l-layout-b .crp_related { width: 100%; }
  .crp_related ul { overflow: hidden; }
  .crp_related a {
    display: flex;
    justify-content: space-between;
  }
  .crp_related figure { width: 40%; }
  .crp_related img { width: 100%; }
  .crp_related .crp_title {
    width: 57%;
    margin: 0.5em 0;
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt" 1;
    font-weight: 500;
    font-size: 18px;
  }
}


/* ***************************************** */
/* --- 見出し --- */
/* ***************************************** */
.m-heading-a {
  position: relative;
  margin-bottom: 6vmin;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 6vmin;
}
.m-heading-a::before, .m-heading-a::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -5px;
  height: 3px;
}
.m-heading-a::before {
  left: 0;
  width: 30%;
  background-color: var(--c-color1);
}
.m-heading-a::after {
  right: 0;
  width: 70%;
  background-color: #000;
}
@media only screen and (min-width: 768px), print {
  .m-heading-a {
    display: block;
    margin-bottom: 26px;
    font-size: 32px;
  }
}


/* ***************************************** */
/* --- パーツ --- */
/* ***************************************** */
.cat {
  display: table;
  margin-bottom: 8px;
  padding: 4px 10px;
  border: 1px solid var(--c-gray2);
  background-color: var(--c-gray3);
  font-size: 0.8em;
}

/* 記事内広告 */
.block-add a {
  display: block;
  position: relative;
  transition: filter 0.3s;
}
.block-add a:hover {
  filter: brightness(110%);
}
.block-add a::after {
  content: "";
  position: absolute;
  top: 0;
  height: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  background-size: 100% 100%;
}


/* ***************************************** */
/* --- ページング、パンくず --- */
/* ***************************************** */
/* パンくず -------------------------------- */
.pankuzu ol {
  display: flex;
  flex-wrap: wrap;
  padding: 14px 5%;
}
.pankuzu li { font-size: 0.8em; }
.pankuzu li::after {
  font-family: icomoon;
  content: "\e901";
  margin: 0 5px;
  vertical-align: 1px;
  font-size: 0.7em;
}
.pankuzu li:last-of-type::after { display: none; }
@media only screen and (min-width: 768px), print {
  .pankuzu { background-color: transparent; }
  .pankuzu ol {
    width: 1240px;
    max-width: 100%;
    margin: auto;
    margin-top: 24px;
    margin-bottom: -20px;
    padding: 0 20px;
  }
  .pankuzu li {
    line-height: 1;
    font-size: 0.9em;
    color: #000;
  }
}

/* カテゴリー　ページネーション ------------ */
.cat-paging { margin-top: 30px; }
.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0 3vmin;
}
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  font-size: 6vmin;
}
.wp-pagenavi .previouspostslink i::before,
.wp-pagenavi .nextpostslink i::before {
  vertical-align: -0.6vmin;
}
.wp-pagenavi .current,
.wp-pagenavi .page {
  width: 9vmin;
  height: 9vmin;
  line-height: 9vmin;
  text-align: center;
  font-size: 4.5vmin;
}
.wp-pagenavi .current {
  background-color: var(--c-link-current);
  color: #000;
}
.wp-pagenavi .page {
  background-color: var(--c-link);
  color: #fff;
}
@media only screen and (min-width: 768px), print {
  .cat-paging { margin-top: 30px; }
  .wp-pagenavi { gap: 0 16px; }
  .wp-pagenavi .previouspostslink,
  .wp-pagenavi .nextpostslink {
    transition: color 0.5s;
    font-size: 28px;
    color: var(--c-link);
  }
  .wp-pagenavi .previouspostslink i::before,
  .wp-pagenavi .nextpostslink i::before {
    vertical-align: -2px;
  }
  .wp-pagenavi .previouspostslink:hover,
  .wp-pagenavi .nextpostslink:hover {
    color: var(--c-link-hover);
  }
  .wp-pagenavi .current,
  .wp-pagenavi .page {
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 20px;
  }
  .wp-pagenavi .page { transition: background-color 0.5s; }
  .wp-pagenavi .page:hover { background-color: var(--c-link-hover); }
}

/* シングル　ページング -------------------- */
.single-paging {
  margin-top: 30px;
  margin-bottom: 40px;
}
.single-paging ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.single-paging li {
  display: flex;
  width: 47%;
}
.single-paging li a {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0 5px;
  padding: 10px 8%;
  background-color: var(--c-link);
  color: #fff;
}
.single-paging li span { text-align: left; }
.single-paging li.return { width: 100%; }
.single-paging li.return a {
  display: block;
  text-align: center;
}
.single-paging li.prev,
.single-paging li.next {
  margin-bottom: 20px;
}
.single-paging li.prev a::before {
  font-family: icomoon;
  content: "\e902";
  margin-right: 7px;
  color: #fff;
  font-size: 0.8em;
}
.single-paging li.next { margin-left: auto; }
.single-paging li.next a::after {
  font-family: icomoon;
  content: "\e901";
  margin-left: 7px;
  color: #fff;
  font-size: 0.8em;
}
@media only screen and (min-width: 768px), print {
  .single-paging { position: relative; }
  .single-paging li { width: 36%; }
  .single-paging li.return {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 24%;
    height: 100%;
  }
  .single-paging li.return a {
    display: flex;
    justify-content: center;
  }
  .single-paging li.next,
  .single-paging li.prev {
    margin-bottom: 0;
  }
  .single-paging li.next a {
    justify-content: flex-end;
    text-align: right;
  }
  .single-paging li a { transition: background-color 0.5s; }
  .single-paging li a::before,
  .single-paging li a::after {
    transition: color 0.5s;
  }
  .single-paging li a:hover { background-color: var(--c-link-hover); }
  .single-paging li a:hover::before,
  .single-paging li a:hover::after {
    color: #fff;
  }
}


/* ***************************************** */
/* --- サイドバー --- */
/* ***************************************** */
.right .banner-page a { display: block; }
.right .banner-tr { margin-top: 30px; }
.right > aside {
  margin-top: 30px;
  padding-bottom: 20px;
  background-color: #fff;
}
.right > aside h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 0;
  border-bottom: 2px solid var(--c-color1);
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  text-align: center;
  font-size: 5vmin;
}
.right > aside li {
  margin-top: 20px;
  padding: 20px 4%;
  padding-bottom: 0;
  border-top: 1px dotted #000;
}
.right > aside li:first-of-type {
  margin-top: 0;
  border-top: none;
}

/* 人気記事ランキング */
.right .popular-posts h2::before {
  margin-right: 5px;
  font-family: icomoon;
  content: "\e99e";
  color: var(--c-color2);
  font-size: 1.3em;
}
.right .popular-posts ul { counter-reset: num; }
.right .popular-posts li {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  counter-increment: num;
}
.right .popular-posts li > *:first-of-type { width: 30%; }
.right .popular-posts li > *:last-of-type { width: 66%; }
.right .popular-posts li::before {
  content: counter(num);
  position: absolute;
  left: 6px;
  top: 10px;
  width: 24px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  border-radius: 50%;
  border: 1px solid #fff;
  background-color: var(--c-color1);
  color: #fff;
}
.right .popular-posts li:nth-of-type(n+4)::before {
  background-color: #666;
}
.right .popular-posts img {
  width: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  aspect-ratio: 1/1;
}

/* おすすめ記事 */
.right .osusume h2::before {
  margin-right: 8px;
  font-family: icomoon;
  content: "\e997";
  color: var(--c-color2);
  font-size: 1.1em;
}
.right .osusume a {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.right .osusume a > img { width: 30%; }
.right .osusume a > p { width: 66%; }
.right .osusume img {
  width: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  aspect-ratio: 1/1;
}

/* トータルリペアbanner */
.right .banner-tr-side { padding: 0; }
.right .banner-tr-side a { display: block; }
@media only screen and (min-width: 768px), print {
  .right .banner-page a,
  .right .banner-tr a {
    transition: opacity 0.5s;
  }
  .right .banner-page a:hover,
  .right .banner-tr a:hover {
    opacity: 0.7;
  }
  .right > aside h2 {
    padding: 14px 0;
    font-size: 20px;
  }
  .right > aside li {
    transition: opacity 0.5s;
    padding: 20px 15px;
    padding-bottom: 0;
  }
  .right > aside li:hover { opacity: 0.7; }

  /* トータルリペアbanner */
  .banner-tr-side a { transition: opacity 0.5s; }
  .banner-tr-side a:hover { opacity: 0.7; }
}


/* ***************************************** */
/* --- トップページ --- */
/* ***************************************** */
@media only screen and (min-width: 768px), print {
  .key-visual img {
    object-fit: cover;
    object-position: 50% 50%;
    aspect-ratio: 16/5;
  }
}


/* ***************************************** */
/* --- 固定ページ --- */
/* ***************************************** */
.gide-list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 0;
  margin-top: 20px;
  margin-bottom: 40px;
}
.gide-list li {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.gide-list a {
  position: relative;
  display: block;
  line-height: 1.4;
}
.gide-list span {
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  padding: 10px 0;
  background-color: rgba(255, 255, 255, 0.8);
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  text-align: center;
  font-size: 5vmin;
}
.gide-list img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: 50% 50%;
}
@media only screen and (min-width: 768px), print {
  .gide-list {
    justify-content: space-between;
    gap: 30px 0;
    margin-top: 20px;
    margin-bottom: 40px;
  }
  .gide-list li { width: 48%; }
  .gide-list span {
    padding: 12px 0;
    font-size: 20px;
  }
  .gide-list img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    object-position: 50% 50%;
  }
}

.company-btn { margin-top: 20px; }
.company-btn a {
  position: relative;
  display: block;
}
.company-btn span {
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  padding: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  text-align: center;
  font-size: 6vmin;
  text-shadow:
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff,
    0 0 3px #fff;
}
.company-btn img {
  width: 100%;
  aspect-ratio: 12/3;
  object-fit: cover;
  object-position: 50% 50%;
}
@media only screen and (min-width: 768px), print {
  .company-btn {
    width: 80%;
    margin: auto;
    margin-top: 20px;
    padding-bottom: 20px;
  }
  .company-btn span { font-size: 30px; }
  .company-btn img { aspect-ratio: 15/3; }
}


/* ***************************************** */
/* --- 投稿 --- */
/* ***************************************** */
/* key ------------------------------------- */
.key-single img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: 50% 50%;
}

/* wrap ------------------------------------ */
.post-wrap {
  margin-bottom: 30px;
  padding: 20px;
  background-color: #fff;
}
@media only screen and (min-width: 768px), print {
  .post-wrap { padding: 40px 30px; }
}

/* meta ------------------------------------ */
.meta-other .cat { margin: 8px 0 14px; }
.sns {
  display: flex;
  align-items: center;
}
.sns-bottom { justify-content: center; }
.read {
  margin-top: 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
}
#toc_container {
  background-color: #f1f1f1;
  margin: 20px 0 30px;
  padding: 4px 4% 10px;
}
#toc_container .toc_title {
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  margin-bottom: 3px;
}
#toc_container .toc_list { line-height: 1.5; }
#toc_container .toc_list ul { margin: 0; }
#toc_container .toc_list li {
  padding-left: 0;
  text-indent: 0;
  margin-top: 5px;
}
#toc_container .toc_list li::before { display: none; }
#toc_container .toc_list > li li { padding-left: 1em; }
#toc_container .toc_list a { color: #000; }
@media only screen and (min-width: 768px), print {
  .meta-date, .meta-other {
    display: flex;
    align-items: center;
    gap: 0 20px;
  }
  .meta-other { margin-top: 5px; }
  .meta-other .cat { margin: 0; }
  #toc_container { padding: 10px 40px 20px; }
  #toc_container .toc_title {
    margin-bottom: 5px;
    text-align: center;
    font-size: 1.3em;
  }
}

/* post ------------------------------------ */
.read a,
.post a {
  color: #0366d6;
}
.post h2,
.post h3,
.post h4 {
  margin-top: 34px;
  line-height: 1.4;
}
.post p { margin-top: 7px; }
.post ul { margin-top: 8px; }
.post li { margin-top: 3px; }
.post img { margin-top: 10px; }
.post a img { transition: opacity 0.5s; }
.post a img:hover { opacity: 0.8; }
.post .wp-block-table {
  width: 100%;
  margin: 0;
  margin-top: 10px;
}
.post .wp-block-table table {
  width: 100%;
  font-size: 0.9em;
}
.post .wp-block-table th,
.post .wp-block-table td {
  padding: 0.2em 1em;
  border: 1px solid #000;
}
.post h2 {
  border-left: 5px solid var(--c-color1);
  margin-bottom: 10px;
  padding-left: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 4.5vmin;
}
.post h3 {
  margin-bottom: 10px;
  padding-left: 4vmin;
  text-indent: -4vmin;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 4vmin;
}
.post h3::before {
  content: "■";
  color: var(--c-color1);
}
.post h4 {
  border-bottom: 1px dotted #000;
  margin-bottom: 10px;
  padding-bottom: 5px;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 500;
  font-size: 4vmin;
}
.post li {
  padding-left: calc(1em + 13px);
  text-indent: -13px;
}
.post li::before {
  content: "●";
  margin-right: 3px;
}
.post .is-provider-youtube {
  display: block;
  margin-top: 30px;
}
.post .is-provider-youtube iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  box-shadow: 0 0 4px #aaa;
}
.read iframe {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 20px;
  aspect-ratio: 16/9;
  box-shadow: 0 0 4px #aaa;
}
@media only screen and (min-width: 768px), print {
  .post h2 { font-size: 22px; }
  .post h3 {
    padding-left: 21px;
    text-indent: -21px;
    font-size: 20px;
  }
  .post h4 { font-size: 18px; }
}

/* 著者情報 -------------------------------- */
.writer {
  margin-top: 30px;
  padding: 5vmin 5%;
  border-radius: 14px;
  background-color: #fff;
}
.writer h2 {
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 300;
  text-align: center;
}
.writer div {
  overflow: hidden;
  width: 30vmin;
  height: 30vmin;
  margin: auto;
  margin-bottom: 10px;
  border-radius: 50%;
}
.writer div img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.writer dt { font-size: 1.2em; }
@media only screen and (min-width: 768px), print {
  .writer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 20px 30px;
    padding-bottom: 24px;
  }
  .writer h2 {
    width: 100%;
    margin-bottom: 20px;
  }
  .writer div {
    overflow: hidden;
    width: 100px;
    height: 100px;
    margin: 0;
    margin-top: -5px;
  }
  .writer div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .writer dl { width: calc(100% - 130px); }
  .writer dt { font-size: 1.2em; }
}
