@charset "UTF-8";
/* ==========================================================================
   Company page — 会社概要ページ固有スタイル
   ========================================================================== */

/* ----- 会社理念 + 製品の向上に向けて（緑グラデbg） ----- */
.company-philosophy {
  padding: 96px 0;
  background: linear-gradient(
    180deg,
    var(--color-bg-gradient-start) 0%,
    var(--color-bg-soft) 40%,
    var(--color-primary-light) 100%
  );
}

.company-philosophy__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* 会社理念ブロック */
.company-philosophy__top {
  text-align: center;
}

.company-philosophy__title {
  font-size: 31px;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.15;
  letter-spacing: 0.02em;
}

.company-philosophy__divider {
  width: 1px;
  height: 70px;
  background-color: var(--color-primary);
  margin: 24px auto;
}

.company-philosophy__body {
  font-size: 16px;
  line-height: 1.75;
  color: var(--color-text);
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}

/* 製品の向上に向けて */
.company-philosophy__bottom {
  margin-top: 96px;
}

.company-philosophy__bottom-title {
  font-size: 31px;
  font-weight: 500;
  color: var(--color-primary);
  text-align: center;
  margin-bottom: 56px;
  line-height: 1.15;
  letter-spacing: 0.02em;
}

@media (max-width: 767px) {
  .company-philosophy { padding: 64px 0; }
  .company-philosophy__title,
  .company-philosophy__bottom-title { font-size: 24px; }
  .company-philosophy__bottom { margin-top: 64px; }
}

/* ----- 会社概要テーブルセクション ----- */
.company-info {
  padding: 96px 0;
}

.company-info__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.company-info__title {
  font-size: 31px;
  font-weight: 500;
  color: var(--color-primary);
  text-align: center;
  margin-bottom: 56px;
  line-height: 1.15;
  letter-spacing: 0.02em;
}

@media (max-width: 767px) {
  .company-info { padding: 64px 0; }
  .company-info__title { font-size: 24px; }
}

/* ----- 地図・アクセスセクション ----- */
.company-access {
  padding: 0 0 96px;
}

.company-access__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.company-access__title {
  font-size: 31px;
  font-weight: 500;
  color: var(--color-primary);
  text-align: center;
  margin-bottom: 56px;
  line-height: 1.15;
  letter-spacing: 0.02em;
}

.company-access__row {
  display: flex;
  gap: 56px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.company-access__map {
  flex: 1 1 500px;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 795 / 380;
}

.company-access__map img,
.company-access__map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.company-access__map img { object-fit: cover; }

.company-access__info {
  flex: 1 1 280px;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.access-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.access-item__icon {
  flex-shrink: 0;
  width: 39px;
  height: 39px;
}

.access-item__icon img,
.access-item__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.access-item__icon--pin {
  background-color: var(--color-primary);
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.access-item__icon--pin img,
.access-item__icon--pin svg {
  width: 19px;
  height: 23px;
}

.access-item__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.access-item__label {
  font-size: 18px;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}

.access-item__line-primary {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.access-item__line {
  font-size: 15px;
  line-height: 1.5;
  color: var(--color-text);
  letter-spacing: -0.02em;
}

.access-item__line--bold {
  font-weight: 500;
}

.access-item__zip {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: -0.02em;
}

@media (max-width: 900px) {
  .company-access__row { gap: 32px; flex-direction: column; }
  .company-access__map,
  .company-access__info { flex: 1 1 auto; max-width: none; width: 100%; }
}

@media (max-width: 767px) {
  .company-access { padding: 0 0 64px; }
  .company-access__title { font-size: 24px; }
}
