@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100;0,200;0,300;0,400;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap");
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
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,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  background: transparent;
  border: 0;
  font-size: 100%;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

body {
  line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  background: transparent;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs
*/
hr {
  border: 0;
  border-top: 1px solid #cccccc;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

ul li,
ol li {
  list-style: none;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

button,
input,
textarea,
select {
  font: inherit;
}

/*
 * 色の設定
 */
/*
 * BEM関連
 */
/*
 * clearfix
 */
html {
  font-size: 2.5641025641vw;
  min-height: 100vh;
  -webkit-overflow-scrolling: touch;
  -webkit-text-size-adjust: 100%;
}
@media screen and (min-width: 781px) {
  html {
    font-size: 0.6944444444vw;
  }
}
@media screen and (min-width: 1441px) {
  html {
    font-size: 10px;
  }
}

body {
  background-color: #ffffff;
  box-sizing: border-box;
  color: #222222;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  -webkit-font-smoothing: antialiased;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.8;
  scroll-behavior: smooth;
  width: 100%;
}
@media screen and (min-width: 781px) {
  body {
    padding-left: 23.2rem;
  }
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

.font_josefin {
  font-family: "Josefin Sans", sans-serif;
}

.font_kozuka {
  font-family: "Kozuka Gothic Pr6N", sans-serif;
}

.font_yugo {
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
}

.font_yumin {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

.font_hirasan {
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴシック", Meiryo, メイリオ, sans-serif;
}

.font_hiramin {
  font-family: "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
}

.font_hirakaku {
  font-family: "HiraKakuProN-W3", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ Pro W3", "HiraKakuPro-W3", "HiraKakuProN-W6", "ヒラギノ角ゴ ProN W6", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS Pgothic", "Osaka", sans-serif, Helvetica, Helvetica Neue, Arial, Verdana;
}

.font_hel {
  font-family: Helvetica, Helvetica Neue, sans-serif;
}

.font_meirio {
  font-family: "メイリオ", "Meiryo", "ＭＳ ゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 500;
}

img {
  height: auto;
  max-width: 100%;
  vertical-align: bottom;
}

header,
nav,
main,
footer,
small,
button,
label {
  display: block;
}

a,
button {
  cursor: pointer;
  max-width: 100%;
  text-decoration: none;
}

button:hover,
button:active {
  opacity: 0.8;
  outline: 0;
  text-decoration: none;
}

input,
button,
textarea,
select {
  border-radius: 0;
  margin: 0;
  outline: none;
  padding: 0;
}

a:hover,
a:active {
  opacity: 0.8;
  outline: 0;
  text-decoration: none;
}

::-webkit-input-placeholder {
  color: #a5a5a5;
}

:-ms-input-placeholder {
  color: #a5a5a5;
}

::-moz-placeholder {
  color: #a5a5a5;
}

::-placeholder {
  color: #a5a5a5;
}

input,
button,
textarea,
select {
  background: #f2f2f2;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  margin: 0;
  outline: none;
  padding: 0;
}

input[type=checkbox] {
  cursor: pointer;
}

select {
  cursor: pointer;
}

.wrapper {
  overflow: hidden;
  width: 100%;
}

.containner {
  padding-bottom: 40px;
}
@media (min-width: 768px) {
  .containner {
    padding-bottom: 80px;
  }
}
.containner.is-pb_none {
  padding-bottom: 0;
}

.flex {
  display: flex;
}

.innerBox {
  margin: 0 auto;
  max-width: 39rem;
  padding: 4.8rem 1.2rem 6.4rem;
  width: 100%;
}
@media screen and (min-width: 781px) {
  .innerBox {
    max-width: calc(100.8rem + 4%);
    padding: 6.4rem 2% 8rem;
  }
}

.max-1024 {
  max-width: calc(102.4rem + 4%);
}

.max-848 {
  max-width: calc(84.8rem + 4%);
}

.min-620 {
  min-height: 620px;
}

.mb-30 {
  margin-bottom: 30px;
}

.bold {
  font-weight: bold;
}

.medium {
  font-weight: 500;
}

@media (min-width: 768px) {
  .display_to_mq {
    display: none;
  }
}

@media (min-width: 1024px) {
  .display_to_mq_m {
    display: none;
  }
}

.display_mq {
  display: none;
}
@media (min-width: 768px) {
  .display_mq.is-inline {
    display: inline;
  }
}
@media (min-width: 768px) {
  .display_mq.is-block {
    display: block;
  }
}

.display_mq_m {
  display: none;
}
@media (min-width: 1024px) {
  .display_mq_m.is-inline {
    display: inline;
  }
}
@media (min-width: 1024px) {
  .display_mq_m.is-block {
    display: block;
  }
}

.relative_wrap {
  position: relative;
}

.inline_block {
  display: inline-block;
}

.text_indent {
  padding-left: 1em;
  text-indent: -1em;
}

.font_mincho {
  font-family: "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", "Yu Mincho", "YuMincho", serif;
}

.font_gothic {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, メイリオ, arial, helvetica, sans-serif;
}

.c_pink {
  color: #f29c9f;
}

.post_cnt iframe {
  display: block;
  margin: 0 auto;
  max-width: 100%;
}

img.aligncenter {
  display: block;
  margin: 0 auto;
}

img.alignleft {
  display: block;
  margin-right: auto;
}

img.alignright {
  display: block;
  margin-left: auto;
}

input[type=submit],
input[type=button] {
  -webkit-appearance: button;
  appearance: button;
  border: none;
  border-radius: 0;
  -webkit-box-sizing: content-box;
  box-sizing: border-box;
}
input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
  display: none;
}
input[type=submit]::focus,
input[type=button]::focus {
  outline-offset: -2px;
}

.bg-red {
  background: #d33030;
}

.bg-orange {
  background: #e67500;
}

.c-green01 {
  color: #0a6629;
}

.c-pink01 {
  color: #f25c5c;
}

.c-red {
  color: #CC2929;
}

.sp-only {
  display: block;
}
@media screen and (min-width: 781px) {
  .sp-only {
    display: none;
  }
}

.pc-only {
  display: none;
}
@media screen and (min-width: 781px) {
  .pc-only {
    display: block;
  }
}

.bold {
  font-weight: bold;
}

.serif {
  font-family: "Noto Serif JP", "Shippori Mincho", "Yu Mincho", "MS PMincho", serif;
  -webkit-font-smoothing: antialiased;
}

.has-bg {
  position: relative;
}
.has-bg::before {
  background: url("../images/common/bg_left_sp.svg") no-repeat left top/contain;
  content: "";
  height: 100%;
  left: 0;
  max-width: 39rem;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 50%;
  z-index: -1;
}
.has-bg::after {
  background: url("../images/common/bg_right_sp.svg") no-repeat right bottom/contain;
  bottom: 0;
  content: "";
  height: 100%;
  max-width: 39rem;
  pointer-events: none;
  position: absolute;
  right: 0;
  width: 50%;
  z-index: -1;
}
@media screen and (min-width: 781px) {
  .has-bg::before {
    background-image: url("../images/common/bg_left.svg");
    max-width: 60.4rem;
  }
  .has-bg::after {
    background-image: url("../images/common/bg_right.svg");
    max-width: 60.4rem;
  }
}

#header {
  align-items: center;
  background: #ffffff;
  border-bottom: 1px solid #cccccc;
  display: flex;
  height: 5.2rem;
  left: 0;
  padding: 0.8rem 1.2rem;
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 1000;
}
@media screen and (min-width: 781px) {
  #header {
    display: none;
  }
}
#header .logo img {
  display: block;
  width: 12rem;
}
#header {
  /* ハンバーガーボタン修正版 */
}
#header #hamburger {
  background: none;
  border: none;
  cursor: pointer;
  display: block;
  height: 1.4rem;
  margin: 0 0.96rem;
  padding: 0;
  position: relative;
  width: 1.68rem;
  z-index: 1010;
}
#header #hamburger span {
  background: #111111;
  border-radius: 2px;
  display: block;
  height: 0.2rem;
  left: 0;
  position: absolute;
  transition: all 0.3s ease;
  width: 100%;
}
#header #hamburger span:nth-child(1) {
  top: 0;
}
#header #hamburger span:nth-child(2) {
  top: 0.6rem;
}
#header #hamburger span:nth-child(3) {
  top: 1.2rem;
}
#header #hamburger {
  /* メニューが開いている時（×印に変形） */
}
#header #hamburger.is-active span:nth-child(1) {
  top: 0.6rem;
  transform: rotate(45deg);
}
#header #hamburger.is-active span:nth-child(2) {
  opacity: 0;
  transform: translateX(-10px);
}
#header #hamburger.is-active span:nth-child(3) {
  top: 0.6rem;
  transform: rotate(-45deg);
}

@media screen and (max-width: 780px) {
  nav[role=navigation] {
    background: #ffffff;
    display: flex;
    flex-direction: column;
    height: calc(100vh - 5.2rem);
    left: 0;
    opacity: 0;
    overflow: hidden;
    position: fixed;
    top: 5.2rem;
    transition: opacity 0.3s ease, visibility 0.3s;
    visibility: hidden;
    width: 100%;
    z-index: 1005;
  }
  nav[role=navigation].is-open {
    opacity: 1;
    visibility: visible;
  }
  nav[role=navigation] ul {
    flex: 1;
    flex-shrink: 1;
    list-style: none;
    margin: 0;
    min-height: 0;
    -webkit-overflow-scrolling: touch;
    overflow-y: auto;
    padding: 0;
  }
  nav[role=navigation] ul li a {
    align-items: center;
    color: #222222;
    display: flex;
    font-size: 1.6rem;
    font-weight: bold;
    justify-content: space-between;
    padding: 1.6rem 2.4rem;
  }
  nav[role=navigation] ul li a::after {
    background-image: url("../images/common/icon_arw_grey.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: inline-block;
    height: 1.2rem;
    width: 0.6rem;
  }
  nav[role=navigation] ul li.has-sub > a::after {
    background-image: url("../images/common/icon_plus.svg");
    height: 1.4rem;
    width: 1.4rem;
  }
  nav[role=navigation] ul li.has-sub.is-open > a::after {
    background-image: url("../images/common/icon_minus.svg");
    height: 0.2rem;
  }
  nav[role=navigation] ul li ul {
    background: #f5f5f5;
    border-bottom: none;
    display: none;
  }
  nav[role=navigation] ul li ul li a {
    font-size: 1.5rem;
    font-weight: 500;
    padding: 1.4rem 2.4rem 1.4rem 4rem;
  }
  nav[role=navigation] ul li ul li a::after {
    background-image: url("../images/common/icon_arw_grey.svg");
  }
  nav[role=navigation] .nav-close-trigger {
    align-items: center;
    background: #000000;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    flex: 0 0 15.8rem;
    flex-direction: column;
    max-height: 15.8rem;
    opacity: 0.6;
    overflow: hidden;
    padding-top: 2rem;
  }
  nav[role=navigation] .nav-close-trigger::before {
    background-image: url("../images/common/icon_close.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: 1.258rem;
    width: 1.258rem;
  }
  nav[role=navigation] .nav-close-trigger span {
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.5;
    margin-top: 0.792rem;
  }
}
@media screen and (min-width: 781px) {
  nav[role=navigation] {
    display: block;
  }
  nav[role=navigation] ul {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    margin-top: 3.2rem;
  }
  nav[role=navigation] ul li a {
    align-items: center;
    color: #222222;
    display: flex;
    font-weight: 700;
    line-height: 1.5;
    padding: 0.4rem 0.8rem;
    transition: color 0.3s;
  }
  nav[role=navigation] ul li a:hover {
    color: #0a6629;
  }
  nav[role=navigation] ul li.is-current > a {
    padding-left: calc(0.8rem + 8px);
    position: relative;
  }
  nav[role=navigation] ul li.is-current > a::before {
    background-image: url("../images/common/icon_active.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    height: 8px;
    left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
  }
  nav[role=navigation] ul li.has-sub > a {
    justify-content: space-between;
  }
  nav[role=navigation] ul li.has-sub > a::after {
    background-image: url("../images/common/icon_plus.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: inline-block;
    height: 1.4rem;
    width: 1.4rem;
  }
  nav[role=navigation] ul li.has-sub.is-open > a::after {
    background-image: url("../images/common/icon_minus.svg");
    height: 0.2rem;
  }
  nav[role=navigation] ul li ul {
    background: #f6f6f6;
    display: none;
    gap: 0.8rem;
    margin: 0 -1.6rem;
    width: auto;
  }
  nav[role=navigation] ul li ul li a {
    color: #222222;
    font-weight: 500;
    padding: 0.8rem 0 0.8rem 3.2rem;
  }
  nav[role=navigation] ul li ul li a::before {
    display: none;
  }
  nav[role=navigation] ul li ul li a:hover {
    color: #0a6629;
    text-decoration: underline;
  }
  nav[role=navigation] .nav-close-trigger {
    display: none;
  }
}

/* 背景スクロール固定 */
body.nav-open {
  overflow: hidden;
}

#footer {
  border-top: 1px solid #ccc;
  padding: 3.2rem 0 2.4rem;
}
#footer .innerBox {
  max-width: 30.4rem;
  padding-bottom: 0;
  padding-top: 0;
}
@media screen and (min-width: 781px) {
  #footer .innerBox {
    max-width: calc(111.2rem + 4%);
  }
}
@media screen and (min-width: 781px) {
  #footer .innerBox div {
    display: flex;
    gap: 4.8rem;
  }
}
#footer .innerBox div img {
  max-width: 28rem;
  width: 100%;
}
#footer .innerBox div nav ul {
  display: grid;
  gap: 2.4rem 3.2rem;
  grid-template-columns: repeat(2, 10rem);
  justify-content: center; /* これで左右中央寄せになります */
  margin-left: 0;
  margin-top: 2.4rem;
}
@media screen and (min-width: 781px) {
  #footer .innerBox div nav ul {
    grid-template-columns: repeat(5, 10rem);
    margin-top: 0;
  }
}
#footer .innerBox div nav ul li a {
  color: #000;
  font-weight: 500;
  margin-top: 0;
  text-align: left;
}
@media screen and (min-width: 781px) {
  #footer .innerBox div nav ul li a {
    font-weight: 500;
    text-align: left;
  }
}
#footer .innerBox div nav ul li a:hover {
  color: #0a6629;
}
@media screen and (min-width: 781px) {
  #footer .innerBox div nav .sp-only {
    display: none;
  }
}
#footer .innerBox div nav .pc-only {
  display: none;
}
@media screen and (min-width: 781px) {
  #footer .innerBox div nav .pc-only {
    border-bottom: 1px solid #ccc;
    display: grid;
    padding-bottom: 2.4rem;
  }
}
#footer .innerBox ul {
  display: flex;
  gap: 3.2rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  #footer .innerBox ul {
    justify-content: unset;
    margin-left: 32.8rem;
  }
}
#footer .innerBox ul li a {
  color: #000;
  display: block;
  font-weight: normal;
  margin-top: 2.4rem;
  text-align: center;
}
#footer .innerBox ul li a:hover {
  color: #0a6629;
}
#footer .innerBox ul li .pc-only {
  display: none;
}
@media screen and (min-width: 781px) {
  #footer .innerBox ul li .pc-only {
    display: block;
  }
}
#footer small {
  border-top: 1px solid #ccc;
  display: block;
  font-size: 1.2rem;
  font-weight: 300;
  margin-top: 2.4rem;
  padding-top: 2.4rem;
  text-align: center;
}
#footer small.pc-only {
  display: none;
}
@media screen and (min-width: 781px) {
  #footer small.sp-only {
    display: none;
  }
  #footer small.pc-only {
    border: none;
    display: block;
    margin-left: 32.8rem;
    margin-top: 1.6rem;
    padding-top: 0;
    text-align: left;
  }
}

