/* スライドメニュー01 ホワイト */

/*---------------------------
全体
----------------------------*/

*{
  box-sizing: border-box;
}

body {
font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
font-size: 14px;
color: #333;
letter-spacing: 0.5px;
font-kerning: auto;
line-height: 1.75;
background-color: #fff;
}
/*文字種*/
/* .serif, ul.policy,
#mainContents h2, #listTopics h2, #mainContents .article h2, #mainContents .article h3, #mainContents #mainTopics h2, #listTopics h2, .mainContents div.gallery h3, #mainServices h2, #sideServices h2, .sideBlogCategories h2, .sideBlogDates h2,
div.gallery.example .comment {
font-family: serif;
} */

#mainContents {
    margin: 0 4% 20px;
    padding-bottom: 20px;
    clear: both;
    max-width: 92%;
}

#mainContents h2, #listTopics h2{
  line-height: 1.455;
  color:#111;
}

/*---------------------------
レイアウト
----------------------------*/
#wrap {
  margin-bottom: 40px;
  background-color: #fff;
  padding-top: 4px;
}

/*---------------------------
トップメニュー
----------------------------*/
#title, #topMenu .topMenu {
background: none;
margin-bottom: 0;
}
#topMenu {
  z-index: 999;
  position: fixed;
  top: 0;
}
.active #topMenu ul {
background: #333;
margin-bottom: 0;
}
#topMenu .topMenu li a {
border-top: solid 1px #222;
color: #fff;
font-weight: bold;
}
#topMenu #toggle {
right: 2%;
top: 14px;
}

/*----------------------------------------------------------
ヘッダ・タイトル
----------------------------------------------------------*/
#title {
width: 100%;
height:60px;
text-align: left;
background-color:#fff;
padding:0;
position: fixed;
top: 0;
z-index: 999;
}
#title h1 {
        margin: -5px 0 0 0;
        padding: 0;
        text-align: left;
        height: 65px;
        width: 340px;
}
#title h1 a {
background: url(images/177862304161801.png) no-repeat top 10px left / contain;
display: inline-block;
overflow: hidden;
text-indent: 110%;
white-space: nowrap;
height: 100%;
width: 100%;
margin-top: 0;
}
#title .description {
overflow: hidden;
text-indent: 110%;
white-space: nowrap;
}

/*---------------------------
メインイメージ
----------------------------*/
#mainImage {
  margin-top: 60px;
}
div#contents {
    margin-top: 0;
}
#mainImage_body {
margin: 0 auto;
}
.mainImage a {
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 50%;
}
.mainImage img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .mainImage img{
    height: 100% !important;
  }
}
/*---------------------------
コンテンツ
----------------------------*/
.mainContents .article p, ul {
margin-bottom: 1em;
}
.mainArticles div.article, .mainArticles div.gallery {
overflow: hidden;
padding-bottom: 0;
margin-bottom: 0;
border-bottom: none;
}

.mainArticles div.gallery{
  padding-top: 0;
}

div.mainTopics, div.article, div.gallery, #mainServices {
background-color: #fff;
padding: 4% 0;
box-sizing: border-box;
}
#mainServices .service a, .sideServices li a {
background-size: 16px;
}
.mainArticles div.article.no_border, .mainArticles div.gallery.no_border {/*記事上余白ゼロ*/
border-top: 1px solid #f7f7f7;
margin-top: -24px;
}
.mainArticles div.article.zero_margin, .mainArticles div.gallery.zero_margin {/*記事下余白ゼロ*/
margin-bottom: 0;
padding-bottom: 0;
}

/*---------------------------
サイド
----------------------------*/
#sideContents{
  display: none;
}


#sideContents, #footer {
background: #fff;
border: none;
padding: 0;
margin-bottom: 24px;
}
div#sideContents_outer {
margin: 0 4%;
}
div.freeHtml {
background-image: url(images/157060631991401.png);
background-repeat: repeat-x;
margin-bottom: 1px;
background-color: #fff;
}
#sideServices, div#sideBlogCategories, div#sideBlogDates, #sideMobile {
background-image: url(images/157060631991401.png);
background-repeat: repeat-x;
margin-bottom: 1px;
padding-top: 4px
}
#sideServices {
border-bottom: solid 1px #f5f5f5;
background-color: #fff;
padding: 16px 0;
}
#sideServices h2,
.sideServices li a,
#footer .topMenu li a {
margin: 0 .25em;
background: none;
}

