a.anchor {
  width: 0;
  height: 0;
  opacity: 0;
  appearance: none;
  visibility: hidden;
  position: relative;
  top: -100px;
}

.bg-beige {
  background: #f7f5f0;
}

body .sub {
  margin-top: 80px;
}

.footer {
  background-color: #2c2c2c;
  color: #fff;
  border-top: none;
  position: relative;
}

.footer a,
.footer p,
.footer li,
.footer_nav ul li a,
.footer_logo a {
  color: #fff;
}

.footer .address {
  color: #000;
}

.footer .address.address_sub {
  color: #fff;
}

.footer .footer_logo a img {
  max-width: 220px;
}

.footer_nav ul li.banner_btn {
  position: absolute;
  width: fit-content;
  bottom: 20%;
  right: 7%;
  margin-bottom: 0;
  z-index: 1;
}

.footer_nav ul li.banner_btn a {
  padding: 10px 13px 10px 30px;
  border-radius: 100vh;
  background: rgba(203, 109, 81, 1);
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  align-items: center;
  gap: 20px;
}

.footer_nav ul li.banner_btn a img {
  width: 40px;
  height: 40px;
  border-radius: 100vh;
  background-color: #fff;
  padding: 5px;
}

.lower-mv {
  height: 526px;
  min-height: 526px;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
}

.lower-mv .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.lower-mv .inner .mv_text {
  color: #fff;
  font-size: 36px;
  text-align: center;
  filter: drop-shadow(0px 3px 2px #0003);
  z-index: 2;
  margin-bottom: 250px;
}

.lower-mv .inner .mv_text  .mv_ttl_en {
display: none;
}

.lower-mv .inner .mv_text h2 {
  font-family: var(--font-family4);
  font-weight: 400;
}

.lower-mv_bg {
  width: 100%;
  height: 300px;
  min-height: 300px;
  position: absolute;
  bottom: 0;
  left: 0;
  animation-name: left-rightanim;
  animation-duration: 1s;
  animation-delay: 1s;
  animation-fill-mode: both; /* ✅ keeps it off-screen until delay is done */
  z-index: 1;
}

.lower-mv_accent {
  width: 100%;
  height: 526px;
  min-height: 526px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: rgba(102, 102, 102, 0.9);
  animation-name: left-rightanim;
  animation-delay: 0s;
  animation-duration: 1s;
  animation-fill-mode: both; /* ✅ */
}

@keyframes left-rightanim {
  from {
    left: -302vh;
  }
  to {
    left: 0;
  }
}

.breadcrumbs {
  position: absolute;
  bottom: -30px;
  left: 0;
  right: 0;
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 10px;
  padding: 0 3%;
  color: #000;
}

.breadcrumbs a {
  color: #000;
}

.subttl {
  font-size: 38px;
  font-family: var(--font-family2);
  color: var(--main-bg-color);
  display: flex;
  flex-direction: column;
  margin-bottom: 40px;
}

.subttl span {
  font-size: 18px;
  color: #000;
}

.sub-about .wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-about .sec01 .txt_box h3 {
  text-align: end;
}

.sub-about .sec01 .txt_box h3 span {
  font-size: 14px;
  margin-right: 15px;
}

.sub-about .sec01 .img_box img {
  height: 100%;
  margin-bottom: 30px;
}

.sub-about .sec02 ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: solid 1px;
  padding-bottom: 20px;
  padding-top: 20px;
  padding-left: 3%;
  padding-right: 3%;
  gap: 20px;
}

.sub-about .sec02 ul li span {
  width: 100%;
}

.sub-about .sec02 ul li span:nth-child(1) {
  color: var(--main-bg-color);
  width: 20%;
}

.sub-about .sec04 ul {
  background-color: var(--color-yellow);
  padding: 30px;
  border-radius: 10px;
}

.sub-about .sec04 ul li {
  border-left: solid 1px var(--color-red);
  border-right: solid 1px var(--color-red);
  border-bottom: solid 1px var(--color-red);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 50px;
  background-color: #fff;
}

.sub-about .sec04 ul li.head_ttl {
  background-color: var(--color-red);
  color: #fff;
}

.sub-about .sec04 ul li span {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-about .sec04 ul li span:nth-child(2) {
  border-left: solid 1px var(--color-red);
}

.sub-about .sec04 ul li:nth-child(1) {
  border-top: solid 1px var(--color-red);
}

.sub-about .sec05 .calendar_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.sub-about .sec05 .calendar_wrap div {
  width: calc(100% / 3.2);
}

.sub-about .sec05 .calendar_wrap div p {
  margin-bottom: 10px;
}

.sub-about .sec05 h3 span {
  color: #FFB3B3;
  margin-right: 5px;
}

.sub-news-list .news-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px 20px;
  margin-bottom: 50px;
}