#sidebar {
  display: none;
}
@media screen and (min-width: 781px) {
  #sidebar {
    background: #ffffff;
    border-right: 1px solid #cccccc;
    display: block;
    display: flex;
    flex-direction: column;
    height: 100%;
    left: 0;
    overflow-y: auto;
    padding: 1.6rem;
    position: fixed;
    top: 0;
    width: 23.2rem;
    z-index: 100;
  }
}

.bnrs {
  background: #084d1f;
}
.bnrs ul {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul {
    flex-direction: row;
    gap: 3.2rem;
    padding: 0 4.8rem;
  }
}
.bnrs ul li:first-of-type {
  background: url(../images/common/bnrs_bg01_sp.png) no-repeat center center/cover;
  border-radius: 0.8rem;
  padding: 0.8rem 1.2rem 1.2rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:first-of-type {
    background: url(../images/common/bnrs_bg01.png) no-repeat center center/cover;
    padding: 1.1rem 1.2rem;
    width: 32.3rem;
  }
}
.bnrs ul li:first-of-type span {
  display: block;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:first-of-type span {
    font-size: 2.4rem;
    line-height: 1.5;
  }
}
.bnrs ul li:first-of-type div {
  background: #fff;
  padding: 0.8rem 0.8rem 1.2rem 0.8rem;
}
.bnrs ul li:first-of-type div p {
  align-items: flex-end;
  color: #c8161d;
  display: flex;
  font-size: 3.2rem;
  gap: 0.8rem;
  justify-content: center;
  line-height: 1;
  max-height: 4.8rem;
}
.bnrs ul li:first-of-type div p span {
  color: #c8161d;
  display: contents;
  font-size: 1.4rem;
}
.bnrs ul li:first-of-type div p img {
  margin-bottom: 0.5rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:first-of-type div p img {
    height: 4.8rem;
    margin-bottom: 0;
    width: 4.8rem;
  }
}
.bnrs ul li:first-of-type div a {
  border-radius: 0.8rem;
  color: #fff;
  display: block;
  height: 3.7rem;
  line-height: 3.7rem;
  margin-top: 0.4rem;
  text-align: center;
  width: 100%;
}
.bnrs ul li:last-of-type {
  background: url(../images/common/bnrs_bg02_sp.png) no-repeat center center/cover;
  border-radius: 0.8rem;
  font-weight: bold;
  padding: 1.2rem 1.6rem 1.6rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:last-of-type {
    background: url(../images/common/bnrs_bg02.png) no-repeat center center/cover;
    padding: 2.3rem 2.05rem;
    width: 55.6rem;
  }
}
.bnrs ul li:last-of-type span {
  font-size: 1.6rem;
  max-width: 27.4rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:last-of-type span {
    font-size: 2rem;
    line-height: 1.5;
    max-width: 33.2rem;
  }
}
.bnrs ul li:last-of-type span .c-green01 {
  font-size: 2rem;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:last-of-type span .c-green01 {
    font-size: 2.4rem;
  }
}
.bnrs ul li:last-of-type a {
  border-radius: 0.8rem;
  color: #fff;
  display: block;
  height: 3.7rem;
  line-height: 3.7rem;
  margin-top: 0.8rem;
  max-width: 27.4rem;
  text-align: center;
  width: 100%;
}
@media screen and (min-width: 781px) {
  .bnrs ul li:last-of-type a {
    margin-top: 1.2rem;
    max-width: 33.2rem;
  }
}

.newsList {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (min-width: 781px) {
  .newsList {
    gap: 2rem;
  }
}
.newsList li {
  width: 99%;
}
.newsList li {
  background: #fff;
  border-radius: 0.8rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  padding: 1.2rem;
}
@media screen and (min-width: 781px) {
  .newsList li {
    padding: 1.6rem;
  }
}
.newsList li a {
  color: #222;
  display: block;
  text-decoration: none;
}
.newsList li a figure {
  margin-bottom: 0.8rem;
}
.newsList li a figure img {
  height: auto;
  vertical-align: bottom;
  width: 100%;
}
.newsList li a .meta {
  align-items: center;
  display: flex;
  gap: 1.6rem;
  margin-top: 1.2rem;
}
.newsList li a .meta time {
  color: #666;
  font-size: 1.2rem;
}
.newsList li a .meta .cat {
  color: #0a6629;
  font-size: 1rem;
  font-weight: bold;
}
@media screen and (min-width: 781px) {
  .newsList li a .meta .cat {
    font-size: 1.4rem;
  }
}
.newsList li a .title {
  -webkit-box-orient: vertical;
  display: -webkit-box;
  font-size: 1.4rem;
  font-weight: bold;
  -webkit-line-clamp: 2;
  line-height: 1.5;
  margin-top: 0.8rem;
  overflow: hidden;
}
@media screen and (min-width: 781px) {
  .newsList li a .title {
    font-size: 1.6rem;
  }
}
.newsList li a .excerpt {
  -webkit-box-orient: vertical;
  display: -webkit-box;
  font-size: 1.2rem;
  -webkit-line-clamp: 3;
  line-height: 1.6;
  margin-top: 0.4rem;
  overflow: hidden;
}
@media screen and (min-width: 781px) {
  .newsList li a .excerpt {
    font-size: 1.4rem;
  }
}

.categoryList {
  min-width: 24.6rem;
}
.categoryList p {
  font-size: 2rem;
  font-weight: bold;
}
@media screen and (min-width: 781px) {
  .categoryList p {
    font-size: 2.4rem;
  }
}
.categoryList ul {
  display: flex;
  gap: 1.2rem;
  flex-wrap: wrap;
  margin-top: 2.4rem;
}
@media screen and (min-width: 781px) {
  .categoryList ul {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
  }
}
.categoryList ul li {
  align-items: center;
  background: #fff;
  border: 1px solid #2e9940;
  border-radius: 100px;
  display: flex;
  height: 3.6rem;
  justify-content: center;
  padding: 0.6rem 1.6rem;
  width: fit-content;
}
.categoryList ul li a {
  color: #2e9940;
}
.categoryList ul li:hover {
  background: #2e9940;
  color: #fff;
}
.categoryList ul li:hover a {
  color: #fff;
}

.faq {
  background: #edf2ee;
}
.faq ul {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin: 3.2rem auto 0;
  max-width: 80rem;
  padding: 0 1.2rem;
}
.faq ul li {
  background: #fff;
  border-radius: 0.8rem;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
  overflow: hidden;
}
.faq ul li button {
  align-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  font-weight: 400;
  letter-spacing: 0;
  padding: 1.6rem;
  text-align: left;
  width: 100%;
}
.faq ul li button img:first-child {
  margin-right: 1.2rem;
  width: 1.5rem;
}
@media screen and (min-width: 781px) {
  .faq ul li button img:first-child {
    width: auto;
  }
}
.faq ul li button img:last-child {
  margin-left: auto;
  transition: transform 0.3s ease;
  width: 2rem;
  transform: rotate(0) !important;
}
@media screen and (min-width: 781px) {
  .faq ul li button img:last-child {
    width: auto;
  }
}
.faq ul li button span {
  max-width: 25.6rem;
}
@media screen and (min-width: 781px) {
  .faq ul li button span {
    max-width: unset;
  }
}
.faq ul li hr {
  display: none;
  margin: 0 auto 1.6rem;
  width: calc(100% - 2.4rem);
  border-style: dashed;
}
.faq ul li > div {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.faq ul li > div > p {
  color: #333;
  font-size: 1.6rem;
  line-height: 1.8;
  margin: 0;
  overflow: hidden;
  padding: 0 1.6rem;
  background: transparent;
  align-items: flex-start;
  display: flex;
  font-weight: 400;
  letter-spacing: 0;
}
.faq ul li > div > p img:first-child {
  margin-right: 1.2rem;
  width: 1.5rem;
  margin-top: 0.7rem;
  flex-shrink: 0;
}
@media screen and (min-width: 781px) {
  .faq ul li > div > p img:first-child {
    margin-top: 1rem;
    width: auto;
  }
}
.faq ul li.is-open button img:last-child {
  transform: rotate(180deg) !important;
}
.faq ul li.is-open hr {
  display: block;
}
.faq ul li.is-open > div {
  grid-template-rows: 1fr;
}
.faq ul li.is-open > div > p {
  padding: 0 1.6rem 1.6rem;
}

.o-ttl01 {
  font-size: 2.4rem;
  line-height: 1.5;
  margin: 0 auto;
  text-align: center;
  width: fit-content;
}
@media screen and (min-width: 781px) {
  .o-ttl01 {
    font-size: 3.2rem;
  }
}
.o-ttl01 .c-green01:first-of-type, .o-ttl01 .c-green01.mod {
  align-items: center;
  display: flex;
  font-size: 2rem;
  gap: 0.8rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  .o-ttl01 .c-green01:first-of-type, .o-ttl01 .c-green01.mod {
    font-size: 2.4rem;
  }
}
.o-ttl01 .c-green01:first-of-type::before, .o-ttl01 .c-green01.mod::before {
  background: url("../images/common/icon_slash_l.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  .o-ttl01 .c-green01:first-of-type::before, .o-ttl01 .c-green01.mod::before {
    height: 2rem;
    width: 1.3rem;
  }
}
.o-ttl01 .c-green01:first-of-type::after, .o-ttl01 .c-green01.mod::after {
  background: url("../images/common/icon_slash_r.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  .o-ttl01 .c-green01:first-of-type::after, .o-ttl01 .c-green01.mod::after {
    height: 2rem;
    width: 1.3rem;
  }
}
.o-ttl01 .c-green01:last-of-type {
  font-size: 3.2rem;
  line-height: 0;
}
@media screen and (min-width: 781px) {
  .o-ttl01 .c-green01:last-of-type {
    font-size: 4.4rem;
  }
}

.o-ttl02 {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}
@media screen and (min-width: 781px) {
  .o-ttl02 {
    font-size: 3.2rem;
  }
}

#top section:not(.kv) .btn {
  align-items: center;
  background: #fff;
  border: 1px solid #0a6629;
  border-radius: 100px;
  color: #222;
  display: flex;
  font-weight: 500;
  gap: 1.1rem;
  height: 4rem;
  justify-content: center;
  margin: 3.2rem auto 0;
  padding: 0.6rem 2.4rem 0.8rem;
  transition: background 0.2s ease, color 0.2s ease;
  width: fit-content;
}
#top section:not(.kv) .btn img {
  height: 1rem;
  margin-top: 0.2rem;
  transition: filter 0.2s ease;
  width: 0.617rem;
}
#top section:not(.kv) .btn:hover {
  background: #0a6629;
  color: #fff;
}
#top section:not(.kv) .btn:hover img {
  filter: brightness(0) invert(1);
}

