.ps-company #company-overview,
.ps-company #ps-company-greeting-title,
.ps-company #ps-company-direction-title,
.ps-company #ps-company-history-title,
.ps-company #ps-company-certifications-title,
.ps-company #ps-company-cert-panel-corporate,
.ps-company #ps-company-cert-panel-patent,
.ps-company #ps-company-organization-title,
.ps-company #ps-company-location-title {
    scroll-margin-top: 132px;
}

@media (max-width: 1100px) {
    .ps-company #company-overview,
    .ps-company #ps-company-greeting-title,
    .ps-company #ps-company-direction-title,
    .ps-company #ps-company-history-title,
    .ps-company #ps-company-certifications-title,
    .ps-company #ps-company-cert-panel-corporate,
    .ps-company #ps-company-cert-panel-patent,
    .ps-company #ps-company-organization-title,
    .ps-company #ps-company-location-title {
        scroll-margin-top: 96px;
    }
}

.ps-company {
    --company-red: #d14f30;
    --company-red-dark: #b94125;
    --company-ink: #171717;
    --company-navy: #0d2233;
    --company-muted: #68605e;
    --company-line: #e0dbd9;
    --company-warm: #f7f5f3;
    width: 100%;
    overflow: hidden;
    background: #fff;
    color: var(--company-ink);
    font-family: 'Noto Sans KR', 'Pretendard', 'Malgun Gothic', sans-serif;
}

.ps-company *,
.ps-company *::before,
.ps-company *::after {
    box-sizing: border-box;
}

.ps-company img {
    display: block;
    max-width: 100%;
}

.ps-company h2,
.ps-company h3,
.ps-company p,
.ps-company figure,
.ps-company ol,
.ps-company ul {
    margin: 0;
}

.ps-company a {
    color: inherit;
    text-decoration: none;
}

.ps-company-inner {
    width: min(1200px, calc(100% - 48px));
    margin: 0 auto;
}

.ps-company-kicker {
    color: var(--company-red);
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: .04em;
}

.ps-company-hero {
    position: relative;
    height: 720px;
    overflow: hidden;
    background: #211b18;
    color: #fff;
}

.ps-company-hero-image,
.ps-company-hero-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ps-company-hero-image {
    object-fit: cover;
    object-position: center 52%;
    transform: scale(1.025);
    transform-origin: center;
    animation: ps-sub-hero-breathe 12s ease-in-out infinite;
    will-change: transform;
}

@keyframes ps-sub-hero-breathe {
    0%, 100% { transform: scale(1.025); }
    50% { transform: scale(1.085); }
}

.ps-company-hero-overlay {
    background: linear-gradient(90deg, rgba(9, 8, 7, .92), rgba(27, 17, 13, .64) 52%, rgba(99, 41, 24, .32));
}

.ps-company-hero-rail {
    position: absolute;
    top: 154px;
    right: max(6.25vw, 48px);
    left: max(6.25vw, 48px);
    height: 1px;
    background: rgba(209, 79, 48, .52);
}

.ps-company-hero-eyebrow {
    position: absolute;
    top: 104px;
    left: max(6.25vw, 48px);
    color: var(--company-red);
    font-size: 14px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: .05em;
}

.ps-company-hero-title {
    position: absolute;
    top: 245px;
    right: max(6.25vw, 48px);
    left: max(6.25vw, 48px);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60px;
}

.ps-company-hero-title > div {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ps-company-hero-title > div:first-child {
    margin-left: clamp(190px, 18vw, 290px);
}

.ps-company-hero-title > div:last-child {
    align-items: flex-end;
    margin-right: clamp(80px, 8vw, 150px);
    padding-top: 118px;
    text-align: right;
}

.ps-company-hero-title strong {
    font-size: clamp(48px, 4vw, 76px);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -.045em;
    white-space: nowrap;
}

.ps-company-hero-title span {
    color: rgba(255, 255, 255, .78);
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: .04em;
}

.ps-company-scroll {
    position: absolute;
    bottom: 38px;
    left: max(6.25vw, 48px);
    display: inline-flex;
    align-items: center;
    gap: 18px;
    color: rgba(255, 255, 255, .7) !important;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .06em;
}

.ps-company-scroll img {
    width: 20px;
    height: 20px;
    animation: ps-company-scroll 1.8s ease-in-out infinite;
}

@keyframes ps-company-scroll {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(7px); }
}