.sub-news-list .news-list .news-item {
  width: calc(100% / 4);
}

.sub-news-list .news-list .news-item a .news-group .txt_box {
  display: flex;
  flex-direction: column;
  color: #000;
}

.sub-news-details .inner .wrap .img_box img {
  width: 100%;
  max-width: 600px;
}

.news__pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.news__pagination li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 45px;
  height: 45px;
  color: var(--color-red);
  font-size: 18px;
  font-weight: 600;
}

.news__pagination li a.current_page {
  background-color: var(--color-red);
  color: #fff;
}

.sub-thanks h2 {
  font-size: 25px;
  font-family: var(--font-family3);
}

.sub-thanks .btn01 {
  background-color: var(--color-green);
  border: var(--color-green);
}

.sub-faq .accordions .accordion {
  border-bottom: 1px solid #BFBFBF;
  color: var(--main-color);
  position: relative;
}

.sub-faq .accordions .accordion:first-child {
  border-top: 1px solid #BFBFBF;
}

.sub-faq .accordions .accordion::before,
.sub-faq .accordions .accordion::after {
  content: "";
  position: absolute;
  top: 35px;
  right: 10px;
  width: 20px;
  height: 2px;
  background: #000;
  transform: translate(-50%, -50%);
  transition: 0.6s;
}

.sub-faq .accordions .accordion::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.accordion.is-open::after {
  opacity: 0;
}

.sub-faq .accordions .accordion .accordion_q,
.sub-faq .accordions .accordion .accordion_a {
  padding: 20px;
  padding-right: 50px;
  display: flex;
  gap: 10px;
  color: #000;
}

.sub-faq .accordions .accordion .accordion_a {
  padding-top: 0;
}

.sub-faq .accordions .accordion .accordion_q::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  background: url(../img/faq/q.png) no-repeat;
  background-size: contain;
  background-position: center;
}

.sub-faq .accordions .accordion .accordion_a::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  background: url(../img/faq/a.png) no-repeat;
  background-size: contain;
  background-position: center;
}

.sub-access .wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
}

.sub-access .wrap div {
  width: 100%;
}

.sub-access .wrap .map_box iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
}

.sub-trador_information .txt_box h2 {
  font-size: 25px;
}

.sub-trador_information .btn_box {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.sub-trador_information .btn_box a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  width: calc(100% / 5);
  color: #fff;
  font-weight: 600;
  background: grey;
  border-radius: 10px;
  font-size: 20px;
  padding: 0 3%;
}

.sub-trador_information .btn_box a.green {
  background: var(--color-green);
}

.sub-trador_information .btn_box a.blue {
  background: var(--color-blue);
}

.sub-trador_information .btn_box a.red {
  background: var(--color-red);
}

.sub-trador_information .btn_box a.yellow {
  background: var(--color-yellow);
}

.sub-products .sec01.wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
}

.sub-products .sec01.wrap .img_box,
.sub-products .sec01.wrap .txt_box {
  width: calc(100% / 2.1);
}

.sub-products .sec01.wrap .txt_box {
  background-image: url(../img/products/bg01.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 95%;
  height: 100%;
  min-height: 375px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  justify-content: center;
  padding: 40px;
}

.sub-products .sec01.wrap .txt_box h2 {
  font-size: 25px;
  font-family: var(--font-family3);
  font-weight: 400;
}

.sub-products .seasonal {

}

.sub-products .seasonal .wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-products .seasonal .wrap .ttl_wrap {
  width: 100%;
  max-width: 200px;
  font-family: var(--font-family3);
  padding: 55px 0 40px 0;
  padding-left: 40px;
  position: relative;
  line-height: 25px;
}

.sub-products .seasonal .wrap .ttl_wrap::after {
  content: "";
  background-color: #FFD3E8;
  position: absolute;
  width: 100px;
  height: 100px;
  transform: translateY(-50%);
  top: 50%;
  left: 0;
  z-index: -1;
  border-radius: 100vh;
}

.sub-products .seasonal .wrap .ttl_wrap.pink::after {
  background-color: #FFD3E8;
}

.sub-products .seasonal .wrap .ttl_wrap.green::after {
  background-color: #EEFFD3;
}

.sub-products .seasonal .wrap .ttl_wrap.orange::after {
  background-color: #FFE5D3;
}

.sub-products .seasonal .wrap .ttl_wrap.blue::after {
  background-color: #D3F2FF;
}

.sub-products .seasonal .wrap .ttl_wrap h2 {
  font-size: 25px;
}

.sub-products .seasonal .desc {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 60px;
}

.sub-products .seasonal .wrap .img_box {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 60%;
}

.sub-products .seasonal .wrap .img_box div {
  width: calc(100% / 2.5);
}

.sub-products .seasonal .desc:nth-last-child(1) {
  margin-bottom: 0;
}

@media (max-width: 1400px) {

}

/* ===========================
   CONTACT PAGE - New Design
=========================== */
.contact__form {
  max-width: 700px;
  margin: 0 auto;
}

.form-group {
  margin-bottom: 24px;
}

.form-group label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  font-size: 0.95rem;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: 2px;
  font-size: 0.95rem;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
  transition: border-color 0.2s;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #c0392b;
}