.ctas {
  display: none;
}
.ctas a {
  align-items: center;
  border-radius: 0.4rem;
  color: #fff;
  display: flex;
  font-weight: 700;
  gap: 0.4rem;
  transition: opacity 0.3s;
}
.ctas a:hover {
  opacity: 0.9;
}
@media screen and (min-width: 781px) {
  .ctas {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    margin-top: 0.8rem;
  }
  .ctas a {
    font-size: 1.4rem;
    height: 3.6rem;
    padding: 0.6rem 0.8rem;
    position: relative;
    width: 20rem;
  }
  .ctas a span {
    text-align: center;
  }
  .ctas a img:first-child {
    height: auto;
    width: 2rem;
  }
  .ctas a img:last-child {
    height: 1rem;
    position: absolute;
    right: 1.5rem;
    width: auto;
  }
}
@media screen and (min-width: 781px) {
  .ctas.fixed {
    flex-direction: column;
    gap: 0.4rem;
    position: fixed;
    right: 0;
    top: 25.8rem;
    z-index: 100;
  }
}
.ctas.fixed a {
  border-radius: 0.8rem 0 0 0.8rem;
  flex-direction: column;
  font-size: 1.2rem;
  height: auto;
  padding: 1.2rem;
  width: 4rem;
}
.ctas.sp {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  margin: 2.4rem 0;
}
.ctas.sp a {
  font-size: 1.4rem;
  height: 3.7rem;
  justify-content: center;
  padding: 0.8rem 1.2rem;
  width: 16.7rem;
}
.ctas.sp a img {
  width: 1.667rem;
}

.bg-orangeShadow {
  background: #d96c00;
  box-shadow: 0 0.4rem 0 #994d00;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.bg-orangeShadow:hover {
  box-shadow: none;
  transform: translateY(0.4rem);
}

.bg-redShadow {
  background: #cc2929;
  box-shadow: 0 0.4rem 0 #991f1f;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.bg-redShadow:hover {
  box-shadow: none;
  transform: translateY(0.4rem);
}

a,
button {
  cursor: pointer;
}
a img[src*=arw],
button img[src*=arw] {
  transition: transform 0.2s ease;
}
a img[src*=icon_]:not([src*=arw]),
button img[src*=icon_]:not([src*=arw]) {
  transition: transform 0.4s ease;
}
a:hover img[src*=arw],
button:hover img[src*=arw] {
  transform: translateX(0.3rem);
}
a:hover img[src*=arw][src*=down],
button:hover img[src*=arw][src*=down] {
  transform: translateY(0.3rem);
}
a:hover img[src*=icon_]:not([src*=arw]),
button:hover img[src*=icon_]:not([src*=arw]) {
  animation: shaken 0.6s ease;
}

@keyframes shaken {
  0% {
    transform: rotate(0deg);
  }
  15% {
    transform: rotate(3deg);
  }
  30% {
    transform: rotate(-2.5deg);
  }
  45% {
    transform: rotate(2deg);
  }
  60% {
    transform: rotate(-1.5deg);
  }
  75% {
    transform: rotate(1deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
#contact .btn.is-green {
  align-items: center;
  background: #0a6629;
  border: 1px solid #0a6629;
  border-radius: 100px;
  color: #fff;
  display: flex;
  font-weight: 500;
  gap: 1.1rem;
  height: 4rem;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease;
  width: fit-content;
  min-width: 20rem;
}
#contact .btn.is-white {
  align-items: center;
  background: #fff;
  border: 1px solid #0a6629;
  border-radius: 100px;
  color: #0a6629;
  display: flex;
  font-weight: 500;
  gap: 1.1rem;
  height: 4rem;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease;
  width: fit-content;
  min-width: 20rem;
}

.tel {
  align-items: center;
  display: flex;
  gap: 0.4rem;
  margin-left: 4rem;
  margin-right: 0.8rem;
  white-space: nowrap;
}
.tel img {
  height: auto;
  width: 3rem;
}
.tel div {
  line-height: 0;
}
.tel div span {
  align-items: baseline;
  display: flex;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
}
.tel div span span {
  font-size: 1rem;
}
.tel div a {
  color: #222222;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}
@media screen and (min-width: 781px) {
  .tel {
    margin-left: 0;
    margin-right: 0;
    margin-top: 4.8rem;
    padding-bottom: 1.2rem;
  }
  .tel div span {
    font-size: 1rem;
  }
  .tel div span span {
    font-size: 1.2rem;
  }
  .tel div a {
    font-size: 2.3rem;
  }
  .tel img {
    width: 3.4rem;
  }
}

.card {
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.card:hover {
  box-shadow: 0 0.8rem 2.4rem rgba(0, 0, 0, 0.08);
  transform: translateY(-0.3rem);
}

.o-pageHeader {
  align-items: center;
  background: url(../images/common/pageheader_bg.png) no-repeat center/cover;
  display: flex;
  height: 12rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  .o-pageHeader {
    min-height: 18rem;
  }
}
.o-pageHeader h1 {
  color: #fff;
  font-size: 2.8rem;
  font-weight: bold;
}
@media screen and (min-width: 781px) {
  .o-pageHeader h1 {
    font-size: 4rem;
  }
}

.nav-links {
  align-items: center;
  display: flex;
  gap: 2rem;
  justify-content: center;
  margin-top: 4.8rem;
}
@media screen and (min-width: 781px) {
  .nav-links {
    gap: 4rem;
  }
}
.nav-links .page-numbers {
  align-items: center;
  color: #222;
  display: flex;
  font-size: 1.8rem;
  height: 4rem;
  justify-content: center;
  text-decoration: none;
  width: 4rem;
}
.nav-links .page-numbers.current {
  background: #0a6629;
  border-radius: 50%;
  color: #fff;
  font-weight: bold;
}
.nav-links .page-numbers.dots {
  background: none;
  color: #222;
  font-size: 1.8rem;
  pointer-events: none;
}
.nav-links .page-numbers.next, .nav-links .page-numbers.prev {
  background: none;
  position: relative;
  text-indent: -9999px;
  width: 3.2rem;
}
.nav-links .page-numbers.next::after, .nav-links .page-numbers.prev::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  display: block;
  height: 1.2rem;
  left: 50%;
  position: absolute;
  text-indent: 0;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.6rem;
}
@media screen and (min-width: 781px) {
  .nav-links .page-numbers.prev {
    margin-right: 4rem;
  }
}
.nav-links .page-numbers.prev::after {
  background-image: url("../assets/images/common/icon_arw_passive.svg");
  transform: translate(-50%, -50%) rotate(180deg);
}
@media screen and (min-width: 781px) {
  .nav-links .page-numbers.next {
    margin-left: 4rem;
  }
}
.nav-links .page-numbers.next::after {
  background-image: url("../assets/images/common/icon_arw_black.svg");
}

.slide__content {
  margin-bottom: 0.8rem;
}
.slide__content img {
  width: 100%;
}
.slide__paging {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0 1rem;
}
.slide__paging .prev, .slide__paging .next {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #003e5b;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 1.2rem;
  flex-shrink: 0;
}
.slide__paging .prev img, .slide__paging .next img {
  height: 1.2rem;
}
.slide__paging .images {
  display: flex;
  gap: 0.9rem;
}
.slide__paging .images img {
  width: calc((100% - 1.8rem) / 3);
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.slide__paging .images img.is-active {
  opacity: 0.5;
}

#top .kv {
  background: url("../images/top/kv_sp.jpg") no-repeat center/cover;
  height: 49.8rem;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #top .kv {
    background: unset;
    height: 66.2rem;
    margin-left: -23.2rem;
    overflow: hidden;
    width: 100vw;
  }
}
#top .kv div {
  display: none;
}
@media screen and (min-width: 781px) {
  #top .kv div {
    align-items: flex-end;
    display: flex;
    gap: 3.2rem;
    left: -1.4rem;
    position: absolute;
    top: 5.1rem;
    width: 100%;
    z-index: 0;
  }
}
@media screen and (min-width: 1441px) {
  #top .kv div {
    justify-content: center;
    left: calc(11.6rem + 50%);
    transform: translateX(-50%);
  }
}
#top .kv div img {
  max-height: 53.7rem;
}
#top .kv div img:nth-of-type(3) {
  max-height: 61.1rem;
}
#top .kv h2 {
  line-height: 0;
  margin: 0 auto;
  padding-top: 26rem;
  position: relative;
  width: fit-content;
  z-index: 10;
}
@media screen and (min-width: 781px) {
  #top .kv h2 {
    margin: 0;
    padding-left: 33.3rem;
    padding-top: 22.7rem;
  }
}
#top .kv h2 span {
  background: #fff;
  box-sizing: border-box;
  display: block;
  padding: 0 0.8rem;
  width: fit-content;
}
@media screen and (min-width: 781px) {
  #top .kv h2 span {
    padding: 0 1.2rem;
  }
}
#top .kv h2 span:first-of-type {
  font-size: 2.4rem;
  height: 3.5rem;
  line-height: 3.5rem;
}
@media screen and (min-width: 781px) {
  #top .kv h2 span:first-of-type {
    font-size: 3.6rem;
    height: 5.5rem;
    letter-spacing: -0.05em;
    line-height: 5.5rem;
    min-width: 39.6rem;
  }
}
#top .kv h2 span:first-of-type span {
  display: inline;
  font-size: 2rem;
  padding: 0;
}
@media screen and (min-width: 781px) {
  #top .kv h2 span:first-of-type span {
    font-size: 3.2rem;
  }
}
@media screen and (min-width: 781px) {
  #top .kv h2 span:nth-of-type(2) {
    min-width: 42.3rem;
  }
}
@media screen and (min-width: 781px) {
  #top .kv h2 span:nth-of-type(3) {
    min-width: 35.9rem;
  }
}
#top .kv h2 .c-green01 {
  color: #0a6629;
  display: block;
  font-size: 3.6rem;
  height: 4.7rem;
  line-height: 4.7rem;
}
@media screen and (min-width: 781px) {
  #top .kv h2 .c-green01 {
    font-size: 5.6rem;
    height: 7.5rem;
    line-height: 7.5rem;
  }
}
#top .kv h2 .c-green01 span {
  background: transparent;
  color: #222;
  display: inline;
  font-size: 3.2rem;
  padding: 0;
}
@media screen and (min-width: 781px) {
  #top .kv h2 .c-green01 span {
    font-size: 5.2rem;
  }
}
#top .kv .btn {
  align-items: center;
  border-radius: 0.4rem;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  height: 6.5rem;
  justify-content: center;
  line-height: 1.5;
  margin: 1.6rem auto 0;
  position: relative;
  width: 27.3rem;
  z-index: 10;
}
@media screen and (min-width: 781px) {
  #top .kv .btn {
    flex-direction: row;
    height: 4rem;
    margin-left: 33.3rem;
    margin-top: 1.6rem;
    width: 42.3rem;
  }
}
#top .kv .btn span {
  align-items: center;
  background: #fff;
  border-radius: 100px;
  color: #d96c00;
  display: flex;
  font-size: 1.4rem;
  justify-content: center;
  line-height: 1;
  min-height: 2.1rem;
  min-width: 10rem;
  padding: 0 0.8rem;
}
@media screen and (min-width: 781px) {
  #top .kv.has-bg::before {
    left: 23.2rem;
  }
}
@media screen and (min-width: 781px) {
  #top .concept .innerBox {
    max-width: 80rem;
    padding-left: 0;
    padding-right: 0;
  }
}
#top .concept h2 {
  background: url(../images/top/concept_ttl_bg_sp.png) no-repeat center/cover;
  line-height: 1.5;
  padding: 1.2rem;
}
@media screen and (min-width: 781px) {
  #top .concept h2 {
    background: url(../images/top/concept_ttl_bg.png) no-repeat center/cover;
    border-radius: 1.6rem;
    padding: 2.2rem 2.5rem;
  }
}
#top .concept h2 span:first-of-type {
  font-size: 1.3rem;
}
@media screen and (min-width: 781px) {
  #top .concept h2 span:first-of-type {
    font-size: 2rem;
  }
}
#top .concept h2 span:last-of-type {
  font-size: 1.8rem;
  margin-top: 0.4rem;
}
@media screen and (min-width: 781px) {
  #top .concept h2 span:last-of-type {
    font-size: 2.8rem;
  }
}
#top .concept h2 span:last-of-type span {
  font-size: 2rem;
}
@media screen and (min-width: 781px) {
  #top .concept h2 span:last-of-type span {
    font-size: 3.2rem;
  }
}
#top .concept p {
  letter-spacing: -0.02em;
  line-height: 1.8;
  margin-top: 1.6rem;
}
#top .plan {
  background: #edf2ee;
}
#top .plan .innerBox {
  padding-left: 2.4rem;
  padding-right: 2.4rem;
}
@media screen and (min-width: 781px) {
  #top .plan .innerBox {
    padding-left: 2%;
    padding-right: 2%;
  }
}
#top .plan ul {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(1, 1fr);
  margin-top: 3.2rem;
}
@media screen and (min-width: 781px) {
  #top .plan ul {
    grid-template-columns: repeat(4, 1fr);
    padding: 0;
  }
}
#top .plan ul li {
  background: #fff;
  border-radius: 0.8rem;
}
#top .plan ul li a .sp-only {
  display: flex;
  letter-spacing: 0;
  line-height: 1.5;
}
#top .plan ul li a .sp-only div {
  width: 100%;
}
#top .plan ul li a .sp-only img {
  width: 14rem;
}
#top .plan ul li a .sp-only img {
  border-radius: 0.8rem 0 0 0;
}
#top .plan ul li a .sp-only h3 {
  align-items: center;
  border-radius: 0 0.6rem 0 0;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 2.1rem;
  height: 5.7rem;
  justify-content: center;
}
#top .plan ul li a .sp-only h3 span {
  font-size: 1.4rem;
  font-weight: 500;
}
#top .plan ul li a .sp-only p {
  text-align: center;
}
#top .plan ul li a .sp-only p:first-of-type {
  color: #f25c5c;
  font-size: 2.8rem;
}
#top .plan ul li a .sp-only p:last-of-type {
  color: #666;
  font-size: 1.4rem;
}
@media screen and (min-width: 781px) {
  #top .plan ul li a .sp-only {
    display: none;
  }
}
@media screen and (min-width: 781px) {
  #top .plan ul li a .pc-only h3 {
    align-items: center;
    border-radius: 0.6rem 0.6rem 0 0;
    color: #fff;
    display: flex;
    flex-direction: column;
    font-size: 3.2rem;
    gap: 0.4rem;
    height: 8.8rem;
    justify-content: center;
    line-height: 1;
  }
  #top .plan ul li a .pc-only h3 span {
    font-size: 1.6rem;
    font-weight: 500;
  }
  #top .plan ul li a .pc-only img {
    margin-top: 1.6rem;
    padding: 0 1.6rem;
  }
  #top .plan ul li a .pc-only p {
    text-align: center;
  }
  #top .plan ul li a .pc-only p:first-of-type {
    color: #f25c5c;
    font-size: 3.2rem;
    margin-top: 0.4rem;
  }
  #top .plan ul li a .pc-only p:last-of-type {
    color: #666;
    font-size: 1.6rem;
    margin-top: -0.4rem;
    padding-bottom: 1.6rem;
  }
}
#top .plan ul li a p:has(img) {
  align-items: center;
  border-top: 1px solid #ccc;
  color: #444;
  display: flex;
  font-size: 1.4rem;
  font-weight: normal;
  gap: 0.4rem;
  justify-content: center;
  line-height: 2.4rem;
  padding: 0.4rem;
}
@media screen and (min-width: 781px) {
  #top .plan ul li a p:has(img) {
    color: #222;
    font-size: 1.6rem;
  }
}
#top .plan ul li:nth-of-type(1) {
  border: 1px solid #2e9940;
  box-shadow: 0 2px 0 0 #2e9940;
}
#top .plan ul li:nth-of-type(1) h3 {
  background: #2e9940;
}
#top .plan ul li:nth-of-type(2) {
  border: 1px solid #b25959;
  box-shadow: 0 2px 0 0 #b25959;
}
#top .plan ul li:nth-of-type(2) h3 {
  background: #b25959;
}
#top .plan ul li:nth-of-type(3) {
  border: 1px solid #6f679d;
  box-shadow: 0 2px 0 0 #6f679d;
}
#top .plan ul li:nth-of-type(3) h3 {
  background: #6f679d;
}
#top .plan ul li:nth-of-type(4) {
  border: 1px solid #99622e;
  box-shadow: 0 2px 0 0 #99622e;
}
#top .plan ul li:nth-of-type(4) h3 {
  background: #99622e;
}
#top .plan ul li:nth-of-type(5) {
  border: 1px solid #99992e;
  box-shadow: 0 2px 0 0 #99992e;
}
#top .plan ul li:nth-of-type(5) h3 {
  background: #99992e;
}
#top .plan ul li:nth-of-type(6) {
  border: 1px solid #2e9985;
  box-shadow: 0 2px 0 0 #2e9985;
}
#top .plan ul li:nth-of-type(6) h3 {
  background: #2e9985;
}
#top .plan ul li:nth-of-type(7) {
  border: 1px solid #2e6399;
  box-shadow: 0 2px 0 0 #2e6399;
}
#top .plan ul li:nth-of-type(7) h3 {
  background: #2e6399;
}
#top .plan .plan-bnr {
  aspect-ratio: 342/160;
  background: url(../images/plan/plan_bnr_sp.png) no-repeat center/cover;
  margin-top: 3.2rem;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #top .plan .plan-bnr {
    aspect-ratio: 800/160;
    background: url(../images/plan/plan_bnr.png) no-repeat center/cover;
    margin: 3.2rem auto 0;
    max-width: 80rem;
  }
}
#top .plan .plan-bnr a {
  color: #222;
  display: block;
  height: 100%;
  width: 100%;
}
#top .plan .plan-bnr a h2 {
  align-items: center;
  background: #fff;
  border-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  font-size: 2rem;
  height: 7.3rem;
  justify-content: center;
  left: 50%;
  line-height: 1.5;
  min-width: 26.1rem;
  position: absolute;
  top: 47%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 781px) {
  #top .plan .plan-bnr a h2 {
    font-size: 2.8rem;
    height: 5.6rem;
    min-width: 51.9rem;
  }
}
#top .plan .plan-bnr a h2 span {
  display: contents;
  font-size: 2.4rem;
}
#top .plan .plan-bnr a h2 span span:last-of-type {
  color: #0d6c80;
}
@media screen and (min-width: 781px) {
  #top .plan .plan-bnr a h2 span {
    font-size: 3.2rem;
  }
}
#top .plan .plan-bnr a p {
  align-items: center;
  background: #d96c00;
  border-radius: 0.4rem 0 0 0;
  border-radius: 1.6rem 0 0.8rem 0;
  bottom: 2rem;
  color: #fff;
  display: flex;
  font-size: 1.2rem;
  gap: 0.5rem;
  height: 2.2rem;
  justify-content: center;
  position: absolute;
  right: 0;
  width: 11.9rem;
}
#top .plan .plan-bnr a p img {
  height: 1rem;
  width: 0.617rem;
}
@media screen and (min-width: 781px) {
  #top .plan .plan-bnr a p {
    font-size: 1.4rem;
    height: 2.9rem;
    width: 15rem;
  }
}
#top .flow-news .flow .flex {
  display: block;
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .flex {
    display: flex;
    gap: 4rem;
  }
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .flex .left .o-ttl02 {
    text-align: left;
  }
}
#top .flow-news .flow .flex .left ul {
  border: 1px solid #ccc;
  border-radius: 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 1.6rem;
  padding: 1.2rem;
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .flex .left ul {
    padding: 1.2rem 1.6rem;
  }
}
#top .flow-news .flow .flex .left ul li {
  align-items: center;
  display: flex;
  gap: 0.828rem;
  letter-spacing: -0.02em;
}
#top .flow-news .flow .flex .left ul li img {
  height: 1.118rem;
  width: 1.544rem;
}
#top .flow-news .flow .flex .right ul {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin: 2.4rem auto 0;
  max-width: 24rem;
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .flex .right ul {
    display: grid;
    gap: 2.4rem;
    grid-template-columns: 29.6rem 1fr;
    margin: unset;
    max-width: unset;
  }
}
#top .flow-news .flow .flex .right ul li {
  display: flex;
  font-size: 2rem;
  gap: 0.8rem;
  white-space: nowrap;
}
#top .flow-news .flow .flex .right ul li img {
  height: 3.2rem;
  width: 3.2rem;
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .btn.sp-only {
    display: none;
  }
}
#top .flow-news .flow .btn.pc-only {
  display: none;
}
@media screen and (min-width: 781px) {
  #top .flow-news .flow .btn.pc-only {
    display: flex;
    margin: 2.4rem auto 0 0;
  }
}
#top .flow-news .news {
  margin-left: -1.2rem;
  margin-top: 6.4rem;
  overflow: hidden;
  width: 100vw;
}
@media screen and (min-width: 781px) {
  #top .flow-news .news {
    margin-left: 0;
    overflow: visible;
    width: auto;
  }
}
#top .flow-news .news .btn {
  margin-top: 0;
}
#top .flow-news .news .newsList {
  display: flex;
  gap: 0;
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
  padding: 2.4rem 0 3.2rem 1.6rem;
  scroll-padding-left: 1.6rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  width: 100%;
}
#top .flow-news .news .newsList::-webkit-scrollbar {
  display: none;
}
#top .flow-news .news .newsList::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  #top .flow-news .news .newsList {
    display: grid;
    gap: 1.6rem;
    grid-template-columns: repeat(4, 1fr);
    overflow-x: visible;
    scroll-padding-left: 0;
    scroll-snap-type: none;
    width: auto;
  }
  #top .flow-news .news .newsList::after {
    display: none;
  }
}
#top .flow-news .news .newsList li {
  flex-shrink: 0;
  margin-right: 1.6rem;
  padding: 1.6rem;
  scroll-snap-align: start;
  width: 23.8rem;
}
#top .flow-news .news .newsList li:last-of-type {
  margin-right: 0;
}
@media screen and (min-width: 781px) {
  #top .flow-news .news .newsList li {
    margin-right: 0;
    width: 100%;
  }
}
#top .flow-news .news .newsList li a .meta {
  margin-top: 0.8rem;
}
#top .flow-news .news .newsList li a .meta time {
  color: #222;
}
#top .flow-news .news .newsList li a .meta .cat {
  display: none;
}
#top .flow-news .news .newsList li a .title {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  margin-top: 0;
}
#top .flow-news .news .newsList li a .excerpt {
  display: none;
}

