@charset "UTF-8";

/* Company page. Shared hero, introduction, contact and footer remain common. */
.company-header-current { color: var(--color-green-dark) !important; }
.company-hero .service-hero__visual img { object-position: 75% center; }
.company-heading__eyebrow { margin-bottom: 9px; color: var(--color-green-dark); font: 700 13px/1.4 sans-serif; letter-spacing: .15em; }
.company-heading h2 { color: var(--color-ink); font-size: clamp(25px, 2.5vw, 36px); line-height: 1.55; letter-spacing: .07em; }
.company-intro .service-intro__copy { max-width: 950px; }
.company-business { background-color: #f5fbfe; border-block: 1px solid var(--color-line); }
.company-business__heading { display: grid; gap: 25px; }
.company-business__heading > p { color: var(--color-ink); font-weight: 700; }
.company-business__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; }
.company-business__item { padding: 24px 10px; text-align: center; border-bottom: 1px solid var(--color-line); }
.company-business__item:nth-child(even) { border-left: 1px solid var(--color-line); }
.company-business__item:nth-last-child(-n + 2) { border-bottom: 0; }
.company-business__item img { width: 88px; height: 88px; object-fit: contain; margin-inline: auto; }
.company-business__item h3 { margin-top: 15px; color: var(--color-ink); font-size: 14px; line-height: 1.8; }
.company-business__copy { margin-top: 35px; font-size: 14px; color: var(--color-muted); line-height: 2; }
.company-craft { display: grid; border-bottom: 1px solid var(--color-line); }
.company-craft__photo { position: relative; aspect-ratio: 1.3; }
.company-craft__photo img { width: 100%; height: 100%; object-fit: cover; clip-path: polygon(0 0, 100% 0, 83% 100%, 0 100%); }
.company-craft__content { padding: 55px var(--gutter) 65px; }
.company-craft__copy { margin-top: 24px; font-size: 15px; line-height: 2; }
.company-craft__steps { display: grid; gap: 42px; margin-top: 35px; }
.company-craft__steps li { position: relative; text-align: center; }
.company-craft__steps img { width: 65px; height: 65px; object-fit: contain; margin-inline: auto; }
.company-craft__steps h3 { margin-top: 13px; color: var(--color-ink); font-size: 17px; }
.company-craft__steps p { margin-top: 8px; color: var(--color-muted); font-size: 14px; }
.company-craft__steps li:not(:last-child)::after { position: absolute; bottom: -35px; left: 50%; color: var(--color-blue); transform: translateX(-50%); content: "↓"; font-size: 24px; }
.company-craft__steps li:nth-child(2)::after { color: var(--color-green); }
.company-area { background-color: #f8fcfe; border-bottom: 1px solid var(--color-line); }
.company-area__inner { display: grid; gap: 45px; }
.company-area__achievement { margin-top: 26px; font-size: clamp(19px, 2vw, 29px); line-height: 1.6; color: var(--color-blue); font-weight: 700; }
.company-area__achievement strong { color: var(--color-green); }
.company-area__content h3 { margin-top: 17px; color: var(--color-ink); font-size: 20px; }
.company-area__copy { margin-top: 17px; font-size: 15px; line-height: 2; }
.company-area__map { max-width: 500px; margin: 20px auto 0; }
.company-area__map img { width: 100%; }
.company-area__map figcaption { margin-top: 12px; color: var(--color-muted); font-size: 12px; line-height: 1.8; }
.company-area__photos { display: grid; gap: 14px; }
.company-area__photos figure { aspect-ratio: 1.9; }
.company-area__photos img { width: 100%; height: 100%; object-fit: cover; clip-path: polygon(12% 0, 100% 0, 100% 82%, 91% 100%, 0 100%); }
.company-outline__inner { display: grid; gap: 35px; }
.company-outline__table { width: 100%; border: 1px solid var(--color-line); border-collapse: collapse; color: var(--color-ink); font-size: 14px; line-height: 1.9; }
.company-outline__table th, .company-outline__table td { padding: 15px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-line); overflow-wrap: anywhere; }
.company-outline__table th { width: 28%; background: #e3f3fc; font-weight: 700; }
.company-outline__table tr:nth-child(even) td { background: #f1f9fd; }
.company-outline__table a:hover { color: var(--color-blue); text-decoration: underline; }
@media (max-width: 767px) { .company-desktop-break { display: none; } }
@media (min-width: 768px) {
  .company-hero .service-hero__copy { width: 44%; }
  .company-hero .service-hero__visual { width: 60%; }
  .company-business__heading { grid-template-columns: .85fr 1.6fr; align-items: center; gap: 40px; }
  .company-business__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .company-business__item { padding: 30px 15px; border-left: 1px solid var(--color-line); }
  .company-business__item:nth-child(4n + 1) { border-left: 0; }
  .company-business__item:nth-last-child(-n + 4) { border-bottom: 0; }
  .company-business__item h3 { font-size: 16px; }
  .company-craft__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
  .company-craft__steps li + li { border-left: 1px solid var(--color-line); }
  .company-craft__steps li:not(:last-child)::after { top: 63px; bottom: auto; left: auto; right: -25px; transform: none; content: "→"; }
  .company-area__inner { grid-template-columns: 1.05fr 1fr; gap: 35px; }
  .company-area__photos { align-content: center; }
  .company-outline__inner { grid-template-columns: .5fr 1.5fr; gap: 40px; }
  .company-outline__table { font-size: 15px; }
  .company-outline__table th, .company-outline__table td { padding: 13px 24px; }
}
@media (min-width: 1100px) {
  .company-craft { grid-template-columns: .95fr 1.7fr; min-height: 520px; }
  .company-craft__photo { aspect-ratio: auto; }
  .company-craft__content { padding: 65px max(var(--gutter), calc((100vw - var(--content-width)) / 2)) 65px 30px; }
  .company-craft__photo img { clip-path: polygon(0 0, 100% 0, 73% 100%, 0 100%); }
  .company-craft__steps { margin-top: 32px; gap: 42px; }
  .company-craft__steps li:not(:last-child)::after { right: -33px; }
  .company-area__inner { gap: 60px; }
  .company-area__photos figure { aspect-ratio: 2; }
  .company-outline__inner { grid-template-columns: .5fr 1.5fr; gap: 60px; }
}
@media (max-width: 374px) {
  .company-business__item h3 { font-size: 13px; }
  .company-outline__table th, .company-outline__table td { padding-inline: 10px; font-size: 13px; }
}
