:root {
  --text-black: #222;
  --green01: #159819;
  --bg-green: #f7f9f5;
  --orange01: #ee622e;
  --en: "Figtree", sans-serif;
  --ja: "Noto Sans JP", sans-serif;
  --shadow: 0 3px 6px rgba(0, 0, 0, 0.25);
  --shadow-text: 0 3px 6px rba(0, 0, 0, 0.25);
  --border-radius: clamp(10px, clac(20/750 * 100vw), 20px);
}

/* ===== フォントサイズ ===== */
.text-xs    { font-size: 0.75rem; }     /* 12px相当 */
.text-sm    { font-size: 0.875rem; }    /* 14px */
.text-base  { font-size: 1rem; }        /* 16px */
.text-lg    { font-size: 1.125rem; }    /* 18px */
.text-xl    { font-size: 1.25rem; }     /* 20px */
.text-2xl   { font-size: 1.5rem; }      /* 24px */
.text-3xl   { font-size: 1.875rem; }    /* 30px */
.text-4xl   { font-size: 2.25rem; }     /* 36px */

/* ===== フォントの太さ ===== */
.font-thin      { font-weight: 100; }
.font-light     { font-weight: 300; }
.font-normal    { font-weight: 400; }
.font-medium    { font-weight: 500; }
.font-semibold  { font-weight: 600; }
.font-bold      { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black     { font-weight: 900; }

/* ===== テキストカラー ===== */
.text-black   { color: #000; }
.text-white   { color: #fff; }
.text-gray    { color: #6b7280; }   /* 落ち着いたグレー */
.text-red     { color: #ef4444; }   /* 鮮やかな赤 */
.text-blue    { color: #3b82f6; }   /* ビビッドな青 */
.text-green   { color: #10b981; }   /* さわやかな緑 */
.text-yellow  { color: #facc15; }   /* 明るい黄色 */
.text-accent  { color: #f59e0b; }   /* アクセント用オレンジ */

/* ===== 行間（任意で） ===== */
.leading-tight  { line-height: 1.25; }
.leading-normal { line-height: 1.5; }
.leading-loose  { line-height: 1.75; }

* {
  margin: 0;
  padding: 0;
}

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

html {
  font-size: 62.5%;
  -ms-scroll-chaining: none;
  overscroll-behavior: none;
}

body {
  font-family: var(--ja);
  font-size: clamp(14px, 1.0980966325vw, 16px);
  line-height: 1.75;
  font-weight: 500;
  color: var(--text-black);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow: auto;
}

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

a {
  color: var(--text-black);
  text-decoration: none;
  transition: all 0.3s ease-in-out;
  opacity: 1;
}

a:hover {
  opacity: 0.7;
}

ul,
li {
  list-style: none;
}

table {
  border-collapse: collapse;
}

table thead th,
table thead td {
  background-color: #f2f2f2;
}

table th,
table td {
  border-collapse: collapse;
}

table th {
  text-align: left;
}

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

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.is-pc {
  display: block;
}

@media screen and (max-width: 768px) {
  .is-pc {
    display: none;
  }
}
.is-sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .is-sp {
    display: block;
  }
}
a[href^=tel] {
  text-decoration: none;
  color: inherit;
}

.en {
  font-family: var(--en);
}

.inner {
  max-width: 1000px;
  margin: 0 auto;
  width: 89.6%;
}

.bold {
  font-weight: 700;
}

.flex {
  display: flex;
}

.en {
  font-family: var(--en);
}

@keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(255, 255, 255, 0.6);
  }
  70% {
    transform: scale(1.05);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.6);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  }
}
.under {
  text-decoration: underline;
  text-underline-offset: 0;
  text-decoration-thickness: 0.4em;
  text-decoration-color: var(--yellow01);
  text-decoration-skip-ink: none;
}

.header {
  width: 100%;
  height: 75px;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  background: transparent;
  padding: 10px 20px;
  transition: background-color 0.3s ease;
}
@media screen and (max-width: 768px) {
  .header {
    height: 60px;
  }
}
.header.scrolled {
  background-color: var(--green01);
}
.header .header-inner {
  align-items: center;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin: 0 auto;
  height: 100%;
  padding-left: 10px;
}
@media screen and (max-width: 768px) {
  .header .header-inner {
    padding-left: 0;
  }
}
.header h1 a {
  display: block;
}
.header h1 a img {
  display: block;
}
.header .header-left {
  display: flex;
  align-items: center;
}
.header .header-left .sub-ttl {
  color: white;
  font-size: 1.2rem;
  line-height: 1.4166666667;
  font-weight: 500;
  margin-left: 16px;
  border-left: 1px solid white;
  padding-left: 16px;
}
@media screen and (max-width: 768px) {
  .header .header-left .sub-ttl {
    padding-left: 8px;
    margin-left: 8px;
  }
}
.header .header-nav {
  height: 100%;
}
@media screen and (max-width: 768px) {
  .header .header-nav {
    display: none;
  }
}
.header .nav-wrapper {
  font-size: 1.5rem;
  padding: 10px 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-right: 10px;
  font-weight: 500;
}
.header .header-nav-list {
  align-items: center;
}
.header .header-nav-list li {
  margin-left: 32px;
}
.header .header-nav-list li a {
  font-size: clamp(13px, 0.9516837482vw, 16px);
  font-weight: 500;
  line-height: 1;
  font-family: var(--ja);
  color: white;
  display: block;
}
.header .header-btn-contact {
  background: var(--orange01);
  width: 154px;
  height: 75px;
  color: white;
  line-height: 1.5;
  text-align: center;
  font-family: var(--serif);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
}
.header .header-btn-contact::before {
  content: "";
  background: url(../../assets/images/icon-mail.svg) no-repeat center/contain;
  width: 28px;
  height: 21px;
  margin-bottom: 4px;
}
.header .openbtn {
  height: 60px;
  width: 64px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  z-index: 200;
  display: none;
}
@media screen and (max-width: 768px) {
  .header .openbtn {
    display: block;
  }
}
.header .openbtn span {
  position: absolute;
  width: 24px;
  height: 3px;
  background: var(--text-black);
  display: inline-block;
}
.header .openbtn span:nth-of-type(1) {
  top: 24px;
  left: 24px;
}
.header .openbtn span:nth-of-type(2) {
  top: 31px;
  left: 24px;
}
.header .openbtn span:nth-of-type(3) {
  top: 38px;
  left: 24px;
}
.header .openbtn.active span {
  transition: all 0.4s ease;
}
.header .openbtn.active span:nth-of-type(1) {
  width: 40%;
  transform: translateY(7px) rotate(-45deg);
}
.header .openbtn.active span:nth-of-type(2) {
  opacity: 0;
}
.header .openbtn.active span:nth-of-type(3) {
  width: 40%;
  transform: translateY(-7px) rotate(45deg);
}
.header #gnav-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .header #gnav-sp {
    position: fixed;
    z-index: 100;
    display: block;
    top: 0px;
    right: -120%;
    width: 84%;
    padding: 120px 24px 80px 24px;
    background: white;
    transition: all 0.6s ease;
    box-shadow: 0px 3px 6px rgba(87, 69, 66, 0.3);
  }
  .header #gnav-sp.panelactive {
    right: 0;
  }
  .header #gnav-sp #gnav-sp-list {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
  }
  .header #gnav-sp #gnav-sp-list ul li {
    margin-bottom: 24px;
  }
  .header #gnav-sp #gnav-sp-list ul li a {
    font-size: 1.8rem;
  }
  .header #gnav-sp #gnav-sp-list .gnav-sp-list-nav2 {
    display: flex;
    flex-wrap: wrap;
    padding-top: 24px;
    border-top: 1px solid #777;
  }
  .header #gnav-sp #gnav-sp-list .gnav-sp-list-nav2 .gnav-item {
    width: 50%;
  }
}