.form-group textarea {
  resize: vertical;
  min-height: 160px;
}

.required {
  color: #c0392b;
  margin-left: 2px;
}

.form-privacy {
  margin: 30px 0 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.form-privacy input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #c0392b;
  flex-shrink: 0;
}

.form-privacy label a {
  color: #c0392b;
  text-decoration: underline;
}

.required-note {
  font-size: 0.85rem;
  color: #c0392b;
  margin-bottom: 30px;
}

.submit-btn {
  background-color: #c0392b;
  color: #fff;
  border: none;
  padding: 14px 60px;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  border-radius: 2px;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}

.submit-btn:hover {
  opacity: 0.85;
}

/* ===========================
   ABOUT PAGE
=========================== */
.sub-about-greeting .inner,
.sub-about-info .inner {
  max-width: 860px;
}

.greeting-wrap p {
  line-height: 1.9;
  margin-bottom: 16px;
}

.greeting-sign {
  text-align: right;
  font-weight: 600;
  margin-top: 30px;
}

.bg-gray {
  background-color: #f5f5f5;
}

.philosophy-wrap {
  display: flex;
  gap: 40px;
  justify-content: center;
  flex-wrap: wrap;
}

.philosophy-item {
  flex: 1;
  min-width: 180px;
  max-width: 260px;
  text-align: left;
}

.philosophy-ttl {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 10px;
  color: #c0392b;
}

.philosophy-item p {
  font-size: 0.9rem;
  color: #555;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
}

.company-table th,
.company-table td {
  padding: 16px 20px;
  border: none;
  border-bottom: 1px solid #eee;
  font-size: 0.95rem;
  vertical-align: middle;
}

.company-table th {
  background-color: #f5f5f5;
  font-weight: 600;
  width: 180px;
  white-space: nowrap;
}

.map-wrap {
  max-width: 860px;
  margin: 0 auto;
  background: #e8e8e8;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ddd;
}

.map-wrap iframe {
  display: block;
  width: 100%;
}

.map-note {
  font-size: 0.85rem;
  color: #888;
  margin-top: 10px;
}

.img-placeholder {
  background: #d8d8d8;
  width: 100%;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  font-size: 0.85rem;
}

.img-placeholder.large {
  aspect-ratio: 16 / 9;
  min-height: 280px;
  font-size: 1rem;
  background: #e0e0e0;
}

.overview-table {
  width: 100%;
  border-collapse: collapse;
  background: #f9f9f9;
  margin-bottom: 40px;
}

.overview-table th,
.overview-table td {
  padding: 12px 16px;
  border: 1px solid #ddd;
  font-size: 0.9rem;
}

.overview-table th {
  background: #f0f0f0;
  font-weight: 600;
  width: 100px;
  white-space: nowrap;
}

.btn01.red,
.btn01.submit-btn {
  background-color: #c0392b;
  color: #fff;
  border: 2px solid #c0392b;
  border-radius: 4px;
  padding: 0 3%;
  display: inline-block;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
  transition: opacity 0.2s;
}

.btn01.red:hover,
.btn01.submit-btn:hover {
  opacity: 0.85;
}

.sub-about-info a {
  background-color: rgba(247, 245, 240, 1);
  border-radius: 8px;
  width: 100%;
  max-width: 200px;
  margin: 50px auto 0;
  display: flex;
  padding: 20px;
  color: #000;
  transition: 0.5s;
  justify-content: space-between;
}

.sub-about-info a:hover {
  background-color: var(--color01);
  color: #fff;
}

/* ===========================
   RESPONSIVE
=========================== */
@media only screen and (max-width: 1000px) {
  .philosophy-wrap {
    gap: 30px;
  }
}

@media only screen and (max-width: 768px) {
  .company-table { display: block; }
  .company-table tbody, .company-table tr { display: block; }
  .company-table th, .company-table td { display: block; width: 100%; box-sizing: border-box; }
  .company-table th { background: none; font-weight: 700; padding-bottom: 4px; border-bottom: none; text-align: start; }
  .company-table td { padding-top: 0; }
  .overview-table { display: block; overflow-x: auto; }
  .philosophy-wrap { flex-direction: column; align-items: center; }
  .philosophy-item { max-width: 100%; width: 100%; }
}