.sideServices li a {
padding-right: 0;
}
#sideServices h2 {
margin: 0 0 16px;
padding: 0;
font-size: 16px;
border-bottom: solid 2px #222;
}
.sideServices li,
#footer a {
font-size: 14px;
border: none;
}
div#sideBanners {
background: #fff;
padding: 8px;
}
.sideBanners li {
margin: 8px 0;
text-align: center;
}
.sideBanners li img {
width: auto !important;
max-width: 100%;
}
.sideServices ul, .sideBlogCategories ul, .sideBlogDates dl, .sideBlogDates ul {
padding: 0 8px;
background-color: #fff;
overflow: hidden;
box-sizing: border-box;
}
.sideServices ul li, .sideBlogCategories ul li, .sideBlogDates dl dt, .sideBlogDates ul li {
border-top: none !important;
border-bottom: solid 1px #c5bfb7;
}
.sideServices ul li:last-child, .sideBlogCategories ul li:last-child, .sideBlogDates dl dt:last-child, .sideBlogDates ul li:last-child {
border-bottom: none;
}
.sideServices ul li a, .sideBlogCategories ul li a, .sideBlogDates dl dt a, .sideBlogDates ul li a {
text-decoration: none;
color: #333;
}
.sideServices ul li a, .sideBlogCategories ul li a, .sideBlogDates dl dt a, .sideBlogDates ul li a {
position:relative;
padding-left:20px;
}
.sideServices ul li a::before, .sideBlogCategories ul li a::before, .sideBlogDates dl dt a::before, .sideBlogDates ul li a::before {
display: block;
content: '';
position: absolute;
top: 30%;
left: 0;
width: 7px;
height: 7px;
border-left: 3px solid #ccc;
border-bottom: 3px solid #ccc;
-webkit-transform: rotate(-135deg);
transform: rotate(-135deg);
}
div#sideBlogCategories, div#sideBlogDates {
background-color: #fff;
padding: 16px 8px;
margin-bottom: 1px;
}
.sideBlogCategories h2, .sideBlogDates h2 {
margin-bottom: 24px;
line-height: 20px;
font-size: 14px;
font-size: 16px;
border-bottom: solid 2px #222;
}
#sideContents #sideBlogCategories h2, #sideBlogDates #sideBlogDates_body h2 {
line-height: 2em;
padding: 0;
margin: 0 0 16px;
background: none;
border-radius: 0;
}
#sideBlogCategories #sideBlogCategories_body ul, #sideBlogDates #sideBlogDates_body dl {
border: none;
background: none;
border-radius: 0;
background-color: #fff;
}
.sideBlogCategories li a, #sideBlogDates #sideBlogDates_body dl dt a, #sideBlogDates #sideBlogDates_body li a {
display: block;
color: #333;
font-size: 14px;
}
.freeHtml {
margin-bottom: 0;
width: 100%;
}
.freeHtml_body {
text-align: center;
padding: 4%;
}
.freeHtml_body hr {
margin-bottom: 16px;
}
.freeHtml_body img.bnr {
max-width: 100%;
margin: 1em auto;
}

/*---------------------------
フッタ
----------------------------*/
div#footer_outer {
background: #333;
display: none;
}
#footer .topMenu {
padding: 10px 3% 10px;
}
#footer .topMenu li {
border: none;
}
#footer .topMenu li a, #footer p.copyright, #footer p.copyright a {
color: #fff;
}
#footer p.copyright {
margin-bottom: 1em;
}

/*---------------------------
リンク
----------------------------*/
.article a, #mainServices .service a, .mainServices .service h3 a, .mainTopics .topics li h3 a, p.more a, div.side p.tel a {
color: #e51b0c;
text-decoration: underline;
font-weight: 700;
/* font-size: 32px; */
}

/*リンクボタン*/
a.linkbtn {
background-color: #E9A326;
border-radius: .5em;
color: #fff;
display: inline-block;
width:auto;
margin: 18px 0;
padding: 6px 24px;
text-align: center;
text-decoration: none;
font-size: 12px;
filter: none;
}
a.linkbtn:hover {
background-color: #c01b0c;
color:#fff;
}

/*---------------------------
見出し
----------------------------*/
/*字詰め*/
.name, h2, h3, h4, h5, h6, th, #topMenu .topMenu li a, a.btn {
font-feature-settings : "palt";
}

/*大見出し*/
#mainContents h2, #listTopics h2 {
/* margin: 16px 0;
padding: 12px 0;
border-top:2px solid #222;
border-bottom:2px solid #222;
text-align: center;
font-size: 20px;
letter-spacing: 1px;
font-weight: bold;
color: #222;
line-height: 1.25; 
display: none;*/
}
/*中見出し*/
#mainContents .article h2, #mainContents .article h3, #mainContents #mainTopics h2, #listTopics h2, .mainContents div.gallery h3, #mainServices h2 {
margin-bottom: 16px;
font-size: 14px;
/* font-weight: bold; */
letter-spacing: 0.05em;
color: #222;
line-height: 1.6;
text-align: left;
padding: 8px 0;
border-top: none;
  border-bottom: none;
}

#mainContents h2, #listTopics h2{
  font-weight: bold;
  text-align: left;
}

#mainContents .article h2 {
  font-size: 16px;
  font-weight: bold;
  border-bottom: solid 3px #ccc;
}

#mainContents .article h3, .mainContents div.gallery h3 {
position:relative;
text-align: center;
font-weight: 400;
}
#mainContents .article h3::first-line,
.mainContents div.gallery h3::first-line {
  font-size: 26px;
  font-weight: 700;
}
/* #mainContents .article h3::before, .mainContents div.gallery h3::before {
position:absolute;
left:0;
display:inline-block;
font-family: "Font Awesome 5 Free";
content:"\f03d";
color:#999;
} */
.article h3 a, .article h3 a:hover {
color: #222;
text-decoration: none;
}
#mainTopics h2 {
margin-bottom: 8px;
}
/*小見出し*/
.mainContents .article h4 {
font-size: 18px;
line-height: 1.25;
/* padding: .5em .5em;
margin: 1em 0;
display: flex;
color: #222;
background-image: linear-gradient( -45deg, #fff 25%, #e5e5e5 25%, #e5e5e5 50%, #fff 50%, #fff 75%, #e5e5e5 75%, #e5e5e5 );
background-size: 5px 5px;
background-size: 5px 5px;
border-radius: 4px; */
box-sizing: border-box;
}
/*h5*/
.article h5 {
font-size: 15px;
font-weight: bold;
line-height: 1.25;
display: flex;
margin: 1em 0;
padding-bottom:4px;
border-bottom:1px dashed #ccc;
}
/*h6*/
.article h6 {
font-size: 14px;
margin: 1em 0;
color: #c01b0c;
display: flex;
}

/*---------------------------
コンテンツ装飾
----------------------------*/
/*ぱんくず*/
.pankuz p {
margin-bottom: 24px;
font-size: 8px;
color: #444;
text-align: right;
border-bottom: 0;
padding-bottom: 0;
line-height: 1;
}