.ps-company-overview {
    min-height: 881px;
    padding: 120px 0 119px;
    background: #fff;
}

.ps-company-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 640px);
    gap: 40px;
    align-items: start;
}

.ps-company-overview-title h2 {
    margin-top: 18px;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.42;
    letter-spacing: -.04em;
}

.ps-company-overview-title > strong {
    display: block;
    margin-top: 25px;
    color: var(--company-red);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.65;
}

.ps-company-overview-photo {
    height: 290px;
    overflow: hidden;
    border-radius: 8px;
}

.ps-company-overview-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ps-company-overview-copy {
    margin-top: 36px;
    color: var(--company-muted);
    font-size: 16px;
    line-height: 1.88;
}

.ps-company-overview-copy p + p {
    margin-top: 3px;
}

.ps-company-process {
    height: 112px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin-top: 47px;
    overflow: hidden;
    border: 1px solid var(--company-line);
    border-radius: 8px;
    background: var(--company-warm);
}

.ps-company-process-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.ps-company-process-item:not(:last-child)::after {
    position: absolute;
    top: 32px;
    right: 0;
    width: 1px;
    height: 48px;
    background: var(--company-line);
    content: '';
}

.ps-company-process-item img {
    width: 40px;
    height: 41px;
}

.ps-company-process-item strong {
    font-size: 16px;
    font-weight: 700;
}

.ps-company-greeting {
    min-height: 980px;
    padding: 140px 0;
    background: var(--company-warm);
}

.ps-company-greeting-grid {
    display: grid;
    grid-template-columns: 520px minmax(0, 1fr);
    gap: 80px;
    align-items: start;
}

.ps-company-greeting-photo {
    position: relative;
    height: 700px;
    overflow: hidden;
    border-radius: 8px;
}

.ps-company-greeting-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ps-company-greeting-photo figcaption {
    position: absolute;
    bottom: 30px;
    left: 30px;
    width: 230px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 18px;
    border-radius: 6px;
    background: var(--company-navy);
    color: #fff;
    font-size: 11px;
    line-height: 1.4;
}

.ps-company-greeting-photo figcaption strong {
    color: #e06a4a;
    font-size: 13px;
}

.ps-company-greeting-content {
    padding-top: 10px;
}

.ps-company-greeting-content h2 {
    margin-top: 18px;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.04em;
}

.ps-company-greeting-body {
    margin-top: 42px;
    color: var(--company-muted);
    font-size: 16px;
    line-height: 1.85;
}

.ps-company-greeting-body p + p {
    margin-top: 26px;
}

.ps-company-greeting-sign {
    margin-top: 38px;
    color: var(--company-ink);
    font-size: 17px;
    line-height: 1.75;
}

.ps-company-greeting-signature {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin-top: 7px;
}

.ps-company-greeting-signature strong {
    font-size: clamp(20px, 1.6vw, 24px);
    line-height: 1.25;
}

.ps-company-greeting-signature img {
    display: block;
    width: 197.4px;
    height: 67.2px;
    max-width: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

@media (max-width: 767px) {
    .ps-company-greeting-signature img {
        width: 138px;
        height: 46.8px;
    }
}

.ps-company-manifesto {
    position: relative;
    height: 480px;
    overflow: hidden;
    background: linear-gradient(90deg, rgba(9, 8, 7, .98), rgba(19, 15, 13, .9) 50%, rgba(43, 27, 20, .7)), url('../img/sub01/company-manifesto@2x.png?v=2') center/cover;
    color: #fff;
}

.ps-company-manifesto-rail {
    position: absolute;
    top: 54px;
    right: 80px;
    left: 80px;
    height: 1px;
    background: rgba(209, 79, 48, .62);
}

.ps-company-manifesto-rail i {
    position: absolute;
    top: -4px;
    right: 0;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--company-red);
}

.ps-company-manifesto-content {
    position: relative;
    z-index: 2;
    padding: 76px 80px 0;
}