#error404 > *:not(.bnrs) {
  text-align: center;
}
#error404 h1:not(.bnrs *) {
  font-size: 6rem;
  margin-bottom: 1rem;
}
#error404 p:not(.bnrs *) {
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
}
#error404 .btn:not(.bnrs *) {
  margin-top: 2rem;
  display: inline-block;
  color: #222;
}
#error404 .btn:not(.bnrs *):hover {
  color: #0a6629;
  text-decoration: underline;
}

#columns .innerBox {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
@media screen and (min-width: 781px) {
  #columns .innerBox {
    flex-direction: row;
  }
}

#column .innerBox {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}
@media screen and (min-width: 781px) {
  #column .innerBox {
    flex-direction: row;
  }
}
#column .innerBox > div > .meta {
  align-items: center;
  display: flex;
  gap: 1.6rem;
}
#column .innerBox > div > .meta time {
  color: #808080;
  font-size: 1.2rem;
}
@media screen and (min-width: 781px) {
  #column .innerBox > div > .meta time {
    font-size: 1.4rem;
  }
}
#column .innerBox > div > .meta a {
  color: #1a7a82;
  font-size: 1.2rem;
  font-weight: bold;
  text-decoration: none;
}
@media screen and (min-width: 781px) {
  #column .innerBox > div > .meta a {
    font-size: 1.4rem;
  }
}
#column .innerBox > div > h2 {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.5;
  margin-top: 0.8rem;
}
#column .innerBox > div > figure {
  margin: 2.4rem 0;
}
#column .innerBox > div > figure img {
  display: block;
  height: auto;
  width: 100%;
}
#column .content {
  font-size: 1.2rem;
}
@media screen and (min-width: 781px) {
  #column .content {
    font-size: 1.4rem;
  }
}
#column .content h2 {
  font-size: 2.2rem;
  font-weight: bold;
  margin-top: 2.4rem;
}
@media screen and (min-width: 781px) {
  #column .content h2 {
    font-size: 2.4rem;
  }
}
#column .content h3 {
  font-size: 1.8rem;
  font-weight: bold;
  margin-top: 2.4rem;
}
@media screen and (min-width: 781px) {
  #column .content h3 {
    font-size: 2rem;
  }
}
#column .content h4 {
  font-size: 1.6rem;
  font-weight: bold;
  margin-top: 2.4rem;
}
#column .content p {
  margin-top: 0.8rem;
}
#column .content figure {
  margin: 2.4rem 0;
}
#column .related {
  margin-top: 3.2rem;
}
#column .related > p {
  font-size: 2.4rem;
}
@media screen and (min-width: 781px) {
  #column .related > p {
    font-size: 3.2rem;
    margin-top: 6.4rem;
  }
}
#column .related .newsList {
  margin-top: 1.6rem;
}
@media screen and (min-width: 781px) {
  #column .related .newsList {
    margin-top: 3.2rem;
  }
}