/*ストロングタグ*/
.article strong {
font-size: 112.5%;
/* color:#e51b0c; */
font-weight: bold;
}

/*最新情報*/
div#mainTopics {
margin-bottom: 24px;
}
.mainTopics .topics li, #listTopics .mainTopics .topics li {
background-color: #fff;
padding: 1em;
}
#mainTopics .topics li .date,
#mainTopics .topics .description,
#mainTopics .topics li .more,
.mainTopics .topics li .date,
.mainTopics .topics li .description {
font-size: 14px;
color: #333;
line-height: 1.25em;
font-style: normal;
font-family: 'Montserrat', sans-serif;
}
.mainTopics .topics li h3 a,
.mainTopics .topics li h3 {
font-size: 14px;
}

/*サービスメニュー*/
/* .mainServices .service h3 {
margin-bottom: 8px;
font-size: 14px;
}
.mainServices .service .description,
#mainServices .service h3,
#mainServices .service .description {
font-size: 14px;
}
#mainServices .service .description {
display: none;
}
#mainServices li {
padding: 0;
}
.mainServices .services li {
margin-bottom: 24px;
padding-bottom: 24px;
border-bottom: solid 1px #ccc;
position: relative;
}
.mainServices .service .more a {
background: url(btn_service.gif) no-repeat;
} */
.table_service {
  width: 100% !important;
  font-size: 12px;
}
.table_service th {
  font-weight: normal !important;
  /* border-right: 1px solid #333 !important; */
  text-align: center !important;
}
.table_service tr,
.table_service tr:nth-of-type(odd) th {
  background-color: #EFEFEF !important;
}
.table_service tr:first-of-type th,
.table_service tr:first-of-type td,
.table_service tr:nth-of-type(even) th,
.table_service tr:nth-of-type(even) td {
  background-color: #fff !important;
}

.table_service:first-of-type tr:first-of-type td{
  position: relative;
  background-color: rgba(213,230,4,.2) !important;
  border-left: 1px solid #999;
}

.table_service:first-of-type tr:first-of-type td::before {
  display: block;
  content: '';
  background-color: #D5E604 !important;
  width: 100%;
  height: 10px;
  position: absolute;
  top: 0;
  left: 0;
}

.table_service:nth-of-type(2) tr:first-of-type td {
  position: relative;
  background-color: rgba(230,134,4,.2) !important;
  border-left: 1px solid #999;
}

.table_service:nth-of-type(2) tr:first-of-type td::before {
  display: block;
  content: '';
  background-color: #E68604 !important;
  width: 100%;
  height: 10px;
  position: absolute;
  top: 0;
  left: 0;
}

.table_service:last-of-type tr:first-of-type td {
  position: relative;
  background-color: rgba(230,21,4,.2) !important;
  border-left: 1px solid #999;
}


.table_service:last-of-type tr:first-of-type td::before  {
  display: block;
  content: '';
  background-color: #E61504 !important;
  width: 100%;
  height: 10px;
  position: absolute;
  top: 0;
  left: 0;
}
.plan_category {
  display: block;
  font-size: 22px;
}
.plan_price {
  display: block;
  font-size: 22px;
  font-weight: bold;
  text-align: left;
}
.plan_text {
  display: block;
  height: auto;
}
.table_service tr:nth-of-type(4) th {
  color: red;
}
.ImportantNotice h4 {
  width: fit-content;
  border-bottom: 2px solid #333;
  margin-bottom: .5em;
  white-space: nowrap;
}
/*--
/*---------------------------
画像類
----------------------------*/
#mainContents img {
border-radius: 0;
}
.mainArticles .article img {
margin: 0;
}
/******画像を下に移動******/
.bottomImg .article_body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
flex-direction: column;
}
.bottomImg .article_body .image {
order: 1;
}

/*---------------------------
ギャラリー
----------------------------*/
.gallery_grid li.galleryGrid .galleryGrid_outer {
padding: 2px;
}
.gallery_grid li.galleryGrid .image {
margin-bottom: 0;
}
div.gallery .comment {
text-align: center;
line-height: 1.5;
min-height: 5em;
font-feature-settings: "palt";
}
div#support.gallery .comment {
line-height: 1.25;
min-height: 4em;
padding: 4px 0;
}
@media screen and (max-width: 767px) {
  div.gallery .comment{
    min-height: 0;
  }
  .sp-only {
    display: block;
}
  #mainArticles .mainArticles img{
    max-width: 100%;
  }
}


/*ギャラリー2列化*/
.gallery_grid3 li.galleryGrid {
width: 49%;
}
.gallery_grid4 li.galleryGrid {
width: 49%;
}
.gallery_grid5 li.galleryGrid {
width: 49%;
}

/*事例*/
div.gallery.example .comment {
font-size: 14px;
text-align: center;
line-height: 1.25;
min-height: auto;
margin: 0 0 4px;
padding: 8px 0;
display: block;
background: #222;
color: #fff;
}
div.gallery.example .gallery_grid2 li.galleryGrid {
width: 49%;
}
div.gallery.example .gallery_grid3 li.galleryGrid {
width: 49%;
}
div.gallery.example .gallery_grid4 li.galleryGrid {
width: 49%;
}
div.gallery.example .gallery_grid5 li.galleryGrid {
width: 49%;
}

@media screen and (max-width: 767px) {
  .top_reason ul{
    flex-direction: column;
  }
  .mainContents .article h4 {
    font-size: 18px !important;
    line-height: 1.25;
    box-sizing: border-box;
  }
  .top_works figure:last-of-type {
    width: 100%;
    height: auto;
    padding-bottom: inherit;
}
}