.ps-company-manifesto-content h2 {
    margin-top: 12px;
    color: #f7f5f1;
    font-size: 58px;
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: -.035em;
}

.ps-company-manifesto-content > p:last-child {
    margin-top: 35px;
    color: rgba(224, 217, 209, .86);
    font-size: 24px;
    font-weight: 500;
    line-height: 31px;
}

.ps-company-manifesto-ghost {
    position: absolute;
    right: -15px;
    bottom: -40px;
    color: #fff6ed;
    font-size: clamp(140px, 11.2vw, 216px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.035em;
    opacity: .05;
    white-space: nowrap;
}

.ps-company-direction {
    min-height: 860px;
    padding: 69px 0;
    border-bottom: 1px solid #ece8e5;
    background: #fff;
}

.ps-company-direction-heading h2 {
    margin-top: 14px;
    font-size: 52px;
    font-weight: 700;
    line-height: 1.31;
    letter-spacing: -.04em;
}

.ps-company-direction-heading em {
    color: var(--company-red);
    font-style: normal;
}

.ps-company-direction-grid {
    display: grid;
    grid-template-columns: 560px 80px 560px;
    align-items: start;
    margin-top: 76px;
}

.ps-company-direction-item {
    min-width: 0;
    padding: 0 0 0 60px;
}

.ps-company-direction-item:last-child {
    margin-top: -78px;
}

.ps-company-direction-label {
    height: 64px;
    display: flex;
    align-items: center;
    color: var(--company-red);
}

.ps-company-direction-label strong {
    font-size: 36px;
    line-height: 1;
    letter-spacing: -.08em;
}

.ps-company-direction-label span {
    margin-left: 1px;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .05em;
}

.ps-company-direction-label img {
    width: 64px;
    height: 64px;
    margin-left: 12px;
    object-fit: contain;
}

.ps-company-direction-item:last-child .ps-company-direction-label img {
    width: 57px;
    height: 57px;
}

.ps-company-direction-item h3 {
    margin-top: 9px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -.03em;
}

.ps-company-direction-item h3::after {
    display: block;
    width: 100%;
    height: 1px;
    margin-top: 27px;
    background: linear-gradient(90deg, rgba(209, 79, 48, .85), rgba(209, 79, 48, .05));
    content: '';
}

.ps-company-direction-item ul {
    margin-top: 21px;
    padding-left: 23px;
    color: #57524d;
    font-size: 18px;
    line-height: 1.72;
}

.ps-company-direction-axis {
    width: 120px;
    max-width: none;
    height: 68px;
    margin: 108px 0 0 -20px;
}

.ps-company-history {
    min-height: 1560px;
    padding: 100px 0 160px;
    background: #fff;
}

.ps-company-section-heading h2 {
    margin-top: 14px;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.035em;
}

.ps-company-timeline {
    position: relative;
    margin-top: 106px;
    padding: 0;
    list-style: none;
}

.ps-company-timeline::before {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 50%;
    width: 2px;
    background: var(--company-line);
    content: '';
    transform: translateX(-50%);
}

.ps-company-timeline li {
    position: relative;
    min-height: 200px;
    display: grid;
    grid-template-columns: 110px 420px 140px 420px 110px;
    align-items: start;
}

.ps-company-timeline-dot {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 2;
    width: 16px;
    height: 16px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: var(--company-red);
    box-shadow: 0 0 0 1px rgba(209, 79, 48, .28);
    transform: translateX(-50%);
}

.ps-company-timeline-year {
    grid-row: 1;
    color: var(--company-red);
    font-size: 28px;
    font-weight: 700;
    line-height: 38px;
}

.ps-company-timeline-copy {
    grid-row: 1;
    display: grid;
    gap: 7px;
    color: var(--company-muted);
    font-size: 17px;
    line-height: 29px;
}

.ps-company-timeline-copy p {
    position: relative;
    min-height: 36px;
    margin: 0;
    padding: 5px 14px;
    border-bottom: 1px solid #ece7e3;
    background: linear-gradient(90deg, rgba(209, 79, 48, .045), rgba(209, 79, 48, 0));
}

.ps-company-timeline-copy p::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--company-red);
    content: '';
    transform: translateY(-50%);
}

