.ps-tech {
    --ps-red:#d14f30;
    --ps-ink:#111;
    overflow:hidden;
    background:#fff;
    color:var(--ps-ink);
    font-family:'Noto Sans KR','Pretendard','Malgun Gothic',sans-serif;
}
.ps-tech * { box-sizing:border-box; }
.ps-tech p,.ps-tech h1,.ps-tech h2,.ps-tech h3,.ps-tech figure,.ps-tech ol,.ps-tech ul { margin:0; padding:0; }
.ps-tech li { list-style:none; }
.ps-tech img { display:block; max-width:100%; }
.ps-tech-inner { position:relative; width:1200px; height:100%; margin:0 auto; }
.ps-tech-reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease,transform .8s ease; }
.ps-tech-reveal.is-visible { opacity:1; transform:none; }

/* common hero */
.ps-tech-hero { position:relative; height:560px; overflow:hidden; background:#0d0d0d; }
.ps-tech-hero>img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; transform:scale(1.025); transform-origin:center; animation:ps-tech-hero-breathe 12s ease-in-out infinite; will-change:transform; }
.ps-tech-hero>i { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,5,.9),rgba(5,5,5,.52) 55%,rgba(5,5,5,.16)); }
.ps-tech-hero-copy { color:#fff; }
.ps-tech-hero-copy>p { position:absolute; top:150px; left:0; color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.06em; }
.ps-tech-hero-copy>b { position:absolute; top:190px; left:0; width:54px; height:3px; background:var(--ps-red); }
.ps-tech-hero-copy h1 { position:absolute; top:214px; left:0; font-size:64px; line-height:82px; letter-spacing:-.035em; }
.ps-tech-hero-copy strong { position:absolute; top:320px; left:0; color:rgba(255,255,255,.84); font-size:20px; font-weight:400; line-height:32px; }

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

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

/* local navigation */
.ps-tech-local { height:96px; overflow:hidden; border-bottom:1px solid #e0ded9; background:#fff; }
.ps-tech-local>.ps-tech-inner { display:flex; align-items:flex-start; }
.ps-tech-local-title { width:450px; height:95px; display:flex; align-items:center; gap:10px; flex:0 0 450px; }
.ps-tech-local-title strong { width:250px; color:#0f1112; font-size:18px; line-height:22px; }
.ps-tech-local-title span { width:170px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:19px; }
.ps-tech-local-links { height:95px; display:flex; align-items:center; }
.ps-tech-local-links a { position:relative; width:205px; height:95px; display:flex; align-items:center; color:#575757; font-size:16px; line-height:19px; text-decoration:none; white-space:nowrap; }
.ps-tech-local-links a:nth-child(2) { width:185px; margin-left:30px; }
.ps-tech-local-links a:nth-child(3) { width:230px; margin-left:40px; }
.ps-tech-local-links a.is-active { color:var(--ps-red); font-weight:700; }
.ps-tech-local-links a::after { position:absolute; bottom:4px; left:0; width:0; height:3px; background:var(--ps-red); content:''; transition:width .3s ease; }
.ps-tech-local-links a:first-child.is-active::after { width:170px; }
.ps-tech-local-links a:nth-child(2).is-active::after { width:150px; }
.ps-tech-local-links a:nth-child(3).is-active::after { width:190px; }

/* page 01 - overview */
.ps-tech01-overview { height:648px; overflow:hidden; background:#fff; }
.ps-tech01-overview-layout { position:relative; }
.ps-tech01-overview-copy { position:absolute; top:122px; left:0; width:501px; }
.ps-tech01-overview-copy>p,.ps-tech02-overview-copy>p,.ps-tech03-overview-copy>p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.06em; }
.ps-tech01-overview-copy h2,.ps-tech02-overview-copy h2 { margin-top:26px; color:#111; font-size:44px; line-height:60px; letter-spacing:-.035em; }
.ps-tech01-overview-copy>div { margin-top:15px; color:#575757; font-size:18px; line-height:32px; }
.ps-tech01-overview-image { position:absolute; top:122px; left:559px; width:640px; height:438px; overflow:hidden; border-radius:8px; }
.ps-tech01-overview-image img { width:100%; height:100%; object-fit:cover; border-radius:8px; }

/* page 01 - five core technologies */
.ps-tech01-core { position:relative; height:1900px; overflow:hidden; border-top:1px solid #e0dbd6; background:#fff; }
.ps-tech01-core-heading { position:absolute; top:86px; left:calc(50% - 600px); width:1200px; }
.ps-tech01-core-heading>p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; }
.ps-tech01-core-heading h2 { margin-top:18px; font-size:46px; line-height:60px; }
.ps-tech01-core-heading strong { position:absolute; top:44px; right:0; width:610px; color:#4d4d4d; font-size:18px; font-weight:400; line-height:31px; }
.ps-tech01-core-item { position:absolute; right:0; left:0; height:270px; }
.ps-tech01-core-item figure,.ps-tech01-core-item .ps-tech01-core-panel,.ps-tech01-core-copy { position:absolute; }
.ps-tech01-core-item figure { overflow:hidden; }
.ps-tech01-core-item figure img { width:100%; height:100%; object-fit:cover; }
.ps-tech01-core-copy i { display:block; width:44px; height:3px; margin-bottom:18px; background:var(--ps-red); }
.ps-tech01-core-copy h3 { font-size:31px; line-height:42px; letter-spacing:-.025em; }
.ps-tech01-core-copy p { margin-top:17px; color:#4d4d4d; font-size:18px; line-height:31px; }
.ps-tech01-core-item.is-1 { top:270px; }
.ps-tech01-core-item.is-1 figure { top:0; left:0; width:calc(50% - 100px); height:270px; }
.ps-tech01-core-item.is-1 .ps-tech01-core-copy { top:48px; left:50%; width:600px; }
.ps-tech01-core-item.is-2 { top:580px; }
.ps-tech01-core-item.is-2 .ps-tech01-core-panel { top:0; left:calc(50% - 600px); width:780px; height:270px; background:#f6f5f2; }
.ps-tech01-core-item.is-2 .ps-tech01-core-copy { top:47px; left:calc(50% - 558px); width:650px; }
.ps-tech01-core-item.is-2 figure { top:30px; left:calc(50% + 120px); width:480px; height:240px; }
.ps-tech01-core-item.is-3 { top:900px; }
.ps-tech01-core-item.is-3 figure { top:0; left:calc(50% - 600px); width:480px; height:270px; }
.ps-tech01-core-item.is-3 .ps-tech01-core-copy { top:48px; left:calc(50% - 30px); width:630px; }
.ps-tech01-core-item.is-4 { top:1220px; }
.ps-tech01-core-item.is-4 .ps-tech01-core-panel { inset:0 auto 0 0; width:calc(50% - 100px); background:#f6f5f2; }
.ps-tech01-core-item.is-4 .ps-tech01-core-copy { top:47px; left:calc(50% - 600px); width:500px; }
.ps-tech01-core-item.is-4 figure { top:0; right:0; width:50%; height:270px; }
.ps-tech01-core-item.is-5 { top:1540px; }
.ps-tech01-core-item.is-5 .ps-tech01-core-panel { top:0; left:calc(50% - 600px); width:780px; height:270px; background:#f6f5f2; }
.ps-tech01-core-item.is-5 .ps-tech01-core-copy { top:47px; left:calc(50% - 558px); width:650px; }
.ps-tech01-core-item.is-5 figure { top:30px; left:calc(50% + 120px); width:480px; height:240px; }

/* page 01 - delivery process */
.ps-tech01-delivery { position:relative; height:920px; overflow:hidden; background:#090909; color:#fff; }
.ps-tech01-delivery>img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; }
.ps-tech01-delivery>i { position:absolute; inset:0; background:rgba(9,9,9,.88); }
.ps-tech01-delivery-layout { position:relative; }
.ps-tech01-delivery-heading { position:absolute; top:118px; left:0; }
.ps-tech01-delivery-heading>p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.06em; }
.ps-tech01-delivery-heading h2 { margin-top:26px; font-size:46px; line-height:60px; }
.ps-tech01-delivery-heading strong { display:block; margin-top:12px; color:rgba(255,255,255,.68); font-size:18px; font-weight:400; line-height:30px; }
.ps-tech01-delivery-steps { position:absolute; top:350px; left:0; width:1200px; display:grid; grid-template-columns:repeat(5,220px); gap:25px; }
.ps-tech01-delivery-steps li { position:relative; height:270px; padding:27px 23px; border:1px solid rgba(255,255,255,.2); border-radius:6px; background:rgba(255,255,255,.05); }
.ps-tech01-delivery-steps li:not(:last-child)::after { position:absolute; top:123px; right:-24px; width:20px; height:20px; background:url('../img/sub03/sub03-flow-arrow.svg') center/20px 20px no-repeat; content:''; }
.ps-tech01-delivery-steps li>i { display:block; width:42px; height:3px; background:var(--ps-red); }
.ps-tech01-delivery-steps li>b { display:block; margin-top:20px; color:rgba(255,255,255,.22); font-family:Inter,sans-serif; font-size:52px; line-height:62px; }
.ps-tech01-delivery-steps li>p { margin-top:3px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.04em; }
.ps-tech01-delivery-steps li>h3 { margin-top:20px; color:#fff; font-size:24px; line-height:34px; }
.ps-tech01-delivery-summary { position:absolute; top:688px; left:0; width:1200px; height:85px; padding-top:37px; border-top:1px solid rgba(255,255,255,.22); }
.ps-tech01-delivery-summary b { display:inline-block; width:260px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; line-height:20px; letter-spacing:.05em; }
.ps-tech01-delivery-summary span { color:rgba(255,255,255,.82); font-size:18px; line-height:22px; }

/* page 02 */
.ps-tech02-overview { height:760px; overflow:hidden; background:#fff; }
.ps-tech02-overview-layout { position:relative; }
.ps-tech02-overview-copy { position:absolute; top:122px; left:0; width:520px; }
.ps-tech02-overview-copy h2 { margin-top:26px; }
.ps-tech02-overview-copy>div { margin-top:15px; color:#575757; font-size:18px; line-height:32px; }
.ps-tech02-overview-image { position:absolute; top:120px; right:0; width:627px; height:520px; overflow:hidden; border-radius:8px; }
.ps-tech02-overview-image img { width:100%; height:100%; object-fit:cover; border-radius:8px; }
.ps-tech02-process { height:1840px; overflow:hidden; background:#f7f6f2; }
.ps-tech02-process-layout { position:relative; }
.ps-tech02-process-heading { position:absolute; top:140px; left:0; width:360px; }
.ps-tech02-process-heading>p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.06em; }
.ps-tech02-process-heading h2 { margin-top:26px; font-size:46px; line-height:60px; }
.ps-tech02-process-heading strong { display:block; width:300px; margin-top:24px; color:#575757; font-size:18px; font-weight:400; line-height:31px; }
.ps-tech02-process-image { position:absolute; top:510px; left:0; width:300px; height:1150px; overflow:hidden; border-radius:6px; }
.ps-tech02-process-image img { width:100%; height:100%; object-fit:cover; border-radius:6px; }
.ps-tech02-process-image figcaption { position:absolute; top:15px; left:17px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.04em; }
.ps-tech02-process-list { position:absolute; top:120px; right:0; width:800px; display:grid; gap:20px; }
.ps-tech02-process-list li { position:relative; width:800px; height:240px; display:grid; grid-template-columns:102px 1fr; padding:25px 35px; border:1px solid #dbd6d1; border-radius:6px; background:#fff; }
.ps-tech02-process-list li>i { position:absolute; top:27px; bottom:27px; left:-1px; width:4px; background:var(--ps-red); }
.ps-tech02-process-list li>b { color:#e8e3de; font-family:Inter,sans-serif; font-size:64px; line-height:76px; }
.ps-tech02-process-list li>div { padding-top:6px; }
.ps-tech02-process-list li p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; letter-spacing:.05em; }
.ps-tech02-process-list li h3 { margin-top:14px; font-size:27px; line-height:38px; }
.ps-tech02-process-list li span { display:block; margin-top:10px; color:#575757; font-size:16.5px; line-height:27px; }

/* page 03 */
.ps-tech03-overview { height:680px; overflow:hidden; background:#fff; }
.ps-tech03-overview-layout { position:relative; }
.ps-tech03-overview-copy { position:absolute; top:100px; left:0; width:520px; }
.ps-tech03-overview-copy h2 { margin-top:20px; color:#121212; font-size:44px; line-height:58px; letter-spacing:-.035em; }
.ps-tech03-overview-copy>div { margin-top:20px; color:#5c5752; font-size:19px; line-height:32px; }
.ps-tech03-overview-copy ul { width:520px; height:56px; display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; background:#f7f5f2; }
.ps-tech03-overview-copy li { position:relative; display:flex; align-items:center; justify-content:center; color:#2e2b29; font-size:16px; font-weight:500; }
.ps-tech03-overview-copy li:not(:last-child)::after { position:absolute; top:18px; right:0; width:1px; height:20px; background:#d1ccc4; content:''; }
.ps-tech03-overview-image { position:absolute; top:100px; right:-20px; width:620px; height:480px; overflow:hidden; border-radius:8px; }
.ps-tech03-overview-image img { width:100%; height:100%; object-fit:cover; border-radius:8px; }
.ps-tech03-principles { height:780px; overflow:hidden; border-top:1px solid #e0dbd6; background:#fff; }
.ps-tech03-principles-layout { position:relative; }
.ps-tech03-heading { position:absolute; top:90px; left:0; width:1200px; text-align:center; }
.ps-tech03-heading p,.ps-tech03-response-heading p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:20px; }
.ps-tech03-heading h2 { margin-top:16px; color:#121212; font-size:44px; line-height:56px; }
.ps-tech03-principle-rail { position:absolute; top:220px; left:0; width:1200px; height:420px; display:grid; grid-template-columns:320px 880px; }
.ps-tech03-core-hub { height:420px; padding:40px 36px; background:#111; }
.ps-tech03-core-hub>i { display:block; width:56px; height:4px; background:var(--ps-red); }
.ps-tech03-core-hub>p { margin-top:20px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:15px; font-weight:600; line-height:20px; }
.ps-tech03-core-hub h3 { margin-top:20px; color:#fff; font-family:Inter,sans-serif; font-size:34px; font-weight:600; line-height:42px; }
.ps-tech03-core-hub span { display:block; margin-top:20px; color:#c7c2ba; font-size:17px; line-height:28px; }
.ps-tech03-principle-grid { display:grid; grid-template-columns:repeat(2,440px); grid-template-rows:repeat(2,210px); }
.ps-tech03-principle-grid article { height:210px; padding:20px 24px; border:1px solid #e0dbd4; background:#fff; }
.ps-tech03-principle-grid article>i { display:block; width:48px; height:3px; background:var(--ps-red); }
.ps-tech03-principle-grid article>p { margin-top:10px; color:var(--ps-red); font-family:Inter,sans-serif; font-size:15px; font-weight:600; line-height:18px; }
.ps-tech03-principle-grid article h3 { margin-top:10px; color:#141414; font-size:25px; line-height:34px; }
.ps-tech03-principle-grid article span { display:block; margin-top:10px; color:#57544f; font-size:16px; line-height:26px; }
.ps-tech03-response { height:1197px; overflow:hidden; border-top:1px solid #e0dbd6; background:#fff; }
.ps-tech03-response-layout { position:relative; }
.ps-tech03-response-heading { position:absolute; top:100px; left:0; width:1200px; }
.ps-tech03-response-heading h2 { margin-top:16px; color:#121212; font-size:44px; line-height:56px; }
.ps-tech03-response-heading strong { display:block; margin-top:16px; color:#615c57; font-size:18px; font-weight:400; line-height:30px; }
.ps-tech03-response-grid { position:absolute; top:284px; left:0; width:1200px; display:grid; grid-template-columns:repeat(2,590px); grid-template-rows:250px 271px 245px; gap:20px; }
.ps-tech03-response-grid article { height:245px; padding:32px 34px; border:1px solid #e0dbd4; border-radius:6px; background:#fff; }
.ps-tech03-response-grid article.is-primary { grid-column:1/-1; height:250px; padding:36px 44px; border:0; background:#0f0f0f; }
.ps-tech03-response-grid article.is-soft { height:271px; background:#f7f5f2; }
.ps-tech03-response-grid article p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:17px; font-weight:600; line-height:21px; }
.ps-tech03-response-grid article h3 { margin-top:18px; color:#141414; font-size:28px; line-height:36px; }
.ps-tech03-response-grid article span { display:block; margin-top:18px; color:#5c5752; font-size:18px; line-height:31px; }
.ps-tech03-response-grid article.is-primary p { color:#ed7352; }
.ps-tech03-response-grid article.is-primary h3 { color:#fff; font-size:30px; }
.ps-tech03-response-grid article.is-primary span { color:#d4d1cc; line-height:30px; }

/* common CTA */
.ps-tech-contact { height:260px; overflow:hidden; background:#0e0e0e; }
.ps-tech-contact-layout { position:relative; color:#fff; }
.ps-tech-contact-layout>div { position:absolute; top:56px; left:0; }
.ps-tech-contact-layout p { color:var(--ps-red); font-family:Inter,sans-serif; font-size:16px; font-weight:600; line-height:23px; }
.ps-tech-contact-layout h2 { margin-top:13px; font-size:34px; line-height:49px; }
.ps-tech-contact-layout div>span { display:block; margin-top:0; color:#bfbfbf; font-size:18px; line-height:26px; }
.ps-tech-contact-layout>a { position:absolute; top:92px; right:0; width:260px; height:64px; display:flex; align-items:center; justify-content:center; gap:8px; border-radius:6px; background:var(--ps-red); color:#fff; font-size:18px; font-weight:500; text-decoration:none; transition:background .25s ease,transform .25s ease; }
.ps-tech-contact-layout>a:hover { background:#b94127; transform:translateY(-2px); }

@media (max-width:900px) {
    .ps-tech-inner { width:calc(100% - 40px); }
    .ps-tech-hero { height:420px; }
    .ps-tech-hero-copy>p { top:100px; }
    .ps-tech-hero-copy>b { top:136px; }
    .ps-tech-hero-copy h1 { top:160px; width:100%; font-size:46px; line-height:1.3; }
    .ps-tech-hero-copy strong { top:250px; width:90%; font-size:18px; line-height:1.65; }
    .ps-tech-local { height:135px; }
    .ps-tech-local>.ps-tech-inner { display:block; width:100%; }
    .ps-tech-local-title { width:100%; height:66px; padding:0 20px; gap:18px; }
    .ps-tech-local-title strong,.ps-tech-local-title span { width:auto; }
    .ps-tech-local-links { width:100%; height:69px; padding:0 20px; gap:28px; overflow-x:auto; }
    .ps-tech-local-links a,.ps-tech-local-links a:nth-child(2),.ps-tech-local-links a:nth-child(3) { width:auto; height:69px; flex:0 0 auto; margin:0; }
    .ps-tech-local-links a.is-active::after { right:0; bottom:0; width:auto!important; }

    .ps-tech01-overview,.ps-tech02-overview,.ps-tech03-overview { height:auto; padding:72px 0 80px; overflow:visible; }
    .ps-tech01-overview-layout,.ps-tech02-overview-layout,.ps-tech03-overview-layout { height:auto; display:grid; gap:42px; }
    .ps-tech01-overview-copy,.ps-tech02-overview-copy,.ps-tech03-overview-copy,.ps-tech01-overview-image,.ps-tech02-overview-image,.ps-tech03-overview-image { position:static; width:100%; }
    .ps-tech01-overview-image { height:auto; aspect-ratio:640/438; }
    .ps-tech02-overview-image { height:auto; aspect-ratio:627/520; }
    .ps-tech03-overview-image { height:auto; aspect-ratio:620/480; }

    .ps-tech01-core { height:auto; padding:72px 0 80px; }
    .ps-tech01-core-heading { position:relative; top:auto; left:auto; width:calc(100% - 40px); margin:0 auto; }
    .ps-tech01-core-heading strong { position:static; display:block; width:100%; margin-top:16px; }
    .ps-tech01-core-item,.ps-tech01-core-item.is-1,.ps-tech01-core-item.is-2,.ps-tech01-core-item.is-3,.ps-tech01-core-item.is-4,.ps-tech01-core-item.is-5 { position:relative; top:auto; right:auto; left:auto; width:calc(100% - 40px); height:auto; display:grid; grid-template-columns:1.2fr 1fr; gap:30px; margin:0 auto 36px; padding:24px; border:1px solid #e0dbd6; background:#fff; }
    .ps-tech01-core-item:nth-of-type(even) { grid-template-columns:1fr 1.2fr; }
    .ps-tech01-core-item figure,.ps-tech01-core-item .ps-tech01-core-panel,.ps-tech01-core-copy,.ps-tech01-core-item.is-1 figure,.ps-tech01-core-item.is-1 .ps-tech01-core-copy,.ps-tech01-core-item.is-2 figure,.ps-tech01-core-item.is-2 .ps-tech01-core-copy,.ps-tech01-core-item.is-3 figure,.ps-tech01-core-item.is-3 .ps-tech01-core-copy,.ps-tech01-core-item.is-4 figure,.ps-tech01-core-item.is-4 .ps-tech01-core-copy,.ps-tech01-core-item.is-5 figure,.ps-tech01-core-item.is-5 .ps-tech01-core-copy { position:static; width:100%; height:auto; }
    .ps-tech01-core-item .ps-tech01-core-panel { display:none; }
    .ps-tech01-core-item figure { aspect-ratio:16/8; }
    .ps-tech01-core-item:nth-of-type(even) figure { grid-column:2; }
    .ps-tech01-core-item:nth-of-type(even) .ps-tech01-core-copy { grid-row:1; grid-column:1; }
    .ps-tech01-core-copy { align-self:center; }

    .ps-tech01-delivery { height:auto; min-height:920px; padding:72px 0 80px; }
    .ps-tech01-delivery-layout { height:auto; }
    .ps-tech01-delivery-heading,.ps-tech01-delivery-steps,.ps-tech01-delivery-summary { position:static; width:100%; }
    .ps-tech01-delivery-steps { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:46px; gap:20px; }
    .ps-tech01-delivery-steps li { width:auto; }
    .ps-tech01-delivery-steps li::after { display:none; }
    .ps-tech01-delivery-summary { height:auto; margin-top:46px; padding-top:30px; }
    .ps-tech01-delivery-summary b { width:auto; margin-right:24px; }

    .ps-tech02-process { height:auto; padding:72px 0 80px; overflow:visible; }
    .ps-tech02-process-layout { height:auto; display:grid; grid-template-columns:260px 1fr; gap:36px; }
    .ps-tech02-process-heading,.ps-tech02-process-image,.ps-tech02-process-list { position:static; width:100%; }
    .ps-tech02-process-heading { grid-column:1/-1; }
    .ps-tech02-process-heading strong { width:100%; }
    .ps-tech02-process-image { height:auto; aspect-ratio:300/1150; }
    .ps-tech02-process-list { display:grid; gap:18px; }
    .ps-tech02-process-list li { width:100%; height:auto; min-height:240px; }

    .ps-tech03-principles,.ps-tech03-response { height:auto; padding:72px 0 80px; overflow:visible; }
    .ps-tech03-principles-layout,.ps-tech03-response-layout { height:auto; }
    .ps-tech03-heading,.ps-tech03-response-heading,.ps-tech03-principle-rail,.ps-tech03-response-grid { position:static; width:100%; }
    .ps-tech03-principle-rail { height:auto; grid-template-columns:260px 1fr; margin-top:42px; }
    .ps-tech03-core-hub { width:260px; height:auto; min-height:420px; }
    .ps-tech03-principle-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(210px,auto)); }
    .ps-tech03-principle-grid article { width:auto; height:auto; min-height:210px; }
    .ps-tech03-response-grid { margin-top:42px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; }
    .ps-tech03-response-grid article,.ps-tech03-response-grid article.is-soft,.ps-tech03-response-grid article.is-primary { width:auto; height:auto; min-height:245px; }

    .ps-tech-contact { height:auto; }
    .ps-tech-contact-layout { height:auto; padding:55px 0; }
    .ps-tech-contact-layout>div,.ps-tech-contact-layout>a { position:static; }
    .ps-tech-contact-layout>a { margin-top:32px; }
}

@media (max-width:560px) {
    .ps-tech-hero-copy>p { top:82px; font-size:14px; }
    .ps-tech-hero-copy>b { top:118px; width:48px; }
    .ps-tech-hero-copy h1 { top:144px; font-size:34px; line-height:1.4; }
    .ps-tech-hero-copy strong { top:230px; width:100%; font-size:15px; line-height:1.7; }
    .ps-tech01-overview,.ps-tech02-overview,.ps-tech03-overview,.ps-tech01-core,.ps-tech02-process,.ps-tech03-principles,.ps-tech03-response { padding:56px 0 64px; }
    .ps-tech01-overview-copy h2,.ps-tech02-overview-copy h2,.ps-tech03-overview-copy h2,.ps-tech01-core-heading h2,.ps-tech02-process-heading h2,.ps-tech03-heading h2,.ps-tech03-response-heading h2 { font-size:32px; line-height:1.45; }
    .ps-tech01-overview-copy>div,.ps-tech02-overview-copy>div,.ps-tech03-overview-copy>div { font-size:16px; line-height:1.8; }
    .ps-tech03-overview-copy ul { width:100%; }
    .ps-tech01-core-item,.ps-tech01-core-item.is-1,.ps-tech01-core-item.is-2,.ps-tech01-core-item.is-3,.ps-tech01-core-item.is-4,.ps-tech01-core-item.is-5 { grid-template-columns:1fr; gap:24px; padding:0 0 26px; overflow:hidden; }
    .ps-tech01-core-item:nth-of-type(even) { grid-template-columns:1fr; }
    .ps-tech01-core-item:nth-of-type(even) figure,.ps-tech01-core-item:nth-of-type(even) .ps-tech01-core-copy { grid-row:auto; grid-column:auto; }
    .ps-tech01-core-copy { padding:0 22px; }
    .ps-tech01-core-copy h3 { font-size:24px; line-height:1.5; }
    .ps-tech01-core-copy p { font-size:15px; line-height:1.8; }
    .ps-tech01-delivery { padding:56px 0 64px; }
    .ps-tech01-delivery-heading h2 { font-size:32px; line-height:1.45; }
    .ps-tech01-delivery-steps { grid-template-columns:1fr; }
    .ps-tech01-delivery-summary b,.ps-tech01-delivery-summary span { display:block; }
    .ps-tech01-delivery-summary span { margin-top:14px; font-size:15px; line-height:1.8; }
    .ps-tech02-process-layout { grid-template-columns:1fr; }
    .ps-tech02-process-image { max-height:520px; aspect-ratio:300/520; }
    .ps-tech02-process-list li { grid-template-columns:64px 1fr; padding:22px 20px; }
    .ps-tech02-process-list li>b { font-size:42px; line-height:54px; }
    .ps-tech02-process-list li h3 { font-size:22px; line-height:1.5; }
    .ps-tech02-process-list li span { font-size:14px; line-height:1.75; }
    .ps-tech03-principle-rail { grid-template-columns:1fr; }
    .ps-tech03-core-hub { width:100%; min-height:350px; }
    .ps-tech03-principle-grid { grid-template-columns:1fr; grid-template-rows:none; }
    .ps-tech03-principle-grid article { min-height:190px; }
    .ps-tech03-principle-grid article h3 { font-size:22px; }
    .ps-tech03-response-grid { grid-template-columns:1fr; }
    .ps-tech03-response-grid article.is-primary { grid-column:auto; }
    .ps-tech03-response-grid article h3,.ps-tech03-response-grid article.is-primary h3 { font-size:24px; line-height:1.5; }
    .ps-tech03-response-grid article span { font-size:15px; line-height:1.8; }
    .ps-tech-contact-layout h2 { font-size:26px; line-height:1.5; }
    .ps-tech-contact-layout div>span { margin-top:6px; font-size:15px; line-height:1.75; }
    .ps-tech-contact-layout>a { width:100%; height:58px; }
}
/* Fixed header offset for links from the main competency cards. */
#core-technology,
#industry-solutions,
#engineering-process,
#custom-design,
#process-validation,
#technical-support,
#customization-response {
    scroll-margin-top: 120px;
}