#flow .max-848 {
  padding-top: 3.2rem;
}
#flow .flow-checks {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  #flow .flow-checks {
    flex-direction: row;
    gap: 2.4rem;
  }
}
#flow .flow-checks li {
  align-items: center;
  display: flex;
  justify-content: flex-start;
  min-width: 25rem;
}
@media screen and (min-width: 781px) {
  #flow .flow-checks li {
    justify-content: center;
    min-width: unset;
  }
}
#flow .flow-checks li img {
  height: 1.118rem;
  margin-right: 0.828rem;
  width: 1.544rem;
}
#flow .flow-checks li span span {
  font-size: 2rem;
}
#flow .flowLists {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
  margin-top: 3.2rem;
}
#flow .flowLists p {
  font-size: 1.4rem;
  letter-spacing: 0;
}
@media screen and (min-width: 781px) {
  #flow .flowLists p {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
  }
}
#flow .flowLists h2 {
  background: #0a6629;
  color: #fff;
  font-size: 2rem;
  padding: 0.8rem 1.6rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists h2 {
    font-size: 2.4rem;
  }
}
#flow .flowLists > li > ul > li {
  background: #fff;
  border: 1px solid #0a6629;
  border-radius: 0.8rem;
  margin-top: 2.4rem;
  padding: 1.2rem;
  position: relative;
}
#flow .flowLists > li > ul > li::before {
  background: #0a6629;
  content: "";
  height: 2.6rem;
  left: 3.2rem;
  position: absolute;
  top: -2.6rem;
  width: 3.2rem;
  z-index: -1;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li {
    padding: 2.4rem;
  }
}
#flow .flowLists > li > ul > li h3 {
  align-items: center;
  display: flex;
  font-size: 1.8rem;
  font-weight: bold;
  gap: 0.4rem;
  justify-content: center;
  line-height: 1.5;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li h3 {
    font-size: 2.4rem;
    gap: 0.8rem;
    justify-content: flex-start;
  }
}
#flow .flowLists > li > ul > li h3 img {
  height: 2.9rem;
  width: 2.9rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li h3 img {
    height: 3.6rem;
    width: 3.6rem;
  }
}
#flow .flowLists > li > ul > li > div {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: 1rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div {
    flex-direction: row;
  }
}
#flow .flowLists > li > ul > li > div figure {
  margin: 0 auto;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div figure {
    margin: 0;
    max-width: 24rem;
  }
}
#flow .flowLists > li > ul > li > div > div {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
#flow .flowLists > li > ul > li > div > div h4 {
  font-size: 2.2rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div h4 {
    font-size: 2.4rem;
  }
}
#flow .flowLists > li > ul > li > div > div h4 span:not(.c-pink01) {
  font-size: 1.8rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div h4 span:not(.c-pink01) {
    font-size: 2rem;
  }
}
#flow .flowLists > li > ul > li > div > div .tel {
  align-items: center;
  display: flex;
  gap: 0.8rem;
  margin: 0 auto 0.8rem;
  padding-bottom: 0;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div .tel {
    gap: 1.6rem;
    margin: 0;
  }
}
#flow .flowLists > li > ul > li > div > div .tel img {
  width: 4.1rem;
}
#flow .flowLists > li > ul > li > div > div .tel > div {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div .tel > div {
    display: block;
  }
}
#flow .flowLists > li > ul > li > div > div .tel > div span {
  font-size: 1.4rem;
}
#flow .flowLists > li > ul > li > div > div .tel > div a {
  font-size: 3.2rem;
  line-height: 1.2;
}
#flow .flowLists > li > ul > li > div > div .tel > div::after {
  content: "※携帯電話からでもつながります。";
  font-size: 1.2rem;
  font-weight: normal;
  margin-top: 0.4rem; /* 上に隙間を作って下に配置 */
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div .tel > div::after {
    font-size: 1.6rem;
    margin-left: 0.4rem;
    margin-top: 0;
  }
}
#flow .flowLists > li > ul > li > div > div > div:not(.tel) {
  background: #f6f6f6;
  border-radius: 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.8rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div > div:not(.tel) {
    padding: 1.2rem 1.6rem;
  }
}
#flow .flowLists > li > ul > li > div > div > div:not(.tel) ul li {
  align-items: center;
  display: flex;
  font-size: 1.33rem;
  letter-spacing: 0;
}
#flow .flowLists > li > ul > li > div > div > div:not(.tel) ul li img {
  height: 1.118rem;
  margin-right: 0.4rem;
  scale: 0.9;
  width: 1.544rem;
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div > div:not(.tel) ul li img {
    font-size: 1.6rem;
    margin-right: 0.828rem;
  }
}
@media screen and (min-width: 781px) {
  #flow .flowLists > li > ul > li > div > div > div:not(.tel) ul li {
    font-size: 1.6rem;
  }
}
#flow .flowLists > li > ul > li > div .note {
  font-size: 1.4rem;
  font-weight: normal;
}

#bones section {
  margin-bottom: 4rem;
}
@media screen and (min-width: 781px) {
  #bones section {
    margin-bottom: 8rem;
  }
}
#bones section:last-child {
  margin-bottom: 0;
}
#bones section h2 {
  text-align: center;
  font-weight: 700;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
@media screen and (min-width: 781px) {
  #bones section h2 {
    font-size: 3.2rem;
    margin-bottom: 2.4rem;
  }
}
#bones section .table h3 {
  font-weight: 500;
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}
@media screen and (min-width: 781px) {
  #bones section .table h3 {
    font-size: 2rem;
    margin-bottom: 0.8rem;
  }
}
#bones section .table table {
  width: 100%;
}
#bones section .table table th {
  border: 1px solid #ccc;
  background-color: #f6f6f6;
  font-weight: 700;
  font-size: 1.4rem;
  padding: 1rem;
  line-height: 1.8;
  min-width: 8rem;
  text-align: left;
}
@media screen and (min-width: 781px) {
  #bones section .table table th {
    font-size: 1.6rem;
    padding: 1.6rem;
    min-width: 10.4rem;
  }
}
#bones section .table table td {
  border: 1px solid #ccc;
  background-color: #fff;
  font-weight: 500;
  font-size: 1.4rem;
  padding: 1rem;
  line-height: 1.8;
}
@media screen and (min-width: 781px) {
  #bones section .table table td {
    font-size: 1.6rem;
    padding: 1.6rem;
  }
}
#bones section .table table td b {
  font-weight: 500;
  font-size: 1.6rem;
}
@media screen and (min-width: 781px) {
  #bones section .table table td b {
    font-size: 2rem;
  }
}
#bones section .table table td span {
  display: block;
  text-indent: -1em;
  padding-left: 1em;
}
#bones section .table table td span::before {
  content: "・";
}
#bones section .table table td img {
  margin-top: 1.6rem;
}
#bones .sec2__content {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
}
#bones .sec2__content .slide {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #bones .sec2__content .slide {
    max-width: 31.8rem;
    width: 38%;
  }
}
#bones .sec2__content .table {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #bones .sec2__content .table {
    width: calc(62% - 2.5rem);
  }
}
#bones .sec3__content {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}
#bones .sec3__content .table {
  width: 100%;
}
#bones .sec3__content .table:not(:last-child) {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #bones .sec3__content .table:not(:last-child) {
    width: 49%;
  }
}

#about .sec1 {
  border: 1px solid #5eaa69;
  padding-top: 1.4rem;
  padding-bottom: 1.6rem;
  border-radius: 0.8rem;
  background-image: url(../../assets/images/about/bg.png);
  background-size: cover;
  margin-bottom: 2.4rem;
}
@media screen and (min-width: 781px) {
  #about .sec1 {
    margin-bottom: 3.2rem;
  }
}
#about .sec1 h3 {
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  background-color: #0a6629;
  padding: 0.2rem 2.4rem 0 1.5rem;
  width: fit-content;
  margin-bottom: 0.9rem;
  clip-path: polygon(100% 0, 97% 50%, 100% 100%, 0 100%, 0 0);
}
@media screen and (min-width: 781px) {
  #about .sec1 h3 {
    padding: 0.2rem 2.4rem 0 2.4rem;
  }
}
#about .sec1 h2 {
  font-size: 1.8rem;
  font-weight: 700;
  padding-left: 1.5rem;
}
@media screen and (min-width: 781px) {
  #about .sec1 h2 {
    font-size: 2.4rem;
    padding-left: 2.4rem;
  }
}
#about .sec1 p {
  padding: 0 1.5rem 0.8rem;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (min-width: 781px) {
  #about .sec1 p {
    padding: 0 2.4rem 0.8rem;
  }
}
#about .sec2__content table {
  width: 100%;
}
#about .sec2__content table tr {
  border-top: 1px solid #ccc;
}
#about .sec2__content table tr:last-child {
  border-bottom: 1px solid #ccc;
}
#about .sec2__content table th {
  font-weight: 500;
  text-align: left;
  font-size: 1.4rem;
  padding: 1rem 1.5rem;
  width: 9rem;
  vertical-align: top;
}
@media screen and (min-width: 781px) {
  #about .sec2__content table th {
    padding: 1.6rem 2.4rem;
    width: 14.8rem;
  }
}
#about .sec2__content table td {
  font-size: 1.4rem;
  padding: 1rem 0;
  font-weight: 400;
}
@media screen and (min-width: 781px) {
  #about .sec2__content table td {
    padding: 1.6rem 0;
  }
}
#about .sec2__content table td span {
  display: block;
  text-indent: -1em;
  padding-left: 1em;
}
#about .sec2__content table td .map-wrap {
  width: 100%;
  aspect-ratio: 16/9;
}
#about .sec2__content table td .map-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

#contact .innerBox > p {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
  margin-bottom: 2rem;
}
@media screen and (min-width: 781px) {
  #contact .innerBox > p {
    font-size: 1.6rem;
    margin-bottom: 3.2rem;
  }
}
#contact .form {
  background: #fff;
  border-radius: 0.8rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  padding: 2rem 1.6rem 4rem;
}
@media screen and (min-width: 781px) {
  #contact .form {
    padding: 3.2rem 2.4rem 6.4rem;
  }
}
#contact .form__header {
  display: flex;
  gap: 1.5rem;
  width: 100%;
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 781px) {
  #contact .form__header {
    margin-bottom: 3.2rem;
  }
}
#contact .form__header li {
  color: #999;
  background-color: #e6e6e6;
  font-size: 1.6rem;
  font-weight: 500;
  width: 33.3333333333%;
  text-align: center;
  position: relative;
  height: 4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
}
#contact .form__header li.current {
  color: #fff;
  background-color: #2e9940;
}
#contact .form__header li:nth-child(1) {
  z-index: 2;
}
#contact .form__header li:nth-child(1)::after {
  position: absolute;
  right: -1.4rem;
  top: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2rem 0px 2rem 1.5rem;
  border-color: transparent transparent transparent #2e9940;
}
#contact .form__header li:nth-child(2) {
  z-index: 1;
  margin-left: -1.1rem;
}
#contact .form__header li:nth-child(2)::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2rem 0px 2rem 1.5rem;
  border-color: transparent transparent transparent #fff;
}
#contact .form__header li:nth-child(2)::after {
  position: absolute;
  right: -1.4rem;
  top: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2rem 0px 2rem 1.5rem;
  border-color: transparent transparent transparent #e6e6e6;
}
#contact .form__header li:nth-child(2).current::after {
  border-color: transparent transparent transparent #2e9940;
}
#contact .form__header li:nth-child(3) {
  z-index: 0;
  margin-left: -1.1rem;
}
#contact .form__header li:nth-child(3)::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 2rem 0px 2rem 1.5rem;
  border-color: transparent transparent transparent #fff;
}
#contact .form__line {
  margin-bottom: 1px;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 781px) {
  #contact .form__line {
    flex-direction: row;
  }
}
#contact .form__line .label {
  background-color: #f6f6f6;
  font-weight: 700;
  padding: 1.6rem;
  font-size: 1.6rem;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #contact .form__line .label {
    width: 18rem;
  }
}
#contact .form__line .label .req {
  color: #fff;
  line-height: 1;
  font-size: 1.2rem;
  font-weight: 500;
  padding: 0.2rem 0.4rem 0.4rem;
  border-radius: 0.4rem;
  margin-left: 0.8rem;
  background-color: #c8161d;
}
#contact .form__line .label .req.opt {
  background-color: #808080;
}
#contact .form__line .input {
  padding: 1.6rem 0;
  flex-grow: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.6rem;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #contact .form__line .input {
    width: calc(100% - 18rem);
    padding: 1.6rem;
    padding-right: 0;
  }
}
#contact .form__line .input .order {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.6rem;
  width: 100%;
}
#contact .form__line .input .order:not(.order_1) {
  display: none;
}
#contact .form__line .input .order:not(.order_1).is-show {
  display: flex;
}
#contact .form__line .input dl {
  width: 100%;
}
#contact .form__line .input dl.half {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #contact .form__line .input dl.half {
    width: calc((100% - 1.6rem) / 2);
  }
}
#contact .form__line .input dl.third {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #contact .form__line .input dl.third {
    width: calc((100% - 1.6rem) / 3 * 2);
  }
}
#contact .form__line .input dl.fourth {
  width: 100%;
}
@media screen and (min-width: 781px) {
  #contact .form__line .input dl.fourth {
    width: calc((100% - 1.6rem) / 3 * 1);
  }
}
#contact .form__line .input dl.has-drop dd {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}
#contact .form__line .input dl.has-drop dd span {
  font-weight: 700;
}
#contact .form__line .input dl dt {
  font-size: 1.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
}
#contact .form__line .input dl dt .opt {
  color: #fff;
  line-height: 1;
  font-size: 1.2rem;
  font-weight: 500;
  padding: 0.4rem 0.4rem 0.6rem;
  border-radius: 0.4rem;
  margin-left: 0.8rem;
  background-color: #808080;
}
#contact .form__line .input dl dd .confirm-only {
  display: none;
}
#contact .form__line .input dl dd.has-text {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 0.8rem;
}
#contact .form__line .input dl dd.has-text input:not([type=checkbox]):not([type=radio]) {
  width: calc(100% - 0.8rem - 1.2em) !important;
}
#contact .form__line .input dl dd.has-text span:not(.error) {
  flex-shrink: 0;
  font-weight: 700;
}
#contact .form__line .input dl dd.has-text .error {
  width: 100%;
}
#contact .form__line .input dl dd.has-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 2.4rem;
  margin-bottom: 1.2rem;
}
#contact .form__line .input dl dd.has-radio.mod {
  flex-direction: column;
  gap: 0.8rem;
}
#contact .form__line .input dl dd.has-radio .mwform-radio-field {
  margin-left: 0 !important;
}
#contact .form__line .input dl dd.has-radio .mwform-radio-field label {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-weight: 500;
}
#contact .form__line .input dl dd.has-radio .mwform-radio-field label input {
  width: 2rem;
  height: 2rem;
  accent-color: #c8161d;
}
#contact .form__line .input dl dd.has-radio .mwform-radio-field label span {
  line-height: 2rem;
}
#contact .form__line .input input:not([type=checkbox]):not([type=radio]) {
  width: 100%;
  border-radius: 0.4rem;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 1rem;
  height: 4.8rem;
}
#contact .form__line .input select {
  flex-grow: 1;
  border-radius: 0.4rem;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 1rem;
  height: 4.8rem;
}
#contact .form__line .input textarea {
  width: 100%;
  border-radius: 0.4rem;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 1rem;
  font-family: "Noto Sans JP", sans-serif;
  resize: none;
  height: 20rem;
}
#contact .form__accept {
  margin-top: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}
