:root {
    --sb-ink: #15171A;
    --sb-ink-2: #3A4048;
    --sb-muted: #5B6670;
    --sb-line: #E4E7EB;
    --sb-soft: #F5F6F8;
    --sb-control-border: #C9CED4;
    --sb-on-ink-muted: #C3C8CF;
    --sb-on-ink-border: #5B626B;
    --sb-white: #FFFFFF;
    --sb-red: #C62828;
    --sb-red-dark: #A21F1F;
    --sb-lux: #C9301F;
    --sb-cella: #1F5FBF;
    --sb-font: 'Inter', 'Noto Sans KR', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --sb-radius: 12px;
    --sb-shadow: 0 1px 2px rgba(21, 23, 26, 0.04), 0 10px 28px rgba(21, 23, 26, 0.07);
    --sb-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    --sb-gutter: clamp(20px, 4vw, 48px);
}
body.sb2 {
    margin: 0;
    background: var(--sb-white);
    color: var(--sb-ink);
    font-family: var(--sb-font);
    font-size: 1.0625rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    word-break: keep-all;
    overflow-wrap: break-word;
    caret-color: var(--sb-red);
}
.sb2 *,
.sb2 *::before,
.sb2 *::after {
    box-sizing: border-box;
}
html:has(> body.sb2) {
    scrollbar-color: var(--sb-control-border) var(--sb-white);
}
.sb2 ::selection {
    background: rgba(198, 40, 40, 0.16);
    color: var(--sb-ink);
}
.sb2 :where(h1, h2, h3, h4, p, ul) {
    margin: 0;
}
.sb2 :where(h1, h2, h3, h4) {
    font-family: inherit;
    color: inherit;
}

.sb2 :where(a) {
    color: inherit;
    text-underline-offset: 0.22em;
}

.sb2 [hidden] {
    display: none !important;
}

.sb2 :focus-visible {
    outline: 2px solid var(--sb-red);
    outline-offset: 3px;
    border-radius: 4px;
}
.sb-container {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 var(--sb-gutter);
}
.sb-tel {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sb-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.sb-skip {
    position: absolute;
    left: -9999px;
    top: 8px;
    z-index: 1001;
    background: var(--sb-ink);
    color: var(--sb-white);
    padding: 10px 14px;
    border-radius: 8px;
}
.sb-skip:focus {
    left: 8px;
}

.sb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 24px;
    border-radius: 10px;
    font: 600 1rem/1 var(--sb-font);
    text-decoration: none;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: background-color 160ms var(--sb-ease), border-color 160ms var(--sb-ease), color 160ms var(--sb-ease);
}
.sb-btn svg {
    width: 18px;
    height: 18px;
    flex: none;
}
.sb-btn--primary {
    background: var(--sb-red);
    color: var(--sb-white);
}

.sb-btn--primary:hover {
    background: var(--sb-red-dark);
}
.sb-btn--secondary {
    background: var(--sb-white);
    color: var(--sb-ink);
    border-color: var(--sb-control-border);
}
.sb-btn--secondary:hover {
    border-color: var(--sb-ink);
}
.sb-btn--small {
    min-height: 44px;
    padding: 0 16px;
    font-size: 0.9375rem;
    border-radius: 8px;
}
.sb-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--sb-white);
    border-bottom: 1px solid var(--sb-line);
    font-family: var(--sb-font);
    line-height: 1.6;
    color: var(--sb-ink);
}
.sb-header__bar {
    display: flex;
    align-items: center;
    gap: 32px;
    height: 72px;
}
.sb-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: none;
    min-height: 44px;
    color: var(--sb-ink);
    text-decoration: none;
}
.sb-logo__word {
    font-size: 1.1875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1;
}
.sb-logo img {
    display: block;
    height: 36px;
    width: auto;
}

.sb-logo__bird {
    position: relative;
    display: block;
    flex: none;
}
.sb-logo__parts {
    position: absolute;
    inset: 0;
    visibility: hidden;
}
.sb-logo__part {
    position: absolute;
    inset: 0;
    background: url(../assets/logo-parts.png) no-repeat 0 0 / 500% 100%;
}