section {
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  section {
    padding: 40px 0;
  }
}

.color-green {
  color: var(--green01);
}

.color-gray {
  color: #777;
}

.small {
  font-size: 80%;
}

.under {
  text-decoration: underline;
  text-decoration-color: #ecfbd6;
  text-decoration-thickness: 0.5em;
}

.sec-ttl01 {
  text-align: center;
  padding-bottom: 16px;
  position: relative;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .sec-ttl01 {
    margin-bottom: 24px;
  }
}
.sec-ttl01::after {
  content: "";
  width: 120px;
  height: 3px;
  background: var(--green01);
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.sec-ttl01 .sec-ttl {
  font-size: clamp(20px, 2.9282576867vw, 40vw);
  font-weight: 700;
  line-height: 1.375;
  margin-bottom: 4px;
}
.sec-ttl01 .sub-ttl {
  color: var(--green01);
  font-size: 1.6rem;
  line-height: 1;
}

.fixed-btn {
  position: fixed;
  bottom: 10px;
  right: 10px;
  width: 172px;
  height: 50px;
  border-radius: 40px;
  font-weight: 700;
  color: white;
  background-color: #00b900;
  font-size: 1.8rem;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fixed-btn span::before {
  content: "";
  display: inline-block;
  width: 1.2em;
  font-weight: 700;
  height: 1.1em;
  background: url(../../assets/images/icon-line.svg) no-repeat center/contain;
  margin-right: 0.2em;
}

.inner {
  margin: 0 auto;
  width: 87.8477306003%;
}

.ta-c {
  text-align: center;
}

.fixed-nav {
  position: fixed;
  top: 75px;
  left: 50%;
  z-index: 99;
  width: max-content;
  transform: translateX(-50%);
  background-color: white;
  border-radius: 5px;
  padding: 16px 24px;
}
@media screen and (max-width: 768px) {
  .fixed-nav {
    display: none;
  }
}
.fixed-nav .nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .fixed-nav .nav-list {
    flex-wrap: wrap;
  }
}
.fixed-nav .nav-list .item a {
  font-size: 1.5rem;
  padding: 0 16px;
  border-right: 1px solid #c4c4c4;
}
.fixed-nav .nav-list .item:last-child {
  border: none;
}

.mv {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  width: 100%;
  height: 100dvh;
  background-image: url(../../assets/images/mv.png);
  padding-bottom: 7.3206442167vw;
  padding-left: 6.0761346999vw;
  background-size: cover;
  background-position: center;
  padding-right: 6.0761346999vw;
}
@media screen and (max-width: 768px) {
  .mv {
    padding-bottom: 80px;
  }
}
.mv .mv-text-container {
  margin-top: auto;
  margin-right: auto;
  color: white;
}
.mv .mv-text-container .top {
  margin-bottom: 8px;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .mv .mv-text-container .top {
    flex-direction: column-reverse;
    margin-bottom: 16px;
  }
  .mv .mv-text-container .top img {
    width: 80%;
    display: block;
    margin: 0 auto;
  }
}
.mv .mv-text-container .top .text {
  font-size: 1.6rem;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .mv .mv-text-container .top .text {
    font-size: 1.4rem;
  }
}
.mv .mv-text-container .bottom {
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.2105263158;
}
@media screen and (max-width: 768px) {
  .mv .mv-text-container .bottom {
    font-size: 1.6rem;
  }
}

.top-feature {
  position: relative;
  padding-bottom: calc(13.6896046852vw + 80px);
}
.top-feature::after {
  content: "";
  background-image: url(../../assets/images/search-top.svg);
  background-size: 100%;
  position: absolute;
  background-position: bottom;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 13.6896046852vw;
}
@media screen and (max-width: 768px) {
  .top-feature::after {
    height: 80px;
    background-size: cover;
  }
}
.top-feature .list01 .item {
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .top-feature .list01 .item {
    gap: 8px;
  }
}
.top-feature .list01 .item:not(:last-child) {
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .top-feature .list01 .item:not(:last-child) {
    margin-bottom: 24px;
  }
}
.top-feature .list01 .item:nth-child(even) {
  margin-left: 6em;
}
@media screen and (max-width: 768px) {
  .top-feature .list01 .item:nth-child(even) {
    margin-left: 0;
  }
}
.top-feature .list01 .item .num-box {
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .top-feature .list01 .item .num-box {
    width: 80px;
  }
}

.sec-lead {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 32px;
}

.top-search {
  background-color: var(--bg-green);
  position: relative;
  padding-bottom: 200px;
}
@media screen and (max-width: 768px) {
  .top-search {
    padding-bottom: 120px;
  }
}
.top-search::before {
  content: "";
  background-image: url(../../assets/images/search-bottom.svg);
  background-size: 100%;
  position: absolute;
  background-position: bottom;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 13.6896046852vw;
}
@media screen and (max-width: 768px) {
  .top-search::before {
    background-size: cover;
    height: 80px;
  }
}
.top-search .search-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: stretch;
  gap: 20px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .top-search .search-list {
    grid-template-columns: 1fr;
  }
}
.top-search .search-list .item {
  background-color: white;
}
.top-search .search-list .item dt {
  height: 70px;
  padding: 13px 16px;
  width: 100%;
  border-radius: 10px 10px 0 0;
  color: white;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-size: 3rem;
}
.top-search .search-list .item dt::before {
  content: "";
  height: 1.2em;
  width: 1.5em;
  margin-right: 0.3em;
}
.top-search .search-list .item dd {
  padding: 16px;
  background-color: white;
}
.top-search .search-list .item dd .item-dd-top-list {
  display: grid;
}
.top-search .search-list .item dd .item-dd-top-list .item {
  font-size: 1.5rem;
  padding: 8px;
  line-height: 1.4666666667;
}
.top-search .search-list .item dd .item-dd-top-list .item a {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .top-search .search-list .item dd .item-dd-top-list .item a {
    flex-direction: column;
    justify-content: center;
  }
}
.top-search .search-list .item dd .item-dd-top-list .item .img-wrapper {
  margin-right: 1em;
}
@media screen and (max-width: 768px) {
  .top-search .search-list .item dd .item-dd-top-list .item .img-wrapper {
    margin-right: 0;
  }
}
.top-search .search-list .item dd .search-item-btn {
  margin: 24px auto 0;
  display: block;
  width: fit-content;
}
.top-search .search-list .item:nth-child(1) dt {
  background-color: #159819;
}
.top-search .search-list .item:nth-child(1) dt::before {
  background: url(../../assets/images/icon-buy.svg) no-repeat center/contain;
}
.top-search .search-list .item:nth-child(1) dd {
  padding: 24px 16px;
}
.top-search .search-list .item:nth-child(1) dd .item-dd-top-list {
  grid-template-columns: repeat(2, 1fr);
}
.top-search .search-list .item:nth-child(1) dd .item-dd-top-list .item:nth-child(odd) {
  border-right: 1px dashed #ccc;
}
.top-search .search-list .item:nth-child(1) dd .item-dd-top-list .item:not(:nth-last-child(-n+2)) {
  border-bottom: 1px dashed #ccc;
}
.top-search .search-list .item:nth-child(2) dt {
  background-color: #0076a3;
}
.top-search .search-list .item:nth-child(2) dt::before {
  background: url(../../assets/images/icon-rent.svg) no-repeat center/contain;
}
.top-search .search-list .item:nth-child(2) dd {
  padding: 24px 16px;
}
.top-search .search-list .item:nth-child(2) dd .item-dd-top-list {
  grid-template-columns: repeat(3, 1fr);
}
.top-search .search-list .item:nth-child(2) dd .item-dd-top-list .item:not(:nth-child(3n)) {
  border-right: 1px dashed #ccc;
}
.top-search .search-list .item:nth-child(2) dd .item-dd-top-list .item:not(:nth-last-child(-n+3)) {
  border-bottom: 1px dashed #ccc;
}
.top-search .search-list .item:nth-child(3) dt {
  background-color: #ef6056;
}
.top-search .search-list .item:nth-child(3) dt::before {
  background: url(../../assets/images/icon-sell.svg) no-repeat center/contain;
}
.top-search .search-list .item:nth-child(3) dd {
  padding: 24px 16px;
}
.top-search .search-list .item:nth-child(3) dd .text {
  font-size: 1.5rem;
}
.top-search .search-list .item:nth-child(4) dt {
  background-color: #003fa3;
}
.top-search .search-list .item:nth-child(4) dt::before {
  background: url(../../assets/images/icon-rent.svg) no-repeat center/contain;
}
.top-search .search-list .item:nth-child(4) dd {
  padding: 24px 16px;
}
.top-search .search-list .item:nth-child(4) dd .text {
  font-size: 1.5rem;
}