div.gallery.siteGuide .comment {
font-size: 14px;
color: #999;
font-weight:bold;
text-align: center;
min-height:14px;
margin: 8px 0 16px;
padding: 4px 0;
display: block;
border:2px solid #999;
border-radius:100vh;
}

/*流れ（記事）
--------------------*/
.mainArticles .article.articleFlow {
border: 8px solid ;
display: block;
padding: 18px;
position: relative;
margin-bottom: 35px;
box-sizing: border-box;
overflow: visible;
border-radius:3px;
}
.mainArticles .article.articleFlow.first{
margin-top:0px;
}
.mainArticles .article.articleFlow::after {
content: "";
position: absolute;
top: calc(100% + 8px);
left: 50%;
transform: translateX(-50%);
border-top: 20px solid ;
border-right: 30px solid transparent;
border-left: 30px solid transparent;
}
.mainArticles .article.articleFlow.last::after {
display: none;
}
#mainContents .article.articleFlow h3 {
font-size:18px;
/* color:#e51b0c; */
line-height:1.4;
font-weight:bold;
/* font-family: 'Montserrat', Verdana, -apple-system, BlinkMacSystemFont, "Helvetica Neue", HelveticaNeue, "Segoe UI", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; */
font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
margin-top:0;
padding-left:0!important;
padding-bottom:2px;
border-bottom:2px dashed #ccc;
background:none;
}
#mainContents .article.articleFlow h3::before {
display:none!important;
}
.mainArticles .article.articleFlow .image ,
.mainArticles .article.articleFlow img {
width: 50%;
margin: 0 auto 6px;
}
.mainArticles .article.margin0{
margin:0;
padding:0;
}
/*フロー内リンクボタン*/
#mainContents .article.articleFlow .linkbtn {
width:100%;
margin:0 0 16px 0;
box-sizing:border-box;
}
.l-servece__h4 {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: center;
}
.p-servece__h4 {
  flex: 0 1 50%;
  text-align: center;
}
.l-servece__h4 img {
  flex: 0 1 50%;
}
.mainArticles .article.articleFlow.first{
  margin-top:0px;
  border-color: #DCEAF8;
}
.mainArticles .article.articleFlow.second{
  border-color: #B8D5F1;
}
.mainArticles .article.articleFlow.third{
  border-color: #95BFEA;
}
.mainArticles .article.articleFlow.forth{
  border-color: #72AAE2;
}
.mainArticles .article.articleFlow.fifth{
  border-color: #4E95DC;
}
.mainArticles .article.articleFlow.last{
  border-color: #2B80D5;
}
.mainArticles .article.articleFlow.first::after {
  border-top-color: #DCEAF8;
}
.mainArticles .article.articleFlow.second::after {
  border-top-color: #B8D5F1;
}
.mainArticles .article.articleFlow.third::after {
  border-top-color: #95BFEA;
}
.mainArticles .article.articleFlow.forth::after {
  border-top-color: #72AAE2;
}
.mainArticles .article.articleFlow.fifth::after {
  border-top-color: #4E95DC;
}
/*---------------------------
表・リスト
----------------------------*/
/*デフォルトテーブル*/
.article table:not(.contactTable) {
border-collapse: collapse;
border-spacing: 0;
margin: 10px auto;
}
.article table:not(.contactTable) th {
  border: 1px solid #999;
  height: auto;
  padding: 10px;
  box-sizing: border-box;
  text-align: left;
  width: 35%;
  }
.article table:not(.contactTable) td {
  border-bottom: 1px solid #999;
  border-top: 1px solid #999;
  border-right: 1px solid #999;
  height: auto;
  padding: 10px;
  box-sizing: border-box;
  width: 65%;
}
/* .article table:not(.contactTable) th {
background-color: #f7f7f7;
text-align: center;
} */

/*ノーマルテーブル*/
.article table.normalTbl {
border:none;
border-collapse: collapse;
border-spacing: 0;
margin-bottom: 1em;
width: 100%;
table-layout: fixed;
border: 1px solid #999;
}
.article table.normalTbl thead {
display: none;
}
/* .article table.normalTbl th {
border:none;
background-color: #f4f3ed;
border-bottom: 1px solid #fff;
height: auto;
line-height: 150%;
padding: 8px;
text-align: center;
vertical-align: middle;
}
.article table.normalTbl td {
border:none;
background-color: #fff;
border: none;
height: auto;
line-height: 150%;
padding: 8px;
overflow-wrap: break-word;
}
.article table.normalTbl th,
.article table.normalTbl td {
box-sizing: border-box;
display: inline-block;
width: 100%;
} */

/*問い合わせフォーム*/
/*フォーム*/
p.envelope {
/* background: #f5f5f5; */
padding: 1em;
text-align: center;
border: solid 2px #ccc;
border-radius: 4px;
font-weight: 700;
}
.envelope a {
  font-size: 32px;
}
table.contactTable {
border-collapse: collapse;
border-spacing: 0;
border: 1px solid #DBDBDB;
margin: 10px auto;
width: 100%;
}
table.contactTable tr th {
background-color: #DBDBDB;
height: auto;
line-height: 150%;
padding: 8px;
text-align: left;
vertical-align: middle;
}
table.contactTable tr.must th {
background-position: 95% center;
background-repeat: no-repeat;
}
table.contactTable tr.must th:after {
  border-radius: 0;
}
table.contactTable td {
height: auto;
line-height: 150%;
padding: 16px 8px;
}
table.contactTable .textField {
width: 96%;
}
table.contactTable .textField, table.contactTable td input[type="text"] {
font-size: 14px;
border:solid 1px #999 !important;
background-color: #fff !important;
border-radius: 0 !important;
/* font-family: "Montserrat", sans-serif; */
}
table.contactTable input.textField {
border:solid 1px #999 !important;
background-color: #fff !important;
border-radius: 0 !important;
width: 96%;
}
table.contactTable label {
font-size: 100%;
width: 100%;
display: inline-block;
}
table.contactTable label input {
margin-left: 10px;
margin-right: 5px;
border: 0px;
}
table.contactTable select {
font-size: 100%;
width: 100%;
}
table.contactTable input.button {
display:block;
margin: 0 auto;
font-size: 14px;
}

