@charset "UTF-8";
/* エリアリンク化する */
/* デフォルトのフォントサイズ設定（デフォ：1.6rem / 1.7em） */
/* ::afterで全面背景にする基礎 */
/* FlexBox セッティング */
/* カレント処理の分岐
	静的の場合 ： a[href=index.html]
	CMSの場合 ： li.current a
	$STATIC_OR_DYNAMIC : "Static" ; の値で変更
*/
/* 汎用ボタンのスタイル　（もっと見るボタン、ハンバーガー内閉じるボタン、SP電話番号ボタン） */
/* お問い合わせ用ボタンのスタイル　（ヘッダー、コンテンツエリアフッター） */
/* お問い合わせ用ボタンのスタイル　（ヘッダー、コンテンツエリアフッター） */
/* 
    ・ 基本設定
        サーバー、ドメイン、パスなど
        事前に色調整
        共通アイコン
    ・ テンプレートエリア設定
        ヘッダーエリア
        サイドエリア
        フッターエリア
    ・ エレメント個別対応
        トップページ用
        見出し
        メインナビゲーション
        FAQ
        （コンテンツフッターの）お問い合わせタイトルボーダー

sass --watch .:../ --style compressed --no-cache --sourcemap=none
compass w
 */
/* *** 基本設定 *** */
/* サーバー、ドメイン、パス、など */
/* 共通アイコン */
/* *** テンプレートエリア設定 *** */
/* ヘッダーエリア */
/* サイドエリア */
/* フッターエリア */
/* *** エレメント個別対応 *** */
/* トップページ用 */
/* 見出し */
/* メインナビゲーション */
/* FAQ */
/* （コンテンツフッターの）お問い合わせタイトルボーダー */
/* **
	エレメント用（トップページ以外）
** */
/* ****************************************************************
  PCモード
***************************************************************** */
@media screen and (min-device-width: 641px), print {
  #main {
    /* *** 見出し *** */
    /* *** テキスト *** */ }
    #main h1 {
      padding: 15px 15px 11px 20px;
      border-top: 2px solid #000;
      border-bottom: 1px solid #ddd;
      background-color: #f3f3f3;
      font-size: 2.4rem;
      line-height: 1.7em;
      font-weight: bold;
      text-shadow: 1px 1px 1px #fff; }
    #main h2 {
      margin: 7rem 0 0;
      padding: 8px 15px 5px 15px;
      border-left: 3px solid #000;
      background-color: #f3f3f3;
      font-size: 2.2rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h2::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: calc(100% - 3px);
        height: 0;
        border-top: 2px solid #ddd; }
    #main h3 {
      margin-top: 5rem;
      padding: 0 0 0 12px;
      font-size: 1.8rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h3::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 10%;
        width: 0;
        height: calc(80%);
        border-left: 3px solid #000; }
    #main h4 {
      margin-top: 4rem;
      padding: 0 0 0 12px;
      font-size: 1.6rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h4::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 10%;
        width: 0;
        height: calc(80%);
        border-left: 3px solid #ddd; }
    #main p {
      margin-top: 1.6rem;
      font-size: 1.6rem;
      line-height: 1.7em; }
    #main ul,
    #main ol {
      margin-top: 1rem;
      margin-left: 23px;
      border-top: 1px solid transparent; }
      #main ul li,
      #main ol li {
        margin-top: 0.5rem;
        font-size: 1.6rem;
        line-height: 1.7em; }

  #main {
    /* *** キャッチコピー *** */
    /* *** リード文 *** */
    /* *** 表 *** */
    /* *** ボックス *** */ }
    #main p strong {
      font-size: 2rem;
      line-height: 1.7em;
      font-weight: bold; }
    #main p.lead {
      font-size: 1.8rem;
      line-height: 1.7em; }
    #main table[class^="parts-table-"] {
      width: 100%;
      margin: 2.5rem 0 0 0;
      border-top: solid 1px #ddd;
      border-left: solid 1px #ddd;
      /* 汎用表 */
      /* １次元データ表（theadがない） */ }
      #main table[class^="parts-table-"] th,
      #main table[class^="parts-table-"] td {
        padding: 6px 13px;
        border-right: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        text-align: left;
        vertical-align: top;
        font-size: 1.4rem;
        line-height: 1.7em; }
      #main table[class^="parts-table-"] th {
        width: 1%;
        white-space: nowrap; }
      #main table[class^="parts-table-"] p,
      #main table[class^="parts-table-"] ul,
      #main table[class^="parts-table-"] ol,
      #main table[class^="parts-table-"] li {
        margin-top: 0;
        font-size: 1.4rem;
        line-height: 1.7em; }
      #main table[class^="parts-table-"] th.valign-middle,
      #main table[class^="parts-table-"] td.valign-middle {
        vertical-align: middle; }
      #main table[class^="parts-table-"].parts-table-normal tr:first-child th {
        background-color: #e8e8e8; }
      #main table[class^="parts-table-"].parts-table-normal th:first-child {
        white-space: nowrap; }
      #main table[class^="parts-table-"].parts-table-normal th {
        background-color: #f3f3f3;
        font-weight: bold; }
      #main table[class^="parts-table-"].parts-table-oneline th {
        background-color: #f3f3f3;
        font-weight: bold; }
    #main div[class^="parts-box-"] {
      margin: 2.5rem 0 0 0;
      padding: 2rem 20px 2rem 20px;
      /* 汎用ボックス */ }
      #main div[class^="parts-box-"] :first-child {
        margin-top: 0; }
      #main div[class^="parts-box-"].parts-box-normal {
        border: 1px solid #ddd; }

  #main {
    /* *** カラムレイアウト *** */ }
    #main table[class^="parts-cols-"] {
      border-collapse: separate;
      width: 100%;
      /* 1カラム */
      /* 2カラム */
      /* 3カラム */
      /* 4カラム */
      /* *** カラム内の画像とキャプション *** */
      /* 右側にキービジュアル（画像サイズにならう） */ }
      #main table[class^="parts-cols-"].parts-cols-1 td {
        width: 710px; }
      #main table[class^="parts-cols-"].parts-cols-2 td {
        width: 348px; }
        #main table[class^="parts-cols-"].parts-cols-2 td:not(:first-child) {
          padding-left: 14px; }
      #main table[class^="parts-cols-"].parts-cols-3 td {
        width: 228px; }
        #main table[class^="parts-cols-"].parts-cols-3 td:not(:first-child) {
          padding-left: 13px; }
      #main table[class^="parts-cols-"].parts-cols-4 td {
        width: 170px; }
        #main table[class^="parts-cols-"].parts-cols-4 td:not(:first-child) {
          padding-left: 10px; }
      #main table[class^="parts-cols-"] img {
        box-sizing: border-box;
        width: 100%;
        height: auto;
        margin-top: 0.5rem;
        border: 1px solid #ddd; }
      #main table[class^="parts-cols-"] p.caption {
        margin: 0.3rem 0 0 0;
        font-size: 1.2rem;
        line-height: 1.7em; }
      #main table[class^="parts-cols-"].parts-cols-1 p {
        text-align: center; }
      #main table[class^="parts-cols-"].parts-cols-1 img {
        width: inherit;
        max-width: 100%; }
      #main table[class^="parts-cols-"].parts-cols-key td:last-child {
        width: 1%;
        padding-left: 15px; }
        #main table[class^="parts-cols-"].parts-cols-key td:last-child img {
          width: inherit; }

  #main {
    /* *** ページ内リンク *** */
    /* *** FAQ *** */
    /* *** アクセスマップ *** */
    /* *** 横渡ナビ *** */ }
    #main nav.nav-inpagelink {
      margin-top: 3rem; }
      #main nav.nav-inpagelink ul {
        display: flex;
        flex-wrap: wrap;
        margin: 0;
        padding: 0; }
        #main nav.nav-inpagelink ul li {
          list-style: none;
          margin: 0;
          padding: 5px 13px 5px 0; }
          #main nav.nav-inpagelink ul li a {
            background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%224%22%20height%3D%223%22%3E%3Cpolygon%20points%3D%220%200%204%200%202%203%22%20fill%3D%22%23737373%22%2F%3E%3C%2Fsvg%3E) 5px calc( ( ( 1.7em - 6px ) / 2 ) - 1px )/8px 6px no-repeat; }
    #main dl.faq {
      margin: 1rem 0 0 0;
      padding: 0 0 0 0;
      border-top: 1px solid transparent;
      /* 質問エリア（：controlElement） */
      /* 回答エリア（：contentElement） */ }
      #main dl.faq > dt.question {
        position: relative;
        margin: 2rem 0 0 0;
        padding: 10px 5px 10px 70px;
        border: 1px solid #ddd;
        background: linear-gradient(to bottom, white 0%, #f2f2f2 100%);
        font-size: 1.6rem;
        line-height: 1.7em;
        cursor: pointer; }
        #main dl.faq > dt.question:hover {
          background: linear-gradient(to bottom, #f7f7f7 0%, #f2f2f2 100%); }
        #main dl.faq > dt.question::before {
          content: "Q";
          display: block;
          box-sizing: border-box;
          position: absolute;
          left: 35px;
          top: calc( ( ( 1.6rem * 1.7 ) - 26px) / 2 + 9px);
          width: 26px;
          height: 26px;
          background: #737373;
          text-align: center;
          font-size: 1.6rem;
          line-height: 26px;
          color: #fff; }
        #main dl.faq > dt.question::after {
          content: "";
          display: block;
          width: 16px;
          height: 16px;
          position: absolute;
          left: 8px;
          top: calc( ( (1.6rem * 1.7) - 16px) / 2 + 7px);
          border: 1px solid #fff;
          box-shadow: 0 0 1px 0 #999, 1px 1px 1px 0 rgba(200, 200, 200, 0.5), 2px 2px 2px 2px rgba(200, 200, 200, 0.3); }
        #main dl.faq > dt.question.closed::after {
          background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cpath%20fill%3D%22%23737373%22%20d%3D%22M25%2C11h-8V3c0-1.7-1.3-3-3-3h0c-1.7%2C0-3%2C1.3-3%2C3v8H3c-1.7%2C0-3%2C1.3-3%2C3s1.3%2C3%2C3%2C3h8v8%09c0%2C1.7%2C1.3%2C3%2C3%2C3h0c1.7%2C0%2C3-1.3%2C3-3v-8h8c1.7%2C0%2C3-1.3%2C3-3S26.7%2C11%2C25%2C11z%22%2F%3E%3C%2Fsvg%3E) center center/14px no-repeat, linear-gradient(to bottom, #fefefe 0%, #f4f4f4 100%); }
        #main dl.faq > dt.question.closed + dd.answer-area {
          height: 0; }
        #main dl.faq > dt.question.opened {
          background: #f3f3f3; }
          #main dl.faq > dt.question.opened::after {
            background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cpath%20fill%3D%22%23737373%22%20d%3D%22M25%2C11h-4h-4H3c-1.7%2C0-3%2C1.3-3%2C3s1.3%2C3%2C3%2C3h14h4h4c1.7%2C0%2C3-1.3%2C3-3S26.7%2C11%2C25%2C11z%22%2F%3E%3C%2Fsvg%3E) center center/14px no-repeat, #f8f8f8; }
        #main dl.faq > dt.question[data-accordion-opened="true"] + dd.answer-area, #main dl.faq > dt.question.opened + dd.answer-area {
          padding-bottom: 1rem;
          border-bottom: 1px solid #ddd; }
      #main dl.faq > dd.answer-area {
        position: relative;
        padding: 0 0 0 70px;
        overflow: hidden;
        border-right: 1px solid #ddd;
        border-left: 1px solid #ddd;
        border-bottom: 0px solid #ddd;
        transition: padding-bottom 0.3s,height 0.3s,border 0.3s;
        font-size: 1.6rem;
        line-height: 1.7em; }
        #main dl.faq > dd.answer-area::before {
          content: "A";
          display: block;
          box-sizing: border-box;
          position: absolute;
          left: 35px;
          top: calc( ( ( 1.6rem * 1.7 ) - 26px) / 2 + 1rem);
          width: 26px;
          height: 26px;
          border: 1px solid #737373;
          background: #f2f2f2;
          text-align: center;
          font-size: 1.8rem;
          line-height: 24px; }
        #main dl.faq > dd.answer-area * {
          margin-top: 0; }
        #main dl.faq > dd.answer-area > *:first-child {
          margin-top: 1rem; }
    #main p.accessmap {
      text-align: center; }
      #main p.accessmap iframe {
        width: 100%; }
    #main nav.nav-transverse {
      margin: 7rem 0 0 0;
      padding: 0.5rem 13px 1.5rem 13px;
      border: 1px solid #ddd; }
      #main nav.nav-transverse p {
        margin: 0 0 0.8rem 0;
        padding: 1rem 0 1.3rem 0;
        border-bottom: 1px solid #ddd; }
      #main nav.nav-transverse ul {
        display: flex;
        flex-wrap: wrap;
        margin: 0 0 0 0;
        padding: 0;
        border-top: 1px solid transparent; }
        #main nav.nav-transverse ul li {
          list-style: none;
          margin: 1rem 2rem 0 0;
          padding: 0; }
          #main nav.nav-transverse ul li.current > a {
            background: none;
            font-weight: bold;
            color: #000; }

  #main {
    /* *** サイトマップ *** */
    /* *** 汎用リンク（メディア・記事系） *** */
    /* *** コンテンツリンク（製品・ソリューション系） *** */
    /* *** ニュースお知らせリンク *** */ }
    #main nav.nav-sitemap {
      width: 100%;
      padding: 3.5rem 0 0 0;
      display: flex;
      flex-wrap: wrap;
      /* ホーム・ニュース */
      /* 各カテゴリ */ }
      #main nav.nav-sitemap > p {
        margin: 0 40px 0 0; }
      #main nav.nav-sitemap > ul {
        box-sizing: border-box;
        width: 100%;
        margin: 1rem 0 0 0;
        padding: 0; }
        #main nav.nav-sitemap > ul > li {
          list-style: none;
          margin: 2.5rem 0 0 0;
          padding: 0; }
          #main nav.nav-sitemap > ul > li > ul {
            margin: 0;
            padding: 0 0 0 15px;
            display: flex;
            flex-wrap: wrap; }
            #main nav.nav-sitemap > ul > li > ul > li {
              list-style: none;
              width: 50%;
              margin: 1rem 0 0 0; }
              #main nav.nav-sitemap > ul > li > ul > li > ul {
                margin: 0;
                padding: 0 0 0 15px;
                display: flex;
                flex-wrap: wrap; }
                #main nav.nav-sitemap > ul > li > ul > li > ul > li {
                  list-style: none;
                  margin: 0.2rem 0 0 0;
                  padding: 0 10px 0 0;
                  font-size: 1.4rem;
                  line-height: 1.7em; }
                  #main nav.nav-sitemap > ul > li > ul > li > ul > li > :not(a) {
                    display: none; }
    #main nav.nav-general ul {
      margin: 1rem 0 0 0;
      padding: 0;
      border-top: 1px solid transparent; }
      #main nav.nav-general ul li {
        list-style: none;
        margin: 1.6rem 0 0; }
        #main nav.nav-general ul li p {
          margin: 0; }
          #main nav.nav-general ul li p.text-detail {
            font-size: 1.4rem;
            line-height: 1.7em; }
          #main nav.nav-general ul li p.text-date {
            font-size: 1.4rem;
            line-height: 1.7em; }
    #main nav.nav-indexlink > ul {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin: 1rem 0 0 0;
      padding: 0;
      border-top: 1px solid transparent; }
      #main nav.nav-indexlink > ul > li {
        list-style: none;
        box-sizing: border-box;
        width: 348px;
        margin: 1.6rem 0 0 0;
        padding: 8px 13px 5px 13px;
        border: 1px solid #ddd;
        position: relative;
        box-shadow: 0 0 2px 2px rgba(200, 200, 200, 0.3);
        transition: all 250ms;
        cursor: pointer; }
        #main nav.nav-indexlink > ul > li:hover {
          background: #ededed;
          opacity: 0.9; }
        #main nav.nav-indexlink > ul > li a::before {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          position: absolute;
          left: 0;
          top: 0;
          background: transparent; }
        #main nav.nav-indexlink > ul > li:not(:nth-child(2n)):nth-last-child(3) {
          width: 228px; }
        #main nav.nav-indexlink > ul > li:not(:nth-child(2n+1)):nth-last-child(2) {
          width: 228px; }
        #main nav.nav-indexlink > ul > li:not(:first-child):nth-child(2n+1):last-child {
          width: 228px; }
        #main nav.nav-indexlink > ul > li p {
          margin: 0; }
          #main nav.nav-indexlink > ul > li p.pic {
            margin: -8px -13px 5px -13px; }
            #main nav.nav-indexlink > ul > li p.pic img {
              width: 100%;
              height: auto;
              vertical-align: top;
              box-sizing: border-box; }
          #main nav.nav-indexlink > ul > li p.text-detail {
            padding: 2px 0 5px 0;
            font-size: 1.2rem;
            line-height: 1.7em; }
    #main nav.nav-news {
      margin: 1.6rem 0 0 0;
      /* リンク一覧本体 */
      /* もっと見るボタン */ }
      #main nav.nav-news .nav-news-area {
        overflow: hidden;
        transition: height 1000ms; }
      #main nav.nav-news ol {
        margin: 0;
        padding: 0; }
        #main nav.nav-news ol li {
          margin: 1rem 0 0 0;
          padding: 0;
          list-style: none;
          display: flex; }
          #main nav.nav-news ol li time {
            white-space: nowrap;
            word-spacing: 0.281em;
            padding: 0;
            font-size: 1.6rem;
            line-height: 1.7em; }
          #main nav.nav-news ol li p.title {
            margin: 0 0 0 15px;
            font-size: 1.6rem;
            line-height: 1.7em; }
      #main nav.nav-news .links-more-btn {
        position: relative;
        margin: -7rem 0 0 0;
        padding: 7rem 0 0 0;
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 30%, rgba(255, 255, 255, 0.95) 90%, #fff 100%);
        text-align: center; }
        #main nav.nav-news .links-more-btn button {
          display: inline-block;
          padding: 0.9rem 100px 0.8rem 100px;
          position: relative;
          border: 1px solid #ddd;
          background: linear-gradient(to bottom, #fff, #f3f3f3) left top;
          box-shadow: 0 0 2px 1px rgba(200, 200, 200, 0.7), inset 0 0 0 1px #fff;
          cursor: pointer;
          text-align: center;
          font-size: 1.8rem;
          line-height: 1.7em; }
          #main nav.nav-news .links-more-btn button:hover {
            background: linear-gradient(to top, #fff, #f3f3f3) left top; }

  #main {
    /* *** お問い合わせエリア *** */ }
    #main .contacts {
      margin: 7rem 0 0;
      border-top: 2px solid #000;
      /* コンバージョンエリア */ }
      #main .contacts p,
      #main .contacts ul,
      #main .contacts li {
        margin: 0;
        padding: 0;
        list-style: none; }
      #main .contacts > p.title {
        margin: 0;
        padding: 10px 20px;
        background: #f3f3f3;
        border: 1px solid #ddd;
        border-top: none;
        font-size: 1.8rem;
        line-height: 1.7em;
        font-weight: bold; }
      #main .contacts .contacts-conversion {
        display: flex;
        box-sizing: border-box;
        width: 100%;
        margin: 0;
        padding: 0 15px 1.8rem 20px;
        border: 1px solid #ddd;
        border-top: none;
        /* メールでお問い合わせエリア */
        /* 電話でお問い合わせエリア */ }
        #main .contacts .contacts-conversion .conversion-title {
          margin: 1.5rem 0 0 0;
          padding: 0 0 0.6rem 0;
          font-size: 1.6rem;
          line-height: 1.5em;
          font-weight: bold; }
        #main .contacts .contacts-conversion .conversion-web {
          padding-right: 20px; }
          #main .contacts .contacts-conversion .conversion-web .conversion-web-button {
            min-width: 250px; }
            #main .contacts .contacts-conversion .conversion-web .conversion-web-button a {
              display: block;
              padding: 6px 17px 5px 35px;
              position: relative;
              border: 1px solid #595959;
              background: linear-gradient(to bottom, #666666 0%, #595959 100%) left top;
              box-shadow: 0 0 2px 1px rgba(200, 200, 200, 0.7);
              text-align: center;
              font-size: 2rem;
              line-height: 1.7em;
              font-weight: bold;
              color: #fff; }
              #main .contacts .contacts-conversion .conversion-web .conversion-web-button a::before {
                display: block;
                content: "";
                width: 16px;
                height: 12px;
                position: absolute;
                left: 15px;
                top: calc(50% - 5px);
                background: url(../img/icon-mail.png) left top/16px auto no-repeat; }
              #main .contacts .contacts-conversion .conversion-web .conversion-web-button a:hover {
                background: linear-gradient(to bottom, #4a4a4a 0%, #525252 100%) left top; }
        #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button {
          position: relative;
          vertical-align: bottom;
          word-break: break-all;
          font-size: 3.4rem;
          line-height: 1.1em;
          font-weight: bold; }
          #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button .number {
            display: inline-block;
            position: relative;
            padding-left: 39px;
            background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2266%22%20height%3D%2262%22%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M0%2C62h18V0H0V62z%22%2F%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M22%2C0v62h44V0H22z%20M36%2C56h-8v-8h8V56z%20M36%2C44h-8v-8h8V44z%20M36%2C32h-8v-8h8V32z%20M48%2C56h-8%20v-8h8V56z%20M48%2C44h-8v-8h8V44z%20M48%2C32h-8v-8h8V32z%20M60%2C56h-8v-8h8V56z%20M60%2C44h-8v-8h8V44z%20M60%2C32h-8v-8h8V32z%20M60%2C19H28V7h32V19z%22%2F%3E%3C%2Fsvg%3E) left calc(50% - 2px)/33px 31px no-repeat; }
          #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button .tel-free {
            display: inline-block;
            vertical-align: 1px;
            font-size: 1.4rem;
            line-height: 1.1em;
            font-weight: normal; }
        #main .contacts .contacts-conversion .conversion-tel ul.notice li {
          font-size: 1.2rem;
          line-height: 1.7em; } }