.sb-logo__part--ul {
    transform-origin: 41.38% 62.2%;
}
.sb-logo__part--ll {
    background-position: 25% 0;
    transform-origin: 51.29% 60.98%;
}
.sb-logo__part--ur {
    background-position: 50% 0;
    transform-origin: 40.95% 76.83%;
}
.sb-logo__part--lr {
    background-position: 75% 0;
    transform-origin: 54.31% 76.83%;
}
.sb-logo__part--tail {
    background-position: 100% 0;
}
.sb-logo__bird.is-flapping .sb-logo__parts {
    visibility: visible;
}
.sb-logo__bird.is-flapping > img {
    visibility: hidden;
}

.sb-logo__bird.is-flapping .sb-logo__part--ul {
    animation: sb-flap-ul 0.9s 0.2s 3 both;
}

.sb-logo__bird.is-flapping .sb-logo__part--ur {
    animation: sb-flap-ur 0.9s 0.2s 3 both;
}

.sb-logo__bird.is-flapping .sb-logo__part--ll {
    animation: sb-flap-ll 0.9s 0.26s 3 both;
}

.sb-logo__bird.is-flapping .sb-logo__part--lr {
    animation: sb-flap-lr 0.9s 0.26s 3 both;
}

@keyframes sb-flap-ul {
    0% {
        transform: none;
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    45% {
        transform: rotate(-36deg);
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }

    100% {
        transform: none;
    }
}
@keyframes sb-flap-ur {
    0% {
        transform: none;
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    45% {
        transform: rotate(36deg);
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    100% {
        transform: none;
    }
}
@keyframes sb-flap-ll {
    0% {
        transform: none;
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    45% {
        transform: rotate(-16deg);
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    100% {
        transform: none;
    }
}
@keyframes sb-flap-lr {
    0% {
        transform: none;
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    45% {
        transform: rotate(16deg);
        animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
    }
    100% {
        transform: none;
    }
}
.sb-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-right: auto;
}
.sb-nav a {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--sb-ink-2);
    text-decoration: none;
}
.sb-nav a:hover,
.sb-nav a[aria-current] {
    color: var(--sb-ink);
    background: var(--sb-soft);
}
.sb-header__end {
    display: flex;
    align-items: center;
    gap: 16px;
}
.sb-lang {
    display: inline-flex;
    padding: 3px;
    border: 1px solid var(--sb-line);
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
}
.sb-lang a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    color: var(--sb-muted);
    text-decoration: none;
}
.sb-lang a[aria-current="true"] {
    background: var(--sb-ink);
    color: var(--sb-white);
}
.sb-lang a:not([aria-current]):hover {
    color: var(--sb-ink);
    background: var(--sb-soft);
}
.sb-lang-quick {
    display: none;
    align-items: center;
    min-height: 44px;
    margin-left: auto;
    padding: 0 14px;
    border: 1px solid var(--sb-line);
    border-radius: 999px;
    font: 600 0.875rem/1 var(--sb-font);
    color: var(--sb-ink-2);
    text-decoration: none;
}
.sb-lang-quick:hover {
    color: var(--sb-ink);
    border-color: var(--sb-ink);
}
.sb-header .hamburger {
    display: none;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    border-radius: 8px;
    color: var(--sb-ink);
    cursor: pointer;
}
.sb-header .hamburger svg {
    width: 24px;
    height: 24px;
}
.sb-header .sb-menu {
    display: none;
    border-top: 1px solid var(--sb-line);
    padding: 12px var(--sb-gutter) 24px;
    background: var(--sb-white);
}
.sb-header .sb-menu.active {
    display: block;
}
.sb-header .sb-menu a.sb-mlink {
    display: flex;
    align-items: center;
    min-height: 52px;
    border-bottom: 1px solid var(--sb-line);
    font-size: 1.0625rem;
    font-weight: 500;
    text-decoration: none;
}
.sb-header .sb-menu a.sb-mlink[aria-current] {
    margin: 0 calc(var(--sb-gutter) * -1);
    padding: 0 var(--sb-gutter);
    background: var(--sb-soft);
    border-bottom-color: transparent;
    font-weight: 600;
}
.sb-header .sb-menu .sb-mobile-end {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding-top: 20px;
}
.sb-hero {
    padding: clamp(56px, 7vw, 104px) 0 clamp(40px, 5vw, 64px);
}
.sb-hero h1 {
    max-width: 15em;
    font-size: clamp(2.25rem, 1.3rem + 3.4vw, 4rem);
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.sb-hero h1:lang(ko) {
    line-height: 1.24;
    letter-spacing: -0.01em;
    font-weight: 700;
}
.sb-hero h1.sb-hero__title {
    max-width: none;
}
.sb-hl {
    display: block;
    text-wrap: balance;
}
.sb-hero__sub {
    max-width: 40em;
    margin-top: 24px;
    font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.25rem);
    line-height: 1.6;
    color: var(--sb-muted);
}
.sb-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 36px;
}
.sb-products {
    padding-bottom: clamp(64px, 8vw, 112px);
}
.sb-products__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.sb-product {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 3vw, 40px);
    background: var(--sb-white);
    border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius);
    box-shadow: var(--sb-shadow);
    overflow: hidden;
}
.sb-product::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 4px;
    background: var(--sb-accent);
    transform: scaleX(0.14);
    transform-origin: left center;
    transition: transform 420ms var(--sb-ease);
}
.sb-product:hover::before,
.sb-product:focus-within::before {
    transform: scaleX(1);
}
.sb-product--lux {
    --sb-accent: var(--sb-lux);
}
.sb-product--cella {
    --sb-accent: var(--sb-cella);
}
.sb-product__name {
    font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--sb-accent);
}
.sb-product__category {
    margin-top: 6px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--sb-muted);
}
.sb-product__line {
    margin-top: 20px;
    font-size: clamp(1.125rem, 1rem + 0.4vw, 1.3125rem);
    line-height: 1.4;
    font-weight: 600;
}
.sb-diagram {
    position: relative;
    list-style: none;
    margin: 28px 0 0;
    padding: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: start;
}
.sb-diagram::before,
.sb-diagram::after {
    content: "";
    position: absolute;
    top: 21px;
    left: calc(50% / var(--n));
    right: calc(50% / var(--n));
    height: 2px;
    border-radius: 1px;
}
.sb-diagram::before {
    background: var(--sb-line);
}
.sb-diagram::after {
    background: var(--sb-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 420ms var(--sb-ease);
}
.sb-product:hover .sb-diagram::after,
.sb-product:focus-within .sb-diagram::after,
.sb-pdp__card:hover .sb-diagram::after,
.sb-pdp__card:focus-within .sb-diagram::after {
    transform: scaleX(1);
}
.sb-diagram__item {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.sb-diagram__mark {
    display: grid;
    place-items: center;
    flex: none;
    width: 44px;
    height: 44px;
    border: 1.5px solid var(--sb-control-border);
    border-radius: 50%;
    background: var(--sb-white);
    color: var(--sb-accent);
    transition: border-color 420ms var(--sb-ease);
}
.sb-product:hover .sb-diagram__item:not(.sb-diagram__item--neutral) .sb-diagram__mark,
.sb-product:focus-within .sb-diagram__item:not(.sb-diagram__item--neutral) .sb-diagram__mark,
.sb-pdp__card:hover .sb-diagram__item:not(.sb-diagram__item--neutral) .sb-diagram__mark {
    border-color: var(--sb-accent);
}
.sb-diagram__mark svg {
    width: 22px;
    height: 22px;
}
.sb-diagram__item--neutral .sb-diagram__mark {
    border-color: var(--sb-control-border);
    color: var(--sb-muted);
}

.sb-diagram__item--link .sb-diagram__mark {
    width: 32px;
    height: 32px;
    margin: 6px 0;
    border: 0;
}
.sb-diagram__label {
    margin-top: 10px;
    padding: 0 4px;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--sb-ink-2);
}
.sb-diagram__role {
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--sb-muted);
}
.sb-product__features {
    list-style: none;
    padding: 0;
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 12px 24px;
}
.sb-product__features li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 0.9375rem;
    line-height: 1.45;
    color: var(--sb-ink-2);
}
.sb-product__features svg {
    width: 18px;
    height: 18px;
    flex: none;
    margin-top: 1px;
    color: var(--sb-accent);
}
.sb-product__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
    margin-top: auto;
    padding-top: 32px;
}
.sb-product__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    font-weight: 600;
    color: var(--sb-accent);
    text-decoration: none;
}
.sb-product__cta svg {
    width: 18px;
    height: 18px;
    transition: transform 200ms var(--sb-ease);
}
.sb-product__cta:hover svg {
    transform: translateX(3px);
}