table.contactTable td input.button,
table.contactTable input[type="button"] {
width: 50%;
border: none;
background: none;
display: block;
background: #e51b0c;
color: #fff;
text-align: center;
font-size: 14px;
border-radius:4px;
padding: 5px 16px;
margin: 16px auto;
box-shadow: 0 4px #f5f5f5;
text-decoration: none;
box-sizing: border-box;
cursor: pointer;
}
table.contactTable input[type="button"] {
background-color: #777;
color: #fff;
}
.contact-note {
font-size: 12px;
}
#article_contact_ext {
font-size: 14px;
border: none;
/* font-weight: 600; */
}

/*チェック*/
ul.check {
list-style: outside none;
line-height: 2;
padding-left: 2.5em;
}
ul.check li {
font-size:15px;
font-weight: bold;
line-height: 1.25;
position: relative;
border-bottom: dashed 1px #ccc;
margin: 1em 0;
padding: .25em 0 .5em;
}
ul.check li::before {
display: block;
content: '';
position: absolute;
top: 0.2em;
left: -2.0em;
width: 1.0em;
height: 0.5em;
border-left: 6px solid #E55;
border-bottom: 4px solid #E55;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
ul.check li::after {
  content: "";
  position: absolute;
  top: .15em;
  left: -2.2em;
  width: 18px;
  height: 18px;
  border: 1px solid #555;
  border-radius: 2px;
}

/*シンプルリスト●*/
ul.simpleList {
list-style-type: none;
margin-left:0.5em;
margin-bottom:1em;
font-weight:bold;
}
ul.simpleList li {
margin-left:1.0em;
font-weight:normal;
}
ul.simpleList li::before {
content: "・";
margin-right:0.3em;
margin-left: -1.3em;
/* color:#ccc; */
}

/*個人情報保護方針*/
ol.pp {
padding-left: 1.5em;
}
ol.pp li {
list-style-type: decimal;
padding: 5px;
}
ul.notes {
list-style-type: none;
margin-left:1em;

}
ul.notes li::before {
content: "◆";
margin-left: -1em;
font-family: monospace;
}
ul.ps {
list-style-type: none;
margin-left:1em;
}
ul.ps li::before {
content: "※";
margin-left: -1em;
font-family: monospace;
}
ul.maru {
list-style-type: none;
margin-left:1em;
}
ul.maru li::before {
content: "●";
margin-left: -1em;
font-family: monospace;
}

/* 画面下部固定のリンクパーツ
#bottomLink{
position:fixed;
left:0;
bottom:0;
width:100%;
text-align:center;
z-index:1000;
height:42px;
overflow:hidden;
}
#bottomLink a {
display: block;
padding: 0;
color: #fff;
background: #000;
text-decoration: none;
font-size:16px;
line-height: 42px;
height:100%;
}
#bottomLink a span{
font-size:14px;
display: inline-block;
padding-right: 26px;
position: relative;
}
#bottomLink a span::after {
position: absolute;
top: 12px;
right: 0;
display: inline-block;
content: "";
width: 18px;
height: 18px;
background: url(images/161844427234401.png) no-repeat;
background-size:18px;
margin: 0 4px;
}*/

/* 画面下部固定のリンクパーツ */
#bottomLink{
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  text-align:center;
  z-index:1000;
  overflow:hidden;
  display:table;
  min-width:320px;
}
#bottomLink1,
#bottomLink2 {
  display:table-cell;
  width:50%;
}
#bottomLink1 {
  background: #04bb05;
}
#bottomLink2 {
  background: #e9a326;
}
#bottomLink a {
  text-decoration: none;
  font-size: 100%;
  height:100%;
  width:100%;
  text-align:center;
  display: block;
}
#bottomLink a img {
  width:100%;
}
/* ボタンサイズ分の画面下部余白 */
#wrap {
    margin-bottom: 60px;
}

/* ボタンサイズ分の画面下部余白 */
div#footer_outer {
padding-bottom: 15px;
}

/*お客様の声*/
ul.uservoice {
padding: 10px 10px 20px 10px;
}
ul.uservoice li {
  padding: 0 .5em;
font-size: 1.1em;
font-weight:bold;
line-height: 1.6;
position: relative;
display: flex;
justify-content: space-between;
align-items: stretch;
margin-bottom: 2em;
}
ul.uservoice figure {
  flex: 0 1 12%;
}
ul.uservoice p {
  flex: 0 1 85%;
}
/* ul.uservoice li::before {
font-family: "Font Awesome 5 Free";
content:"\f118";
color: #999;
position: absolute;
top: 0;
left: 0;
font-size: 1.4em;
font-weight:normal;
line-height:1.2;
} */
ul.uservoice span.user {
  display: block;
font-size:0.8em;
/* font-weight:normal; */
}

/*platform*/
ul.platform {
}
ul.platform li {
display:inline-block;
width:48%;
font-size:1.1em;
color:#e51b0c;
text-align:center;
padding:0.3em;
margin:0.5em 0.3%;
border:2px solid #e51b0c;
border-radius:4px;
box-sizing:border-box;
}