.color-red {
  color: #ee622e;
}

.top-news .news-list .item {
  border-bottom: 1px solid #ccc;
  padding: 32px 0;
}
.top-news .news-list .item .news-content {
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .top-news .news-list .item .news-content {
    flex-direction: column;
  }
}
.top-news .news-list .item .news-content .date {
  color: #777777;
  font-size: 1.6rem;
  font-weight: 700;
  font-family: var(--en);
  flex-shrink: 0;
  width: 12em;
}
.top-news .news-list .item .news-content .news-box {
  flex: 1;
}
.top-news .news-list .item .news-content .news-box h3 {
  font-size: 120%;
  font-weight: 700;
}
.top-news .news-bottom {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .top-news .news-bottom {
    flex-direction: column;
  }
}
.top-news .news-bottom .iframe-wrapper {
  width: 50%;
  height: 360px;
}
@media screen and (max-width: 768px) {
  .top-news .news-bottom .iframe-wrapper {
    width: 100%;
  }
}
.top-news .news-bottom .iframe-wrapper iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-news .news-bottom .img-wrapper {
  height: 360px;
  width: 50%;
}
@media screen and (max-width: 768px) {
  .top-news .news-bottom .img-wrapper {
    width: 100%;
  }
}
.top-news .news-bottom .img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-bottom-contact {
  background: url(../../assets/images/contact-bg.jpg) no-repeat center/cover;
  padding: 140px 0;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact {
    padding: 80px 0;
  }
}
.page-bottom-contact .contents {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact .contents {
    flex-direction: column;
  }
}
.page-bottom-contact .lead {
  font-weight: 700;
  margin-bottom: 10px;
  font-size: 2.4rem;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact .lead {
    font-size: 1.8rem;
  }
}
.page-bottom-contact .contact-link {
  width: 100%;
  font-size: 1.8rem;
  font-weight: 700;
  color: white;
  border-radius: 60px;
  justify-content: center;
  max-width: 320px;
  background: var(--green01);
  height: 60px;
  display: flex;
  margin: 0 auto;
  align-items: center;
}
.page-bottom-contact .contact-link::before {
  content: "";
  background: url(../../assets/images/icon-mail.svg) no-repeat center/contain;
  width: 1.5em;
  height: 1.2em;
  margin-right: 0.3em;
}
.page-bottom-contact .mail-box {
  width: 50%;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact .mail-box {
    width: 100%;
  }
}
.page-bottom-contact .tel-box {
  width: 50%;
  border-right: 1px solid #ddd;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact .tel-box {
    width: 100%;
    padding-bottom: 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid #ccc;
    border-right: none;
  }
}
.page-bottom-contact .tel-box a {
  color: var(--green01);
  font-size: 5rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .page-bottom-contact .tel-box a {
    font-size: 3rem;
    text-align: center;
    justify-content: center;
  }
}
.page-bottom-contact .tel-box a::before {
  content: "";
  background: url(../../assets/images/icon-tel.svg) no-repeat center/contain;
  width: 1.2em;
  height: 1em;
  margin-right: 0.1em;
}