.sb-product__more {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--sb-muted);
}

@media (min-width: 901px) {
    .sb-products__grid {
        row-gap: 0;
    }
    .sb-product {
        display: grid;
        grid-row: span 6;
        grid-template-rows: subgrid;
        row-gap: 0;
    }
    .sb-product__links {
        align-self: end;
    }
}
.sb-clients {
    background: var(--sb-soft);
    padding: clamp(56px, 7vw, 88px) 0;
}
.sb-section-title {
    font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.25rem);
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -0.02em;
}
.sb-section-title:lang(ko) {
    font-weight: 700;
    letter-spacing: -0.01em;
}
.sb-clients__list {
    list-style: none;
    padding: 0;
    margin-top: 36px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 16px;
}

.sb-clients__list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 128px;
    padding: 16px 16px 14px;
    background: var(--sb-white);
    border: 1px solid var(--sb-line);
    border-radius: 10px;
}

.sb-clients__mark {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.sb-clients__place {
    margin-top: 10px;
    font-size: 0.8125rem;
    line-height: 1.35;
    text-align: center;
    text-wrap: balance;
    font-variant-numeric: tabular-nums;
    color: var(--sb-muted);
}
.sb-clients__logo {
    display: block;
    flex: none;
    overflow: hidden;
}
.sb-clients__logo img {
    display: block;
    max-width: none;
    filter: grayscale(1);
}

.sb-clients__name {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-align: center;
    color: var(--sb-muted);
}

.sb-shared {
    padding: clamp(64px, 8vw, 112px) 0;
}
.sb-shared__list {
    list-style: none;
    padding: 0;
    margin-top: 40px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
}
.sb-shared__list li {
    padding: 4px 32px 0;
    border-left: 1px solid var(--sb-line);
}
.sb-shared__list li:first-child {
    padding-left: 0;
    border-left: 0;
}

.sb-shared__list h3 {
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 600;
}
.sb-shared__list p {
    margin-top: 10px;
    font-size: 1rem;
    color: var(--sb-muted);
}
.sb-shared__list a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 4px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sb-ink);
}