@media screen and (min-width: 781px) {
  #contact .form__accept {
    margin-top: 6.4rem;
  }
}
#contact .form__accept label {
  line-height: 1;
}
#contact .form__accept input[type=checkbox] {
  height: 2rem;
  width: 2rem;
  margin: 0;
}
@media screen and (min-width: 781px) {
  #contact .form__accept input[type=checkbox] {
    height: 1.2rem;
    width: 1.2rem;
  }
}
#contact .form__accept .mwform-checkbox-field-text {
  display: none;
}
#contact .form__accept p {
  font-size: 1.2rem;
}
@media screen and (min-width: 781px) {
  #contact .form__accept p {
    font-size: 1.2rem;
  }
}
#contact .form__accept p a {
  color: #0066c0;
}
#contact .form__accept + .form__accept {
  margin-top: 0;
}
#contact .form__submit {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2rem 2.4rem;
}
@media screen and (min-width: 781px) {
  #contact .form__submit {
    margin-top: 2.4rem;
  }
}
#contact .form__subtext {
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 781px) {
  #contact .form__subtext {
    margin-bottom: 3.2rem;
  }
}
#contact .form__subtext p {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
}
@media screen and (min-width: 781px) {
  #contact .form__subtext p {
    font-size: 1.6rem;
  }
}
#contact .form__content.confirm .form__line .label .req {
  display: none;
}
#contact .form__content.confirm .form__line .input .half {
  width: fit-content;
}
#contact .form__content.confirm .form__line .input .js-order-add {
  display: none;
}
#contact .form__content.confirm .form__line .input dl.third {
  width: 100%;
}
#contact .form__content.confirm .form__line .input dl.fourth {
  width: 100%;
}
#contact .form__content.confirm .form__line .input dl dt {
  display: none;
}
#contact .form__content.confirm .form__line .input dl dd .confirm-only {
  display: inline-block;
}
#contact .form__content.confirm .form__line .input dl dd span {
  font-weight: 500;
}
#contact .form__content.confirm .form__line .input dl dd.has-radio {
  gap: 1.6rem;
}
#contact .form__content.confirm .form__line .input dl dd.note {
  display: none;
}
#contact .form__content.confirm .form__line .input dl dd .note {
  display: none;
}
#contact .form__content.confirm .form__line .input dl dd.has-zipcode::before {
  content: "〒";
}
#contact .form__content.confirm .form__accept {
  display: none;
}
#contact .form__content.confirm .form__submit {
  margin-top: 4rem;
}
@media screen and (min-width: 781px) {
  #contact .form__content.confirm .form__submit {
    margin-top: 6.4rem;
  }
}
#contact .form__complete h2 {
  text-align: center;
  color: #0a6629;
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 1.5;
  margin-bottom: 1em;
}
@media screen and (min-width: 781px) {
  #contact .form__complete h2 {
    font-size: 3.2rem;
  }
}
#contact .form__complete p {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
}
@media screen and (min-width: 781px) {
  #contact .form__complete p {
    font-size: 1.6rem;
  }
}
#contact .form__complete .btn {
  margin: 4rem auto 0;
}
@media screen and (min-width: 781px) {
  #contact .form__complete .btn {
    margin: 6.4rem auto 0;
  }
}
#contact .js-order-add {
  cursor: pointer;
  color: #0a6629;
  border: 1px solid #0a6629;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 3rem;
  width: 12.4rem;
  border-radius: 0.4rem;
  background-color: #fff;
  text-align: center;
}

#privacy section p {
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (min-width: 781px) {
  #privacy section p {
    font-size: 1.6rem;
  }
}
#privacy section p a {
  color: #0066c0;
}
#privacy section h2 {
  margin-top: 3rem;
  margin-bottom: 1rem;
  font-weight: 700;
  font-size: 1.8rem;
}
@media screen and (min-width: 781px) {
  #privacy section h2 {
    font-size: 2rem;
    margin-top: 4.8rem;
    margin-bottom: 1.6rem;
  }
}
#privacy section ol {
  padding-left: 1em;
  margin-top: 1rem;
}
@media screen and (min-width: 781px) {
  #privacy section ol {
    margin-top: 1.6rem;
  }
}
#privacy section ol + p {
  margin-top: 1rem;
}
@media screen and (min-width: 781px) {
  #privacy section ol + p {
    margin-top: 1.6rem;
  }
}
#privacy section ol li {
  list-style-type: decimal;
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (min-width: 781px) {
  #privacy section ol li {
    font-size: 1.6rem;
  }
}
#privacy section ol ol {
  padding-left: 1em;
  margin-top: 0;
}
#privacy section ol ol li {
  list-style-type: lower-alpha;
}

#plan .plan {
  background: #edf2ee;
}
#plan .plan .innerBox {
  padding-left: 2.4rem;
  padding-right: 2.4rem;
}
@media screen and (min-width: 781px) {
  #plan .plan .innerBox {
    padding-left: 2%;
    padding-right: 2%;
  }
}
#plan .plan .innerBox .o-ttl01 .c-green01.mod {
  align-items: center;
  display: flex;
  font-size: 2rem;
  gap: 0.8rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  #plan .plan .innerBox .o-ttl01 .c-green01.mod {
    font-size: 2.4rem;
  }
}
#plan .plan .innerBox .o-ttl01 .c-green01.mod::before {
  background: url("../images/common/icon_slash_l.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  #plan .plan .innerBox .o-ttl01 .c-green01.mod::before {
    height: 2rem;
    width: 1.3rem;
  }
}
#plan .plan .innerBox .o-ttl01 .c-green01.mod::after {
  background: url("../images/common/icon_slash_r.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  #plan .plan .innerBox .o-ttl01 .c-green01.mod::after {
    height: 2rem;
    width: 1.3rem;
  }
}
#plan .plan .innerBox .o-ttl01 .c-green01:last-of-type {
  font-size: 2rem;
  line-height: inherit;
}
@media screen and (min-width: 781px) {
  #plan .plan .innerBox .o-ttl01 .c-green01:last-of-type {
    font-size: 2.4rem;
  }
}
#plan .plan ul {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(1, 1fr);
  margin-top: 3.2rem;
}
@media screen and (min-width: 781px) {
  #plan .plan ul {
    grid-template-columns: repeat(4, 1fr);
    padding: 0;
  }
}
#plan .plan ul li {
  background: #fff;
  border-radius: 0.8rem;
}
#plan .plan ul li a .sp-only {
  display: flex;
  letter-spacing: 0;
  line-height: 1.5;
}
#plan .plan ul li a .sp-only div {
  width: 100%;
}
#plan .plan ul li a .sp-only img {
  width: 14rem;
}
#plan .plan ul li a .sp-only img {
  border-radius: 0.8rem 0 0 0;
}
#plan .plan ul li a .sp-only h3 {
  align-items: center;
  border-radius: 0 0.6rem 0 0;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 2.1rem;
  height: 5.7rem;
  justify-content: center;
  text-align: center;
}
#plan .plan ul li a .sp-only h3.mod {
  font-size: 1.8rem;
}
#plan .plan ul li a .sp-only h3 span {
  font-size: 1.4rem;
  font-weight: 500;
}
#plan .plan ul li a .sp-only p {
  text-align: center;
}
#plan .plan ul li a .sp-only p:first-of-type {
  color: #f25c5c;
  font-size: 2.8rem;
}
#plan .plan ul li a .sp-only p:last-of-type {
  color: #666;
  font-size: 1.4rem;
}
@media screen and (min-width: 781px) {
  #plan .plan ul li a .sp-only {
    display: none;
  }
}
@media screen and (min-width: 781px) {
  #plan .plan ul li a .pc-only h3 {
    align-items: center;
    border-radius: 0.6rem 0.6rem 0 0;
    color: #fff;
    display: flex;
    flex-direction: column;
    font-size: 3.2rem;
    gap: 0.4rem;
    height: 8.8rem;
    justify-content: center;
    line-height: 1;
    text-align: center;
  }
  #plan .plan ul li a .pc-only h3.mod {
    font-size: 2.4rem;
    line-height: 3.2rem;
  }
  #plan .plan ul li a .pc-only h3.mod span {
    line-height: 1;
  }
  #plan .plan ul li a .pc-only h3 span {
    font-size: 1.6rem;
    font-weight: 500;
  }
  #plan .plan ul li a .pc-only img {
    margin-top: 1.6rem;
    padding: 0 1.6rem;
  }
  #plan .plan ul li a .pc-only p {
    text-align: center;
  }
  #plan .plan ul li a .pc-only p:first-of-type {
    color: #f25c5c;
    font-size: 3.2rem;
    margin-top: 0.4rem;
  }
  #plan .plan ul li a .pc-only p:last-of-type {
    color: #666;
    font-size: 1.6rem;
    margin-top: -0.4rem;
    padding-bottom: 1.6rem;
  }
}
#plan .plan ul li a p:has(img) {
  align-items: center;
  border-top: 1px solid #ccc;
  color: #444;
  display: flex;
  font-size: 1.4rem;
  font-weight: normal;
  gap: 0.4rem;
  justify-content: center;
  line-height: 2.4rem;
  padding: 0.4rem;
}
@media screen and (min-width: 781px) {
  #plan .plan ul li a p:has(img) {
    color: #222;
    font-size: 1.6rem;
  }
}
#plan .plan ul li:nth-of-type(1) {
  border: 1px solid #2e9940;
  box-shadow: 0 2px 0 0 #2e9940;
}
#plan .plan ul li:nth-of-type(1) h3 {
  background: #2e9940;
}
#plan .plan ul li:nth-of-type(2) {
  border: 1px solid #b25959;
  box-shadow: 0 2px 0 0 #b25959;
}
#plan .plan ul li:nth-of-type(2) h3 {
  background: #b25959;
}
#plan .plan ul li:nth-of-type(3) {
  border: 1px solid #6f679d;
  box-shadow: 0 2px 0 0 #6f679d;
}
#plan .plan ul li:nth-of-type(3) h3 {
  background: #6f679d;
}
#plan .plan ul li:nth-of-type(4) {
  border: 1px solid #99622e;
  box-shadow: 0 2px 0 0 #99622e;
}
#plan .plan ul li:nth-of-type(4) h3 {
  background: #99622e;
}
#plan .plan ul li:nth-of-type(5) {
  border: 1px solid #99992e;
  box-shadow: 0 2px 0 0 #99992e;
}
#plan .plan ul li:nth-of-type(5) h3 {
  background: #99992e;
}
#plan .plan ul li:nth-of-type(6) {
  border: 1px solid #2e9985;
  box-shadow: 0 2px 0 0 #2e9985;
}
#plan .plan ul li:nth-of-type(6) h3 {
  background: #2e9985;
}
#plan .plan ul li:nth-of-type(7) {
  border: 1px solid #2e6399;
  box-shadow: 0 2px 0 0 #2e6399;
}
#plan .plan ul li:nth-of-type(7) h3 {
  background: #2e6399;
}
#plan .plan .plan-bnr {
  aspect-ratio: 342/160;
  background: url(../images/plan/plan_bnr_sp.png) no-repeat center/cover;
  margin-top: 3.2rem;
  position: relative;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #plan .plan .plan-bnr {
    aspect-ratio: 800/160;
    background: url(../images/plan/plan_bnr.png) no-repeat center/cover;
    margin: 3.2rem auto 0;
    max-width: 80rem;
  }
}
#plan .plan .plan-bnr a {
  color: #222;
  display: block;
  height: 100%;
  width: 100%;
}
#plan .plan .plan-bnr a h2 {
  align-items: center;
  background: #fff;
  border-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  font-size: 2rem;
  height: 7.3rem;
  justify-content: center;
  left: 50%;
  line-height: 1.5;
  min-width: 26.1rem;
  position: absolute;
  top: 47%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 781px) {
  #plan .plan .plan-bnr a h2 {
    font-size: 2.8rem;
    height: 5.6rem;
    min-width: 51.9rem;
  }
}
#plan .plan .plan-bnr a h2 span {
  display: contents;
  font-size: 2.4rem;
}
#plan .plan .plan-bnr a h2 span span:last-of-type {
  color: #0d6c80;
}
@media screen and (min-width: 781px) {
  #plan .plan .plan-bnr a h2 span {
    font-size: 3.2rem;
  }
}
#plan .plan .plan-bnr a p {
  align-items: center;
  background: #d96c00;
  border-radius: 0.4rem 0 0 0;
  border-radius: 1.6rem 0 0.8rem 0;
  bottom: 2rem;
  color: #fff;
  display: flex;
  font-size: 1.2rem;
  gap: 0.5rem;
  height: 2.2rem;
  justify-content: center;
  position: absolute;
  right: 0;
  width: 11.9rem;
}
#plan .plan .plan-bnr a p img {
  height: 1rem;
  width: 0.617rem;
}
@media screen and (min-width: 781px) {
  #plan .plan .plan-bnr a p {
    font-size: 1.4rem;
    height: 2.9rem;
    width: 15rem;
  }
}