/*----------------------------------------------------------
サイド会社概要
----------------------------------------------------------*/
#side{
margin:0 0 30px 0;
text-align:center;
padding:18px 0 0 0;
border:1px solid #ddd;
background:#fafaf7;
}
#side h3 {
font-size:1.15em;
line-height:1.4;
text-align:center;
padding:0;
margin:0 auto 15px auto;
}
#side .logo img {
width:90%;
height:auto;
}
#side h4 {
color:#222;
background:#d6d7d3;
padding:4px 0;
}
#side p{
font-size:14px;
line-height:1.5;
margin:10px 10px 15px 10px;
text-align:center;
}
#side p.side-description {
font-size:14px;
line-height:1.5;
margin-bottom:5px;
}
#side strong{
color:#333;
border-top:1px dotted #ccc;
display:block;
padding:5px;
background-color:#d9eee5;
margin:0 0 20px 0;
}
#side span.bold{
font-weight:bold;
}
#side span.sub {
font-size:0.8em;
}
#side span.tel{
font-size:18px;
font-weight:bold;
}
#side span.tel a {
color:#e51b0c;
text-decoration:none;
}

/*FAQ*/
#faq {
  background-color: #DDDBDC;
  padding: 1em;
}
ul.faq{
  flex-direction: column;
}
ul.faq li {
  padding: 1em 1em 1em 2em;
  background-color: #fff;
  margin-bottom: 1em;
}
ul.faq li p {
  position: relative;
}
ul.faq li p::before {
  position: absolute;
  left: -1.3em;
}
ul.faq li p.qus::before {
  content: 'Q.';
  color: #2B80D5;
  font-weight: 700;
}
ul.faq li p.ans {
  margin-bottom: 0;
}
ul.faq li p.ans::before {
  content: 'A.';
  color: #E61504;
  font-weight: 700;
}
ul.faq li p.qus, ul.faq li p.ans{
  height: auto;
}
/* ul.faq {
padding: 0;
}
ul.faq li.qus ,
ul.faq li.ans {
display: block;
line-height: 1.4;
margin-bottom: 20px;
padding-left: 45px;
}
ul.faq li.qus {
font-size:16px;
font-weight:bold;
}
ul.faq li.qus::before ,
ul.faq li.ans::before {
border-radius: 4px;
color: #fff;
display: inline-block;
font-size: 100%;
height: 32px;
line-height: 32px;
margin: 0 8px 0 -40px;
text-align: center;
width: 32px;
}
ul.faq li.qus::before {
background-color: #e51b0c;
content: "Q";
}
ul.faq li.ans::before {
background-color: #333;
content: "A";
font-weight:bold;
} */
#footer .topMenu li {
width:44%;
border-bottom:1px dotted #999!important;
}

/*レイアウトテーブル*/
.article table.layoutTable {
border:none;
border-collapse: collapse;
border-spacing: 0;
margin-bottom: 1em;
width: 100%;
table-layout: fixed;
}
.article table.layoutTable thead {
display: none;
}
.article table.layoutTable th,
.article table.layoutTable td {
box-sizing: border-box;
display: inline-block;
width: 100%;
}
.article table.layoutTable th {
border:none;
background-color: #f4f3ed;
height: auto;
line-height: 150%;
padding: 8px;
text-align: center;
vertical-align: middle;
}
.article table.layoutTable td {
border:none;
background-color: #fff;
height: auto;
line-height: 150%;
padding: 8px 0 16px 0;
overflow-wrap: break-word;
}
ul.category {
width:100%;
}
ul.category li {
width:48%;
float:left;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 1%;
margin-right: 1%;
}
ul.category li a {
font-size:20px;
color: #fff;
padding: 8px;
text-decoration: none;
text-align: center;
display:block;
border-radius: 3px;
background: #8bbfd1 url(images/160847137177801.png) left 10px center no-repeat;
background-size: 20px;
}
ul.category li a:hover {
color:#fff;
background: #9bcfdd;
border-radius: 3px;
background: #9bcfdd url(images/160847137177801.png) left 10px center no-repeat;
background-size: 20px;
}
/*プラン*/
.mainArticles .articlePlan {
border-top:3px solid #eee;
margin-top:15px;
padding-top:0;
}
.mainArticles .articlePlan h3 {
  /* font-family:sans-serif!important; */
font-size:20px!important;
line-height:1.4;
font-weight:bold;
color:#fff!important;
background:#e51b0c;
padding:12px!important;
  padding-left:12px!important;
border:none!important;
border-radius:5px;
}
.mainArticles .articlePlan h3::before {
  display:none!important;
}

/*プラン価格*/
.mainArticles .articlePlan span.plan-price {
font-size:24px;
color:#e51b0c;
font-weight:bold;
}
/*プランテーブル*/
.articlePlan table.planTable {
border-collapse:collapse;
width:100%;
margin:1.0em 0 1.5em 0;
border:none;
}
.articlePlan table.planTable th {
text-align:left;
padding:5px;
border:none;
border-bottom:1px dotted #ccc;
width:auto;
white-space:nowrap;
}
.articlePlan table.planTable td {
padding:5px;
border:none;
border-bottom:1px dotted #ccc;
}
.articlePlan table.planTable td.blank-cell {
  display:none;
}
/*機材*/
.mainArticles div.articleEquip {
width: 48%;
height:auto;
display: inline-block;
vertical-align: top;
text-align:center;
padding: 0.5em;
box-sizing: border-box;
margin: 0 0.5% 10px;
background:#fff;
border:1px solid #ccc;
overflow:visible;
}
.mainArticles div.articleEquip img {
width:100%;
margin:0 auto;
}
.mainArticles div.articleEquip p {
display:block;
width:100%;
height:3.0em;
padding:5px;
font-size:0.9em;
line-height:1.4;
text-align:left;
}