.sb-section {
    padding: clamp(64px, 8vw, 112px) 0;
}
.sb-section--first {
    padding-top: 0;
}
.sb-section--soft {
    background: var(--sb-soft);
}
.sb-section__lead {
    max-width: 40em;
    margin-top: 16px;
    font-size: 1.125rem;
    line-height: 1.6;
    color: var(--sb-muted);
}

.sb-clienttable {
    width: 100%;
    margin-top: 36px;
    border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius);
    border-collapse: separate;
    border-spacing: 0;
    background: var(--sb-white);
    font-size: 1rem;
    text-align: left;
}
.sb-clienttable th,
.sb-clienttable td {
    padding: 16px 24px;
    border-top: 1px solid var(--sb-line);
    vertical-align: top;
}
.sb-clienttable thead th {
    border-top: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--sb-muted);
}
.sb-clienttable tbody th {
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-clienttable td {
    color: var(--sb-ink-2);
}

.sb-values__title {
    margin-top: 64px;
    padding-top: 32px;
    border-top: 1px solid var(--sb-line);
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 600;
}
.sb-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px 32px;
    margin: 20px 0 0;
}
.sb-values dt {
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-values dd {
    margin: 6px 0 0;
    font-size: 1rem;
    color: var(--sb-muted);
}
@media (max-width: 900px) {
    .sb-values {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .sb-clienttable thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }
    .sb-clienttable tr {
        display: block;
        padding: 14px 18px;
        border-top: 1px solid var(--sb-line);
    }
    .sb-clienttable tbody tr:first-child {
        border-top: 0;
    }
    .sb-clienttable th,
    .sb-clienttable td {
        display: inline;
        padding: 0;
        border: 0;
    }
    .sb-clienttable tbody th {
        display: block;
    }
    .sb-clienttable td {
        font-size: 0.9375rem;
        color: var(--sb-muted);
    }
    .sb-clienttable td + td::before {
        content: " · ";
    }
}
.sb-hero--compact + .sb-pdp {
    padding-top: clamp(24px, 3vw, 40px);
}
.sb-pdp {
    scroll-margin-top: 72px;
}

.sb-pdp--lux {
    --sb-accent: var(--sb-lux);
}

.sb-pdp--cella {
    --sb-accent: var(--sb-cella);
    background: var(--sb-soft);
}

.sb-pdp__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
}
.sb-pdp__name {
    font-size: clamp(2.25rem, 1.6rem + 2vw, 3rem);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--sb-accent);
}
.sb-pdp__category {
    margin-top: 8px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--sb-muted);
}
.sb-pdp__line {
    margin-top: 20px;
    font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.5rem);
    line-height: 1.35;
    font-weight: 600;
}
.sb-pdp__desc {
    max-width: 36em;
    margin-top: 16px;
    color: var(--sb-ink-2);
}
.sb-pdp__actions {
    margin-top: 28px;
}
.sb-pdp__card {
    position: relative;
    padding: clamp(32px, 3.5vw, 48px) clamp(20px, 2.5vw, 36px);
    background: var(--sb-white);
    border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius);
    box-shadow: var(--sb-shadow);
    overflow: hidden;
}
.sb-pdp__card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 4px;
    background: var(--sb-accent);
    transform: scaleX(0.14);
    transform-origin: left center;
    transition: transform 420ms var(--sb-ease);
}
.sb-pdp__card:hover::before,
.sb-pdp__card:focus-within::before {
    transform: scaleX(1);
}
.sb-pdp__card .sb-diagram {
    margin-top: 0;
}
.sb-pdp__caption {
    margin-top: 24px;
    font-size: 0.875rem;
    text-align: center;
    color: var(--sb-muted);
}
.sb-pdp__proof {
    max-width: 46em;
    margin-top: 56px;
    font-size: 1.125rem;
    line-height: 1.55;
    font-weight: 500;
    color: var(--sb-ink);
}
.sb-pdp__features-title {
    margin-top: 48px;
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 600;
}