/* ===========================
   RECRUIT PAGE
=========================== */

.sub-recruit-apply .btn01.red {
  max-width: 500px;
  width: 100%;
  border-radius: 4px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Appeal Section */
.appeal-wrap {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.appeal-item {
  flex: 1;
  min-width: 220px;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 28px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.appeal-num {
  font-size: 1.8rem;
  font-weight: 700;
  color: #c0392b;
  margin-bottom: 10px;
  line-height: 1;
}

.appeal-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.appeal-desc {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.7;
}

/* Benefits Section */
.benefits-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 700px;
}

.benefits-list li {
  padding: 10px 0 10px 20px;
  border-bottom: 1px solid #ddd;
  font-size: 0.95rem;
  line-height: 1.7;
  position: relative;
}

.benefits-list li::before {
  content: '';
  width: 8px;
  height: 8px;
  background: #c0392b;
  border-radius: 1px;
  position: absolute;
  left: 0;
  top: 18px;
}

/* Jobs Section */
.job-block {
  border: 1px solid #e0e0e0;
  overflow: hidden;
}

.job-category-ttl {
  background: #c0392b;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  padding: 12px 20px;
  margin: 0;
}

.job-category-ttl.blue {
  background: rgba(25, 47, 86, 1);
}

.job-table {
  width: 100%;
  border-collapse: collapse;
}

.job-table th,
.job-table td {
  padding: 14px 20px;
  border-bottom: 1px solid #eee;
  font-size: 0.9rem;
  vertical-align: top;
  line-height: 1.7;
}

.job-table th {
  background: #fafafa;
  font-weight: 600;
  width: 200px;
  white-space: nowrap;
  color: #444;
}

.job-table tr:last-child th,
.job-table tr:last-child td {
  border-bottom: none;
}

/* Apply Steps */
.apply-steps {
  list-style: none;
  padding: 0;
  margin: 0 auto 50px;
  max-width: 640px;
}

.apply-step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 30px;
}

.step-num {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: #c0392b;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
}

.step-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.step-desc {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.6;
}

/* Apply Contact Box */
.apply-contact-box {
  max-width: 700px;
  margin: 0 auto;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  padding: 30px 36px;
  text-align: left;
}

.apply-contact-box span a {
  color: #c0392b;
  border-bottom: solid 1px #c0392b;
}

.apply-contact-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.apply-contact-box p {
  font-size: 0.9rem;
  line-height: 1.8;
  margin: 0;
}

.apply-privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.88rem;
}

.apply-privacy input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #c0392b;
  flex-shrink: 0;
}

.apply-privacy label a {
  color: #c0392b;
  text-decoration: underline;
}

/* Responsive */
@media only screen and (max-width: 768px) {
  .appeal-wrap {
    flex-direction: column;
  }

  .appeal-item {
    min-width: unset;
  }

  .job-table th {
    width: 90px;
    padding: 12px 12px;
  }

  .job-table td {
    padding: 12px 12px;
  }

  .apply-contact-box {
    padding: 24px 20px;
  }
}

/* ===========================
   CONTACT PAGE
=========================== */
.contact__form {
  max-width: 700px;
  margin: 0 auto;
}

.form-group {
  margin-bottom: 24px;
}

.form-group label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  font-size: 0.95rem;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: 2px;
  font-size: 0.95rem;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
  transition: border-color 0.2s;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #c0392b;
}

.form-group textarea {
  resize: vertical;
  min-height: 160px;
}

.required {
  color: #c0392b;
  margin-left: 2px;
}

.form-privacy {
  margin: 30px 0 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.form-privacy input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #c0392b;
  flex-shrink: 0;
}

.form-privacy label a {
  color: #c0392b;
  text-decoration: underline;
}

.required-note {
  font-size: 0.85rem;
  color: #c0392b;
  margin-bottom: 30px;
}

.submit-btn {
  background-color: #c0392b;
  color: #fff;
  border: none;
  padding: 14px 60px;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  border-radius: 2px;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}

.submit-btn:hover {
  opacity: 0.85;
}

/* ===========================
   ABOUT PAGE
=========================== */
.sub-about-greeting .inner,
.sub-about-info .inner {
  max-width: 860px;
}

.greeting-wrap p {
  line-height: 1.9;
  margin-bottom: 16px;
}

.greeting-sign {
  text-align: right;
  font-weight: 600;
  margin-top: 30px;
}

.bg-gray {
  background-color: #f5f5f5;
}