/* ごあいさつ署名 */
.presidentName {
  font-size:1.1em;
  line-height: 1.4;
  font-weight: bold;
  text-align:left;
  display:inline-block;
  float:right;
}
.presidentName span {
  font-size:0.87em;
  font-weight: normal;
}

#mainTopics .listview a {
  width:100%;
}

/*----------------------------------------------------------
PCのみ表示
----------------------------------------------------------*/
.pc-only {
  display: none;
}
/*----------------------------------------------------------
トップページ
----------------------------------------------------------*/
.top_catch h3,
.top_catch h3::first-line {
  width: fit-content;
  position: relative;
  padding-left: 0 !important;
  font-size: 17px !important;
  margin: 0 auto !important;
  font-weight: bold !important;
}
.top_reason li {
  padding: 1em;
  margin-bottom: 1em;
}
.top_reason li h4 {
  text-align: center;
}
.top_reason li figure {
  width: 5em;
  height: 0;
  padding-bottom: 5em;
  margin: 0 auto 1em;
}
.top_reason li:first-of-type {
  background-color: rgb(213, 230, 4 ,.3);
}
.top_reason li:nth-of-type(2) {
  background-color: rgb(230, 134, 4, .3);
}
.top_reason li:last-of-type {
  background-color: rgb(230, 21, 4, .3);
}
.top_works img {
  width: 100%;
  max-width: none;
}
.top_works figure:first-of-type {
  margin-bottom: 2em;
}
.top_scenes img {
  width: 100%;
}
.top_scenes h4 {
  margin: 1em auto;
  text-align: center;
}
.top_platforms ul {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-wrap: wrap;
}
.top_platforms li {
  flex: 0 1 auto;
  border-top: 0 !important;
}
.top_platforms .title {  
  display: none;
}
.top_overview {
  background-color: #DDDBDC !important;
  padding: 2% !important;
}
.top_overview li {
  position: relative;
  padding: 20px;
  box-sizing: border-box;
  background-color: #fff;
  margin-bottom: 2em;
}
.top_overview li::after {
  display: block;
  width: 0;
  height: 0;
  content: '';
  border-top: 2em solid #fff;
  border-right: 2em solid transparent;
  border-bottom: 2em solid transparent;
  border-left: 2em solid transparent;
  position: absolute;
  bottom: -5em;
  left: 50%;
  transform: translateX(-50%);
}
.top_overview_upper {
  display: flex;
  justify-content: flex-start;
  gap: 10%;
  align-items: center;
}
.top_overview_icon {
  flex: 0 1 15%;
}
.top_overview p,
.top_overview h4 {
  flex: 0 1 80%;
  text-align: left;
  margin-bottom: 0 !important;
}
.top_cases li {
  margin-bottom: 2em;
}
.top_cases p {
  margin-bottom: 0 !important;
}
.top_cases img {
  width: 100% !important;
}
.top_review{
  background-color: #DDDBDC !important;
}
.top_image li {
  margin-bottom: 20px;
}
.top_image .image {
  float: none !important;
  margin-right: 0 !important;
}
.top_image img {
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
}
.top_area p {
  padding: 40px 0 40px;
  background: url(images/164937921367001.png) no-repeat center/contain;
  text-align: center;
  background-color:rgba(255,255,255,0.5);
  background-blend-mode:lighten;
}
.Equipment_List li {
  width: 100%;
  border: 1px solid #000000;
  padding: 1em;
  box-sizing: border-box;
  margin-bottom: 1em;
}
.Equipment_List img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .top_scenes ul{
    flex-direction: column;
  }
  .mainArticles ul.galleryImages li{
    float: none;
    width: 105px;
    height: auto;
  }
  .mainArticles div.gallery{
    margin-top: 50px;
  }
  .top_overview ul{
    flex-direction: column;
  }
.top_overview li::after {
    display: block;
    width: 0;
    height: 0;
    content: '';
    border-top: 2em solid #fff;
    border-right: 2em solid transparent;
    border-bottom: 2em solid transparent;
    border-left: 2em solid transparent;
    position: absolute;
    bottom: -5em;
    left: 50%;
    transform: translateX(-50%);
    background: transparent;
  }
  .top_cases ul{
    flex-direction: column;
  }
  .mainArticles div.article{
    padding-top: 0;
  }
  .top_image ul{
    flex-direction: column;
  }
  .top_image li{
    width: 100% !important;
  }
}
/* =========================================================
   Offline mobile additions: hamburger / menu / fixed CTA
   ========================================================= */