.footer .top-nav {
  background: #fafafa;
  padding: 14px 0;
}
.footer .top-nav .nav-list {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .footer .top-nav .nav-list {
    flex-wrap: wrap;
    align-items: center;
    row-gap: 16px;
  }
}
.footer .top-nav .nav-list .item {
  font-size: 1.5rem;
}
@media screen and (max-width: 768px) {
  .footer .top-nav .nav-list .item {
    width: 50%;
    text-align: center;
  }
}
.footer .inner.flex {
  justify-content: space-between;
}
.footer .footer-middle {
  padding: 20px 0;
}
@media screen and (max-width: 768px) {
  .footer .footer-middle .inner.flex {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  .footer .footer-middle .left {
    flex-direction: column;
  }
  .footer .footer-middle .left .footer-logo {
    margin: 0 auto 16px;
  }
}
.footer .footer-middle .left address {
  line-height: 1.4;
  margin-left: 0.5em;
}
@media screen and (max-width: 768px) {
  .footer .footer-middle .left address {
    margin-left: 0;
    text-align: center;
    margin-bottom: 16px;
  }
}
.footer .footer-middle .right {
  align-self: flex-end;
}
@media screen and (max-width: 768px) {
  .footer .footer-middle .right {
    align-self: auto;
  }
}
.footer .footer-middle .right .nav-list {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 30px;
}
@media screen and (max-width: 768px) {
  .footer .footer-middle .right .nav-list {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
  }
}
.footer .footer-bottom {
  height: 40px;
  background: #439646;
  text-align: center;
  color: white;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

address {
  font-style: normal;
}

.lower .page-ttl-area {
  height: 320px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: url(../../assets/images/mv.png) no-repeat bottom center/cover;
}
.lower .page-ttl-area h2 {
  font-size: clamp(24px, 2.7818448023vw, 38px);
  font-weight: 700;
  color: white;
  text-align: center;
  margin-bottom: 80px;
  margin-top: auto;
}
@media screen and (max-width: 768px) {
  .lower .page-ttl-area h2 {
    margin-bottom: 130px;
  }
}

.page-flow .flow-head {
  padding: 56px 0 100px;
}
.page-flow .flow-head .lead {
  font-size: 1.8rem;
  font-weight: 400;
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-head .lead {
    font-size: 1.5rem;
  }
}
.page-flow .flow-head .flow-list {
  display: flex;
  column-gap: 46px;
  position: relative;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-head .flow-list {
    flex-direction: column;
    align-items: center;
  }
}
.page-flow .flow-head .flow-list .item {
  position: relative;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-head .flow-list .item {
    margin-bottom: 48px;
  }
  .page-flow .flow-head .flow-list .item:last-child {
    margin-bottom: 0;
  }
}
.page-flow .flow-head .flow-list .item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -40px;
  top: 40%;
  transform: translateY(-50%);
  background: url(../../assets/images/arrow-green.svg) no-repeat center/contain;
  width: 16px;
  height: 32px;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-head .flow-list .item:not(:last-child)::after {
    right: auto;
    left: 50%;
    top: auto;
    transform: translateX(-50%) rotate(90deg);
    bottom: -40px;
  }
}
.page-flow .flow-head .flow-list .item .text {
  margin-top: 8px;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
}
.page-flow .flow-body .flow-body-list {
  counter-reset: flow-num;
}
.page-flow .flow-body .flow-body-list > .item {
  counter-increment: flow-num;
  position: relative;
  margin-bottom: 80px;
}
.page-flow .flow-body .flow-body-list > .item:last-child::after {
  content: none;
}
.page-flow .flow-body .flow-body-list > .item::after {
  content: "";
  background: url(../../assets/images/arrow-double.svg) no-repeat center/contain;
  display: block;
  width: 40px;
  height: 30px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -50px;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper .img-wrapper {
  width: 17.1666666667%;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .flow-body-list > .item .flex-wrapper .img-wrapper {
    display: none;
  }
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl {
  width: 80%;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .flow-body-list > .item .flex-wrapper dl {
    width: 100%;
  }
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl dt {
  font-size: clamp(2rem, 2.3426061493vw, 32px);
  color: var(--green01);
  padding-bottom: 12px;
  position: relative;
  margin-bottom: 24px;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl dt::before {
  content: "";
  position: absolute;
  bottom: 0;
  height: 2px;
  width: 100%;
  background-color: #ccc;
  left: 0;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl dt::after {
  content: "";
  background: var(--green01);
  height: 2px;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 39.4736842105%;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl dt .ttl {
  position: relative;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-weight: 700;
}
.page-flow .flow-body .flow-body-list > .item .flex-wrapper dl dt .ttl::before {
  content: "0" counter(flow-num);
  color: var(--green01);
  font-family: var(--en);
  font-weight: 700;
  font-size: clamp(28px, 3.6603221083vw, 50px);
  margin-right: 0.3em;
}
.page-flow .flow-body .contents {
  text-align: center;
  margin-top: 24px;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .contents {
    flex-direction: column;
  }
}
.page-flow .flow-body .contents .lead {
  font-weight: 700;
  font-size: 2.4rem;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .contents .lead {
    font-size: 1.8rem;
  }
}
.page-flow .flow-body .contents .tel-box {
  width: 50%;
  padding-right: 16px;
  border-right: 1px solid #707070;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .contents .tel-box {
    width: 100%;
    margin-bottom: 32px;
  }
}
.page-flow .flow-body .contents .tel-box a {
  font-size: clamp(2.4rem, 3.6603221083vw, 50px);
  font-weight: 800;
  font-family: var(--en);
  color: var(--green01);
  line-height: 1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .contents .tel-box a {
    justify-content: center;
  }
}
.page-flow .flow-body .contents .tel-box a::before {
  content: "";
  background: url(../../assets/images/icon-tel.svg) no-repeat center/contain;
  width: 0.5em;
  height: 1em;
  margin-right: 0.1em;
}
.page-flow .flow-body .contents .mail-box {
  padding-left: 16px;
  width: 50%;
}
@media screen and (max-width: 768px) {
  .page-flow .flow-body .contents .mail-box {
    width: 100%;
  }
}
.page-flow .flow-body .contents .mail-box .contact-link {
  color: white;
  background: var(--green01);
  border-radius: 60px;
  height: 60px;
  width: 100%;
  max-width: 320px;
  font-size: 1.8rem;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
.page-flow .flow-body .contents .mail-box .contact-link::before {
  content: "";
  background: url(../../assets/images/icon-mail.svg) no-repeat center/contain;
  width: 1.5em;
  height: 1.2em;
  margin-right: 0.3em;
}

.ttl02 {
  color: var(--green01);
  font-weight: 700;
  font-size: clamp(2rem, 2.3426061493vw, 32px);
  padding-bottom: 8px;
  position: relative;
  margin-bottom: 20px;
}
.ttl02::before {
  content: "";
  background: #ccc;
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: 0;
}
.ttl02::after {
  content: "";
  background: var(--green01);
  height: 2px;
  width: 30%;
  position: absolute;
  bottom: 0;
  left: 0;
}

.btn01 {
  max-width: 400px;
  width: 100%;
  border-radius: 60px;
  font-size: 1.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ddd;
  height: 60px;
  background: linear-gradient(#fafafa 0%, #e5e5e5 100%);
  margin-top: 32px;
}
.btn01::before {
  content: "";
  background: url(../../assets/images/pdf.svg) no-repeat center/contain;
  width: 2em;
  height: 1.3em;
  margin-right: 0.2em;
  display: inline-block;
}

.page-purchase section .under {
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .page-purchase .sec01 .inner.flex {
    flex-direction: column;
  }
  .page-purchase .sec01 .inner.flex .img-wrapper {
    margin: 32px auto 0;
    max-width: 180px;
  }
}
.page-purchase .sec01 dl {
  width: 70%;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .page-purchase .sec01 dl {
    width: 100%;
    align-items: center;
  }
}
.page-purchase .sec02 .bnr {
  width: 100%;
  margin-top: 24px;
}
.page-purchase .sec02 .bnr img {
  width: 100%;
  display: block;
}

.bg-red {
  color: white;
  font-weight: 700;
  background-color: #fb6750;
  width: 100px;
  height: 32px;
  margin: 16px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}


.privacy-box {
  border: 1px solid #ccc;       /* 薄い灰色の枠線 */
  background-color: #f2f2f2;    /* 薄い灰色の背景 */
  padding: 20px 25px;           /* 内側の余白 */
  margin: 20px auto;            /* 上下余白 + 水平中央寄せ */
  max-width: 800px;             /* 最大幅 */
  width: 90%;                   /* レスポンシブ対応 */
  box-sizing: border-box;
  border-radius: 8px;
  line-height: 1.6;             /* 行間で読みやすく */
}

.privacy-box h2 {
  font-size: 1.3em;
  margin-bottom: 10px;
  color: #333;
}

.privacy-box p {
  color: #555;
  font-size: 1em;
  margin-bottom: 10px;
}

.privacy-box a {
  color: #0073e6;               /* リンクは青色 */
  text-decoration: underline;
}

/* スマホ対応 */
@media (max-width: 500px) {
  .privacy-box {
    padding: 15px 20px;
  }
}

/*プライバシーポリシーテーブル*/
.table_privacy{
	width: 98%;
	border-collapse: collapse;
	margin-left: 15px;
}
.table_privacy th{
	width: 5%;
	padding-top: 15px;
	padding-right: 5px;
	padding-bottom: 15px;
	padding-left: 15px;
	font-weight: normal;
	vertical-align: top;

}
.table_privacy td{
	padding: 15px;
	vertical-align: top;

}



/*** レスポンシブテーブルデザイン ***/
.shokai{
  width:100%;
  border: 2px solid #d6ceb4;
  overflow: hidden;
  word-break: break-all;
  word-wrap: break-word;
  margin-bottom: 60px;
}
 
.shokai th{
  padding: 15px;
  border-top: solid 1px #ffffff;
  width: 30%;
  overflow: hidden;
  color: #13131e;
  font-style: normal;
  font-weight: bold;
  font-size: 100%;
  text-align: left;
  word-break: break-all;
  word-wrap: break-word;
  vertical-align: top;
  background-color: #eeece4;
}
 
.shokai td{
padding: 15px;
text-align: left;
vertical-align: top;
color: #595960;
background-color: #ffffff;
border-top: dotted 1px #e0dccc;
overflow: hidden;
word-break: break-all;
word-wrap: break-word;
}
 
@media (max-width: 768px){
.shokai th{
  width:100%;
  display:block;
  margin: 0 auto;
  border:none;
  border-radius: 3px;
}
.shokai td{
  display: list-item;
  width: 100%;
  border-top: none !important;
}
}
/*** レスポンシブテーブルデザイン　おわり ***/



/* イメージリスト */
#imageList{
	max-width:1200px;
	overflow:hidden;
	margin-top:20px;
}

#imageList li{
	width:33.3333%;
	float:left;
	margin-bottom:20px;
	padding:0 15px;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	list-style: none;
}


#imageList p.txt01 {
	line-height:45px;
	text-align:center;
	color:#FFFFFF;
	font-size:120%;
	font-weight:bold;
	background-color: #333333;
}

#imageList p.txt02 {
	color:#333333;
}



.img-responsive{
	width:100%;
	height:auto;
}


/* TABLET */
@media screen and (max-width: 992px){

#imageList li{
	width:50%;
	float:left;
	padding:0 15px;
}
}

/* TABLET */
@media screen and (max-width: 768px){

#imageList li{
	width:100%;
	float:none;
	padding:0 ;
}

}



/* イメージリスト */
#imageList02{
	max-width:1200px;
	overflow:hidden;
	margin-top:20px;
}

#imageList02 li{
	width:50%;
	float:left;
	margin-bottom:20px;
	padding:0 15px;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	list-style: none;
}