.philosophy-wrap {
  display: flex;
  gap: 40px;
  justify-content: center;
  flex-wrap: wrap;
}

.philosophy-item {
  flex: 1;
  min-width: 180px;
  max-width: 260px;
  text-align: left;
}

.philosophy-ttl {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 10px;
  color: #c0392b;
}

.philosophy-item p {
  font-size: 0.9rem;
  color: #555;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
}

.company-table th,
.company-table td {
  padding: 16px 20px;
  border: none;
  border-bottom: 1px solid #eee;
  font-size: 0.95rem;
  vertical-align: middle;
}

.company-table th {
  background-color: #f5f5f5;
  font-weight: 600;
  width: 180px;
  white-space: nowrap;
}

.map-wrap {
  max-width: 860px;
  margin: 0 auto;
  background: #e8e8e8;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ddd;
}

.map-wrap iframe {
  display: block;
  width: 100%;
}

.map-note {
  font-size: 0.85rem;
  color: #888;
  margin-top: 10px;
}

.img-placeholder {
  background: #d8d8d8;
  width: 100%;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  font-size: 0.85rem;
}

.img-placeholder.large {
  aspect-ratio: 16 / 9;
  min-height: 280px;
  font-size: 1rem;
  background: #e0e0e0;
}

.overview-table {
  width: 100%;
  border-collapse: collapse;
  background: #f9f9f9;
  margin-bottom: 40px;
}

.overview-table th,
.overview-table td {
  padding: 12px 16px;
  border: 1px solid #ddd;
  font-size: 0.9rem;
}

.overview-table th {
  background: #f0f0f0;
  font-weight: 600;
  width: 100px;
  white-space: nowrap;
}

.btn01.red {
  background-color: #c0392b;
  color: #fff;
  border: 2px solid #c0392b;
  border-radius: 4px;
  padding: 14px 50px;
  display: inline-block;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
  transition: opacity 0.2s;
}

.btn01.red:hover {
  opacity: 0.85;
}

/* ===========================
   RECRUIT PAGE
=========================== */
.appeal-wrap {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.appeal-item {
  flex: 1;
  min-width: 220px;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 28px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.appeal-num {
  font-size: 1.8rem;
  font-weight: 700;
  color: #c0392b;
  margin-bottom: 10px;
  line-height: 1;
}

.appeal-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.appeal-desc {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.7;
}

.benefits-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 700px;
}

.benefits-list li {
  padding: 10px 0 10px 20px;
  border-bottom: 1px solid #ddd;
  font-size: 0.95rem;
  line-height: 1.7;
  position: relative;
}

.benefits-list li::before {
  content: '';
  width: 8px;
  height: 8px;
  background: #c0392b;
  border-radius: 1px;
  position: absolute;
  left: 0;
  top: 18px;
}

.job-block {
  border: 1px solid #e0e0e0;
  overflow: hidden;
}

.job-category-ttl {
  background: #c0392b;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  padding: 12px 20px;
  margin: 0;
}

.job-table {
  width: 100%;
  border-collapse: collapse;
}

.job-table th,
.job-table td {
  padding: 14px 20px;
  border-bottom: 1px solid #eee;
  font-size: 0.9rem;
  vertical-align: top;
  line-height: 1.7;
}

.job-table th {
  background: #fafafa;
  font-weight: 600;
  width: 200px;
  white-space: nowrap;
  color: #444;
}

.job-table tr:last-child th,
.job-table tr:last-child td {
  border-bottom: none;
}

.apply-steps {
  list-style: none;
  padding: 0;
  margin: 0 auto 50px;
  max-width: 640px;
}

.apply-step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 30px;
}

.step-num {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: #c0392b;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
}

.step-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.step-desc {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.6;
}

.apply-contact-box {
  max-width: 700px;
  margin: 0 auto;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  padding: 30px 36px;
  text-align: left;
  margin-bottom: 30px;
}

.apply-contact-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.apply-contact-box p {
  font-size: 0.9rem;
  line-height: 1.8;
  margin: 0;
}

.apply-privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.88rem;
}

.apply-privacy input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #c0392b;
  flex-shrink: 0;
}

.apply-privacy label a {
  color: #c0392b;
  text-decoration: underline;
}

/* ===========================
   RESPONSIVE - All subpages
=========================== */
@media only screen and (max-width: 1000px) {
  .philosophy-wrap {
    gap: 30px;
  }
}