#detail .o-ttl01 .c-green01.mod {
  align-items: center;
  display: flex;
  font-size: 2rem;
  gap: 0.8rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  #detail .o-ttl01 .c-green01.mod {
    font-size: 2.4rem;
  }
}
#detail .o-ttl01 .c-green01.mod::before {
  background: url("../images/common/icon_slash_l.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  #detail .o-ttl01 .c-green01.mod::before {
    height: 2rem;
    width: 1.3rem;
  }
}
#detail .o-ttl01 .c-green01.mod::after {
  background: url("../images/common/icon_slash_r.svg") no-repeat center/contain;
  content: "";
  display: block;
  height: 1.8rem;
  width: 1.2rem;
}
@media screen and (min-width: 781px) {
  #detail .o-ttl01 .c-green01.mod::after {
    height: 2rem;
    width: 1.3rem;
  }
}
#detail .o-ttl01 .c-green01:last-of-type {
  font-size: 2rem;
  line-height: inherit;
}
@media screen and (min-width: 781px) {
  #detail .o-ttl01 .c-green01:last-of-type {
    font-size: 2.4rem;
  }
}
#detail .mv {
  background-color: #2e9940;
}
#detail .mv .innerBox {
  padding-top: 0;
  padding-bottom: 0;
}
#detail .mv__content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 781px) {
  #detail .mv__content {
    flex-direction: row;
  }
}
#detail .mv__content .text {
  padding: 1.6rem 2.4rem;
  flex-shrink: 0;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #detail .mv__content .text {
    width: auto;
  }
}
#detail .mv__content .text > p {
  color: #fff;
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.5;
}
@media screen and (min-width: 781px) {
  #detail .mv__content .text > p {
    font-size: 2rem;
  }
}
#detail .mv__content .text h1 {
  color: #fff;
  font-weight: 700;
  text-align: center;
  font-size: 3.2rem;
  line-height: 1.5;
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 781px) {
  #detail .mv__content .text h1 {
    font-size: 4.4rem;
  }
}
#detail .mv__content .text .price {
  background-color: #fff;
  margin-bottom: 0.4rem;
  border-radius: 0.4rem;
  padding: 0.8rem;
}
#detail .mv__content .text .price p {
  text-align: center;
  font-weight: 700;
  line-height: 1;
}
#detail .mv__content .text .price p:first-of-type {
  color: #f25c5c;
  font-size: 2.2rem;
  margin-bottom: 0.8rem;
}
@media screen and (min-width: 781px) {
  #detail .mv__content .text .price p:first-of-type {
    font-size: 3.2rem;
  }
}
#detail .mv__content .text .price p:last-of-type {
  color: #666;
  font-size: 1.4rem;
}
@media screen and (min-width: 781px) {
  #detail .mv__content .text .price p:last-of-type {
    font-size: 1.6rem;
  }
}
#detail .mv__content .text ul {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
#detail .mv__content .text ul li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.23rem 0.8rem;
  background-color: #fff;
  border-radius: 0.4rem;
  font-size: 1.2rem;
  letter-spacing: normal;
}
@media screen and (max-width: 780px) {
  #detail .mv__content .image {
    width: 100vw;
  }
}
#detail .mv__content .image img {
  width: 100%;
}
#detail .intro {
  margin: 0 auto 3rem;
}
@media screen and (min-width: 781px) {
  #detail .intro {
    margin: 0 auto 4.8rem;
  }
}
#detail .intro h2 {
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 781px) {
  #detail .intro h2 {
    margin-bottom: 2.4rem;
  }
}
#detail .intro > div {
  background: #fff;
  border-radius: 0.8rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  padding: 1.6rem;
}
@media screen and (min-width: 781px) {
  #detail .intro > div {
    padding: 2.4rem;
  }
}
#detail .intro > div h3 {
  font-weight: 700;
  font-size: 1.8rem;
  width: fit-content;
  text-align: center;
  margin: 0 auto 1.2rem;
  border-bottom: 2px solid #ffdc50;
}
@media screen and (min-width: 781px) {
  #detail .intro > div h3 {
    border-width: 4px;
    font-size: 2.4rem;
  }
}
#detail .intro > div p {
  text-align: center;
  font-size: 1.4rem;
}
@media screen and (min-width: 781px) {
  #detail .intro > div p {
    font-size: 1.6rem;
  }
}
#detail .feature {
  margin-bottom: 3rem;
}
@media screen and (min-width: 781px) {
  #detail .feature {
    margin-bottom: 4.8rem;
  }
}
#detail .feature h2 {
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 781px) {
  #detail .feature h2 {
    margin-bottom: 2.4rem;
  }
}
#detail .feature__content {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}
#detail .feature__content li {
  width: calc((100% - 1.6rem) / 2);
  background: #fff;
  border-radius: 0.8rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  padding: 1.6rem 1.8rem 1rem;
  text-align: center;
}
@media screen and (min-width: 781px) {
  #detail .feature__content li {
    width: calc((100% - 4.8rem) / 4);
  }
}
#detail .feature__content li img {
  margin-bottom: 1rem;
}
#detail .feature__content li p {
  text-align: center;
  font-size: 1.4rem;
}
@media screen and (min-width: 781px) {
  #detail .feature__content li p {
    font-size: 1.6rem;
  }
}
#detail .included {
  margin-bottom: 4rem;
  background-color: #f6f6f6;
  padding: 1.6rem;
  border-radius: 0.8rem;
}
@media screen and (min-width: 781px) {
  #detail .included {
    margin-bottom: 8rem;
    padding: 3.2rem 4.8rem 4.8rem;
  }
}
#detail .included h2 {
  background-color: #2e9940;
  color: #fff;
  padding: 0.4rem 1.6rem;
  font-size: 1.6rem;
  width: fit-content;
  margin: 0 auto 2rem;
  text-align: center;
  border-radius: 5rem;
}
@media screen and (min-width: 781px) {
  #detail .included h2 {
    font-size: 2rem;
    margin-bottom: 2.4rem;
  }
}
#detail .included__content {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}
#detail .included__content li {
  width: 100%;
  border: 1px solid #2e9940;
  box-shadow: none !important;
  border-radius: 0.8rem;
  display: flex;
  align-items: center;
  overflow: none;
  justify-content: space-between;
  gap: 0.8rem;
  padding-right: 1.7rem;
}
@media screen and (min-width: 781px) {
  #detail .included__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail .included__content li img {
  flex-shrink: 0;
  height: 2rem;
}
#detail .included__content li img:first-child {
  height: 7rem;
}
#detail .included__content li img:last-child {
  display: none;
}
#detail .included__content li p {
  flex-grow: 1;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: normal;
}
@media screen and (min-width: 781px) {
  #detail .included__content li p {
    font-size: 1.6rem;
  }
}
#detail .included__content li p span {
  font-size: 0.9em;
}
#detail .steps h2 {
  margin-bottom: 3.6rem;
}
@media screen and (min-width: 781px) {
  #detail .steps h2 {
    margin-bottom: 4.6rem;
  }
}
#detail .steps__content {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 781px) {
  #detail .steps__content {
    flex-direction: row;
  }
}
#detail .steps__content > div {
  position: relative;
  background-color: #edf2ee;
  padding: 4.7rem 2.8rem 2.2rem;
  border-radius: 0.8rem;
}
#detail .steps__content > div.mod {
  background-color: #f6f6f6;
  position: relative;
  border-radius: 0 0.8rem 0.8rem 0 !important;
}
#detail .steps__content > div.mod h3 {
  background-color: #666;
}
@media screen and (max-width: 780px) {
  #detail .steps__content > div.mod ul {
    justify-content: center;
  }
}
#detail .steps__content > div.mod ul li.tri {
  border-color: transparent transparent transparent #666;
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div.mod ul li.tri {
    position: absolute;
    left: -0.8rem;
    top: 10.7rem;
    margin-top: 0;
  }
}
#detail .steps__content > div h3 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1.9rem;
  background-color: #2e9940;
  color: #fff;
  padding: 0.4rem 1.6rem;
  font-size: 1.6rem;
  width: max-content;
  text-align: center;
  border-radius: 5rem;
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div h3 {
    top: -2.2rem;
    font-size: 2rem;
  }
}
#detail .steps__content > div ul {
  display: flex;
  gap: 1.6rem;
  flex-wrap: wrap;
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div ul {
    flex-wrap: nowrap;
  }
}
#detail .steps__content > div ul li:not(.tri) {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  width: calc((100% - 8rem) / 2);
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div ul li:not(.tri) {
    width: auto;
  }
}
#detail .steps__content > div ul li:not(.tri) img {
  width: 100%;
}
#detail .steps__content > div ul li:not(.tri) p {
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div ul li:not(.tri) p {
    font-size: 2.4rem;
  }
}
#detail .steps__content > div ul li.tri {
  display: inline-block;
  width: 0;
  height: 0;
  margin-top: 4rem;
  border-style: solid;
  border-width: 1.6rem 0px 1.6rem 1.6rem;
  border-color: transparent transparent transparent #2e9940;
}
@media screen and (min-width: 781px) {
  #detail .steps__content > div ul li.tri {
    margin-top: 6rem;
  }
}
#detail.omakase .steps__content > div {
  border-radius: 0.8rem 0 0 0.8rem;
}
#detail.omakase .faq ul li button img:last-child {
  filter: invert(43%) sepia(67%) saturate(432%) hue-rotate(83deg) brightness(93%) contrast(91%);
}
#detail.kasou .mv {
  background-color: #b25959;
}
#detail.kasou .o-ttl01 .c-green01 {
  color: #b25959;
}
#detail.kasou .o-ttl01 .c-green01::before, #detail.kasou .o-ttl01 .c-green01::after {
  filter: brightness(0) saturate(100%) invert(42%) sepia(23%) saturate(1046%) hue-rotate(314deg) brightness(89%) contrast(85%);
}
@media screen and (min-width: 781px) {
  #detail.kasou .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.kasou .included h2 {
  background-color: #b25959;
}
#detail.kasou .included__content li {
  box-shadow: #b25959 0px 3px 0px 0px;
  border-color: #b25959;
}
#detail.kasou .steps__content > div {
  background-color: #f2eded;
}
#detail.kasou .steps__content > div h3 {
  background-color: #b25959;
}
#detail.kasou .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #b25959;
}
#detail.kasou .faq {
  background-color: #f2eded;
}
#detail.kasou .faq ul li button img:last-child {
  filter: invert(47%) sepia(24%) saturate(863%) hue-rotate(314deg) brightness(92%) contrast(88%);
}
#detail.ichinichi .mv {
  background-color: #6f679d;
}
#detail.ichinichi .mv__content .text ul li img {
  filter: brightness(0) saturate(100%) invert(45%) sepia(13%) saturate(1086%) hue-rotate(211deg) brightness(91%) contrast(88%);
}
#detail.ichinichi .o-ttl01 .c-green01 {
  color: #6f679d;
}
#detail.ichinichi .o-ttl01 .c-green01::before, #detail.ichinichi .o-ttl01 .c-green01::after {
  filter: brightness(0) saturate(100%) invert(45%) sepia(13%) saturate(1086%) hue-rotate(211deg) brightness(91%) contrast(88%);
}
@media screen and (min-width: 781px) {
  #detail.ichinichi .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.ichinichi .included h2 {
  background-color: #6f679d;
}
#detail.ichinichi .included__content li {
  box-shadow: #6f679d 0px 3px 0px 0px;
  border-color: #6f679d;
}
#detail.ichinichi .included__content li img:last-child {
  filter: brightness(0) saturate(100%) invert(45%) sepia(13%) saturate(1086%) hue-rotate(211deg) brightness(91%) contrast(88%);
}
#detail.ichinichi .steps__content > div {
  background-color: #eeedf2;
}
#detail.ichinichi .steps__content > div h3 {
  background-color: #6f679d;
}
#detail.ichinichi .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #6f679d;
}
#detail.ichinichi .faq {
  background-color: #eeedf2;
}
#detail.ichinichi .faq ul li button img:last-child {
  filter: invert(47%) sepia(17%) saturate(1037%) hue-rotate(209deg) brightness(89%) contrast(88%);
}
@media screen and (min-width: 781px) {
  #detail.ichinichi .steps__content > div ul li.tri {
    margin-top: 4.5rem;
  }
}
@media screen and (min-width: 781px) {
  #detail.ichinichi .steps__content > div ul li:not(.tri) {
    width: calc((100% - 24rem) / 6);
  }
}
@media screen and (min-width: 781px) {
  #detail.ichinichi .steps__content > div ul li:not(.tri) p {
    white-space: nowrap;
  }
}
#detail.kazoku .mv {
  background-color: #99622e;
}
#detail.kazoku .mv__content .text ul li img {
  filter: brightness(0) saturate(100%) invert(42%) sepia(39%) saturate(741%) hue-rotate(349deg) brightness(92%) contrast(88%);
}
#detail.kazoku .o-ttl01 .c-green01 {
  color: #99622e;
}
#detail.kazoku .o-ttl01 .c-green01::before, #detail.kazoku .o-ttl01 .c-green01::after {
  filter: brightness(0) saturate(100%) invert(42%) sepia(39%) saturate(741%) hue-rotate(349deg) brightness(92%) contrast(88%);
}
@media screen and (min-width: 781px) {
  #detail.kazoku .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.kazoku .included h2 {
  background-color: #99622e;
}
#detail.kazoku .included__content li {
  box-shadow: #99622e 0px 3px 0px 0px;
  border-color: #99622e;
}
#detail.kazoku .included__content li img:last-child {
  filter: brightness(0) saturate(100%) invert(42%) sepia(39%) saturate(741%) hue-rotate(349deg) brightness(92%) contrast(88%);
}
#detail.kazoku .steps__content > div {
  background-color: #f2efed;
}
#detail.kazoku .steps__content > div h3 {
  background-color: #99622e;
}
#detail.kazoku .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #99622e;
}
#detail.kazoku .faq {
  background-color: #f2efed;
}
#detail.kazoku .faq ul li button img:last-child {
  filter: invert(42%) sepia(51%) saturate(702%) hue-rotate(349deg) brightness(94%) contrast(91%);
}
@media screen and (min-width: 781px) {
  #detail.kazoku .steps__content > div ul li.tri {
    margin-top: 3.5rem;
  }
}
@media screen and (min-width: 781px) {
  #detail.kazoku .steps__content > div ul li:not(.tri) {
    width: calc((100% - 28.8rem) / 7);
  }
}
@media screen and (min-width: 781px) {
  #detail.kazoku .steps__content > div ul li:not(.tri) p {
    white-space: nowrap;
    font-size: 2rem;
  }
}
#detail.standard .mv {
  background-color: #99992e;
}
#detail.standard .mv__content .text ul li img {
  filter: sepia(1) saturate(1.8) hue-rotate(25deg) brightness(1.05) contrast(0.95);
}
#detail.standard .o-ttl01 .c-green01 {
  color: #99992e;
}
#detail.standard .o-ttl01 .c-green01::before, #detail.standard .o-ttl01 .c-green01::after {
  filter: sepia(1) saturate(1.8) hue-rotate(25deg) brightness(1.05) contrast(0.95);
}
@media screen and (min-width: 781px) {
  #detail.standard .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.standard .included h2 {
  background-color: #99992e;
}
#detail.standard .included__content li {
  box-shadow: #99992e 0px 3px 0px 0px;
  border-color: #99992e;
}
#detail.standard .included__content li img:last-child {
  filter: sepia(1) saturate(1.8) hue-rotate(25deg) brightness(1.05) contrast(0.95);
}
#detail.standard .steps__content > div {
  background-color: #f2f2ed;
}
#detail.standard .steps__content > div h3 {
  background-color: #99992e;
}
#detail.standard .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #99992e;
}
#detail.standard .faq {
  background-color: #f2f2ed;
}
#detail.standard .faq ul li button img:last-child {
  filter: invert(58%) sepia(46%) saturate(543%) hue-rotate(22deg) brightness(92%) contrast(89%);
}
@media screen and (min-width: 781px) {
  #detail.standard .steps__content > div ul li.tri {
    margin-top: 3.5rem;
  }
}
@media screen and (min-width: 781px) {
  #detail.standard .steps__content > div ul li:not(.tri) {
    width: calc((100% - 28.8rem) / 7);
  }
}
@media screen and (min-width: 781px) {
  #detail.standard .steps__content > div ul li:not(.tri) p {
    white-space: nowrap;
    font-size: 2rem;
  }
}
@media screen and (min-width: 781px) {
  #detail.classup .mv__content .text h1 {
    font-size: 3rem;
  }
}
#detail.classup .mv {
  background-color: #2e9985;
}
#detail.classup .mv__content .text ul li img {
  filter: sepia(0.15) hue-rotate(40deg) saturate(1.2);
}
#detail.classup .o-ttl01 .c-green01 {
  color: #2e9985;
}
#detail.classup .o-ttl01 .c-green01::before, #detail.classup .o-ttl01 .c-green01::after {
  filter: sepia(0.15) hue-rotate(40deg) saturate(1.2);
}
@media screen and (min-width: 781px) {
  #detail.classup .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.classup .included h2 {
  background-color: #2e9985;
}
#detail.classup .included__content li {
  box-shadow: #2e9985 0px 3px 0px 0px;
  border-color: #2e9985;
}
#detail.classup .included__content li img:last-child {
  filter: sepia(0.15) hue-rotate(40deg) saturate(1.2);
}
#detail.classup .steps__content > div {
  background-color: #f2f2ed;
}
#detail.classup .steps__content > div h3 {
  background-color: #2e9985;
}
#detail.classup .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #2e9985;
}
#detail.classup .faq {
  background-color: #f2f2ed;
}
#detail.classup .faq ul li button img:last-child {
  filter: invert(50%) sepia(41%) saturate(635%) hue-rotate(132deg) brightness(93%) contrast(91%);
}
@media screen and (min-width: 781px) {
  #detail.classup .steps__content > div ul li.tri {
    margin-top: 3.5rem;
  }
}
@media screen and (min-width: 781px) {
  #detail.classup .steps__content > div ul li:not(.tri) {
    width: calc((100% - 28.8rem) / 7);
  }
}
@media screen and (min-width: 781px) {
  #detail.classup .steps__content > div ul li:not(.tri) p {
    white-space: nowrap;
    font-size: 2rem;
  }
}
#detail.socialwelfare .mv {
  background-color: #2e6399;
}
#detail.socialwelfare .o-ttl01 .c-green01 {
  color: #2e6399;
}
#detail.socialwelfare .o-ttl01 .c-green01::before, #detail.socialwelfare .o-ttl01 .c-green01::after {
  filter: sepia(1) saturate(4) hue-rotate(180deg) brightness(0.9) contrast(1.2);
}
#detail.socialwelfare .mv__content .text ul li img {
  filter: invert(37%) sepia(32%) saturate(1180%) hue-rotate(170deg) brightness(92%) contrast(92%);
}
@media screen and (min-width: 781px) {
  #detail.socialwelfare .feature__content li {
    width: calc((100% - 3.2rem) / 3);
  }
}
#detail.socialwelfare .included h2 {
  background-color: #2e6399;
}
#detail.socialwelfare .included__content li {
  box-shadow: #2e6399 0px 3px 0px 0px;
  border-color: #2e6399;
}
#detail.socialwelfare .included__content li img:last-child {
  filter: invert(37%) sepia(32%) saturate(1180%) hue-rotate(170deg) brightness(92%) contrast(92%);
}
#detail.socialwelfare .steps__content > div {
  background-color: #edeff2;
}
#detail.socialwelfare .steps__content > div h3 {
  background-color: #2e6399;
}
#detail.socialwelfare .steps__content > div ul li.tri {
  border-color: transparent transparent transparent #2e6399;
}
#detail.socialwelfare .faq {
  background-color: #edeff2;
}
#detail.socialwelfare .faq ul li button img:last-child {
  filter: invert(37%) sepia(32%) saturate(1180%) hue-rotate(170deg) brightness(92%) contrast(92%);
}