.ps-company-timeline li.is-left .ps-company-timeline-copy p {
    background: linear-gradient(270deg, rgba(209, 79, 48, .045), rgba(209, 79, 48, 0));
}

.ps-company-timeline li.is-left .ps-company-timeline-copy p::before {
    right: 0;
    left: auto;
}

.ps-company-timeline li.is-left .ps-company-timeline-year {
    grid-column: 1;
}

.ps-company-timeline li.is-left .ps-company-timeline-copy {
    grid-column: 2;
    text-align: right;
}

.ps-company-timeline li.is-right .ps-company-timeline-copy {
    grid-column: 4;
}

.ps-company-timeline li.is-right .ps-company-timeline-year {
    grid-column: 5;
    text-align: right;
}

.ps-company-certifications {
    min-height: 1380px;
    padding: 90px 0 96px;
    background: #fff;
}

.ps-company-cert-tabs {
    position: relative;
    height: 64px;
    display: flex;
    align-items: flex-end;
    gap: 28px;
    margin-top: 22px;
    border-bottom: 1px solid #e0dbd6;
}

.ps-company-cert-tabs::after {
    position: absolute;
    bottom: -1px;
    left: 0;
    z-index: 2;
    width: 180px;
    height: 3px;
    border-radius: 2px;
    background: var(--company-red);
    content: '';
    pointer-events: none;
    transition: left .38s cubic-bezier(.2, .7, .2, 1), width .38s cubic-bezier(.2, .7, .2, 1);
}

.ps-company-cert-tabs.is-patent-active::after {
    left: 208px;
    width: 160px;
}

.ps-company-cert-tabs button {
    position: relative;
    padding-bottom: 16px;
    border: 0;
    background: transparent;
    color: #706b66;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    text-align: center;
    cursor: pointer;
}

.ps-company-cert-tabs button:first-child {
    width: 180px;
}

.ps-company-cert-tabs button:nth-child(2) {
    width: 160px;
}

.ps-company-cert-tabs button.is-active {
    color: var(--company-ink);
}

.ps-company-cert-tabs button::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: #ded9d4;
    content: '';
}

.ps-company-cert-panel[hidden] {
    display: none !important;
}

.ps-company-cert-panel.is-fading-in .ps-company-cert-card {
    animation: ps-company-cert-fade .58s cubic-bezier(.2, .7, .2, 1) both;
}

.ps-company-cert-panel.is-fading-in .ps-company-cert-card:nth-child(2) { animation-delay: .035s; }
.ps-company-cert-panel.is-fading-in .ps-company-cert-card:nth-child(3) { animation-delay: .07s; }
.ps-company-cert-panel.is-fading-in .ps-company-cert-card:nth-child(4) { animation-delay: .105s; }
.ps-company-cert-panel.is-fading-in .ps-company-cert-card:nth-child(n + 5) { animation-delay: .14s; }

