/* Loaded on the company pages. */
.company-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
    align-items: center;
    gap: clamp(28px, 6vw, 96px);
    padding-block: clamp(34px, 7vw, 104px);
}
.company-heading .page-intro { padding: 0; }
.company-heading .breadcrumb { margin-block-end: 24px; }
.company-heading .breadcrumb a:hover { color: var(--accent); text-decoration: underline; }
.company-heading .page-intro h1 {
    font-size: clamp(36px, 5.4vw, 77px);
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.company-heading .line-link,
.company-heading .button { margin-block-start: 26px; }
.company-portrait {
    position: relative;
    display: grid;
    margin: 0;
    min-width: 0;
    aspect-ratio: 5 / 4;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: clamp(14px, 2vw, 26px);
    background: var(--surface);
    box-shadow: var(--glass-shadow);
}
.company-portrait img { width: 100%; height: 100%; object-fit: cover; }
.company-portrait figcaption {
    position: absolute;
    inset-inline: 0;
    inset-block-end: 0;
    padding: 28px 18px 15px;
    background: linear-gradient(transparent, #09141bea);
    color: #fff;
    font-size: 11px;
    letter-spacing: .08em;
}
.company-scope {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(20px, 5vw, 68px);
    padding: clamp(22px, 5vw, 58px);
    border: 1px solid var(--line);
    border-radius: clamp(14px, 2vw, 26px);
    background: var(--surface);
}
.company-scope h2, .company-steps h2 { margin-block: 12px 18px; }
.company-scope p:not(.eyebrow) { color: var(--muted); line-height: 1.8; }
.company-sector-list { list-style: none; margin: 0; padding: 0; }
.company-sector-list li {
    display: flex;
    gap: 14px;
    padding-block: 12px;
    border-block-end: 1px solid var(--line);
    font-weight: 600;
}
.company-sector-list li:first-child { border-block-start: 1px solid var(--line); }
.company-sector-list span { color: var(--accent); font-variant-numeric: tabular-nums; }
.company-steps .process-grid { gap: 14px; }
.company-steps .process-grid article {
    padding: clamp(18px, 3vw, 32px);
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface-raised);
}
.company-contact .company-channels {
    min-width: 0;
    border-radius: clamp(14px, 2vw, 26px);
    background: linear-gradient(145deg, var(--soft-accent), transparent 72%), var(--surface);
}
.company-channel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px;
    margin-block-start: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-raised);
    overflow-wrap: anywhere;
}
.company-channel:hover { border-color: var(--accent); }
.company-channel-icon {
    display: grid;
    place-items: center;
    width: 36px;
    aspect-ratio: 1;
    border-radius: 10px;
    background: var(--soft-accent);
    color: var(--accent);
}
.company-channel-label { display: block; color: var(--muted); font-size: 12px; }
.company-channel-arrow { color: var(--accent); }
.company-brief { margin-block-start: 22px; padding-block-start: 18px; border-block-start: 1px solid var(--line); }
.company-brief h3 { font-size: 17px; margin-block-end: 6px; }
.company-contact .inquiry { scroll-margin-top: 96px; }
.company-contact .inquiry-form {
    padding: clamp(14px, 3.3vw, 36px);
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--cream);
    box-shadow: var(--glass-shadow);
}
@media (max-width: 760px) {
    .company-heading, .company-scope { grid-template-columns: minmax(0, 1fr); }
    .company-heading .page-intro h1 { font-size: clamp(32px, 8vw, 48px); }
    .company-portrait { aspect-ratio: 16 / 10; }
    .company-steps .process-grid article { padding: 18px; }
}

.company-services .service-index {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-block-start: 28px;
}
.company-services .service-index a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    font-size: .875rem;
}
.company-services .service-index a:hover,
.company-services .service-index a:focus-visible {
    border-color: var(--accent);
    color: var(--accent);
}
.company-services .service-list { gap: clamp(16px, 3vw, 32px); }
.company-services .service-item {
    scroll-margin-top: 110px;
    gap: clamp(18px, 4vw, 52px);
    padding: clamp(14px, 3vw, 36px);
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--surface);
}
.company-services .service-item:target { border-color: var(--accent); }
.company-services .service-points {
    margin-block-start: 16px;
    padding-inline-start: 1.2em;
    list-style: disc;
    color: var(--muted);
    font-size: .875rem;
    line-height: 1.8;
}
.company-services .service-points li::marker { color: var(--accent); }
.company-services .page-intro > .button { margin-block-start: 22px; }
.company-services .company-steps .page-lead { margin-block: 0 24px; }
.company-services .service-faq {
    padding: clamp(20px, 5vw, 56px);
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--surface);
}
.company-services .service-faq h2 { margin-block: 10px 22px; }
.company-services .service-faq summary { min-height: 44px; }
.company-services .service-faq summary::after { content: '+'; color: var(--accent); margin-inline-start: auto; }
.company-services .service-faq details[open] summary::after { content: '−'; }
