@charset "UTF-8";
/* reset */
*,
*::before,
*::after {
  box-sizing: border-box; }

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0; }

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role="list"],
ol[role="list"] {
  list-style: none; }

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth; }

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5; }

a {
  text-decoration: none; }

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block; }

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit; }

button {
  border: 1px solid #ccc; }

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important; } }
ul {
  margin: 0;
  padding: 0;
  list-style: none; }
  ul li {
    margin: 0;
    padding: 0; }

fieldset {
  display: block;
  border: none;
  padding: 0;
  margin: 0; }

iframe {
  max-width: 100% !important;
  width: 100% !important; }

hr {
  margin-top: 1em;
  margin-bottom: 1em;
  border-top: 1px solid #cccccc;
  width: 100%; }

blockquote {
  padding-left: 2em; }

/*  reset */
/* config */
.col_grn {
  color: #469900; }

.col_bggrn {
  background-color: #469900; }

.col_lgry {
  background-color: #FAFAFA; }

.col_lyel {
  background-color: #F9F7ED; }

.onlylt768 {
  display: none; }
  @media screen and (max-width: 680px) {
    .onlylt768 {
      display: inline; } }

html {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 300; }

body {
  background: #fff;
  overflow-x: hidden !important; }

p {
  line-height: 200%;
  margin: 0.5em 0; }

a {
  text-decoration: none !important; }

h1 {
  font-size: 2.3rem;
  color: #333;
  font-weight: 300;
  display: block; }
  h1.tate {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright; }

h2 {
  font-size: 2.0rem;
  color: #333;
  letter-spacing: 0.1rem;
  font-weight: 300;
  margin-bottom: 1em; }
  h2 small {
    display: block;
    font-size: 50%; }

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.py-1 {
  padding-top: 0.5em !important;
  padding-bottom: 0.5em !important; }

.py-2 {
  padding-top: 1.0em !important;
  padding-bottom: 1.0em !important; }

.py-3 {
  padding-top: 1.5em !important;
  padding-bottom: 1.5em !important; }

.py-4 {
  padding-top: 2.0em !important;
  padding-bottom: 2.0em !important; }

.py-5 {
  padding-top: 2.5em !important;
  padding-bottom: 2.5em !important; }

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important; }

.px-1 {
  padding-left: 0.5em !important;
  padding-right: 0.5em !important; }

.px-2 {
  padding-left: 1em !important;
  padding-right: 1em !important; }

.px-3 {
  padding-left: 1.5em !important;
  padding-right: 1.5em !important; }

.px-4 {
  padding-left: 2em !important;
  padding-right: 2em !important; }

.px-5 {
  padding-left: 2.5em !important;
  padding-right: 2.5em !important; }

.pb-1 {
  padding-bottom: 0.5em !important; }

.pb-2 {
  padding-bottom: 1em !important; }

.pb-3 {
  padding-bottom: 1.5em !important; }

.pt-1 {
  padding-top: 0.5em !important; }

.pt-2 {
  padding-top: 1em !important; }

.py-1 {
  padding-top: 0.5em !important;
  padding-bottom: 0.5em !important; }

.py-2 {
  padding-top: 1em !important;
  padding-bottom: 1em !important; }

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }

.my-1 {
  margin-top: 0.5em !important;
  margin-bottom: 0.5em !important; }

.my-2 {
  margin-top: 1em !important;
  margin-bottom: 1em !important; }

.my-3 {
  margin-top: 1.5em !important;
  margin-bottom: 1.5em !important; }

.my-4 {
  margin-top: 2em !important;
  margin-bottom: 2em !important; }

.my-5 {
  margin-top: 2.5em !important;
  margin-bottom: 2.5em !important; }

.mt--1 {
  z-index: -1 !important;
  margin-top: -3em; }

.ml-1 {
  margin-left: 1em !important; }

.mt-0 {
  margin-top: 0 !important; }

.mt-1 {
  margin-top: 0.5em !important; }

.mt-2 {
  margin-top: 1em !important; }

.mt-3 {
  margin-top: 1.5em !important; }

.mt-4 {
  margin-top: 2em !important; }

.mt-5 {
  margin-top: 2.5em !important; }

.mb-0 {
  margin-bottom: 0 !important; }

.mb-1 {
  margin-bottom: 0.5em !important; }

.mb-2 {
  margin-bottom: 1em !important; }

.mb-3 {
  margin-bottom: 1.5em !important; }

.mb-4 {
  margin-bottom: 2em !important; }

.mb-5 {
  margin-bottom: 2.5em !important; }

.blink {
  animation: blinkAnime 0.5s infinite alternate; }

@keyframes blinkAnime {
  0% {
    opacity: 0; }
  70% {
    opacity: 100; } }
.relative {
  position: relative; }

.text-left {
  text-align: left !important; }

.text-center {
  text-align: center !important; }

.text-sp-center {
  text-align: left !important; }
  @media (max-width: 576px) {
    .text-sp-center {
      text-align: center !important; } }

.text-right {
  text-align: right !important; }

.sp_only {
  display: none !important; }
  @media (max-width: 576px) {
    .sp_only {
      display: block !important; } }

.md_only {
  display: none !important; }
  @media screen and (max-width: 768px) {
    .md_only {
      display: block !important; } }
  @media (max-width: 576px) {
    .md_only {
      display: none !important; } }

.pc_only {
  display: block !important; }
  @media (max-width: 576px) {
    .pc_only {
      display: none !important; } }

.require {
  display: inline-block;
  color: #c60000;
  font-weight: 600;
  padding: 0.2em 0.5em;
  font-size: 1.2em; }

.badge {
  display: inline-block;
  margin-left: 0.3em;
  margin-right: 0.3em;
  margin-bottom: 0.1em;
  font-size: 0.8em;
  padding: 0.1em 0.4em 0.1em 0.5em;
  border-radius: 4px;
  color: #fff;
  letter-spacing: 0.1em; }

.btn {
  display: inline-block;
  padding: 0.75em 4em 0.75em 2em;
  font-weight: 300;
  white-space: nowrap;
  text-align: center;
  text-decoration: none;
  border: 1px solid #ccc;
  min-width: 150px;
  color: #333 !important;
  margin: 1em auto;
  position: relative; }

.btn:hover {
  background-color: #469900;
  color: #fff !important; }

p + .btn {
  margin-top: 2em; }

.btn::after {
  content: "";
  display: block;
  position: absolute;
  right: 8px;
  top: 14px;
  width: 15px;
  height: 15px;
  background: url("../images/arrow.svg") no-repeat;
  background-position: center center;
  background-size: contain; }

table {
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px dotted #ccc; }
  table tbody {
    margin: 0;
    padding: 0; }
    @media (max-width: 576px) {
      table tbody {
        min-width: 100%; } }
  table tr {
    margin: 0;
    padding: 0; }
    @media (max-width: 576px) {
      table tr {
        min-width: 100%; } }
  table tr.active {
    background-color: #ECF2FF !important; }
  table tr.active > td {
    background-color: #ECF2FF !important; }
  table th {
    text-align: left;
    padding: 0.5em;
    background-color: #eee;
    white-space: nowrap;
    font-weight: 300;
    margin: 0;
    border-bottom: 1px dotted #ccc;
    text-align: center;
    width: 200px; }
  table td {
    text-align: left;
    margin: 0;
    padding: 0.5em 2em;
    border-bottom: 1px dotted #ccc;
    background-color: #fff; }
  table.striped tr:nth-child(odd) {
    background-color: #efefef; }
  table.borderd {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc; }
    table.borderd th, table.borderd td {
      border-right: 1px solid #ccc;
      border-bottom: 1px solid #ccc; }
  table.noborder th, table.noborder td {
    border-bottom: none; }

@media screen and (max-width: 680px) {
  table.tb-01 {
    display: block; }
    table.tb-01 tr, table.tb-01 tbody {
      display: block;
      width: 100%; }
    table.tb-01 th {
      display: block;
      width: 100%; }
    table.tb-01 td {
      display: block;
      width: 100%;
      text-align: center; } }
.fadeIn {
  opacity: 0;
  transition: 1s; }

.fadeIn.is-show {
  opacity: 1; }

.fadeIn_up {
  opacity: 0;
  transform: translate(0, 30%);
  transition: 0.8s; }

.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1; }

/* config */
/* layout */
/* layout */
.l-header {
  display: flex;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 75px;
  background-color: #469900;
  z-index: 30;
  align-items: center; }
  .l-header #logo_header {
    display: block;
    width: 230px;
    height: 75px;
    padding: 12.5px 0 12.5px 15px;
    cursor: pointer; }
  .l-header ul.menu {
    display: flex;
    flex-basis: 100%;
    max-width: 100%;
    min-width: 400px;
    padding-top: 20px;
    justify-content: flex-end; }
    .l-header ul.menu li {
      display: block;
      font-size: 14px;
      margin: 0;
      padding: 0 1em; }
      .l-header ul.menu li a {
        color: #fff; }
      .l-header ul.menu li a:hover {
        color: #469900 !important;
        background: #fff; }
    .l-header ul.menu li.insta {
      border-left: 1px solid #ccc; }
  @media screen and (max-width: 767px) {
    .l-header ul.menu {
      display: none;
      position: fixed;
      top: 75px;
      left: 0;
      width: 100%;
      padding-top: 0;
      background-color: #469900;
      border-top: 2px solid #fff;
      z-index: 300; }
      .l-header ul.menu li {
        display: block;
        font-size: 1.5em;
        margin: 0;
        padding: 0;
        width: 100%;
        text-align: center;
        border-bottom: 1px solid #fff; }
        .l-header ul.menu li a {
          color: #fff;
          display: block;
          text-align: center;
          width: 100%;
          height: 100%;
          padding: 1em 0; }
        .l-header ul.menu li a:hover {
          text-decoration: underline; }
      .l-header ul.menu li.insta {
        border-left: 1px solid #ccc; } }
  .l-header div.spmenu {
    display: none;
    flex-basis: 50px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 40px;
    color: #fff;
    padding: 0 10px;
    position: absolute;
    top: 6px;
    right: 10px; }
    @media screen and (max-width: 767px) {
      .l-header div.spmenu {
        display: block; } }

.footer1 img {
  display: block;
  margin: 1em auto; }
.footer1 p {
  line-height: 120%; }

.footer2 {
  color: #fff !important;
  display: flex;
  position: relative;
  margin: 0 auto;
  padding: 3em 0;
  width: 80%; }
  @media screen and (max-width: 767px) {
    .footer2 {
      width: 100%;
      padding: 0 0 50px 0; } }
  .footer2 div.flogo {
    width: 100%;
    max-width: 200px; }
    @media screen and (max-width: 767px) {
      .footer2 div.flogo {
        display: none; } }
    .footer2 div.flogo img {
      margin-left: 30px; }
  .footer2 div.fmenu {
    width: 100%;
    max-width: 500px; }
    @media screen and (max-width: 767px) {
      .footer2 div.fmenu {
        max-width: none; } }
    .footer2 div.fmenu ul {
      display: flex;
      flex-wrap: wrap;
      font-size: 1.2em; }
      @media screen and (max-width: 767px) {
        .footer2 div.fmenu ul {
          display: block;
          font-size: 1.2em; } }
      .footer2 div.fmenu ul li {
        width: 50%;
        display: block; }
        @media screen and (max-width: 767px) {
          .footer2 div.fmenu ul li {
            width: 100%;
            text-align: center;
            border-bottom: 1px dashed rgba(255, 255, 255, 0.5); } }
        .footer2 div.fmenu ul li a {
          display: block;
          width: 100%;
          padding: 0.3em; }
          @media screen and (max-width: 767px) {
            .footer2 div.fmenu ul li a {
              padding: 0.5em; } }
        .footer2 div.fmenu ul li a:hover {
          color: #469900 !important;
          background: #fff; }
  .footer2 a {
    color: #fff !important; }
  .footer2 a:hover {
    text-decoration: underline !important; }
  .footer2 p.copyright {
    display: block;
    position: absolute;
    width: 100%;
    text-align: center;
    font-size: 0.8em;
    bottom: 10px;
    left: 0; }

form {
  font-size: 1em;
  box-sizing: border-box;
  width: 100%; }

input[type='text'], input[type='password'], .text-area > input {
  width: 100%;
  max-width: 100%;
  padding: 0.8em;
  border: 1px solid #ccc;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none; }
  input[type='text'].size-sm, input[type='password'].size-sm, .text-area > input.size-sm {
    padding: 0.5em; }

input[type='text']:read-only {
  border: none;
  border-bottom: dotted 1px #ccc;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none; }

input[type="radio"] {
  transform: scale(1.5);
  margin: 0.3em; }

input[type="checkbox"] {
  transform: scale(1.5);
  margin: 0.3em; }

input[type="checkbox"].fwd-color {
  position: relative; }
  input[type="checkbox"].fwd-color::before {
    background: #fff;
    border: 1px solid #231815;
    content: '';
    display: block;
    height: 15px;
    left: -1px;
    margin-top: -8px;
    position: absolute;
    top: 50%;
    width: 15px;
    border-radius: 2px; }
  input[type="checkbox"].fwd-color::after {
    border-right: 3px solid #ed7a9c;
    border-bottom: 3px solid #ed7a9c;
    content: '';
    display: block;
    height: 11px;
    left: 4px;
    margin-top: -7px;
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: rotate(45deg);
    width: 7px; }
  input[type="checkbox"].fwd-color.col-yel::after {
    border-color: #FDB700 !important; }
  input[type="checkbox"].fwd-color.col-yel::after {
    border-color: #FDB700 !important; }
  input[type="checkbox"].fwd-color.col-blu::after {
    border-color: #4D73BE !important; }
  input[type="checkbox"].fwd-color.col-red::after {
    border-color: #C60000 !important; }
  input[type="checkbox"].fwd-color.col-lgr::after {
    border-color: #EEEEEE !important; }
  input[type="checkbox"].fwd-color.col-gry::after {
    border-color: #999999 !important; }
  input[type="checkbox"].fwd-color.col-grn::after {
    border-color: #6AB441 !important; }
  input[type="checkbox"].fwd-color.col-pnk::after {
    border-color: #FF5084 !important; }
  input[type="checkbox"].fwd-color.col-org::after {
    border-color: #E99401 !important; }
  input[type="checkbox"].fwd-color:checked::after {
    opacity: 1; }

label > input {
  margin-right: 0.5em !important; }

select {
  width: 100%;
  max-width: 100%;
  padding: 0.8em;
  border: 1px solid #ccc;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: 'Noto Sans JP', sans-serif, 'Font Awesome 5 Free'; }

textarea {
  width: 100%;
  max-width: 100%;
  line-height: 1.5em;
  padding: 0.8em;
  border-color: #ccc; }

::placeholder {
  color: #BBBBBB; }

form.form-full-width {
  min-width: 0;
  max-width: 100%;
  width: 100%; }

.text-area {
  position: relative; }

.text-area i.left {
  position: absolute;
  left: 16px;
  top: 1em;
  background-color: transparent; }
  .text-area i.left ~ input {
    padding-left: 48px; }

.select-area {
  position: relative; }
  .select-area::after {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    position: absolute;
    right: 15px;
    top: 40%;
    border-bottom: #333 2px solid;
    border-right: #333 2px solid;
    transform: rotate(45deg) translateY(-30%); }
  .select-area select {
    padding-right: 30px; }

.dd-select {
  background-color: #fff !important;
  flex: none !important;
  border-radius: 8px !important; }

.dd-selected, .dd-option {
  padding: 5px !important; }
  .dd-selected label, .dd-option label {
    font-weight: 300 !important;
    text-align: left !important;
    line-height: 45px !important;
    display: block;
    padding-left: 1em !important; }

.dd-option-image, .dd-selected-image {
  margin-top: 8px !important; }

.dd-option-selected {
  background-color: transparent !important; }

.check-area {
  position: relative;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  line-height: 200%; }
  .check-area label {
    /*	font-weight: 400; */
    padding-right: 2em;
    padding-left: 0.5em;
    display: inline-block; }
  @media (max-width: 576px) {
    .check-area label:not(:last-child) {
      display: inline; }
    .check-area label:not(:last-child)::after {
      content: "\A";
      white-space: pre; } }

.file-area {
  margin-bottom: 20px;
  position: relative; }
  .file-area input[type="file"]:focus {
    outline: 0; }
  .file-area input[type="file"] {
    margin-left: 35px; }
    .file-area input[type="file"]::before {
      background: #4D73BE;
      border-radius: 4px;
      color: #ffffff;
      content: 'ファイルを選択';
      font-size: 1em;
      left: 0;
      padding: 10px 20px;
      position: absolute;
      top: -12px; }
  .file-area input[type="file"]::-webkit-file-upload-button {
    background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(transparent));
    background-color: transparent;
    border: 0;
    margin: 0 20px 0 0; }

i.loupe::after {
  content: url("../images/icon/loupe.svg");
  width: 24px;
  height: 24px;
  display: inline-block; }

.form_filter h2 {
  padding-left: 10px;
  margin-top: 1em;
  margin-bottom: 1em; }
.form_filter h3 {
  margin-bottom: 0.5em; }
.form_filter .box-detail {
  display: none;
  padding: 1em inherit; }
.form_filter .box-detail.active {
  display: block; }
.form_filter fieldset {
  margin-bottom: 1em; }

main {
  padding-top: 75px; }

section {
  width: 100%;
  max-width: 1200px;
  display: block;
  padding: 6em 0;
  margin: 0 auto; }
  @media screen and (max-width: 1230px) {
    section {
      padding: 6em 0; } }

#top-jtron {
  display: block;
  background-size: cover;
  background-position: center center;
  width: 100vw;
  height: 60vh;
  min-height: 600px;
  position: relative; }
  #top-jtron #logo_top {
    display: block;
    height: 100%;
    max-height: 454px;
    margin: auto auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }

.box-flex {
  display: flex;
  flex-wrap: nowrap; }
  .box-flex.gap {
    gap: 20px; }
  @media screen and (max-width: 1230px) {
    .box-flex.sp {
      display: block; } }
  .box-flex > div {
    flex-basis: 100%; }
  @media screen and (max-width: 680px) {
    .box-flex {
      flex-wrap: wrap;
      row-gap: 10px; } }

.box-sidetext {
  display: flex;
  align-items: center; }
  .box-sidetext .text_over {
    background-color: rgba(255, 255, 255, 0.97);
    padding: 2em; }
    .box-sidetext .text_over.over-left {
      margin-left: -100px; }

.box-insta {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none; }
  .box-insta li {
    display: block;
    width: calc(100% / 4 - 20px);
    margin: 0;
    padding: 0; }

.box-headtitle {
  position: relative;
  height: 400px;
  background-size: cover;
  background-position: center center;
  padding: 0;
  z-index: 3; }
  .box-headtitle h1 {
    margin: 0;
    display: block;
    min-width: 60px;
    height: 100%;
    padding: 0 2em;
    background-color: #fff;
    text-align: center; }

.box-honbun {
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.2rem;
  line-height: 180%; }
  @media screen and (max-width: 880px) {
    .box-honbun {
      padding-left: 1.5em;
      padding-right: 1.5em; } }
  @media screen and (max-width: 640px) {
    .box-honbun {
      padding-left: 1em;
      padding-right: 1em; } }
  .box-honbun h2 {
    text-align: center;
    letter-spacing: 0.5em;
    margin-bottom: 1.5em; }

.box-newslist {
  display: block;
  padding: 1.5em 1.5em 0 1.5em; }
  .box-newslist dt {
    display: block;
    background: #ccc;
    color: #000;
    padding: 0.3em 1em;
    text-align: center;
    margin-bottom: 0.5em; }
  .box-newslist dd {
    text-align: center; }
    .box-newslist dd .title {
      font-weight: 600; }