.sb-capabilities {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 32px;
    margin: 20px 0 0;
}
.sb-capabilities dt {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-capabilities dt svg {
    flex: none;
    width: 18px;
    height: 18px;
    margin-top: 3px;
    color: var(--sb-accent);
}
.sb-capabilities dd {
    margin: 6px 0 0 28px;
    font-size: 1rem;
    color: var(--sb-muted);
}
.sb-pdp__scope {
    max-width: 52em;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--sb-line);
    font-size: 0.9375rem;
    color: var(--sb-muted);
}
.sb-custom {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px 48px;
}
@media (max-width: 1100px) {
    .sb-pdp__grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .sb-capabilities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .sb-capabilities {
        grid-template-columns: minmax(0, 1fr);
    }
    .sb-custom .sb-btn {
        width: 100%;
    }
}
.sb-process {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: start;
}
.sb-process__intro .sb-section__lead {
    max-width: 26em;
}

.sb-process__intro .sb-btn {
    margin-top: 28px;
}
.sb-process__steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sb-process__steps li {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 20px;
    padding-bottom: 32px;
}
.sb-process__steps li:last-child {
    padding-bottom: 0;
}
.sb-process__steps li:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 22px;
    top: 44px;
    bottom: 0;
    width: 1px;
    background: var(--sb-line);
}
.sb-process__mark {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--sb-control-border);
    border-radius: 50%;
    background: var(--sb-white);
    color: var(--sb-ink-2);
}
.sb-process__mark svg {
    width: 22px;
    height: 22px;
}
.sb-process__steps h3 {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 2px;
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 600;
}
.sb-process__n {
    font-size: 0.9375rem;
    font-variant-numeric: tabular-nums;
    color: var(--sb-muted);
}
.sb-process__steps p {
    margin-top: 6px;
    font-size: 1rem;
    color: var(--sb-muted);
}
.sb-process__steps .sb-process__who {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.sb-process__who > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--sb-soft);
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--sb-ink-2);
}
.sb-process__who b {
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-capabilities--neutral {
    --sb-accent: var(--sb-ink-2);
}

.sb-custom__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
@media (max-width: 900px) {
    .sb-process {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 640px) {
    .sb-custom__actions {
        width: 100%;
    }
    .sb-custom__actions .sb-btn {
        flex: 1 1 auto;
    }
}
.sb-hero--compact + .sb-contact {
    padding-top: clamp(8px, 2vw, 24px);
}
.sb-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: start;
}
.sb-form-card {
    padding: clamp(24px, 3vw, 40px);
    background: var(--sb-white);
    border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius);
    box-shadow: var(--sb-shadow);
}
.sb-form__title {
    font-size: 1.375rem;
    line-height: 1.3;
    font-weight: 600;
}
.sb-form__note {
    margin-top: 6px;
    font-size: 0.875rem;
    color: var(--sb-muted);
}
.sb-choice {
    margin: 24px 0 0;
    padding: 0;
    border: 0;
    min-width: 0;
}
.sb-choice legend {
    padding: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-optional {
    font-weight: 400;
    color: var(--sb-muted);
}
.sb-choice__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.sb-choice__option {
    position: relative;
}

.sb-choice__option input {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.sb-choice__option span {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--sb-control-border);
    border-radius: 999px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--sb-ink-2);
    background: var(--sb-white);
    transition: background-color 160ms var(--sb-ease), border-color 160ms var(--sb-ease), color 160ms var(--sb-ease);
}
.sb-choice__option input:hover + span {
    border-color: var(--sb-ink);
}
.sb-choice__option input:checked + span {
    background: var(--sb-ink);
    border-color: var(--sb-ink);
    color: var(--sb-white);
}
.sb-choice__option input:focus-visible + span {
    outline: 2px solid var(--sb-red);
    outline-offset: 3px;
}
.sb-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 24px;
}
.sb-field--full {
    grid-column: 1 / -1;
}
.sb-field label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-input {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--sb-control-border);
    border-radius: 8px;
    background: var(--sb-white);
    font: inherit;
    font-size: 1rem;
    color: var(--sb-ink);
    transition: border-color 160ms var(--sb-ease);
}
textarea.sb-input {
    min-height: 140px;
    resize: vertical;
}

