@charset "UTF-8";
/* ==========================================================================
   会社概要ページ専用スタイル
   ========================================================================== */

.company__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, .85fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}
.company__side { display: grid; gap: 22px; }
.company__contact {
  padding: clamp(24px, 3vw, 30px);
  border-radius: var(--radius-lg);
  background: var(--bg-tint);
}
.company__contact-title { font-size: 16px; color: var(--navy-900); }
.company__contact-text {
  margin-top: 10px;
  margin-bottom: 18px;
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--ink-70);
}

.link {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.link:hover { text-decoration-thickness: 2px; }

@media (max-width: 899px) {
  .company__grid { grid-template-columns: 1fr; }
}

/* --- 代表あいさつ ---------------------------------------------------------- */
.greet {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(30px, 5vw, 68px);
  align-items: start;
}
.greet__lead {
  font-size: clamp(22px, 3.2vw, 32px);
  line-height: 1.55;
  color: var(--navy-900);
  margin-bottom: 26px;
  word-break: auto-phrase;
}
.greet__body p {
  font-size: 15px;
  line-height: 2.15;
  color: var(--ink-70);
}
.greet__body p + p { margin-top: 20px; }
.greet__sign {
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}
.greet__role { font-size: 12px; letter-spacing: .1em; color: var(--ink-45); }
.greet__name { font-size: 20px; color: var(--navy-900); }

@media (max-width: 899px) {
  .greet { grid-template-columns: 1fr; }
  .greet__visual { max-width: 320px; }
}

/* --- 方針3点 --------------------------------------------------------------- */
.policy {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: clamp(18px, 2.6vw, 30px);
}
.policy__item {
  padding: clamp(28px, 3.2vw, 38px) clamp(24px, 2.8vw, 32px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  transition: border-color .35s var(--ease), transform .35s var(--ease);
}
.policy__item:hover { border-color: var(--blue); transform: translateY(-4px); }
.policy__no {
  font-size: 28px;
  font-weight: 800;
  line-height: 1;
  color: var(--blue);
}
.policy__title { margin-top: 14px; font-size: 18px; color: var(--navy-900); }
.policy__text {
  margin-top: 14px;
  font-size: 14px;
  line-height: 2.05;
  color: var(--ink-70);
}
