@charset "UTF-8";
/*
  Web Font -> Noto Sans Japanese
  http://www.google.com/fonts/earlyaccess
*/
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 100;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 200;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Light.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Light.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Light.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 300;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-DemiLight.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-DemiLight.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-DemiLight.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 400;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Regular.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 500;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Medium.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 700;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Bold.otf) format("opentype");
}
@font-face {
  font-family: 'Noto Sans Japanese';
  font-style: normal;
  font-weight: 900;
  src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Black.otf) format("opentype");
}
/*
  Reset Style -> html5doctor.com Reset Stylesheet v1.6.1
  Author: Richard Clark - http://richclarkdesign.com 
*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

html, body {
  width: 100%;
  height: 100%;
}

html {
  font-family: sans-serif;
  font-size: 62.5%;
}

body {
  font-size: 1.4rem;
  font-family: "Noto Sans Japanese", "-apple-system", "BlinkMacSystemFont", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "segoe ui", "游ゴシック  Medium", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  line-height: 1;
  position: relative;
  overflow-x: hidden;
}

ol, ul {
  list-style: none;
}

br {
  letter-spacing: 0;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.5;
}

table, li, p, dl {
  line-height: 1.6;
}

a {
  color: #12b8d7;
}

/*
  normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css
*/
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

b, strong {
  font-weight: bolder;
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td, th {
  padding: 0;
}

/*
  CSS framework -> Bootstrap v3.3.6 (http://getbootstrap.com)
  Copyright 2011-2015 Twitter, Inc.
  Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  -webkit-tap-highlight-color: transparent;
}

input, button, select, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

a {
  text-decoration: none;
}

a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

img {
  line-height: 0;
  vertical-align: bottom;
}

/* ---------------------------------------------------------
  common
--------------------------------------------------------- */
.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}
.row .row_cell {
  padding-left: 15px;
  padding-right: 15px;
}

.xscol_1 > * {
  width: 100%;
}

.xscol_2 > * {
  width: 50%;
}

.xscol_3 > * {
  width: 33.33333%;
}

@media (min-width: 600px) {
  .col_1 > * {
    width: 100%;
  }

  .col_2 > * {
    width: 50%;
  }

  .col_3 > * {
    width: 33.33333%;
  }

  .col_4 > * {
    width: 25%;
  }

  .col_5 > * {
    width: 20%;
  }

  .col_6 > * {
    width: 16.66667%;
  }

  .col_7 > * {
    width: 14.28571%;
  }

  .col_8 > * {
    width: 12.5%;
  }
}
.highlight {
  transition: opacity 150ms ease;
}

.highlight:hover {
  opacity: .75;
}

.img_trimming {
  overflow: hidden;
  position: relative;
}
@media (min-width: 600px) {
  .img_trimming img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    width: auto;
    height: auto;
    min-width: 101%;
    min-height: 101%;
  }
}