@media screen and (max-width: 767px) {
  html, body { width: 100%; overflow-x: hidden; }
  body { padding: 0; }

  /* PC header phone artwork is intentionally hidden on mobile. */
  #title_outer { background-image: none !important; width: 100% !important; height: 60px !important; }
  #title_body { position: relative; height: 60px; }
  #title h1 { margin-left: 10px; }
  #title h1 a { max-width: calc(100vw - 76px); }

  /* hamburger */
  #mobileMenuToggle {
    position: fixed;
    top: 14px;
    right: 8px;
    z-index: 1201;
    width: 42px;
    height: 42px;
    padding: 5px 4px 3px;
    border: 1px solid #aaa;
    background: rgba(255,255,255,.96);
    color: #777;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    box-sizing: border-box;
  }
  #mobileMenuToggle .bars { display:block; margin:0 auto 3px; width:27px; height:14px; position:relative; }
  #mobileMenuToggle .bars::before,
  #mobileMenuToggle .bars::after,
  #mobileMenuToggle .bars span {
    content:"";
    position:absolute;
    left:0;
    width:27px;
    height:1px;
    background:#777;
    transition:transform .2s ease, top .2s ease, opacity .2s ease;
  }
  #mobileMenuToggle .bars::before { top:1px; }
  #mobileMenuToggle .bars span { top:7px; }
  #mobileMenuToggle .bars::after { top:13px; }
  #mobileMenuToggle .label { display:block; font-size:10px; letter-spacing:0; }
  body.menu-open #mobileMenuToggle .bars::before { top:7px; transform:rotate(45deg); }
  body.menu-open #mobileMenuToggle .bars span { opacity:0; }
  body.menu-open #mobileMenuToggle .bars::after { top:7px; transform:rotate(-45deg); }

  /* drawer menu */
  #topMenu {
    display: none;
    position: fixed !important;
    top: 60px !important;
    left: 0;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    z-index: 1200 !important;
    background: #333 !important;
  }
  body.menu-open #topMenu { display:block; }
  #topMenu_outer,
  #topMenu_body { width:100% !important; max-width:none !important; }
  #topMenu_body {
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    background:#333 !important;
  }
  #topMenu .topMenu li {
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-top:1px solid #222 !important;
  }
  #topMenu .topMenu li a {
    display:block;
    width:100% !important;
    padding:13px 18px !important;
    box-sizing:border-box;
    color:#fff !important;
    font-size:14px !important;
    line-height:1.4;
    text-decoration:none !important;
  }

  /* CMS-saved absolute gallery positioning breaks on narrow screens. */
  .galleryGrids { height:auto !important; display:flex; flex-wrap:wrap; gap:2%; }
  .galleryGrids > .galleryGrid {
    position:static !important;
    left:auto !important;
    top:auto !important;
    width:49% !important;
    margin:0 0 2% !important;
    box-sizing:border-box;
  }

  /* match the reference mobile spacing */
  #contents { padding-top: 24px !important; }
  #pankuz { display:none; }
  #mainTopics_outer, div.article_outer, div.gallery_outer { width:auto; margin-left:auto; margin-right:auto; }
  #mainTopics .topics { border:1px solid #ccc; padding:1em;}
  #mainTopics .topics li { border-bottom:1px dotted #bbb; }
  #mainTopics .topics li:last-child { border-bottom:0; }
  #mainTopics .listview a { display:block; border:1px solid #ccc; padding:6px; text-align:center; color:#111; text-decoration:none; font-weight:normal; }

  /* fixed conversion bar */
  #bottomLink { height:50px; }
  #bottomLink a { color:#fff; font-weight:bold; box-sizing:border-box; padding:5px 2px 4px; line-height:1.15; }
  #bottomLink a small { display:block; font-size:9px; font-weight:normal; margin-bottom:2px; }
  #bottomLink a strong { display:block; font-size:18px; white-space:nowrap; }
  #bottomLink2 a strong { font-size:17px; }
  #wrap { margin-bottom:60px !important; }
}

@media screen and (min-width: 768px) {
  #mobileMenuToggle, #bottomLink { display:none !important; }

}


/* =========================================================
   Service page mobile additions
   ========================================================= */
@media screen and (max-width: 767px) {
  .page-service #mainArticles .pc-only { display: none !important; }
  .page-service #mainArticles .sp-only { display: block !important; }
  .page-service #mainArticles .table_service {
    width: 100% !important;
    table-layout: fixed;
    border-collapse: collapse;
    margin: 0 0 24px;
  }
  .page-service #mainArticles .table_service th {
    width: 30% !important;
    padding: 9px 6px !important;
    vertical-align: top;
  }
  .page-service #mainArticles .table_service td {
    width: 70% !important;
    padding: 9px 8px !important;
    vertical-align: top;
    overflow-wrap: anywhere;
  }
  .page-service #mainArticles .table_service tr:first-child td[colspan="2"] {
    width: 100% !important;
    padding: 18px 12px 12px !important;
  }
  .page-service #mainArticles .table_service td img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
  }
  .page-service #mainArticles .plan_category,
  .page-service #mainArticles .plan_price { text-align: left; }
  .page-service #mainArticles .Equipment_List {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .page-service #mainArticles .Equipment_List li {
    width: 100%;
    margin: 0 0 16px;
  }
  .page-service #mainArticles .Equipment_List li > img {
    aspect-ratio: 4 / 3;
    object-fit: contain;
  }
  .page-service #mainArticles .ImportantNotice h4 {
    white-space: normal;
  }
}

/* =========================================================
   Service plan table: PC / SP layout switch
   SP uses the three separate 2-column tables.
   ========================================================= */
@media screen and (max-width: 767px) {
  .page-service #article594665.pc-only {
    display: none !important;
  }
  .page-service #article594678.sp-only {
    display: block !important;
  }
}


/* company page responsive table */
.page-company .company-table {
  border: 0;
  table-layout: auto;
}
.page-company .company-table tbody,
.page-company .company-table tr,
.page-company .company-table th,
.page-company .company-table td {
  width: 100%;
  box-sizing: border-box;
}
.page-company .company-table tr {
  border-top: 1px solid #999;
}
.page-company .company-table tr:last-child {
  border-bottom: 1px solid #999;
}
.page-company .company-table th {
  padding: 11px 12px 6px;
  border: 0;
  background: #f7f7f7;
  text-align: left;
  white-space: normal;
  font-weight: 700;
}
.page-company .company-table td {
  padding: 9px 12px 14px;
  border: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.8;
}
.page-company .company-table a {
  overflow-wrap: anywhere;
}
.page-company .company-access iframe {
  display: block;
  width: 100%;
  height: 300px;
  margin-top: 12px;
}

body.page .cases-content-page #mainArticles h3, body.page .cases-content-page #mainArticles h3::first-line{
  font-size: 17px !important;
}