/* ***************************************** */
/* --- リセット --- */
/* ***************************************** */
/* Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700&display=swap");

/* icomoon */
@font-face {
  font-family: 'icomoon';
  font-display: swap;
  src:
    url('../font/icomoon.woff') format('woff'),
    url('../font/icomoon.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
[class^=i-], [class*=" i-"] {
  position: relative;
  top: -2px;
  font-family: "icomoon";
  margin-right: 4px;
  vertical-align: middle;
}
.i-arrow-up-circle { content: "\e916"; }
.i-arrow-down-circle { content: "\e908"; }
.i-arrow-next-circle { content: "\e914"; }
.i-arrow-prev-circle { content: "\e915"; }
.i-arrow-up { content: "\e91a"; }
.i-arrow-down { content: "\e917"; }
.i-arrow-next { content: "\e918"; }

.i-arrow-prev { content: "\e919"; }
.i-angle1-up:before { content: "\e903"; }
.i-angle1-down:before { content: "\e900"; }
.i-angle1-next:before { content: "\e901"; }
.i-angle1-prev:before { content: "\e902"; }
.i-angle2-up:before { content: "\e907"; }
.i-angle2-down:before { content: "\e906"; }
.i-angle2-prev:before { content: "\e91e"; }
.i-angle2-next:before { content: "\e91f"; }
.i-angle2-double-next:before { content: "\e904"; }
.i-angle2-double-prev:before { content: "\e905"; }
.i-broom:before { content: "\e909"; }
.i-car:before { content: "\e90a"; }
.i-home:before { content: "\e91b"; }
.i-check:before { content: "\e90b"; }
.i-close:before { content: "\e90c"; }
.i-freetel:before { content: "\e90d"; }
.i-tel:before { content: "\e921"; }
.i-fax:before {content: "\e913"; }
.i-mail:before {content: "\e90e"; }
.i-note:before {content: "\e90f"; }
.i-download:before {content: "\e922"; }
.i-minus:before {content: "\e912"; }
.i-plus:before { content: "\e911"; }
.i-menu:before { content: "\e91d"; }
.i-en:before { content: "\e920"; }
.i-search-global:before { content: "\e923"; }
.i-tire:before { content: "\e924"; }
.i-exclamation:before { content: "\e925"; }
.i-return:before { content: "\e926"; }
.i-bookmark:before { content: "\e927"; }
.i-diamond:before { content: "\e928"; }

* { 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 {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", 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;
  border-spacing: 0;
}
caption, th { text-align: left; }
img { vertical-align: bottom; }
a img { border: none; }
a:hover img { text-decoration: none; }
i { font-style: normal; }
strong { font-weight: normal; }
@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; }


/* ***************************************** */
/* --- 初期設定 --- */
/* ***************************************** */
/* 余白 ------------------------------------ */
/* ※margin(padding) */
/* m-mb [spサイズ] - [pcサイズ] */
.m-mb20-40 { margin-bottom: 20px; }
.m-mb30-60 { margin-bottom: 30px; }
.m-mb45-80 { margin-bottom: 45px; }
.mt-pt40-80 { padding-top: 40px; }
@media only screen and (min-width: 768px), print {
  .m-mb20-40 { margin-bottom: 40px; }
  .m-mb30-60 { margin-bottom: 60px; }
  .m-mb45-80 { margin-bottom: 80px; }
  .mt-pt40-80 { padding-top: 80px; }
}

/* 初期設定 -------------------------------- */
html {
  font-size: 16px;
  color: #000;
}
body { background-color: #f4f4f4; }
h1, h2, h3, h4, h5, h6 { line-height: 1.5; }
p, li, dt, dd, th, td { line-height: 1.7; }
a {
  text-decoration: none;
  color: #030303;
}
a:hover,
a:hover img {
  text-decoration: none;
}
img {
  width: 100%;
  height: auto;
}
@media only screen and (min-width: 768px), print {
  img {
    width: auto;
    height: auto;
  }
}
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-image: none;
  box-shadow:
    0px 0px 0px transparent,
    inset 0px 0px 0px transparent;
  font-size: 16px;
}
input[type=text],
input[type=tel],
input[type=email],
input[type=number],
textarea,
button {
  -webkit-appearance: none;
}
select { background-color: #fff; }
input[type=text]::-webkit-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=text]::-moz-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=text]:-ms-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=text]::placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=tel]::-webkit-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=tel]::-moz-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=tel]:-ms-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=tel]::placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=email]::-webkit-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=email]::-moz-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=email]:-ms-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=email]::placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=number]::-webkit-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=number]::-moz-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=number]:-ms-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
input[type=number]::placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
textarea::-webkit-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
textarea::-moz-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
textarea:-ms-input-placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
textarea::placeholder {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #999;
}
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; }


/* ***************************************** */
/* --- h1 --- */
/* ***************************************** */
h1 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 6px 0;
  font-size: 16px;
}
@media only screen and (min-width: 768px), print {
  h1 {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    font-size: 14px;
  }
}


/* ***************************************** */
/* --- header-block --- */
/* ***************************************** */
.header-block {
  position: relative;
  padding-top: 57%;
  background-image: url(../img/key-visual-sp.jpg);
  background-position: center top;
  background-size: 100% auto;
}
.home .header-block {
  padding-top: 98.43%;
  background-image: url(../img/key-visual-top-sp.jpg);
}