.sb-input,
.sb-check input,
.sb-choice__option input {
    scroll-margin-top: 112px;
}
.sb-input::placeholder {
    color: var(--sb-muted);
    opacity: 1;
}

.sb-input:hover {
    border-color: var(--sb-muted);
}
.sb-input:focus {
    border-color: var(--sb-ink);
    outline: 2px solid var(--sb-red);
    outline-offset: 1px;
}
.sb-input[aria-invalid="true"] {
    border-color: var(--sb-red-dark);
}
.sb-field__error {
    margin-top: 6px;
    font-size: 0.875rem;
    color: var(--sb-red-dark);
}
.sb-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 24px;
    font-size: 0.9375rem;
    color: var(--sb-ink-2);
}
.sb-check input {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    accent-color: var(--sb-ink);
}
.sb-check a {
    color: var(--sb-ink);
}

.sb-form__alert {
    margin-top: 16px;
    padding: 12px 14px;
    border-radius: 8px;
    background: #FCEDED;
    font-size: 0.9375rem;
    color: var(--sb-red-dark);
}
.sb-form__submit {
    width: 100%;
    margin-top: 24px;
}
.sb-form__secure {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-size: 0.8125rem;
    color: var(--sb-muted);
}
.sb-form__secure svg {
    flex: none;
    width: 16px;
    height: 16px;
}
.sb-form-sent p {
    margin-top: 12px;
    color: var(--sb-ink-2);
}
.sb-form-sent:focus {
    outline: none;
}
.sb-details__title {
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 600;
}

.sb-details dl {
    margin: 20px 0 0;
}
.sb-details dl > div {
    padding: 16px 0;
    border-top: 1px solid var(--sb-line);
}