/* ****************************************************************
  SPモード
***************************************************************** */
@media screen and (max-device-width: 640px) {
  #main {
    /* *** 見出し *** */
    /* *** テキスト *** */ }
    #main h1 {
      margin: 0 -10px;
      padding: 10px 5px 10px 10px;
      border-top: 2px solid #000;
      border-bottom: 1px solid #ddd;
      background-color: #f3f3f3;
      font-size: 2.4rem;
      line-height: 1.7em;
      font-weight: bold;
      text-shadow: 1px 1px 1px #fff; }
    #main h2 {
      margin: 7rem -10px 0;
      padding: 8px 5px 7px 10px;
      border-left: 3px solid #000;
      background-color: #f3f3f3;
      font-size: 2.2rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h2::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: calc(100% - 3px);
        height: 0;
        border-top: 2px solid #ddd; }
    #main h3 {
      margin-top: 5rem;
      padding: 0 0 0 10px;
      font-size: 1.8rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h3::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 10%;
        width: 0;
        height: calc(80%);
        border-left: 3px solid #000; }
    #main h4 {
      margin-top: 4rem;
      padding: 0 0 0 10px;
      font-size: 1.6rem;
      line-height: 1.7em;
      font-weight: bold;
      position: relative; }
      #main h4::after {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 8%;
        width: 0;
        height: calc(80%);
        border-left: 3px solid #ddd; }
    #main p {
      margin-top: 1.6rem;
      font-size: 1.6rem;
      line-height: 1.7em; }
    #main ul,
    #main ol {
      margin-top: 1rem;
      margin-left: 23px;
      border-top: 1px solid transparent; }
      #main ul li,
      #main ol li {
        margin-top: 0.5rem;
        font-size: 1.6rem;
        line-height: 1.7em; }

  #main {
    /* *** キャッチコピー *** */
    /* *** リード文 *** */
    /* *** 表 *** */
    /* *** ボックス *** */ }
    #main p strong {
      font-size: 1.8rem;
      line-height: 1.7em;
      font-weight: bold; }
    #main table[class^="parts-table-"] {
      width: 100%;
      margin: 2.5rem 0 0 0;
      border-top: solid 1px #ddd;
      border-left: solid 1px #ddd;
      /* 汎用表 */
      /* １次元データ表（theadがない） */ }
      #main table[class^="parts-table-"] th,
      #main table[class^="parts-table-"] td {
        padding: 6px 13px;
        border-right: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        text-align: left;
        vertical-align: top;
        font-size: 1.4rem;
        line-height: 1.7em; }
      #main table[class^="parts-table-"] p,
      #main table[class^="parts-table-"] ul,
      #main table[class^="parts-table-"] ol,
      #main table[class^="parts-table-"] li {
        margin-top: 0;
        font-size: 1.4rem;
        line-height: 1.7em; }
      #main table[class^="parts-table-"] th.valign-middle,
      #main table[class^="parts-table-"] td.valign-middle {
        vertical-align: middle; }
      #main table[class^="parts-table-"].parts-table-normal {
        width: 680px;
        border: none;
        position: relative; }
        #main .parts-table-normal-outer {
          position: relative;
          width: 100vw;
          margin: 0 0 0 -10px;
          padding: 0 0 0 10px;
          overflow-x: auto;
          overflow-y: hidden;
          -webkit-overflow-scrolling: touch; }
          #main .parts-table-normal-outer::before {
            opacity: 0;
            display: block;
            content: "スワイプして表を見る";
            box-sizing: border-box;
            width: 710px;
            height: 100%;
            padding: 10vw 0 0 calc(20px);
            background: url(../img/gesture-swipe.gif) calc(77vw - 20px) 4vw/23vw auto no-repeat, rgba(0, 0, 0, 0.3) left top/100% 100%;
            position: absolute;
            left: 0;
            top: 2.5rem;
            z-index: 1;
            font-size: 6vw;
            line-height: 1.7em;
            font-weight: bold;
            color: #fff;
            pointer-events: none;
            opacity: 0;
            transition: opacity 250ms; }
          #main .parts-table-normal-outer[data-table-scroll=""]::before {
            opacity: 1; }
        #main table[class^="parts-table-"].parts-table-normal tr td:first-child {
          border-left: 1px solid #ddd; }
        #main table[class^="parts-table-"].parts-table-normal tr:first-child th {
          background-color: #e8e8e8;
          white-space: nowrap;
          border-top: solid 1px #ddd; }
        #main table[class^="parts-table-"].parts-table-normal th {
          background-color: #f3f3f3;
          border-left: solid 1px #ddd;
          font-weight: bold; }
      #main table[class^="parts-table-"].parts-table-oneline tbody {
        display: block; }
        #main table[class^="parts-table-"].parts-table-oneline tbody tr {
          display: block; }
          #main table[class^="parts-table-"].parts-table-oneline tbody tr th {
            display: block;
            background-color: #f3f3f3;
            font-weight: bold; }
          #main table[class^="parts-table-"].parts-table-oneline tbody tr td {
            display: block; }
    #main div[class^="parts-box-"] {
      margin: 2.5rem 0 0 0;
      padding: 1.3rem 10px 1.6rem 13px;
      /* 汎用ボックス */ }
      #main div[class^="parts-box-"] :first-child {
        margin-top: 0; }
      #main div[class^="parts-box-"].parts-box-normal {
        border: 1px solid #ddd; }

  #main {
    /* *** カラムレイアウト *** */ }
    #main table[class^="parts-cols-"] {
      display: block;
      width: 100%;
      /* 1カラム */
      /* 2カラム */
      /* 3カラム */
      /* 4カラム */
      /* *** カラム内の画像とキャプション *** */
      /*  右側にキービジュアル（画像サイズにならう）  */ }
      #main table[class^="parts-cols-"] tbody,
      #main table[class^="parts-cols-"] tr,
      #main table[class^="parts-cols-"] td {
        display: block;
        width: 100%; }
      #main table[class^="parts-cols-"].parts-cols-4 tr {
        display: flex;
        flex-wrap: wrap;
        justify-content: center; }
        #main table[class^="parts-cols-"].parts-cols-4 tr td {
          width: auto;
          padding: 0 10px; }
      #main table[class^="parts-cols-"] img {
        display: block;
        box-sizing: border-box;
        margin: 0 auto;
        border: 1px solid #ddd; }
      #main table[class^="parts-cols-"] p.caption {
        margin: 0.3rem 0 0 0;
        font-size: 1.2rem;
        line-height: 1.7em;
        text-align: center; }

  #main {
    /* *** ページ内リンク *** */
    /* *** FAQ *** */
    /* *** アクセスマップ *** */
    /* *** 横渡ナビ *** */ }
    #main nav.nav-inpagelink {
      margin-top: 3rem; }
      #main nav.nav-inpagelink ul {
        display: flex;
        flex-wrap: wrap;
        margin: 0;
        padding: 0; }
        #main nav.nav-inpagelink ul li {
          list-style: none;
          margin: 0;
          padding: 5px 13px 5px 0; }
          #main nav.nav-inpagelink ul li a {
            background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%224%22%20height%3D%223%22%3E%3Cpolygon%20points%3D%220%200%204%200%202%203%22%20fill%3D%22%23737373%22%2F%3E%3C%2Fsvg%3E) 5px calc( ( ( 1.7em - 6px ) / 2 ) - 0px )/8px 6px no-repeat; }
    #main dl.faq {
      margin: 1rem 0 0 0;
      padding: 0 0 0 0;
      border-top: 1px solid transparent;
      /* 質問エリア（：controlElement） */
      /* 回答エリア（：contentElement） */ }
      #main dl.faq > dt.question {
        position: relative;
        margin: 2rem 0 0 0;
        padding: 10px 5px 10px 70px;
        border: 1px solid #ddd;
        background: linear-gradient(to bottom, white 0%, #f2f2f2 100%);
        font-size: 1.6rem;
        line-height: 1.7em;
        cursor: pointer; }
        #main dl.faq > dt.question:hover {
          background: linear-gradient(to bottom, #f7f7f7 0%, #f2f2f2 100%); }
        #main dl.faq > dt.question::before {
          content: "Q";
          display: block;
          box-sizing: border-box;
          position: absolute;
          left: 35px;
          top: calc( ( ( 1.6rem * 1.7 ) - 26px) / 2 + 9px);
          width: 26px;
          height: 26px;
          background: #737373;
          text-align: center;
          font-size: 1.6rem;
          line-height: 26px;
          color: #fff; }
        #main dl.faq > dt.question::after {
          content: "";
          display: block;
          width: 16px;
          height: 16px;
          position: absolute;
          left: 8px;
          top: calc( ( (1.6rem * 1.7) - 16px) / 2 + 7px);
          border: 1px solid #fff;
          box-shadow: 0 0 1px 0 #999, 1px 1px 1px 0 rgba(200, 200, 200, 0.5), 2px 2px 2px 2px rgba(200, 200, 200, 0.3); }
        #main dl.faq > dt.question.closed::after {
          background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cpath%20fill%3D%22%23737373%22%20d%3D%22M25%2C11h-8V3c0-1.7-1.3-3-3-3h0c-1.7%2C0-3%2C1.3-3%2C3v8H3c-1.7%2C0-3%2C1.3-3%2C3s1.3%2C3%2C3%2C3h8v8%09c0%2C1.7%2C1.3%2C3%2C3%2C3h0c1.7%2C0%2C3-1.3%2C3-3v-8h8c1.7%2C0%2C3-1.3%2C3-3S26.7%2C11%2C25%2C11z%22%2F%3E%3C%2Fsvg%3E) center center/14px no-repeat, linear-gradient(to bottom, #fefefe 0%, #f4f4f4 100%); }
        #main dl.faq > dt.question.closed + dd.answer-area {
          height: 0; }
        #main dl.faq > dt.question.opened {
          background: #f3f3f3; }
          #main dl.faq > dt.question.opened::after {
            background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%3E%3Cpath%20fill%3D%22%23737373%22%20d%3D%22M25%2C11h-4h-4H3c-1.7%2C0-3%2C1.3-3%2C3s1.3%2C3%2C3%2C3h14h4h4c1.7%2C0%2C3-1.3%2C3-3S26.7%2C11%2C25%2C11z%22%2F%3E%3C%2Fsvg%3E) center center/14px no-repeat, #f8f8f8; }
        #main dl.faq > dt.question.opened + dd.answer-area {
          padding-bottom: 1rem;
          border-bottom: 1px solid #ddd; }
      #main dl.faq > dd.answer-area {
        position: relative;
        padding: 0 0 0 70px;
        overflow: hidden;
        border-right: 1px solid #ddd;
        border-left: 1px solid #ddd;
        border-bottom: 0px solid #ddd;
        transition: padding-bottom 0.3s,height 0.3s,border 0.3s;
        font-size: 1.6rem;
        line-height: 1.7em; }
        #main dl.faq > dd.answer-area::before {
          content: "A";
          display: block;
          box-sizing: border-box;
          position: absolute;
          left: 35px;
          top: calc( ( ( 1.6rem * 1.7 ) - 26px) / 2 + 1rem);
          width: 26px;
          height: 26px;
          border: 1px solid #737373;
          background: #f2f2f2;
          text-align: center;
          font-size: 1.8rem;
          line-height: 24px; }
        #main dl.faq > dd.answer-area * {
          margin-top: 0; }
        #main dl.faq > dd.answer-area > *:first-child {
          margin-top: 1rem; }
    #main p.accessmap {
      text-align: center;
      position: relative; }
      #main p.accessmap::before {
        content: "タップしてマップを見る";
        display: block;
        box-sizing: border-box;
        width: 100%;
        height: 100%;
        padding-top: 25px;
        background: url(../img/gesture-tap.gif) center calc(25px + (7vw * 1.7) + 1vw)/23vw auto no-repeat, rgba(0, 0, 0, 0.3) left top/100% 100%;
        position: absolute;
        left: 0;
        top: 0;
        font-size: 7vw;
        line-height: 1.7em;
        font-weight: bold;
        color: #fff; }
      #main p.accessmap.opened::before {
        display: none; }
      #main p.accessmap iframe {
        width: calc(100vw - 40px);
        height: calc( ( (100vw - 40px) * 450 ) / 710); }
    #main nav.nav-transverse {
      margin: 7rem 0 0 0;
      padding: 0.5rem 13px 1.5rem 13px;
      border: 1px solid #ddd; }
      #main nav.nav-transverse p {
        margin: 0 0 0.8rem 0;
        padding: 0.7rem 0 1rem 0;
        border-bottom: 1px solid #ddd; }
      #main nav.nav-transverse ul {
        margin: 0 0 0 0;
        padding: 0;
        border-top: 1px solid transparent; }
        #main nav.nav-transverse ul li {
          list-style: none;
          margin: 1rem 1.5rem 0 0;
          padding: 0; }
          #main nav.nav-transverse ul li.current > a {
            background: none;
            font-weight: bold;
            color: #000; }

  #main {
    /* *** サイトマップ *** */
    /* *** 汎用リンク（メディア・記事系） *** */
    /* *** コンテンツリンク（製品・ソリューション系） *** */
    /* *** ニュースお知らせリンク *** */ }
    #main nav.nav-sitemap {
      margin: 2rem 0 0 0;
      border-top: 1px solid transparent;
      /* ホーム・ニュース */
      /* 各カテゴリ */ }
      #main nav.nav-sitemap > ul {
        box-sizing: border-box;
        margin: 1rem 0 0 0;
        padding: 0; }
        #main nav.nav-sitemap > ul > li {
          list-style: none;
          margin: 2.5rem 0 0 0;
          padding: 0; }
          #main nav.nav-sitemap > ul > li > ul {
            margin: 0;
            padding: 0 0 0 15px; }
            #main nav.nav-sitemap > ul > li > ul > li {
              list-style: none;
              margin: 1rem 0 0 0; }
              #main nav.nav-sitemap > ul > li > ul > li > ul {
                margin: 0;
                padding: 0 0 0 15px;
                display: flex;
                flex-wrap: wrap; }
                #main nav.nav-sitemap > ul > li > ul > li > ul > li {
                  list-style: none;
                  margin: 0.2rem 0 0 0;
                  padding: 0 10px 0 0;
                  font-size: 1.4rem;
                  line-height: 1.7em; }
                  #main nav.nav-sitemap > ul > li > ul > li > ul > li > :not(a) {
                    display: none; }
    #main nav.nav-general ul {
      margin: 1rem 0 0 0;
      padding: 0;
      border-top: 1px solid transparent; }
      #main nav.nav-general ul li {
        list-style: none;
        margin: 1.6rem 0 0; }
      #main nav.nav-general ul p {
        margin: 0; }
        #main nav.nav-general ul p.text-detail {
          font-size: 1.4rem;
          line-height: 1.7em; }
        #main nav.nav-general ul p.text-date {
          font-size: 1.4rem;
          line-height: 1.7em;
          text-align: right; }
    #main nav.nav-indexlink > ul {
      margin: 1rem 0 0 0;
      padding: 0;
      border-top: 1px solid transparent; }
      #main nav.nav-indexlink > ul > li {
        list-style: none;
        box-sizing: border-box;
        margin: 1.6rem 0 0 0;
        padding: 8px 13px 5px 13px;
        border: 1px solid #ddd;
        position: relative;
        box-shadow: 0 0 2px 2px rgba(200, 200, 200, 0.3);
        transition: all 250ms;
        cursor: pointer; }
        #main nav.nav-indexlink > ul > li:hover {
          background: #ededed;
          opacity: 0.9; }
        #main nav.nav-indexlink > ul > li a::before {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          position: absolute;
          left: 0;
          top: 0;
          background: transparent; }
        #main nav.nav-indexlink > ul > li p {
          margin: 0; }
          #main nav.nav-indexlink > ul > li p.pic {
            margin: -8px -13px 5px -13px; }
            #main nav.nav-indexlink > ul > li p.pic img {
              width: 100%;
              height: auto;
              vertical-align: top;
              box-sizing: border-box; }
          #main nav.nav-indexlink > ul > li p.text-detail {
            padding: 2px 0 5px 0;
            font-size: 1.2rem;
            line-height: 1.7em; }
    #main nav.nav-news {
      margin: 1.6rem 0 0 0;
      /* リンク一覧本体 */
      /* もっと見るボタン */ }
      #main nav.nav-news .nav-news-area {
        overflow: hidden;
        transition: height 1000ms; }
      #main nav.nav-news ol {
        margin: 0;
        padding: 0; }
        #main nav.nav-news ol li {
          margin: 1rem 0 0 0;
          padding: 0;
          list-style: none; }
          #main nav.nav-news ol li time {
            display: block;
            white-space: nowrap;
            word-spacing: 0.281em;
            padding: 0;
            font-size: 1.4rem;
            line-height: 1.7em; }
          #main nav.nav-news ol li p.title {
            margin: 0;
            font-size: 1.6rem;
            line-height: 1.7em; }
      #main nav.nav-news .links-more-btn {
        position: relative;
        margin: -7rem 0 0 0;
        padding: 7rem 0 0 0;
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 30%, rgba(255, 255, 255, 0.95) 90%, #fff 100%);
        text-align: center; }
        #main nav.nav-news .links-more-btn button {
          display: inline-block;
          padding: 0.6rem 30px;
          position: relative;
          border: 1px solid #ddd;
          background: linear-gradient(to bottom, #fff, #f3f3f3) left top;
          box-shadow: 0 0 2px 1px rgba(200, 200, 200, 0.7), inset 0 0 0 1px #fff;
          cursor: pointer;
          text-align: center;
          font-size: 1.2rem;
          line-height: 1.7em; }
          #main nav.nav-news .links-more-btn button:hover {
            background: linear-gradient(to top, #fff, #f3f3f3) left top; }

  #main {
    /* *** お問い合わせエリア *** */ }
    #main .contacts {
      margin: 7rem -10px 0 -10px;
      border-top: 2px solid #000;
      /* コンバージョンエリア */ }
      #main .contacts p,
      #main .contacts ul,
      #main .contacts li {
        margin: 0;
        padding: 0;
        list-style: none; }
      #main .contacts > p.title {
        margin: 0;
        padding: 10px;
        background: #f3f3f3;
        border-bottom: 1px solid #ddd;
        font-size: 1.8rem;
        line-height: 1.7em;
        font-weight: bold; }
      #main .contacts .contacts-conversion {
        padding: 0 10px 1.8rem;
        border-top: 1px solid transparent;
        border-bottom: 1px solid #ddd;
        /* コンバージョンエリアのタイトル（メールフォーム、電話共通） */
        /* メールでお問い合わせエリア */
        /* 電話でお問い合わせエリア */ }
        #main .contacts .contacts-conversion .conversion-title {
          margin: 2rem 0 0 0;
          padding: 0 0 0.6rem 0;
          font-size: 1.6rem;
          line-height: 1.5em;
          font-weight: bold; }
        #main .contacts .contacts-conversion .conversion-web .conversion-web-button a {
          display: block;
          box-sizing: border-box;
          max-width: 400px;
          margin: 0 auto;
          padding: 6px 20px 5px 30px;
          position: relative;
          border: 1px solid #595959;
          background: linear-gradient(to bottom, #666666 0%, #595959 100%) left top;
          box-shadow: 0 0 2px 1px rgba(200, 200, 200, 0.7);
          text-align: center;
          font-size: 2rem;
          line-height: 1.7em;
          font-weight: bold;
          color: #fff; }
          #main .contacts .contacts-conversion .conversion-web .conversion-web-button a::before {
            display: block;
            content: "";
            width: 16px;
            height: 12px;
            position: absolute;
            left: 15px;
            top: calc(50% - 5px);
            background: url(../img/icon-mail.png) left top/16px auto no-repeat; }
          #main .contacts .contacts-conversion .conversion-web .conversion-web-button a:hover {
            background: linear-gradient(to bottom, #4a4a4a 0%, #525252 100%) left top; }
        #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button {
          position: relative;
          vertical-align: bottom;
          word-break: break-all;
          font-size: 2.2rem;
          line-height: 1.1em;
          font-weight: bold; }
          #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button a {
            display: block;
            box-sizing: border-box;
            max-width: 400px;
            margin: 0 auto;
            padding: 12px 0px 11px 25px;
            position: relative;
            border: 1px solid #ddd;
            background: linear-gradient(to bottom, #fff, #f3f3f3) left top;
            box-shadow: 0 0 2px 1px rgba(200, 200, 200, 0.7), inset 0 0 0 1px #fff;
            cursor: pointer;
            text-align: center; }
            #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button a:hover {
              background: linear-gradient(to top, #fff, #f3f3f3) left top; }
            #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button a::before {
              display: block;
              content: "";
              width: 18px;
              height: 18px;
              position: absolute;
              left: 10px;
              top: calc(50% + -9px);
              background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2266%22%20height%3D%2262%22%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M0%2C62h18V0H0V62z%22%2F%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M22%2C0v62h44V0H22z%20M36%2C56h-8v-8h8V56z%20M36%2C44h-8v-8h8V44z%20M36%2C32h-8v-8h8V32z%20M48%2C56h-8%20v-8h8V56z%20M48%2C44h-8v-8h8V44z%20M48%2C32h-8v-8h8V32z%20M60%2C56h-8v-8h8V56z%20M60%2C44h-8v-8h8V44z%20M60%2C32h-8v-8h8V32z%20M60%2C19H28V7h32V19z%22%2F%3E%3C%2Fsvg%3E) no-repeat 0 0/18px auto; }
          #main .contacts .contacts-conversion .conversion-tel .conversion-tel-button .tel-free {
            display: inline-block;
            vertical-align: middle;
            font-size: 1.2rem;
            line-height: 1.1em; }
        #main .contacts .contacts-conversion .conversion-tel ul.notice {
          margin-top: 0.8rem; }
          #main .contacts .contacts-conversion .conversion-tel ul.notice li {
            margin-top: 0.2rem;
            font-size: 1.2rem;
            line-height: 1.7em; }
            #main .contacts .contacts-conversion .conversion-tel ul.notice li a {
              background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2266%22%20height%3D%2262%22%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M0%2C62h18V0H0V62z%22%2F%3E%3Cpath%20fill%3D%22%23333333%22%20d%3D%22M22%2C0v62h44V0H22z%20M36%2C56h-8v-8h8V56z%20M36%2C44h-8v-8h8V44z%20M36%2C32h-8v-8h8V32z%20M48%2C56h-8%20v-8h8V56z%20M48%2C44h-8v-8h8V44z%20M48%2C32h-8v-8h8V32z%20M60%2C56h-8v-8h8V56z%20M60%2C44h-8v-8h8V44z%20M60%2C32h-8v-8h8V32z%20M60%2C19H28V7h32V19z%22%2F%3E%3C%2Fsvg%3E) 1px calc(50% + 0px)/12px auto no-repeat; } }