@media only screen and (max-width: 768px) {
  .company-table { display: block; }
  .company-table tbody, .company-table tr { display: block; }
  .company-table th, .company-table td { display: block; width: 100%; box-sizing: border-box; }
  .company-table th { background: none; font-weight: 700; padding-bottom: 4px; border-bottom: none; }
  .company-table td { padding-top: 0; }
  .overview-table { display: block; overflow-x: auto; }
  .philosophy-wrap { flex-direction: column; align-items: center; }
  .philosophy-item { max-width: 100%; width: 100%; }
  .appeal-wrap { flex-direction: column; }
  .appeal-item { min-width: unset; }
  .job-table th { width: 90px; padding: 12px; }
  .job-table td { padding: 12px; }
  .apply-contact-box { padding: 24px 20px; }
}

/* ===========================
   BUSINESS PAGE
=========================== */

#business {
  background-color: rgba(245, 240, 234, 1);
}

.business-intro {
  padding-top: 0;
  padding-bottom: 60px;
}

.business-intro .inner {
  max-width: 700px;
}

.business-intro p {
  line-height: 1.9;
  margin-bottom: 6px;
}

.business_wrap .cards {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 50px;
}

.business_wrap .cards.mb {
  margin-bottom: 0;
}

.business_wrap .cards .card {
  width: calc(95% / 3);
  overflow: hidden;
  border-radius: 8px;
}

.business_wrap .cards .card img {
  border-radius: 8px;
  transform: scale(1);
  transition: all 0.5s;
}

.business_wrap .cards .card:hover img {
  transform: scale(1.1);
  transition: all 0.5s;
}

.business_wrap .ttl {
  font-size: 24px;
  border-bottom: solid 2px rgba(139, 108, 66, 1);
  padding-bottom: 20px;
  margin-bottom: 20px;
}

.business_wrap .sub_ttl {
  font-size: 20px;
  padding-bottom: 10px;
  margin-bottom: 20px;
  position: relative;
}

.business_wrap .sub_ttl::after {
  content: "";
  width: 20px;
  height: 2px;
  background-color: rgba(139, 108, 66, 1);
  position: absolute;
  left: 0;
  bottom: 0;
}

.business_wrap .desc {
  margin-bottom: 30px;
}

.business_list {
  background-color: #ede8e0;
}

.records-table-wrap {
  overflow-x: auto;
}

.business_list table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}

.business_list thead tr {
  background-color: #3d2e1e;
  color: #f5f0ea;
}

.business_list th:first-child {
  width: 160px;
}

.business_list th {
  text-align: left;
  padding: 0.75rem 1rem;
  font-weight: 500;
  white-space: nowrap;
}

.business_list .row-even td {
  background-color: #f5f0ea;
}

.business_list .row-odd td {
  background-color: #ede8e0;
}

.business_list .td-date {
  color: #8b6c42;
  font-size: 0.85rem;
  white-space: nowrap;
  font-weight: 400;
}

.business_list td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #c8b89a;
  font-weight: 600;
}

.business_wrap.business_list .ttl {
  margin-bottom: 50px;
}

@media only screen and (max-width: 768px) {
  .business-mv {
    height: 260px;
    min-height: 260px;
  }

  .business-mv__ttl {
    font-size: 1.6rem;
  }
}

/* ===========================
   CONTACT BANNER (reusable)
=========================== */
.contact-banner {
  background-color: #2c2c2c;
  padding-top: 60px;
  padding-bottom: 60px;
}

.contact-banner__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.contact-banner__ttl {
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
}

.contact-banner__btn {
  display: inline-block;
  background-color: #c0392b;
  color: #fff;
  text-decoration: none;
  padding: 14px 48px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}

.contact-banner__btn:hover {
  opacity: 0.85;
}

/* ===========================
   PRIVACY PAGE
=========================== */
.privacy-content .inner {
  max-width: 860px;
}

.privacy-main-ttl {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 20px;
  padding-bottom: 12px;
  position: relative;
}

.privacy-main-ttl::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background-color: #c0392b;
}

.privacy-intro {
  font-size: 0.92rem;
  line-height: 1.9;
  color: #444;
  margin-bottom: 40px;
}

.privacy-list {
  list-style: none;
  padding: 0;
}

.privacy-item {
  padding: 28px 0;
  border-bottom: 1px solid #e0e0e0;
}

.privacy-item:first-child {
  border-top: 1px solid #e0e0e0;
}

.privacy-item__ttl {
  font-size: 0.98rem;
  font-weight: 700;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.privacy-item__ttl::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  min-width: 10px;
  background-color: #c0392b;
  border-radius: 50%;
}

.privacy-item p {
  font-size: 0.92rem;
  line-height: 1.9;
  color: #444;
}

.privacy-sublist {
  list-style: none;
  padding: 0;
  margin: 12px 0 0 18px;
}

.privacy-sublist li {
  font-size: 0.9rem;
  color: #444;
  line-height: 1.8;
  padding-left: 14px;
  position: relative;
}