.img-responsive{
	width:100%;
	height:auto;
}


/* TABLET */
@media screen and (max-width: 992px){

#imageList02 li{
	width:50%;
	float:left;
	padding:0 15px;
}
}






}


/*** レスポンシブテーブル会社沿革 ***/
.comhis01{
	width: 100%;
	overflow: hidden;
	word-break: break-all;
	word-wrap: break-word;
	line-height: 1.8;
	margin-right: auto;
	margin-left: auto;
	margin-bottom: 60px;
}
 
.comhis01 th{
	padding: 20px;
	width: 20%;
	overflow: hidden;
	font-style: normal;
	color: #666666;
	font-size: 100%;
	text-align: left;
	word-break: break-all;
	word-wrap: break-word;
	vertical-align: top;
	border-bottom-width: 3px;
	border-bottom-style: solid;
	border-bottom-color: #CCCCCC;
}
 
.comhis01 td{
	padding: 20px;
	text-align: left;
	vertical-align: top;
	background-color: #ffffff;
	overflow: hidden;
	word-break: break-all;
	word-wrap: break-word;
	border-bottom-width: 2px;
	border-bottom-style: dotted;
	border-bottom-color: #CCCCCC;
	font-weight: normal;
}



@media (max-width: 768px){
.comhis01 {
  width: 100%;
}
.comhis01 th{
  width:100%;
  display:block;
  margin: 0 auto;
  border:none;
  border-radius: 3px;
	padding-bottom: 0px;
}
.comhis01 td{
  display: list-item;
  width: 95%;
  border-top: none !important;
	padding-top: 0px;
}
}
/*** レスポンシブテーブル会社沿革　おわり ***/



