@charset "utf-8";
/* =======================================================================================



RESET



======================================================================================= */
html, body { margin: 0 auto; padding: 0; font-family: sans-serif; line-height: 1.6; word-wrap: break-word; overflow-wrap: break-word; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
*, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
a { -webkit-text-decoration-skip: objects; }
a:hover { -webkit-tap-highlight-color: rgba(0,0,0,0); }
a:hover img { text-decoration: none; }
a:focus, *:focus { outline: none; }
a:active, a:hover { outline-width: 0; }
abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; }
address, dfn { font-style: normal; }
audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }
audio:not([controls]) { display: none; height: 0; }
a, address, article, aside, b, button, dd, details, dl, dt, fieldset, figcaption, figure, footer, h1, h2, h3, h4, h5, h6, header, input, legend, li, main, nav, optgroup, p, section, select, summary, textarea, [type="checkbox"], [type="radio"] { margin: 0; padding: 0; }
b { font-weight: inherit; }
button, h1, h2, h3, h4, h5, h6, input, legend, optgroup, select, textarea { font-size: inherit; font-weight: inherit; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
button, input { overflow: visible; cursor: pointer; }
button, select { text-transform: none; }
fieldset { border: none; }
hr { overflow: visible; height: 0; box-sizing: content-box; }
img { max-width: 100%; height: auto; border-style: none; background: transparent; vertical-align: bottom; -webkit-backface-visibility: hidden; -ms-interpolation-mode: bicubic; backface-visibility: hidden; }
mark { background: transparent; color: inherit; }
ol, ul { margin: 0; }
progress { vertical-align: baseline; }
q:before { margin-left: -1.3em; padding-right: .3em; }
sub, sup { line-height: 0; vertical-align: baseline; }
sub { bottom: -.25em; }
sup { top: -.5em; }
svg:not(:root) { overflow: hidden; }
textarea { overflow: auto; }
[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-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-input-placeholder { color: inherit; opacity: .6; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
/* =======================================================================================



REDEFINITION



======================================================================================= */
html, body, input, select, select *, textarea { font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; }

html, body { background: #f5f6f7; color: #2b2b2b; }
html, body, *::placeholder { font-size: 16px; }
.mbl input { font-size: 16px; }

a { color: #03c; }
a:hover { text-decoration: none; }

b { display: inline-block; }

i { font-style: normal; }

iframe { border: 0; }

/* =======================================================================================



Google Fonts

Noto Sans JP: CSS class for a variable style
// <weight>: Use a value from 100 to 900
// <uniquifier>: Use a unique and descriptive class name

.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}



======================================================================================= */
.noto-sans-jp-300 {
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
}
.box p,
.more_btn,
.t5th_box figcaption small,
.t5th_box figcaption p,
.t6th_box li,
.footer_menu_box dd,
.low_tbl1 td,
.form_tbl td,
.noto-sans-jp-400 {
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
#nav2 li strong,
.mv_ttl small,
.mv_ttl strong,
.tlead_unit p,
.ttl_box b,
.t1st_box strong,
.t1st_box h3,
.t5th_box figcaption strong,
.t6th_box p,
.low1st_ttl small,
.lowttl_box dd,
.low_tbl1 th,
.form_tbl th,
.noto-sans-jp-700 {
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
.tlead_txt1,
.tlead_txt2,
.ttl_box small,
.noto-sans-jp-900 {
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
}

.poppins-light {
  font-family: Poppins, sans-serif;
  font-weight: 300; /* Light */
  font-style: normal;
}

.poppins-regular {
  font-family: Poppins, sans-serif;
  font-weight: 400; /* Regular */
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500; /* Medium */
  font-style: normal;
}

.low1st_ttl strong,
.lowttl_box dt,
.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600; /* SemiBold */
  font-style: normal;
}

#nav2 li small,
.ttl_box em,
.ttl_box strong,
.t4th_box h3,
.footer_menu_box dt,
.poppins-bold {
  font-family: Poppins, sans-serif;
  font-weight: 700; /* Bold */
  font-style: normal;
}

.poppins-black {
  font-family: Poppins, sans-serif;
  font-weight: 900;/* Black */
  font-style: normal;
}
/* =======================================================================================



Z-INDEX



======================================================================================= */
#loading { z-index: 81; }
#quick,
#quick2 { z-index: 80; }

#menu { z-index: 72; }
#sup,
#masthead { z-index: 71; }
#headfix { z-index: 70; }

#overlay,
#overlay2 { z-index: 61; }
#backToTop { z-index: 60; }

#footer { z-index: 44; }
#main { z-index: 43; }
#underlay { z-index: 42; }
/* =======================================================================================



LAYOUT



======================================================================================= */
#header,
#main,
#footer { position: relative; clear: both; width: 100%; min-width: 280px; margin: 0 auto; }
/* =======================================================================================



jQuery



======================================================================================= */
.jq_phone { /* jQueryで使用 電話番号 スマホの場合aとtelリンク付与 例：<span class="jq_phone">012-3456-7890</span> */ }
.jq_phone_img { /* jQueryで使用 電話番号 スマホの場合aとtelリンク付与 例：<span class="jq_phone_img"><img src="/assets/img/tel.png" title="012-3456-7890" alt=""></span> */ }
.jq_align_parent { /* jQueryで使用 高さを揃える親要素 */ }
.jq_align_child { /* jQueryで使用 高さを揃える子要素 */ }
.jq_ahref { /* jQueryで使用 a hrefを持つ子要素を持つ親もリンクに対応 例：<div class="jq_ahref"><p></p><a href=""></a></div> */ }
.jq_ahref_each { /* jQueryで使用 上記の複数ある場合にまとめて指定する場合 例：<ul class="jq_ahref_each"><li><a href=""></a></li><li><a href=""></a></li></ul> */ }
.jq_datepicker { /* UIカレンダー用 */ }
/* =======================================================================================



Font Awesome
疑似要素
content: '\〇〇〇〇';
font: var(--fa-font-brands);
font: var(--fa-font-solid);
font: var(--fa-font-regular);
Unicode
HTML SOURCE⇒ value="&#x〇〇〇〇;&#160;"


======================================================================================= */
[class*="_ico"],
[class*="_ico"]:before,
[class*="_ico"]:after,
.more_btn:after
.prev:before,
.next:before,
li:has(input.prev, input.next):before,
.form .ttl:before { font-family: 'Font Awesome 6 Free'; display: inline-block; text-rendering: auto; -webkit-font-smoothing: antialiased; }

.brands_ico:before { font: var(--fa-font-brands); content: '\f392'; font-weight: 400; }
.regular_ico:before { font: var(--fa-font-regular); content: '\f392'; font-weight: 400; }

.more_btn:after,
.prev:before,
.next:before,
li:has(input.prev, input.next):before,
.form .ttl:before,
.solid_ico:before { font: var(--fa-font-solid); font-weight: 900; }

.more_btn:after { content: '\f105'; }

.prev:before,
li:has(input.prev):before { content: '\f104'; }
.next:before,
li:has(input.next):before { content: '\f105'; }

.form .ttl.flag:before { content: '\f078'; }
.form .ttl:before { content: '\f077'; }
/* =======================================================================================



ANIMATION (ABOVE THE FOLD)



======================================================================================= */
#anime_first { /* jQueryで使用 アニメーション開始の先頭要素に記述 */ }
#anime_first_fade { opacity: 0; }
#anime_first.flag #anime_first_fade {
  animation-name: animeFirstFade;
  animation-duration: 1s;
  animation-timing-function: ease-in;
  animation-iteration-count: 1;
  animation-fill-mode: both;
}
@keyframes animeFirstFade {
  to { opacity: 1; }
}

#anime_first #anime_first_bottomUp { opacity: 0; }
#anime_first.flag #anime_first_bottomUp {
  animation-name: animeFirstBottomUp;
  animation-duration: .8s;
  animation-timing-function: ease;
  animation-fill-mode: both;
}
@keyframes animeFirstBottomUp {
  from {
    transform: translate3d(0,4%,0);
  }
  to { opacity: 1;
    transform: translate3d(0,0,0);
  }
}
/* =======================================================================================



HEADER



======================================================================================= */
header,
#masthead { position: relative; }

#header,
#headfix,
#masthead { min-height: 64px; }

#headfix { position: fixed; top: 0; left: 0; width: 100%; }

#masthead { display: flex; background-color: transparent; }

#masthead,
#mv_unit { max-width: 2000px; margin-right: auto; margin-left: auto; }

#header.scroll #masthead { background-color: rgba(255,255,255,.7); }
#masthead h1 { display: inline-block; max-width: 240px; margin-right: auto; margin-left: 16px; /*padding-top: 6px;*/ padding-top: 16px; padding-right: 16px; }
#masthead h1 a { color: #2b2b2b; text-decoration: none; }
#masthead h1 small { display: block; }
#masthead h1 small:before { content: ''; }

/* MENU */
#menu2 { overflow-y: auto; position: fixed; top: 0; right: 0; max-width: 400px; width: 90%; height: 100%; padding: 88px 0 40px; background-color: white; text-align: center; transform: translate3d(100%,0,0); }
#menu2:not(.toggle) { transition: all .2s linear; }
#menu2.open { box-shadow: 0 8px 8px dimgray; transform: translate3d(0,0,0); }

#nav2 { }
#nav2 ol,
#nav2 ul { list-style: none; display: flex; padding: 0; flex-direction: column; }
#nav2 ol { }
#nav2 ol li { margin-bottom: 24px; }
#nav2 ul {}
#nav2 ul li { height: 120px; }
#nav2 li a { position: relative; display: flex; height: 100%; padding-bottom: 16px; flex-direction: column; justify-content: center; text-decoration: none; line-height: 1; transition: all .2s linear; white-space: nowrap; }
#nav2 ol li a { padding-right: 16px; padding-left: 16px; color: #3e4443; }
#nav2 ul li a { width: 100%; color: #fff; }
#nav2 ul li:first-child a { background-color: #a69f94; }
#nav2 ul li:first-child a:hover { background-color: #c9c1b5; }
#nav2 ul li:last-child a { background-color: #2b2b2b; }
#nav2 ul li:last-child a:hover { background-color: #666; }
#nav2 li small { display: block; margin-bottom: 8px; font-size: 10px; }
#nav2 li strong { position: relative; display: block; font-size: 15px; }
#nav2 li i { position: absolute; right: 0; bottom: 24px; left: 0; margin: auto; }

#quick2 { position: fixed; top: 4px; right: 4px; width: 48px; }
#switch2 { position: fixed; top: 4px; right: 16px; width: 56px; height: 56px; background-color: transparent; text-align: center; vertical-align: middle; cursor: pointer; will-change: transform; }
#switch2 i { position: absolute; top: 10px; left: 4px; width: 48px; height: 36px; background-color: transparent; }
#switch2 span { position: absolute; right: 0; width: 100%; height: 4px; background-color: #000; transition: all .2s linear; }
#switch2 span:first-child { top: 0; }
#switch2 span:first-child + span { top: 50%; transform: translateY(-50%); }
#switch2 span:first-child + span + span { bottom: 0; }
#switch2.scroll span,
#switch2.flag span { background-color: black; }
#switch2.flag { background-color: transparent; }
#switch2.flag span:first-child { transform: translateY(16px) rotate(-45deg); }
#switch2.flag span:first-child + span { opacity: 0; }
#switch2.flag span:first-child + span + span { transform: translateY(-16px) rotate(45deg); }

#overlay2 { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; }
#overlay2.flag { display: block; }

#underlay {}
/* =======================================================================================



CHANGE MENU'S LAYOUT



======================================================================================= */
@media screen and (min-width: 880px) {
#header,
#headfix,
#masthead { min-height: 120px; }

#masthead h1 { max-width: none; /*padding-top: 24px;*/ padding-top: 40px; }

#menu2 { position: relative; top: auto; right: auto; overflow: visible; width: auto; max-width: none; height: auto; padding: 0; background-color: transparent; text-align: left; transform: none; }

#nav2 { display: flex; }
#nav2 ol,
#nav2 ul { flex-direction: row; height: 120px; }
#nav2 li a { text-align: center; }
#nav2 ol li { margin-bottom: 0; }
#nav2 ul li a { width: 110px; }
#nav2 ol li a strong:before { opacity: 0; position: absolute; right: 0; bottom: -8px; left: 0; width: 100%; height: 2px; background-color: #3e4443; transition: all .2s linear; content: ''; }
#nav2 ol li a:hover strong:before { opacity: 1; }

#switch2 { display: none; }
}

@media screen and (min-width: 960px) {

}


@media screen and (min-width: 1280px) {
#masthead h1 { margin-left: 40px; }
#nav2 ol li a { padding-right: 32px; padding-left: 32px; }
#nav2 ul li a { width: 120px; }
}
/* =======================================================================================



LAYOUT



======================================================================================= */
main { position: relative; }
#main,
#footer { filter: none; }
#main.flag,
#footer.flag { filter: blur(2px); }
article:after,
section:after { display: block; clear: both; content: ''; }
/* パネル */
.panel { overflow: hidden; max-width: 1200px; margin: auto; padding: 0 24px; }
@media screen and (min-width: 1248px) {
.panel { padding: 0; }
}
@media screen and (min-width: 2000px) {
.panel { max-width: 1600px; }
}
/* =======================================================================================



FIRST VIEW



======================================================================================= */
#mv_unit { overflow: hidden; position: relative; margin: auto; }
.mv_ttl { position: absolute; top: 30%; left: 16px; letter-spacing: .05em; }
.mv_ttl small,
.mv_ttl strong { display: inline-block; padding: 0 .25em; background-color: #fff; }
.mv_ttl small { font-size: clamp(0.813rem, 0.699rem + 0.57vw, 1.125rem); }
.mv_ttl span { display: block; height: 8px; }
.mv_ttl strong { font-size: clamp(1.25rem, 0.795rem + 2.27vw, 2.5rem); }
.mv_img1 { min-height: 360px; height: 40vh; margin-left: 80px; background-image: url("../img/mv_img4.jpg"); background-position: right top; background-repeat: no-repeat; background-size: cover; transition: all .2s linear; }
.mv_img2 { margin-top: -4px; text-align: right; }
.mv_img2 img { width: 56%; }

.tlead_unit { padding: 40px 0 8%; text-align: center; }
.tlead_txt1,
.tlead_txt2 { display: inline-block; padding: .25em;  background-color: #fff; font-size: clamp(1.125rem, 0.716rem + 2.05vw, 2.25rem); line-height: 1; }
.tlead_txt1 { }
.tlead_img { padding: 8px; }
.tlead_txt2 { margin-bottom: 1em; }
.tlead_unit p { line-height: 2; }
.tlead_unit p + p { margin-top: 1.5em; }

@media screen and (min-width: 560px) {
.mv_img1 { min-height: 460px; height: 56vh; }
}
@media screen and (min-width: 640px) {
.mv_img1 { background-image: url("../img/mv_img3.jpg"); }
}
@media screen and (min-width: 880px) {
.mv_ttl { left: 40px; }
.mv_img1 { background-image: url("../img/mv_img2.jpg"); }
.mv_img2 { margin-top: -10px; }
.mv_img2 img { width: auto; }
}
@media screen and (min-width: 1408px) {
.mv_img1 { min-height: 560px; background-image: url("../img/mv_img1.jpg"); background-size: contain; }
.mv_ttl { left: 64px; }
}
@media screen and (min-width: 2000px) {
.mv_img1 { height: 80vh; margin-left: 160px; background-size: cover; }
.mv_ttl small { font-size: 32px; }
.mv_ttl strong { font-size: 56px; }
.mv_img2 img { width: 264px; }

}
/* =======================================================================================



COMPONENT



======================================================================================= */
/* 文字色指定 */
.attn,
.err { color: #e74c3c !important; }

@media screen and (min-width: 320px) {

}

@media screen and (min-width: 640px) {

}
/* =======================================================================================



MODULE

_header(要素・コンテンツの上部)
_body(要素・コンテンツの本文)
_footer(要素・コンテンツの下部)
  _unit (ひとまとまり article,section)
    _panel (パネル(section))
    _dsp (jQuery用 表示/非表示)
      _box (最小単位のレイアウトボックス(div,dl))
        _inner (boxに対してのインナー)
          _tbl (table)

          _list (ol,ul)
          _card_box (ol,ul)
            _card (li)
            _item (dt,dd,li)

            _ttl (タイトル,dt)
            _lead (リード文)
            _txt (テキスト)
            _ico (アイコン)
            _img (画像)
            _bnr (バナー)
            _btn (ボタン)
            _col (列)
            _row (行)


======================================================================================= */
.box { list-style: none; padding: 0; }
.box p { line-height: 1.8; }

/* ボタン */
[class*="_btn"] { position: relative; display: inline-block; overflow: hidden; height: 56px; margin: auto; padding-right: 1em; padding-left: 1em; border: none; line-height: 1; text-align: center; vertical-align: middle; text-decoration: none !important; cursor: pointer; transition: all .2s linear; }
a[class*="_btn"]:before { display: inline-block; width: 0; height: 100%; vertical-align: middle; content: ''; }
[class*="_btn"] [class*="fa-"] { padding-right: .4rem; }

/* 送信ボタン */
.submit_btn,
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { background-color: #1551a1; color: #ecf0f1; text-shadow: 0 -1px 0 #04284c; }
.submit_btn:hover { background-color: #0b3368; color: #fff; text-shadow: none; }
/* 通常ボタン */
.normal_btn { min-width: 240px; border-radius: 40px; background-color: #2b2b2b; color: #fff; font-size: 15px; }
.normal_btn:after { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); }
.normal_btn:hover { background-color: #666; }

/* もっと見るボタン */
.more_btn { min-width: 240px; border-radius: 40px; background-color: #2b2b2b; color: #fff; font-size: 15px; }
.more_btn:after { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); }
.more_btn:hover { background-color: #666; }


/* 進む戻るボタン */
.prev,
.next,
li:has(input.prev, input.next) { position: relative; }
.prev:before,
.next:before,
li:has(input.prev, input.next):before { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }

a.prev:before,
li:has(input.prev):before { left: 1em; }
a.next:before,
li:has(input.next):before { right: 1em; }

li:has(input.prev, input.next):before { color: #ecf0f1; }
li:hover:has(input.prev, input.next):before { color: #212529; }

.prev [class*="_btn"],
.next [class*="_btn"] { width: 100%; }

/* =======================================================================================



MAIN



======================================================================================= */
.ttl_box > dd { padding-top: 1%; }
.ttl_box em,
.ttl_box b { font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem); }
.ttl_box em { padding-right: 1em; }

.ttl_box strong { font-size: clamp(1.25rem, 0.159rem + 5.45vw, 4.25rem); letter-spacing: .05em; line-height: 1; }
.ttl_box small { font-size: clamp(0.813rem, 0.29rem + 2.61vw, 2.25rem);  }

.ttl_box dd p br,
.t1st_box dd p br,
.t3rd_box dt p br,
.t5th_box p br { display: none; }

.t1st_unit,
.t2nd_unit,
.t3rd_unit,
.t4th_unit,
.t5th_unit,
.t6th_unit { padding: 6% 0; }

.t1st_unit { background-color: #fff; }
.t1st_box strong { font-size: clamp(1.125rem, 0.852rem + 1.36vw, 1.875rem); }
.t1st_box dt img { vertical-align: text-top; margin: -2px 8px 0; }
.t1st_box h3 { margin-bottom: .5em; font-size: clamp(1rem, 0.864rem + 0.68vw, 1.375rem); }
.t1st_box.pt1,
.t1st_box.pt2 { margin: 8% auto; }
.t1st_box.pt1 { }
.t1st_box.pt1 figure div { margin: 4% 0; }
.t1st_box.pt2 { flex-direction: column-reverse; }
.t1st_box.pt2.r {  }
.t1st_box.pt2 figure img { width: 100%; }
.t1st_box.pt2 dt { padding: 1% 0; }
.t1st_box.pt2 dd { }

.t1st_box.pt2.r { }

figcaption.btn_box { padding: 2% 0 0; text-align: center; }

.t2nd_box { padding: 4% 0 0; }
.t2nd_box div { text-align: center; }


.t3rd_unit { background-color: #fff; }
.t3rd_unit .ttl_box .box { }
.t3rd_box { text-align: center; }
.t3rd_img.pt1 { padding: 4% 0 1.5%; }
.t3rd_box .box { display: flex; margin-bottom: 4%; text-align: left; align-items: flex-end; justify-content: center; }
.t3rd_box .box dt { padding-right: 4%; }
.t3rd_box .box dd { }


.t4th_box { display: flex; flex-wrap: wrap; list-style: none; padding: 0; }
.t4th_box li { padding: 2% 0; flex-basis: 50%; }
.t4th_box h3 { padding: 2% 0 0; letter-spacing: .01em; }


.t5th_unit { background-color: #fff; }
.t5th_box { display: flex; flex-wrap: wrap; list-style: none; padding: 0; }
.t5th_box li { padding: 2% 0; flex-basis: 50%; }
.t5th_box figcaption { padding: 2% 0 4%; }
.t5th_box figcaption strong { display: block; font-size: 18px; }
.t5th_box figcaption small { display: block; font-size: 14px; }
.t5th_box figcaption p { font-size: 15px; }

.t6th_box { padding-top: 4%; }
.t6th_box dt { position: relative; width: 100%; padding-top: 56.25%;/* 16:9のアスペクト比 */ height: 0; }
.t6th_box dt iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.t6th_box { display: flex; flex-wrap: wrap; }
.t6th_box address { font-size: 18px; margin-bottom: 1em; }
.t6th_box .box { list-style: none; margin-top: 1em; padding: 0; }

@media screen and (min-width: 480px) {
.t4th_box { margin: 0 -28px; }
.t4th_box li { padding-right: 28px; padding-left: 28px; }

.t5th_box { margin: 0 -24px; }
.t5th_box li { padding-right: 24px; padding-left: 24px; }
}

@media screen and (min-width: 640px) {
.ttl_box .box { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; }
.ttl_box .box dt { padding-right: 4%; }
.ttl_box dd p br,
.t1st_box dd br,
.t3rd_box dt p br { display: inline; }

.t1st_box.pt1 { display: flex; }
.t1st_box.pt1 > dt,
.t1st_box.pt1 > dd { min-height: 360px; display: flex; flex-wrap: wrap; align-content: center; }
.t1st_box.pt1 > dt { flex-basis: 55%; padding-right: 5%; }
.t1st_box.pt1 > dd { flex-basis: 45%; background-color: #f5f6f7; border-left: 2px solid #2b2b2b; }
.t1st_box.pt1 dl p { margin-right: 10%; }

.t1st_box.pt2 dt,
.t1st_box.pt2 dd { display: flex; flex-wrap: wrap; align-content: center; }

.t1st_box.pt2 dl p { margin-top: 1em; }

.t1st_box.pt2 { display: flex; flex-direction: row; }
.t1st_box.pt2.r { flex-direction: row-reverse; }
.t1st_box.pt2 > dd,
.t1st_box.pt2.r > dt { flex-basis: 46%; }
.t1st_box.pt2 > dt,
.t1st_box.pt2.r > dd { flex-basis: 52%; }

.t1st_box.pt2:not(.r) > dt { padding-right: 4%; }
.t1st_box.pt2.r > dt { padding-left: 4%; }

.t2nd_unit .ttl_box .box { flex-direction: column; align-items: flex-start; }
.t2nd_unit .ttl_box .box dd,
.t3rd_unit .ttl_box .box dd { padding-top: 1em; }

figcaption .more_btn { min-width: 260px; }

.t4th_box li { flex-basis: calc(100% / 3); }
}

@media screen and (min-width: 960px) {
.t5th_box li { flex-basis: calc(100% / 4); }
.t5th_box p br { display: inline; }

.t6th_box { align-items: center; flex-wrap: nowrap; }
.t6th_box dt,
.t6th_box dd { flex-basis: 50%; }
.t6th_box dt { padding-top: 50%; }
.t6th_box dd { padding-left: 4%; }
}

@media screen and (min-width: 2000px) {
.t3rd_img.pt1 img { max-width: 1200px; width: 100%; }
.t2nd_box div img { width: 100%; }
}
/* =======================================================================================



BACK TO THE TOP



======================================================================================= */
#backToTop { display: none; position: fixed; right: 8px; bottom: 8px; }
#backToTop span { display: block; width: 32px; height: 32px; margin: auto; padding-left: 1px; border: 1px solid #999; border-radius: 50%; color: #999; font-size: 20px; font-family: Arial; text-align: center; line-height: 30px; vertical-align: middle; cursor: pointer; }
#backToTop span *,
#backToTop span:after,
#backToTop span:hover {
-webkit-transition: all .2s ease-in;
        transition: all .2s ease-in;
}
#backToTop span:after { content: '△'; }
#backToTop span:hover { background-color: #999; color: #fff; }
/* =======================================================================================



FOOTER



======================================================================================= */
footer { position: relative; }
#footer { padding-top: 10%; }
.footer_menu_box { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; list-style: none; max-width: 640px; margin: auto; padding: 0; }
.footer_menu_box li { flex-basis: calc(100% / 2); }
.footer_menu_box li a { display: flex; flex-direction: column; justify-content: center; height: 80px; }
.footer_menu_box dt { font-size: 10px; }
.footer_menu_box dd { font-size: 15px; }
.footer_menu_box a { color: #3e4443; text-decoration: none; text-align: center; }

#copyright { color: #999; font-size: small; text-align: center; line-height: 48px; /* #backToTopの高さ分を確保 */ vertical-align: middle; }

@media screen and (min-width: 400px) {
.footer_menu_box li { flex-basis: calc(100% / 4); }
}
/* =======================================================================================



LOWER



======================================================================================= */
.low1st_unit { padding: 1.2em 0 1em; background-color: #2b2b2b; color: #fff; }
.low1st_ttl small { display: block; font-size: 15px; }
.low1st_ttl strong { font-size: clamp(1.125rem, 0.625rem + 2.5vw, 2.5rem); letter-spacing: .05em; }

.low2nd_unit { padding: 4% 0; }

.lowttl_box { margin-bottom: 2.5%; text-align: center; }
.lowttl_box dt { color: #92dd3a; }
.lowttl_box dd { font-size: clamp(1.125rem, 0.784rem + 1.7vw, 2.063rem); }
/* =======================================================================================



TABLE



======================================================================================= */
/* テーブル ※デフォルトはseparate */
[class*="_tbl"] { width: 100%; margin: 0 auto; border-collapse: collapse; border-spacing: 0; }

[class*="_tbl"] .omit { overflow: hidden; max-width: 112px; text-overflow: ellipsis; white-space: nowrap; }

/* 横長テーブル用 スマホ時に横スクロールバー */
.tbl_box { margin-bottom: 1rem; overflow-x: auto; white-space: nowrap; animation-fill-mode: both; }
.tbl_box::-webkit-scrollbar { height: 24px;/* tableにスクロールバーを追加 */ }
.tbl_box::-webkit-scrollbar-track { background: #f1f1f1;/* tableにスクロールバーを追加 */ }
.tbl_box::-webkit-scrollbar-thumb { background-color: #bcbcbc;/* tableにスクロールバーを追加 */ }

.low_tbl1 th,
.low_tbl1 td { padding: 1em; border: 2px solid #f5f6f7; }
.low_tbl1 th { background-color: #2b2b2b; color: #fff; font-size: 15px; }
.low_tbl1 th + th { background-color: #c1bbb4; color: #2b2b2b; text-align: left;  }
.low_tbl1 td { background-color: #fff; }

.form_tbl th,
.form_tbl td { display: block; padding: 1em; border: 4px solid #f5f6f7; }
.form_tbl th { background-color: #2b2b2b; color: #fff; font-size: 15px; text-align: left; padding-right: 2em; padding-left: 2em; }
.form_tbl th + th { background-color: #c1bbb4; color: #2b2b2b; text-align: left;  }
.form_tbl td { background-color: #fff; }
.form_tbl textarea { height: 320px; }

@media screen and (min-width: 880px) {
.form_tbl th,
.form_tbl td { display: table-cell; }
.form_tbl th { white-space: nowrap; width: 3%; }
}

@media screen and (min-width: 1280px) {
.tbl_box { white-space: normal; }
}
/* =======================================================================================



FORM PARTS



======================================================================================= */
input[type="text"], input[type="search"], input[type="radio"], input[type="tel"], input[type="time"], input[type="url"], input[type="week"], input[type="password"], input[type="checkbox"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], select, textarea { border: 1px solid #adb8c3; 
box-shadow: 0 1px 2px rgba(0,0,0,.07) inset; transition: border-color .4s ease-in-out; }
input[type="text"]:focus, input[type="search"]:focus, input[type="radio"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input[type="password"]:focus, input[type="checkbox"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, select:focus, textarea:focus { border-color: #666; box-shadow: 0 0 3px #ccc; }
input[readonly="readonly"] { background-color: #eee; color: #eee; cursor: not-allowed; }
input[type="radio"] { border: none; box-shadow: none; }
input, select, textarea { padding: .5em; }
textarea { display: block; }
input[type="checkbox"],
input[type="radio"], input[type="radio"]:focus { margin: -.2em .5em 0; vertical-align: middle; }
input[type="checkbox"] { vertical-align: text-top; }
label input[type="checkbox"] { vertical-align: middle; }
input[type="radio"], input[type="radio"]:focus, input[type="checkbox"], input[type="checkbox"]:focus { box-shadow: none; }
label { vertical-align: middle; cursor: pointer; }

.btn_box { text-align: center; }
.desc { color:#475569; margin-bottom: 1.5rem; }
.hint { font-size: .9rem; color:#64748b; }
.actions { margin-top: 1.6rem; }
[class*="_btn"]:disabled { opacity:.5; cursor:not-allowed; }
input[type="text"], input[type="email"], textarea { width: 100%; }
input[type="text"]:disabled { background-color: #ddd; }
.note { display: block; margin-top: 1em; font-size:.85rem; color:#64748b; text-align: center; }
.required { color:#ef4444; margin-left:.2rem;}
.hp-wrap { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; } /* honeypot */
/* =======================================================================================



OVERWRITE



======================================================================================= */
a:hover b,
a b { text-decoration: inherit; }