#faq .has-bg .innerBox {
  display: flex;
  flex-direction: column;
  align-self: center;
  gap: 2.5rem;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox {
    gap: 3.2rem;
  }
}
#faq .has-bg .innerBox section {
  background-color: #fff;
  border: 1px solid #0A6629;
  border-radius: 0.8rem;
  padding: 2rem 1.5rem;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section {
    padding: 3.2rem 2.4rem;
  }
}
#faq .has-bg .innerBox section h2 {
  text-align: center;
  color: #0a6629;
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 1.5;
  margin-bottom: 2rem;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section h2 {
    margin-bottom: 2.4rem;
    font-size: 3.2rem;
  }
}
#faq .has-bg .innerBox section ul {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
#faq .has-bg .innerBox section ul li {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  justify-content: flex-end;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section ul li {
    gap: 3rem;
  }
}
#faq .has-bg .innerBox section ul li:nth-child(odd) {
  justify-content: flex-start;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section ul li:nth-child(odd) {
    align-items: center;
  }
}
#faq .has-bg .innerBox section ul li:nth-child(odd) dl {
  background-color: #f5f5f5;
}
#faq .has-bg .innerBox section ul li:nth-child(odd) dl::before {
  left: -16px;
  right: initial;
  border-width: 9.5px 16px 9.5px 0px;
  border-color: transparent #f5f5f5 transparent transparent;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section ul li:nth-child(odd) dl::before {
    top: 50%;
    transform: translateY(-50%);
  }
}
#faq .has-bg .innerBox section ul li img {
  width: 6rem;
  flex-shrink: 0;
}
#faq .has-bg .innerBox section ul li dl {
  position: relative;
  width: calc(100% - 9rem);
  background-color: #f1f7f2;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
  border-radius: 0.4rem;
  padding: 1.6rem;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox section ul li dl {
    width: calc(100% - 18rem);
  }
}
#faq .has-bg .innerBox section ul li dl::before {
  position: absolute;
  top: 20px;
  right: -16px;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 9.5px 0px 9.5px 16px;
  border-color: transparent transparent transparent #f1f7f2;
}
#faq .has-bg .innerBox section ul li dl dt {
  font-weight: 700;
  line-height: 1.8;
}
#faq .has-bg .innerBox section ul li dl dt span {
  color: #F25C5C;
}
#faq .has-bg .innerBox section ul li dl dd {
  line-height: 1.8;
}
#faq .has-bg .innerBox section ul:last-child {
  margin-top: 2.4rem;
}
#faq .has-bg .innerBox .banner__faq {
  background-color: #fff;
  background-image: url(../images/faq/faq_bnr_bg.png);
  background-size: cover;
  max-width: 610px;
  margin: 0 auto;
  border: 1px solid #0A6629;
  border-radius: 0.8rem;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 1.6rem;
  flex-wrap: wrap;
}
#faq .has-bg .innerBox .banner__faq img {
  margin: 0 0 0 auto;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox .banner__faq img {
    margin: 0;
  }
}
#faq .has-bg .innerBox .banner__faq > div {
  padding: 0.3rem 0 0.6rem;
  width: 100%;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox .banner__faq > div {
    width: auto;
  }
}
#faq .has-bg .innerBox .banner__faq > div h3 {
  font-weight: 700;
  line-height: 1.8;
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
  text-align: center;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox .banner__faq > div h3 {
    text-align: left;
  }
}
#faq .has-bg .innerBox .banner__faq > div h3 span {
  font-size: 1.25em;
  color: #F25C5C;
}
#faq .has-bg .innerBox .banner__faq > div h3 span:last-child {
  font-size: 1em;
}
#faq .has-bg .innerBox .banner__faq > div > div {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.8rem;
  justify-content: center;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox .banner__faq > div > div {
    justify-content: flex-start;
  }
}
#faq .has-bg .innerBox .banner__faq > div > div > p {
  background-color: #095a24;
  text-align: center;
  color: #fff;
  font-weight: 700;
  border-radius: 0.4rem;
  line-height: 1.1;
  padding: 0.6rem;
}
#faq .has-bg .innerBox .banner__faq > div > div div p {
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1;
  color: #095a24;
}
#faq .has-bg .innerBox .banner__faq > div > div div p.tel {
  font-size: 3.2rem;
  line-height: 1;
  color: #222;
  margin: 0;
  padding: 0;
}
#faq .has-bg .innerBox .banner__faq > div > p {
  text-align: center;
}
@media screen and (min-width: 781px) {
  #faq .has-bg .innerBox .banner__faq > div > p {
    text-align: left;
  }
}/*# sourceMappingURL=style.css.map */