.privacy-sublist li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: #444;
}

.privacy-contact-info {
  margin-top: 16px;
}

.privacy-contact-info p {
  font-size: 0.9rem;
  line-height: 1.8;
  margin: 0;
  color: #444;
}

.privacy-date {
  font-size: 0.85rem;
  color: #888;
  text-align: left;
  padding-top: 20px;
}

.sub-group .section_ttl {
  color: rgba(30, 30, 30, 1);
}

.sub-group_sec01 {
  background-color: rgba(246, 246, 246, 1);
}

.sub-group_sec01 .cards {
  display: flex;
  gap: 30px;
}

.sub-group_sec01 .cards .card {
  width: 100%;
  padding: 20px;
  border-top: solid 5px rgba(30, 30, 30, 1);
  background-color: #fff;
  border-radius: 10px;
}

.sub-group_sec01 .cards .card .number {
  width: 55px;
  height: 55px;
  border-radius: 100vh;
  background-color: var(--color01);
  color: #fff;
  font-weight: 600;
  font-size: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family1);
  margin-bottom: 5px;
}

.sub-group_sec01 .cards .card h2 {
  margin-bottom: 20px;
}

.sub-group_sec02 ul li {
  display: flex;
}

.sub-group_sec02 ul li span:nth-child(1) {
  width: 30%;
  padding: 20px;
  background-color: rgba(245, 245, 245, 0.9608);
  border-bottom: solid 2px #D9DEEA;
  font-weight: 600;
}

.sub-group_sec02 ul li span:nth-child(2) {
  width: 100%;
  padding: 20px;
  background-color: rgba(249, 249, 252, 1);
  border-bottom: solid 2px #D9DEEA;
}

.sub-group_sec02 ul li span:nth-child(2).bg02 {
  background-color: rgba(255, 255, 255, 1);
}

.sub-group_sec03 {
  background-color: rgba(246, 246, 246, 1);
}

.sub-group_sec03 ul li {
  display: flex;
}

.sub-group_sec03 ul li span:nth-child(1) {
  width: 30%;
  padding: 10px;
  color: var(--color01);
}

.sub-group_sec03 ul li span:nth-child(2) {
  width: 100%;
  padding: 10px;
}

.sub-group_sec03 ul li:nth-last-child(1) span:nth-child(2) a {
  color: #000;
  border-bottom: solid 1px;
}

.sub-group_sec04 .inner iframe {
  width: 100%;
  height: 340px;
  min-height: 340px;
  border-radius: 10px;
}

.sub-group_sec04 .inner .section_ttl span {
  color: rgba(197, 154, 61, 1);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 1.5px;
}

.sub-group_sec04 .inner .section_ttl::after {
  background-color: rgba(197, 154, 61, 1);
}

/* ===========================
   HISTORY TIMELINE
=========================== */

.sub-group_sec03 {
  background: #f5f5f5;
}

.history-timeline {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
}

.history-item {
  display: grid;
  grid-template-columns: 200px 80px 1fr;
  gap: 0;
  position: relative;
  min-height: auto;
}

.history-date {
  font-size: 20px;
  font-weight: 700;
  color: rgba(25, 47, 86, 1);
  line-height: 1.5;
  padding-top: 6px;
}

.history-line {
  position: relative;
  display: flex;
  justify-content: center;
}

.history-line::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: rgba(25, 47, 86, 0.8);
}

.history-item:last-child .history-line::before {
  bottom: 65%;
}

.history-item:first-child .history-line::before {
  top: 30%;
}

.history-line .dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(25, 47, 86, 1);
  position: relative;
  z-index: 2;
  margin-top: 9px;
}

.history-item.accent .history-line .dot {
  background: #d57a52;
}

.history-content {
  font-size: 16px;
  line-height: 1.9;
  color: #222;
  padding-top: 4px;
  padding-bottom: 50px;
}

.history-content a {
  color: #222;
  border-bottom: 1px solid #222;
}

.sub-works {
  background-color: rgba(240, 235, 224, 1);
}

.sub-works .btns {
  display: flex;
  gap: 20px;
  margin-bottom: 50px;
}

.sub-works .btns a {
  display: flex;
  justify-content: center;
  padding: 10px;
  border: solid 1px rgba(200, 184, 154, 1);
  color: #000;
  background-color: #fff;
  width: 100%;
}

.sub-works .btns a.active {
  background-color: rgba(139, 105, 20, 1);
  color: #fff;
  border: solid 1px rgba(139, 105, 20, 1);
}

.sub-works .cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.sub-works .cards .card {
  width: calc(100% / 3.2);
}

.sub-works .cards .card a {
  display: flex;
  flex-direction: column;
  box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.08);
  border-radius: 10px;
}