.header-block-inner {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
}
.header-block-inner h2 {
  position: absolute;
  top: 65%;
  transform: translateY(-50%);
  padding-left: 20px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-size: 7.4vmin;
  font-weight: 700;
  text-shadow:
    0 0 1px #fff,
    0 0 2px #fff,
    0 0 3px #fff,
    0 0 4px #fff,
    0 0 5px #fff,
    0 0 6px #fff,
    0 0 7px #fff,
    0 0 8px #fff;
}
.logo {
  overflow: hidden;
  padding: 2vmin 5%;
  background-color: rgba(255, 255, 255, 0.8);
}
.logo p {
  float: left;
  width: 68vmin;
  padding-top: 1.4vmin;
}
.logo .btn-gnavi {
  float: right;
  width: 14vmin;
  height: 14vmin;
  border-radius: 0;
  box-shadow: none;
  border: none;
  background-image: url(../img/btn-gnavi-cl.png);
  background-repeat: no-repeat;
  background-size: contain;
}
.logo .btn-gnavi.cl img { display: none; }
.logo .m-searchform { display: none; }
@media only screen and (min-width: 768px), print {
  .header-block {
    position: static;
    height: 300px;
    padding-top: 0;
    background-image: url(../img/key-visual-pc.png);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: auto 100%;
  }
  .home .header-block {
    height: 620px;
    padding-top: 0;
    background-color: #3c97d2;
    background-image: url(../img/key-visual-top-pc.jpg);
  }
  .header-block-inner { position: static; }
  .header-block-inner .logo-block-inner {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .header-block-inner .key-visual-text {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .header-block-inner .key-visual-text h2 {
    position: static;
    transform: translateY(0%);
    display: table-cell;
    height: 122px;
    padding-left: 40px;
    vertical-align: middle;
    font-size: 44px;
  }
  .logo { padding: 14px 0; }
  .logo-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .logo p {
    width: 438px;
    padding-top: 0;
  }
  .logo .btn-gnavi { display: none; }
  .logo .m-searchform {
    float: right;
    display: block;
    margin-top: 10px;
  }
}


/* ***************************************** */
/* --- gnavi --- */
/* ***************************************** */
@media only screen and (max-width: 767px) {
  .gnavi {
    position: relative;
    z-index: 10;
    display: none;
    padding: 16px 5% 25px;
    background-color: #5496ce;
  }
  .gnavi li { border-top: 1px dotted #fff; }
  .gnavi li:first-of-type { border-top: none; }
  .gnavi a {
    display: block;
    height: 50px;
    line-height: 50px;
    padding-left: 5%;
    /*
    900: Black
    700: Bold
    500: Medium
    */
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.01em;
    font-weight: 500;
    font-size: 18px;
    color: #fff;
  }
  .gnavi a::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: 1px;
    margin-right: 10px;
  }
  .gnavi .m-searchform { margin-top: 8px; }
}
@media only screen and (min-width: 768px), print {
  .gnavi {
    transition: top 0.3s;
    position: static;
    top: -70px;
    z-index: 100;
    display: block !important;
    width: 100%;
    background-color: rgba(52, 131, 197, 0.9);
  }
  .gnavi.pos {
    position: fixed;
    top: 0;
  }
  .gnavi ul {
    overflow: hidden;
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .gnavi li {
    float: left;
    width: 20%;
    border-left: 1px dotted #fff;
  }
  .gnavi li:first-of-type { display: none; }
  .gnavi li:last-of-type { border-right: 1px dotted #fff; }
  .gnavi a {
    transition: background-color 0.3s;
    display: block;
    height: 70px;
    line-height: 70px;
    /*
    900: Black
    700: Bold
    500: Medium
    */
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.01em;
    font-weight: 700;
    text-shadow:
      0 0 1px #003e71,
      0 0 2px #003e71,
      0 0 3px #003e71,
      0 0 4px #003e71;
    text-align: center;
    font-size: 18px;
    color: #fff;
  }
  .gnavi a:hover { background-color: #0f61a9; }
  .gnavi a.current { background-color: #003e71; }
  .gnavi .m-searchform { display: none; }
}


/* ***************************************** */
/* --- btn-store-header --- */
/* ***************************************** */
.btn-store-header {
  margin-bottom: 25px;
  padding: 20px 5%;
  background-color: #003e71;
}
@media only screen and (min-width: 768px), print {
  .btn-store-header {
    position: relative;
    margin-bottom: 0;
    padding: 26px 0;
  }
  .btn-store-header::before, .btn-store-header::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 0;
    height: 0;
    border-style: solid;
  }
  .btn-store-header::before {
    left: 0;
    border-width: 36px 0 0 40px;
    border-color: transparent transparent transparent #fff;
  }
  .btn-store-header::after {
    right: 0;
    border-width: 0 0 36px 40px;
    border-color: transparent transparent #fff transparent;
  }
  .btn-store-header .m-btn-store {
    width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* ***************************************** */
/* --- pankuzu --- */
/* ***************************************** */
@media only screen and (max-width: 767px) {
  .pankuzu { display: none; }
}
@media only screen and (min-width: 768px), print {
  .pankuzu {
    position: relative;
    background-color: #ececec;
  }
  .pankuzu::before, .pankuzu::after {
    content: "";
    position: absolute;
    top: 0;
    width: 0;
    height: 0;
    border-style: solid;
  }
  .pankuzu::before {
    left: 0;
    border-width: 56px 40px 0 0;
    border-color: #fff transparent transparent transparent;
  }
  .pankuzu::after {
    right: 0;
    border-width: 0 40px 56px 0;
    border-color: transparent #fff transparent transparent;
  }
  .pankuzu ol {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .pankuzu li {
    display: inline-block;
    height: 56px;
    line-height: 56px;
  }
  .pankuzu li::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: -1px;
    margin-left: 10px;
    margin-right: 8px;
    vertical-align: middle;
    font-size: 14px;
  }
  .pankuzu li:first-of-type::before {
    content: "\e91b";
    margin-left: 40px;
  }
  .pankuzu a {
    position: relative;
    display: inline-block;
    height: 50px;
    line-height: 50px;
  }
  .pankuzu a::before {
    content: "";
    position: absolute;
    bottom: 14px;
    width: 100%;
    height: 1px;
    box-shadow: 0 1px 0 #000;
  }
  .pankuzu br { display: none; }
}


/* ***************************************** */
/* --- footer --- */
/* ***************************************** */
/* bunner-service-sp ----------------------- */
.bunner-service-sp {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 45px;
}
.bunner-service-sp li { margin-bottom: 30px; }

/* footer-banner --------------------------- */
.footer-banner {
  width: 90%;
  margin: auto;
  margin-bottom: 45px;
}
.footer-banner li { margin-bottom: 30px; }

/* footer-utility -------------------------- */
@media only screen and (max-width: 767px) {
  .footer-utility{ margin-top: 45px; }
  .footer-utility-inner .return-top {
    display: block;
    width: 44px;
    margin-right: 5%;
    margin-left: auto;
    border: none;
  }
  .footer-utility-inner .return-top::before {
    font-family: icomoon;
    content: "\e903";
    display: block;
    height: 44px;
    line-height: 44px;
    background-color: #003e71;
    text-align: center;
    font-size: 24px;
    color: #fff;
  }
  .footer-utility-inner div {
    margin-top: -2px;
    padding: 20px 5%;
    background-color: #d7d7d7;
  }
}
@media only screen and (min-width: 768px), print {
  .footer-utility {
    margin-top: 80px;
    background-color: #d7d7d7;
  }
  .footer-utility-inner {
    overflow: hidden;
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .footer-utility-inner .return-top {
    position: static;
    float: right;
    display: block;
    width: 70px;
    margin-right: 5%;
    margin-left: auto;
    border: none;
  }
  .footer-utility-inner .return-top.pos {
    position: fixed;
    bottom: 200px;
  }
  .footer-utility-inner .return-top::before {
    transition: background-color 0.3s;
    font-family: icomoon;
    content: "\e903";
    display: block;
    height: 70px;
    line-height: 70px;
    background-color: #003e71;
    text-align: center;
    font-size: 40px;
    color: #fff;
    cursor: pointer;
  }
  .footer-utility-inner .return-top:hover::before {
    background-color: #5292c9;
  }
  .footer-utility-inner div {
    float: left;
    padding-top: 13px;
  }
}

/* footer-navi ----------------------------- */
@media only screen and (max-width: 767px) {
  .footer-navi > ul > li {
    padding-left: 10%;
    border-bottom: 1px solid #e6e6e6;
  }
  .footer-navi > ul > li > a {
    display: block;
    height: 44px;
    line-height: 44px;
  }
  .footer-navi > ul > li > a::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: 1px;
    margin-right: 8px;
    color: #003e71;
  }
  .footer-navi > ul > li > a::before:first-of-type {
    margin-top: 0;
  }
  .footer-navi > ul > li > ul {
    display: none;
  }
  .footer-navi .footer-logo {
    padding-top: 40px;
    background-color: #000;
    text-align: center;
    font-size: 2vmin;
    color: #fff;
  }
  .footer-navi .footer-logo img:first-of-type{
    display: block;
    width: 70%;
    margin: auto;
  }
  .footer-navi .footer-logo p {
    margin-top: 30px;
    font-size: 2.5vmin;
  }
  .footer-navi .footer-logo p br{
    display: none;
  }
}
@media only screen and (min-width: 768px), print {
  .footer-navi {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .footer-navi li { margin-top: 6px; }
  .footer-navi li a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .footer-navi > ul {
    width: 27%;
    padding: 16px 0;
    padding-left: 2%;
    border-right: 1px dotted #000;
  }
  .footer-navi > ul > li::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: 1px;
    margin-right: 5px;
    color: #003e71;
  }
  .footer-navi > ul > li::before:first-of-type { margin-top: 0; }
  .footer-navi > ul > li > a > span{
    display: block;
    padding-left: 20px;
  }
  .footer-navi > ul > li > ul { padding-left: 20px; }
  .footer-navi > ul > li li::before { content: "・"; }
  .footer-navi .footer-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    order: -1;
    width: 19%;
    padding-top: 26px;
    border-left: 1px dotted #000;
    border-right: 1px dotted #000;
    font-size: 9px;
  }
  .footer-navi .footer-logo p { margin-top: 10px; }
  .footer-navi .footer-logo img { width: 72%; }
}

/* footer -------------------------------- */
@media only screen and (max-width: 767px) {
  footer {
    padding: 30px 0;
    background-color: #000;
    text-align: center;
    font-size: 12px;
    color: #fff;
  }
  footer a { color: #fff; }
}
@media only screen and (min-width: 768px), print {
  footer {
    padding: 16px 0;
    background-color: #000;
    text-align: center;
    font-size: 14px;
    color: #fff;
  }
  footer a { color: #fff; }
}


/* ***************************************** */
/* --- ブロックモジュール --- */
/* ***************************************** */
.l-side { display: none; }
.l-block1 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
.l-block2 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 30px 5%;
  background-color: #fff;
}
.m-movie {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.m-movie iframe,
.m-movie video,
.m-movie amp-youtube {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 768px), print {
  .l-layout {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .home .l-layout { display: block; }
  .l-main {
    width: calc(100% - 310px);
    margin-right: 30px;
  }
  .l-side {
    display: block;
    width: 300px;
  }
  .l-side .btn-store-side { margin-bottom: 50px; }
  .l-side .btn-store-side img { width: 100%; }
  .l-side .btn-store-side a { transition: opacity 0.3s; }
  .l-side .btn-store-side a:hover { opacity: 0.8; }
  .l-side .m-side-sns {
    padding: 14px 0;
    background-color: #e4e4e4;
  }
  .l-side .m-side-sns ul {
    overflow: hidden;
    width: 80%;
    margin: auto;
  }
  .l-side .m-side-sns li {
    float: left;
    width: 24%;
    margin-left: 14%;
  }
  .l-side .m-side-sns li:first-of-type { margin-left: 0; }
  .l-side .m-side-sns img {
    width: 100%;
    height: auto;
  }
  .l-side .m-side-sns a:hover { opacity: 0.8; }
  .l-side .bunner-service-pc { margin-top: 50px; }
  .l-side .bunner-service-pc li { margin-top: 30px; }
  .l-side .bunner-service-pc a:hover { opacity: 0.8; }
  .l-side .bunner-service-pc img {
    width: 100%;
    height: auto;
  }
  .l-block1 { width: 100%; }
  .l-block2 {
    width: 100%;
    padding: 40px;
  }
}


/* ***************************************** */
/* --- 見出し --- */
/* ***************************************** */
.m-heading1 {
  margin-bottom: 30px;
  padding: 0 5%;
  padding-bottom: 8px;
  border-bottom: 4px solid #000;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
}
.m-heading2 {
  margin-bottom: 25px;
  padding-bottom: 6px;
  border-bottom: 2px solid #000;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
}
.m-heading2.bb-none{
  border-bottom: none;
}
.m-heading2 span {
  display: block;
  /* margin: 0 10px; */
  padding-left: 8px;
  border-left: 5px solid #003e71;
}
.m-heading3 {
  padding-left: 10px;
  border-left: 5px solid #d91a28;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
}
@media only screen and (min-width: 768px), print {
  .m-heading1 {
    width: 100%;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50px;
    padding: 0;
    padding-bottom: 12px;
    border-bottom: 4px solid #000;
    text-align: center;
    font-size: 34px;
  }
  .m-heading2 {
    margin-bottom: 44px;
    padding-bottom: 6px;
    font-size: 32px;
  }
  .m-heading2 span {
    /* margin: 0 20px; */
    padding-left: 16px;
    border-left: 8px solid #003e71;
  }
  .m-heading3 {
    padding-left: 10px;
    border-left: 6px solid #d91a28;
    font-size: 20px;
  }
}


/* ***************************************** */
/* --- ボタン --- */
/* ***************************************** */
/* m-btn1 ---------------------------------- */
.m-btn1 a {
  overflow: hidden;
  position: relative;
  z-index: 1;
  display: block;
  height: 50px;
  line-height: 50px;
  border-radius: 4px;
  box-shadow: inset 0 0 3px rgba(255, 255, 255, 0.5);
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  text-align: center;
}
.m-btn1 a::before,
.m-btn1 a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.m-btn1 a::before {
  transition: opacity 0.3s;
  z-index: -1;
  background-color: #d5dfe4;
  background-image: linear-gradient(#fefefe, #d5dfe4);
}
.m-btn1 a:hover::before { opacity: 0; }
.m-btn1 a::after {
  z-index: -2;
  background-color: #b4c5ce;
  background-image: linear-gradient(#efefef, #b4c5ce);
}

/* m-btn2 ---------------------------------- */
.m-btn2 {
  position: relative;
  z-index: 1;
}
.m-btn2 a {
  display: block;
  width: 100%;
  height: 50px;
  line-height: 50px;
  border-radius: 4px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  text-align: center;
  font-weight: 500;
  font-size: 4.2vmin;
  color: #fff;
}
.m-btn2 a::before, .m-btn2 a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 50px;
  border-radius: 4px;
}
.m-btn2 a::before {
  z-index: -1;
  background-color: #003e71;
  background-image: linear-gradient(#105186 20%, #003e71);
}
.m-btn2 i::before {
  font-family: icomoon;
  content: "\e901";
  position: relative;
  top: -0.5vmin;
  margin-right: 1.5vmin;
  vertical-align: middle;
}
@media only screen and (min-width: 768px), print {
  .m-btn2 a { font-size: 18px; }
  .m-btn2 a::before { transition: opacity 0.3s; }
  .m-btn2 a::after {
    z-index: -2;
    background-color: #0c5896;
    background-image: linear-gradient(#2167a1 20%, #0c5896);
  }
  .m-btn2 a:hover::before { opacity: 0; }
  .m-btn2 i::before {
    top: -2px;
    margin-right: 10px;
  }
}

/* m-btn-store ----------------------------- */
.m-btn-store span {
  overflow: hidden;
  position: relative;
  z-index: 1;
  display: block;
}
.m-btn-store span::before, .m-btn-store span::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 50px;
  border-radius: 4px;
}
.m-btn-store span::before {
  transition: opacity 0.3s;
  z-index: -1;
  background-color: #299ce6;
  background-image: linear-gradient(#3ab8f2, #299ce6);
}
.m-btn-store span:hover::before { opacity: 0; }
.m-btn-store span::after {
  z-index: -2;
  background-color: #1070ad;
  background-image: linear-gradient(#1a87b9, #1070ad);
}
.m-btn-store a {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 50px;
  line-height: 50px;
  border-radius: 6px;
  box-shadow:
    inset 0 2px 2px rgba(255, 255, 255, 0.3),
    inset 0 0 3px rgba(255, 255, 255, 0.3);
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  text-align: center;
  font-size: 4.8vmin;
  color: #fff;
}
.m-btn-store a::before,
.m-btn-store a::after {
  position: relative;
  font-family: icomoon;
  vertical-align: middle;
}
.m-btn-store a::before {
  content: "\e923";
  top: -0.5vmin;
  margin-right: 1.5vmin;
  font-size: 6vmin;
}
.m-btn-store a::after {
  content: "\e901";
  top: -0.5vmin;
  margin-left: 1.5vmin;
}
@media only screen and (min-width: 768px), print {
  .m-btn-store span::before,
  .m-btn-store span::after {
    height: 68px;
  }
  .m-btn-store a {
    height: 68px;
    line-height: 68px;
    font-size: 32px;
  }
  .m-btn-store a::before {
    top: -4px;
    margin-right: 10px;
    font-size: 36px;
  }
  .m-btn-store a::after {
    top: -3px;
    margin-left: 10px;
    font-size: 28px;
  }
}


/* ***************************************** */
/* --- 共通モジュール --- */
/* ***************************************** */
/* micro clearfx */
.cf:before, .cf:after {
  content: "";
  display: table;
}
.cf:after { clear: both; }

@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; }
}

/* m-searchform ---------------------------- */
.m-searchform { background-color: #fff; }
.m-searchform input[type=text] {
  width: 85%;
  height: 44px;
  line-height: 44px;
  padding-left: 10px;
  border: none;
  box-shadow: 0 0 0 transparent;
  background: none;
  vertical-align: middle;
  font-size: 16px;
}
.m-searchform button {
  width: 7%;
  height: 44px;
  line-height: 44px;
  margin-left: 3%;
  border: none;
  box-shadow: none;
  background: none;
}
.m-searchform button::before {
  font-family: icomoon;
  content: "\e91c";
  vertical-align: middle;
  color: #d91a28;
  font-size: 6vmin;
}
@media only screen and (min-width: 768px), print {
  .m-searchform {
    width: 280px;
    padding-right: 0;
  }
  .m-searchform input[type=text] { font-size: 16px; }
  .m-searchform button { width: 8%; }
  .m-searchform button::before { font-size: 20px; }
}

/* m-sub-navi ------------------------------ */
@media only screen and (max-width: 767px) {
  .m-sub-navi {
    padding: 30px 5%;
    background-color: #428bc8;
  }
  .m-sub-navi li { margin-top: 20px; }
  .m-sub-navi li:first-of-type { margin-top: 0; }
  .m-sub-navi a {
    padding-left: 10%;
    text-align: left;
  }
}
@media only screen and (min-width: 768px), print {
  .m-sub-navi {
    padding: 40px 0;
    background-color: #428bc8;
    text-align: center;
  }
  .home .m-sub-navi {
    width: 100%;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
  .m-sub-navi li {
    display: inline-block;
    width: 28%;
    margin: 0 1%;
    vertical-align: bottom;
  }
  .m-sub-navi a { font-size: 21px; }
  .m-sub-navi span { display: none; }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .m-sub-navi a { font-size: 1.8vw; }
}

/* m-navi-price ---------------------------- */
@media only screen and (max-width: 767px) {
  .m-navi-price {
    overflow: hidden;
    margin-bottom: 40px;
    padding: 25px 5%;
    background-color: #ebebeb;
  }
  .m-navi-price li {
    float: left;
    width: 48%;
    margin-top: 20px;
  }
  .m-navi-price li:nth-of-type(2n) { float: right; }
  .m-navi-price li:nth-of-type(-n+2) { margin-top: 0; }
  .m-navi-price a {
    display: block;
    height: 50px;
    line-height: 50px;
    padding-left: 4vmin;
    border-radius: 4px;
    background-color: #003e71;
    background-image: linear-gradient(#105186 20%, #003e71);
    /*
    900: Black
    700: Bold
    500: Medium
    */
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.01em;
    font-weight: 500;
    font-size: 4.2vmin;
    color: #fff;
  }
  .m-navi-price a.current {
    background-color: #001e37;
    background-image: linear-gradient(#01233f 20%, #00111f);
    color: #fefef0;
  }
  .m-navi-price a::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: -0.5vmin;
    margin-right: 1.5vmin;
    vertical-align: middle;
  }
}

/* m-navi-category ------------------------- */
.m-navi-category {
  padding: 25px 5%;
  background-color: #ebebeb;
}
.m-navi-category li {
  position: relative;
  z-index: 1;
  margin-top: 20px;
  border-radius: 4px;
}
.m-navi-category li:first-of-type { margin-top: 0; }
.m-navi-category li a {
  display: block;
  width: 100%;
  height: 50px;
  line-height: 50px;
  padding-left: 4vmin;
  border-radius: 4px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 500;
  font-size: 4.2vmin;
  color: #fff;
}
.m-navi-category li a::before, .m-navi-category li a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 50px;
  border-radius: 4px;
}
.m-navi-category li a::before {
  z-index: -1;
  background-color: #003e71;
  background-image: linear-gradient(#105186 20%, #003e71);
}
.m-navi-category i::before {
  font-family: icomoon;
  content: "\e901";
  position: relative;
  top: -0.5vmin;
  margin-right: 1.5vmin;
  vertical-align: middle;
}
@media only screen and (min-width: 768px), print {
  .m-navi-category {
    overflow: hidden;
    padding: 40px 30px;
    background-color: #fff;
  }
  .m-navi-category li {
    float: left;
    margin-top: 30px;
    text-align: center;
    width: 48%;
  }
  .m-navi-category li:nth-of-type(2n) { float: right; }
  .m-navi-category li:nth-of-type(-n+2) { margin-top: 0; }
  .m-navi-category li a {
    padding-left: 0;
    font-size: 18px;
  }
  .m-navi-category li a::before { transition: opacity 0.3s; }
  .m-navi-category li a::after {
    z-index: -2;
    background-color: #0c5896;
    background-image: linear-gradient(#2167a1 20%, #0c5896);
  }
  .m-navi-category li a:hover::before { opacity: 0; }
  .column .m-navi-category li a { font-size: 16px; }
  .m-navi-category i::before {
    top: -1px;
    margin-right: 10px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .m-navi-category li a { font-size: 1.8vw; }
  .column .m-navi-category li a { font-size: 1.3vw; }
}

/* m-prev-next ----------------------------- */
.m-prev-next {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
.m-prev-next li { margin-top: 10px; }
.m-prev-next li:first-of-type { margin-top: 0; }
.m-prev-next li i::before { font-family: icomoon; }
.m-prev-next li.next i::before { content: "\e901"; }
.m-prev-next li.prev i::before { content: "\e902"; }
.m-prev-next li.home i::before { content: "\e926"; }
@media only screen and (min-width: 768px), print {
  .m-prev-next {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 0 4%;
    text-align: center;
  }
  .m-prev-next li {
    width: 30%;
    margin-top: 0;
  }
  .m-prev-next li.next { float: right; }
  .m-prev-next li.prev { float: left; }
  .m-prev-next li.home {
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -15%;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .m-prev-next .m-btn2 a { font-size: 1.6vw; }
}

/* m-navi-side ----------------------------- */
@media only screen and (min-width: 768px), print {
  .m-navi-side { margin-bottom: 50px; }
  .m-navi-side li { border-top: 1px dotted #000; }
  .m-navi-side li:first-of-type { border-top: none; }
  .m-navi-side a {
    transition: background-color 0.4s;
    display: block;
    height: 50px;
    line-height: 50px;
    padding-left: 20px;
    /*
    900: Black
    700: Bold
    500: Medium
    */
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.01em;
    font-weight: 500;
    font-size: 18px;
  }
  .m-navi-side a::before {
    font-family: icomoon;
    content: "\e901";
    position: relative;
    top: -2px;
    margin-right: 10px;
    vertical-align: middle;
  }
  .m-navi-side a:hover, .m-navi-side a.current {
    background-color: #0f61a9;
    color: #fff;
  }
}

/* m-footer-btn-store ---------------------- */
.m-footer-btn-store {
  overflow: hidden;
  padding: 30px 0;
  background: url(../img/footer-btn-store-bg.jpg) no-repeat center center;
  background-color: #003e71;
  background-size: auto 100%;
}
.m-footer-btn-store-inner {
  position: relative;
  z-index: 1;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 20px 5%;
}
.m-footer-btn-store-inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff;
}
.m-footer-btn-store .m-btn-store { margin-top: 10px; }
.m-footer-btn-store .m-btn-store a::after { display: none; }
@media only screen and (min-width: 768px), print {
  .m-footer-btn-store { padding: 40px 0; }
  .m-footer-btn-store-inner {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    padding: 30px 20px;
  }
  .home .m-footer-btn-store-inner {
    width: 100%;
    max-width: 900px;
    padding: 40px 10%;
  }
  .m-footer-btn-store-inner::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    width: calc(100% + 35px);
    height: calc(100% + 140px);
    margin-top: -70px;
    background: url(../img/map-japan.png) no-repeat top right;
    background-size: auto 100%;
  }
  .home .m-footer-btn-store-inner::after { width: calc(110% + 35px); }
  .m-footer-btn-store .m-btn-store { margin-top: 20px; }
  .home .m-footer-btn-store .m-btn-store {
    width: 94%;
    margin-left: auto;
    margin-right: auto;
  }
  .home .m-footer-btn-store .m-btn-store a::after { display: inline-block; }
}


/* ***************************************** */
/* --- sns --- */
/* ***************************************** */
@media only screen and (max-width: 767px) {
  .tw .social__btn {
    display: block;
    padding-left: 0;
    padding-right: 0;
    text-align: center;
  }
  .tw .social__btn img { margin-left: -3%; }
  .tw .arrow_box { display: none; }
}
@media only screen and (min-width: 768px), print {
  .tw .arrow_box { display: none; }
}


/* ***************************************** */
/* --- トータルリペア受付ボタン --- */
/* ***************************************** */
.store footer { padding: 16px 0; }
.subscription-area {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 100;
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  width: 100%;
}
.subscription-area li {
  width: 50%;
  line-height: 1.1;
}
.subscription-area a {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2vmin;
  padding: 4vmin 2vmin;
  text-decoration: none;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  color: #fff;
}
.subscription-area span {
  display: block;
  margin-top: 1vmin;
  font-size: 1.69em;
}
.subscription-area div { font-size: 2.9vmin; }
.subscription-area div:first-of-type {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 10vmin;
  height: 10vmin;
  padding: 2vmin;
  border-radius: 50%;
  background-color: #fff;
}
.subscription-area-tel { background-color: #c4000f; }
.subscription-area-mail { background-color: #005e3c; }
.subscription-area-mail span { font-size: 1.86em; }
@media only screen and (min-width: 768px), print {
  footer { padding: 16px 0; }
  .header-block { padding-top: 110px !important; }
  .logo {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 110px;
    background-color: rgba(255, 255, 255, 0.9) !important;
  }

  /* h1非表示 */
  body header { display: none; }
  .subscription-area {
    width: 520px;
    position: static;
    justify-content: space-between;
    padding-bottom: 8px;
  }
  .subscription-area li:first-of-type { width: 49.5%; }
  .subscription-area li:last-of-type { width: 45.5%; }
  .subscription-area a {
    transition: filter 0.5s;
    gap: 10px;
    padding: 12px;
    white-space: nowrap;
  }
  .subscription-area img { width: 100%; }
  .subscription-area li:first-of-type a { padding-bottom: 9px; }
  .subscription-area li:last-of-type a:hover { filter: brightness(1.3); }
  .subscription-area span {
    margin-top: 5px;
    font-size: 1.9em;
  }
  .subscription-area div { font-size: 14px; }
  .subscription-area div:first-of-type {
    width: 42px;
    height: 42px;
    padding: 8px;
  }
  .subscription-area-mail span { font-size: 1.9em; }
  .subscription-area-mail div { font-size: 13px; }
}

.price-list {
  margin-bottom: 40px;
  font-size: 16px;
}
.price-list h2 {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 0 2%;
  padding-bottom: 8px;
  border-bottom: 1px dotted #000;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  font-size: 6vmin;
  line-height: 1.3;
}
.price-list h2 > span { width: calc(96% - 16px); }
.price-list h2 > span span {
  display: block;
  font-size: 0.7em;
}
.price-list h2::before {
  content: " ";
  display: block;
  width: 8px;
  margin-right: 8px;
  background-color: #d12121;
}
.price-list h3 {
  border-left: 7px solid #e7993a;
  margin-bottom: 10px;
  padding-left: 5px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  font-size: 1.1em;
}
.price-list h3:last-of-type { margin-top: 26px; }
.price-list-bg {
  padding: 20px 5%;
  background-color: #fff;
}
.price-list-bg li {
  padding-left: 1em;
  text-indent: -1em;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 500;
  font-size: 1.1em;
  line-height: 1.5;
}
.price-list-bg li.red { color: #c2191c; }
.price-list table {
  display: block;
  margin-bottom: 16px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 500;
  font-size: 1.1em;
  line-height: 1.5;
}
.price-list table th { text-align: left; }
.price-list thead { display: none; }
.price-list tbody { display: block; }
.price-list tbody tr,
.price-list tbody th,
.price-list tbody td {
  display: block;
}
.price-list tbody th,
.price-list tbody td {
  line-height: 1.5;
}
.price-list tbody tr { margin-top: 10px; }
.price-list tbody tr:first-of-type { margin-top: 0; }
.price-list tbody tr td:nth-of-type(1)::before { content: "5日間："; }
.price-list tbody tr td:nth-of-type(2)::before { content: "12日間："; }
.price-list tbody tr td:nth-of-type(3)::before { content: "21日間："; }
.price-list tbody th {
  margin-bottom: 5px;
  border-bottom: 1px dotted #000;
}
.price-list tbody th::before {
  content: "■";
  margin-right: 5px;
  vertical-align: middle;
  font-size: 0.8em;
}
.price-list tbody td { padding-left: 1.2em; }
@media only screen and (min-width: 768px), print {
  .price-list { margin-bottom: 70px; }
  .price-list h2 {
    margin-bottom: 30px;
    font-size: 36px;
  }
  .price-list h2 > span { width: calc(96% - 20px); }
  .price-list h2::before {
    width: 10px;
    margin-right: 10px;
  }
  .price-list h3 {
    margin-bottom: 20px;
    font-size: 20px;
  }
  .price-list-bg { padding: 40px; }
  .price-list-bg li {
    padding-left: 1em;
    text-indent: -1em;
    /*
    900: Black
    700: Bold
    500: Medium
    */
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    letter-spacing: 0.01em;
    font-weight: 500;
    font-size: 1.1em;
    line-height: 1.5;
  }
  .price-list-bg li.red { color: #c2191c; }
  .price-list table {
    display: table;
    width: 100%;
    margin-bottom: 20px;
  }
  .price-list table th, .price-list table td {
    padding: 10px 0;
    border: 1px solid #000;
    text-align: center;
  }
  .price-list table th:last-of-type { border: 1px solid #000; }
  .price-list thead {
    display: table-header-group;
    background-color: #ddd;
  }
  .price-list tbody {
    display: table-row-group;
    background-color: #f6f6f6;
  }
  .price-list tbody tr { display: table-row; }
  .price-list tbody th, .price-list tbody td { display: table-cell; }
  .price-list tbody tr { margin-top: 0; }
  .price-list tbody tr td::before {
    content: "";
    display: none;
  }
  .price-list tbody th {
    margin-bottom: 0;
    border-bottom: none;
  }
  .price-list tbody th::before {
    content: "";
    display: none;
  }
  .price-list tbody td { padding-left: 0; }
  .btn-price-list {
    width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* ***************************************** */
/* --- トップ top --- */
/* ***************************************** */
.sns-top { display: block; }
.sns-top ul {
  overflow: hidden;
  width: 70%;
  margin: auto;
  margin-bottom: -15px;
}
.sns-top li {
  float: left;
  width: 24%;
  margin-left: 14%;
}
.sns-top li:first-of-type { margin-left: 0; }
.sns-top img {
  width: 100%;
  height: auto;
}
.sns-top a:hover { opacity: 0.8; }
@media only screen and (min-width: 768px), print {
  .sns-top { display: none; }
  .home .sns-top {
    display: block;
    margin-top: 30px;
    margin-bottom: -40px;
  }
  .home .sns-top ul { width: 240px; }
}

.top-sec1 p { margin-bottom: 20px; }
.top-sec2 p { margin-top: 20px; }
.top-sec3 {
  padding: 5% 30px;
  background-image: url(../img/top-sec3-bg-sp.jpg);
  background-position: center;
  background-size: cover;
}
.top-movie {
  padding: 20px 5%;
  background-color: #e6e7e9;
}
.top-news ul {
  padding: 20px 5%;
  border: 20px solid #e6e7e9;
  background-color: #fff;
}
.top-news li {
  margin-top: 7px;
  padding-top: 10px;
  border-top: 1px dotted #000;
}
.top-news li:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
@media only screen and (min-width: 768px), print {
  .top-sec1,
  .top-sec2 {
    overflow: hidden;
  }
  .top-sec1 p,
  .top-sec1 img,
  .top-sec2 p,
  .top-sec2 img {
    display: block;
    width: 48%;
    margin: 0;
  }
  .top-sec1 img { float: left; }
  .top-sec1 p { float: right; }
  .top-sec2 p { float: left; }
  .top-sec2 img { float: right; }
  .top-sec3 {
    padding: 40px 20px;
    background-image: url(../img/top-sec3-bg-pc.jpg);
    background-position: center;
    background-size: auto 100%;
  }
  .top-sec3 div {
    width: 100%;
    max-width: 840px;
    margin-left: auto;
    margin-right: auto;
  }
  .top-sec3 img { width: 100%; }
  .top-movie { padding: 40px 20%; }
  .top-news {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .top-news ul {
    padding: 40px;
    border: 40px solid #e6e7e9;
  }
  .top-news li {
    margin-top: 16px;
    padding: 20px 40px;
    padding-bottom: 0;
  }
  .top-news a:hover { text-decoration: underline; }
}


/* ***************************************** */
/* --- price 価格 --- */
/* ***************************************** */
.price-case ol { position: relative; }
.price-case ol::before {
  font-family: icomoon;
  content: "\e900";
  position: absolute;
  top: 50%;
  display: block;
  width: 100%;
  margin-top: -18px;
  text-align: center;
  color: #003e71;
  font-size: 36px;
}
.price-case li:first-of-type { margin-bottom: 55px; }
.price-case hr {
  height: 0;
  margin: 0;
  padding: 0;
  margin-top: 19px;
  padding-top: 20px;
  border: none;
  border-top: 1px dotted #000;
}
.price-data .kakaku li {
  margin-bottom: 20px;
  padding: 18px 0;
  background-color: #f4e9e9;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 500;
  text-align: center;
  line-height: 1.1;
  font-size: 22px;
}
.price-data .kakaku li span {
  position: relative;
  top: 3px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  color: #c2191c;
  font-size: 36px;
}
.price-data .kakaku .kakaku-normal span {
  position: static;
  font-size: 22px;
}
.price-data .note {
  counter-reset: number;
  padding: 16px 5%;
  background-color: #f4e9e9;
}
.price-data .note li {
  counter-increment: number;
  padding-left: 20px;
  text-indent: -20px;
}
.price-data .note li::before { content: counter(number) ". "; }
.price-annotation {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (min-width: 768px), print {
  .price-case ol { overflow: hidden; }
  .price-case ol::before {
    content: "\e901";
    margin-top: -2vw;
    font-size: 3vw;
  }
  .price-case li {
    float: right;
    width: 46%;
  }
  .price-case li:first-of-type {
    float: left;
    margin-bottom: 0;
  }
  .price-case li img { width: 100%; }
  .price-case hr {
    margin-top: 40px;
    padding-top: 0;
    border-top: none;
  }
  .price-case p { text-align: center; }
  .price-case p img { width: 50%; }
  .price-data .kakaku li {
    margin-bottom: 20px;
    padding: 12px 0;
    padding-bottom: 14px;
    padding-left: 40px;
    text-align: left;
    font-size: 34px;
  }
  .price-data .kakaku li span {
    position: relative;
    top: 3px;
    font-size: 50px;
  }
  .price-data .kakaku li br { display: none; }
  .price-data .kakaku li.center {
    padding-left: 0;
    text-align: center;
  }
  .price-data .kakaku .kakaku-normal span { font-size: 34px; }
  .price-data .note { padding: 20px 40px; }
  .price-annotation { width: 100%; }
  .price-annotation img { width: 100%; }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .price-data .kakaku li {
    padding-left: 2vw;
    padding-bottom: 1.4vw;
    font-size: 2.6vw;
  }
  .price-data .kakaku li span { font-size: 4.2vw; }
  .price-data .kakaku .kakaku-normal span { font-size: 2.6vw; }
}

/* price topのみ --------------------------- */
.price-data-diamond img {
  position: relative;
  top: -14px;
  left: -3%;
}
.price-data-diamond p {
  border-bottom: 1px dotted #000;
  margin-bottom: 10px;
  padding-bottom: 4px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  text-align: center;
  color: #003e71;
  font-size: 4.8vmin;
}
.price-data-diamond .note {
  padding: 0;
  background-color: transparent;
}
.price-annotation-diamond {
  padding: 25px 5%;
  background-color: #f1e4e4;
}
.price-annotation-diamond h3 {
  margin-bottom: 20px;
  padding: 10px 0;
  background-color: #fff;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  text-align: center;
}
.price-annotation-diamond h3::before {
  font-family: icomoon;
  content: "\e925";
  display: block;
  text-align: center;
  color: #d12121;
}
.price-example { overflow: hidden; }
.price-example div {
  float: left;
  width: 48%;
  margin-top: 25px;
}
.price-example div:nth-of-type(2n) { float: right; }
.price-example div:nth-of-type(-n+2) { margin-top: 0; }
.price-example dt {
  padding: 4px 0;
  background-color: #003e71;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  text-align: center;
  color: #fff;
}
.price-list .m-heading2 {
  border-left: none;
  padding-left: 0;
}
.price-list-item {
  margin-bottom: 35px;
  padding: 20px 5%;
  background-color: #fff;
}
.price-list ol {
  position: relative;
  overflow: hidden;
  margin: 15px 0;
  padding: 20px 5%;
  background-color: #f4f4f4;
}
.price-list ol::before {
  font-family: icomoon;
  content: "\e901";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 26px;
  height: 26px;
  line-height: 26px;
  margin-top: -13px;
  margin-left: -13px;
  background-color: #fff;
  text-align: center;
  color: #d91a28;
  font-size: 21px;
}
.price-list ol li {
  float: left;
  width: 50%;
}
.price-other li { margin-top: 25px; }
@media only screen and (min-width: 768px), print {
  .price-data-diamond img {
    top: -14px;
    left: -5%;
    width: 105%;
  }
  .price-data-diamond p {
    margin-bottom: 16px;
    padding-bottom: 4px;
    font-size: 30px;
  }
  .price-annotation-diamond { padding: 40px; }
  .price-annotation-diamond h3 { font-size: 22px; }
  .price-annotation-diamond h3::before {
    position: relative;
    top: 1px;
    display: inline-block;
    text-align: left;
    margin-right: 5px;
  }
  .price-annotation-diamond h3 br { display: none; }
  .price-example div {
    float: left;
    width: 30%;
    margin-top: 30px;
    margin-right: 5%;
  }
  .price-example div:nth-of-type(2n) { float: left; }
  .price-example div:nth-of-type(3n) { margin-right: 0; }
  .price-example div:nth-of-type(-n+3) { margin-top: 0; }
  .price-example dt {
    padding: 4px 0;
    font-size: 20px;
  }
  .price-example img { width: 100%; }
  .price-list .m-heading2 { font-size: 32px; }
  .price-list-item {
    margin-bottom: 50px;
    padding: 40px;
  }
  .price-list ol {
    margin: 25px 0;
    padding: 30px;
  }
  .price-list ol::before {
    top: 50%;
    left: 50%;
    display: inline;
    line-height: 26px;
    margin-top: -15px;
    margin-left: -15px;
    background-color: transparent;
    font-size: 30px;
  }
  .price-list ol li { width: 46%; }
  .price-list ol li:nth-of-type(2) { float: right; }
  .price-list ol li img { width: 100%; }
  .price-other { overflow: hidden; }
  .price-other li {
    float: right;
    width: 48%;
    margin-top: 25px;
  }
  .price-other li:first-of-type { float: left; }
  .price-other img { width: 100%; }
}


/* ***************************************** */
/* --- case 事例 --- */
/* ***************************************** */
/* 共通 ------------------------------------ */
.case-list li {
  margin-top: 25px;
  padding-top: 26px;
  border-top: 1px dotted #000;
}
.case-list li:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.case-list li p { margin-top: 10px; }
.case-before-after {
  padding: 25px 5%;
  background-color: #fff;
}
.case-before-after ol {
  position: relative;
  margin-top: 25px;
  padding-top: 26px;
  border-top: 1px dotted #000;
}
.case-before-after ol:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.case-before-after ol::before {
  font-family: icomoon;
  content: "\e900";
  position: absolute;
  top: 50%;
  width: 100%;
  height: 54px;
  line-height: 54px;
  margin-top: -27px;
  text-align: center;
  color: #003e71;
  font-size: 26px;
}
.case-before-after li:first-of-type { margin-bottom: 54px; }
@media only screen and (min-width: 768px), print {
  .case-list { padding-bottom: 14vw; }
  .case-list li {
    position: relative;
    float: left;
    width: 30%;
    margin-top: 20vw;
    margin-right: 5%;
    padding-top: 0;
    border-top: none;
  }
  .case-list li:nth-of-type(-n+3) { margin-top: 0; }
  .case-list li:nth-of-type(3n) { margin-right: 0; }
  .case-list li:nth-of-type(3n + 1) { clear: both; }
  .case-list li img { width: 100%; }
  .case-list li .case-item-title {
    position: absolute;
    top: 14.5vw;
    left: 0;
    width: 100%;
  }
  .case-list li .m-btn2 {
    position: absolute;
    top: 23vw;
    left: 0;
    width: 100%;
  }
  .case-before-after { padding: 40px; }
  .case-before-after ol {
    overflow: hidden;
    margin-top: 40px;
    padding-top: 0;
    border-top: none;
  }
  .case-before-after ol:first-of-type { margin-top: 0; }
  .case-before-after ol::before {
    content: "\e901";
    height: auto;
    line-height: 1;
    margin-top: -15px;
    font-size: 30px;
  }
  .case-before-after li {
    float: right;
    width: 46%;
  }
  .case-before-after li:first-of-type {
    float: left;
    margin-bottom: 0;
  }
  .case-before-after li img { width: 100%; }
  .price-other ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .price-other li { float: none; }
}
@media only screen and (min-width: 768px) and (max-width: 1000px) {
  .case-list { padding-bottom: 13vw; }
  .case-list li {
    float: left;
    width: 48%;
    margin-top: 20vw;
    margin-right: 0;
    padding-top: 0;
  }
  .case-list li:nth-of-type(3) { margin-top: 20vw; }
  .case-list li:nth-of-type(-n+2) { margin-top: 0; }
  .case-list li:nth-of-type(2n) { float: right; }
  .case-list li:nth-of-type(3n + 1) { clear: none; }
  .case-list li:nth-of-type(2n + 1) { clear: both; }
  .case-list li img { width: 100%; }
  .case-list li p {
    margin-top: 9.5vw;
    font-size: 1.6vw;
  }
  .case-list li .m-btn2 { top: 21vw; }
}

/* ダイヤモンドカットのみ ------------------ */
.case-img-diamond {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (min-width: 768px), print {
  .case-img-diamond { width: 100%; }
  .case-img-diamond img { width: 100%; }
}

/* 歪みのみ -------------------------------- */
.yugami-movie {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 20px 5%;
  background-color: #e6e7e9;
}
.yugami-text dt {
  margin-bottom: 10px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
}
.yugami-text dt::before {
  content: "■";
  margin-right: 6px;
  color: #d91a28;
}
@media only screen and (min-width: 768px), print {
  .yugami-movie {
    width: 100%;
    padding: 20px;
  }
  .yugami-text dt { font-size: 20px; }
}

/* 修理対象外のみ -------------------------- */
.case-other {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
.case-other li { margin-top: 30px; }
.case-other li:first-of-type { margin-top: 0; }
.case-other span {
  display: block;
  margin-top: 10px;
  padding: 5px 20px;
  background-color: #d91a28;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 700;
  color: #fff;
}
@media only screen and (min-width: 768px), print {
  .case-other { width: 100%; }
  .case-other ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 50px 0;
  }
  .case-other li {
    width: 48%;
    margin: 0;
  }
  .case-other li img { width: 100%; }
  .case-other span {
    margin-top: 20px;
    padding: 5px 20px;
  }
}


/* ***************************************** */
/* --- case-single 事例 --- */
/* ***************************************** */
.case-single {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding: 25px 5%;
  background-color: #fff;
}
.case-single p { margin-bottom: 20px; }
.case-single p a { text-decoration: underline; }
.case-single ol { position: relative; }
.case-single ol::before {
  font-family: icomoon;
  content: "\e900";
  position: absolute;
  top: 50%;
  width: 100%;
  height: 54px;
  line-height: 54px;
  margin-top: -27px;
  text-align: center;
  font-size: 26px;
  color: #003e71;
}
.case-single li:first-of-type { margin-bottom: 54px; }
@media only screen and (min-width: 768px), print {
  .case-single {
    width: 100%;
    padding: 40px;
  }
  .case-single p { margin-bottom: 20px; }
  .case-single ol::before {
    top: 50%;
    width: 100%;
    height: 80px;
    line-height: 80px;
    margin-top: -40px;
    font-size: 40px;
  }
  .case-single li { text-align: center; }
  .case-single li:first-of-type { margin-bottom: 80px; }
  .case-single img { width: 80%; }
}


/* ***************************************** */
/* --- flow 申込みの流れ --- */
/* ***************************************** */
.flow-list li { margin: 8px 0; }
.flow-list li::after {
  font-family: icomoon;
  content: "\e900";
  display: block;
  text-align: center;
  font-size: 30px;
  color: #003e71;
}
.flow-list li:first-of-type { position: relative; }
.flow-list li:first-of-type .m-btn-store {
  position: absolute;
  top: 51vw;
  width: 100%;
  padding: 0 7%;
}
.flow-list li:first-of-type .m-btn-store a::after { display: none; }
.flow-list li:last-of-type::after { display: none; }
@media only screen and (min-width: 768px), print {
  .flow-list li {
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    margin: 0;
  }
  .flow-list li::after { font-size: 60px; }
  .flow-list li:first-of-type .m-btn-store {
    top: 44%;
    width: 100%;
    padding: 0 6%;
  }
  .flow-list li:first-of-type .m-btn-store a::after { display: inline-block; }
  .flow-list li img { display: none; }
  .flow-list li:nth-of-type(1) {
    padding-top: 70%;
    background-image: url(../img/flow1-pc.png);
  }
  .flow-list li:nth-of-type(2) {
    padding-top: 77%;
    background-image: url(../img/flow2-pc.png);
  }
  .flow-list li:nth-of-type(3) {
    padding-top: 51%;
    background-image: url(../img/flow3-pc.png);
  }
  .flow-list li:nth-of-type(4) {
    padding-top: 62.3%;
    background-image: url(../img/flow4-pc.png);
  }
  .flow-list li:nth-of-type(5) {
    padding-top: 64%;
    background-image: url(../img/flow5-pc.png);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .flow-list li:first-of-type .m-btn-store { top: 42.5%; }
  .flow-list li:first-of-type .m-btn-store span::before,
  .flow-list li:first-of-type .m-btn-store span::after,
  .flow-list li:first-of-type .m-btn-store a {
    height: 6.3vw;
    line-height: 6.3vw;
  }
  .flow-list li:first-of-type .m-btn-store a { font-size: 2.8vw; }
  .flow-list li:first-of-type .m-btn-store a::before { font-size: 3vw; }
  .flow-list li:first-of-type .m-btn-store a::after { font-size: 2vw; }
}


/* ***************************************** */
/* --- column コラム --- */
/* ***************************************** */
/* list ------------------------------------ */
.column-list li {
  margin-top: 10px;
  padding-top: 12px;
  padding-left: 34px;
  padding-right: 10px;
  text-indent: -24px;
  border-top: 1px dotted #000;
}
.column-list li:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.column-list li::before {
  font-family: icomoon;
  content: "\e901";
  margin-right: 8px;
  color: #0f61a9;
}
@media only screen and (min-width: 768px), print {
  .column-list a:hover { box-shadow: 0 1px 0 #000; }
}

/* single ---------------------------------- */
.column-single img {
  width: 100% !important;
  margin-top: 1em;
}


/* ***************************************** */
/* --- store-top --- */
/* --- store-areas --- */
/* ***************************************** */
.store-list article { margin-top: 45px; }
.store-list article:first-of-type { margin-top: 0; }
.store-list ul { overflow: hidden; }
.store-list ul li {
  width: 48%;
  float: left;
  margin-top: 15px;
}
.store-list ul li:nth-of-type(2n) { float: right; }
.store-list ul li:nth-of-type(-n+2) { margin-top: 0; }
.store-list .store-text { margin-top: 20px; }
@media only screen and (min-width: 768px), print {
  .store-list article { margin-top: 80px; }
  .store-list ul li {
    width: 30%;
    margin-top: 20px;
    margin-right: 5%;
  }
  .store-list ul li:nth-of-type(2n) { float: left; }
  .store-list ul li:nth-of-type(3n) { margin-right: 0; }
  .store-list ul li:nth-of-type(-n+3) { margin-top: 0; }
  .store-list .store-text { margin-top: 40px; }
}
@media only screen and (min-width: 768px) and (max-width: 1040px) {
  .store-list .m-btn2 a { font-size: 1.7vw; }
}


/* ***************************************** */
/* --- store-list --- */
/* ***************************************** */
.sortform-wrap {
  overflow: hidden;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}
.sortform {
  position: relative;
  float: right;
}
.sortform::after {
  content: "▼";
  position: absolute;
  top: 50%;
  left: 8px;
  transform: translateY(-50%);
  color: #003e71;
  font-size: 18px;
}
.sortform select {
  height: 30px;
  line-height: 30px;
  padding: 0 10px;
  padding-left: 28px;
  -webkit-appearance: none;
  cursor: pointer;
}
.sortform select::-ms-expand { display: none; }
.store-wrap .l-block1 { margin-top: 30px; }
.i-diamond::before {
  position: relative;
  top: 1px;
}
.store-btn { cursor: pointer; }
.store-btn dt {
  position: relative;
  padding: 15px;
  border-bottom: 1px dotted #fff;
  background-color: #428bc8;
  color: #fff;
}
.store-btn dt::after {
  font-family: icomoon;
  content: "\e911";
  position: absolute;
  top: 50%;
  right: 15px;
  display: block;
  width: 20px;
  height: 20px;
  line-height: 20px;
  margin-top: -10px;
  border-radius: 3px;
  background-color: #fff;
  background-image: linear-gradient(#fff, d7d7d7);
  text-align: center;
  color: #003e71;
  font-size: 12px;
}
.store-btn.on dt::after { content: "\e912"; }
.store-btn dd {
  padding: 15px;
  background-color: #003e71;
  color: #fff;
}
.store-btn dd .kana { font-size: 10px; }
.store-btn dd img {
  width: 17px;
  vertical-align: -2px;
}
.store-data {
  display: none;
  padding: 15px;
  background-color: #fff;
}
.store-data div {
  overflow: hidden;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dotted #000;
}
.store-data div:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.store-data div dt {
  float: left;
  width: 35%;
}
.store-data div dt::before {
  content: "■";
  margin-right: 4px;
  color: #d91a28;
}
.store-data div dd {
  float: left;
  width: 65%;
}
.store-data div dd img {
  display: block;
  width: 100%;
  margin-bottom: 5px;
}
.store-icon-text {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 35px;
  padding: 20px;
  background-color: #f4e9e9;
}
.store-icon-text ul {
  display: table;
  margin-top: 16px;
  padding-top: 10px;
  border-top: 1px dotted #000;
}
.store-icon-text ul:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.store-icon-text li { display: table-cell; }
.store-icon-text li:nth-of-type(1) {
  width: 78px;
  text-align: right;
}
.store-icon-text i, .store-icon-text span {
  display: inline-block;
  width: 30px;
  height: 30px;
  line-height: 30px;
  margin-right: 8px;
  border-radius: 15px;
  background-color: #fff;
  text-align: center;
  font-size: 18px;
}
.store-icon-text i img, .store-icon-text span img {
  width: 60%;
  vertical-align: -2px;
}
@media only screen and (min-width: 768px), print {
  .sortform-wrap { width: 100%; }
  .store-wrap .l-block1 { margin-top: 50px; }
  .store-wrap .l-block1:first-of-type { margin-top: 40px; }
  .i-diamond::before { top: 2px; }
  .store-btn {
    transition: opacity 0.3s;
    position: relative;
    display: table;
    width: 100%;
  }
  .store-btn:hover { opacity: 0.8; }
  .store-btn::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 25px 25px 0;
    border-color: transparent #f4f4f4 transparent transparent;
  }
  .store-btn dt {
    position: static;
    display: table-cell;
    width: 24%;
    padding: 0;
    padding-left: 20px;
    border-bottom: none;
    border-right: 1px dotted #fff;
    vertical-align: middle;
    font-size: 20px;
  }
  .store-btn dt::after {
    z-index: 10;
    right: 20px;
    width: 36px;
    height: 36px;
    line-height: 36px;
    margin-top: -18px;
    font-size: 20px;
  }
  .store-btn dd {
    position: relative;
    display: table-cell;
    padding: 20px;
    padding-right: 80px;
  }
  .store-btn dd .kana { font-size: 12px; }
  .store-btn dd .store-icon {
    position: absolute;
    bottom: 18px;
    right: 80px;
    text-align: right;
  }
  .store-btn dd .store-icon i {
    vertical-align: middle;
    font-size: 20px;
  }
  .store-btn dd .store-icon img {
    width: 20px;
    vertical-align: -4px;
  }
  .store-data { padding: 20px; }
  .store-data div {
    margin-top: 10px;
    padding: 0 20px;
    padding-top: 10px;
  }
  .store-data div dt { width: 20%; }
  .store-data div dd { width: 80%; }
  .store-data div dd img { width: 60%; }
  .store-icon-text {
    width: 100%;
    margin-top: 60px;
    padding: 25px 40px;
  }
  .store-icon-text ul:first-of-type {
    margin-bottom: 16px;
    padding-bottom: 0;
    border-bottom: none;
  }
  .store-icon-text li:nth-of-type(2) {
    padding-left: 22px;
    text-indent: -22px;
  }
  .store-icon-text li:nth-of-type(2)::before { content: "… "; }
}


/* ***************************************** */
/* --- company 会社概要 --- */
/* ***************************************** */
.company-data div {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px dotted #000;
}
.company-data div:first-of-type {
  margin-top: 0;
  margin-bottom: 0;
  border-top: none;
}
.company-data dt::before {
  content: "■";
  margin-right: 6px;
  color: #d91a28;
}
.company-data dd { padding-left: 22px; }
@media only screen and (min-width: 768px), print {
  .company-data div {
    overflow: hidden;
    margin-top: 10px;
    padding: 0 3%;
    padding-top: 12px;
    border-top: 1px dotted #000;
  }
  .company-data dt {
    float: left;
    width: 110px;
  }
  .company-data dd {
    float: left;
    padding-left: 0;
  }
  .company-data br { display: none; }
}


/* ***************************************** */
/* --- link 運用サイト一覧 --- */
/* --- search 検索結果 --- */
/* ***************************************** */
.link-list div {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dotted #000;
}
.link-list div:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.link-list dt {
  margin-bottom: 4px;
  padding-left: 27px;
  text-indent: -27px;
  /*
  900: Black
  700: Bold
  500: Medium
  */
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.01em;
  font-weight: 500;
}
.link-list dt::before {
  font-family: icomoon;
  content: "\e927";
  position: relative;
  top: 2px;
  margin-right: 8px;
  color: #d91a28;
  font-size: 18px;
}
.link-list dd { padding-left: 26px; }
.link-list dd .text-link { white-space: nowrap; }
@media only screen and (min-width: 768px), print {
  .link-list div {
    margin-top: 16px;
    padding-top: 16px;
  }
  .link-list dt {
    padding-left: 32px;
    text-indent: -32px;
    font-size: 20px;
  }
  .link-list dt::before { font-size: 24px; }
  .link-list dd { padding-left: 34px; }
  .link-list a:hover { box-shadow: 0 1px 0 #000; }
}


/* ***************************************** */
/* --- sitemap サイトマップ --- */
/* ***************************************** */
.sitemap1 {
  border-top: 1px dotted #000;
  background-color: #fdf8f8;
}
.sitemap1 a {
  display: block;
  padding: 10px 16px;
  padding-left: 37px;
  text-indent: -21px;
}
.sitemap1 a::before {
  font-family: icomoon;
  content: "\e901";
  margin-right: 6px;
  color: #d91a28;
}
.sitemap2 {
  border-bottom: 1px dotted #000;
  border-top: 1px dotted #000;
  background-color: #f0f5fd;
}
.sitemap2 a { padding-left: 61px; }
.sitemap2 a::before { color: #003e71; }
@media only screen and (min-width: 768px), print {
  .sitemap1 a {
    display: block;
    padding: 16px 16px;
    padding-left: 12%;
    text-indent: -21px;
  }
  .sitemap1 a:hover span { box-shadow: 0 1px 0 #000; }
  .sitemap2 a { padding-left: 15.5%; }
}


/* ***************************************** */
/* --- 404 --- */
/* ***************************************** */
.img404 { margin-bottom: 20px; }
@media only screen and (min-width: 768px), print {
  .img404 { text-align: center; }
  .img404 img { width: 70%; }
}