@keyframes ps-company-cert-fade {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ps-company-cert-grid {
    display: grid;
    grid-template-columns: repeat(4, 282px);
    gap: 24px;
    margin-top: 30px;
}

.ps-company-cert-card {
    position: relative;
    height: auto;
    min-height: 480px;
    padding: 18px 27px 54px;
    overflow: hidden;
    border: 1px solid var(--company-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .05);
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.ps-company-cert-image {
    width: 226px;
    height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e0dbd6;
    border-radius: 6px;
    background: #fff;
}

.ps-company-cert-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ps-company-cert-card h3 {
    margin-top: 20px;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
}

.ps-company-cert-card p {
    margin-top: 6px;
    color: var(--company-muted);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
}

.ps-company-cert-card > i {
    position: absolute;
    bottom: 30px;
    left: 27px;
    width: 30px;
    height: 3px;
    border-radius: 2px;
    background: var(--company-red);
}

.ps-company-patent-card h3 {
    min-height: 48px;
    margin-top: 14px;
    font-size: 16px;
    line-height: 24px;
}

.ps-company-patent-card p {
    margin-top: 7px;
}

.ps-company-organization {
    min-height: 1127px;
    padding: 90px 0;
    background: var(--company-warm);
}

.ps-company-organization .ps-company-section-heading > strong {
    display: block;
    margin-top: 10px;
    color: var(--company-red);
    font-size: 19px;
    line-height: 30px;
}

.ps-company-organization .ps-company-section-heading > p:last-child {
    margin-top: 4px;
    color: var(--company-muted);
    font-size: 17px;
    line-height: 30px;
}

.ps-company .ps-company-orgchart {
    position: relative;
    margin-top: 70px;
    padding-top: 0;
}

.ps-company-orgchart > img {
    width: 100%;
    height: auto;
}

.ps-company-org-ceo {
    position: relative;
    z-index: 2;
    width: 270px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border-radius: 8px;
    background: var(--company-red);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
}

.ps-company-org-ceo::after {
    position: absolute;
    top: 72px;
    left: 50%;
    width: 2px;
    height: 70px;
    background: var(--company-line);
    content: '';
}

.ps-company-org-departments {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 270px);
    gap: 40px;
    margin-top: 108px;
}

.ps-company-org-departments::before {
    position: absolute;
    top: -38px;
    right: 135px;
    left: 135px;
    height: 2px;
    background: var(--company-line);
    content: '';
}

.ps-company-org-group {
    position: relative;
    min-width: 0;
}

.ps-company-org-group::before {
    position: absolute;
    top: -38px;
    left: 50%;
    width: 2px;
    height: 38px;
    background: var(--company-line);
    content: '';
}

.ps-company-org-group > strong {
    height: 86px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--company-line);
    border-radius: 8px;
    background: #fff;
    font-size: 17px;
    font-weight: 700;
}

.ps-company-org-group > div {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 88px;
}

.ps-company-org-group > div::before {
    position: absolute;
    top: -38px;
    right: 65px;
    left: 65px;
    height: 2px;
    background: var(--company-line);
    content: '';
}

.ps-company-org-group > div::after {
    position: absolute;
    top: -88px;
    left: 50%;
    width: 2px;
    height: 50px;
    background: var(--company-line);
    content: '';
}

.ps-company-org-group span {
    position: relative;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--company-line);
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font-weight: 700;
}

.ps-company-org-group span::before {
    position: absolute;
    bottom: 100%;
    left: 50%;
    width: 2px;
    height: 38px;
    background: var(--company-line);
    content: '';
}

.ps-company-engineer-note {
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    margin-top: 88px;
    padding: 0 44px;
    border-radius: 8px;
    background: var(--company-navy);
    color: #fff;
}

.ps-company-engineer-note strong {
    flex: 0 0 auto;
    color: #e06a4a;
    font-size: 16px;
    line-height: 24px;
}

.ps-company-engineer-note p {
    width: 920px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
}

.ps-company-location {
    min-height: 760px;
    padding: 90px 0 80px;
    background: #fff;
}

.ps-company-location-grid {
    display: grid;
    grid-template-columns: 790px 386px;
    gap: 24px;
    margin-top: 38px;
}

.ps-company-location-map {
    position: relative;
    height: 450px;
    display: block;
    overflow: hidden;
    border-radius: 8px;
    background: #e7e7e7;
}

.ps-company-location-map .root_daum_roughmap,
.ps-company-location-map .root_daum_roughmap .wrap_map {
    width: 100% !important;
    height: 100% !important;
}

.ps-company-location-map .root_daum_roughmap .wrap_controllers {
    display: none;
}

.ps-company-location-card {
    height: 450px;
    padding: 29px 35px;
    border: 1px solid var(--company-line);
    border-radius: 8px;
    background: var(--company-warm);
}

.ps-company-location-card h3 {
    margin-top: 6px;
    font-size: 23px;
    font-weight: 700;
    line-height: 34px;
}

.ps-company-location-card .ps-company-kicker {
    line-height: 22px;
}

.ps-company-location-card hr {
    display: block;
    height: 1px;
    margin: 21px 0 36px;
    border: 0;
    background: var(--company-line);
}

.ps-company-location-card > strong {
    display: block;
    color: var(--company-muted);
    font-size: 18px;
    line-height: 20px;
}