.sub-works .cards .card a .txt_box {
  background-color: #ffff;
  padding: 20px;
  border-radius: 0 0 10px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sub-works .cards .card a .img_box {
  overflow: hidden;
  border-radius: 10px 10px 0 0;
}

.sub-works .cards .card a .img_box img {
  border-radius: 10px 10px 0 0;
  transform: scale(1);
  transition: all 0.5s;
}

.sub-works .cards .card a:hover .img_box img {
  transform: scale(1.1);
  transition: all 0.5s;
}

.sub-works .cards .card a .txt_box small {
  font-size: 12px;
  color: rgba(154, 138, 112, 1);
}

.sub-works .cards .card a .txt_box h2 {
  font-weight: 600;
  color: #000;
}

.sub-works .cards .card a .txt_box .category {
  font-size: 12px;
  padding: 5px 10px;
  border-radius: 5px;
  width: fit-content;;
  font-weight: 600;
}

.sub-works .cards .card a .txt_box .category.orange {
  background-color: rgba(255, 240, 224, 1);
  color: rgba(192, 92, 0, 1);
}

.sub-works .cards .card a .txt_box .category.blue {
  background-color: rgba(224, 234, 245, 1);
  color: rgba(46, 95, 160, 1);
}

.sub-works .cards .card a .txt_box .category.green {
  background-color: rgba(228, 240, 228, 1);
  color: rgba(46, 107, 46, 1);
}

.sub-works .cards .card a .txt_box .category.yellow {
  background-color: rgba(253, 245, 220, 1);
  color: rgba(138, 104, 0, 1);
}

.sub-works .cards .card a .txt_box .category.brown {
  background-color: rgba(245, 237, 228, 1);
  color: rgba(122, 74, 40, 1);
}

.sub-works .cards .card a .txt_box .category.cyan {
  background-color: rgba(224, 242, 242, 1);
  color: rgba(30, 107, 107, 1);
}

.sub-works .cards .card a .txt_box p {
  color: rgba(106, 90, 64, 1);
  font-size: 14px;
}

@media only screen and (max-width: 768px) {
  .contact-banner__ttl {
    font-size: 1.05rem;
  }
  .contact-banner__btn {
    padding: 12px 32px;
  }
  .privacy-contact-info {
    padding: 16px;
  }

  .sub-group_sec01 .cards {
    flex-direction: column;
  }

  .sub-group_sec02 ul li {
    flex-direction: column;
  }

  .sub-group_sec02 ul li span:nth-child(1) {
    width: 100%;
  }

  .sub-group_sec03 ul li {
    flex-direction: column;
  }

  .sub-group_sec03 ul li span:nth-child(1) {
    width: 100%;
  }

  .sub-group .section_ttl::after {
    left: 50%;
    transform: translateX(-50%);
  }

  .history-timeline {
    position: relative;
  }

  .history-item {
    grid-template-columns: 20px 1fr;
    column-gap: 14px;
    min-height: auto;
    padding-bottom: 28px;
    align-items: start;
  }

  .history-date {
    grid-column: 2;
    font-size: 14px;
    line-height: 1.6;
    padding-top: 0;
    margin-bottom: 4px;
  }

  .history-line {
    grid-column: 1;
    grid-row: 1 / span 2;
    justify-content: flex-start;
  }

  .history-line::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: -100px;
    left: 5px;
    width: 2px;
    background: rgba(25, 47, 86, 0.8);
  }

  .history-line .dot {
    width: 12px;
    height: 12px;
    margin-top: 5px;
  }

  .history-content {
    grid-column: 2;
    font-size: 14px;
    line-height: 1.8;
    padding-top: 0;
    padding-bottom: 0;
  }

  .sub-works .btns a {
    width: 25%;
  }

  .sub-works .btns {
    flex-wrap: wrap;
    justify-content: center;
  }

  .sub-works .cards .card {
    width: calc(100% / 2.1);
  }

  .business_wrap .cards {
    justify-content: center;
  }

  .business_wrap .cards .card {
    width: calc(95% / 2);
  }

  .business-intro p {
    text-align: left;
  }

  .business-intro p br {
    display: none;
  }
}

@media only screen and (max-width: 568px) {
  .sub-works .btns a {
    width: 100%;
  }

  .sub-works .cards .card {
    width: calc(100% / 1);
  }

  .footer_nav ul li.banner_btn {
    position: relative;
    bottom: 0;
    right: 0;
  }

  .business_wrap .cards .card {
    width: calc(100% / 1);
  }

  #business .lower-mv .inner .mv_text h2 {
    font-size: 30px;
  }

  .business_list th:first-child {
    width: 120px;
  }
}