/*ボックスレスポンシブ001*/
.boxres001 {
	margin-bottom: 20px;
	min-height:250px ;
}
.boxres001 img {
	width:40%;
	float: right;
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 5px;
	padding-left: 20px;
}
.boxres001 p.txt01 {
	padding-top:5px;
	color: #00b900;
}
.boxres001 p.txt02 {
	padding-top:5px;
}

@media (max-width: 768px){
.boxres001 {
	min-height:0px ;
}
.boxres001 img{
	width:100%;
	float:none;
	padding:0 ;
}
}



/*Hタグ*/
.boxresh1 {
	margin-bottom: 20px;
}

.boxresh1 p.txt01 {
  color: var(--green01);
  font-weight: 700;
  font-size: clamp(2rem, 2.3426061493vw, 32px);
  padding-bottom: 8px;
  position: relative;
  margin-bottom: 20px;
}
.boxresh1 p.txt01::before {
  content: "";
  background: #ccc;
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: 0;
}
.boxresh1 p.txt01::after {
  content: "";
  background: var(--green01);
  height: 2px;
  width: 30%;
  position: absolute;
  bottom: 0;
  left: 0;
}

@media (max-width: 768px){
.boxresh1 {
	min-height:0px ;
}
.boxresh1 p.txt01 {
	padding-top: 5px;
	color: #00b900;
}

}