.ps-company-address {
    margin-top: 6px !important;
    color: #0e1511;
    font-size: 14px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: -.02em;
}

.ps-company-address > span {
    display: block;
    white-space: nowrap;
}

.ps-company-contact {
    margin-top: 18px !important;
    color: var(--company-muted);
    font-size: 16px;
    line-height: 27px;
}

.ps-company-map-button {
    width: 136px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px;
    border: 1px solid var(--company-line);
    border-radius: 23px;
    background: #fff;
    font-size: 14px;
    font-weight: 700;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}

.ps-company-cta {
    min-height: 293px;
    display: flex;
    align-items: center;
    background: var(--company-red);
    color: #fff;
}

.ps-company-cta > div {
    width: min(1654px, calc(100% - 80px));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
    margin: 0 auto;
}

.ps-company-cta h2 {
    font-size: 45px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -.04em;
}

.ps-company-cta a {
    width: 220px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 999px;
    background: #fff;
    color: var(--company-red);
    font-size: 20px;
    font-weight: 700;
    transition: color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.ps-company .ps-reveal {
    opacity: 0;
    transform: translateY(34px);
    transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1);
}

.ps-company .ps-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (hover: hover) and (pointer: fine) {
    .ps-company-cert-card:hover {
        border-color: rgba(209, 79, 48, .55);
        box-shadow: 0 18px 40px rgba(52, 34, 27, .12);
        transform: translateY(-8px);
    }

    .ps-company-map-button:hover,
    .ps-company-map-button:focus-visible {
        border-color: var(--company-red);
        background: var(--company-red);
        color: #fff;
    }

    .ps-company-cta a:hover,
    .ps-company-cta a:focus-visible {
        color: var(--company-red-dark);
        box-shadow: 0 12px 28px rgba(68, 19, 8, .18);
        transform: translateY(-3px);
    }
}

@media (max-width: 1279px) {
    .ps-company-overview-grid,
    .ps-company-greeting-grid,
    .ps-company-location-grid {
        grid-template-columns: 1fr 1fr;
    }

    .ps-company-greeting-grid {
        gap: 56px;
    }

    .ps-company-direction-grid {
        grid-template-columns: minmax(0, 1fr) 70px minmax(0, 1fr);
    }

    .ps-company-org-departments {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px;
    }

    .ps-company-cert-grid {
        grid-template-columns: repeat(3, 282px);
    }

    .ps-company-certifications {
        min-height: auto;
    }

    .ps-company-timeline li {
        grid-template-columns: 90px minmax(0, 1fr) 60px minmax(0, 1fr) 90px;
    }
}