/* ---------------------------------------------------------
  width style -> 横幅の設定
--------------------------------------------------------- */
.wid {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.wid_960 {
  max-width: 960px;
}

.wid_850 {
  max-width: 850px;
}

@media (min-width: 600px) {
  .wid_10 {
    width: 10% !important;
  }

  .wid_20 {
    width: 20% !important;
  }

  .wid_30 {
    width: 30% !important;
  }

  .wid_40 {
    width: 40% !important;
  }

  .wid_50 {
    width: 50% !important;
  }

  .wid_60 {
    width: 60% !important;
  }

  .wid_70 {
    width: 70% !important;
  }

  .wid_80 {
    width: 80% !important;
  }

  .wid_90 {
    width: 90% !important;
  }

  .wid_100 {
    width: 100% !important;
  }
}
.in_wid {
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 900px) {
  .in_wid {
    padding-left: inherit;
    padding-right: inherit;
  }
}

/* ---------------------------------------------------------
  section style -> ブロック
--------------------------------------------------------- */
/* 大枠セクション */
.sec {
  padding-top: 40px;
  padding-bottom: 40px;
  position: relative;
  z-index: 2;
}
.sec.sec_connect {
  padding-bottom: 0;
}
@media (min-width: 900px) {
  .sec {
    padding-top: 75px;
    padding-bottom: 75px;
  }
}

.sec_md {
  padding-top: 30px;
  padding-bottom: 30px;
}
.sec_md + section {
  padding-top: 0;
}
@media (min-width: 900px) {
  .sec_md {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

/* 中セクション */
.sec_row {
  margin-bottom: 40px;
}
.sec_row:last-child {
  margin-bottom: 0;
}
@media (min-width: 900px) {
  .sec_row {
    margin-bottom: 60px;
  }
}

/* 小セクション */
.sec_col {
  margin-bottom: 25px;
}
.sec_col:last-child {
  margin-bottom: 0;
}
@media (min-width: 900px) {
  .sec_col {
    margin-bottom: 40px;
  }
}

/* ---------------------------------------------------------
  space style -> 余白の設定
--------------------------------------------------------- */
.space_lg {
  margin-bottom: 30px !important;
}
@media (min-width: 900px) {
  .space_lg {
    margin-bottom: 50px !important;
  }
}

.space_md {
  margin-bottom: 20px !important;
}
@media (min-width: 900px) {
  .space_md {
    margin-bottom: 40px !important;
  }
}

.space_sm {
  margin-bottom: 15px !important;
}
@media (min-width: 900px) {
  .space_sm {
    margin-bottom: 20px !important;
  }
}

.space_xs {
  margin-bottom: 10px !important;
}
@media (min-width: 900px) {
  .space_xs {
    margin-bottom: 10px !important;
  }
}

.space_none {
  margin-bottom: 0 !important;
}
@media (min-width: 900px) {
  .space_none {
    margin-bottom: 0 !important;
  }
}

/* ---------------------------------------------------------
  color style -> カラー
--------------------------------------------------------- */
.color_main {
  color: #960a0e !important;
}

.color_sub01 {
  color: #cabf28 !important;
}

.color_sub02 {
  color: #b40d65 !important;
}

.color_white {
  color: #fff !important;
}

.color_black {
  color: #231815 !important;
}

.color_gray {
  color: #777 !important;
}

/* ---------------------------------------------------------
  background style -> 背景の設定
--------------------------------------------------------- */
.bg_color-main {
  background-color: #3e613a !important;
}

.bg_color-sub01 {
  background-color: #f2f2f2 !important;
}

.bg_color-sub02 {
  background-color: #424242 !important;
}

.bg_color-sub03 {
  background-color: #2d2d2d !important;
}

.bg_color-sub04 {
  background-color: #000 !important;
}

.bg_color-white {
  background-color: #fff !important;
}

.bg_color-black {
  background-color: #000 !important;
}

.bg_color-gray {
  background-color: #a1a1a1 !important;
}

.bg_color-red {
  background-color: #d90000 !important;
}

.bg_sample {
  background-color: #efefef !important;
}

.bg_img {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: relative;
}

.bg_img-mask:before,
.bg_img-maskwhite:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.bg_img-mask:before {
  background: rgba(0, 0, 0, 0.6);
}

.bg_img-maskwhite:before {
  background: rgba(255, 255, 255, 0.2);
}

.bg_img-maskgray:before {
  background: rgba(204, 204, 204, 0.3);
}

.bg_img-left {
  background-position: left center;
}

.bg_img-right {
  background-position: right center;
}

.bg_img01 {
  background-image: url(../images/bg01.jpg);
}

.bg_img02 {
  background-image: url(../images/bg02.jpg);
}

.bg_img-sample {
  background: url(../images/bg02.jpg);
}

.bg_stripe,
.bg_dot,
.bg_lattice {
  position: relative;
}
.bg_stripe:after,
.bg_dot:after,
.bg_lattice:after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.bg_stripe:after {
  background-image: url(../images/bg_stripe-white.png);
  opacity: 0.1;
}

.bg_dot:after {
  background-image: url(../images/bg_dot-white.png);
  opacity: 0.2;
}

.bg_lattice:after {
  background-image: url(../images/bg_lattice.png);
  opacity: 0.04;
}

/* ---------------------------------------------------------
  border style -> 線の設定
--------------------------------------------------------- */
.border {
  border: solid 1px #000;
}

.border_top {
  border-top: solid 1px transparent;
}

.border_left {
  border-left: solid 1px transparent;
}

.border_right {
  border-right: solid 1px transparent;
}

.border_bottom {
  border-bottom: solid 1px transparent;
}

.border_lg {
  border-width: 6px !important;
}

.border_md {
  border-width: 4px !important;
}

.border_sm {
  border-width: 2px !important;
}

.border_dashed {
  border-style: dashed;
}

.border_dotted {
  border-style: dotted;
}

.border_color-main {
  border-color: #960a0e !important;
}

.border_color-sub01 {
  border-color: #cabf28 !important;
}

.border_color-sub02 {
  border-color: #b40d65 !important;
}

.border_color-white {
  border-color: #fff !important;
}

.border_color-black {
  border-color: #000 !important;
}

.border_color-gray {
  border-color: #ccc !important;
}

.border_radius {
  border-radius: 0.25em;
}

.border_cylinder {
  border-radius: 100%;
}

/* ---------------------------------------------------------
  title style -> 見出し
--------------------------------------------------------- */
.sec > .ttl:first-child,
.sec_row > .ttl:first-child {
  margin-top: -10px;
}

p + .ttl,
img + .ttl {
  margin-top: 20px;
}
@media (min-width: 900px) {
  p + .ttl,
  img + .ttl {
    margin-top: 40px;
  }
}

.box .ttl_lv1:first-child {
  margin-top: 5px;
}
@media (min-width: 900px) {
  .box .ttl_lv1:first-child {
    margin-top: 10px;
  }
}

.ttl {
  display: block;
  line-height: 1.5;
  letter-spacing: 0.2em;
  font-weight: 600;
  color: #000;
}

.ttl_lv1 {
  font-size: 2.1rem !important;
  margin-bottom: 30px;
}
.ttl_lv1 .ttl_small, .ttl_lv1 .ttl_small-inline {
  font-size: 1.2rem !important;
}
@media (min-width: 900px) {
  .ttl_lv1 {
    font-size: 3.2rem !important;
    margin-bottom: 40px;
  }
  .ttl_lv1 .ttl_small, .ttl_lv1 .ttl_small-inline {
    font-size: 1.4rem !important;
  }
}

.ttl_lv2 {
  font-size: 1.9rem !important;
  margin-bottom: 20px;
  letter-spacing: 0.3em;
}
@media (min-width: 900px) {
  .ttl_lv2 {
    font-size: 2.7rem !important;
    margin-bottom: 35px;
  }
}

.ttl_lv3 {
  font-size: 1.7rem !important;
  margin-bottom: 20px;
}
@media (min-width: 900px) {
  .ttl_lv3 {
    font-size: 2.5rem !important;
    margin-bottom: 30px;
  }
}

.ttl_lv4 {
  font-size: 1.6rem !important;
  margin-bottom: 15px;
}
@media (min-width: 900px) {
  .ttl_lv4 {
    font-size: 2.3rem !important;
    margin-bottom: 20px;
  }
}

.ttl_lv5 {
  font-size: 1.5rem !important;
  margin-bottom: 15px;
}
@media (min-width: 900px) {
  .ttl_lv5 {
    font-size: 2.1rem !important;
    margin-bottom: 20px;
  }
}

.ttl_lv6 {
  font-size: 1.4rem;
  margin-bottom: 10px;
}
@media (min-width: 900px) {
  .ttl_lv6 {
    font-size: 1.8rem !important;
  }
}

.ttl_sub, .ttl_sub-inline {
  display: block;
  margin-top: 2px;
  font-size: 1.3rem !important;
}
@media (min-width: 900px) {
  .ttl_sub, .ttl_sub-inline {
    font-size: 1.6rem !important;
  }
}

.ttl_sub-inline {
  display: inline;
}

.ttl_small, .ttl_small-inline {
  display: block;
  font-size: 1.1rem !important;
}
@media (min-width: 900px) {
  .ttl_small, .ttl_small-inline {
    font-size: 1.3rem !important;
  }
}

.ttl_small-inline {
  display: inline;
}

.ttl_style_01 {
  padding: 0 0.5em 0.4em;
  border-bottom: solid 1px #000;
}

.ttl_style_02 {
  padding: 0 0.5em 0.25em;
  border-bottom: dashed 2px #000;
}

.ttl_style_03 {
  padding: 0 0.5em 0.25em;
  border-bottom: dotted 1px #000;
}

.ttl_style_04 {
  padding: 0 0.5em 0.25em;
  border-bottom: double 4px #000;
}

.ttl_style_05 {
  padding: 0.25em 0.5em;
  border-top: solid 2px #000;
  border-bottom: solid 2px #000;
}

.ttl_style_06 {
  padding: 0.25em 0.5em;
  border-top: dashed 2px #000;
  border-bottom: dashed 2px #000;
}

.ttl_style_07 {
  padding: 0.2em 0.5em;
  background: #1381b8;
  color: #fff;
}

.ttl_style_08 {
  padding: 0.2em 0.5em;
  background: #1381b8;
  border-radius: 0.3em;
  color: #fff;
}

.ttl_style_09 {
  padding: 0.2em 0.5em;
  background: #1381b8;
  border-radius: 5em;
  color: #fff;
}

.ttl_style_10 {
  color: #000;
  border: solid 2px #000;
  padding: 0.25em 0.5em;
}

.ttl_style_11 {
  color: #000;
  border: solid 2px #000;
  padding: 0.25em 0.5em;
  border-radius: 0.3em;
}

.ttl_style_12 {
  padding: 0.28em 0.5em;
  background: #eaf3ff;
  border-bottom: solid 3px #516ab6;
}

.ttl_style_13 {
  padding: 0.28em 0.5em;
  border-left: solid 5px #516ab6;
}

.ttl_style_14 {
  padding: 0.28em 0.5em;
  background: #fffaf4;
  border-left: solid 5px #ffaf58;
}

.ttl_style_15 {
  position: relative;
  padding: 0.26em 0.5em 0.28em;
  background: #526CB4;
  color: #fff;
}
.ttl_style_15:after {
  position: absolute;
  content: '';
  top: 100%;
  left: 35px;
  border: 15px solid transparent;
  border-top: 15px solid #526CB4;
  width: 0;
  height: 0;
}
.ttl_style_15.u_aligncenter:after {
  left: 50%;
  transform: translateX(-50%);
}

.ttl_style_16 {
  position: relative;
  padding: 0.26em 0.5em 0.28em;
  background: #526CB4;
  color: #fff;
}
.ttl_style_16:before {
  position: absolute;
  content: '';
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 15px transparent;
  border-right: solid 20px #959e9b;
}

.ttl_style_17 {
  background: linear-gradient(transparent 70%, #FEEF35 70%);
}

.ttl_style_18 {
  border-bottom: solid 3px #d7d7d7;
  position: relative;
  padding: 0 0 0.85em;
}
.ttl_style_18:after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #000;
  bottom: -3px;
  left: 0;
  width: 18%;
  max-width: 120px;
}

.ttl_style_19 {
  position: relative;
  padding: 0.25em 0.5em 0.25em 2em;
  background: #77c3df;
  color: #fff;
  line-height: 1.3;
  z-index: -1;
}
.ttl_style_19:before {
  position: absolute;
  content: '';
  left: -2px;
  top: -2px;
  border: none;
  border-left: solid 40px white;
  border-bottom: solid 79px transparent;
  z-index: -2;
}

.ttl_style_20 {
  position: relative;
  padding: 0.35em 1em 0.35em 2em;
  background: #77c3df;
  color: #fff;
  line-height: 1.3;
  z-index: -2;
}
.ttl_style_20:before {
  position: absolute;
  content: '';
  left: -2px;
  top: -2px;
  width: 0;
  height: 0;
  border: none;
  border-left: solid 40px #fff;
  border-bottom: solid 79px transparent;
  z-index: -1;
}
.ttl_style_20:after {
  position: absolute;
  content: '';
  right: -3px;
  top: -7px;
  width: 0;
  height: 0;
  border: none;
  border-left: solid 40px transparent;
  border-bottom: solid 79px #fff;
  z-index: -1;
}

.ttl_style_21 {
  position: relative;
  padding: 0.35em 0.5em;
  background: repeating-linear-gradient(-45deg, #cce5f6, #cce5f6 4px, #eaf3ff 3px, #eaf3ff 8px);
}

.ttl_style_22 span {
  position: relative;
  display: inline-block;
  padding: 0 1.8em;
  letter-spacing: normal;
}
.ttl_style_22 span:before, .ttl_style_22 span:after {
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 1.2em;
  height: 1px;
  background-color: #3d3d3d;
}
.ttl_style_22 span:before {
  left: 0;
}
.ttl_style_22 span:after {
  right: 0;
}
@media (min-width: 900px) {
  .ttl_style_22 span {
    padding: 0 86px;
  }
  .ttl_style_22 span:before, .ttl_style_22 span:after {
    width: 64px;
  }
}

.ttl_style_23 span {
  position: relative;
  display: inline-block;
  padding: 0 1.8em;
  letter-spacing: normal;
}
.ttl_style_23 span:before, .ttl_style_23 span:after {
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  height: 5px;
  width: 1.2em;
  border-top: solid 1px #3d3d3d;
  border-bottom: solid 1px #3d3d3d;
}
.ttl_style_23 span:before {
  left: 0;
}
.ttl_style_23 span:after {
  right: 0;
}
@media (min-width: 900px) {
  .ttl_style_23 span {
    padding: 0 86px;
  }
  .ttl_style_23 span:before, .ttl_style_23 span:after {
    width: 64px;
  }
}

.ttl_style_24 {
  position: relative;
  padding-bottom: 14px;
}
.ttl_style_24:before {
  content: '';
  position: absolute;
  bottom: 0;
  display: inline-block;
  width: 55px;
  height: 3px;
  left: 50%;
  border-radius: 2px;
  transform: translateX(-50%);
  background-color: #231815;
}
@media (min-width: 900px) {
  .ttl_style_24 {
    padding-bottom: 20px;
  }
  .ttl_style_24:before {
    width: 65px;
    height: 4px;
  }
}

.ttl_style_25 span {
  position: relative;
  display: inline-block;
  padding: 0 2em;
}
.ttl_style_25 span:before, .ttl_style_25 span:after {
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 1.8em;
  height: 2px;
  background-color: #231815;
  transform: rotate(-60deg);
}
.ttl_style_25 span:before {
  left: 0;
}
.ttl_style_25 span:after {
  right: 0;
}

.ttl_style_26 {
  position: relative;
  padding: 0.25em 1em;
  border-top: solid 2px #231815;
  border-bottom: solid 2px #231815;
}
.ttl_style_26:before, .ttl_style_26:after {
  content: '';
  position: absolute;
  top: -7px;
  width: 2px;
  height: -webkit-calc(100% + 14px);
  height: calc(100% + 14px);
  background-color: black;
}
.ttl_style_26:before {
  left: 7px;
}
.ttl_style_26:after {
  right: 7px;
}

.ttl_style_27 span {
  position: relative;
  line-height: 1.4;
  padding: 0.25em 1em;
  display: inline-block;
}
.ttl_style_27 span:before, .ttl_style_27 span:after {
  content: '';
  width: 20px;
  height: 30px;
  position: absolute;
  display: inline-block;
}
.ttl_style_27 span:before {
  border-left: solid 1px #231815;
  border-top: solid 1px #231815;
  top: 0;
  left: 0;
}
.ttl_style_27 span:after {
  border-right: solid 1px #231815;
  border-bottom: solid 1px #231815;
  bottom: 0;
  right: 0;
}

.ttl_style_28 span {
  position: relative;
  line-height: 1.4;
  padding: 0.25em 1em;
  display: inline-block;
  top: 0;
}
.ttl_style_28 span:before, .ttl_style_28 span:after {
  position: absolute;
  top: 0;
  content: '';
  width: 8px;
  height: 100%;
  display: inline-block;
}
.ttl_style_28 span:before {
  border-left: solid 1px black;
  border-top: solid 1px black;
  border-bottom: solid 1px black;
  left: 0;
}
.ttl_style_28 span:after {
  content: '';
  border-top: solid 1px black;
  border-right: solid 1px black;
  border-bottom: solid 1px black;
  right: 0;
}

.ttl_style_29 {
  position: relative;
  padding: 0.35em 0.5em;
  background: #b6e9ff;
  color: #393939;
}
.ttl_style_29:before {
  content: " ";
  position: absolute;
  top: -16px;
  left: 0;
  width: 100%;
  height: 0;
  border: solid 8px transparent;
  border-bottom-color: #b2ddf0;
}

.ttl_style_30 {
  position: relative;
  padding: 0 0.5em 0.36em;
}
.ttl_style_30:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: 4px;
  background: -webkit-linear-gradient(left, #e65a5a, transparent);
  background: -o-linear-gradient(left, #e65a5a, transparent);
  background: linear-gradient(to right, #e65a5a, transparent);
}

.ttl_style_31 {
  position: relative;
  padding: 0 0.5em 0.36em;
}
.ttl_style_31:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: 4px;
  background: -moz-linear-gradient(to right, #ffba73, #ffb2b2);
  background: -webkit-linear-gradient(to right, #ffba73, #ffb2b2);
  background: linear-gradient(to right, #ffba73, #ffb2b2);
}

.ttl_style_32 {
  position: relative;
  padding: 0.25em 0.5em;
  color: #fff;
  background: -moz-linear-gradient(to right, #ff7c6f, #ffc994);
  background: -webkit-linear-gradient(to right, #ff7c6f, #ffc994);
  background: linear-gradient(to right, #ff7c6f, #ffc994);
}

.ttl_style_33 {
  position: relative;
  padding: 0.25em 0.5em;
  color: #fff;
  background: -moz-linear-gradient(to top, #ff7c6f, #ffc994);
  background: -webkit-linear-gradient(to top, #ff7c6f, #ffc994);
  background: linear-gradient(to top, #ff7c6f, #ffc994);
}

.ttl_style_34 {
  position: relative;
  letter-spacing: 0.2em;
}

/* ---------------------------------------------------------
  list style -> リスト
--------------------------------------------------------- */
.lst li {
  line-height: 1.7;
}
.lst a:hover {
  text-decoration: underline;
}
.lst .fas {
  font-size: 0.9em;
}

/* ---------------------------------------------------------
  button style -> ボタン
--------------------------------------------------------- */
.btn {
  display: inline-block;
  color: #000;
  border: none;
  outline: none;
  text-align: center;
  cursor: pointer;
  vertical-align: middle;
  padding: 0.5em 1rem;
  font-size: 1.2rem;
  background-color: transparent;
  line-height: 1.5;
  transition: opacity 150ms ease-in-out;
}
@media (min-width: 900px) {
  .btn {
    font-size: 1.5rem;
  }
}

@media screen and (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}
.btn:hover {
  opacity: .8;
}

.btn:focus, .btn.focus {
  outline: 0;
}

.btn_lg {
  font-size: 1.4rem;
  padding: 0.8em 1.6em;
}
@media (min-width: 900px) {
  .btn_lg {
    font-size: 1.6rem;
    padding: 0.8em 2em;
  }
}

.btn_sm {
  padding: 0.3em 0.8em;
  font-size: 1.1rem;
}
@media (min-width: 900px) {
  .btn_sm {
    font-size: 1.3rem;
  }
}

.btn_block {
  display: block;
  width: 100%;
}

.btn_outline {
  /* 色の指定は_border.scssから引用  */
  border: 1px solid #000;
}

/* ---------------------------------------------------------
  table style -> 表
--------------------------------------------------------- */
.tbl_01 {
  width: 100%;
}
.tbl_01 th, .tbl_01 td {
  padding: 15px;
  border: solid 1px #000;
}

.tbl_02 {
  width: 100%;
}
.tbl_02 th, .tbl_02 td {
  padding: 12px 15px;
  border: solid 1px #ccc;
}
.tbl_02 th {
  background: #efefef;
}

/* ---------------------------------------------------------
  box style -> 枠
--------------------------------------------------------- */
.box,
.box_sm {
  background: rgba(255, 255, 255, 0.95);
  position: relative;
  z-index: 10;
}
@media (min-width: 900px) {
  .box,
  .box_sm {
    margin: 0;
  }
}

.box {
  padding: 20px;
}
@media (min-width: 900px) {
  .box {
    padding: 40px;
  }
}

.box_sm {
  padding: 10px;
}
@media (min-width: 900px) {
  .box_sm {
    padding: 20px;
  }
}

.box_transparent {
  background: transparent;
}

/* ---------------------------------------------------------
  txt img style
--------------------------------------------------------- */
.txt p {
  font-size: 1.3rem;
  line-height: 1.8;
  margin-left: auto;
  margin-right: auto;
}
.txt img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 830px;
  /* 不要なら削除 */
}
.txt p + p,
.txt p + img,
.txt img + p,
.txt img + span {
  margin-top: 20px;
}
@media (min-width: 600px) {
  .txt p {
    font-size: 1.5rem;
    line-height: 1.9;
  }
  .txt p + p {
    margin-top: -10px;
  }
  .txt img {
    margin-left: auto;
    margin-right: auto;
  }
  .txt p + p,
  .txt p + img {
    margin-top: 30px;
  }
  .txt p + img,
  .txt img + p,
  .txt img + span {
    margin-top: 40px;
  }
}

.txt_color-white p {
  color: #fff;
}

.txt_title {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 5px;
}
@media (min-width: 600px) {
  .txt_title {
    font-size: 2.1rem;
  }
}

.txt_center {
  text-align: center;
}
.txt_center p, .txt_center img {
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 600px) {
  .txt_center p, .txt_center img {
    margin-left: auto;
    margin-right: auto;
  }
}

.txt_img_float img, .txt_img_float-rev img {
  width: 100%;
}

@media (min-width: 600px) {
  .txt_img_float img, .txt_img_float-rev img {
    max-width: 340px;
    width: 42%;
    margin: 0;
    margin-top: 5px;
    margin-bottom: 1.5em;
  }
  .txt_img_float img + .txt_title, .txt_img_float-rev img + .txt_title {
    margin-top: 0;
  }

  .txt_img_float img {
    float: left;
    margin-right: 2.4em;
  }

  .txt_img_float-rev img {
    float: right;
    margin-left: 2.4em;
  }
}
.txt_img_flex img, .txt_img_flex-rev img {
  width: 100%;
}

@media (min-width: 600px) {
  .txt_img_flex, .txt_img_flex-rev {
    display: flex;
    align-items: flex-start;
  }
  .txt_img_flex.txt_img_flex-center, .txt_img_flex-rev.txt_img_flex-center {
    align-items: center;
  }
  .txt_img_flex img, .txt_img_flex-rev img {
    max-width: 340px;
    width: 50%;
    margin: 0;
  }
  .txt_img_flex img + p,
  .txt_img_flex p + img, .txt_img_flex-rev img + p,
  .txt_img_flex-rev p + img {
    margin-top: 0;
  }

  .txt_img_flex p {
    padding-left: 2.4em;
  }

  .txt_img_flex-rev {
    flex-direction: row-reverse;
  }
  .txt_img_flex-rev p {
    padding-right: 2.4em;
  }
}
.txt_img_flex img, .txt_img_flex-rev img {
  width: 100%;
}

@media (min-width: 600px) {
  .txt_img_flex, .txt_img_flex-rev {
    display: flex;
    align-items: flex-start;
  }
  .txt_img_flex.txt_img_flex-center, .txt_img_flex-rev.txt_img_flex-center {
    align-items: center;
  }
  .txt_img_flex img, .txt_img_flex-rev img {
    max-width: 340px;
    width: 50%;
    margin: 0;
  }
  .txt_img_flex img + p,
  .txt_img_flex p + img, .txt_img_flex-rev img + p,
  .txt_img_flex-rev p + img {
    margin-top: 0;
  }

  .txt_img_flex p {
    padding-left: 2.4em;
  }

  .txt_img_flex-rev {
    flex-direction: row-reverse;
  }
  .txt_img_flex-rev p {
    padding-right: 2.4em;
  }
}
.txt_img_box, .txt_img_box-rev {
  overflow: hidden;
  position: relative;
}
.txt_img_box img, .txt_img_box-rev img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  max-width: inherit;
}

@media (min-width: 600px) {
  .txt_img_box, .txt_img_box-rev {
    display: flex;
    flex-wrap: wrap;
  }
  .txt_img_box.txt_img_box-center, .txt_img_box-rev.txt_img_box-center {
    align-items: center;
  }
  .txt_img_box .img_trimming, .txt_img_box-rev .img_trimming {
    width: 50%;
    margin: 0;
    position: absolute;
    top: 0;
    height: 100%;
  }
  .txt_img_box img, .txt_img_box-rev img {
    width: auto;
  }
  .txt_img_box .box, .txt_img_box-rev .box {
    width: 50%;
  }
  .txt_img_box .img_trimming + p,
  .txt_img_box p + .img_trimming, .txt_img_box-rev .img_trimming + p,
  .txt_img_box-rev p + .img_trimming {
    margin-top: 0;
  }

  .txt_img_box {
    flex-direction: row-reverse;
  }
  .txt_img_box .img_trimming {
    left: 0;
  }

  .txt_img_box-rev .img_trimming {
    right: 0;
  }
}
.txt_bg .txt_bg_cont > div {
  position: relative;
  z-index: 1;
  padding: 0 20px;
}
@media (min-width: 900px) {
  .txt_bg .txt_bg_cont {
    margin-left: auto;
    width: 62%;
    min-width: 630px;
  }
  .txt_bg .txt_bg_cont > div {
    padding-left: 50px;
    padding-right: 50px;
    max-width: 880px;
  }
}

/* ---------------------------------------------------------
  gallery style (list) -> 画像ギャラリーなど
--------------------------------------------------------- */
.gal_sdstyle, .gal_05 {
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: -30px;
}
.gal_sdstyle li, .gal_05 li {
  padding: 0 15px;
  margin-bottom: 30px;
}
.gal_sdstyle img, .gal_05 img {
  width: 100%;
  height: auto;
}
@media (min-width: 600px) {
  .gal_sdstyle, .gal_05 {
    display: flex;
    flex-wrap: wrap;
  }
}

.gal_01 {
  margin-bottom: -30px;
}
.gal_01 li {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #fff;
  border: solid 1px #c2c2c2;
  margin-bottom: 30px;
  position: relative;
}
.gal_01 li > div {
  padding-bottom: 56.25%;
}
.gal_01 h3 {
  text-align: center;
  font-size: 1.8rem;
  padding: 15px 15px 10px;
  display: flex;
  flex-direction: column;
}
.gal_01 h3 span {
  display: block;
  font-size: 1.1rem;
  color: #d90000;
}
.gal_01 .gal_txt {
  padding: 0 20px 15px;
  text-align: left;
}
.gal_01 .gal_txt p {
  font-size: 1.2rem;
  line-height: 1.65;
}
.gal_01 .gal_txt p + p {
  margin-top: 10px;
}
.gal_01 .gal_img {
  display: flex;
  overflow: hidden;
  position: absolute;
  width: 100%;
  bottom: 0;
}
.gal_01 .gal_img:before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
.gal_01 .gal_img img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  width: auto;
  height: auto;
  min-width: 101%;
  min-height: 101%;
}
@media (min-width: 600px) {
  .gal_01 {
    display: flex;
    flex-wrap: wrap;
  }
  .gal_01 li {
    border-right: none;
  }
  .gal_01 li + li {
    border-left: solid 1px #c2c2c2;
  }
  .gal_01 li:last-child {
    border-right: solid 1px #c2c2c2;
  }
  .gal_01 li > div {
    padding-bottom: 108.25%;
  }
  .gal_01 .gal_img:before {
    padding-top: 108.25%;
  }
  .gal_01 h3 {
    font-size: 2.2rem;
    padding: 15px;
  }
  .gal_01 h3 span {
    font-size: 1.3rem;
  }
  .gal_01 .gal_txt {
    padding: 0 20px 20px;
    text-align: left;
  }
  .gal_01 .gal_txt p {
    font-size: 1.3rem;
  }
  .gal_01 .gal_txt p + p {
    margin-top: 10px;
  }
}

.gal_02 {
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: -30px;
}
.gal_02 li {
  margin-bottom: 30px;
  padding: 0 15px;
}
.gal_02 li > div {
  display: flex;
  flex-direction: column;
  border: solid 1px #c2c2c2;
  border-radius: 4px;
  padding: 15px;
  background: #fff;
}
.gal_02 img {
  width: 100%;
  height: auto;
}
.gal_02 h3 {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 12px 0;
  text-align: center;
}
.gal_02 h3 span {
  display: block;
  font-size: 1.2rem;
  font-weight: 400;
  color: #888;
  margin-top: 2px;
}
.gal_02 p {
  font-size: 1.2rem;
  line-height: 1.65;
}
.gal_02 p + p {
  margin-top: 10px;
}
.gal_02 .gal_link {
  text-align: center;
  margin-top: 12px;
}
.gal_02 .gal_link a {
  display: inline-block;
  background: #d90000;
  color: #fff;
  font-size: 1.2rem;
  padding: 1px 15px;
  transition: background 70ms linear;
}
.gal_02 .gal_link a:hover {
  background: #a60000;
}
.gal_02 .gal_link i {
  font-size: 1.1rem;
  margin-left: 5px;
}
@media (min-width: 600px) {
  .gal_02 {
    display: flex;
    flex-wrap: wrap;
  }
}

.gal_03 {
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: -30px;
  display: flex;
  flex-wrap: wrap;
}
.gal_03 li {
  margin-bottom: 30px;
  padding: 0 15px;
}
.gal_03 img {
  width: 100%;
  height: auto;
}
.gal_03 h3 {
  margin-top: 20px;
  font-size: 1.5rem;
  text-align: center;
}
.gal_03 p {
  font-size: 1.3rem;
  line-height: 1.6;
  margin-top: 10px;
}
@media (min-width: 600px) {
  .gal_03 h3 {
    font-size: 1.6rem;
  }
  .gal_03 p {
    font-size: 1.4rem;
  }
}

.gal_04 {
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: -30px;
  display: flex;
  flex-wrap: wrap;
}
.gal_04 li {
  display: flex;
  margin-bottom: 30px;
  padding: 0 15px;
}
.gal_04 li > div {
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
}
.gal_04 li > div > div {
  padding: 20px 15px 15px;
}
.gal_04 .li_num {
  padding: 0.3em .5em;
  background: #3e613a;
  color: #fff;
  margin-right: 10px;
}
.gal_04 img {
  width: 100%;
  height: auto;
}
.gal_04 h3 {
  font-size: 1.6rem;
  text-align: center;
  margin-bottom: 15px;
}
.gal_04 p {
  font-size: 1.3rem;
  line-height: 1.6;
  margin-top: 10px;
}
@media (min-width: 600px) {
  .gal_04 h3 {
    font-size: 1.6rem;
  }
  .gal_04 p {
    font-size: 1.4rem;
  }
}

.gal_05 .li_img {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.gal_05 .li_img:before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
.gal_05 .li_img:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}
.gal_05 h3 {
  position: absolute;
  color: #fff;
  font-weight: 700;
  font-size: 2.1rem;
  width: 100%;
  text-align: center;
  padding: 0 0.2em;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  z-index: 10;
  letter-spacing: 0.15em;
}
.gal_05 img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  width: auto;
  height: auto;
  min-width: 101%;
  min-height: 101%;
}
.gal_05 p {
  margin-top: 15px;
}
.gal_05 p + p {
  margin-top: 10px;
}
.gal_05 .li_cont {
  padding: 15px 15px;
  background: #fff;
}
.gal_05 .li_cont p:first-child {
  margin-top: 0;
}

/* ---------------------------------------------------------
  faq style -> よくある質問
--------------------------------------------------------- */
.faq_01 {
  margin-bottom: -20px;
}
.faq_01 dl {
  border: solid 1px #c2c2c2;
  border-radius: 4px;
  background: #fff;
  margin-bottom: 20px;
  padding: 0 10px;
}
.faq_01 dt, .faq_01 dd {
  line-height: 1.7;
  letter-spacing: 0.02em;
}
.faq_01 dt {
  font-size: 1.3rem;
  padding: 15px 10px 12px 10px;
  vertical-align: middle;
  position: relative;
  font-weight: 500;
}
.faq_01 dt span {
  display: flex;
}
.faq_01 .faq_icon {
  font-weight: 600;
  margin-right: 8px;
}
.faq_01 .faq_more {
  font-size: 1.2rem;
  font-weight: bold;
  color: #d90000;
  display: block;
  text-align: right;
}
.faq_01 .faq_more:hover {
  text-decoration: underline;
  color: #a60000;
}
.faq_01 .faq_more i {
  margin-left: 7px;
  transition: transform 70ms ease;
}
.faq_01 .faq_more:hover i {
  text-decoration: none;
}
.faq_01 .faq_more.active i {
  transform: rotate(90deg);
}
.faq_01 dd {
  display: none;
  border-top: dashed 1px #c2c2c2;
  padding: 15px 10px 15px 11px;
  color: #888;
  font-size: 1.2rem;
}
@media (min-width: 900px) {
  .faq_01 dt {
    font-size: 1.6rem;
    padding: 15px 70px 15px 10px;
  }
  .faq_01 .faq_more {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  .faq_01 dd {
    padding: 15px 10px 18px 12px;
  }
}

/* ---------------------------------------------------------
  voice style -> お客様の声など
--------------------------------------------------------- */
.voice_01 {
  position: relative;
  color: #000000;
}
.voice_01 .vc_col {
  border: solid 1px #424242;
  background: #fff;
  padding: 25px 20px;
}
.voice_01 .vc_col + .vc_col {
  margin-top: 35px;
}
.voice_01 .vc_title {
  font-size: 1.7rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  padding: 0 15px 15px;
  border-bottom: solid 1px #424242;
  margin-bottom: 25px;
  position: relative;
  padding-left: 50px;
  line-height: 1.5;
}
.voice_01 .vc_title span {
  margin-top: 5px;
  font-size: 1.2rem;
  display: block;
  width: 100%;
}
.voice_01 .vc_title i {
  font-size: 2.4rem;
  margin-right: 15px;
  position: absolute;
  top: 0;
  left: 15px;
}
.voice_01 dl {
  padding-left: 10px;
  padding-right: 10px;
}
.voice_01 dl:after {
  content: "";
  display: block;
  clear: both;
}
.voice_01 dt, .voice_01 dd {
  line-height: 1.7;
}
.voice_01 dt {
  float: left;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 68px;
  height: 68px;
  color: #fff;
  margin-right: 15px;
  font-size: 1.1rem;
  padding: 3px;
  text-align: center;
}
.voice_01 dd {
  transform: translateY(-4px);
  font-size: 1.3rem;
}
.voice_01 dd br {
  display: none;
}
.voice_01 .vc_user {
  margin-bottom: 25px;
}
.voice_01 .vc_user dt {
  background: #424242;
}
.voice_01 .vc_person dt {
  background: #cabf28;
}
@media (min-width: 900px) {
  .voice_01 .vc_col {
    padding: 30px;
  }
  .voice_01 .vc_title {
    font-size: 2.3rem;
    padding-left: 15px;
  }
  .voice_01 .vc_title i {
    font-size: 3.8rem;
    transform: translateY(3px);
    position: static;
  }
  .voice_01 .vc_title span {
    margin-left: 12px;
    font-size: 1.3rem;
    width: inherit;
  }
  .voice_01 dl {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    padding-left: 10px;
    padding-right: 10px;
  }
  .voice_01 dt {
    float: none;
    width: 95px;
    height: 95px;
    font-size: 1.45rem;
    margin-right: 30px;
  }
  .voice_01 dd {
    font-size: 1.4rem;
    transform: none;
    width: calc(100% - 125px);
  }
}

/* ---------------------------------------------------------
  flow style -> ご依頼の流れなど
--------------------------------------------------------- */
.flow_01 .flow_row {
  display: flex;
  margin-bottom: 25px;
  border: solid 1px #000;
  background: #fff;
}
.flow_01 .flow_num {
  display: flex;
  background: #000;
  color: #fff;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 2.8rem;
  font-weight: 600;
  padding: 0.5em 0.4em;
  line-height: 1;
}
.flow_01 .flow_cont {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1em;
  font-size: 1.2rem;
}
.flow_01 p {
  word-break: break-word;
  line-height: 1.5;
}
.flow_01 p + p {
  margin-top: 15px;
}
.flow_01 a:hover {
  text-decoration: underline;
}
.flow_01 .fas {
  font-size: 0.8em;
}
@media (min-width: 900px) {
  .flow_01 .flow_row {
    margin-bottom: 35px;
    min-height: 120px;
  }
  .flow_01 .flow_num {
    font-size: 6rem;
  }
  .flow_01 .flow_cont {
    padding: 1.5em;
    font-size: 1.5rem;
  }
  .flow_01 a {
    font-size: 0.95em;
  }
  .flow_01 p {
    line-height: 1.6;
    font-weight: 600;
  }
  .flow_01 p + p {
    margin-top: 15px;
  }
}

/* ---------------------------------------------------------
  news style -> 新着情報のスタイル
--------------------------------------------------------- */
.new {
  background: #d90000;
  color: #fff;
  font-size: 1rem;
  padding: 0 10px;
  margin-left: 15px;
  line-height: 1.4;
  display: inline-block;
}
@media (min-width: 900px) {
  .new {
    font-size: 1.1rem;
    position: relative;
  }
}

.new_radius {
  border-radius: 2em;
}

.news_color-white.news_01 dl {
  padding: 0 15px;
  border-bottom: solid 1px #fff;
}
.news_color-white.news_01 dl:first-child {
  border-top: solid 1px #fff;
}
.news_color-white.news_01 dt {
  color: #fff;
}
.news_color-white.news_01 dd,
.news_color-white.news_01 dd a {
  color: #fff;
}

.news_01 dl {
  padding: 0 15px;
  border-bottom: solid 1px #c2c2c2;
}
.news_01 dl:first-child {
  border-top: solid 1px #c2c2c2;
}
.news_01 dl + div {
  margin-top: 30px;
}
.news_01 dt, .news_01 dd {
  line-height: 1.7;
}
.news_01 dt {
  color: #d90000;
  padding: 12px 0 0;
}
.news_01 dd {
  font-size: 1.2rem;
  padding: 2px 0 14px;
}
.news_01 dd a {
  color: #3d3d3d;
}
.news_01 dd a:hover {
  text-decoration: underline;
}
@media (min-width: 900px) {
  .news_01 dl {
    display: flex;
    flex-wrap: wrap;
    padding: 0 30px;
  }
  .news_01 dl + div {
    margin-top: 40px;
  }
  .news_01 dt, .news_01 dd {
    padding: 14px 0;
  }
  .news_01 dt {
    padding-right: 30px;
    width: 180px;
    font-size: 1.4rem;
  }
  .news_01 dd {
    font-size: 1.3rem;
    width: calc(100% - 180px);
  }
}

.news_02 dl {
  margin-bottom: 12px;
  color: #424242;
  transition: color 100ms linear;
}
.news_02 dt {
  display: flex;
  align-items: center;
}
.news_02 dd {
  font-size: 1.2rem;
  padding-bottom: 12px;
  border-bottom: solid 1px #ccc;
}
.news_02 a {
  color: #424242;
}
.news_02 a:hover {
  color: #999;
}
.news_02 a:hover {
  text-decoration: underline;
}
@media (min-width: 900px) {
  .news_02 dt {
    font-size: 1.4rem;
  }
  .news_02 dd {
    font-size: 1.3rem;
  }
}

.news_03 {
  height: 250px;
  overflow-y: scroll;
}
.news_03 > div {
  padding-right: 10px;
}
.news_03 dl:first-child {
  border-top: solid 1px #ccc;
}
.news_03 dl {
  border-bottom: solid 1px #ccc;
  padding: 10px 5px;
  font-size: 1.3rem;
}
.news_03 dt {
  padding-right: 20px;
  color: #3e613a;
  font-size: 1.4rem;
}
@media (min-width: 900px) {
  .news_03 dl {
    display: flex;
    font-size: 1.4rem;
  }
  .news_03 dt {
    padding-right: 40px;
  }
}

/* ---------------------------------------------------------
  company style -> 会社概要
--------------------------------------------------------- */
.google_map {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  overflow: hidden;
}
.google_map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.google_map_02 {
  padding-top: 40%;
}

.corp_01 .corp_data {
  margin-bottom: 30px;
}
.corp_01 .google_map + .company_data {
  padding-bottom: inherit;
  padding-top: 30px;
}
.corp_01 .google_map {
  overflow: hidden;
}
.corp_01 .corp_tbl {
  width: 100%;
  table-layout: fixed;
}
.corp_01 .corp_tbl th, .corp_01 .corp_tbl td {
  border-top: solid 1px #3d3d3d;
  border-bottom: solid 1px #3d3d3d;
  padding: 14px;
  line-height: 1.7;
  font-size: 1.2rem;
}
.corp_01 .corp_tbl th {
  text-align: left;
  width: 80px;
  white-space: nowrap;
}
@media (min-width: 900px) {
  .corp_01 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }
  .corp_01 .corp_data {
    width: calc(100% - 350px);
    padding-right: 60px;
  }
  .corp_01 .google_map + .corp_data {
    padding-right: inherit;
    padding-left: 60px;
  }
  .corp_01 .google_map {
    width: 350px;
    padding-top: 45%;
  }
  .corp_01 .corp_tbl th, .corp_01 .corp_tbl td {
    font-size: 1.4rem;
  }
  .corp_01 .corp_tbl th {
    width: 150px;
    padding-left: 40px;
  }
  .corp_01 .corp_tbl td {
    padding-right: 40px;
  }
}

.corp_01-white {
  color: #fff;
}
.corp_01-white .corp_tbl th,
.corp_01-white .corp_tbl td {
  border-top: solid 1px #fff;
  border-bottom: solid 1px #fff;
}

.corp_02 .corp_data {
  margin-bottom: 30px;
}
.corp_02 .corp_tbl {
  width: 100%;
  table-layout: fixed;
}
.corp_02 .corp_tbl th, .corp_02 .corp_tbl td {
  border-top: solid 1px #000;
  border-bottom: solid 1px #000;
  padding: 14px;
  font-size: 1.2rem;
}
.corp_02 .corp_tbl th {
  text-align: left;
  width: 80px;
  white-space: nowrap;
}
.corp_02.color_white .corp_tbl th, .corp_02.color_white .corp_tbl td {
  border-top: solid 1px #fff;
  border-bottom: solid 1px #fff;
}
@media (min-width: 900px) {
  .corp_02 .corp_tbl .corp_data {
    margin-bottom: 40px;
  }
  .corp_02 .corp_tbl th, .corp_02 .corp_tbl td {
    padding: 15px 30px;
    font-size: 1.4rem;
  }
}

/* ---------------------------------------------------------
  form style -> フォーム関連
--------------------------------------------------------- */
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"] {
  width: 100%;
  border: solid 1px #c9caca;
  padding: 2px 5px;
  height: 30px;
}

textarea {
  width: 100%;
  resize: vertical;
  border: solid 1px #c9caca;
  padding: 5px;
  line-height: 1.6;
  height: 200px;
}

.input_col_2 {
  margin-bottom: -10px;
}

.input_col_2 .input_col {
  display: block;
  margin-bottom: 10px;
}

.form_attention {
  margin-top: 25px;
  font-size: 1.2rem;
}
@media (min-width: 900px) {
  .form_attention {
    font-size: 1.4rem;
    line-height: 1.8;
  }
}

@media (min-width: 900px) {
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="number"] {
    height: 34px;
  }

  textarea {
    padding: 2px 5px;
    height: 280px;
  }

  .input_row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
  }

  .input_col_2 .input_col {
    width: 50%;
  }

  .input_col_1 .input_col {
    width: 100%;
  }

  .input_col {
    width: 35em;
    display: flex;
    align-items: center;
    padding: 0 10px;
  }
}
.form_01 {
  padding: 25px 20px;
  border: solid 1px #c2c2c2;
  width: 100%;
  background: #fff;
}
.form_01.form_01_radius {
  border-radius: 10px;
}
.form_01 dl {
  width: 100%;
  margin-bottom: 25px;
}
.form_01 dt, .form_01 dd {
  line-height: 1.6;
  font-size: 1.2rem;
}
.form_01 dt {
  margin-bottom: 6px;
}
.form_01 .must {
  margin-left: 10px;
  color: #fff;
  font-size: 1rem;
  background: #d90000;
  padding: 0 10px 1px;
}
.form_01 .submit {
  margin-top: 40px;
  text-align: center;
}
.form_01 .submit input {
  transition: opacity 150ms linear;
}
.form_01 .submit input:hover {
  opacity: .8;
}
@media (min-width: 900px) {
  .form_01 {
    padding: 45px 40px;
  }
  .form_01 dl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 25px;
  }
  .form_01 dt, .form_01 dd {
    padding: 0 20px;
    font-size: 1.4rem;
  }
  .form_01 dt {
    width: 220px;
    margin-bottom: 0;
  }
  .form_01 dd {
    width: calc(100% - 220px);
    padding-left: 10px;
  }
  .form_01 dl.aligntop {
    align-items: flex-start;
  }
  .form_01 dl.aligntop dt {
    padding-top: 5px;
  }
  .form_01 .must {
    margin-left: 10px;
    color: #fff;
    font-size: 1.2rem;
    background: #d90000;
    padding: 0 10px;
  }
}

/*
  form_02
*/
.form_02 .form_row {
  display: flex;
  flex-wrap: wrap;
}
.form_02 .form_col {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 15px;
}
.form_02 .submit {
  margin-top: 10px;
  text-align: center;
}
.form_02 .submit input {
  transition: opacity 150ms linear;
}
.form_02 .submit input:hover {
  opacity: .8;
}
@media (min-width: 900px) {
  .form_02 .form_row {
    margin-left: -15px;
    margin-right: -15px;
  }
  .form_02 .form_col {
    padding-left: 15px;
    padding-right: 15px;
    margin-bottom: 30px;
  }
  .form_02 .form_col.form_col--2 {
    width: 50%;
  }
  .form_02 .submit {
    margin-top: 0;
  }
}

/* ---------------------------------------------------------
  utility style 例外スタイル
--------------------------------------------------------- */
.u_block {
  display: block !important;
}

.u_inline {
  display: inline !important;
}

.u_inlineblock {
  display: inline-block !important;
}

.u_boxshadow {
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
}

.u_clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.u_show_sp {
  display: block;
}

.u_hide_sp {
  display: none;
}

@media (min-width: 900px) {
  .u_show_pc {
    display: block;
  }

  .u_hide_pc {
    display: none;
  }
}
.u_fcolor {
  color: #d90000;
}

.u_fweight300 {
  font-weight: 300 !important;
}

.u_fweight400 {
  font-weight: 400 !important;
}

.u_fweight500 {
  font-weight: 500 !important;
}

.u_fweight600 {
  font-weight: 600 !important;
}

.u_fweight700 {
  font-weight: 700 !important;
}

.u_fitalic {
  font-style: italic !important;
}

.u_alignleft {
  text-align: left !important;
}

.u_alignright {
  text-align: right !important;
}

.u_aligncenter {
  text-align: center !important;
}

@media (min-width: 900px) {
  .u_alignleft_pc {
    text-align: left !important;
  }

  .u_alignright_pc {
    text-align: right !important;
  }

  .u_aligncenter_pc {
    text-align: left !important;
  }
}
.u_mt0 {
  margin-top: 0px;
}

.u_mr0 {
  margin-right: 0px;
}

.u_ml0 {
  margin-left: 0px;
}

.u_mb0 {
  margin-bottom: 0px;
}

.u_mt10 {
  margin-top: 10px;
}

.u_mr10 {
  margin-right: 10px;
}

.u_ml10 {
  margin-left: 10px;
}

.u_mb10 {
  margin-bottom: 10px;
}

.u_mt20 {
  margin-top: 20px;
}

.u_mr20 {
  margin-right: 20px;
}

.u_ml20 {
  margin-left: 20px;
}

.u_mb20 {
  margin-bottom: 20px;
}

.u_mt30 {
  margin-top: 30px;
}

.u_mr30 {
  margin-right: 30px;
}

.u_ml30 {
  margin-left: 30px;
}

.u_mb30 {
  margin-bottom: 30px;
}

.u_mt40 {
  margin-top: 40px;
}

.u_mr40 {
  margin-right: 40px;
}

.u_ml40 {
  margin-left: 40px;
}

.u_mb40 {
  margin-bottom: 40px;
}

.u_mt50 {
  margin-top: 50px;
}

.u_mr50 {
  margin-right: 50px;
}

.u_ml50 {
  margin-left: 50px;
}

.u_mb50 {
  margin-bottom: 50px;
}
.form_01 .submit input {
    transition: opacity 150ms linear;
    background: #000;
}