.sb-details dt {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--sb-muted);
}
.sb-details dd {
    margin: 4px 0 0;
    color: var(--sb-ink);
}

.sb-details dd a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--sb-ink);
}
@media (max-width: 900px) {
    .sb-contact__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 640px) {
    .sb-form__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.sb-legal-hero h1 {
    font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem);
}
.sb-legal__updated {
    margin-top: 12px;
    font-size: 0.9375rem;
    color: var(--sb-muted);
}
.sb-legal {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: clamp(32px, 5vw, 80px);
    align-items: start;
}
.sb-legal__toc {
    position: sticky;
    top: 96px;
}
.sb-legal__toc h2 {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--sb-muted);
}
.sb-legal__toc ol {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    border-left: 1px solid var(--sb-line);
}
.sb-legal__toc a {
    display: block;
    padding: 6px 0 6px 14px;
    font-size: 0.9375rem;
    line-height: 1.4;
    color: var(--sb-ink-2);
    text-decoration: none;
}
.sb-legal__toc a:hover {
    color: var(--sb-ink);
    text-decoration: underline;
}

.sb-legal__body {
    max-width: 36em;
}

.sb-legal__section {
    scroll-margin-top: 96px;
}
.sb-legal__section + .sb-legal__section {
    margin-top: 40px;
}
.sb-legal__section h2 {
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 600;
}

.sb-legal__section p {
    margin-top: 10px;
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--sb-ink-2);
}
.sb-legal__section a {
    color: var(--sb-ink);
}
@media (max-width: 900px) {
    .sb-legal {
        grid-template-columns: minmax(0, 1fr);
    }
    .sb-legal__toc {
        position: static;
        padding: 16px 20px;
        background: var(--sb-soft);
        border-radius: var(--sb-radius);
    }

    .sb-legal__toc ol {
        border-left: 0;
    }

    .sb-legal__toc a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 0;
    }
}
.sb-close {
    background: var(--sb-ink);
    color: var(--sb-white);
    padding: clamp(56px, 7vw, 96px) 0;
}
.sb-close__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}
.sb-close h2 {
    max-width: 16em;
    text-wrap: balance;
    font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem);
    line-height: 1.15;
    font-weight: 600;
    letter-spacing: -0.02em;
}
.sb-close h2:lang(ko) {
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.01em;
}
.sb-close p {
    margin-top: 16px;
    max-width: 34em;
    color: var(--sb-on-ink-muted);
}
.sb-close .sb-btn--secondary {
    background: transparent;
    color: var(--sb-white);
    border-color: var(--sb-on-ink-border);
}
.sb-close .sb-btn--secondary:hover {
    border-color: var(--sb-white);
}
.sb-close :focus-visible {
    outline-color: var(--sb-white);
}
.sb-close .sb-hero__actions {
    margin-top: 0;
}
.sb-footer {
    margin-top: 0;
    border-top: 1px solid var(--sb-line);
    padding: 56px 0 32px;
    background: var(--sb-white);
    font-family: var(--sb-font);
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--sb-ink-2);
}
.sb-footer__grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 40px;
}
.sb-footer__brand .sb-logo img {
    display: block;
    height: 32px;
    width: auto;
}
.sb-footer__brand p {
    margin-top: 16px;
    max-width: 22em;
    color: var(--sb-muted);
    text-wrap: balance;
}
.sb-footer__brand address {
    margin-top: 16px;
    font-style: normal;
    line-height: 1.7;
}
.sb-footer__brand address a {
    text-decoration: underline;
}
.sb-footer h2 {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--sb-ink);
}
.sb-footer ul {
    list-style: none;
    padding: 0;
    margin-top: 12px;
}
.sb-footer li a,
.sb-footer li button {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--sb-ink-2);
    text-decoration: none;
    cursor: pointer;
    text-align: left;
}
.sb-footer li a:hover,
.sb-footer li button:hover {
    color: var(--sb-ink);
    text-decoration: underline;
}