@media (max-width: 1023px) {
    .ps-company-hero {
        height: 650px;
    }

    .ps-company-hero-title {
        top: 220px;
        flex-direction: column;
        gap: 48px;
    }

    .ps-company-hero-title > div:first-child {
        margin-left: 0;
    }

    .ps-company-hero-title > div:last-child {
        align-items: flex-start;
        margin-right: 0;
        padding-top: 0;
        text-align: left;
    }

    .ps-company-overview,
    .ps-company-greeting,
    .ps-company-history,
    .ps-company-certifications,
    .ps-company-organization,
    .ps-company-location {
        min-height: 0;
        padding-top: 90px;
        padding-bottom: 90px;
    }

    .ps-company-overview-grid,
    .ps-company-greeting-grid,
    .ps-company-location-grid {
        grid-template-columns: 1fr;
    }

    .ps-company-overview-photo {
        height: auto;
        aspect-ratio: 16 / 7.25;
    }

    .ps-company-greeting-photo {
        width: min(520px, 100%);
        margin: 0 auto;
    }

    .ps-company-greeting-content {
        padding-top: 0;
    }

    .ps-company-direction {
        min-height: 0;
        padding: 90px 0;
    }

    .ps-company-direction-heading h2 {
        font-size: 44px;
    }

    .ps-company-direction-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .ps-company-direction-item:last-child {
        margin-top: 0;
    }

    .ps-company-direction-axis {
        display: none;
    }

    .ps-company-timeline {
        margin-top: 70px;
        padding-left: 30px;
    }

    .ps-company-timeline::before {
        left: 7px;
    }

    .ps-company-timeline li {
        min-height: 0;
        display: grid;
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 24px;
        padding-bottom: 60px;
    }

    .ps-company-timeline-dot {
        left: 7px;
    }

    .ps-company-timeline li.is-left .ps-company-timeline-year,
    .ps-company-timeline li.is-right .ps-company-timeline-year {
        grid-column: 1;
        text-align: left;
    }

    .ps-company-timeline li.is-left .ps-company-timeline-copy,
    .ps-company-timeline li.is-right .ps-company-timeline-copy {
        grid-column: 2;
        text-align: left;
    }

    .ps-company-timeline li.is-left .ps-company-timeline-copy p {
        background: linear-gradient(90deg, rgba(209, 79, 48, .045), rgba(209, 79, 48, 0));
    }

    .ps-company-timeline li.is-left .ps-company-timeline-copy p::before {
        right: auto;
        left: 0;
    }

    .ps-company-cert-grid {
        grid-template-columns: repeat(2, 282px);
    }

    .ps-company-org-departments {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 90px 24px;
    }

    .ps-company-org-departments::before,
    .ps-company-org-group::before {
        display: none;
    }

    .ps-company-org-ceo::after {
        height: 36px;
    }

    .ps-company-org-departments {
        margin-top: 36px;
    }

    .ps-company-location-map,
    .ps-company-location-card {
        width: min(790px, 100%);
    }

    .ps-company-location-card {
        height: auto;
        min-height: 410px;
    }
}