.job-content {
  background-color: #f0fdf4; /* 薄い緑背景 */
  padding: 40px 20px;
  border-radius: 10px;
  margin: 0 auto;
  font-family: "Yu Gothic", sans-serif;
}

.job-content h2 {
  color: var(--green01);
  font-weight: 700;
  font-size: clamp(2rem, 2.3426061493vw, 32px);
  text-align: center;
  margin-bottom: 30px;
  border-bottom: 3px solid #66bb6a;
  display: inline-block;
  padding-bottom: 5px;
}

.job-item {
  background-color: #ffffff;
  border-left: 5px solid #66bb6a; /* 緑のアクセントライン */
  padding: 20px 25px;
  margin-bottom: 20px;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.job-item h3 {
  color: #2e7d32; /* 中緑 */
  font-size: clamp(1.2rem, 1.4426061493vw, 18px);
  font-weight: 600;
  margin-bottom: 10px;
}

.job-item p {
  color: #333333;
  line-height: 1.7;
  font-size: 16px;
}




.recruit-flow {
  padding: 40px 20px;
  max-width: 1200px;
  margin: 0 auto;
  font-family: "Yu Gothic", sans-serif;
}

.recruit-flow h2 {
  color: #1b5e20; /* 濃い緑 */
  font-size: 28px;
  text-align: center;
  margin-bottom: 30px;
  border-bottom: 3px solid #66bb6a;
  display: inline-block;
  padding-bottom: 5px;
}

.steps-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-between;
}

.step {
  background-color: #ffffff;
  border: 2px solid #66bb6a; /* 緑の枠線 */
  border-radius: 8px;
  flex: 1 1 calc(33.333% - 20px); /* 3列表示 */
  box-sizing: border-box;
  padding: 20px;
  min-width: 250px;
}

.step-number {
  background-color: #66bb6a;
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  padding: 10px 15px;
  border-radius: 5px;
  display: inline-block;
  margin-bottom: 15px;
}

.step-content h3 {
  color: #2e7d32;
  font-size: 20px;
  margin-bottom: 10px;
}

.step-content p {
  color: #333;
  font-size: 16px;
  line-height: 1.6;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
  .step {
    flex: 1 1 calc(50% - 20px); /* 2列表示 */
  }
}

@media (max-width: 600px) {
  .step {
    flex: 1 1 100%; /* 1列表示 */
  }
}
.big-text {
	font-size: 2.4rem;
	font-family: "NotoSansCJKjp-Bold, Noto Sans CJK JP", Osaka-mono, monospace;
	color: #333;
	text-align: center;
	margin-top: 10px;
	margin-bottom: 10px;
	font-weight: 600;
}