.sb-footer__bottom {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid var(--sb-line);
    font-size: 0.8125rem;
    color: var(--sb-muted);
}
.sb-cookie {
    position: fixed;
    left: 24px;
    bottom: 24px;
    z-index: 1000;
    max-width: 380px;
    padding: 24px;
    background: var(--sb-white);
    border: 1px solid var(--sb-line);
    border-radius: var(--sb-radius);
    box-shadow: 0 2px 6px rgba(21, 23, 26, 0.06), 0 18px 48px rgba(21, 23, 26, 0.14);
}
.sb-cookie h2 {
    font-size: 1.0625rem;
    font-weight: 600;
}

.sb-cookie p {
    margin-top: 8px;
    font-size: 0.9375rem;
    color: var(--sb-muted);
}

.sb-cookie__actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}
@media (max-width: 1024px) {
    .sb-nav,
    .sb-header__end {
        display: none;
    }
    .sb-header__bar {
        gap: 8px;
    }
    .sb-lang-quick {
        display: inline-flex;
    }
    .sb-header .hamburger {
        display: inline-flex;
    }
    .sb-header .sb-menu .sb-lang a {
        min-height: 44px;
        padding: 0 18px;
    }
    .sb-footer li a,
    .sb-footer li button {
        min-height: 44px;
    }
}
@media (min-width: 1025px) {
    .sb-header .sb-menu.active {
        display: none;
    }
}
@media (pointer: coarse) {
    .sb-lang a {
        min-height: 44px;
    }
    .sb-footer li a,
    .sb-footer li button {
        min-height: 44px;
    }
}
@media (max-width: 900px) {
    .sb-products__grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .sb-shared__list {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }
    .sb-shared__list li,
    .sb-shared__list li:first-child {
        padding: 24px 0 0;
        border-left: 0;
        border-top: 1px solid var(--sb-line);
    }
    .sb-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sb-footer__brand {
        grid-column: 1 / -1;
    }
}
@media (max-width: 640px) {
    .sb-logo img {
        height: 32px;
    }
    .sb-logo__word {
        font-size: 1.0625rem;
    }
    .sb-hero__actions .sb-btn {
        width: 100%;
    }
    .sb-product__features {
        grid-template-columns: minmax(0, 1fr);
    }

    .sb-clients__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sb-clients__list li {
        padding: 12px 12px 10px;
    }
    .sb-cookie {
        left: 12px;
        right: 12px;
        bottom: 12px;
        max-width: none;
    }
}

@media (min-width: 901px) and (max-width: 1100px) {
    .sb-product__links {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }
}

@media (min-width: 641px) and (max-width: 1100px) {
    .sb-clients__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 480px) {
    .sb-diagram--flow {
        grid-auto-flow: row;
        row-gap: 12px;
    }
    .sb-diagram--flow .sb-diagram__item {
        flex-direction: row;
        gap: 14px;
        text-align: left;
    }
    .sb-diagram--flow .sb-diagram__label {
        margin-top: 0;
        padding: 0;
        font-size: 0.9375rem;
    }
    .sb-diagram--flow::before,
    .sb-diagram--flow::after {
        top: 22px;
        bottom: 22px;
        left: 21px;
        right: auto;
        width: 2px;
        height: auto;
    }
    .sb-diagram--flow::after {
        transform: scaleY(0);
        transform-origin: center top;
    }

    .sb-product:hover .sb-diagram--flow::after,
    .sb-product:focus-within .sb-diagram--flow::after,
    .sb-pdp__card:hover .sb-diagram--flow::after {
        transform: scaleY(1);
    }
}

@media (max-width: 400px) {
    .sb-logo {
        gap: 8px;
    }

    .sb-logo__word {
        font-size: 1rem;
    }
    .sb-lang-quick {
        padding: 0 12px;
    }
}
@media (max-width: 359px) {
    .sb-header__bar {
        gap: 6px;
    }
    .sb-header .sb-logo {
        gap: 6px;
    }
    .sb-header .sb-logo img {
        height: 26px;
    }
    .sb-header .sb-logo__word {
        font-size: 0.9375rem;
        letter-spacing: 0.02em;
    }

    .sb-lang-quick {
        padding: 0 10px;
        font-size: 0.8125rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sb2 *,
    .sb2 *::before,
    .sb2 *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
}