@media (max-width: 767px) {
    .ps-company-inner {
        width: calc(100% - 40px);
    }

    .ps-company-kicker {
        font-size: 13px;
        line-height: 20px;
    }

    .ps-company-hero {
        height: 590px;
    }

    .ps-company-hero-rail {
        top: 100px;
        right: 20px;
        left: 20px;
    }

    .ps-company-hero-eyebrow {
        top: 62px;
        left: 20px;
        font-size: 12px;
    }

    .ps-company-hero-title {
        top: 155px;
        right: 20px;
        left: 20px;
        gap: 52px;
    }

    .ps-company-hero-title strong {
        font-size: clamp(35px, 10.2vw, 46px);
        white-space: normal;
    }

    .ps-company-hero-title > div:last-child {
        align-items: flex-end;
        text-align: right;
    }

    .ps-company-hero-title span {
        font-size: 10px;
        line-height: 17px;
    }

    .ps-company-scroll {
        bottom: 30px;
        left: 20px;
        font-size: 10px;
    }

    .ps-company-overview,
    .ps-company-greeting,
    .ps-company-history,
    .ps-company-certifications,
    .ps-company-organization,
    .ps-company-location,
    .ps-company-direction {
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .ps-company-overview-title h2,
    .ps-company-greeting-content h2 {
        font-size: 30px;
        line-height: 1.45;
    }

    .ps-company-overview-title h2 br {
        display: none;
    }

    .ps-company-overview-title > strong {
        font-size: 15px;
    }

    .ps-company-overview-copy {
        font-size: 14px;
        line-height: 1.8;
    }

    .ps-company-overview-copy br,
    .ps-company-greeting-body br {
        display: none;
    }

    .ps-company-process {
        height: auto;
        grid-template-columns: repeat(5, minmax(84px, 1fr));
        overflow-x: auto;
    }

    .ps-company-process-item {
        height: 100px;
    }

    .ps-company-process-item img {
        width: 34px;
        height: 35px;
    }

    .ps-company-greeting-grid {
        gap: 54px;
    }

    .ps-company-greeting-photo {
        height: auto;
        aspect-ratio: 520 / 700;
    }

    .ps-company-greeting-body {
        margin-top: 32px;
        font-size: 14px;
    }

    .ps-company-manifesto {
        height: 410px;
    }

    .ps-company-manifesto-rail {
        top: 42px;
        right: 20px;
        left: 20px;
    }

    .ps-company-manifesto-content {
        padding: 72px 20px 0;
    }

    .ps-company-manifesto-content h2 {
        font-size: 38px;
        line-height: 1.4;
    }

    .ps-company-manifesto-content > p:last-child {
        margin-top: 28px;
        font-size: 18px;
        line-height: 1.65;
    }

    .ps-company-direction-heading h2 {
        font-size: 31px;
        line-height: 1.45;
    }

    .ps-company-direction-heading h2 br {
        display: none;
    }

    .ps-company-direction-grid {
        margin-top: 54px;
    }

    .ps-company-direction-item {
        padding-left: 0;
    }

    .ps-company-direction-item h3 {
        font-size: 23px;
    }

    .ps-company-direction-item h3 br {
        display: none;
    }

    .ps-company-direction-item ul {
        font-size: 15px;
    }

    .ps-company-section-heading h2 {
        font-size: 32px;
    }

    .ps-company-timeline {
        padding-left: 22px;
    }

    .ps-company-timeline li {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 14px;
    }

    .ps-company-timeline-year {
        font-size: 21px;
    }

    .ps-company-timeline-copy {
        font-size: 14px;
        line-height: 1.65;
    }

    .ps-company-cert-tabs {
        gap: 0;
    }

    .ps-company-cert-tabs button,
    .ps-company-cert-tabs button:first-child,
    .ps-company-cert-tabs button:nth-child(2),
    .ps-company-cert-tabs button.is-active {
        width: 50%;
        font-size: 16px;
    }

    .ps-company-cert-tabs::after {
        width: 50%;
    }

    .ps-company-cert-tabs.is-patent-active::after {
        left: 50%;
        width: 50%;
    }

    .ps-company-cert-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .ps-company-cert-card {
        width: 100%;
        height: auto;
        min-height: 390px;
        padding: 12px 12px 42px;
    }

    .ps-company-cert-image {
        width: 100%;
        height: auto;
        aspect-ratio: 226 / 320;
    }

    .ps-company-cert-card h3 {
        margin-top: 14px;
        font-size: 15px;
        line-height: 1.45;
    }

    .ps-company-cert-card p {
        font-size: 11px;
        line-height: 1.5;
    }

    .ps-company-cert-card > i {
        bottom: 22px;
        left: 12px;
    }

    .ps-company-organization .ps-company-section-heading > strong {
        font-size: 16px;
    }

    .ps-company-organization .ps-company-section-heading > p:last-child {
        font-size: 14px;
        line-height: 1.7;
    }

    .ps-company-org-ceo {
        width: 100%;
    }

    .ps-company-org-departments {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ps-company-org-group > div {
        margin-top: 20px;
    }

    .ps-company-org-group > div::before,
    .ps-company-org-group > div::after,
    .ps-company-org-group span::before {
        display: none;
    }

    .ps-company-engineer-note {
        height: auto;
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
        margin-top: 54px;
        padding: 30px;
    }

    .ps-company-engineer-note p {
        width: 100%;
        font-size: 15px;
    }

    .ps-company-location-map {
        height: auto;
        aspect-ratio: 790 / 450;
    }

    .ps-company-location-card {
        min-height: 430px;
        padding: 28px 24px;
    }

    .ps-company-location-card h3 {
        font-size: 21px;
    }

    .ps-company-address,
    .ps-company-contact {
        font-size: 14px;
    }

    .ps-company-cta {
        min-height: 280px;
    }

    .ps-company-cta > div {
        width: calc(100% - 40px);
        align-items: flex-start;
        flex-direction: column;
        gap: 32px;
        padding: 55px 0;
    }

    .ps-company-cta h2 {
        font-size: 30px;
        line-height: 1.45;
    }

    .ps-company-cta a {
        width: 170px;
        height: 52px;
        font-size: 17px;
    }
}

@media (max-width: 420px) {
    .ps-company-cert-grid {
        grid-template-columns: 1fr;
    }

    .ps-company-cert-card {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ps-company-hero-image {
        animation: none;
        transform: scale(1.025);
    }

    .ps-company .ps-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .ps-company-scroll img {
        animation: none;
    }

    .ps-company-cert-panel.is-fading-in .ps-company-cert-card {
        animation: none;
    }
}
